Shannon_mu 2 سال پیش
والد
کامیت
03274f167b

+ 103 - 0
operationSupport/src/views/newWorkBench/components/alarmManagement/alarmInformation.vue

@@ -0,0 +1,103 @@
+
+<template>
+    <div class="modelBlock">
+        <template v-if="permissionFiltering">
+            <div class="model-title">
+                <div class="model-title-text">设备告警信息</div>
+                <div class="buttons" @click="$router.push({ path: '/alarmManagement/details' })">
+                    <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">
+                        <span class="mainTextColor">【{{ item.deviceName }}告警】</span>{{ item.address }}
+                    </div>
+                    <div class="listInformation_operation">{{ item.alarmStartTime }}</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: '16',
+                titleName: '告警管理'
+            },
+            datas: [],
+            // 详情显示数据
+            mixins_query: {
+                communityId: '',
+                alarmCategory: 1,
+                sceneType: '5',
+                state: '1'
+            },
+            peopleData: [],
+            houseData: []
+        };
+    },
+    created() {
+        this.getData();
+    },
+    methods: {
+        getData() {
+            this.$http
+                .post('/sc-community/alarm/details/selectPage', this.mixins_query)
+                .then(({ status, data, msg }) => {
+                    if (status == 0) {
+                        this.datas = data.list;
+                    }
+                })
+                .catch((err) => {});
+        }
+    }
+};
+</script>
+<style scoped lang="scss">
+@import '../style.scss';
+.noData {
+    text-align: center;
+    line-height: rem(100);
+}
+.modelBlock {
+    .model-content {
+        display: block;
+        font-size: 14px;
+        .flex {
+            display: flex;
+        }
+        .listInformation {
+            cursor: pointer;
+            display: flex;
+            justify-content: space-between;
+            margin-top: rem(10);
+            .listInformation_img {
+                width: rem(46);
+                height: rem(46);
+                margin-right: rem(20);
+            }
+            .listInformation_text {
+                display: flex;
+                opacity: 0.7;
+                width: calc(100% - 250px);
+                max-width: 500px;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                white-space: nowrap;
+            }
+            .listInformation_operation {
+                width: 150px;
+                opacity: 0.5;
+                text-align: end;
+            }
+        }
+    }
+}
+</style>

+ 92 - 0
operationSupport/src/views/newWorkBench/components/communityManagement/overallCommunity.vue

@@ -0,0 +1,92 @@
+<template>
+    <ul>
+        <li style="background: linear-gradient(135deg, #488fff 0%, #65dcff 100%)" @click="goPath('/communityManagement/index')">
+            <div class="header-left">
+                <div class="header-left-top">
+                    <div class="header-icon"></div>
+                    <div>社区</div>
+                </div>
+            </div>
+            <div class="header-number">{{ houseData.communityTotal }}</div>
+            <div class="header-right">
+                <img src="@assets/img/img_shequ.png" alt="" />
+            </div>
+            <!-- </router-link> -->
+        </li>
+        <li style="background: linear-gradient(315deg, #5eedcc 0%, #24c3f1 100%)" @click="goPath('/buildingManagement/index')">
+            <div class="header-left">
+                <div class="header-left-top">
+                    <div class="header-icon"></div>
+                    <div>楼栋</div>
+                </div>
+            </div>
+            <div class="header-number">{{ houseData.buildingTotal }}</div>
+            <div class="header-right">
+                <img src="@assets/img/img_loudong.png" alt="" />
+            </div>
+        </li>
+        <li
+            style="background: linear-gradient(135deg, #f0646c 0%, #f4994e 100%)"
+            @click="goPath('/assetManagement/housingManagement/index')"
+        >
+            <div class="header-left">
+                <div class="header-left-top">
+                    <div class="header-icon"></div>
+                    <div>房屋</div>
+                </div>
+            </div>
+            <div class="header-number">{{ houseData.houseTotal }}</div>
+            <div class="header-right">
+                <img src="@assets/img/img_fangwu.png" alt="" />
+            </div>
+        </li>
+        <li style="background: linear-gradient(135deg, #7178ff 0%, #d2a4ff 100%)" @click="goPath('/assetManagement/shopManagement/index')">
+            <div class="header-left">
+                <div class="header-left-top">
+                    <div class="header-icon"></div>
+                    <div>商铺</div>
+                </div>
+            </div>
+            <div class="header-number">{{ houseData.shopsTotal }}</div>
+            <div class="header-right">
+                <img src="@assets/img/img_shangpu.png" alt="" />
+            </div>
+        </li>
+        <li style="background: linear-gradient(135deg, #884dd2 0%, #df63cc 100%)" @click="goPath('/ownerManagement/index')">
+            <div class="header-left">
+                <div class="header-left-top">
+                    <div class="header-icon"></div>
+                    <div>住户</div>
+                </div>
+            </div>
+            <div class="header-number">{{ houseData.residentTotal }}</div>
+            <div class="header-right">
+                <img src="@assets/img/img_zhuhu.png" alt="" />
+            </div>
+        </li>
+    </ul>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            houseData: {}
+        };
+    },
+    methods: {
+        // 获取房屋信息
+        getHouseData() {
+            this.$http.get('/sc-community/Workbench/totalHouseInfo').then((res) => {
+                if (res.status == 0) {
+                    this.houseData = res.data;
+                } else {
+                    this.$message.warning('获取房屋信息失败');
+                }
+            });
+        }
+    },
+    created() {
+        this.getHouseData();
+    }
+};
+</script>

+ 37 - 6
operationSupport/src/views/newWorkBench/components/equipmentStatistics.vue

@@ -12,11 +12,9 @@
     </div>
 </template>
 <script>
-import { columnOptionsChart } from '../EachartOptions.js';
+import { columnOptionsChartName } from './indexOptionChart.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 {
@@ -27,16 +25,49 @@ export default {
             mixins_query: {
                 communityId: ''
             },
-            clientOptions: columnOptionsChart('(分)', timeDay, [{ data: [10] }], [], 10)
+            clientOptions: columnOptionsChartName(
+                '(个)',
+                ['name1', 'name2', 'name3'],
+                [
+                    {
+                        name: 'name1',
+                        data: 0
+                    },
+                    {
+                        name: 'name2',
+                        data: 0
+                    },
+                    {
+                        name: 'name3',
+                        data: 0
+                    }
+                ],
+                [],
+                10
+            )
         };
     },
     created() {
-      
+        this.getData();
     },
     mounted() {},
     computed: {},
     methods: {
-
+        getData() {
+            this.$http
+                .post('/sc-community/alarm/details/selectPage', this.mixins_query)
+                .then(({ status, data, msg }) => {
+                    if (status == 0) {
+                        let name = [];
+                        data.map((item) => {
+                            name.push(item.date);
+                            item.data = item.evaluation;
+                        });
+                        this.clientOptions = columnOptionsChartName('(个)', name, data, [], 10);
+                    }
+                })
+                .catch((err) => {});
+        }
     }
 };
 </script>

+ 26 - 6
operationSupport/src/views/newWorkBench/components/facilityInspections/taskType.vue

@@ -2,17 +2,29 @@
     <div class="modelBlock">
         <template v-if="permissionFiltering">
             <div class="model-title">
-                <div class="model-title-text">住户身份占比</div>
+                <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"
+                        @change="changeTime"
+                        :clearable="false"
+                    >
+                    </el-date-picker>
+                </div>
             </div>
             <div class="model-content">
                 <zz-echart :option="clientOptions" class="chart"></zz-echart>
                 <div class="totals">
                     <span>{{ total }}</span>
-                    <span class="numbers">总人数</span>
+                    <span class="numbers">总任务</span>
                 </div>
             </div>
         </template>
-        <no-permission v-else tipsText="住户身份占比"></no-permission>
+        <no-permission v-else tipsText="巡检任务类型分布"></no-permission>
     </div>
 </template>
 <script>
@@ -34,8 +46,10 @@ export default {
                 titleName: '住户管理'
             },
             mixins_query: {
-                communityId: ''
+                communityId: '',
+                date: ''
             },
+            date: '',
             total: 0,
             clientOptions: ringType(
                 colors,
@@ -53,7 +67,7 @@ export default {
     },
     methods: {
         getData() {
-            this.$http.get('/sc-community/statisticsUserIdentities', this.mixins_query).then(({ data, msg, status }) => {
+            this.$http.get('/sc-community/statisticInspectionTaskType', this.mixins_query).then(({ data, msg, status }) => {
                 if (status == 0 && !!data.datas) {
                     this.clientOptions = ringType(colors, this.eachartObj(data), {}, { type: 'number', total: data.total });
                 } else {
@@ -72,8 +86,12 @@ export default {
                 }
             });
         },
+        changeTime(v) {
+            this.mixins_query.date = v + '-01';
+            this.getData();
+        },
         eachartObj(data) {
-            this.total = data.total;
+            this.total = data.total || 0;
             let typeName = {
                 1: '业主',
                 2: '亲属',
@@ -92,6 +110,8 @@ export default {
         }
     },
     created() {
+        this.mixins_query.date = this.$moment().format('YYYY-MM') + '-01';
+        this.date = this.$moment().format('YYYY-MM');
         this.getData();
     }
 };

+ 24 - 19
operationSupport/src/views/newWorkBench/components/index.js

@@ -1,16 +1,16 @@
-// map中间地图
-// complaintsSuggestions投诉建议类型分布
-// commonFunctions常用功能
-// satisfaction 服务满意度趋势
-// discount设备告警趋势
-// rentalAndSaleRate房屋租售率
-// collectionRate 收款率分析
-// householdGender住户性别占比
-// householdIdentity住户身份占比
-// equipmentStatistics设备设施统计
-// ownerApproval 业主审批
-// pendingComplaints 待处理投诉
-// complaintsAndSuggestions投诉建议数量趋势
+// map中间地图 OK
+// complaintsSuggestions投诉建议类型 OK
+// commonFunctions常用功能 OK
+// satisfaction 服务满意度趋势 OK
+// discount设备告警趋势 OK
+// rentalAndSaleRate房屋租售率 OK
+// collectionRate 收款率分析 OK 圈待调整
+// householdGender住户性别占比 OK
+// householdIdentity住户身份占比 OK
+// equipmentStatistics设备设施统计 没有接口
+// ownerApproval 业主审批 OK
+// pendingComplaints 待处理投诉 OK
+// complaintsAndSuggestions投诉建议数量趋势 OK
 
 // patrolDuration 巡更人员任务执行时长 数据格式待调试
 // communityAnnouncement 社区公告 OK
@@ -18,13 +18,12 @@
 // billToBeCollected  待收款账单 OK
 // contractAward 合同签约   OK
 // dispatchWorkOrder 待分派工单 OK
-// taskType 巡检任务类型分布
-
+// taskType 巡检任务类型分布 数据格式待调试
+// alarmInformation 设备告警信息  单条没有跳转
+// overallCommunity 社区总体情况统计 style
 const comUrl = 'newWorkBench/components/'
-// taskType
 export default {
   components: {
-    //小组件模块
     maps: resolve => require([`@views/${comUrl}map.vue`], resolve),
     complaintsSuggestions: resolve => require([`@views/${comUrl}complaintsSuggestions.vue`], resolve),
     commonFunctions: resolve => require([`@views/${comUrl}commonFunctions.vue`], resolve),
@@ -44,7 +43,10 @@ export default {
     personnelScore: resolve => require([`@views/${comUrl}personnelScore.vue`], resolve),
     billToBeCollected: resolve => require([`@views/${comUrl}billToBeCollected.vue`], resolve),
     contractAward: resolve => require([`@views/${comUrl}contractAward.vue`], resolve),
-    dispatchWorkOrder: resolve => require([`@views/${comUrl}dispatchWorkOrder.vue`], resolve)
+    dispatchWorkOrder: resolve => require([`@views/${comUrl}dispatchWorkOrder.vue`], resolve),
+    taskType: resolve => require([`@views/${comUrl}facilityInspections/taskType.vue`], resolve),
+    alarmInformation: resolve => require([`@views/${comUrl}alarmManagement/alarmInformation.vue`], resolve),
+    overallCommunity: resolve => require([`@views/${comUrl}communityManagement/overallCommunity.vue`], resolve),
   },
   data() {
     return {
@@ -68,7 +70,10 @@ export default {
         16: "personnelScore",
         17: 'billToBeCollected',
         18: 'contractAward',
-        19: 'dispatchWorkOrder'
+        19: 'dispatchWorkOrder',
+        20: "taskType",
+        21: "alarmInformation",
+        22: 'overallCommunity'
       }
     }
   },

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

@@ -221,6 +221,27 @@ export default {
                     type: 6,
                     imgPng: require('@assets/img/formulation/img_liebiao@2x.png'),
                     imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
+                },
+                {
+                    data_id: 20,
+                    title: '巡检任务类型分布',
+                    type: 7,
+                    imgPng: require('@assets/img/formulation/img_bingzhuangtu@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
+                },
+                {
+                    data_id: 21,
+                    title: '设备告警信息',
+                    type: 5,
+                    imgPng: require('@assets/img/formulation/img_liebiao@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
+                },
+                {
+                    data_id: 22,
+                    title: '社区总体情况统计',
+                    type: 1,
+                    imgPng: require('@assets/img/formulation/img_liebiao@2x.png'),
+                    imgIcon: require('@assets/img/formulation/tag_2x@2x.png')
                 }
             ],
             componentsValue: 0