Kaynağa Gözat

绩效统计

Shannon_mu 3 yıl önce
ebeveyn
işleme
fab3878c27
20 değiştirilmiş dosya ile 907 ekleme ve 769 silme
  1. 18 1
      operationSupport/src/components/common/Header.vue
  2. 0 1
      operationSupport/src/main.js
  3. 17 5
      operationSupport/src/views/facilityInspections/popups/details.vue
  4. 3 3
      operationSupport/src/views/newWorkBench/components/addcommonfuntion.vue
  5. 0 1
      operationSupport/src/views/newWorkBench/components/collectionRate.vue
  6. 18 14
      operationSupport/src/views/newWorkBench/components/commonFunctions.vue
  7. 288 295
      operationSupport/src/views/newWorkBench/components/commonModel.js
  8. 1 5
      operationSupport/src/views/newWorkBench/components/index.js
  9. 3 18
      operationSupport/src/views/newWorkBench/components/map.vue
  10. 1 1
      operationSupport/src/views/newWorkBench/components/ownerApproval.vue
  11. 43 0
      operationSupport/src/views/newWorkBench/components/permissionComponent.js
  12. 8 0
      operationSupport/src/views/newWorkBench/components/style.scss
  13. 5 194
      operationSupport/src/views/newWorkBench/editWorkbench.vue
  14. 13 1
      operationSupport/src/views/newWorkBench/template/index.js
  15. 186 0
      operationSupport/src/views/newWorkBench/template/leftAssembly.vue
  16. 27 0
      operationSupport/src/views/newWorkBench/template/modularLoading.vue
  17. 10 4
      operationSupport/src/views/patrolManagement/popups/patrolDetails.vue
  18. 262 222
      operationSupport/src/views/performanceManagement/performanceEvaluation/popups/evaluationDetail.vue
  19. 3 3
      operationSupport/src/views/performanceManagement/performanceEvaluation/popups/evaluationEdit.vue
  20. 1 1
      operationSupport/src/views/workOrders/records.vue

+ 18 - 1
operationSupport/src/components/common/Header.vue

@@ -3,7 +3,7 @@
         <div class="el-fl-left"><v-tags></v-tags></div>
         <div class="header-right">
             <div class="header-user-con">
-                <div class="formulation" @click="formulationToPage">
+                <div class="formulation" @click="formulationToPage" v-if="permissionFiltering">
                     <img src="@assets/img/formulation/icon_diygzt@2x.png" alt="" />
                     工作台自拟定 <span class="border"></span>
                 </div>
@@ -79,10 +79,27 @@ export default {
         collapse() {
             return this.$store.getters['getCollapse'];
         },
+        permissionFiltering() {
+            let arr = this.$store.getters['getMenuList'] || [];
+            if (arr.length !== 0) {
+                return this.filterFuntion(false, arr);
+            } else {
+                return false;
+            }
+        },
         ...mapState(['messageNumber']),
         ...mapState(['messageList'])
     },
     methods: {
+        filterFuntion(status, arr) {
+            arr.some((item, index) => {
+                if (item.children == null && item.name == '工作台' && item.linkPath == 'newWorkBench/index') {
+                    status = true;
+                    return false;
+                }
+            });
+            return status;
+        },
         toUrl(type) {
             this.$router.push({
                 path: '/msg'

+ 0 - 1
operationSupport/src/main.js

@@ -92,7 +92,6 @@ router.beforeEach((to, from, next) => {
     document.title = store.getters['getThisDetai'].name || !!window.sessionStorage.getItem('setThisDetai') ? JSON.parse(window.sessionStorage.getItem('setThisDetai')).name : ''
     if (localStorage.getItem("SC_token")) {
         let menuList = window.sessionStorage.getItem("SC_listMuen")
-        JSON.parse
         let newAr = [];
         if (menuList == null || menuList == undefined) {
             http.get('/sc-user-center/user/findUserMenu', { appId: '1002' }).then(({ status, data, msg }) => {

+ 17 - 5
operationSupport/src/views/facilityInspections/popups/details.vue

@@ -35,9 +35,11 @@
                 @page-change="pageChange"
             >
                 <template slot="picturePath" slot-scope="scope">
-                    <div class="imgVdio" v-for="item in scope.row.picturePath.split(',')" :key="item">
-                        <video v-if="typeVideo(item)" :src="item" @click="lookVideos(item)"></video>
-                        <el-image class="imgs" v-else :src="item" :preview-src-list="[item]"></el-image>
+                    <div v-if="!!scope.row.picturePath">
+                        <div class="imgVdio" v-for="item in scope.row.picturePath.split(',')" :key="item">
+                            <video v-if="typeVideo(item)" :src="item" @click="lookVideos(item)"></video>
+                            <el-image class="imgs" v-else :src="item" :preview-src-list="[item]"></el-image>
+                        </div>
                     </div>
                 </template>
                 <template slot-scope="scope" slot="opt">
@@ -120,7 +122,8 @@ export default {
                 },
                 {
                     label: '图片/视频',
-                    prop: 'picturePath'
+                    prop: 'picturePath',
+                    slot: 'picturePath'
                 }
             ],
             thisItem: {},
@@ -133,7 +136,7 @@ export default {
             this.mixins_dataUrl = '/sc-community/inspectionRecord/findDetail';
             this.mixins_query = {
                 id: id,
-                type: this.thisItem.type
+                type: this.params.data.type
             };
             this.mixins_search();
         },
@@ -173,4 +176,13 @@ export default {
 .formContent-item_title {
     clear: both;
 }
+.imgVdio {
+    display: inline-block;
+    margin-right: 10px;
+    .imgs,
+    video {
+        width: 64px;
+        cursor: pointer;
+    }
+}
 </style>

+ 3 - 3
operationSupport/src/views/newWorkBench/components/addcommonfuntion.vue

@@ -7,13 +7,13 @@
     </div>
 </template>
 <script>
-import modelArrList from './commonModel.js';
+import { modelArr } from './commonModel.js';
 export default {
     props: ['params'],
-    mixins: [modelArrList],
     data() {
         return {
-            valueModel: []
+            valueModel: [],
+            modelArr: modelArr
         };
     },
     methods: {

+ 0 - 1
operationSupport/src/views/newWorkBench/components/collectionRate.vue

@@ -118,7 +118,6 @@ export default {
                             : 0
                     };
                 } else {
-                    debugger;
                     this.dataObj = {
                         receivableAmount: 0,
                         receivedAmount: 0,

+ 18 - 14
operationSupport/src/views/newWorkBench/components/commonFunctions.vue

@@ -1,26 +1,30 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">常用功能</div>
-            <div class="buttons" @click="getPop"><span class="text">自拟定</span> <span class="triangle"></span></div>
-        </div>
-        <div class="model-content">
-            <template v-for="(item, index) in modelArrs">
-                <div class="blockItem" v-if="index < 4" :key="index" @click="toPage(item)">
-                    <img :src="item.imgPng" />
-                    <span>{{ item.lableTitle }}</span>
-                </div>
-            </template>
-        </div>
+        <template >
+            <div class="model-title">
+                <div class="model-title-text">常用功能</div>
+                <div class="buttons" @click="getPop"><span class="text">自拟定</span> <span class="triangle"></span></div>
+            </div>
+            <div class="model-content">
+                <template v-for="(item, index) in modelArrs">
+                    <div class="blockItem" v-if="index < 4" :key="index" @click="toPage(item)">
+                        <img :src="item.imgPng" />
+                        <span>{{ item.lableTitle }}</span>
+                    </div>
+                </template>
+            </div>
+        </template>
     </div>
 </template>
 <script>
-import modelArrList from './commonModel.js';
+import { modelArr } from './commonModel.js';
+import permissionComponent from './permissionComponent';
 export default {
-    mixins: [modelArrList],
+    mixins: [permissionComponent],
     data() {
         return {
             thisObj: {},
+            modelArr: modelArr,
             modelArrs: []
         };
     },

+ 288 - 295
operationSupport/src/views/newWorkBench/components/commonModel.js

@@ -1,298 +1,291 @@
-export default {
-  data() {
-    return {
-      modelArr: [
-        //资产管理
-        {
-          id: 'shequguanli',
-          imgPng: require('@assets/img/homePage/icon_shequguanli@2x.png'),
-          lableTitle: '社区管理',
-          toPage: 'communityManagement/index',
-          checkbox: false
-        },
-        {
-          id: 'loudongguanli',
-          imgPng: require('@assets/img/homePage/icon_loudongguanli@2x.png'),
-          lableTitle: '楼栋管理',
-          toPage: 'buildingManagement/index',
-          checkbox: false
-        },
-        {
-          id: 'fangwuguanli',
-          imgPng: require('@assets/img/homePage/icon_fangwuguanli@2x.png'),
-          lableTitle: '房屋管理',
-          toPage: 'assetManagement/housingManagement/index',
-          checkbox: false
-        },
-        {
-          id: 'shangpuguanli',
-          imgPng: require('@assets/img/homePage/icon_shangpuguanli@2x.png'),
-          lableTitle: '商铺管理',
-          toPage: 'assetManagement/shopManagement/index',
-          checkbox: false
-        },
-        {
-          id: 'cheweiguanli',
-          imgPng: require('@assets/img/homePage/icon_cheweiguanli@2x.png'),
-          lableTitle: '车位管理',
-          toPage: 'parkingLotAdministration/index',
-          checkbox: false
-        },
-        //住户管理
-        {
-          id: 'zhuhuguanli',
-          imgPng: require('@assets/img/homePage/icon_zhuhuguanli@2x.png'),
-          lableTitle: '住户管理',
-          toPage: 'ownerManagement/index',
-          checkbox: false
-        },
-        {
-          id: 'yezhushenhe',
-          imgPng: require('@assets/img/homePage/icon_yezhushenhe@2x.png'),
-          lableTitle: '业主审核',
-          toPage: 'ownerManagement/ownerReview/index',
-          checkbox: false
-        },
-        //告警管理
-        {
-          id: 'gaojingguanli',
-          imgPng: require('@assets/img/homePage/icon_gaojingguanli@2x.png'),
-          lableTitle: '告警管理',
-          toPage: "alarmManagement/index",
-          checkbox: false
-        },
-        {
-          id: 'gaojingxiangqing',
-          imgPng: require('@assets/img/homePage/icon_gaojingxiangqing@2x.png'),
-          lableTitle: '告警详情',
-          toPage: 'alarmManagement/details',
-          checkbox: false
-        },
-        //收费管理
-        {
-          id: 'feiyongzhangdan',
-          imgPng: require('@assets/img/homePage/icon_feiyongzhangdan@2x.png'),
-          lableTitle: '费用账单',
-          toPage: "payService/propertyFee/index",
-          checkbox: false
-        },
-        {
-          id: 'shuifeiguanli',
-          imgPng: require('@assets/img/homePage/icon_shuifeiguanli@2x.png'),
-          lableTitle: '水费管理',
-          toPage: "payService/waterManagement/index",
-          checkbox: false
-        },
-        {
-          id: 'dianfeiguanli',
-          imgPng: require('@assets/img/homePage/icon_dianfeiguanli@2x.png'),
-          lableTitle: '电费管理',
-          toPage: "payService/electricManagement/index",
-          checkbox: false
-        },
-        {
-          id: 'cuijiao',
-          imgPng: require('@assets/img/homePage/icon_cuijiao@2x.png'),
-          lableTitle: '催缴',
-          toPage: "payService/call/index",
-          checkbox: false
-        },
-        {
-          id: 'jifeiguize',
-          imgPng: require('@assets/img/homePage/icon_jifeiguize@2x.png'),
-          lableTitle: '计费规则',
-          toPage: 'payService/billingRules/index',
-          checkbox: false
-        },
-        {
-          id: 'shoufeishezhi',
-          imgPng: require('@assets/img/homePage/icon_shoufeishezhi@2x.png'),
-          lableTitle: '收费设置',
-          toPage: "payService/chargeSetting/index",
-          checkbox: false
-        },
-        {
-          id: 'shoukuanzhanghao',
-          imgPng: require('@assets/img/homePage/icon_shoukuanzhanghao@2x.png'),
-          lableTitle: '收款账号',
-          toPage: "payService/collection/index",
-          checkbox: false
-        },
-        {
-          id: 'tongjibaobiao',
-          imgPng: require('@assets/img/homePage/icon_tongjibaobiao@2x.png'),
-          lableTitle: '统计报表',
-          toPage: "payService/statisticalReport/chargeStatistics",
-          checkbox: false
-        },
-        {
-          id: 'shuifeimingxi',
-          imgPng: require('@assets/img/homePage/icon_shuifeimingxi@2x.png'),
-          lableTitle: '水费明细',
-          toPage: "payService/statisticalReport/waterChargeDetails",
-          checkbox: false
-        },
-        {
-          id: 'dianfeimingxi',
-          imgPng: require('@assets/img/homePage/icon_dianfeimingxi@2x.png'),
-          lableTitle: '电费明细',
-          toPage: "payService/statisticalReport/electricityBillDetails",
-          checkbox: false
-        },
-        {
-          id: 'xitongshezhi',
-          imgPng: require('@assets/img/homePage/icon_xitongshezhi@2x.png'),
-          lableTitle: '系统设置',
-          toPage: "payService/systemSetup/index",
-          checkbox: false
-        },
-        //设备管理
-        {
-          id: 'shebeiguanli',
-          imgPng: require('@assets/img/homePage/icon_shebeiguanli@2x.png'),
-          lableTitle: '设备管理',
-          toPage: "deviceManagement/index",
-          checkbox: false
-        },
-        {
-          id: 'sheshiguanli',
-          imgPng: require('@assets/img/homePage/icon_sheshiguanli@2x.png'),
-          lableTitle: '设施管理',
-          toPage: "deviceManagement/indexFacilities",
-          checkbox: false
-        },
-        {
-          id: 'sheshileixing',
-          imgPng: require('@assets/img/homePage/icon_sheshileixing@2x.png'),
-          lableTitle: '设施类型',
-          toPage: "deviceManagement/indexType",
-          checkbox: false
-        },
-        //运维管理
-        {
-          id: 'gongdanguanli',
-          imgPng: require('@assets/img/homePage/icon_gongdanguanli@2x.png'),
-          lableTitle: '工单管理',
-          toPage: "workOrders/index",
-          checkbox: false
-        },
-        {
-          id: 'gongdanjilu',
-          imgPng: require('@assets/img/homePage/icon_gongdanjilu@2x.png'),
-          lableTitle: '工单记录',
-          toPage: 'workOrders/records',
-          checkbox: false
-        },
-        //设备设施巡检
-        {
-          id: 'xunjianjihua',
-          imgPng: require('@assets/img/homePage/icon_xunjianjihua@2x.png'),
-          lableTitle: '巡检计划',
-          toPage: "facilityInspections/index",
-          checkbox: false
-        },
-        {
-          id: 'xunjianjilu',
-          imgPng: require('@assets/img/homePage/icon_xunjianjilu@2x.png'),
-          lableTitle: '巡检记录',
-          toPage: 'facilityInspections/inspectionsRecords',
-          checkbox: false
-        },
-        //巡更管理
-        {
-          id: 'xungengdianwei',
-          imgPng: require('@assets/img/homePage/icon_xungengdianwei@2x.png'),
-          lableTitle: '巡更点位',
-          toPage: "patrolManagement/index",
-          checkbox: false
-        },
-        {
-          id: 'xungengluxian',
-          imgPng: require('@assets/img/homePage/icon_xungengluxian@2x.png'),
-          lableTitle: '巡更路线',
-          toPage: "patrolManagement/patrolRoute",
-          checkbox: false
-        },
-        {
-          id: 'xungengjilu',
-          imgPng: require('@assets/img/homePage/icon_xungengjilu@2x.png'),
-          lableTitle: '巡更记录',
-          toPage: 'patrolManagement/patrolRecords',
-          checkbox: false
-        },
-        //物业管理
+export const modelArr = [
+  //资产管理
+  {
+    id: 'shequguanli',
+    imgPng: require('@assets/img/homePage/icon_shequguanli@2x.png'),
+    lableTitle: '社区管理',
+    toPage: 'communityManagement/index',
+    checkbox: false
+  },
+  {
+    id: 'loudongguanli',
+    imgPng: require('@assets/img/homePage/icon_loudongguanli@2x.png'),
+    lableTitle: '楼栋管理',
+    toPage: 'buildingManagement/index',
+    checkbox: false
+  },
+  {
+    id: 'fangwuguanli',
+    imgPng: require('@assets/img/homePage/icon_fangwuguanli@2x.png'),
+    lableTitle: '房屋管理',
+    toPage: 'assetManagement/housingManagement/index',
+    checkbox: false
+  },
+  {
+    id: 'shangpuguanli',
+    imgPng: require('@assets/img/homePage/icon_shangpuguanli@2x.png'),
+    lableTitle: '商铺管理',
+    toPage: 'assetManagement/shopManagement/index',
+    checkbox: false
+  },
+  {
+    id: 'cheweiguanli',
+    imgPng: require('@assets/img/homePage/icon_cheweiguanli@2x.png'),
+    lableTitle: '车位管理',
+    toPage: 'parkingLotAdministration/index',
+    checkbox: false
+  },
+  //住户管理
+  {
+    id: 'zhuhuguanli',
+    imgPng: require('@assets/img/homePage/icon_zhuhuguanli@2x.png'),
+    lableTitle: '住户管理',
+    toPage: 'ownerManagement/index',
+    checkbox: false
+  },
+  {
+    id: 'yezhushenhe',
+    imgPng: require('@assets/img/homePage/icon_yezhushenhe@2x.png'),
+    lableTitle: '业主审核',
+    toPage: 'ownerManagement/ownerReview/index',
+    checkbox: false
+  },
+  //告警管理
+  {
+    id: 'gaojingguanli',
+    imgPng: require('@assets/img/homePage/icon_gaojingguanli@2x.png'),
+    lableTitle: '告警管理',
+    toPage: "alarmManagement/index",
+    checkbox: false
+  },
+  {
+    id: 'gaojingxiangqing',
+    imgPng: require('@assets/img/homePage/icon_gaojingxiangqing@2x.png'),
+    lableTitle: '告警详情',
+    toPage: 'alarmManagement/details',
+    checkbox: false
+  },
+  //收费管理
+  {
+    id: 'feiyongzhangdan',
+    imgPng: require('@assets/img/homePage/icon_feiyongzhangdan@2x.png'),
+    lableTitle: '费用账单',
+    toPage: "payService/propertyFee/index",
+    checkbox: false
+  },
+  {
+    id: 'shuifeiguanli',
+    imgPng: require('@assets/img/homePage/icon_shuifeiguanli@2x.png'),
+    lableTitle: '水费管理',
+    toPage: "payService/waterManagement/index",
+    checkbox: false
+  },
+  {
+    id: 'dianfeiguanli',
+    imgPng: require('@assets/img/homePage/icon_dianfeiguanli@2x.png'),
+    lableTitle: '电费管理',
+    toPage: "payService/electricManagement/index",
+    checkbox: false
+  },
+  {
+    id: 'cuijiao',
+    imgPng: require('@assets/img/homePage/icon_cuijiao@2x.png'),
+    lableTitle: '催缴',
+    toPage: "payService/call/index",
+    checkbox: false
+  },
+  {
+    id: 'jifeiguize',
+    imgPng: require('@assets/img/homePage/icon_jifeiguize@2x.png'),
+    lableTitle: '计费规则',
+    toPage: 'payService/billingRules/index',
+    checkbox: false
+  },
+  {
+    id: 'shoufeishezhi',
+    imgPng: require('@assets/img/homePage/icon_shoufeishezhi@2x.png'),
+    lableTitle: '收费设置',
+    toPage: "payService/chargeSetting/index",
+    checkbox: false
+  },
+  {
+    id: 'shoukuanzhanghao',
+    imgPng: require('@assets/img/homePage/icon_shoukuanzhanghao@2x.png'),
+    lableTitle: '收款账号',
+    toPage: "payService/collection/index",
+    checkbox: false
+  },
+  {
+    id: 'tongjibaobiao',
+    imgPng: require('@assets/img/homePage/icon_tongjibaobiao@2x.png'),
+    lableTitle: '统计报表',
+    toPage: "payService/statisticalReport/chargeStatistics",
+    checkbox: false
+  },
+  {
+    id: 'shuifeimingxi',
+    imgPng: require('@assets/img/homePage/icon_shuifeimingxi@2x.png'),
+    lableTitle: '水费明细',
+    toPage: "payService/statisticalReport/waterChargeDetails",
+    checkbox: false
+  },
+  {
+    id: 'dianfeimingxi',
+    imgPng: require('@assets/img/homePage/icon_dianfeimingxi@2x.png'),
+    lableTitle: '电费明细',
+    toPage: "payService/statisticalReport/electricityBillDetails",
+    checkbox: false
+  },
+  {
+    id: 'xitongshezhi',
+    imgPng: require('@assets/img/homePage/icon_xitongshezhi@2x.png'),
+    lableTitle: '系统设置',
+    toPage: "payService/systemSetup/index",
+    checkbox: false
+  },
+  //设备管理
+  {
+    id: 'shebeiguanli',
+    imgPng: require('@assets/img/homePage/icon_shebeiguanli@2x.png'),
+    lableTitle: '设备管理',
+    toPage: "deviceManagement/index",
+    checkbox: false
+  },
+  {
+    id: 'sheshiguanli',
+    imgPng: require('@assets/img/homePage/icon_sheshiguanli@2x.png'),
+    lableTitle: '设施管理',
+    toPage: "deviceManagement/indexFacilities",
+    checkbox: false
+  },
+  {
+    id: 'sheshileixing',
+    imgPng: require('@assets/img/homePage/icon_sheshileixing@2x.png'),
+    lableTitle: '设施类型',
+    toPage: "deviceManagement/indexType",
+    checkbox: false
+  },
+  //运维管理
+  {
+    id: 'gongdanguanli',
+    imgPng: require('@assets/img/homePage/icon_gongdanguanli@2x.png'),
+    lableTitle: '工单管理',
+    toPage: "workOrders/index",
+    checkbox: false
+  },
+  {
+    id: 'gongdanjilu',
+    imgPng: require('@assets/img/homePage/icon_gongdanjilu@2x.png'),
+    lableTitle: '工单记录',
+    toPage: 'workOrders/records',
+    checkbox: false
+  },
+  //设备设施巡检
+  {
+    id: 'xunjianjihua',
+    imgPng: require('@assets/img/homePage/icon_xunjianjihua@2x.png'),
+    lableTitle: '巡检计划',
+    toPage: "facilityInspections/index",
+    checkbox: false
+  },
+  {
+    id: 'xunjianjilu',
+    imgPng: require('@assets/img/homePage/icon_xunjianjilu@2x.png'),
+    lableTitle: '巡检记录',
+    toPage: 'facilityInspections/inspectionsRecords',
+    checkbox: false
+  },
+  //巡更管理
+  {
+    id: 'xungengdianwei',
+    imgPng: require('@assets/img/homePage/icon_xungengdianwei@2x.png'),
+    lableTitle: '巡更点位',
+    toPage: "patrolManagement/index",
+    checkbox: false
+  },
+  {
+    id: 'xungengluxian',
+    imgPng: require('@assets/img/homePage/icon_xungengluxian@2x.png'),
+    lableTitle: '巡更路线',
+    toPage: "patrolManagement/patrolRoute",
+    checkbox: false
+  },
+  {
+    id: 'xungengjilu',
+    imgPng: require('@assets/img/homePage/icon_xungengjilu@2x.png'),
+    lableTitle: '巡更记录',
+    toPage: 'patrolManagement/patrolRecords',
+    checkbox: false
+  },
+  //物业管理
 
-        {
-          id: 'tongzhigonggao',
-          imgPng: require('@assets/img/homePage/icon_tongzhigonggao@2x.png'),
-          lableTitle: '通知公告',
-          toPage: 'propertyManagement/inform',
-          checkbox: false
-        },
-        {
-          id: 'tousujianyi',
-          imgPng: require('@assets/img/homePage/icon_tousujianyi@2x.png'),
-          lableTitle: '投诉建议',
-          toPage: 'propertyManagement/index',
-          checkbox: false
-        },
-        {
-          id: 'shequlinli',
-          imgPng: require('@assets/img/homePage/icon_shequlinli@2x.png'),
-          toPage: "propertyManagement/neighbor",
-          lableTitle: '社区邻里',
-          checkbox: false
-        },
-        {
-          id: 'wuyedianhua',
-          imgPng: require('@assets/img/homePage/icon_wuyedianhua@2x.png'),
-          lableTitle: '物业电话',
-          toPage: "propertyManagement/phone",
-          checkbox: false
-        },
+  {
+    id: 'tongzhigonggao',
+    imgPng: require('@assets/img/homePage/icon_tongzhigonggao@2x.png'),
+    lableTitle: '通知公告',
+    toPage: 'propertyManagement/inform',
+    checkbox: false
+  },
+  {
+    id: 'tousujianyi',
+    imgPng: require('@assets/img/homePage/icon_tousujianyi@2x.png'),
+    lableTitle: '投诉建议',
+    toPage: 'propertyManagement/index',
+    checkbox: false
+  },
+  {
+    id: 'shequlinli',
+    imgPng: require('@assets/img/homePage/icon_shequlinli@2x.png'),
+    toPage: "propertyManagement/neighbor",
+    lableTitle: '社区邻里',
+    checkbox: false
+  },
+  {
+    id: 'wuyedianhua',
+    imgPng: require('@assets/img/homePage/icon_wuyedianhua@2x.png'),
+    lableTitle: '物业电话',
+    toPage: "propertyManagement/phone",
+    checkbox: false
+  },
 
-        // {
-        //   id: 'zongshoufeitongji',
-        //   imgPng: require('@assets/img/homePage/icon_zongshoufeitongji@2x.png'),
-        //   lableTitle: '总收费统计',
-        //   toPage: "patrolManagement/patrolRoute",
-        //   checkbox: false
-        // },
-        // {
-        //   id: 'nianshoufeiqingkuang ',
-        //   imgPng: require('@assets/img/homePage/icon_nianshoufeiqingkuang @2x.png'),
-        //   lableTitle: '年收费情况',
-        //   checkbox: false
-        // },
+  // {
+  //   id: 'zongshoufeitongji',
+  //   imgPng: require('@assets/img/homePage/icon_zongshoufeitongji@2x.png'),
+  //   lableTitle: '总收费统计',
+  //   toPage: "patrolManagement/patrolRoute",
+  //   checkbox: false
+  // },
+  // {
+  //   id: 'nianshoufeiqingkuang ',
+  //   imgPng: require('@assets/img/homePage/icon_nianshoufeiqingkuang @2x.png'),
+  //   lableTitle: '年收费情况',
+  //   checkbox: false
+  // },
 
-        // {
-        //   id: 'guanggaoguanli',
-        //   imgPng: require('@assets/img/homePage/icon_guanggaoguanli@2x.png'),
-        //   lableTitle: '广告管理',
-        //   checkbox: false
-        // },
-        // {
-        //   id: 'shuidiangaojingshezhi',
-        //   imgPng: require('@assets/img/homePage/icon_shuidiangaojingshezhi@2x.png'),
-        //   lableTitle: '水电告警设置',
-        //   checkbox: false
-        // },
-        // {
-        //   id: 'shuidiangaojingxiangqing',
-        //   imgPng: require('@assets/img/homePage/icon_shuidiangaojingxiangqing@2x.png'),
-        //   lableTitle: '水电告警详情',
-        //   checkbox: false
-        // },
-        // 流程管理
-        {
-          id: 'liuchengguanli ',
-          imgPng: require('@assets/img/homePage/icon_liuchengguanli @2x.png'),
-          lableTitle: '流程管理',
-          toPage: "flow/index",
-          checkbox: false
-        },
-      ]
-
-    }
-  }
-};
+  // {
+  //   id: 'guanggaoguanli',
+  //   imgPng: require('@assets/img/homePage/icon_guanggaoguanli@2x.png'),
+  //   lableTitle: '广告管理',
+  //   checkbox: false
+  // },
+  // {
+  //   id: 'shuidiangaojingshezhi',
+  //   imgPng: require('@assets/img/homePage/icon_shuidiangaojingshezhi@2x.png'),
+  //   lableTitle: '水电告警设置',
+  //   checkbox: false
+  // },
+  // {
+  //   id: 'shuidiangaojingxiangqing',
+  //   imgPng: require('@assets/img/homePage/icon_shuidiangaojingxiangqing@2x.png'),
+  //   lableTitle: '水电告警详情',
+  //   checkbox: false
+  // },
+  // 流程管理
+  {
+    id: 'liuchengguanli ',
+    imgPng: require('@assets/img/homePage/icon_liuchengguanli @2x.png'),
+    lableTitle: '流程管理',
+    toPage: "flow/index",
+    checkbox: false
+  },
+]

+ 1 - 5
operationSupport/src/views/newWorkBench/components/index.js

@@ -50,6 +50,7 @@ export default {
   },
   data() {
     return {
+      //拖拽组件
       componentsIdArr: {
         1: 'maps',
         2: 'complaintsSuggestions',
@@ -58,11 +59,6 @@ export default {
         5: 'discount',
         6: 'rentalAndSaleRate',
         7: 'collectionRate',
-        8: '',
-        9: '',
-        10: '',
-        11: '',
-        12: '',
       }
     }
   },

+ 3 - 18
operationSupport/src/views/newWorkBench/components/map.vue

@@ -1,11 +1,6 @@
 <template>
     <div class="mapItems">
-        <div class="mapMasp" v-if="loadding">
-            <div class="el-loading-spinner">
-                <i class="el-icon-loading"></i>
-                <div class="el-loading-text">地图加载中</div>
-            </div>
-        </div>
+        <modular-loading :loadding="loadding" tipsText="地图加载中"></modular-loading>
         <div class="topSelect">
             <div></div>
         </div>
@@ -13,7 +8,9 @@
     </div>
 </template>
 <script>
+import permissionComponent from './permissionComponent';
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
             map: '',
@@ -140,18 +137,6 @@ export default {
 </script>
 <style scoped lang="scss">
 @import '@assets/css/public-style.scss';
-.mapMasp {
-    position: absolute;
-    z-index: 2000;
-    background-color: rgba(0, 0, 0, 1);
-    margin: 0;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    -webkit-transition: opacity 0.3s;
-    transition: opacity 0.3s;
-}
 .mapItems {
     height: 100%;
     position: relative;

+ 1 - 1
operationSupport/src/views/newWorkBench/components/ownerApproval.vue

@@ -3,7 +3,7 @@
     <div class="modelBlock">
         <div class="model-title">
             <div class="model-title-text">业主审批</div>
-            <div class="buttons" @click="toPage"><span class="text">查看更多</span> <span class="triangle"></span></div>
+            <div class="buttons" @click="$router.push({path:'/ownerManagement/ownerReview/index'})"><span class="text">查看更多</span> <span class="triangle"></span></div>
         </div>
         <div class="model-content">
             <div class="listInformation" v-for="(item, index) in datas" :key="index">

+ 43 - 0
operationSupport/src/views/newWorkBench/components/permissionComponent.js

@@ -0,0 +1,43 @@
+import modularLoading from '@views/newWorkBench/template/modularLoading.vue';
+export default {
+  components: {
+    //默认加载
+    modularLoading,
+  },
+  data() {
+    return {
+      loadding: true
+    }
+  },
+  computed: {
+    // 定义模块显示隐藏
+    permissionFiltering() {
+      let arr = this.$store.getters['getMenuList'] || [];
+      if (arr.length !== 0) {
+        setTimeout(() => {
+          this.loadding = false;
+        }, 700)
+        return this.permissionStr(false, arr);
+      } else {
+        return false;
+      }
+    }
+  },
+  methods: {
+    // 需要什么权限才能查看
+    filterFuntion(status, arr, nameTitle, linkPaths) {
+      arr.some((item) => {
+        if (item.children == null && item.name == nameTitle && item.linkPath == linkPaths) {
+          status = true;
+          return false;
+        } else if (item.children !== null) {
+          this.filterFuntion(status, item.children, nameTitle, linkPaths);
+        }
+      });
+      return status;
+    },
+    // permissionStr(status, arr) {
+    //   return this.filterFuntion(status, arr, 'xxx', 'newWorkBench/index');
+    // },
+  }
+}

+ 8 - 0
operationSupport/src/views/newWorkBench/components/style.scss

@@ -3,6 +3,7 @@
   height: 100%;
   padding: rem(15) rem(20) rem(20);
   background: #171f32;
+  position: relative;
   .model-title {
     line-height: rem(30);
     display: flex;
@@ -65,3 +66,10 @@
     }
   }
 }
+.no-permission {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  font-size: 12px;
+}

+ 5 - 194
operationSupport/src/views/newWorkBench/editWorkbench.vue

@@ -13,42 +13,8 @@
             </div>
         </div>
         <div class="operation">
-            <div class="leftAssembly">
-                <el-select v-model="componentsValue" clearable @change="changeSelect" class="saveColumn-select">
-                    <el-option
-                        v-for="(item, index) in componentsSelect"
-                        :key="index"
-                        :label="item.lable"
-                        :value="item.model_id"
-                    ></el-option>
-                </el-select>
-                <div class="componentsBlock">
-                    <template v-for="(item, index) in componentsArrar">
-                        <div
-                            class="moveBlock"
-                            :data-id="item.data_id"
-                            @mousedown="moveBlock($event, item.data_id)"
-                            :key="index"
-                            draggable
-                            @dragstart="dragstart($event, item)"
-                            @dragend="dragend($event)"
-                            @drag="drag($event)"
-                        >
-                            <div class="moveBlock_titles">{{ item.title }}</div>
-                            <div class="moveBlock_img">
-                                <img :src="item.imgPng" :alt="item.title" />
-                            </div>
-                            <div class="moveBlock_icon">
-                                <img :src="item.imgIcon" :alt="item.title" />
-                            </div>
-                        </div>
-                    </template>
-                </div>
-            </div>
-            <model-one v-if="model == 1" :ref="model + '_model'"></model-one>
-            <model-two v-if="model == 2" :ref="model + '_model'"></model-two>
-            <model-three v-if="model == 3" :ref="model + '_model'"></model-three>
-            <model-four v-if="model == 4" :ref="model + '_model'"></model-four>
+            <left-assembly></left-assembly>
+            <component :is="modelArr[model]" ></component>
         </div>
     </div>
 </template>
@@ -75,78 +41,11 @@ export default {
                     model_id: 3,
                     lable: '模板三'
                 }
-                // {
-                //     model_id: 4,
-                //     lable: '模板四'
-                // }
-            ],
-            componentsSelect: [
-                {
-                    model_id: 0,
-                    lable: '全部'
-                }
-            ],
-            componentsArrar: [
-                {
-                    data_id: 1,
-                    title: '高德地图',
-                    imgPng: require('@assets/img/formulation/img_ditu@2x.png'),
-                    imgIcon: require('@assets/img/formulation/tag_4x@2x.png')
-                },
-                {
-                    data_id: 2,
-                    title: '投诉建议',
-                    imgPng: require('@assets/img/formulation/img_bingzhuangtu@2x.png'),
-                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
-                },
-                {
-                    data_id: 3,
-                    title: '常用功能',
-                    imgPng: require('@assets/img/formulation/img_changyonggongneng@2x.png'),
-                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
-                },
-                {
-                    data_id: 4,
-                    title: '服务满意度趋势',
-                    imgPng: require('@assets/img/formulation/img_zhuzhuangtu@2x.png'),
-                    imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
-                },
-                {
-                    data_id: 5,
-                    title: '设备告警趋势',
-                    imgPng: require('@assets/img/formulation/img_zhexiantu@2x.png'),
-                    imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
-                },
-                // img_bing+baifenbi@2x
-                {
-                    data_id: 6,
-                    title: '房屋租售率',
-                    imgPng: require('@assets/img/formulation/img_bing+baifenbi@2x.png'),
-                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
-                },
-                {
-                    data_id: 7,
-                    title: '收款率分析',
-                    imgPng: require('@assets/img/formulation/img_bing+baifenbi@2x.png'),
-                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
-                }
-            ],
-            componentsValue: 0,
-            isEdit: false,
-            dataId: null
+            ]
         };
     },
-    watch: {
-        $route(to, from) {
-            if (to.query.editWorkbench) {
-                this.isEdit = true;
-            }
-        }
-    },
+    watch: {},
     methods: {
-        moveBlock(e, num) {
-            this.dataId = num;
-        },
         communityNameList() {
             this.$http.get('/sc-community/assets/community/list').then(({ data, msg, status }) => {
                 if (status == 0) {
@@ -154,18 +53,6 @@ export default {
                 }
             });
         },
-        dragstart(e, item) {
-            //拖拽开始时将item存入vuex
-            this.$store.commit('setDragItem', item);
-        },
-        drag(e) {
-            //拖拽中执行的事件
-            // console.log('drag',e)s
-        },
-        dragend(e) {
-            //拖拽结束执行的事件
-            // console.log('dragend', e);
-        },
         close(sun) {
             let tagsList = this.$store.getters['getTagsList'];
             tagsList.forEach((item, index) => {
@@ -180,7 +67,7 @@ export default {
             });
         },
         saveWork() {
-            let simeCom = JSON.stringify({ model: this.model, pageLoction: this.$refs[this.model + '_model'].sumit() });
+            let simeCom = JSON.stringify({ model: this.model, pageLoction: this.$children[4].sumit() });
             let installVal = {
                 positionInfo: simeCom,
                 urls: '',
@@ -285,82 +172,6 @@ $BackColor: #171f32;
         min-height: 794px;
         display: flex;
         justify-content: space-between;
-        .leftAssembly {
-            width: 174px;
-            background: $BackColor;
-            border-radius: 4px;
-            padding: rem(20) rem(8) rem(20) rem(20);
-            .saveColumn-select {
-                margin-bottom: rem(30);
-                margin-right: rem(12);
-                /deep/ .el-input__inner {
-                    background: transparent;
-                    color: white;
-                    border-color: rgba(255, 255, 255, 0.2);
-                }
-            }
-            // 块级模块
-            .componentsBlock {
-                height: calc(100% - #{rem(62)});
-                overflow-y: auto;
-                overflow-x: hidden;
-                &::-webkit-scrollbar {
-                    z-index: 11;
-                    width: rem(4);
-                }
-                &::-webkit-scrollbar-track,
-                &::-webkit-scrollbar-corner {
-                    background: transparent;
-                }
-                &::-webkit-scrollbar-thumb {
-                    border-radius: 5px;
-                    width: rem(4);
-                    background: rgba(250, 250, 250, 0.09);
-                }
-                &::-webkit-scrollbar-track-piece {
-                    background: transparent;
-                    width: rem(4);
-                }
-                .moveBlock {
-                    font-size: 12px;
-                    width: rem(132);
-                    height: rem(132);
-                    background: rgba(0, 0, 0, 0.1);
-                    box-sizing: border-box;
-                    border-radius: 4px;
-                    border: 1px solid rgba(255, 255, 255, 0.2);
-                    padding: rem(10);
-                    margin-bottom: rem(20);
-                    text-align: center;
-                    position: relative;
-                    cursor: move;
-                    .moveBlock_titles {
-                        overflow: hidden;
-                        white-space: nowrap;
-                        text-overflow: ellipsis;
-                        width: 100%;
-                    }
-                    .moveBlock_img {
-                        width: rem(60);
-                        margin: auto;
-                        img {
-                            width: 100%;
-                            margin-top: rem(20);
-                        }
-                    }
-                    .moveBlock_icon {
-                        position: absolute;
-                        right: 0;
-                        bottom: 0;
-                        height: rem(20);
-                        img {
-                            width: rem(28);
-                            height: rem(20);
-                        }
-                    }
-                }
-            }
-        }
     }
 }
 </style>

+ 13 - 1
operationSupport/src/views/newWorkBench/template/index.js

@@ -1,3 +1,6 @@
+
+import modularLoading from '@views/newWorkBench/template/modularLoading.vue';
+import leftAssembly from '@views/newWorkBench/template/leftAssembly.vue';
 import modelOne from '@views/newWorkBench/template/styleOne.vue';
 import modelTwo from '@views/newWorkBench/template/styleTwo.vue';
 import modelThree from '@views/newWorkBench/template/styleThree.vue';
@@ -5,12 +8,21 @@ import modelFour from '@views/newWorkBench/template/styleFour.vue';
 
 export default {
   components: {
+    modularLoading,
+    leftAssembly,
     modelOne,
     modelTwo,
     modelThree,
     modelFour
   },
   data() {
-    return {}
+    return {
+      modelArr: {
+        1: 'modelOne',
+        2: 'modelTwo',
+        3: 'modelThree',
+        4: 'modelFour',
+      }
+    }
   }
 };

+ 186 - 0
operationSupport/src/views/newWorkBench/template/leftAssembly.vue

@@ -0,0 +1,186 @@
+<template>
+    <div class="leftAssembly">
+        <el-select v-model="componentsValue" clearable @change="changeSelect" class="saveColumn-select">
+            <el-option v-for="(item, index) in componentsSelect" :key="index" :label="item.lable" :value="item.model_id"></el-option>
+        </el-select>
+        <div class="componentsBlock">
+            <template v-for="(item, index) in componentsArrar">
+                <div
+                    class="moveBlock"
+                    :data-id="item.data_id"
+                    :key="index"
+                    draggable
+                    @dragstart="dragstart($event, item)"
+                    @dragend="dragend($event)"
+                    @drag="drag($event)"
+                >
+                    <div class="moveBlock_titles">{{ item.title }}</div>
+                    <div class="moveBlock_img">
+                        <img :src="item.imgPng" :alt="item.title" />
+                    </div>
+                    <div class="moveBlock_icon">
+                        <img :src="item.imgIcon" :alt="item.title" />
+                    </div>
+                </div>
+            </template>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            componentsSelect: [
+                {
+                    model_id: 0,
+                    lable: '全部'
+                }
+            ],
+            componentsArrar: [
+                {
+                    data_id: 1,
+                    title: '高德地图',
+                    imgPng: require('@assets/img/formulation/img_ditu@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_4x@2x.png')
+                },
+                {
+                    data_id: 2,
+                    title: '投诉建议',
+                    imgPng: require('@assets/img/formulation/img_bingzhuangtu@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
+                },
+                {
+                    data_id: 3,
+                    title: '常用功能',
+                    imgPng: require('@assets/img/formulation/img_changyonggongneng@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
+                },
+                {
+                    data_id: 4,
+                    title: '服务满意度趋势',
+                    imgPng: require('@assets/img/formulation/img_zhuzhuangtu@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
+                },
+                {
+                    data_id: 5,
+                    title: '设备告警趋势',
+                    imgPng: require('@assets/img/formulation/img_zhexiantu@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
+                },
+                {
+                    data_id: 6,
+                    title: '房屋租售率',
+                    imgPng: require('@assets/img/formulation/img_bing+baifenbi@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
+                },
+                {
+                    data_id: 7,
+                    title: '收款率分析',
+                    imgPng: require('@assets/img/formulation/img_bing+baifenbi@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_1x@2x.png')
+                }
+            ],
+            componentsValue: 0
+        };
+    },
+    watch: {},
+    methods: {
+        dragstart(e, item) {
+            //拖拽开始时将item存入vuex
+            this.$store.commit('setDragItem', item);
+        },
+        drag(e) {
+            //拖拽中执行的事件
+            // console.log('drag',e)s
+        },
+        dragend(e) {
+            //拖拽结束执行的事件
+            // console.log('dragend', e);
+        }
+    },
+    destroyed() {},
+    created() {}
+};
+</script>
+<style lang="scss" scoped>
+@import '@assets/css/public-style.scss';
+$BackColor: #171f32;
+
+.leftAssembly {
+    width: 174px;
+    background: $BackColor;
+    border-radius: 4px;
+    padding: rem(20) rem(8) rem(20) rem(20);
+    .saveColumn-select {
+        margin-bottom: rem(30);
+        margin-right: rem(12);
+        /deep/ .el-input__inner {
+            background: transparent;
+            color: white;
+            border-color: rgba(255, 255, 255, 0.2);
+        }
+    }
+    // 块级模块
+    .componentsBlock {
+        height: calc(100% - #{rem(62)});
+        overflow-y: auto;
+        overflow-x: hidden;
+        &::-webkit-scrollbar {
+            z-index: 11;
+            width: rem(4);
+        }
+        &::-webkit-scrollbar-track,
+        &::-webkit-scrollbar-corner {
+            background: transparent;
+        }
+        &::-webkit-scrollbar-thumb {
+            border-radius: 5px;
+            width: rem(4);
+            background: rgba(250, 250, 250, 0.09);
+        }
+        &::-webkit-scrollbar-track-piece {
+            background: transparent;
+            width: rem(4);
+        }
+        .moveBlock {
+            font-size: 12px;
+            width: rem(132);
+            height: rem(132);
+            background: rgba(0, 0, 0, 0.1);
+            box-sizing: border-box;
+            border-radius: 4px;
+            border: 1px solid rgba(255, 255, 255, 0.2);
+            padding: rem(10);
+            margin-bottom: rem(20);
+            text-align: center;
+            position: relative;
+            cursor: move;
+            .moveBlock_titles {
+                overflow: hidden;
+                white-space: nowrap;
+                text-overflow: ellipsis;
+                width: 100%;
+            }
+            .moveBlock_img {
+                width: rem(60);
+                margin: auto;
+                img {
+                    width: 100%;
+                    margin-top: rem(20);
+                }
+            }
+            .moveBlock_icon {
+                position: absolute;
+                right: 0;
+                bottom: 0;
+                height: rem(20);
+                img {
+                    width: rem(28);
+                    height: rem(20);
+                }
+            }
+        }
+    }
+}
+</style>
+      

+ 27 - 0
operationSupport/src/views/newWorkBench/template/modularLoading.vue

@@ -0,0 +1,27 @@
+<template>
+    <div class="modularLoading" v-if="loadding">
+        <div class="el-loading-spinner">
+            <i class="el-icon-loading"></i>
+            <div class="el-loading-text">{{ tipsText || '模块加载中' }}</div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    props: ['loadding', 'tipsText']
+};
+</script>
+<style lang="scss" scoped>
+.modularLoading {
+    position: absolute;
+    z-index: 2000;
+    background-color: rgba(0, 0, 0, 1);
+    margin: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    -webkit-transition: opacity 0.3s;
+    transition: opacity 0.3s;
+}
+</style>

+ 10 - 4
operationSupport/src/views/patrolManagement/popups/patrolDetails.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="patrolDetails">
-        <div class="search">
+        <div class="search" v-if="!this.params">
             <span>巡更详情</span>
             <div class="search-icon">
                 <el-tooltip effect="light" placement="bottom" content="返回">
@@ -76,7 +76,7 @@
 <script>
 import mapValue from './mapValue.vue';
 export default {
-    props: ['thisObj'],
+    props: ['thisObj', 'params'],
     components: { mapValue },
     data() {
         return {
@@ -149,8 +149,14 @@ export default {
         }
     },
     created() {
-        this.getDetail(this.thisObj.id);
-        this.getTrack(this.thisObj.id);
+        if (!!this.params) {
+            this.thisObj = this.params.thisObj;
+            this.getDetail(this.params.thisObj.id);
+            this.getTrack(this.params.thisObj.id);
+        } else {
+            this.getDetail(this.thisObj.id);
+            this.getTrack(this.thisObj.id);
+        }
     }
 };
 </script>>

+ 262 - 222
operationSupport/src/views/performanceManagement/performanceEvaluation/popups/evaluationDetail.vue

@@ -1,293 +1,333 @@
-<!--
 <template>
     <div>
         <div class="top">
             <div class="person-info">
-              <img :src="defineAvatar" alt="">
-              <div class="person-info-p">
-                <p class="person-name" :title="rowInfo.evaluationBe">{{rowInfo.evaluationBe}}</p>
-                <p class="person-dapartment" :title="rowInfo.deptOrgName">{{rowInfo.deptOrgName?rowInfo.deptOrgName:'-'}}</p>
-              </div>
+                <img :src="defineAvatar" alt="" />
+                <div class="person-info-p">
+                    <p class="person-name" :title="rowInfo.evaluationBe">{{ rowInfo.evaluationBe }}</p>
+                    <p class="person-dapartment" :title="rowInfo.deptOrgName">{{ rowInfo.deptOrgName ? rowInfo.deptOrgName : '-' }}</p>
+                </div>
             </div>
             <ul>
-                <li v-for="(item,index) in toplist" :key="index">
-                  <p class="p_name">{{item.itemname}}</p>
-                  <p class="p_num" :style="{'color':item.itemcolor}">{{item.itemunit?(item.itemnum*100).toFixed(2):item.itemnum}}{{item.itemunit}}</p>
+                <li v-for="(item, index) in toplist" :key="index">
+                    <p class="p_name">{{ item.itemname }}</p>
+                    <p class="p_num" :style="{ color: item.itemcolor }">
+                        {{ item.itemunit ? (item.itemnum * 100).toFixed(2) : item.itemnum }}{{ item.itemunit }}
+                    </p>
                 </li>
             </ul>
         </div>
         <zz-table
-                :cols="cols"
-                :settings="{ showCheckbox: false, showIndex: true, stripe: true }"
-                :loading="mixins_onQuery"
-                :data="mixins_list"
-                :pageset="mixins_pageset"
-                @page-change="pageChange"
-                @selection-change="selectionChange"
-            >
-              <template slot-scope="scope" slot="statusName">
-                    <span>{{scope.row.currentTaskName?scope.row.currentTaskName:scope.row.orderStatusName}}</span>
-                </template>
-                <template slot-scope="scope" slot="serviceTypeZN">
-                    <span v-for="item in allserviceType" :key="item.dictCode" v-show="scope.row.serviceType == item.dictCode">{{
-                        item.dictValue
-                    }}</span>
-                </template>
-                <template slot-scope="scope" slot="opt">                  
-                    <i @click="openTaskDetail(scope.row)" class="iconfont" style="color: #2787f1" v-txt-tip data-txt="详情">&#xe6eb;</i>
-                </template>
-            </zz-table>
+            :cols="cols"
+            :settings="{ showCheckbox: false, showIndex: true, stripe: true }"
+            :loading="mixins_onQuery"
+            :data="mixins_list"
+            :pageset="mixins_pageset"
+            @page-change="pageChange"
+            @selection-change="selectionChange"
+        >
+            <template slot-scope="scope" slot="opt">
+                <div class="opt">
+                    <el-tooltip effect="light" placement="bottom" content="详情">
+                        <i class="zoniot_font zoniot-icon-xiangqing" @click="openTaskDetail(scope.row)"></i>
+                    </el-tooltip>
+                </div>
+            </template>
+        </zz-table>
 
         <el-dialog
-          :title="isTasktype?'任务详情':'工单详情'"
-          :append-to-body="true"
-          :visible.sync="dialogVisible"
-          width="55%"
-          :destroy-on-close="true"
-          :before-close="handleClose">
-          <task-detail v-if="isTasktype" :params='propparams'></task-detail>
-          <order-detail v-else :params='propparams'></order-detail>
+            :title="isTasktype ? '任务详情' : '工单详情'"
+            :append-to-body="true"
+            :visible.sync="dialogVisible"
+            width="55%"
+            :destroy-on-close="true"
+            :before-close="handleClose"
+        >
+            <!-- <task-detail v-if="isTasktype" :params='propparams'></task-detail>
+          <order-detail v-else :params='propparams'></order-detail> -->
         </el-dialog>
     </div>
 </template>
 
 <script>
-import orderDetail from '@/views/orderManage/maintainWorkOrder/popups/allOrderPopup';
-import taskDetail from '@/views/routingInspectionManage/taskManagement/popups/allTaskPopup';
+// import orderDetail from '@/views/orderManage/maintainWorkOrder/popups/allOrderPopup';
+// import taskDetail from '@/views/routingInspectionManage/taskManagement/popups/allTaskPopup';
 import list from '@utils/list.js';
 export default {
-  mixins: [list],
-  props:['params'],
+    mixins: [list],
+    props: ['params'],
     data() {
         return {
-            rowdata:{},
-            rowInfo:'',
+            rowdata: {},
+            rowInfo: '',
             cols: [
                 {
                     label: '任务类型',
-                    prop: 'typeName',
-                },
-                {
-                    label: '编号',
-                    prop: 'taskNo',
+                    prop: 'typeName'
                 },
+                // {
+                //     label: '编号',
+                //     prop: 'taskNo',
+                // },
                 {
                     label: '名称/描述',
-                    prop: 'taskDesc',
+                    prop: 'describe'
                 },
                 {
                     label: '状态',
-                    prop: 'orderStatusName',
-                    slot: 'statusName'
+                    prop: 'status'
+                    // slot: 'statusName'
                 },
-                 {
+                {
                     label: '计划开始时间',
-                    prop: 'dateCreate'
+                    prop: 'startDate'
                 },
-                 {
+                {
                     label: '计划完成时间',
-                    prop: 'planFinishDate'
+                    prop: 'endDate'
                 },
-                 {
+                {
                     label: '实际完成时间',
-                    prop: 'finishDate'
+                    prop: 'endTime'
                 },
-                 {
+                {
                     label: '操作',
                     prop: 'opt',
                     slot: 'opt'
-                  
                 }
             ],
-            mixins_list:[],
+            mixins_list: [],
             mixins_query: {
-                "startTime":'',
-                "endTime":'',
-                "tenantId":'',
-                userId: '',
+                startDate: '',
+                endDate: '',
+                // "tenantId":'',
+                userId: ''
             },
-            toplist:[
-              {itemname:'任务总数',itemnum:100,itemcolor:'#29B6FF',itemunit:''},
-              {itemname:'已完成',itemnum:100,itemcolor:'#B72EF6',itemunit:''},
-              {itemname:'待完成',itemnum:100,itemcolor:'#21D4DC',itemunit:''},
-              {itemname:'延期任务',itemnum:100,itemcolor:'#FD3A68',itemunit:''},
-              {itemname:'完成率',itemnum:100,itemcolor:'#6F72FF',itemunit:'%'},
-              {itemname:'延期率',itemnum:100,itemcolor:'#FEA63E',itemunit:'%'},
+            toplist: [
+                { itemname: '任务总数', itemnum: 100, itemcolor: '#29B6FF', itemunit: '' },
+                { itemname: '已完成', itemnum: 100, itemcolor: '#B72EF6', itemunit: '' },
+                { itemname: '待完成', itemnum: 100, itemcolor: '#21D4DC', itemunit: '' },
+                { itemname: '延期任务', itemnum: 100, itemcolor: '#FD3A68', itemunit: '' },
+                { itemname: '完成率', itemnum: 100, itemcolor: '#6F72FF', itemunit: '%' },
+                { itemname: '延期率', itemnum: 100, itemcolor: '#FEA63E', itemunit: '%' }
             ],
-            defineAvatar:require('@/assets/img/defineAvatarEvaluation.png'),
-            dialogVisible:false,
-            propparams:{
-              data:{}
+            defineAvatar: require('@/assets/img/defineAvatarEvaluation.png'),
+            dialogVisible: false,
+            propparams: {
+                data: {}
             },
-            clickItem:{},
-            taskTypeList:[],
-            isTasktype:false
+            clickItem: {},
+            taskTypeList: [],
+            isTasktype: false
         };
     },
-    components:{taskDetail,orderDetail},
-    methods:{
-      getlistpage() {
-            this.mixins_dataUrl = '/order/workOrderManage/findWorkOrderPage';
+    // components:{taskDetail,orderDetail},
+    methods: {
+        getlistpage() {
+            this.mixins_dataUrl = '/sc-community/evaluation/result/task/detail';
             this.mixins_pageset = {
                 pageNum: this.mixins_pageset.pageNum,
-                pageSize: this.mixins_pageset.pageSize,
+                pageSize: this.mixins_pageset.pageSize
             };
             this.mixins_post = 'post';
             this.mixins_search();
         },
-        dataAssign(data){
-          this.rowdata = data;
-          this.tableData = this.rowdata.detailsVoList;
-          this.toplist[0].itemnum = this.rowdata.totalCount;
-          this.toplist[1].itemnum = this.rowdata.completeCount ;
-          this.toplist[2].itemnum = this.rowdata.noCompleteCount ;
-          this.toplist[3].itemnum = this.rowdata.delayCompleteCount ;
-          this.toplist[4].itemnum = this.rowdata.completionRate ;
-          this.toplist[5].itemnum = this.rowdata.delayRate;
-      },
-       openTaskDetail(item) {
-          this.propparams.data = {};
-          this.clickItem = item;
-          new Promise((resolve) => {
-             if(_.findIndex(this.taskTypeList,function(o) { return o.dictCode == item.orderTypeId })!==-1){
-               this.isTasktype = true;
-              this.$http.get('/workflow/task/selectWorkFlowById', {
-                 flowId:item.id
-               }).then(({status, data , msg}) => {
-                 this.propparams.data = data;
-                 resolve()                      
-               })    
-
-             }else{
-              this.isTasktype = false;
-               this.$http.get('/order/workOrderManage/findWorkFlowById', {
-                 flowId:item.id
-               }).then(({status, data , msg}) => {
-                 this.propparams.data = data; 
-                 resolve()                      
-               })    
-
-             }
-           }).then(() => {             
-                this.dialogVisible = true;
-            })
+        dataAssign(data) {
+            this.rowdata = data;
+            this.tableData = this.rowdata.detailsVoList;
+            this.toplist[0].itemnum = this.rowdata.totalCount;
+            this.toplist[1].itemnum = this.rowdata.completeCount;
+            this.toplist[2].itemnum = this.rowdata.noCompleteCount;
+            this.toplist[3].itemnum = this.rowdata.delayCompleteCount;
+            this.toplist[4].itemnum = this.rowdata.completionRate;
+            this.toplist[5].itemnum = this.rowdata.delayRate;
+        },
+        openTaskDetail(row) {
+            if (row.type == 1) {
+                let datas = {};
+                new Promise((resolve) => {
+                    this.$http
+                        .post(`/sc-community/inspectionRecord/page`, { id: row.id, pageNum: 1, pageSize: 1 })
+                        .then(({ status, data, msg }) => {
+                            datas = data.list[0];
+                            resolve && resolve();
+                        });
+                }).then(() => {
+                    new Promise((resolve) => {
+                        this.$store.dispatch('addPopup', {
+                            url: '/facilityInspections/popups/details.vue',
+                            width: '900px',
+                            height: '581px',
+                            props: {
+                                data: datas,
+                                callback: resolve
+                            },
+                            showConfirmButton: true,
+                            showCancelButton: true,
+                            hideStar: true,
+                            title: '巡检详情'
+                        });
+                    }).then(() => {});
+                });
+            } else if (row.type == 2) {
+                let datas = {};
+                new Promise((resolve) => {
+                    this.$http
+                        .post(`/sc-community/patrolRecord/page`, { id: row.id, pageNum: 1, pageSize: 1 })
+                        .then(({ status, data, msg }) => {
+                            datas = data.list[0];
+                            resolve && resolve();
+                        });
+                }).then(() => {
+                    new Promise((resolve) => {
+                        this.$store.dispatch('addPopup', {
+                            url: '/patrolManagement/popups/patrolDetails.vue',
+                            width: '1200px',
+                            height: '700px',
+                            props: {
+                                thisObj: datas,
+                                callback: resolve
+                            },
+                            showConfirmButton: true,
+                            showCancelButton: true,
+                            hideStar: true,
+                            title: '巡更记录'
+                        });
+                    }).then(() => {});
+                });
+            } else if (row.type == 3) {
+                new Promise((resolve) => {
+                    this.$store.dispatch('addPopup', {
+                        url: '/workOrders/popups/details.vue',
+                        width: '900px',
+                        height: '581px',
+                        props: {
+                            id: row.id,
+                            callback: resolve
+                        },
+                        showConfirmButton: true,
+                        showCancelButton: true,
+                        hideStar: true,
+                        title: '工单详情'
+                    });
+                }).then(() => {
+                    this.mixins_search();
+                });
+            }
         },
-        getTaskType(){
-          this.$http.post('/user-center/dict/selectList', { parentDictCode: 'SC_TASK_TYPE' }).then(({ status, data, msg}) => {
-              if(0 === status) {
-                  this.taskTypeList = data;
-              }else{
-                  this.this.$message.error(msg);
-              }
-          })
+        getTaskType() {
+            this.$http.post('/sc-user-center/dict/selectList', { parentDictCode: 'SC_TASK_TYPE' }).then(({ status, data, msg }) => {
+                if (0 === status) {
+                    this.taskTypeList = data;
+                } else {
+                    this.this.$message.error(msg);
+                }
+            });
         }
     },
     mounted() {
-      this.getTaskType();
-      this.mixins_query.userId = this.params.rowInfo.evaluationBeUserId;
-      this.mixins_query.startTime = this.params.data.dateStart;      
-      this.mixins_query.endTime = this.params.data.dateEnd;      
-      this.mixins_query.tenantId = this.params.data.tenantId;    
-      this.rowInfo = this.params.rowInfo;
-      this.getlistpage();
-      this.dataAssign(this.params.data);
-    },
-
+        this.getTaskType();
+        this.mixins_query.userId = this.params.rowInfo.evaluationBeUserId;
+        this.mixins_query.startDate = this.params.data.dateStart;
+        this.mixins_query.endDate = this.params.data.dateEnd;
+        // this.mixins_query.tenantId = this.params.data.tenantId;
+        this.rowInfo = this.params.rowInfo;
+        this.getlistpage();
+        this.dataAssign(this.params.data);
+    }
 };
 </script>
 
 <style lang='scss' scoped>
-  .top{
+.top {
     display: flex;
     margin-bottom: 20px;
-    
-    .person-info{
-      display: flex;
-      margin-right: 20px;
-      img{
-        width: 56px;
-        height: 56px;
-      }
-      .person-info-p{
-        margin-left: 10px;
-        padding-top: 6px;
-        .person-name{
-          font-size: 18px;
-          font-family: Microsoft YaHei;
-          font-weight: bold;
-          color: #212226;
-          white-space: nowrap;
-          overflow: hidden;
-          text-overflow: ellipsis;
-          width: 100px;
+
+    .person-info {
+        display: flex;
+        margin-right: 20px;
+        img {
+            width: 56px;
+            height: 56px;
         }
-        .person-dapartment{
-          font-size: 14px;
-          font-family: Microsoft YaHei;
-          font-weight: 400;
-          color: #212226;
-          width: 100px;
-          white-space: nowrap;
-          overflow: hidden;
-          text-overflow: ellipsis;
+        .person-info-p {
+            margin-left: 10px;
+            padding-top: 6px;
+            .person-name {
+                font-size: 18px;
+                font-family: Microsoft YaHei;
+                font-weight: bold;
+                color: #212226;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                width: 100px;
+            }
+            .person-dapartment {
+                font-size: 14px;
+                font-family: Microsoft YaHei;
+                font-weight: 400;
+                color: #212226;
+                width: 100px;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
+            }
         }
-      }
     }
-    ul{
-      padding: 0;
-      margin: 0;
-      margin-top: 6px;
-      display: flex;
-      li{
-        // float: left;
-        width: 165px;
-        flex: 1;
-        text-align: center;
-        border-right: 1px solid #D8D8D8;
-        .p_name{
-          font-size: 14px;
-          font-family: Microsoft YaHei;
-          font-weight: 400;
-          color: #212226;
+    ul {
+        padding: 0;
+        margin: 0;
+        margin-top: 6px;
+        display: flex;
+        li {
+            // float: left;
+            width: 165px;
+            flex: 1;
+            text-align: center;
+            border-right: 1px solid #d8d8d8;
+            .p_name {
+                font-size: 14px;
+                font-family: Microsoft YaHei;
+                font-weight: 400;
+                color: #212226;
+            }
+            .p_num {
+                font-size: 18px;
+                font-family: Microsoft YaHei;
+                font-weight: bold;
+            }
         }
-        .p_num{
-          font-size: 18px;
-          font-family: Microsoft YaHei;
-          font-weight: bold;
+        li:last-child {
+            border-right: none;
         }
-      }
-      li:last-child{
-        border-right: none;
-      }
     }
-  }
-
- /deep/ .el-table thead{
-     font-size: 14px;
-     font-family: MicrosoftYaHei;
-     color: #212226;
+}
 
-   }
-   .static-ul{
-       margin: 20px auto 0;
-       width: 540px;
-       display: flex;
-     li{
-       flex: 1;
-       float: left;
-       span:first-child{
-        font-size: 14px;
-        font-family: Microsoft YaHei;
-        font-weight: bold;
-        color: #212226;
-       }
-        span:last-child{
-         font-size: 14px;
-        font-family: Microsoft YaHei;
-        font-weight: 400;
-        color: #424656;
-       }
-     }
-   }
-</style>
--->
+/deep/ .el-table thead {
+    font-size: 14px;
+    font-family: MicrosoftYaHei;
+    color: #212226;
+}
+.static-ul {
+    margin: 20px auto 0;
+    width: 540px;
+    display: flex;
+    li {
+        flex: 1;
+        float: left;
+        span:first-child {
+            font-size: 14px;
+            font-family: Microsoft YaHei;
+            font-weight: bold;
+            color: #212226;
+        }
+        span:last-child {
+            font-size: 14px;
+            font-family: Microsoft YaHei;
+            font-weight: 400;
+            color: #424656;
+        }
+    }
+}
+</style>

+ 3 - 3
operationSupport/src/views/performanceManagement/performanceEvaluation/popups/evaluationEdit.vue

@@ -89,7 +89,7 @@ export default {
         this.tableData.map(item=>{
           allScore+=(item.score?item.score:0)*1
         })
-        this.$http.postForm('/evaluation/grade/getScoreGrade', {
+        this.$http.postForm('/sc-community/evaluation/grade/getScoreGrade', {
           "tenantId": this.rowdata.tenantId,
           "companyOrgId": this.rowdata.companyOrgId,
           "score": allScore,
@@ -104,7 +104,7 @@ export default {
         });
       },
       refreshData(){
-        this.$http.postForm('/evaluation/task/find', { 'evaluationResultId': this.rowInfo.id }).then(({ status, data, msg }) => {
+        this.$http.postForm('/sc-community/evaluation/task/find', { 'evaluationResultId': this.rowInfo.id }).then(({ status, data, msg }) => {
             if (status === 0) {
                 this.dataAssign(data);
             } else {
@@ -173,7 +173,7 @@ export default {
         "companyOrgId" :this.rowdata.companyOrgId,
         "detailsDtoList" :detailsDtoList
       }
-      this.$http.post('/evaluation/details/update/score', data).then(({ status, data, msg }) => {
+      this.$http.post('/sc-community/evaluation/details/update/score', data).then(({ status, data, msg }) => {
             if (status === 0) {
               this.params.callback && this.params.callback();
               this.$emit('close');

+ 1 - 1
operationSupport/src/views/workOrders/records.vue

@@ -170,7 +170,7 @@ export default {
                     showConfirmButton: true,
                     showCancelButton: true,
                     hideStar: true,
-                    title: '单详情'
+                    title: '单详情'
                 });
             }).then(() => {
                 this.mixins_search();