页面切图

This commit is contained in:
仲么了
2023-02-23 08:44:46 +08:00
parent 95db305cee
commit 89f0e79ceb
25 changed files with 830 additions and 148 deletions

View File

@@ -5,10 +5,6 @@ export default {
}, },
onShow: function () { onShow: function () {
console.log('App Show') console.log('App Show')
uni.setTabBarBadge({
index: 1,
text: '6'
})
}, },
onHide: function () { onHide: function () {
console.log('App Hide') console.log('App Hide')

View File

@@ -91,6 +91,7 @@ page {
} }
.grid-card-content-4, .grid-card-content-4,
.grid-card-content-2,
.grid-card-content-3, .grid-card-content-3,
.grid-card-content-5, .grid-card-content-5,
.grid-card-content-6 { .grid-card-content-6 {
@@ -117,10 +118,15 @@ page {
} }
} }
.grid-card-content-2 {
grid-template-columns: 1fr 3fr;
}
.grid-card-content-3 { .grid-card-content-3 {
grid-template-columns: 1fr 2fr 2fr; grid-template-columns: 1fr 2fr 2fr;
} }
.grid-card-content-5 { .grid-card-content-5 {
grid-template-columns: 1fr 1fr 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
} }
@@ -177,6 +183,7 @@ page {
border-radius: 8rpx; border-radius: 8rpx;
background: #ebeaec; background: #ebeaec;
color: #666; color: #666;
&-active { &-active {
background: #dfe5f7; background: #dfe5f7;
color: $uni-theme-blue; color: $uni-theme-blue;
@@ -206,4 +213,18 @@ page {
height: 60rpx; height: 60rpx;
font-size: 24rpx; font-size: 24rpx;
border-radius: 12rpx; border-radius: 12rpx;
}
.device{
/deep/ .uni-card:first-of-type {
margin-top: 0 !important;
}
/deep/ .uni-card__header {
border-bottom: none !important;
}
}
.content{
/deep/ .uni-forms-item:last-of-type {
margin-bottom: 0 !important;
}
} }

View File

@@ -118,13 +118,13 @@
{ {
"path": "pages/device/APF/detail", "path": "pages/device/APF/detail",
"style": { "style": {
"navigationBarTitleText": "APF设备详情" "navigationBarTitleText": "APF 设备名称 + 型号"
} }
}, },
{ {
"path": "pages/device/DVR/detail", "path": "pages/device/DVR/detail",
"style": { "style": {
"navigationBarTitleText": "DVR设备详情" "navigationBarTitleText": "DVR 设备名称 + 型号"
} }
}, },
{ {
@@ -282,6 +282,12 @@
"style": { "style": {
"navigationBarTitleText": "项目详情" "navigationBarTitleText": "项目详情"
} }
},
{
"path": "pages/gateway/detail",
"style": {
"navigationBarTitleText": "网关详情"
}
} }
], ],
"tabBar": { "tabBar": {

View File

@@ -1,5 +1,31 @@
<template> <template>
<view class='basic'> <view class='basic'>
<view class="grid-card">
<view class="grid-card-title">模块</view>
<view class="grid-card-content-4">
<view class="item item-title">名称</view>
<view class="item item-title">实际输出电流A</view>
<view class="item item-title">总谐波电流A</view>
<view class="item item-title">总谐波电压V</view>
<view class="item">模块1</view>
<view class="item">300</view>
<view class="item">200</view>
<view class="item">110</view>
<view class="item">模块2</view>
<view class="item">300</view>
<view class="item">200</view>
<view class="item">110</view>
<view class="item">模块3</view>
<view class="item">300</view>
<view class="item">200</view>
<view class="item">110</view>
<view class="item">模块4</view>
<view class="item">300</view>
<view class="item">200</view>
<view class="item">110</view>
</view>
</view>
<view class="grid-card"> <view class="grid-card">
<view class="grid-card-title">电网电流</view> <view class="grid-card-title">电网电流</view>
<view class="grid-card-content-4"> <view class="grid-card-content-4">

View File

@@ -0,0 +1,61 @@
<template>
<view class='basic'>
<view class="grid-card">
<view class="grid-card-content-2">
<view class="item">模块一</view>
<view class="item">
<view style="padding:20rpx 0">
实际输出电流300A
<view></view>
总谐波电流200A
<view></view>
总谐波电压110v
</view>
</view>
<view class="item">模块二</view>
<view class="item">
<view style="padding:20rpx 0">
实际输出电流300A
<view></view>
总谐波电流200A
<view></view>
总谐波电压110v
</view>
</view>
<view class="item">模块三</view>
<view class="item">
<view style="padding:20rpx 0">
实际输出电流300A
<view></view>
总谐波电流200A
<view></view>
总谐波电压110v
</view>
</view>
<view class="item">模块四</view>
<view class="item">
<view style="padding:20rpx 0">
实际输出电流300A
<view></view>
总谐波电流200A
<view></view>
总谐波电压110v
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data () {
return {
}
},
methods: {
}
}
</script>
<style lang='scss'>
.basic {}
</style>

View File

@@ -4,19 +4,57 @@
<view class='detail'> <view class='detail'>
<view class="detail-header"> <view class="detail-header">
<view class="header"> <view class="header">
<image src="/static/test2.pic.jpg" mode="widthFix" style="width: 100%;" /> <image src="/static/test2.pic.png" mode="widthFix" style="width: 100%;" />
<view class="point" :style="{ left: '480rpx', top: '130rpx' }">负载THDI:<view></view>1703. 384%</view>
<view class="point" :style="{ left: '200rpx', top: '130rpx' }">电网THDI:<view></view>80. 831%</view>
<view class="module">
<view class="grid-card">
<view class="grid-card-content-2">
<view class="item">模块一</view>
<view class="item">
实际输出电流300A,
总谐波电流200A,
总谐波电压110v
</view>
<view class="item">模块二</view>
<view class="item">
<view>
实际输出电流300A,
总谐波电流200A,
总谐波电压110v
</view>
</view>
<view class="item">模块三</view>
<view class="item">
<view>
实际输出电流300A,
总谐波电流200A,
总谐波电压110v
</view>
</view>
<view class="item">模块四</view>
<view class="item">
<view>
实际输出电流300A,
总谐波电流200A,
总谐波电压110v
</view>
</view>
</view>
</view>
</view>
</view> </view>
<!-- <view class="des"> <!-- <view class="des">
<text>设备基础信息</text> <text>设备基础信息</text>
<text class="ml10">设备状态</text> <text class="ml10">设备状态</text>
</view> --> </view> -->
<view class="nav"> <view class="nav" style="margin-top:-10rpx">
<view class="nav-menu" :class="{ 'nav-menu-active': navMenuActive == index }" <view class="nav-menu" :class="{ 'nav-menu-active': navMenuActive == index }"
v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }} v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }}
</view> </view>
</view> </view>
</view> </view>
<view class="content" > <view class="content">
<view v-if="navMenuActive == 0"> <view v-if="navMenuActive == 0">
<basic></basic> <basic></basic>
</view> </view>
@@ -36,9 +74,6 @@
</view> </view>
<uni-fab ref="fab" direction="vertical" horizontal="right" vertical="bottom" :content="content" <uni-fab ref="fab" direction="vertical" horizontal="right" vertical="bottom" :content="content"
@trigger="trigger" /> @trigger="trigger" />
<uni-popup ref="share" type="share" background-color="#fff">
<uni-popup-share title="分享到"></uni-popup-share>
</uni-popup>
</view> </view>
</view> </view>
</Cn-page> </Cn-page>
@@ -56,7 +91,7 @@ export default {
xieBo, xieBo,
power, power,
oscillogram, oscillogram,
IO IO,
}, },
data () { data () {
return { return {
@@ -118,11 +153,15 @@ export default {
uni.navigateTo({ url: '/pages/device/feedback' }) uni.navigateTo({ url: '/pages/device/feedback' })
} else if (e.item.text === '用户') { } else if (e.item.text === '用户') {
uni.navigateTo({ url: '/pages/device/user' }) uni.navigateTo({ url: '/pages/device/user' })
} else if (e.item.text === '报表') {
// uni.navigateTo({ url: '/pages/device/user' })
this.$util.toast('效果是直接打开报表')
} }
this.$refs.fab.close() this.$refs.fab.close()
}, },
navMenuClick (idx) { navMenuClick (idx) {
this.navMenuActive = idx this.navMenuActive = idx
uni.pageScrollTo({ scrollTop: 0, duration: 0 })
}, },
init () { init () {
let userInfo = uni.getStorageSync(this.$cacheKey.userInfo) let userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
@@ -136,18 +175,18 @@ export default {
break; break;
case 4: case 4:
this.content.splice(1, 0, { this.content.splice(1, 0, {
iconPath: '/static/share.png',
text: '分享',
}, {
iconPath: '/static/subordinate.png',
text: '用户',
}, {
iconPath: '/static/delate.png', iconPath: '/static/delate.png',
text: '报表',
}, {
iconPath: '/static/table.png',
text: '删除', text: '删除',
}) })
break; break;
case 5: case 5:
this.content.push({ this.content.splice(2, 0, {
iconPath: '/static/table.png',
text: '报表',
}, {
iconPath: '/static/feedback.png', iconPath: '/static/feedback.png',
text: '反馈', text: '反馈',
}) })
@@ -174,7 +213,33 @@ export default {
.detail { .detail {
// background: $uni-theme-white; // background: $uni-theme-white;
.header {} .header {
position: relative;
.point {
position: absolute;
color: #111;
z-index: 2;
text-align: center;
font-size: 20rpx;
color: #111;
}
.module {
position: absolute;
bottom: 0;
right: 0;
width: 300rpx;
.grid-card-content-2 {
font-size: 14rpx;
.item {
min-height: unset;
}
}
}
}
.des { .des {
padding: 20rpx 20rpx 0; padding: 20rpx 20rpx 0;
@@ -182,44 +247,18 @@ export default {
color: #999; color: #999;
} }
// .nav {
// position: sticky;
// top: 0;
// left: 0;
// padding: 20rpx;
// display: flex;
// background: rgb(243, 244, 245);
// .nav-menu {
// padding: 10rpx 20rpx;
// margin-left: 20rpx;
// font-size: 28rpx;
// border-radius: 8rpx;
// background: $uni-theme-white;
// &:first-of-type {
// margin-left: 0;
// }
// &-active {
// background: $uni-theme-blue;
// color: #fff;
// }
// }
// }
.content { .content {
box-sizing: border-box; box-sizing: border-box;
padding: 0 20rpx; padding: 0 20rpx;
} }
.detail-header{
.detail-header {
position: sticky; position: sticky;
top: 0; top: 0;
left: 0; left: 0;
z-index: 2; z-index: 2;
background: #f3f4f5; background: #f3f4f5;
} }
} }
</style> </style>

View File

@@ -2,19 +2,21 @@
<Cn-page :loading='loading' noPadding> <Cn-page :loading='loading' noPadding>
<view slot='body'> <view slot='body'>
<view class='detail'> <view class='detail'>
<view class="header"> <view class="detail-header">
<image src="/static/test2.pic.jpg" mode="widthFix" style="width: 100%;" /> <view class="header">
</view> <image src="/static/test2.pic.png" mode="widthFix" style="width: 100%;" />
<view class="des"> </view>
<!-- <view class="des">
<text>设备基础信息</text> <text>设备基础信息</text>
<text class="ml10">设备状态</text> <text class="ml10">设备状态</text>
</view> </view> -->
<view class="nav"> <view class="nav">
<view class="nav-menu" :class="{ 'nav-menu-active': navMenuActive == index }" <view class="nav-menu" :class="{ 'nav-menu-active': navMenuActive == index }"
v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }} v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }}
</view>
</view> </view>
</view> </view>
<view class="content" :style="{ minHeight: 'calc(100vh - ' + navHeight + 'px)' }"> <view class="content">
<DianWang v-if="navMenuActive == 0"></DianWang> <DianWang v-if="navMenuActive == 0"></DianWang>
<NiBian v-else-if="navMenuActive == 1"></NiBian> <NiBian v-else-if="navMenuActive == 1"></NiBian>
<ShuChu v-else-if="navMenuActive == 2"></ShuChu> <ShuChu v-else-if="navMenuActive == 2"></ShuChu>
@@ -25,9 +27,7 @@
</view> </view>
<uni-fab ref="fab" direction="vertical" horizontal="right" vertical="bottom" :content="content" <uni-fab ref="fab" direction="vertical" horizontal="right" vertical="bottom" :content="content"
@trigger="trigger" /> @trigger="trigger" />
<uni-popup ref="share" type="share" background-color="#fff">
<uni-popup-share title="分享到"></uni-popup-share>
</uni-popup>
</view> </view>
</view> </view>
</Cn-page> </Cn-page>
@@ -115,6 +115,7 @@ export default {
}, },
navMenuClick (idx) { navMenuClick (idx) {
this.navMenuActive = idx this.navMenuActive = idx
uni.pageScrollTo({ scrollTop: 0, duration: 0 })
}, },
init () { init () {
let userInfo = uni.getStorageSync(this.$cacheKey.userInfo) let userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
@@ -127,10 +128,7 @@ export default {
}) })
break; break;
case 4: case 4:
this.content.splice(0, 0, { this.content.splice(0, 0,{
iconPath: '/static/share.png',
text: '分享',
}, {
iconPath: '/static/subordinate.png', iconPath: '/static/subordinate.png',
text: '用户', text: '用户',
}, { }, {
@@ -205,6 +203,14 @@ export default {
padding: 0 20rpx; padding: 0 20rpx;
} }
.detail-header {
position: sticky;
top: 0;
left: 0;
z-index: 2;
background: #f3f4f5;
}
} }
</style> </style>

View File

@@ -1,10 +1,9 @@
<template> <template>
<Cn-page :loading='loading'> <Cn-page :loading='loading'>
<view slot='body'> <view slot='body'>
<view class='device-list'> <view class='device-list device'>
<uni-card title="基础设备" sub-title="副标题" extra="APF" v-for="item in 10" :key="item" @click="jump" <uni-card title="基础设备" sub-title="副标题" extra="APF" v-for="item in 10" :key="item" @click="jump" padding="0"
thumbnail="/static/real_time_data.png"> thumbnail="/static/real_time_data.png">
<text>设备基础信息 </text>
</uni-card> </uni-card>
<uni-load-more status="nomore"></uni-load-more> <uni-load-more status="nomore"></uni-load-more>
</view> </view>

View File

@@ -37,7 +37,7 @@
<uni-forms-item label="拓扑图"> <uni-forms-item label="拓扑图">
<view style="display:flex;"> <view style="display:flex;">
<view style="flex:1"> <view style="flex:1">
<image class="gplot" src="/static/test2.pic.jpg" mode="aspectFill" /> <image class="gplot" src="/static/test2.pic.png" mode="aspectFill" />
</view> </view>
<uni-icons type="image" color="#007aff" size="26" class="ml20" @click="chooseGplot"></uni-icons> <uni-icons type="image" color="#007aff" size="26" class="ml20" @click="chooseGplot"></uni-icons>
</view> </view>
@@ -70,7 +70,7 @@
<scroll-view style="height: 100%;" scroll-y="true"> <scroll-view style="height: 100%;" scroll-y="true">
<view class="content"> <view class="content">
<image class="gplot gplot-box" mode="aspectFill" :class="{ 'gplot-active': key == activeGplot }" <image class="gplot gplot-box" mode="aspectFill" :class="{ 'gplot-active': key == activeGplot }"
src="/static/test2.pic.jpg" @click="activeGplot = key" v-for="(item, key) in 3" :key="key" /> src="/static/test2.pic.png" @click="activeGplot = key" v-for="(item, key) in 3" :key="key" />
<view class="btn-wrap"> <view class="btn-wrap">
<view class="btn-wrap-item" @click="closeDrawer"> 取消 </view> <view class="btn-wrap-item" @click="closeDrawer"> 取消 </view>
<view class="btn-wrap-item ml20" @click="closeDrawer"> 确定 </view> <view class="btn-wrap-item ml20" @click="closeDrawer"> 确定 </view>
@@ -82,7 +82,7 @@
<scroll-view style="height: 100%;" scroll-y="true"> <scroll-view style="height: 100%;" scroll-y="true">
<view style="background:#fff"> <view style="background:#fff">
<view class="map-pin-box"> <view class="map-pin-box">
<image class="gplot" mode="widthFix" src="/static/test2.pic.jpg" /> <image class="gplot" mode="widthFix" src="/static/test2.pic.png" />
<movable-area class="map-pin-box-area"> <movable-area class="map-pin-box-area">
<movable-view :x="point.x" :y="point.y" direction="all" @change="dragPoint"> <movable-view :x="point.x" :y="point.y" direction="all" @change="dragPoint">

109
pages/gateway/detail.vue Normal file
View File

@@ -0,0 +1,109 @@
<template>
<Cn-page :loading='loading' noPadding>
<view slot='body'>
<view class='detail device'>
<view class="header">
<image src="/static/test2.pic.png" mode="widthFix" style="width: 100%;" />
</view>
<view class="title">基本信息</view>
<view class="des">
<text>名称监测网关</text>
<text class="ml20">项目监测</text>
</view>
<view class="des">
<text>设备型号PQS-882</text>
<text class="ml20">版本号v1.0.0</text>
</view>
<view class="title mb20 m340">设备列表
<view class="footer-btn" @click="newDevice">注册设备</view>
</view>
<uni-card :title="item.name" :sub-title="item.project" :extra="item.type"
v-for="(item, index) in deviceList" :key="index" style="margin-top:4rpx" @click="goDevice(item)"
thumbnail="/static/device.png" padding="0">
</uni-card>
<uni-load-more status="nomore"></uni-load-more>
<view style="height:20rpx"></view>
</view>
</view>
</Cn-page>
</template>
<script>
export default {
data () {
return {
loading: false,
deviceList: [
{
name: '设备1',
des: '设备描述1',
type: 'APF',
project: '监测',
},
{
name: '设备2',
des: '设备描述2',
type: 'DVR',
project: '监测'
},
]
}
},
methods: {
newDevice () {
uni.navigateTo({
url: '/pages/gateway/newDevice'
})
},
goDevice (item) {
uni.navigateTo({
url: `/pages/device/${item.type}/detail`
})
}
},
onLoad (options) {
},
}
</script>
<style lang='scss'>
.detail {
// background: $uni-theme-white;
.header {
position: relative;
}
.title {
display: flex;
justify-content: space-between;
padding: 20rpx 20rpx 0;
font-size: 36rpx;
color: #111;
font-weight: 700;
.footer-btn {
padding: 0 20rpx;
height: 50rpx;
background-color: #007aff;
font-size: 24rpx;
color: #fff;
text-align: center;
line-height: 50rpx;
border-radius: 10rpx;
}
}
.des {
padding: 20rpx 20rpx 0;
font-size: 28rpx;
color: #333;
}
.content {
box-sizing: border-box;
}
}</style>

View File

@@ -1,12 +1,21 @@
<template> <template>
<Cn-page :loading='loading'> <Cn-page :loading='loading'>
<view slot='body'> <view slot='body'>
<view class='index'> <view class='index' :class="{ 'device': userInfo.role == '5' }">
<uni-card title="网关信息" sub-title="副标题" v-for="item in 3" :key="item" @click="jump" <uni-card title="监测网关" sub-title="监测" @click="look" thumbnail="/static/gateway.png"
thumbnail="/static/gateway.png"> :padding="userInfo.role == '5' ? 0 : '10px'">
<view class="footer"> <view class="footer" v-if="userInfo.role != 5">
<text>设备基础信息 </text> <text style="flex:1"> </text>
<view class="footer-btn" @click="newDevice">注册设备</view> <view class="footer-btn" @click.stop="newDevice">注册设备</view>
<view class="footer-btn ml20">查看</view>
</view>
</uni-card>
<uni-card title="用能网关" sub-title="用能" @click="look" thumbnail="/static/gateway.png"
:padding="userInfo.role == '5' ? 0 : '10px'">
<view class="footer" v-if="userInfo.role != 5">
<text style="flex:1"> </text>
<view class="footer-btn" @click.stop="newDevice">注册设备</view>
<view class="footer-btn ml20">查看</view>
</view> </view>
</uni-card> </uni-card>
<uni-load-more status="nomore"></uni-load-more> <uni-load-more status="nomore"></uni-load-more>
@@ -18,9 +27,13 @@
export default { export default {
data () { data () {
return { return {
loading: false loading: false,
userInfo: {}
} }
}, },
onLoad (options) {
this.userInfo = uni.getStorageSync('userInfo')
},
methods: { methods: {
newDevice () { newDevice () {
// uni.scanCode({ // uni.scanCode({
@@ -34,11 +47,17 @@ export default {
url: '/pages/gateway/newDevice' url: '/pages/gateway/newDevice'
}) })
}, },
look () {
uni.navigateTo({
url: '/pages/gateway/detail'
})
}
} }
} }
</script> </script>
<style lang='scss'> <style lang='scss'>
.index { .index {
padding-top: 20rpx;
.footer { .footer {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

View File

@@ -30,7 +30,7 @@
<uni-forms-item label="拓扑图"> <uni-forms-item label="拓扑图">
<view style="display:flex;"> <view style="display:flex;">
<view style="flex:1"> <view style="flex:1">
<image class="gplot" src="/static/test2.pic.jpg" mode="aspectFill" /> <image class="gplot" src="/static/test2.pic.png" mode="aspectFill" />
</view> </view>
<uni-icons type="image" color="#007aff" size="26" class="ml20" <uni-icons type="image" color="#007aff" size="26" class="ml20"
@click="chooseGplot"></uni-icons> @click="chooseGplot"></uni-icons>
@@ -46,7 +46,7 @@
<scroll-view style="height: 100%;" scroll-y="true"> <scroll-view style="height: 100%;" scroll-y="true">
<view class="content"> <view class="content">
<image class="gplot gplot-box" mode="aspectFill" :class="{ 'gplot-active': key == activeGplot }" <image class="gplot gplot-box" mode="aspectFill" :class="{ 'gplot-active': key == activeGplot }"
src="/static/test2.pic.jpg" @click="activeGplot = key" v-for="(item, key) in 3" :key="key" /> src="/static/test2.pic.png" @click="activeGplot = key" v-for="(item, key) in 3" :key="key" />
<view class="btn-wrap"> <view class="btn-wrap">
<view class="btn-wrap-item" @click="closeDrawer"> 取消 </view> <view class="btn-wrap-item" @click="closeDrawer"> 取消 </view>
<view class="btn-wrap-item ml20" @click="closeDrawer"> 确定 </view> <view class="btn-wrap-item ml20" @click="closeDrawer"> 确定 </view>

View File

@@ -14,7 +14,7 @@
<uni-forms-item label="拓扑图"> <uni-forms-item label="拓扑图">
<view style="display:flex;"> <view style="display:flex;">
<view style="flex:1"> <view style="flex:1">
<image class="gplot" src="/static/test2.pic.jpg" mode="aspectFill" /> <image class="gplot" src="/static/test2.pic.png" mode="aspectFill" />
</view> </view>
<uni-icons type="image" color="#007aff" size="26" class="ml20" <uni-icons type="image" color="#007aff" size="26" class="ml20"
@click="chooseGplot(item)"></uni-icons> @click="chooseGplot(item)"></uni-icons>
@@ -38,7 +38,7 @@
<scroll-view style="height: 100%;" scroll-y="true"> <scroll-view style="height: 100%;" scroll-y="true">
<view class="content"> <view class="content">
<image class="gplot gplot-box" mode="aspectFill" :class="{ 'gplot-active': key == activeGplot }" <image class="gplot gplot-box" mode="aspectFill" :class="{ 'gplot-active': key == activeGplot }"
src="/static/test2.pic.jpg" @click="activeGplot = key" v-for="(item, key) in 3" src="/static/test2.pic.png" @click="activeGplot = key" v-for="(item, key) in 3"
:key="key" /> :key="key" />
<view class="btn-wrap"> <view class="btn-wrap">
<view class="btn-wrap-item" @click="closeDrawer"> 取消 </view> <view class="btn-wrap-item" @click="closeDrawer"> 取消 </view>
@@ -51,7 +51,7 @@
<scroll-view style="height: 100%;" scroll-y="true"> <scroll-view style="height: 100%;" scroll-y="true">
<view style="background:#fff"> <view style="background:#fff">
<view class="map-pin-box"> <view class="map-pin-box">
<image class="gplot" mode="widthFix" src="/static/test2.pic.jpg" /> <image class="gplot" mode="widthFix" src="/static/test2.pic.png" />
<movable-area class="map-pin-box-area"> <movable-area class="map-pin-box-area">
<movable-view :x="point.x" :y="point.y" direction="all" @change="dragPoint"> <movable-view :x="point.x" :y="point.y" direction="all" @change="dragPoint">
<view class="point center"> <view class="point center">

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="index-gongcheng"> <view class="index-zhuyonghu">
<div class="header"> <div class="header">
<div class="header-item"> <div class="header-item">
<div class="header-item-value">3</div> <div class="header-item-value">3</div>
@@ -14,24 +14,124 @@
<div class="header-item-label">离线设备</div> <div class="header-item-label">离线设备</div>
</div> </div>
</div> </div>
<uni-card title="基础设备" sub-title="副标题" :extra="item % 2 ? 'APF' : 'DVR'" v-for="item in 3" :key="item" <view style="padding:20rpx 20rpx 0">
@click="jump(item)" thumbnail="/static/device.png"> <Cn-grid title="注册">
<text>设备基础信息 </text> <Cn-grid-item src="/static/device2.png" text="设备" @click="registerDevice"></Cn-grid-item>
</uni-card> <Cn-grid-item src="/static/gateway2.png" text="网关" @click="registerGateway"></Cn-grid-item>
<uni-load-more status="nomore"></uni-load-more> <Cn-grid-item background="#fff"></Cn-grid-item>
<Cn-grid-item background="#fff"></Cn-grid-item>
</Cn-grid>
</view>
<view class="nav">
<view class="nav-menu" :class="{ 'nav-menu-active': navMenuActive == index }"
v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }}
</view>
</view>
<view class="content device" :style="{ minHeight: minHeight }">
<uni-card :title="item.name" :sub-title="item.project" :extra="item.type" padding="0"
v-for="(item, index) in deviceListFilter" :key="index" @click="jump(item)" thumbnail="/static/device.png">
<!-- <text>{{ item.project }} {{ item.type }}</text> -->
</uni-card>
<uni-load-more status="nomore"></uni-load-more>
</view>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
loading: false loading: false,
navMenuList: [{
text: '全部'
}, {
text: '监测'
}, {
text: '治理'
}],
navMenuActive: 0,
navHeight: 0,
minHeight: '',
deviceList: [
{
name: '设备1',
des: '设备描述1',
type: 'APF',
project: '监测',
},
{
name: '设备2',
des: '设备描述2',
type: 'DVR',
project: '治理'
},
{
name: '设备3',
des: '设备描述3',
type: 'DVR',
project: '治理'
},
{
name: '设备4',
des: '设备描述4',
type: 'DVR',
project: '治理'
},
{
name: '设备5',
des: '设备描述5',
type: 'APF',
project: '治理'
},
{
name: '设备6',
des: '设备描述6',
type: 'APF',
project: '治理'
}
]
}
},
computed: {
deviceListFilter () {
if (this.navMenuActive == 0) {
return this.deviceList
} else {
return this.deviceList.filter(item => item.project == this.navMenuList[this.navMenuActive].text)
}
} }
}, },
methods: { methods: {
registerDevice () {
uni.showModal({
title: '提示',
content: '请选择设备类型',
confirmText: '直连装置',
cancelText: '网关接入',
cancelColor: '#007aff',
success: ({ confirm, cancel }) => {
if (confirm) {
uni.navigateTo({
url: '/pages/device/new'
})
} else if (cancel) {
uni.navigateTo({
url: '/pages/gateway/list'
})
}
}
})
},
registerGateway () {
uni.navigateTo({
url: '/pages/gateway/new'
})
},
navMenuClick (index) {
this.navMenuActive = index
},
jump (item) { jump (item) {
if (item % 2) { if (item.type == 'APF') {
uni.navigateTo({ uni.navigateTo({
url: '/pages/device/APF/detail' url: '/pages/device/APF/detail'
}) })
} else { } else {
@@ -40,9 +140,23 @@ export default {
}) })
} }
}, },
},
mounted () {
setTimeout(() => {
// 获取nav高度
uni.createSelectorQuery().select('.nav').boundingClientRect((rect) => {
this.navHeight = rect.height
// #ifdef H5
this.minHeight = 'calc(100vh - env(safe-area-inset-bottom) - ' + (50 + this.navHeight) + 'px)'
// #endif
// #ifdef APP-PLUS
this.minHeight = 'calc(100vh - ' + this.navHeight + 'px)'
// #endif
}).exec()
}, 1000);
} }
} }
</script> </script>
<style lang='scss'> <style lang='scss'>
.index-gongcheng {}
</style> </style>

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="index-yunwei"> <view class="index-zhuyonghu">
<div class="header"> <div class="header">
<div class="header-item"> <div class="header-item">
<div class="header-item-value">3</div> <div class="header-item-value">3</div>
@@ -14,24 +14,124 @@
<div class="header-item-label">离线设备</div> <div class="header-item-label">离线设备</div>
</div> </div>
</div> </div>
<uni-card title="基础设备" sub-title="副标题" :extra="item % 2 ? 'APF' : 'DVR'" v-for="item in 3" :key="item" <view style="padding:20rpx 20rpx 0">
@click="jump(item)" thumbnail="/static/device.png"> <Cn-grid title="注册">
<text>设备基础信息 </text> <Cn-grid-item src="/static/device2.png" text="设备" @click="registerDevice"></Cn-grid-item>
</uni-card> <Cn-grid-item src="/static/gateway2.png" text="网关" @click="registerGateway"></Cn-grid-item>
<uni-load-more status="nomore"></uni-load-more> <Cn-grid-item background="#fff"></Cn-grid-item>
<Cn-grid-item background="#fff"></Cn-grid-item>
</Cn-grid>
</view>
<view class="nav">
<view class="nav-menu" :class="{ 'nav-menu-active': navMenuActive == index }"
v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }}
</view>
</view>
<view class="content device" :style="{ minHeight: minHeight }">
<uni-card :title="item.name" :sub-title="item.project" :extra="item.type" padding="0"
v-for="(item, index) in deviceListFilter" :key="index" @click="jump(item)" thumbnail="/static/device.png">
<!-- <text>{{ item.project }} {{ item.type }}</text> -->
</uni-card>
<uni-load-more status="nomore"></uni-load-more>
</view>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
loading: false loading: false,
navMenuList: [{
text: '全部'
}, {
text: '监测'
}, {
text: '治理'
}],
navMenuActive: 0,
navHeight: 0,
minHeight: '',
deviceList: [
{
name: '设备1',
des: '设备描述1',
type: 'APF',
project: '监测',
},
{
name: '设备2',
des: '设备描述2',
type: 'DVR',
project: '治理'
},
{
name: '设备3',
des: '设备描述3',
type: 'DVR',
project: '治理'
},
{
name: '设备4',
des: '设备描述4',
type: 'DVR',
project: '治理'
},
{
name: '设备5',
des: '设备描述5',
type: 'APF',
project: '治理'
},
{
name: '设备6',
des: '设备描述6',
type: 'APF',
project: '治理'
}
]
}
},
computed: {
deviceListFilter () {
if (this.navMenuActive == 0) {
return this.deviceList
} else {
return this.deviceList.filter(item => item.project == this.navMenuList[this.navMenuActive].text)
}
} }
}, },
methods: { methods: {
registerDevice () {
uni.showModal({
title: '提示',
content: '请选择设备类型',
confirmText: '直连装置',
cancelText: '网关接入',
cancelColor: '#007aff',
success: ({ confirm, cancel }) => {
if (confirm) {
uni.navigateTo({
url: '/pages/device/new'
})
} else if (cancel) {
uni.navigateTo({
url: '/pages/gateway/list'
})
}
}
})
},
registerGateway () {
uni.navigateTo({
url: '/pages/gateway/new'
})
},
navMenuClick (index) {
this.navMenuActive = index
},
jump (item) { jump (item) {
if (item % 2) { if (item.type == 'APF') {
uni.navigateTo({ uni.navigateTo({
url: '/pages/device/APF/detail' url: '/pages/device/APF/detail'
}) })
} else { } else {
@@ -40,9 +140,23 @@ export default {
}) })
} }
}, },
},
mounted () {
setTimeout(() => {
// 获取nav高度
uni.createSelectorQuery().select('.nav').boundingClientRect((rect) => {
this.navHeight = rect.height
// #ifdef H5
this.minHeight = 'calc(100vh - env(safe-area-inset-bottom) - ' + (50 + this.navHeight) + 'px)'
// #endif
// #ifdef APP-PLUS
this.minHeight = 'calc(100vh - ' + this.navHeight + 'px)'
// #endif
}).exec()
}, 1000);
} }
} }
</script> </script>
<style lang='scss'> <style lang='scss'>
.index-yunwei {}
</style> </style>

View File

@@ -27,15 +27,14 @@
v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }} v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }}
</view> </view>
</view> </view>
<view class="content" :style="{ minHeight: minHeight }"> <view class="content device" :style="{ minHeight: minHeight }">
<uni-card :title="item.name" :sub-title="item.project" :extra="item.type" <uni-card :title="item.name" :sub-title="item.project" :extra="item.type" padding="0"
v-for="(item, index) in deviceListFilter" :key="index" style="margin-top:4rpx" @click="jump(item)" v-for="(item, index) in deviceListFilter" :key="index" @click="jump(item)" thumbnail="/static/device.png">
thumbnail="/static/device.png"> <!-- <text>{{ item.project }} {{ item.type }}</text> -->
<text>{{ item.project }} {{ item.type }}</text>
</uni-card> </uni-card>
<uni-load-more status="nomore"></uni-load-more> <uni-load-more status="nomore"></uni-load-more>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
@@ -153,10 +152,11 @@ export default {
// #ifdef APP-PLUS // #ifdef APP-PLUS
this.minHeight = 'calc(100vh - ' + this.navHeight + 'px)' this.minHeight = 'calc(100vh - ' + this.navHeight + 'px)'
// #endif // #endif
}).exec() }).exec()
}, 1000); }, 1000);
} }
} }
</script> </script>
<style lang='scss'></style> <style lang='scss'>
</style>

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="index-ziyonghu"> <view class="index-zhuyonghu">
<div class="header"> <div class="header">
<div class="header-item"> <div class="header-item">
<div class="header-item-value">3</div> <div class="header-item-value">3</div>
@@ -14,24 +14,124 @@
<div class="header-item-label">离线设备</div> <div class="header-item-label">离线设备</div>
</div> </div>
</div> </div>
<uni-card title="基础设备" sub-title="副标题" :extra="item % 2 ? 'APF' : 'DVR'" v-for="item in 3" :key="item" <!-- <view style="padding:20rpx 20rpx 0">
@click="jump(item)" thumbnail="/static/device.png"> <Cn-grid title="注册">
<text>设备基础信息 </text> <Cn-grid-item src="/static/device2.png" text="设备" @click="registerDevice"></Cn-grid-item>
</uni-card> <Cn-grid-item src="/static/gateway2.png" text="网关" @click="registerGateway"></Cn-grid-item>
<uni-load-more status="nomore"></uni-load-more> <Cn-grid-item background="#fff"></Cn-grid-item>
<Cn-grid-item background="#fff"></Cn-grid-item>
</Cn-grid>
</view> -->
<view class="nav">
<view class="nav-menu" :class="{ 'nav-menu-active': navMenuActive == index }"
v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }}
</view>
</view>
<view class="content device" :style="{ minHeight: minHeight }">
<uni-card :title="item.name" :sub-title="item.project" :extra="item.type" padding="0"
v-for="(item, index) in deviceListFilter" :key="index" @click="jump(item)" thumbnail="/static/device.png">
<!-- <text>{{ item.project }} {{ item.type }}</text> -->
</uni-card>
<uni-load-more status="nomore"></uni-load-more>
</view>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
loading: false loading: false,
navMenuList: [{
text: '全部'
}, {
text: '监测'
}, {
text: '治理'
}],
navMenuActive: 0,
navHeight: 0,
minHeight: '',
deviceList: [
{
name: '设备1',
des: '设备描述1',
type: 'APF',
project: '监测',
},
{
name: '设备2',
des: '设备描述2',
type: 'DVR',
project: '治理'
},
{
name: '设备3',
des: '设备描述3',
type: 'DVR',
project: '治理'
},
{
name: '设备4',
des: '设备描述4',
type: 'DVR',
project: '治理'
},
{
name: '设备5',
des: '设备描述5',
type: 'APF',
project: '治理'
},
{
name: '设备6',
des: '设备描述6',
type: 'APF',
project: '治理'
}
]
}
},
computed: {
deviceListFilter () {
if (this.navMenuActive == 0) {
return this.deviceList
} else {
return this.deviceList.filter(item => item.project == this.navMenuList[this.navMenuActive].text)
}
} }
}, },
methods: { methods: {
registerDevice () {
uni.showModal({
title: '提示',
content: '请选择设备类型',
confirmText: '直连装置',
cancelText: '网关接入',
cancelColor: '#007aff',
success: ({ confirm, cancel }) => {
if (confirm) {
uni.navigateTo({
url: '/pages/device/new'
})
} else if (cancel) {
uni.navigateTo({
url: '/pages/gateway/list'
})
}
}
})
},
registerGateway () {
uni.navigateTo({
url: '/pages/gateway/new'
})
},
navMenuClick (index) {
this.navMenuActive = index
},
jump (item) { jump (item) {
if (item % 2) { if (item.type == 'APF') {
uni.navigateTo({ uni.navigateTo({
url: '/pages/device/APF/detail' url: '/pages/device/APF/detail'
}) })
} else { } else {
@@ -40,9 +140,23 @@ export default {
}) })
} }
}, },
},
mounted () {
setTimeout(() => {
// 获取nav高度
uni.createSelectorQuery().select('.nav').boundingClientRect((rect) => {
this.navHeight = rect.height
// #ifdef H5
this.minHeight = 'calc(100vh - env(safe-area-inset-bottom) - ' + (50 + this.navHeight) + 'px)'
// #endif
// #ifdef APP-PLUS
this.minHeight = 'calc(100vh - ' + this.navHeight + 'px)'
// #endif
}).exec()
}, 1000);
} }
} }
</script> </script>
<style lang='scss'> <style lang='scss'>
.index-ziyonghu {}
</style> </style>

View File

@@ -16,7 +16,7 @@
@trigger="trigger" /> @trigger="trigger" />
</view> </view>
</view> </view>
</Cn-page> </Cn-page>
</template> </template>
<script> <script>
import YunWei from "./comp/indexYunWei.vue"; import YunWei from "./comp/indexYunWei.vue";
@@ -60,15 +60,6 @@ export default {
text: '子用户', text: '子用户',
} }
] ]
// if (arr.indexOf(this.userInfo.role) > -1) {
// content.push({
// iconPath: '/static/device.png',
// text: '添加设备',
// }, {
// iconPath: '/static/gateway.png',
// text: '添加网关',
// })
// }
return content return content
} }
}, },
@@ -104,18 +95,35 @@ export default {
switch (e.index + 1) { switch (e.index + 1) {
case 1: case 1:
roleName = '运维管理' roleName = '运维管理'
uni.removeTabBarBadge({
index: 1
})
break break
case 2: case 2:
roleName = '专职管理' roleName = '专职管理'
uni.removeTabBarBadge({
index: 1
})
break break
case 3: case 3:
roleName = '工程' roleName = '工程'
uni.removeTabBarBadge({
index: 1
})
break break
case 4: case 4:
roleName = '主用户' roleName = '主用户'
uni.setTabBarBadge({
index: 1,
text: '6'
})
break break
case 5: case 5:
roleName = '子用户' roleName = '子用户'
uni.setTabBarBadge({
index: 1,
text: '6'
})
break break
} }
this.$util.toast(roleName + '角色切换成功') this.$util.toast(roleName + '角色切换成功')
@@ -127,7 +135,21 @@ export default {
this.loading = false this.loading = false
}, },
onShow () { onShow () {
this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo) || { role: 4 } this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
if (!this.userInfo) {
this.userInfo = {
role: 4
}
uni.setStorageSync('userInfo', {
role: 4
})
}
if (this.userInfo.role == 4 || this.userInfo.role == 5) {
uni.setTabBarBadge({
index: 1,
text: '6'
})
}
} }
} }
</script> </script>

View File

@@ -11,13 +11,13 @@
<view class="message-nav-label">反馈</view> <view class="message-nav-label">反馈</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons> <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view> </view>
<view class="message-nav" @click="jump('report')"> <view class="message-nav" @click="jump('report')" v-if="userInfo.role == '4' || userInfo.role == '5'">
<image mode="aspectFill" class="message-nav-icon" src="/static/report.png" /> <image mode="aspectFill" class="message-nav-icon" src="/static/report.png" />
<view class="message-nav-label">告警</view> <view class="message-nav-label">告警</view>
<uni-badge text="3"></uni-badge> <uni-badge text="3"></uni-badge>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons> <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view> </view>
<view class="message-nav" @click="jump('incident')"> <view class="message-nav" @click="jump('incident')" v-if="userInfo.role == '4' || userInfo.role == '5'">
<image mode="aspectFill" class="message-nav-icon" src="/static/incident.png" /> <image mode="aspectFill" class="message-nav-icon" src="/static/incident.png" />
<view class="message-nav-label">事件</view> <view class="message-nav-label">事件</view>
<uni-badge text="3"></uni-badge> <uni-badge text="3"></uni-badge>
@@ -31,11 +31,13 @@
export default { export default {
data () { data () {
return { return {
loading: false loading: false,
userInfo: {}
} }
}, },
methods: { methods: {
init () { init () {
this.userInfo = uni.getStorageSync('userInfo')
}, },
upgrade (code) { upgrade (code) {
console.log(code); console.log(code);
@@ -67,7 +69,7 @@ export default {
} }
} }
}, },
onLoad () { onShow () {
this.init() this.init()
}, },
} }
@@ -76,6 +78,7 @@ export default {
<style lang="scss"> <style lang="scss">
.message { .message {
padding-top: 20rpx; padding-top: 20rpx;
.message-header { .message-header {
padding: 200rpx 34rpx 34rpx; padding: 200rpx 34rpx 34rpx;
display: flex; display: flex;
@@ -108,7 +111,7 @@ export default {
} }
.message-nav { .message-nav {
padding: 34rpx; padding: 34rpx;
display: flex; display: flex;
align-items: center; align-items: center;
background: $uni-theme-white; background: $uni-theme-white;

View File

@@ -22,12 +22,18 @@
<view class="mine-nav-label">子用户列表</view> <view class="mine-nav-label">子用户列表</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons> <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view> --> </view> -->
<view class="mine-nav" @click="jump('project')" v-if="userInfo.role == 4"> <view class="mine-nav" @click="jump('scan')">
<image mode="aspectFill" class="mine-nav-icon" src="/static/scan.png" />
<view class="mine-nav-label">扫一扫</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
<view class="mine-nav" @click="jump('project')" v-if="userInfo.role == 4 || userInfo.role == 3">
<image mode="aspectFill" class="mine-nav-icon" src="/static/project.png" /> <image mode="aspectFill" class="mine-nav-icon" src="/static/project.png" />
<view class="mine-nav-label">项目管理</view> <view class="mine-nav-label">项目管理</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons> <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view> </view>
<view class="mine-nav" @click="jump('gateway')" v-if="userInfo.role == 4 || userInfo.role == 3" <view class="mine-nav" @click="jump('gateway')"
v-if="userInfo.role == 4 || userInfo.role == 3 || userInfo.role == 5"
style="border-bottom: none; box-shadow: 0 4rpx 8rpx #e7e7e74c;"> style="border-bottom: none; box-shadow: 0 4rpx 8rpx #e7e7e74c;">
<image mode="aspectFill" class="mine-nav-icon" src="/static/gateway.png" /> <image mode="aspectFill" class="mine-nav-icon" src="/static/gateway.png" />
<view class="mine-nav-label">网关列表</view> <view class="mine-nav-label">网关列表</view>
@@ -97,6 +103,14 @@ export default {
}, },
jump (type) { jump (type) {
switch (type) { switch (type) {
case 'scan':
uni.scanCode({
success: function (res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
}
});
break;
case 'login': case 'login':
uni.navigateTo({ uni.navigateTo({
url: `/pages/user/login` url: `/pages/user/login`

View File

@@ -11,11 +11,10 @@
v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }} v-for="(item, index) in navMenuList" :key="index" @click="navMenuClick(index)">{{ item.text }}
</view> </view>
</view> </view>
<view class="content" :style="{ minHeight: 'calc(100vh - ' + navHeight + 'px)' }"> <view class="content device" :style="{ minHeight: 'calc(100vh - ' + navHeight + 'px)' }">
<view v-show="navMenuActive == 0"> <view v-show="navMenuActive == 0">
<uni-card title="基础设备" sub-title="副标题" extra="APF" v-for="item in 10" :key="item" @click="jump" <uni-card title="用能设备" sub-title="设备" extra="APF" v-for="item in 2" :key="item" @click="goDevice"
thumbnail="/static/real_time_data.png"> padding="0" thumbnail="/static/real_time_data.png">
<text>设备基础信息 </text>
</uni-card> </uni-card>
</view> </view>
<view style="padding: 0 20rpx" v-show="navMenuActive == 1"> <view style="padding: 0 20rpx" v-show="navMenuActive == 1">
@@ -36,6 +35,11 @@
</view> </view>
<uni-load-more status="nomore"></uni-load-more> <uni-load-more status="nomore"></uni-load-more>
</view> </view>
<uni-fab ref="fab" direction="vertical" horizontal="right" vertical="bottom" :content="content"
@trigger="trigger" />
<uni-popup ref="share" type="share" background-color="#fff">
<uni-popup-share title="分享到"></uni-popup-share>
</uni-popup>
</view> </view>
</view> </view>
</Cn-page> </Cn-page>
@@ -51,10 +55,19 @@ export default {
}, { }, {
text: '子用户列表' text: '子用户列表'
}], }],
content: [{
iconPath: '/static/share.png',
text: '分享',
}],
navHeight: 0,
navMenuActive: 0 navMenuActive: 0
} }
}, },
methods: { methods: {
trigger () {
console.log(this.$refs);
this.$refs.share.open()
},
navMenuClick (index) { navMenuClick (index) {
this.navMenuActive = index this.navMenuActive = index
}, },
@@ -76,7 +89,13 @@ export default {
} }
} }
}) })
} },
goDevice () {
uni.navigateTo({
url: '/pages/device/APF/detail'
})
},
}, },
onLoad (option) { onLoad (option) {
this.project = option.project this.project = option.project

BIN
static/scan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/table.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
static/test2.pic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

View File

@@ -580,9 +580,9 @@
font-weight: bold; font-weight: bold;
} }
} }
.uni-forms-item:last-of-type{ // .uni-forms-item:last-of-type{
margin-bottom: 0; // margin-bottom: 0;
} // }
.uni-forms-item--border { .uni-forms-item--border {
margin-bottom: 0; margin-bottom: 0;