|  |  |  | 
|---|
|  |  |  | <div class="home_header"> | 
|---|
|  |  |  | <div class="mb10 fs17">下午好,{{ userInfo.realname }}</div> | 
|---|
|  |  |  | <div class="fs13"> | 
|---|
|  |  |  | 今天是 {{ nowDate }} {{ nowWeek }},欢迎回到智慧物流园区安消一体化系统 | 
|---|
|  |  |  | 今天是 {{ nowDate }} {{ nowWeek }},欢迎访问智慧物流园区安消一体化系统 | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="main"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <div class="echart" id="echart1"></div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="list"> | 
|---|
|  |  |  | <div class="item"> | 
|---|
|  |  |  | <div class="icon"></div> | 
|---|
|  |  |  | <div class="text">访客</div> | 
|---|
|  |  |  | <div class="num">{{ headerData.inParkVisitUserNum }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="item"> | 
|---|
|  |  |  | <div :style="{ background: colors[0] }" class="icon"></div> | 
|---|
|  |  |  | <div class="text">内部员工</div> | 
|---|
|  |  |  | <div class="num">{{ headerData.todayInParkUserNum - headerData.inParkLwUserNum - | 
|---|
|  |  |  | headerData.inParkVisitUserNum }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="item"> | 
|---|
|  |  |  | <div :style="{ background: colors[1] }" class="icon"></div> | 
|---|
|  |  |  | <div class="text">长期相关方</div> | 
|---|
|  |  |  | <div class="num">{{ headerData.inParkLwUserNum }}</div> | 
|---|
|  |  |  | <div class="item" v-for="item, i in manningRatio" :key="i"> | 
|---|
|  |  |  | <div :style="{ background: colors[i] }" class="icon"></div> | 
|---|
|  |  |  | <div class="text">{{ item.name }}</div> | 
|---|
|  |  |  | <div class="num">{{ item.value }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | <div class="btn" v-permissions="['business:staging:query']" @click="handleDetail(item)">处理</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-if="taskList.length == 0" class="empty"> | 
|---|
|  |  |  | <img src="@/assets/images/default_nodata.png" alt=""> | 
|---|
|  |  |  | <img src="@/assets/images/default_homeimg.png" alt=""> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | <div class="item" v-for="item in warningList" :key="item.id"> | 
|---|
|  |  |  | <div class="name_wrap df_sb"> | 
|---|
|  |  |  | <div class="name">{{ item.name }}</div> | 
|---|
|  |  |  | <div class="identity" v-if="item.memberType == 0">劳务访客</div> | 
|---|
|  |  |  | <div class="identity" v-if="item.memberType == 1">普通访客</div> | 
|---|
|  |  |  | <div class="identity" v-if="item.memberType == 2">内部人员</div> | 
|---|
|  |  |  | <div class="identity">访客</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="line">联系电话:{{ item.phone }}</div> | 
|---|
|  |  |  | <div class="line">访客公司:{{ item.companyName }}</div> | 
|---|
|  |  |  | 
|---|
|  |  |  | <div class="btn" @click="departure(item.id)">离场</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-if="warningList.length == 0" class="empty"> | 
|---|
|  |  |  | <img src="@/assets/images/default_nodata.png" alt=""> | 
|---|
|  |  |  | <img src="@/assets/images/default_homeimg.png" alt=""> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | nowWeek: '', | 
|---|
|  |  |  | headerData: {}, | 
|---|
|  |  |  | staticData: {}, | 
|---|
|  |  |  | manningRatio: [], | 
|---|
|  |  |  | taskList: [], | 
|---|
|  |  |  | taskTotal: 0, | 
|---|
|  |  |  | warningList: [], | 
|---|
|  |  |  | 
|---|
|  |  |  | getWorkHead() { | 
|---|
|  |  |  | getWorkbenchData({ queryType: 1 }).then(res => { | 
|---|
|  |  |  | this.headerData = res || {} | 
|---|
|  |  |  | let arr = [] | 
|---|
|  |  |  | arr.push({ name: '访客', value: this.headerData.inParkVisitUserNum }) | 
|---|
|  |  |  | arr.push({ name: '内部员工', value: this.headerData.todayInParkUserNum - this.headerData.inParkLwUserNum - this.headerData.inParkVisitUserNum }) | 
|---|
|  |  |  | arr.push({ name: '长期相关方', value: this.headerData.inParkLwUserNum }) | 
|---|
|  |  |  | arr.sort((a, b) => b.value - a.value) | 
|---|
|  |  |  | this.manningRatio = arr | 
|---|
|  |  |  | this.initEchart1() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleDetail (row) { | 
|---|
|  |  |  | handleDetail(row) { | 
|---|
|  |  |  | if (row.objType === 2) { | 
|---|
|  |  |  | this.$refs.OperaDetailsWindow.open('公务车申请详情', { ...row, id: row.objId }) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 
|---|
|  |  |  | let that = this | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const option = { | 
|---|
|  |  |  | tooltip: { | 
|---|
|  |  |  | trigger: 'item' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | series: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | type: 'pie', | 
|---|
|  |  |  | 
|---|
|  |  |  | labelLine: { | 
|---|
|  |  |  | show: false | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | data: [ | 
|---|
|  |  |  | { value: that.headerData.inParkVisitUserNum, name: '访客' }, | 
|---|
|  |  |  | { value: that.headerData.todayInParkUserNum - that.headerData.inParkVisitUserNum - that.headerData.inParkLwUserNum, name: '内部员工' }, | 
|---|
|  |  |  | { value: that.headerData.inParkLwUserNum, name: '长期相关方' } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | data: that.manningRatio | 
|---|
|  |  |  | // data: [ | 
|---|
|  |  |  | //   { value: that.headerData.inParkVisitUserNum, name: '访客' }, | 
|---|
|  |  |  | //   { value: that.headerData.todayInParkUserNum - that.headerData.inParkVisitUserNum - that.headerData.inParkLwUserNum, name: '内部员工' }, | 
|---|
|  |  |  | //   { value: that.headerData.inParkLwUserNum, name: '长期相关方' } | 
|---|
|  |  |  | // ] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | formatter: function (params) { | 
|---|
|  |  |  | return ` | 
|---|
|  |  |  | <div style="background-color: #15323f;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;"> | 
|---|
|  |  |  | <div>${params[0].name}日客流</div> | 
|---|
|  |  |  | <div>${params[0].name}</div> | 
|---|
|  |  |  | <div style="display: flex;align-items: center;"> | 
|---|
|  |  |  | <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #6feef0;"></div> | 
|---|
|  |  |  | <span style="margin-left: 6px;">${params[0].value}</span> | 
|---|
|  |  |  | 
|---|
|  |  |  | formatter: function (params) { | 
|---|
|  |  |  | return ` | 
|---|
|  |  |  | <div style="background-color: #15323f;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;"> | 
|---|
|  |  |  | <div>${params[0].name}日客流</div> | 
|---|
|  |  |  | <div>${params[0].name}</div> | 
|---|
|  |  |  | <div style="display: flex;align-items: center;"> | 
|---|
|  |  |  | <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #6feef0;"></div> | 
|---|
|  |  |  | <span style="margin-left: 6px;">${params[0].value}</span> | 
|---|
|  |  |  | <div>人</div> | 
|---|
|  |  |  | <div>辆</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | ` | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .more{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .more { | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .empty { | 
|---|
|  |  |  | height: 300px; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | img { | 
|---|
|  |  |  | width: 140px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .empty { | 
|---|
|  |  |  | height: 300px; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | img { | 
|---|
|  |  |  | width: 140px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .static_wrap { | 
|---|
|  |  |  | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .echart_wrap { | 
|---|
|  |  |  | position: relative; | 
|---|