jiangping
2024-11-29 8eb708f2b6d792f03725a0ff437f51da5af45a45
admin/src/views/index.vue
@@ -3,7 +3,7 @@
    <div class="home_header">
      <div class="mb10 fs17">下午好,{{ userInfo.realname }}</div>
      <div class="fs13">
        今天是 {{ nowDate }} {{ nowWeek }},欢迎回到智慧物流园区安消一体化系统
        今天是 {{ nowDate }} {{ nowWeek }},欢迎访问智慧物流园区安消一体化系统
      </div>
    </div>
    <div class="main">
@@ -89,21 +89,10 @@
                  <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>
@@ -144,7 +133,7 @@
        <div class="task">
          <div class="header df_sb">
            <div class="home_title df">
              <span>待办事项</span>
              <span @click="handleTest">待办事项</span>
              <span class="num" v-if="taskTotal">{{ taskTotal }}</span>
            </div>
            <div class="df_ac more" @click="jumpPage('/task/index')">
@@ -160,7 +149,7 @@
              <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>
@@ -178,9 +167,7 @@
            <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>
@@ -189,9 +176,9 @@
                <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>
@@ -243,6 +230,7 @@
      nowWeek: '',
      headerData: {},
      staticData: {},
      manningRatio: [],
      taskList: [],
      taskTotal: 0,
      warningList: [],
@@ -269,11 +257,73 @@
    setInterval(() => {
      this.updateDate()
    }, 1000 * 60 * 60)
  },
  mounted() {
    this.initData()
  },
  methods: {
    handleTest() {
      const myWindow = window.open('https://10.50.250.253/portal/ui/index?componentId=dfe&componentMenuId=process_apply')
      setTimeout(() => {
        const params = {
          componentId: 'dfe',
          componentMenuId: 'process_apply',
          callback: {
            method: 'dealTlncMsg', argument: {
              "msgId": "98c256b9-aaff-11ef-8347-fa163ee2c57c",
              "moduleId": "dfeFlowTodoModuleId",
              "msgTitle": "请及时处理13856591439发起的请假申请",
              "msgStatus": "0",
              "msgCreateTime": "今天 15:33",
              "msgCreateTimeIso": "2024-11-25T15:33:42.000+08:00",
              "serverTime": 1732531014591,
              "menuCode": "process_apply",
              "msgStatusStr": "待处理",
              "comId": "dfe",
              "userId": "13856591439",
              "extendNoShow": "{\"processInstanceId\":\"98a57fe0-aaff-11ef-8347-fa163ee2c57c\",\"processId\":\"process_dabcfdd39f1b6f46d36a9f4ff6ce1080\",\"param\":{\"sourceType\":\"todo\",\"modelCode\":\"tb_leave_dfe_for_dfe_runtime\",\"processNodeId\":\"UserTask_dde7d83377343a2d5fa1f60c23b023ef\",\"taskId\":\"98c256b9-aaff-11ef-8347-fa163ee2c57c\"},\"process.param.appId\":\"32ca8770-6f85-11ec-b5a3-991864da52a6\",\"appId\":\"32ca8770-6f85-11ec-b5a3-991864da52a6\",\"name\":\"请假申请\",\"taskId\":\"98c256b9-aaff-11ef-8347-fa163ee2c57c\",\"taskNodeId\":\"UserTask_dde7d83377343a2d5fa1f60c23b023ef\",\"url\":\"/dfe-form/process/tlnc/apply\"}",
              "targetComId": "dfe",
              "moduleName": "流程待办",
              "tid": "99cad778-aaff-11ef-9dbf-ff08ba71965c",
              "msgEndTime": null,
              "msgEndTimeIso": "",
              "picUrl": "",
              "extendJson": "{\"key1\":\"请及时处理陈鸿飞发起的请假申请\"}",
              "extendParam": null,
              "extendCascade": null,
              "createUser": "13856591439",
              "webCascadeUrl": null,
              "h5CascadeUrl": null,
              "cascadeTodoOpenType": null,
              "cascadeSourceConfigId": null,
              "h5Url": "/h5/pages/form-page/form-page?returnPath=-1&appId=32ca8770-6f85-11ec-b5a3-991864da52a6&taskId=98c256b9-aaff-11ef-8347-fa163ee2c57c&processNodeId=UserTask_dde7d83377343a2d5fa1f60c23b023ef&modelCode=tb_leave_dfe_for_dfe_runtime&type=flowHandle&component=form-apply&_sn=true",
              "segmentId": "dfe-form",
              "lastUsers": "陈鸿飞",
              "currentUsers": "陈鸿飞",
              "todoTypeCode": "dfe@@tlnc_placeholder_tlnc@@dfeFlowTodoModuleId",
              "currentUserIds": "13856591439",
              "lastUserIds": "13856591439",
              "msgDesc": null,
              "widgetUrl": null,
              "detailType": null,
              "widgetWidth": null,
              "widgetHeight": null,
              "userIdList": null,
              "statusName": null,
              "arriveTime": null,
              "stayTime": null,
              "todoType": null,
              "cascadePort": null,
              "openMode": null
            }
          },
          msgType: 'tlnc'
        }
        let argus = JSON.stringify(params)
        myWindow.postMessage('{"method":"goToApp","argument":' + argus + '}', '*')
      }, 3000)
    },
    SubSuccess(str) {
      this[str] = false
      this.getTaskList()
@@ -320,6 +370,12 @@
    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()
      })
    },
@@ -340,7 +396,7 @@
      })
    },
    handleDetail (row) {
    handleDetail(row) {
      if (row.objType === 2) {
        this.$refs.OperaDetailsWindow.open('公务车申请详情', { ...row, id: row.objId })
        return
@@ -386,6 +442,9 @@
      let that = this
      const option = {
        tooltip: {
          trigger: 'item'
        },
        series: [
          {
            type: 'pie',
@@ -398,11 +457,12 @@
            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: '长期相关方' }
            // ]
          }
        ]
      }
@@ -479,7 +539,7 @@
          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>
@@ -579,11 +639,11 @@
          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>
        `
@@ -929,19 +989,21 @@
        }
      }
    }
    .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 {
@@ -979,6 +1041,7 @@
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100%;
        .echart_wrap {
          position: relative;