소스 검색

解决冲突

Shannon_mu 2 년 전
부모
커밋
12a6fbd10e

+ 30 - 5
operationSupport/src/views/newWorkBench/components/addcommonfuntion.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="commonly">
-        <el-checkbox v-for="item in modelArr" v-model="item.checkbox" :label="item.id" :key="item.id" @change="clickIocn(item)"
+        <el-checkbox v-for="item in newModeA" v-model="item.checkbox" :label="item.id" :key="item.id" @change="clickIocn(item)"
             ><div class="checkImg"><img :src="item.imgPng" /></div>
             <div class="checkName">{{ item.lableTitle }}</div>
         </el-checkbox>
@@ -8,15 +8,38 @@
 </template>
 <script>
 import { modelArr } from './commonModel.js';
+import permissionComponent from './permissionComponent';
 export default {
     props: ['params'],
+    mixins: [permissionComponent],
     data() {
         return {
             valueModel: [],
-            modelArr: modelArr
+            thisModelArr: []
         };
     },
+    computed: {
+        newModeA() {
+            let ArMo = [];
+            this.thisModelArr.map((item, index) => {
+                if (this.filterFuntion(this.$store.getters['getMenuList'], item.lableTitle, item.toPage)) {
+                    ArMo.push(item);
+                }
+            });
+            return ArMo;
+        }
+    },
     methods: {
+        // 需要什么权限才能查看
+        filterFuntion(arr, nameTitle, linkPaths) {
+            return arr.some((item) => {
+                if (!!item.children) {
+                    return this.filterFuntion(item.children, nameTitle, linkPaths);
+                } else if (item.name == nameTitle && item.linkPath == linkPaths) {
+                    return true;
+                }
+            });
+        },
         clickIocn(item) {
             let sun = this.testingCheck();
             if (sun > 4) {
@@ -26,7 +49,7 @@ export default {
         },
         testingCheck() {
             let sun = 0;
-            this.modelArr.map((list, index) => {
+            this.thisModelArr.map((list, index) => {
                 if (list.checkbox == true) {
                     sun++;
                 }
@@ -39,7 +62,7 @@ export default {
                 this.$message.info('请选择4项常用模块');
             } else {
                 let installVal = {
-                    menuIds: JSON.stringify(this.modelArr.filter((item) => item.checkbox == true))
+                    menuIds: JSON.stringify(this.thisModelArr.filter((item) => item.checkbox == true))
                 };
                 let url = '/sc-community/workbenchMenuUsed/add';
                 if (!!this.params.thisObj.id) {
@@ -55,7 +78,9 @@ export default {
             }
         }
     },
-    created() {}
+    created() {
+        this.thisModelArr = JSON.parse(JSON.stringify(modelArr));
+    }
 };
 </script>
 <style lang="scss" scoped>

+ 86 - 48
operationSupport/src/views/newWorkBench/components/collectionRate.vue

@@ -1,63 +1,91 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">收款率分析</div>
-            <div class="model-title-right">
-                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
-                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-                </el-select>
-                <el-select v-model="mixins_query.chargeType" placeholder="所有费用" clearable class="saveColumn-select" @change="getData">
-                    <el-option v-for="(item, index) in amountType" :label="item.name" :value="item.value" :key="index"></el-option>
-                </el-select>
-                <el-date-picker
-                    value-format="yyyy-MM"
-                    v-model="date"
-                    type="month"
-                    placeholder="选择月"
-                    class="saveColumn-select"
-                    @change="changeTime"
-                    :clearable="false"
-                >
-                </el-date-picker>
-            </div>
-        </div>
-        <div class="model-content">
-            <process-circle
-                class="item"
-                :strokeWidth="strokeWidth"
-                :strokeColor="strokeColor"
-                :trailWidth="trailWidth"
-                :trailColor="trailColor"
-                :percent="dataObj.receivedAmount"
-            >
-                <span class="ashText" style="font-size: 14px">收款率</span>
-                <span> {{ parseInt((dataObj.receivedAmount / dataObj.receivableAmount || 0).toFixed(2) * 100) }}%</span>
-            </process-circle>
-            <div class="textAmount">
-                <div class="listAmount">
-                    <div class="listText">应收金额</div>
-                    <div class="listNumber">{{ dataObj.receivableAmount }}</div>
-                </div>
-                <div class="listAmount">
-                    <div class="listText">已收金额</div>
-                    <div class="listNumber">{{ dataObj.receivedAmount }}</div>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">收款率分析</div>
+                <div class="model-title-right">
+                    <el-date-picker
+                        value-format="yyyy-MM"
+                        v-model="date"
+                        type="month"
+                        placeholder="选择月"
+                        class="saveColumn-select saveColumn-select-time"
+                        @change="changeTime"
+                        :clearable="false"
+                    >
+                    </el-date-picker>
+                    <div style="display: flex; justify-content: space-between">
+                        <el-select
+                            v-model="mixins_query.communityId"
+                            placeholder="所有社区"
+                            clearable
+                            class="saveColumn-select"
+                            @change="getData"
+                        >
+                            <el-option
+                                v-for="(item, index) in communityList"
+                                :label="item.communityName"
+                                :value="item.id"
+                                :key="index"
+                            ></el-option>
+                        </el-select>
+                        <el-select
+                            v-model="mixins_query.chargeType"
+                            placeholder="所有费用"
+                            clearable
+                            class="saveColumn-select"
+                            @change="getData"
+                        >
+                            <el-option v-for="(item, index) in amountType" :label="item.name" :value="item.value" :key="index"></el-option>
+                        </el-select>
+                    </div>
                 </div>
-                <div class="listAmount">
-                    <div class="listText">未收金额</div>
-                    <div class="listNumber">{{ dataObj.uncollected }}</div>
+            </div>
+            <div class="model-content">
+                <process-circle
+                    class="item"
+                    :strokeWidth="strokeWidth"
+                    :strokeColor="strokeColor"
+                    :trailWidth="trailWidth"
+                    :trailColor="trailColor"
+                    :percent="dataObj.receivedAmount"
+                >
+                    <span class="ashText" style="font-size: 14px">收款率</span>
+                    <span> {{ parseInt((dataObj.receivedAmount / dataObj.receivableAmount || 0).toFixed(2) * 100) }}%</span>
+                </process-circle>
+                <div class="textAmount">
+                    <div class="listAmount">
+                        <div class="listText">应收金额</div>
+                        <div class="listNumber">{{ dataObj.receivableAmount }}</div>
+                    </div>
+                    <div class="listAmount">
+                        <div class="listText">已收金额</div>
+                        <div class="listNumber">{{ dataObj.receivedAmount }}</div>
+                    </div>
+                    <div class="listAmount">
+                        <div class="listText">未收金额</div>
+                        <div class="listNumber">{{ dataObj.uncollected }}</div>
+                    </div>
                 </div>
             </div>
-        </div>
+        </template>
+        <no-permission v-else tipsText="收款率分析"></no-permission>
     </div>
 </template>
 <script>
 import processCircle from './circle'; // 环形进度条
+import permissionComponent from './permissionComponent';
 export default {
+    mixins: [permissionComponent],
     components: {
         processCircle
     },
     data() {
         return {
+            defaultModel: {
+                permissUrl: '14',
+                titleName: '收费管理'
+            },
             strokeWidth: 15, // 线条宽度
             trailWidth: 15, // 背景线条宽度
             trailColor: '#2C3345', // 背景线条宽度
@@ -111,8 +139,8 @@ export default {
                 let rep = /[\.]/;
                 if (status == 0 && !!data) {
                     this.dataObj = {
-                        receivableAmount: data.receivableAmount || 0,
-                        receivedAmount: data.receivedAmount || 0,
+                        receivableAmount: !!data.receivableAmount && data.receivableAmount !== 0 ? data.receivableAmount.toFixed(2) : 0,
+                        receivedAmount: !!data.receivedAmount && data.receivedAmount !== 0 ? data.receivedAmount.toFixed(2) : 0,
                         uncollected: rep.test(data.receivableAmount - data.receivedAmount || 0)
                             ? (data.receivableAmount - data.receivedAmount || 0).toFixed(2)
                             : 0
@@ -141,12 +169,22 @@ export default {
 <style scoped lang="scss">
 @import './style.scss';
 .modelBlock {
+    .model-content {
+        height: calc(100% - #{rem(80)});
+    }
     .model-title {
         .saveColumn-select {
-            width: rem(80);
+            width: calc(50% - 10px);
+        }
+        .saveColumn-select-time {
+            width: 100%;
+            margin-bottom: rem(5);
         }
     }
 }
+.model-title-right {
+    width: calc(100% - #{rem(100)});
+}
 // .indexWorkbench {
 //     .modelBlock {
 //         .model-title {

+ 70 - 35
operationSupport/src/views/newWorkBench/components/commonModel.js

@@ -5,35 +5,40 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_shequguanli@2x.png'),
     lableTitle: '社区管理',
     toPage: 'communityManagement/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'loudongguanli',
     imgPng: require('@assets/img/homePage/icon_loudongguanli@2x.png'),
     lableTitle: '楼栋管理',
     toPage: 'buildingManagement/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'fangwuguanli',
     imgPng: require('@assets/img/homePage/icon_fangwuguanli@2x.png'),
     lableTitle: '房屋管理',
     toPage: 'assetManagement/housingManagement/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'shangpuguanli',
     imgPng: require('@assets/img/homePage/icon_shangpuguanli@2x.png'),
     lableTitle: '商铺管理',
     toPage: 'assetManagement/shopManagement/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'cheweiguanli',
     imgPng: require('@assets/img/homePage/icon_cheweiguanli@2x.png'),
     lableTitle: '车位管理',
     toPage: 'parkingLotAdministration/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //住户管理
   {
@@ -41,14 +46,16 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_zhuhuguanli@2x.png'),
     lableTitle: '住户管理',
     toPage: 'ownerManagement/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'yezhushenhe',
     imgPng: require('@assets/img/homePage/icon_yezhushenhe@2x.png'),
     lableTitle: '业主审核',
     toPage: 'ownerManagement/ownerReview/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //告警管理
   {
@@ -56,14 +63,16 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_gaojingguanli@2x.png'),
     lableTitle: '告警管理',
     toPage: "alarmManagement/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'gaojingxiangqing',
     imgPng: require('@assets/img/homePage/icon_gaojingxiangqing@2x.png'),
     lableTitle: '告警详情',
     toPage: 'alarmManagement/details',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //收费管理
   {
@@ -71,77 +80,88 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_feiyongzhangdan@2x.png'),
     lableTitle: '费用账单',
     toPage: "payService/propertyFee/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'shuifeiguanli',
     imgPng: require('@assets/img/homePage/icon_shuifeiguanli@2x.png'),
     lableTitle: '水费管理',
     toPage: "payService/waterManagement/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'dianfeiguanli',
     imgPng: require('@assets/img/homePage/icon_dianfeiguanli@2x.png'),
     lableTitle: '电费管理',
     toPage: "payService/electricManagement/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'cuijiao',
     imgPng: require('@assets/img/homePage/icon_cuijiao@2x.png'),
     lableTitle: '催缴',
     toPage: "payService/call/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'jifeiguize',
     imgPng: require('@assets/img/homePage/icon_jifeiguize@2x.png'),
     lableTitle: '计费规则',
     toPage: 'payService/billingRules/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'shoufeishezhi',
     imgPng: require('@assets/img/homePage/icon_shoufeishezhi@2x.png'),
     lableTitle: '收费设置',
     toPage: "payService/chargeSetting/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'shoukuanzhanghao',
     imgPng: require('@assets/img/homePage/icon_shoukuanzhanghao@2x.png'),
     lableTitle: '收款账号',
     toPage: "payService/collection/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'tongjibaobiao',
     imgPng: require('@assets/img/homePage/icon_tongjibaobiao@2x.png'),
     lableTitle: '统计报表',
     toPage: "payService/statisticalReport/chargeStatistics",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'shuifeimingxi',
     imgPng: require('@assets/img/homePage/icon_shuifeimingxi@2x.png'),
     lableTitle: '水费明细',
     toPage: "payService/statisticalReport/waterChargeDetails",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'dianfeimingxi',
     imgPng: require('@assets/img/homePage/icon_dianfeimingxi@2x.png'),
     lableTitle: '电费明细',
     toPage: "payService/statisticalReport/electricityBillDetails",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'xitongshezhi',
     imgPng: require('@assets/img/homePage/icon_xitongshezhi@2x.png'),
     lableTitle: '系统设置',
     toPage: "payService/systemSetup/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //设备管理
   {
@@ -149,21 +169,24 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_shebeiguanli@2x.png'),
     lableTitle: '设备管理',
     toPage: "deviceManagement/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'sheshiguanli',
     imgPng: require('@assets/img/homePage/icon_sheshiguanli@2x.png'),
     lableTitle: '设施管理',
     toPage: "deviceManagement/indexFacilities",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'sheshileixing',
     imgPng: require('@assets/img/homePage/icon_sheshileixing@2x.png'),
     lableTitle: '设施类型',
     toPage: "deviceManagement/indexType",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //运维管理
   {
@@ -171,14 +194,16 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_gongdanguanli@2x.png'),
     lableTitle: '工单管理',
     toPage: "workOrders/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'gongdanjilu',
     imgPng: require('@assets/img/homePage/icon_gongdanjilu@2x.png'),
     lableTitle: '工单记录',
     toPage: 'workOrders/records',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //设备设施巡检
   {
@@ -186,14 +211,16 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_xunjianjihua@2x.png'),
     lableTitle: '巡检计划',
     toPage: "facilityInspections/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'xunjianjilu',
     imgPng: require('@assets/img/homePage/icon_xunjianjilu@2x.png'),
     lableTitle: '巡检记录',
     toPage: 'facilityInspections/inspectionsRecords',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //巡更管理
   {
@@ -201,21 +228,24 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_xungengdianwei@2x.png'),
     lableTitle: '巡更点位',
     toPage: "patrolManagement/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'xungengluxian',
     imgPng: require('@assets/img/homePage/icon_xungengluxian@2x.png'),
     lableTitle: '巡更路线',
     toPage: "patrolManagement/patrolRoute",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'xungengjilu',
     imgPng: require('@assets/img/homePage/icon_xungengjilu@2x.png'),
     lableTitle: '巡更记录',
     toPage: 'patrolManagement/patrolRecords',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   //物业管理
 
@@ -224,28 +254,32 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_tongzhigonggao@2x.png'),
     lableTitle: '通知公告',
     toPage: 'propertyManagement/inform',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'tousujianyi',
     imgPng: require('@assets/img/homePage/icon_tousujianyi@2x.png'),
     lableTitle: '投诉建议',
     toPage: 'propertyManagement/index',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'shequlinli',
     imgPng: require('@assets/img/homePage/icon_shequlinli@2x.png'),
     toPage: "propertyManagement/neighbor",
     lableTitle: '社区邻里',
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
   {
     id: 'wuyedianhua',
     imgPng: require('@assets/img/homePage/icon_wuyedianhua@2x.png'),
     lableTitle: '物业电话',
     toPage: "propertyManagement/phone",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
 
   // {
@@ -286,6 +320,7 @@ export const modelArr = [
     imgPng: require('@assets/img/homePage/icon_liuchengguanli @2x.png'),
     lableTitle: '流程管理',
     toPage: "flow/index",
-    checkbox: false
+    checkbox: false,
+    show: true,
   },
 ]

+ 40 - 20
operationSupport/src/views/newWorkBench/components/complaintsAndSuggestions.vue

@@ -1,31 +1,46 @@
 
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">投诉建议数量趋势</div>
-            <div class="model-title-right">
-                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
-                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-                </el-select>
-                <el-date-picker
-                    value-format="yyyy-MM"
-                    v-model="date"
-                    type="month"
-                    placeholder="选择月"
-                    class="saveColumn-select"
-                    @change="changeTime"
-                    :clearable="false"
-                >
-                </el-date-picker>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">投诉建议数量趋势</div>
+                <div class="model-title-right">
+                    <el-select
+                        v-model="mixins_query.communityId"
+                        placeholder="所有社区"
+                        clearable
+                        class="saveColumn-select"
+                        @change="getData"
+                    >
+                        <el-option
+                            v-for="(item, index) in communityList"
+                            :label="item.communityName"
+                            :value="item.id"
+                            :key="index"
+                        ></el-option>
+                    </el-select>
+                    <el-date-picker
+                        value-format="yyyy-MM"
+                        v-model="date"
+                        type="month"
+                        placeholder="选择月"
+                        class="saveColumn-select"
+                        @change="changeTime"
+                        :clearable="false"
+                    >
+                    </el-date-picker>
+                </div>
             </div>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-        </div>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+            </div>
+        </template>
+        <no-permission v-else tipsText="投诉建议数量趋势"></no-permission>
     </div>
 </template>
 <script>
 import { discountedWave } from './indexOptionChart';
+import permissionComponent from './permissionComponent';
 let dataArr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
 let dataDay = [
     '01-01',
@@ -62,8 +77,13 @@ let dataDay = [
 ];
 export default {
     props: ['dataObj'],
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: 'propertyManagement/index',
+                titleName: '投诉建议'
+            },
             mixins_query: {
                 communityId: '',
                 date: ''

+ 43 - 23
operationSupport/src/views/newWorkBench/components/complaintsSuggestions.vue

@@ -1,41 +1,61 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">投诉建议类型</div>
-            <div class="model-title-right">
-                <el-select v-model="mixins_query.communityId" placeholder="全部社区" clearable class="saveColumn-select" @change="getData">
-                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-                </el-select>
-                <el-date-picker
-                    value-format="yyyy-MM"
-                    v-model="date"
-                    type="month"
-                    placeholder="选择月"
-                    class="saveColumn-select"
-                    @change="changeTime"
-                    :clearable="false"
-                >
-                </el-date-picker>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">投诉建议类型</div>
+                <div class="model-title-right">
+                    <el-select
+                        v-model="mixins_query.communityId"
+                        placeholder="全部社区"
+                        clearable
+                        class="saveColumn-select"
+                        @change="getData"
+                    >
+                        <el-option
+                            v-for="(item, index) in communityList"
+                            :label="item.communityName"
+                            :value="item.id"
+                            :key="index"
+                        ></el-option>
+                    </el-select>
+                    <el-date-picker
+                        value-format="yyyy-MM"
+                        v-model="date"
+                        type="month"
+                        placeholder="选择月"
+                        class="saveColumn-select"
+                        @change="changeTime"
+                        :clearable="false"
+                    >
+                    </el-date-picker>
+                </div>
             </div>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-            <div class="totals">
-                <span>{{ total }}</span>
-                <span class="numbers">总人数</span>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+                <div class="totals">
+                    <span>{{ total }}</span>
+                    <span class="numbers">总人数</span>
+                </div>
             </div>
-        </div>
+        </template>
+        <no-permission v-else tipsText="投诉建议类型"></no-permission>
     </div>
 </template>
 <script>
 import { ringType } from './indexOptionChart';
+import permissionComponent from './permissionComponent';
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
             mixins_query: {
                 communityId: '',
                 date: ''
             },
+            defaultModel: {
+                permissUrl: 'propertyManagement/index',
+                titleName: '投诉建议'
+            },
             date: '',
             total: 0,
             clientOptions: ringType(

+ 18 - 9
operationSupport/src/views/newWorkBench/components/discount.vue

@@ -1,18 +1,22 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">设备告警趋势(近一个月)</div>
-            <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
-                <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-            </el-select>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-        </div>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">设备告警趋势(近一个月)</div>
+                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
+                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
+                </el-select>
+            </div>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+            </div>
+        </template>
+        <no-permission v-else tipsText="设备告警趋势"></no-permission>
     </div>
 </template>
 <script>
 import { discountedWave } from './indexOptionChart';
+import permissionComponent from './permissionComponent';
 let dataArr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
 let dataDay = [
     '01-01',
@@ -48,8 +52,13 @@ let dataDay = [
     '01-31'
 ];
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: '16',
+                titleName: '告警管理'
+            },
             clientOptions: discountedWave('(次)', dataDay, dataArr),
             mixins_query: {
                 communityId: ''

+ 18 - 9
operationSupport/src/views/newWorkBench/components/equipmentStatistics.vue

@@ -1,23 +1,32 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">设备设施统计</div>
-            <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select">
-                <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-            </el-select>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-        </div>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">设备设施统计</div>
+                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select">
+                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
+                </el-select>
+            </div>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+            </div>
+        </template>
+        <no-permission v-else tipsText="设备设施统计"></no-permission>
     </div>
 </template>
 <script>
 import { columnOptionsChart } from '../EachartOptions.js';
+import permissionComponent from './permissionComponent';
 let timeDay = ['202201', '202202', '202203', '202204', '202205', '202206', '202207', '202208', '202209', '202210', '202211', '202212'];
 export default {
     props: ['dataObj'],
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: '15',
+                titleName: '设备管理'
+            },
             communityList: [],
             mixins_query: {
                 communityId: ''

+ 21 - 12
operationSupport/src/views/newWorkBench/components/householdGender.vue

@@ -1,25 +1,34 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">住户性别占比</div>
-            <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
-                <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-            </el-select>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-            <div class="totals">
-                <span>{{ total }}</span>
-                <span class="numbers">总人数</span>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">住户性别占比</div>
+                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
+                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
+                </el-select>
             </div>
-        </div>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+                <div class="totals">
+                    <span>{{ total }}</span>
+                    <span class="numbers">总人数</span>
+                </div>
+            </div>
+        </template>
+        <no-permission v-else tipsText="住户性别占比"></no-permission>
     </div>
 </template>
 <script>
 import { ringType } from './indexOptionChart';
+import permissionComponent from './permissionComponent';
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: 'ownerManagement/index',
+                titleName: '住户管理'
+            },
             mixins_query: {
                 communityId: ''
             },

+ 21 - 12
operationSupport/src/views/newWorkBench/components/householdIdentity.vue

@@ -1,22 +1,26 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">住户身份占比</div>
-            <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
-                <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-            </el-select>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-            <div class="totals">
-                <span>{{ total }}</span>
-                <span class="numbers">总人数</span>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">住户身份占比</div>
+                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
+                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
+                </el-select>
             </div>
-        </div>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+                <div class="totals">
+                    <span>{{ total }}</span>
+                    <span class="numbers">总人数</span>
+                </div>
+            </div>
+        </template>
+        <no-permission v-else tipsText="住户身份占比"></no-permission>
     </div>
 </template>
 <script>
 import { GradualChange, ringType } from './indexOptionChart';
+import permissionComponent from './permissionComponent';
 const colors = [
     GradualChange('#22D8FF', '#00B2FF'),
     GradualChange('#F0646C', '#F4994E'),
@@ -25,8 +29,13 @@ const colors = [
     GradualChange('#884DD2', '#DF63CC')
 ];
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: 'ownerManagement/index',
+                titleName: '住户管理'
+            },
             mixins_query: {
                 communityId: ''
             },

+ 28 - 23
operationSupport/src/views/newWorkBench/components/ownerApproval.vue

@@ -1,43 +1,48 @@
 
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">业主审批</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">
-                <div class="flex">
-                    <img class="listInformation_img" src="@assets/img/homePage/icon_chuli@2x.png" />
-                    <div class="listInformation_text">
-                        <div>业主名称:{{ item.name }}</div>
-                        <div>房产地址:{{ item.roomNumber }}</div>
-                    </div>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">业主审批</div>
+                <div class="buttons" @click="$router.push({ path: '/ownerManagement/ownerReview/index' })">
+                    <span class="text">查看更多</span> <span class="triangle"></span>
                 </div>
-                <div class="listInformation_operation">
-                    申请时间: {{ item.checkInDate }}<span @click="toPage(item)" class="zoniot_font zoniot-icon-shenhe"></span>
+            </div>
+            <div class="model-content">
+                <div class="listInformation" v-for="(item, index) in datas" :key="index">
+                    <div class="flex">
+                        <img class="listInformation_img" src="@assets/img/homePage/icon_chuli@2x.png" />
+                        <div class="listInformation_text">
+                            <div>业主名称:{{ item.name }}</div>
+                            <div>房产地址:{{ item.roomNumber }}</div>
+                        </div>
+                    </div>
+                    <div class="listInformation_operation">
+                        申请时间: {{ item.checkInDate }}<span @click="toPage(item)" class="zoniot_font zoniot-icon-shenhe"></span>
+                    </div>
                 </div>
+                <div v-if="datas.length <= 0" class="noData">暂无数据</div>
             </div>
-            <div v-if="datas.length <= 0" class="noData">暂无数据</div>
-        </div>
+        </template>
+        <no-permission v-else tipsText="业主审批"></no-permission>
     </div>
 </template>
 <script>
+import permissionComponent from './permissionComponent';
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: 'ownerManagement/ownerReview/index',
+                titleName: '业主审核'
+            },
             mixins_query: {
                 pageNum: 1,
                 pageSize: 3,
                 auditStatus: 0
             },
-            datas: [
-                // {
-                //     name: 111,
-                //     roomNumber: 5555,
-                //     checkInDate: '2020'
-                // }
-            ]
+            datas: []
         };
     },
     created() {

+ 26 - 17
operationSupport/src/views/newWorkBench/components/pendingComplaints.vue

@@ -1,32 +1,41 @@
 
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">待处理投诉</div>
-            <div class="buttons" @click="$router.push({ path: '/propertyManagement/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">
-                <div class="listInformation_text">
-                    <div>住户姓名:{{ item.userName }}</div>
-                    <div>房产地址:{{ item.communityName + '-' + item.roomNumber }}</div>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">待处理投诉</div>
+                <div class="buttons" @click="$router.push({ path: '/propertyManagement/index' })">
+                    <span class="text">查看更多</span> <span class="triangle"></span>
                 </div>
-                <div class="listInformation_text">
-                    <div>投诉内容:{{ item.content }}</div>
-                    <div>投诉时间:{{ item.createDate }}</div>
+            </div>
+            <div class="model-content">
+                <div class="listInformation" v-for="(item, index) in datas" :key="index">
+                    <div class="listInformation_text">
+                        <div>住户姓名:{{ item.userName }}</div>
+                        <div>房产地址:{{ item.communityName + '-' + item.roomNumber }}</div>
+                    </div>
+                    <div class="listInformation_text">
+                        <div>投诉内容:{{ item.content }}</div>
+                        <div>投诉时间:{{ item.createDate }}</div>
+                    </div>
+                    <div class="listInformation_operation"><span @click="toPage(item)" class="zoniot_font zoniot-icon-chuli"></span></div>
                 </div>
-                <div class="listInformation_operation"><span @click="toPage(item)" class="zoniot_font zoniot-icon-chuli"></span></div>
+                <div v-if="datas.length <= 0" class="noData">暂无数据</div>
             </div>
-            <div v-if="datas.length <= 0" class="noData">暂无数据</div>
-        </div>
+        </template>
+        <no-permission v-else tipsText="待处理投诉"></no-permission>
     </div>
 </template>
 <script>
+import permissionComponent from './permissionComponent';
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: 'propertyManagement/index',
+                titleName: '投诉建议'
+            },
             mixins_query: {
                 pageNum: 1,
                 pageSize: 3,

+ 25 - 14
operationSupport/src/views/newWorkBench/components/permissionComponent.js

@@ -1,12 +1,20 @@
 import modularLoading from '@views/newWorkBench/template/modularLoading.vue';
+import noPermission from '@views/newWorkBench/template/noPermission.vue';
+
 export default {
   components: {
     //默认加载
     modularLoading,
+    noPermission
   },
   data() {
     return {
-      loadding: true
+      loadding: true,
+      defaultModel: {
+        permissUrl: "",
+        titleName: ""
+      },
+      permisStatus: false
     }
   },
   computed: {
@@ -17,27 +25,30 @@ export default {
         setTimeout(() => {
           this.loadding = false;
         }, 700)
-        return this.permissionStr(false, arr);
+        this.permissionStr(arr)
+        return this.permisStatus;
       } else {
-        return false;
+        return this.permisStatus;
       }
     }
   },
   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);
+    filterFuntion(arr, nameTitle, linkPaths) {
+      arr.map((item) => {
+        if (item.name == nameTitle && item.linkPath == linkPaths) {
+          this.permisStatus = true
+        } else if (!!item.children) {
+          this.filterFuntion(item.children, nameTitle, linkPaths);
         }
       });
-      return status;
+
+    },
+    permissionStr(arr) {
+      const { permissUrl, titleName } = this.defaultModel;
+      if (!!permissUrl && !!titleName) {
+        return this.filterFuntion(arr, titleName, permissUrl);
+      }
     },
-    // permissionStr(status, arr) {
-    //   return this.filterFuntion(status, arr, 'xxx', 'newWorkBench/index');
-    // },
   }
 }

+ 21 - 12
operationSupport/src/views/newWorkBench/components/rentalAndSaleRate.vue

@@ -1,22 +1,26 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">房屋租售率</div>
-            <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
-                <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-            </el-select>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-            <div class="totals">
-                <span>{{ total }}</span>
-                <span class="numbers">房屋总数</span>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">房屋租售率</div>
+                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
+                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
+                </el-select>
             </div>
-        </div>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+                <div class="totals">
+                    <span>{{ total }}</span>
+                    <span class="numbers">房屋总数</span>
+                </div>
+            </div>
+        </template>
+        <no-permission v-else tipsText="房屋租售率"></no-permission>
     </div>
 </template>
 <script>
 import { ringType } from './indexOptionChart';
+import permissionComponent from './permissionComponent';
 let defaultTitle = {
     text: `{a|租售率}`,
     left: 'center',
@@ -42,11 +46,16 @@ let defaultTitle = {
     }
 };
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
             mixins_query: {
                 communityId: ''
             },
+            defaultModel: {
+                permissUrl: '11',
+                titleName: '房产管理'
+            },
             total: 0,
             defaultTitle: {
                 text: `{a|租售率}`,

+ 44 - 24
operationSupport/src/views/newWorkBench/components/satisfaction.vue

@@ -1,38 +1,58 @@
 <template>
     <div class="modelBlock">
-        <div class="model-title">
-            <div class="model-title-text">服务满意度趋势</div>
-            <div class="model-title-right">
-                <el-select v-model="mixins_query.communityId" placeholder="所有社区" clearable class="saveColumn-select" @change="getData">
-                    <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option>
-                </el-select>
-                <el-select v-model="mixins_query.type" placeholder="所有服务" clearable class="saveColumn-select" @change="getData">
-                    <el-option label="投诉建议" :value="1"></el-option>
-                    <el-option label="运维工单" :value="2"></el-option>
-                </el-select>
-                <el-date-picker
-                    value-format="yyyy"
-                    v-model="date"
-                    type="year"
-                    placeholder="选择年"
-                    class="saveColumn-select"
-                    @change="changeTime"
-                    :clearable="false"
-                >
-                </el-date-picker>
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">服务满意度趋势</div>
+                <div class="model-title-right">
+                    <el-select
+                        v-model="mixins_query.communityId"
+                        placeholder="所有社区"
+                        clearable
+                        class="saveColumn-select"
+                        @change="getData"
+                    >
+                        <el-option
+                            v-for="(item, index) in communityList"
+                            :label="item.communityName"
+                            :value="item.id"
+                            :key="index"
+                        ></el-option>
+                    </el-select>
+                    <el-select v-model="mixins_query.type" placeholder="所有服务" clearable class="saveColumn-select" @change="getData">
+                        <el-option label="投诉建议" :value="1"></el-option>
+                        <el-option label="运维工单" :value="2"></el-option>
+                    </el-select>
+                    <el-date-picker
+                        value-format="yyyy"
+                        v-model="date"
+                        type="year"
+                        placeholder="选择年"
+                        class="saveColumn-select"
+                        @change="changeTime"
+                        :clearable="false"
+                    >
+                    </el-date-picker>
+                </div>
             </div>
-        </div>
-        <div class="model-content">
-            <zz-echart :option="clientOptions" class="chart"></zz-echart>
-        </div>
+            <div class="model-content">
+                <zz-echart :option="clientOptions" class="chart"></zz-echart>
+            </div>
+        </template>
+        <no-permission v-else tipsText="服务满意度趋势"></no-permission>
     </div>
 </template>
 <script>
 import { columnOptionsChart } from './indexOptionChart';
+import permissionComponent from './permissionComponent';
 let dataArr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
 export default {
+    mixins: [permissionComponent],
     data() {
         return {
+            defaultModel: {
+                permissUrl: 'propertyManagement/index',
+                titleName: '投诉建议'
+            },
             mixins_query: {
                 communityId: '',
                 date: '',