houyaf 2 hónapja
szülő
commit
1fbc1d7d3d
4 módosított fájl, 967 hozzáadás és 835 törlés
  1. 54 16
      api/industry.js
  2. 14 14
      config/index.js
  3. 330 309
      packageA/pages/danger/index.vue
  4. 569 496
      pages/index/index.vue

+ 54 - 16
api/industry.js

@@ -1,26 +1,64 @@
-import {request} from '@/libs/request.js'
+import {
+  request
+} from '@/libs/request.js'
 export default {
   // 按部门统计
-  counterByGroup: (data) => request({url:'/ent/statis/counterByGroup',data}),
+  counterByGroup: (data) => request({
+    url: '/ent/statis/counterByGroup',
+    data
+  }),
   // 分类统计
-  counterByCat: (data) => request({url:'/ent/statis/counterByCat',data}),
-   
+  counterByCat: (data) => request({
+    url: '/ent/statis/counterByCat',
+    data
+  }),
+
   // 分页查询
-  getByPage: (data) => request({url:'/ent/page',data }),
+  getByPage: (data) => request({
+    url: '/ent/page',
+    data
+  }),
   // 列表查询
-  getByList: (data) => request({url:'/ent',data }),
+  getByList: (data) => request({
+    url: '/ent',
+    data
+  }),
   // 基于ID查询
-  getById: (entId) => request({url:`/ent/${entId}` }),
+  getById: (entId) => request({
+    url: `/ent/${entId}`
+  }),
   // 新增
-  create: (data) => request({url:'/ent/add',method: 'POST', data}),
+  create: (data) => request({
+    url: '/ent/add',
+    method: 'POST',
+    data
+  }),
   // 更新
-  update: (data) =>  request({url:'/ent/update',method: 'put', data}),
+  update: (data) => request({
+    url: '/ent/update',
+    method: 'put',
+    data
+  }),
   // 删除
-  deleteById: (entId) => request({url:`/ent/${entId}`,method: 'delete'}),  
-  
-/*cat*/  
-  getCatByList: (data) => request({url:'/ent/cat',data }),
-/*Camera*/    
+  deleteById: (entId) => request({
+    url: `/ent/${entId}`,
+    method: 'delete'
+  }),
+
+  // 列表查询
+  selectByList: (data) => request({
+    url: '/ent/select',
+    data
+  }),
+
+  /*cat*/
+  getCatByList: (data) => request({
+    url: '/ent/cat',
+    data
+  }),
+  /*Camera*/
   // 基于ID查询
-  getCameraByListWithEnt: (id) => request({url:`/camera/ent/${id}`}),  
-}
+  getCameraByListWithEnt: (id) => request({
+    url: `/camera/ent/${id}`
+  }),
+}

+ 14 - 14
config/index.js

@@ -1,15 +1,15 @@
 export default {
-    base: {
-      // dev: 'http://47.113.222.56:7001',
-	  dev: 'https://api.hchzhhnm.xarbkj.net',
-      pro: 'https://api.hchzhhnm.xarbkj.net'
-    },
-	// appID: '10031',
-	// appKey: '82a8bf439373e331',
-	// appSecret: '82a8bf439373e331',
-	//测试
-	appID: '10000',
-	appKey: '82a8bf439373e304',
-	appSecret: '82a8bf439373e304',
-	TokenKey:"Authorization",
-}
+  base: {
+    // dev: 'http://47.113.222.56:7001',
+    dev: 'https://api.hchzhhnm.xarbkj.net',
+    pro: 'https://api.hchzhhnm.xarbkj.net'
+  },
+  // appID: '10031',
+  // appKey: '82a8bf439373e331',
+  // appSecret: '82a8bf439373e331',
+  //测试
+  appID: '10000',
+  appKey: '82a8bf439373e304',
+  appSecret: '82a8bf439373e304',
+  TokenKey: "Authorization",
+}

+ 330 - 309
packageA/pages/danger/index.vue

@@ -1,316 +1,337 @@
 <template>
-	<view class="page-wrap">
-		<view class="head">
-			<uni-card padding="0" margin="5px 0">
-				<uni-search-bar @confirm="search" v-model="keywords" @clear="search"></uni-search-bar>
-			</uni-card>
-			<view class="addbt" @click="handle({type:'add'})">
-				<view class="word"><uni-icons type="plusempty" size="30" color="#fff"></uni-icons></view>
-			</view>
-		</view>	
-		<view class="pageMain">
-			<uni-swipe-action class="item-action-box">
-				<uni-card padding="10px 0" margin="5px 0" v-for="(item,idx) in items" :key="idx">
-					<uni-swipe-action-item class="item-action" :auto-close="true">
-						<template v-slot:right>
-							<view class="slot-button">
-								<view class="bt edit" @click="handle({type:'edit',item})"><text class="slot-button-text">编辑</text></view>
-								<view class="bt del" @click="handle({type:'del',item})"><text class="slot-button-text">删除</text></view>
-							</view>
-						</template>
-						<view class="item" @click="handle({type:'detail',item})">
-							<view class="title">
-								<view class="name">{{item.dangerTitle}}</view>									
-							</view>
-							<view class="item-row space-between">
-								<uni-tag :text="item.dangerCatTitle" custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
-								<uni-tag :inverted="true" :text="formatDangerLevel(item.dangerLevel)" type="success"></uni-tag>
-							</view>	
-							<view class="item-row space-between" v-if="item.dangerTags">
-								<uni-tag :text="item.dangerTags" custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
-							</view>	
-							<view class="item-row space-between">
-								<view class="icon-item">
-									<uni-icons type="location-filled" size="16" color="#999"></uni-icons>
-									<text class="word">{{item.dangerLocation||'--'}}</text>
-								</view>
-								<uni-tag :text="formatDangerStatus(item.status)" :type="item.status>0?'primary':'warning'"></uni-tag>
-							</view>
-							<view class="bottom">
-								<view class="icon-item">
-									<image class="icon" src="/static/images/qiye.png" mode="widthFix"></image>
-									<text class="word">{{item.entName}}</text>
-								</view>
-								<view class="icon-item">
-									<image class="icon" src="/static/images/time.png" mode="widthFix"></image>
-									<text class="word">{{item.submitTime}}</text>
-								</view>	
-								<view class="icon-item">
-									<image class="icon" src="/static/images/admin_icon.png" mode="widthFix"></image>
-									<text class="word">{{item.groupName}}</text>
-								</view>	
-								<view class="icon-item" @click.stop="showSuperVisor(item)">
-									<image class="icon" src="/static/images/admin_icon.png" mode="widthFix"></image>
-									<text>(责任单位)</text>
-									<template>
-										<view class="supervisor" v-if="item.supervisorGroupList" >	
-											<view class="supervisor-item" v-for="(supervisor,supervisoridx) in formatsupervisorGroupList(item.supervisorGroupList)" :key="supervisoridx">
-												<uni-tag :text="supervisor" custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
-											</view>
-										</view>
-										<view class="supervisor" v-else>
-											<uni-icons type="plusempty" size="20" color="#ccc"></uni-icons>
-										</view>
-									</template>
-								</view>														
-							</view>
-						</view>
-					</uni-swipe-action-item>
-				</uni-card>
-			</uni-swipe-action>
-		</view>
-		<Create ref="danger" @success="search" :ent="ents" :danger="dangerCats"></Create>	
-		<Detail ref="detail"></Detail>
-		<SupervisorList ref="SupervisorList" @success="search"></SupervisorList>		
-	</view>
+  <view class="page-wrap">
+    <view class="head">
+      <uni-card padding="0" margin="5px 0">
+        <uni-search-bar @confirm="search" v-model="keywords" @clear="search"></uni-search-bar>
+      </uni-card>
+      <view class="addbt" @click="handle({type:'add'})">
+        <view class="word"><uni-icons type="plusempty" size="30" color="#fff"></uni-icons></view>
+      </view>
+    </view>
+    <view class="pageMain">
+      <uni-swipe-action class="item-action-box">
+        <uni-card padding="10px 0" margin="5px 0" v-for="(item,idx) in items" :key="idx">
+          <uni-swipe-action-item class="item-action" :auto-close="true">
+            <template v-slot:right>
+              <view class="slot-button">
+                <view class="bt edit" @click="handle({type:'edit',item})"><text class="slot-button-text">编辑</text>
+                </view>
+                <view class="bt del" @click="handle({type:'del',item})"><text class="slot-button-text">删除</text></view>
+              </view>
+            </template>
+            <view class="item" @click="handle({type:'detail',item})">
+              <view class="title">
+                <view class="name">{{item.dangerTitle}}</view>
+              </view>
+              <view class="item-row space-between">
+                <uni-tag :text="item.dangerCatTitle"
+                  custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
+                <uni-tag :inverted="true" :text="formatDangerLevel(item.dangerLevel)" type="success"></uni-tag>
+              </view>
+              <view class="item-row space-between" v-if="item.dangerTags">
+                <uni-tag :text="item.dangerTags"
+                  custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
+              </view>
+              <view class="item-row space-between">
+                <view class="icon-item">
+                  <uni-icons type="location-filled" size="16" color="#999"></uni-icons>
+                  <text class="word">{{item.dangerLocation||'--'}}</text>
+                </view>
+                <uni-tag :text="formatDangerStatus(item.status)" :type="item.status>0?'primary':'warning'"></uni-tag>
+              </view>
+              <view class="bottom">
+                <view class="icon-item">
+                  <image class="icon" src="/static/images/qiye.png" mode="widthFix"></image>
+                  <text class="word">{{item.entName}}</text>
+                </view>
+                <view class="icon-item">
+                  <image class="icon" src="/static/images/time.png" mode="widthFix"></image>
+                  <text class="word">{{item.submitTime}}</text>
+                </view>
+                <view class="icon-item">
+                  <image class="icon" src="/static/images/admin_icon.png" mode="widthFix"></image>
+                  <text class="word">{{item.groupName}}</text>
+                </view>
+                <view class="icon-item" @click.stop="showSuperVisor(item)">
+                  <image class="icon" src="/static/images/admin_icon.png" mode="widthFix"></image>
+                  <text>(责任单位)</text>
+                  <template>
+                    <view class="supervisor" v-if="item.supervisorGroupList">
+                      <view class="supervisor-item"
+                        v-for="(supervisor,supervisoridx) in formatsupervisorGroupList(item.supervisorGroupList)"
+                        :key="supervisoridx">
+                        <uni-tag :text="supervisor"
+                          custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
+                      </view>
+                    </view>
+                    <view class="supervisor" v-else>
+                      <uni-icons type="plusempty" size="20" color="#ccc"></uni-icons>
+                    </view>
+                  </template>
+                </view>
+              </view>
+            </view>
+          </uni-swipe-action-item>
+        </uni-card>
+      </uni-swipe-action>
+    </view>
+    <Create ref="danger" @success="search" :ent="ents" :danger="dangerCats"></Create>
+    <Detail ref="detail"></Detail>
+    <SupervisorList ref="SupervisorList" @success="search"></SupervisorList>
+  </view>
 </template>
 
 <script>
-	import industryApi from '@/api/industry.js'
-	import dangerApi from '@/api/danger.js'
-	import Create from './components/Create.vue'
-	import Detail from './components/Detail.vue'	
-	import SupervisorList from './components/SupervisorList.vue'						
-	export default {
-		components:{
-			Create,
-			Detail,
-			SupervisorList
-		},
-		data() {
-			return {
-				items:[],
-				page:1,
-				limit:10,
-				total:0,	
-				keywords: "",
-				ents:uni.getStorageSync('ents')||[],
-				dangerCats:uni.getStorageSync('dangerCats')||[]
-			}
-		},
-		onShow() {
-			this.getData();
-			this.init()
-		},
-		methods: {
-			init(){		
-				if(!uni.getStorageSync('ents')){
-					industryApi.getByList().then((res)=>{
-						uni.setStorageSync('ents',res.data)
-						this.ents=res.data
-					})
-				}else{
-					this.ents=uni.getStorageSync('ents')
-				}
-				if(!uni.getStorageSync('dangerCats')){
-					dangerApi.getCatByList().then((res)=>{
-						uni.setStorageSync('dangerCats',res.data)
-						this.dangerCats=res.data
-					})	
-				}else{
-					this.dangerCats=uni.getStorageSync('dangerCats')
-				}
-
-			},
-			search(){
-				this.resetFilter();
-				this.getData()
-			},
-			getData(){
-				dangerApi.getByPage({
-					page:this.page,
-					limit:this.limit,
-					keywords:this.keywords
-				}).then((res)=>{
-					this.items=this.items.concat(res.data)
-					this.total=res.total
-				})
-			},
-			handle({type,item}){
-				const self=this;
-				if(type==='detail'){					
-					this.$refs.detail.show(item)
-				}else if(type==='del'){
-					uni.showModal({
-						title: '提示',
-						content: '是否确定删除',
-						success: function (res) {
-							if (res.confirm) {
-								dangerApi.deleteById(item.dangerId).then(()=>{
-									uni.showToast({
-										title:'删除成功!',
-										icon:'none'
-									})
-									self.search()
-								})					
-							}
-						}
-					});					
-				}else{
-					this.$refs.danger.show({type,item})										
-				}
-			},
-			showSuperVisor(item){
-				this.$refs.SupervisorList.show(item)
-			},
-			formatDangerLevel(val){
-				let dangerLevelOptions=['末知','重大','较大','一般','较小'];
-				return dangerLevelOptions[val]
-			},
-			formatDangerStatus(val){
-				let status=['未整改','已整改'];
-				return status[val]
-			},
-			formatsupervisorGroupList(val){
-				return val.split(',')
-			},			
-			resetFilter(){
-				this.page = 1
-				this.limit = 10
-				this.total = 0
-				this.items=[]
-			}
-		},
-		onReachBottom() {
-			if(this.total>this.limit*this.page){
-				this.page++
-				this.getData()				
-			}
-		}
-	}
+  import industryApi from '@/api/industry.js'
+  import dangerApi from '@/api/danger.js'
+  import Create from './components/Create.vue'
+  import Detail from './components/Detail.vue'
+  import SupervisorList from './components/SupervisorList.vue'
+  export default {
+    components: {
+      Create,
+      Detail,
+      SupervisorList
+    },
+    data() {
+      return {
+        items: [],
+        page: 1,
+        limit: 10,
+        total: 0,
+        keywords: "",
+        ents: [],
+        dangerCats: []
+      }
+    },
+    onShow() {
+      this.getData();
+      this.init()
+    },
+    methods: {
+      init() {
+        industryApi.selectByList().then((res) => {
+          this.ents = res.data
+        })
+        dangerApi.getCatByList().then((res) => {
+          this.dangerCats = res.data
+        })
+      },
+      search() {
+        this.resetFilter();
+        this.getData()
+      },
+      getData() {
+        dangerApi.getByPage({
+          page: this.page,
+          limit: this.limit,
+          keywords: this.keywords
+        }).then((res) => {
+          this.items = this.items.concat(res.data)
+          this.total = res.total
+        })
+      },
+      handle({
+        type,
+        item
+      }) {
+        const self = this;
+        if (type === 'detail') {
+          this.$refs.detail.show(item)
+        } else if (type === 'del') {
+          uni.showModal({
+            title: '提示',
+            content: '是否确定删除',
+            success: function(res) {
+              if (res.confirm) {
+                dangerApi.deleteById(item.dangerId).then(() => {
+                  uni.showToast({
+                    title: '删除成功!',
+                    icon: 'none'
+                  })
+                  self.search()
+                })
+              }
+            }
+          });
+        } else {
+          this.$refs.danger.show({
+            type,
+            item
+          })
+        }
+      },
+      showSuperVisor(item) {
+        this.$refs.SupervisorList.show(item)
+      },
+      formatDangerLevel(val) {
+        let dangerLevelOptions = ['末知', '重大', '较大', '一般', '较小'];
+        return dangerLevelOptions[val]
+      },
+      formatDangerStatus(val) {
+        let status = ['未整改', '已整改'];
+        return status[val]
+      },
+      formatsupervisorGroupList(val) {
+        return val.split(',')
+      },
+      resetFilter() {
+        this.page = 1
+        this.limit = 10
+        this.total = 0
+        this.items = []
+      }
+    },
+    onReachBottom() {
+      if (this.total > this.limit * this.page) {
+        this.page++
+        this.getData()
+      }
+    }
+  }
 </script>
 
 <style lang="scss" scoped>
-.page-wrap{
-	padding:0 20rpx;
-	.pageTabs{
-		background-color: #fff;
-	}
-	.head{
-		margin-top: 20rpx;
-		.handle{
-			display: inline-block;
-			// background-color: #007aff;
-			color: #777777;
-			text-align: center;
-			padding:16rpx 20rpx;
-			border-radius: 30rpx;
-			// border: 1px solid #007aff;
-			font-size: 28rpx;
-			line-height: 1;
-			box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
-		}
-		.addbt{
-			width: 100rpx;
-			height: 100rpx;
-			border-radius: 50%;
-			color: #fff;
-			background-color: rgba(64,158,255,0.6);			
-			box-shadow:0 0 10rpx rgba(0,0,0,0.6);
-			position: fixed;
-			right: 10rpx;
-			bottom: 20%;
-			z-index: 99;
-			text-align: center;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			.word{
-				width: 80rpx;
-				height: 80rpx;
-				border-radius: 50%;
-				margin: 5rpx auto;
-				font-size: 28rpx;
-				letter-spacing: 2px;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-			}
-		}
-	}
-	.pageMain{
-		margin-top: 20rpx;
-		background-color: #f5f5f5;
-		padding-bottom: 50rpx;
-		.slot-button{
-			width: 400rpx;
-			height: 100%;
-			display: flex;
-			flex-direction: row;
-			justify-content: center;
-			align-items: center;
-			color: #fff;
-			padding-left: 10px;
-			.bt{
-				width: 50%;
-				height: 100%;
-				font-size: 30rpx;
-				box-sizing: border-box;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-				&.edit{
-				    background-color:#007aff;
-				}
-				&.del{
-					background-color:#F56C6C;
-				}
-				&.detail{
-					background-color: #e6a23c;
-				}
-			}
-		}
-		.item{
-			color: #666;
-			.name{
-				font-size: 32rpx;
-				color: #222222;
-				line-height: 1;
-				padding-bottom: 10rpx;
-			}
-			image{
-				&.icon{
-					width: 30rpx;
-					height: 30rpx;
-					display: block;
-				}
-			}
-			.item-row{
-				display: flex;
-				align-items: center;
-				padding-top: 14rpx;
-				&.space-between{
-					justify-content: space-between;
-				}
-			}
-			.icon-item{
-				display: flex;
-				align-items: center;
-				.word{
-					margin-left: 8rpx;
-					font-size: 24rpx;
-				}
-				.supervisor{
-					width: 500rpx;
-					flex-shrink: 0;
-					display: flex;
-					flex-wrap: wrap;
-					.supervisor-item{
-						margin: 4rpx;
-					}
-				}
-			}
-		}
-	}
-}
-</style>
+  .page-wrap {
+    padding: 0 20rpx;
+
+    .pageTabs {
+      background-color: #fff;
+    }
+
+    .head {
+      margin-top: 20rpx;
+
+      .handle {
+        display: inline-block;
+        // background-color: #007aff;
+        color: #777777;
+        text-align: center;
+        padding: 16rpx 20rpx;
+        border-radius: 30rpx;
+        // border: 1px solid #007aff;
+        font-size: 28rpx;
+        line-height: 1;
+        box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
+      }
+
+      .addbt {
+        width: 100rpx;
+        height: 100rpx;
+        border-radius: 50%;
+        color: #fff;
+        background-color: rgba(64, 158, 255, 0.6);
+        box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.6);
+        position: fixed;
+        right: 10rpx;
+        bottom: 20%;
+        z-index: 99;
+        text-align: center;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+
+        .word {
+          width: 80rpx;
+          height: 80rpx;
+          border-radius: 50%;
+          margin: 5rpx auto;
+          font-size: 28rpx;
+          letter-spacing: 2px;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+        }
+      }
+    }
+
+    .pageMain {
+      margin-top: 20rpx;
+      background-color: #f5f5f5;
+      padding-bottom: 50rpx;
+
+      .slot-button {
+        width: 400rpx;
+        height: 100%;
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: center;
+        color: #fff;
+        padding-left: 10px;
+
+        .bt {
+          width: 50%;
+          height: 100%;
+          font-size: 30rpx;
+          box-sizing: border-box;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+
+          &.edit {
+            background-color: #007aff;
+          }
+
+          &.del {
+            background-color: #F56C6C;
+          }
+
+          &.detail {
+            background-color: #e6a23c;
+          }
+        }
+      }
+
+      .item {
+        color: #666;
+
+        .name {
+          font-size: 32rpx;
+          color: #222222;
+          line-height: 1;
+          padding-bottom: 10rpx;
+        }
+
+        image {
+          &.icon {
+            width: 30rpx;
+            height: 30rpx;
+            display: block;
+          }
+        }
+
+        .item-row {
+          display: flex;
+          align-items: center;
+          padding-top: 14rpx;
+
+          &.space-between {
+            justify-content: space-between;
+          }
+        }
+
+        .icon-item {
+          display: flex;
+          align-items: center;
+
+          .word {
+            margin-left: 8rpx;
+            font-size: 24rpx;
+          }
+
+          .supervisor {
+            width: 500rpx;
+            flex-shrink: 0;
+            display: flex;
+            flex-wrap: wrap;
+
+            .supervisor-item {
+              margin: 4rpx;
+            }
+          }
+        }
+      }
+    }
+  }
+</style>

+ 569 - 496
pages/index/index.vue

@@ -1,503 +1,576 @@
 <template>
-<view class="page-wrap">
-	<uni-section title="铜川市印台区应急管理局">
-		<template v-slot:decoration>
-		  <view class="decoration">
-			  <image class="icon" src="/static/images/admin_icon.png"></image>
-		  </view>
-		</template>
-		<view class="tab-container">
-			<view class="item" @click="linkTo('duty')">
-				<view class="icon">
-					<image src="/static/images/duty.png" mode=""></image>
-				</view>
-				<view class="name">应急值守</view>	
-			</view>
-			<view class="item" @click="linkTo('team')">
-				<view class="icon">
-					<image src="/static/images/team.png" mode=""></image>
-				</view>
-				<view class="name">队伍建设</view>	
-			</view>
-			<view class="item" @click="linkTo('goods')">
-				<view class="icon">
-					<image src="/static/images/goods.png" mode=""></image>
-				</view>
-				<view class="name">物资储备</view>	
-			</view>
-			<view class="item" @click="linkTo('industry')">
-				<view class="icon">
-					<image src="/static/images/industry.png" mode=""></image>
-				</view>
-				<view class="name">行业管理</view>	
-			</view>
-			<view class="item" @click="linkTo('danger')">
-				<view class="icon">
-					<image src="/static/images/danger.png" mode=""></image>
-				</view>
-				<view class="name">隐患管理</view>	
-			</view>
-			<view class="item" @click="linkTo('disaster')">
-				<view class="icon">
-					<image src="/static/images/disaster.png" mode=""></image>
-				</view>
-				<view class="name">自然灾害</view>	
-			</view>
-			<view class="item" @click="linkTo('reporting')">
-				<view class="icon">
-					<image src="/static/images/reporting.png" mode=""></image>
-				</view>
-				<view class="name">突发事件</view>	
-			</view>
-			<view class="item" @click="linkTo('camera')">
-				<view class="icon">
-					<image src="/static/images/camera.png" mode=""></image>
-				</view>
-				<view class="name">现场视频</view>	
-			</view>			
-		</view>
-	</uni-section>
-	<div class="duty-conatiner">
-		<uni-section title="值班情况">
-			<template v-slot:decoration>
-				<view class="decoration">
-					<image class="icon" src="/static/images/duty_icon.png"></image>
-				</view>
-			</template>
-			<template v-slot:right>
-				<view style="width: 200px;">
-					<uni-data-select   v-model="dutyGroupId" :localdata="groupList" placeholder="请选择部门" :clear="false" @change="getdutyData"></uni-data-select>
-				</view>
-			</template>
-			<view class="filter-box">
-				<view class="bt lf" @click="changeDate(-1)">
-					<uni-icons type="left" color="#777" size="30"></uni-icons>
-				</view>
-				<view class="time">{{dutyDate}}</view>
-				<view class="bt rt" @click="changeDate(1)">
-					<uni-icons type="right" color="#777" size="30"></uni-icons>
-				</view>
-			</view>
-			<view class="duty-item" v-for="(duty,index) in dutys" :key="duty.accountId">
-					<view class="avatar">
-						<image class="icon" src="/static/images/avatar.png" mode=""></image>
-					</view>
-					<view class="info">
-						<view class="top">
-							 <view class="posName">
-								 <text>{{duty.posName}}</text>
-							 </view>							
-							<view class="posbox">
-								 <view class="positionName">
-									<uni-tag :inverted="true" :text="duty.positionName" type="success" size="small"></uni-tag>	
-								 </view>	
-								 <view class="groupName">
-									<uni-tag :inverted="true" :text="duty.groupName" type="primary" size="small"></uni-tag>
-								</view>															 
-							</view>
-						</view>
-						<view class="bottom">
-							<view class="user">
-								<div class="userinfo">
-									<image class="icon" src="/static/images/user.png"></image>
-									<view class="name">{{duty.accountName}}</view>	
-								</div>
-							</view>
-							<view class="phone" @click="callPhone(duty.accountPhone)">
-								<image class="icon" src="/static/images/phone.png"></image>
-								<view class="phoneNumber">{{duty.accountPhone||'未填写'}}</view>
-							</view>
-						</view>
-					</view>
-			</view>
-			<view class="isEmpty" v-if="dutys.length<1">
-				暂无数据
-			</view>
-		</uni-section>
-	</div>
-	<div class="item-conatiner">
-		<uni-section title="统计分析">
-			<template v-slot:decoration>
-				<view class="decoration">
-					<image class="icon" src="/static/images/statistics_icon.png"></image>
-				</view>
-			</template>
-			<view class="statisticsTabs">
-				<uni-segmented-control :current="statisticsIdx" :values="statisticsTabs" style-type="text" active-color="#007aff" @clickItem="changeStatics" />				
-			</view>	
-			<view class="statisticscont">
-				<uni-table border stripe emptyText="暂无更多数据" >
-					<uni-tr>
-						<uni-th align="center" width='50'>序号</uni-th>
-						<uni-th align="center">{{statisticsData.name}}</uni-th>
-						<uni-th align="center">{{statisticsData.unit}}</uni-th>
-					</uni-tr>
-					<uni-tr v-for="(item,idx) in statisticsData.items" :key="idx">
-						<uni-td align="center">{{idx+1}}</uni-td>
-						<uni-td align="center">{{item.name}}</uni-td>
-						<uni-td align="center">{{item.num}}</uni-td>
-					</uni-tr>
-				</uni-table>
-			</view>
-			<uni-card margin='10px 0' padding='0'>
-				<StatisticsChart :data='chartdata'></StatisticsChart> 
-			</uni-card>
-		</uni-section>
-	</div>				
-</view>
+  <view class="page-wrap">
+    <uni-section :title="curGroupName">
+      <template v-slot:decoration>
+        <view class="decoration">
+          <image class="icon" src="/static/images/admin_icon.png"></image>
+        </view>
+      </template>
+      <view class="tab-container">
+        <view class="item" @click="linkTo('duty')">
+          <view class="icon">
+            <image src="/static/images/duty.png" mode=""></image>
+          </view>
+          <view class="name">应急值守</view>
+        </view>
+        <view class="item" @click="linkTo('team')">
+          <view class="icon">
+            <image src="/static/images/team.png" mode=""></image>
+          </view>
+          <view class="name">队伍建设</view>
+        </view>
+        <view class="item" @click="linkTo('goods')">
+          <view class="icon">
+            <image src="/static/images/goods.png" mode=""></image>
+          </view>
+          <view class="name">物资储备</view>
+        </view>
+        <view class="item" @click="linkTo('industry')">
+          <view class="icon">
+            <image src="/static/images/industry.png" mode=""></image>
+          </view>
+          <view class="name">行业管理</view>
+        </view>
+        <view class="item" @click="linkTo('danger')">
+          <view class="icon">
+            <image src="/static/images/danger.png" mode=""></image>
+          </view>
+          <view class="name">隐患管理</view>
+        </view>
+        <view class="item" @click="linkTo('disaster')">
+          <view class="icon">
+            <image src="/static/images/disaster.png" mode=""></image>
+          </view>
+          <view class="name">自然灾害</view>
+        </view>
+        <view class="item" @click="linkTo('reporting')">
+          <view class="icon">
+            <image src="/static/images/reporting.png" mode=""></image>
+          </view>
+          <view class="name">突发事件</view>
+        </view>
+        <view class="item" @click="linkTo('camera')">
+          <view class="icon">
+            <image src="/static/images/camera.png" mode=""></image>
+          </view>
+          <view class="name">现场视频</view>
+        </view>
+      </view>
+    </uni-section>
+    <div class="duty-conatiner">
+      <uni-section title="值班情况">
+        <template v-slot:decoration>
+          <view class="decoration">
+            <image class="icon" src="/static/images/duty_icon.png"></image>
+          </view>
+        </template>
+        <template v-slot:right>
+          <view style="width: 200px;">
+            <uni-data-select v-model="dutyGroupId" :localdata="groupList" :value="curGroupId" placeholder="请选择部门"
+              :clear="false" @change="getdutyData"></uni-data-select>
+          </view>
+        </template>
+        <view class="filter-box">
+          <view class="bt lf" @click="changeDate(-1)">
+            <uni-icons type="left" color="#777" size="30"></uni-icons>
+          </view>
+          <view class="time">{{dutyDate}}</view>
+          <view class="bt rt" @click="changeDate(1)">
+            <uni-icons type="right" color="#777" size="30"></uni-icons>
+          </view>
+        </view>
+        <view class="duty-item" v-for="(duty,index) in dutys" :key="duty.accountId">
+          <view class="avatar">
+            <image class="icon" src="/static/images/avatar.png" mode=""></image>
+          </view>
+          <view class="info">
+            <view class="top">
+              <view class="posName">
+                <text>{{duty.posName}}</text>
+              </view>
+              <view class="posbox">
+                <view class="positionName">
+                  <uni-tag :inverted="true" :text="duty.positionName" type="success" size="small"></uni-tag>
+                </view>
+                <view class="groupName">
+                  <uni-tag :inverted="true" :text="duty.groupName" type="primary" size="small"></uni-tag>
+                </view>
+              </view>
+            </view>
+            <view class="bottom">
+              <view class="user">
+                <div class="userinfo">
+                  <image class="icon" src="/static/images/user.png"></image>
+                  <view class="name">{{duty.accountName}}</view>
+                </div>
+              </view>
+              <view class="phone" @click="callPhone(duty.accountPhone)">
+                <image class="icon" src="/static/images/phone.png"></image>
+                <view class="phoneNumber">{{duty.accountPhone||'未填写'}}</view>
+              </view>
+            </view>
+          </view>
+        </view>
+        <view class="isEmpty" v-if="dutys.length<1">
+          暂无数据
+        </view>
+      </uni-section>
+    </div>
+    <div class="item-conatiner">
+      <uni-section title="统计分析">
+        <template v-slot:decoration>
+          <view class="decoration">
+            <image class="icon" src="/static/images/statistics_icon.png"></image>
+          </view>
+        </template>
+        <view class="statisticsTabs">
+          <uni-segmented-control :current="statisticsIdx" :values="statisticsTabs" style-type="text"
+            active-color="#007aff" @clickItem="changeStatics" />
+        </view>
+        <view class="statisticscont">
+          <uni-table border stripe emptyText="暂无更多数据">
+            <uni-tr>
+              <uni-th align="center" width='50'>序号</uni-th>
+              <uni-th align="center">{{statisticsData.name}}</uni-th>
+              <uni-th align="center">{{statisticsData.unit}}</uni-th>
+            </uni-tr>
+            <uni-tr v-for="(item,idx) in statisticsData.items" :key="idx">
+              <uni-td align="center">{{idx+1}}</uni-td>
+              <uni-td align="center">{{item.name}}</uni-td>
+              <uni-td align="center">{{item.num}}</uni-td>
+            </uni-tr>
+          </uni-table>
+        </view>
+        <uni-card margin='10px 0' padding='0'>
+          <StatisticsChart :data='chartdata'></StatisticsChart>
+        </uni-card>
+      </uni-section>
+    </div>
+  </view>
 </template>
 
 <script>
-	import StatisticsChart from '@/components/IndexBarChart.vue'
-	import Echart from '@/components/Echart.vue'
-	import dutyApi from '@/api/duty.js'
-	import teamApi from '@/api/team.js'
-	import goodsApi from '@/api/goods.js'
-	import industryApi from '@/api/industry.js'	
-    import dangerApi from '@/api/danger.js'	
-	import reportingApi from '@/api/reporting.js'			
-	import {parseTime} from '@/libs/index.js'
-	import {selectGroupUser,getGroupView} from '@/api/system.js'
-	export default {
-		components:{
-			StatisticsChart
-		},
-		computed:{
-			groupList(){
-				let groupView=this.groupView;
-				if(groupView&&groupView.length>0){
-					let groupList=[]
-					groupView.map((item,index)=>{
-						groupList.push({...item,value:item.groupId,text:item.groupName})
-						if(Array.isArray(item.children)&&item.children.length>0){
-							groupList=groupList.concat(item.children.map(item=>{return{...item,value:item.groupId,text:item.groupName}}))
-						}			
-					})
-					this.dutyGroupId=groupList[0].value				
-					return groupList	
-				}else{
-					return[]
-				}
-			}	
-		},
-		data() {
-			return {
-				dutys: [],
-				groupView:[],
-				statisticsIdx:0,
-				dutyDate:parseTime(new Date(),'{y}-{m}-{d}'),
-				dutyGroupId:undefined,
-				statisticsTabs: ['队伍建设', '物资储备', '行业管理', '隐患管理','突发事件'],
-				statisticsData:{
-					name:"救援队",unit:"人数",
-					items:[]
-				},
-				chartdata:{yData:[],xData:[]}
-			}
-		},
-		onShow() {
-		 this.init()
-		},
-		methods: {
-			init(){
-				this.getdutyData();
-				this.getStatisticsData()	
-				this.getBaseData()
-			},
-			changeDate(step){
-				let date=new Date(this.dutyDate)
-				date.setDate(date.getDate()+step)
-				this.dutyDate=parseTime(date,'{y}-{m}-{d}')
-				this.getdutyData()
-			},
-			getdutyData(){
-				dutyApi.getRecordByList({dutyDate:this.dutyDate,groupId:this.dutyGroupId}).then((res)=>{
-					this.dutys=res.data
-				})
-			},
-			getBaseData(){
-				if(uni.getStorageSync('dutys')){
-					this.groupView=uni.getStorageSync("groupView")
-				}else{
-					dutyApi.getByList().then((res)=>{
-						uni.setStorageSync("dutys",res.data)
-					})
-					selectGroupUser().then((res)=>{
-						uni.setStorageSync("groupUser",res.data)
-					})
-					getGroupView().then((res)=>{
-						uni.setStorageSync("groupView",res.data)
-						this.groupView=res.data
-					})	
-				}
-			},
-			getStatisticsData(){		
-				if(this.statisticsIdx===0){
-					teamApi.counterByMember().then((res)=>{
-						let data=res.data;
-						this.statisticsData.items=data.map(item=>{
-							return{
-								name:item.teamName,
-								num:item.count
-							}
-						});
-					})
-					teamApi.counterByCat().then((res)=>{
-						let data=res.data;
-						this.chartdata={
-							yData:data.map(item=>item.count),
-							xData:data.map(item=>item.teamCatTitle),
-							name:"队伍建设"
-						}
-					})
-				}
-				if(this.statisticsIdx===1){
-					goodsApi.totalByCat().then((res)=>{
-						let data=res.data;
-						this.statisticsData.items=data.map(item=>{
-							return{
-								name:item.goodsCatTitle,
-								num:item.total
-							}
-						});
-						this.chartdata={
-							yData:data.map(item=>item.total),
-							xData:data.map(item=>item.goodsCatTitle),
-							name:"数量"
-						}
-					})
-				}
-				if(this.statisticsIdx===2){
-					industryApi.counterByGroup().then((res)=>{
-						let data=res.data;
-						this.statisticsData.items=data.map(item=>{
-							return{
-								name:item.groupName,
-								num:item.count
-							}
-						});
-					})
-					industryApi.counterByCat().then((res)=>{
-						let data=res.data;
-						this.chartdata={
-							yData:data.map(item=>item.count),
-							xData:data.map(item=>item.entCatTitle),
-							name:"企业/单位数目"
-						}
-					})
-				}
-				if(this.statisticsIdx===3){
-					dangerApi.counterByGroup().then((res)=>{
-						let data=res.data;
-						this.statisticsData.items=data.map(item=>{
-							return{
-								name:item.groupName,
-								num:item.count
-							}
-						});
-					})
-					dangerApi.counterByCat().then((res)=>{
-						let data=res.data;
-						this.chartdata={
-							yData:data.map(item=>item.count),
-							xData:data.map(item=>item.dangerCatTitle),
-							name:"隐患数目"
-						}
-					})
-				}
-				if(this.statisticsIdx===4){
-					reportingApi.counterByType().then((res)=>{
-						let data=res.data;
-						this.statisticsData.items=data.map(item=>{
-							return{
-								name:item.reportingTypeTitle,
-								num:item.count
-							}
-						});
-						this.chartdata={
-							yData:data.map(item=>item.count),
-							xData:data.map(item=>item.reportingTypeTitle),
-							name:"突发事件"
-						}
-					})
-				}				
-			},
-			linkTo(type){
-				uni.navigateTo({
-					url:`/packageA/pages/${type}/index`
-				})
-			},
-			changeStatics({currentIndex}) {
-				if (this.statisticsIdx !== currentIndex) {
-					this.statisticsIdx = currentIndex				
-					let ths=[{name:"救援队",unit:"人数"},{name:"物资分类",unit:"数量"},{name:"监管单位",unit:"企业/单位数目"},{name:"监管单位",unit:"隐患数目"},{name:"突发事件",unit:"数目"}]
-					this.statisticsData={
-						name:ths[currentIndex].name,unit:ths[currentIndex].unit,
-						items:[]
-					},
-					this.getStatisticsData()
-				}
-			},
-			callPhone(phoneNumber) {
-			 if(!phoneNumber)return
-			  wx.makePhoneCall({
-			    phoneNumber
-			  })
-			}
-		}
-	}
+  import StatisticsChart from '@/components/IndexBarChart.vue'
+  import Echart from '@/components/Echart.vue'
+  import dutyApi from '@/api/duty.js'
+  import teamApi from '@/api/team.js'
+  import goodsApi from '@/api/goods.js'
+  import industryApi from '@/api/industry.js'
+  import dangerApi from '@/api/danger.js'
+  import reportingApi from '@/api/reporting.js'
+  import {
+    parseTime
+  } from '@/libs/index.js'
+  import {
+    selectGroupUser,
+    getGroupView
+  } from '@/api/system.js'
+  export default {
+    components: {
+      StatisticsChart
+    },
+    computed: {
+      groupList() {
+        let groupView = this.groupView;
+        if (groupView && groupView.length > 0) {
+          let groupList = []
+          groupView.map((item, index) => {
+            groupList.push({
+              ...item,
+              value: item.groupId,
+              text: item.groupName
+            })
+            if (Array.isArray(item.children) && item.children.length > 0) {
+              groupList = groupList.concat(item.children.map(item => {
+                return {
+                  ...item,
+                  value: item.groupId,
+                  text: item.groupName
+                }
+              }))
+            }
+          })
+          this.dutyGroupId = this.curGroupId
+          return groupList
+        } else {
+          return []
+        }
+      }
+    },
+    data() {
+      return {
+        curGroupId: null,
+        curGroupName: "",
+        dutys: [],
+        groupView: [],
+        statisticsIdx: 0,
+        dutyDate: parseTime(new Date(), '{y}-{m}-{d}'),
+        dutyGroupId: undefined,
+        statisticsTabs: ['队伍建设', '物资储备', '行业管理', '隐患管理', '突发事件'],
+        statisticsData: {
+          name: "救援队",
+          unit: "人数",
+          items: []
+        },
+        chartdata: {
+          yData: [],
+          xData: []
+        }
+      }
+    },
+    onShow() {
+      this.init()
+    },
+    methods: {
+      init() {
+        let userData = uni.getStorageSync('accountInfo')
+        this.curGroupId = userData.groupId
+        this.curGroupName = userData.groupName
+        this.getdutyData();
+        this.getStatisticsData()
+        this.getBaseData()
+      },
+      changeDate(step) {
+        let date = new Date(this.dutyDate)
+        date.setDate(date.getDate() + step)
+        this.dutyDate = parseTime(date, '{y}-{m}-{d}')
+        this.getdutyData()
+      },
+      getdutyData() {
+        dutyApi.getRecordByList({
+          dutyDate: this.dutyDate,
+          groupId: this.dutyGroupId
+        }).then((res) => {
+          this.dutys = res.data
+        })
+      },
+      getBaseData() {
+        if (uni.getStorageSync('dutys')) {
+          this.groupView = uni.getStorageSync("groupView")
+        } else {
+          dutyApi.getByList().then((res) => {
+            uni.setStorageSync("dutys", res.data)
+          })
+          selectGroupUser().then((res) => {
+            uni.setStorageSync("groupUser", res.data)
+          })
+          getGroupView().then((res) => {
+            uni.setStorageSync("groupView", res.data)
+            this.groupView = res.data
+          })
+        }
+      },
+      getStatisticsData() {
+        if (this.statisticsIdx === 0) {
+          teamApi.counterByMember().then((res) => {
+            let data = res.data;
+            this.statisticsData.items = data.map(item => {
+              return {
+                name: item.teamName,
+                num: item.count
+              }
+            });
+          })
+          teamApi.counterByCat().then((res) => {
+            let data = res.data;
+            this.chartdata = {
+              yData: data.map(item => item.count),
+              xData: data.map(item => item.teamCatTitle),
+              name: "队伍建设"
+            }
+          })
+        }
+        if (this.statisticsIdx === 1) {
+          goodsApi.totalByCat().then((res) => {
+            let data = res.data;
+            this.statisticsData.items = data.map(item => {
+              return {
+                name: item.goodsCatTitle,
+                num: item.total
+              }
+            });
+            this.chartdata = {
+              yData: data.map(item => item.total),
+              xData: data.map(item => item.goodsCatTitle),
+              name: "数量"
+            }
+          })
+        }
+        if (this.statisticsIdx === 2) {
+          industryApi.counterByGroup().then((res) => {
+            let data = res.data;
+            this.statisticsData.items = data.map(item => {
+              return {
+                name: item.groupName,
+                num: item.count
+              }
+            });
+          })
+          industryApi.counterByCat().then((res) => {
+            let data = res.data;
+            this.chartdata = {
+              yData: data.map(item => item.count),
+              xData: data.map(item => item.entCatTitle),
+              name: "企业/单位数目"
+            }
+          })
+        }
+        if (this.statisticsIdx === 3) {
+          dangerApi.counterByGroup().then((res) => {
+            let data = res.data;
+            this.statisticsData.items = data.map(item => {
+              return {
+                name: item.groupName,
+                num: item.count
+              }
+            });
+          })
+          dangerApi.counterByCat().then((res) => {
+            let data = res.data;
+            this.chartdata = {
+              yData: data.map(item => item.count),
+              xData: data.map(item => item.dangerCatTitle),
+              name: "隐患数目"
+            }
+          })
+        }
+        if (this.statisticsIdx === 4) {
+          reportingApi.counterByType().then((res) => {
+            let data = res.data;
+            this.statisticsData.items = data.map(item => {
+              return {
+                name: item.reportingTypeTitle,
+                num: item.count
+              }
+            });
+            this.chartdata = {
+              yData: data.map(item => item.count),
+              xData: data.map(item => item.reportingTypeTitle),
+              name: "突发事件"
+            }
+          })
+        }
+      },
+      linkTo(type) {
+        uni.navigateTo({
+          url: `/packageA/pages/${type}/index`
+        })
+      },
+      changeStatics({
+        currentIndex
+      }) {
+        if (this.statisticsIdx !== currentIndex) {
+          this.statisticsIdx = currentIndex
+          let ths = [{
+            name: "救援队",
+            unit: "人数"
+          }, {
+            name: "物资分类",
+            unit: "数量"
+          }, {
+            name: "监管单位",
+            unit: "企业/单位数目"
+          }, {
+            name: "监管单位",
+            unit: "隐患数目"
+          }, {
+            name: "突发事件",
+            unit: "数目"
+          }]
+          this.statisticsData = {
+              name: ths[currentIndex].name,
+              unit: ths[currentIndex].unit,
+              items: []
+            },
+            this.getStatisticsData()
+        }
+      },
+      callPhone(phoneNumber) {
+        if (!phoneNumber) return
+        wx.makePhoneCall({
+          phoneNumber
+        })
+      }
+    }
+  }
 </script>
 
 <style lang="scss" scoped>
-.page-wrap{
-	padding: 20rpx;
-	background-color: #f5f5f5;
-	.decoration{
-		padding-right: 6rpx;
-		image{
-			display: block;
-			width: 30rpx;
-			height: 30rpx;
-		}
-	}
-	.tab-container{
-		background: #fff;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		flex-wrap: wrap;
-		padding-bottom: 20rpx;
-		.item{
-			width: 25%;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			flex-direction: column;
-			padding: 0 10rpx 20rpx;
-			box-sizing: border-box;
-			
-			.icon{
-					width: 80rpx;
-					height: 80rpx;
-				image{
-					display: block;
-					width: 80rpx;
-					height: 80rpx;
-				}
-			}
-			.name{
-				padding-top: 16rpx;
-				line-height: 1;
-				font-size: 28rpx;
-				color: #222222;
-				text-align: center;
-			}
-		}
-	}
-	.duty-conatiner{
-		margin-top: 40rpx;
-		padding-bottom: 10rpx;
-		background-color: #fff;
-		.filter-box{
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			padding-bottom: 20rpx;
-			.time{
-				padding:16rpx 20rpx;
-				width: 260rpx;
-				border: 1px solid #ddd;
-				text-align: center;
-				border-radius: 6px;
-				margin: 0 40rpx;
-				font-size: 32rpx;
-				line-height: 1;
-				color: #424242;
-				font-weight: 600;
-				box-shadow:0 0 4px rgba(0, 0, 0, 0.2);
-			}
-		}
-		.isEmpty{
-			text-align: center;
-			font-size: 36rpx;
-			line-height: 1;
-			padding: 36rpx;
-			color: #999999;
-			background-color: #f8f8f8;
-		}
-		.duty-item{
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			position: relative;
-			box-shadow: 0px 0px 3px 1px rgba(0, 0, 0, 0.08);
-			padding: 20rpx 14rpx;
-			margin: 20rpx;
-			.icon,.icon image{
-				display: block;
-				width: 30rpx;
-				height: 30rpx;
-				flex-shrink: 0;
-			}
-			.avatar {
-				image{
-					width: 60rpx;
-					height: 60rpx;	
-				}
-			}
-			.posbox{
-				// display: flex;
-				// align-items: center;
-				// justify-content: space-between;
-				padding: 20rpx 0;
-				// .groupName,.positionName{
-				// 	width: 45%;
-				// 	overflow: hidden;
-				// 	text-overflow: ellipsis;
-				// 	&.positionName{
-				// 		display: flex;
-				// 		align-items: center;
-				// 		justify-content: flex-end;
-				// 	}
-				// }
-				.groupName{
-					margin-top: 16rpx;
-				}
-			}
-			.info{
-				flex: 1;
-				padding:0 14rpx;
-				.user,.phone{
-					display: flex;
-					align-items: center;
-					.name,.phoneNumber{
-						color: #999;
-						font-size: 12px;
-						font-weight: normal;
-						// overflow: hidden;
-						line-height: 1;
-					}
-				}
-				.user{
-					padding: 10rpx 0;
-					.userinfo{
-						display: flex;
-						align-items: center;
-					}
-				}
-				.bottom {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-				}
-			}
-		}
-	}
-	.statisticsTabs{
-		padding: 0 16rpx 40rpx 16rpx;
-	}
-	.statisticscont{
-		padding:0 16rpx;
-	}
-}
-</style>
+  .page-wrap {
+    padding: 20rpx;
+    background-color: #f5f5f5;
+
+    .decoration {
+      padding-right: 6rpx;
+
+      image {
+        display: block;
+        width: 30rpx;
+        height: 30rpx;
+      }
+    }
+
+    .tab-container {
+      background: #fff;
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      flex-wrap: wrap;
+      padding-bottom: 20rpx;
+
+      .item {
+        width: 25%;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        flex-direction: column;
+        padding: 0 10rpx 20rpx;
+        box-sizing: border-box;
+
+        .icon {
+          width: 80rpx;
+          height: 80rpx;
+
+          image {
+            display: block;
+            width: 80rpx;
+            height: 80rpx;
+          }
+        }
+
+        .name {
+          padding-top: 16rpx;
+          line-height: 1;
+          font-size: 28rpx;
+          color: #222222;
+          text-align: center;
+        }
+      }
+    }
+
+    .duty-conatiner {
+      margin-top: 40rpx;
+      padding-bottom: 10rpx;
+      background-color: #fff;
+
+      .filter-box {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        padding-bottom: 20rpx;
+
+        .time {
+          padding: 16rpx 20rpx;
+          width: 260rpx;
+          border: 1px solid #ddd;
+          text-align: center;
+          border-radius: 6px;
+          margin: 0 40rpx;
+          font-size: 32rpx;
+          line-height: 1;
+          color: #424242;
+          font-weight: 600;
+          box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
+        }
+      }
+
+      .isEmpty {
+        text-align: center;
+        font-size: 36rpx;
+        line-height: 1;
+        padding: 36rpx;
+        color: #999999;
+        background-color: #f8f8f8;
+      }
+
+      .duty-item {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        position: relative;
+        box-shadow: 0px 0px 3px 1px rgba(0, 0, 0, 0.08);
+        padding: 20rpx 14rpx;
+        margin: 20rpx;
+
+        .icon,
+        .icon image {
+          display: block;
+          width: 30rpx;
+          height: 30rpx;
+          flex-shrink: 0;
+        }
+
+        .avatar {
+          image {
+            width: 60rpx;
+            height: 60rpx;
+          }
+        }
+
+        .posbox {
+          // display: flex;
+          // align-items: center;
+          // justify-content: space-between;
+          padding: 20rpx 0;
+
+          // .groupName,.positionName{
+          // 	width: 45%;
+          // 	overflow: hidden;
+          // 	text-overflow: ellipsis;
+          // 	&.positionName{
+          // 		display: flex;
+          // 		align-items: center;
+          // 		justify-content: flex-end;
+          // 	}
+          // }
+          .groupName {
+            margin-top: 16rpx;
+          }
+        }
+
+        .info {
+          flex: 1;
+          padding: 0 14rpx;
+
+          .user,
+          .phone {
+            display: flex;
+            align-items: center;
+
+            .name,
+            .phoneNumber {
+              color: #999;
+              font-size: 12px;
+              font-weight: normal;
+              // overflow: hidden;
+              line-height: 1;
+            }
+          }
+
+          .user {
+            padding: 10rpx 0;
+
+            .userinfo {
+              display: flex;
+              align-items: center;
+            }
+          }
+
+          .bottom {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+          }
+        }
+      }
+    }
+
+    .statisticsTabs {
+      padding: 0 16rpx 40rpx 16rpx;
+    }
+
+    .statisticscont {
+      padding: 0 16rpx;
+    }
+  }
+</style>