Ver código fonte

新增工作台

DESKTOP-4G80JF4\long 3 anos atrás
pai
commit
96b289ecbe
26 arquivos alterados com 704 adições e 348 exclusões
  1. BIN
      operationSupport/src/assets/img/icon_fangwu.png
  2. BIN
      operationSupport/src/assets/img/icon_loudong.png
  3. BIN
      operationSupport/src/assets/img/icon_shangpu.png
  4. BIN
      operationSupport/src/assets/img/icon_shequ.png
  5. BIN
      operationSupport/src/assets/img/icon_zhuhu.png
  6. BIN
      operationSupport/src/assets/img/img_fangwu.png
  7. BIN
      operationSupport/src/assets/img/img_loudong.png
  8. BIN
      operationSupport/src/assets/img/img_shangpu.png
  9. BIN
      operationSupport/src/assets/img/img_shequ.png
  10. BIN
      operationSupport/src/assets/img/img_zhuhu.png
  11. 19 204
      operationSupport/src/components/common/buildingTree.vue
  12. 2 2
      operationSupport/src/components/common/treeHouse.vue
  13. 5 0
      operationSupport/src/main.js
  14. 85 89
      operationSupport/src/router/dynamicMuen.js
  15. 5 1
      operationSupport/src/utils/filters.js
  16. 3 0
      operationSupport/src/views/assetManagement/housingManagement/index.vue
  17. 5 2
      operationSupport/src/views/assetManagement/shopManagement/index.vue
  18. 5 4
      operationSupport/src/views/buildingManagement/index.vue
  19. 5 3
      operationSupport/src/views/communityManagement/index.vue
  20. 6 3
      operationSupport/src/views/ownerManagement/index.vue
  21. 13 6
      operationSupport/src/views/propertyManagement/common/previeInform.vue
  22. 7 2
      operationSupport/src/views/propertyManagement/inform.vue
  23. 48 30
      operationSupport/src/views/propertyManagement/neighbor.vue
  24. 274 2
      operationSupport/src/views/workbench/index.vue
  25. 0 0
      operationSupport/src/views/workbench/style.css
  26. 222 0
      operationSupport/src/views/workbench/style.scss

BIN
operationSupport/src/assets/img/icon_fangwu.png


BIN
operationSupport/src/assets/img/icon_loudong.png


BIN
operationSupport/src/assets/img/icon_shangpu.png


BIN
operationSupport/src/assets/img/icon_shequ.png


BIN
operationSupport/src/assets/img/icon_zhuhu.png


BIN
operationSupport/src/assets/img/img_fangwu.png


BIN
operationSupport/src/assets/img/img_loudong.png


BIN
operationSupport/src/assets/img/img_shangpu.png


BIN
operationSupport/src/assets/img/img_shequ.png


BIN
operationSupport/src/assets/img/img_zhuhu.png


+ 19 - 204
operationSupport/src/components/common/buildingTree.vue

@@ -1,59 +1,25 @@
 <template>
     <div class="organ-tree">
-        <div v-show="showHouseTree">
-            <div>
-                <el-input v-model="filterText" v-if="!showCheckboxTree" placeholder="请输入关键字" suffix-icon="el-icon-search"></el-input>
-                <el-input
-                    v-model="selectHouse"
-                    disabled
-                    placeholder="选择的房间"
-                    maxlength="10"
-                    suffix-icon="el-icon-search"
-                    v-else
-                ></el-input>
-            </div>
-            <div class="tree-style-box no-scrollbar">
-                <el-tree
-                    class="tree-style"
-                    :data="organList"
-                    ref="tree"
-                    node-key="id"
-                    :highlight-current="true"
-                    :props="defaultProps"
-                    :expand-on-click-node="false"
-                    @node-click="treeClick"
-                    @check="clickCheckTree"
-                    :default-expand-all="defaultExpandAllTree"
-                    :filter-node-method="filterNode"
-                    :show-checkbox="showCheckboxTree"
-                    :accordion="accordion"
-                    :prevDetailData="prevDetailData"
-                >
-                </el-tree>
-            </div>
+        <div>
+            <el-input v-model="filterText" placeholder="请输入关键字" suffix-icon="el-icon-search"></el-input>
         </div>
-        <div v-show="!showHouseTree">
-            <el-input v-model="selectPeopleInput" disabled placeholder="选择的人员" maxlength="10" suffix-icon="el-icon-search"></el-input>
-            <div class="tree-style-box no-scrollbar">
-                <el-tree
-                    class="tree-style"
-                    :data="dataPeopleList"
-                    ref="treePeople"
-                    node-key="id"
-                    :highlight-current="true"
-                    :props="defaultPropsPeople"
-                    :expand-on-click-node="false"
-                    @node-click="treeClick"
-                    @check="clickCheckTreePeople"
-                    :default-expand-all="defaultExpandAllTree"
-                    :filter-node-method="filterNodePeople"
-                    :show-checkbox="showCheckboxTree"
-                    :accordion="accordionPeople"
-                    :selectAll="selectAll"
-                    :prevDetailData="prevDetailData"
-                >
-                </el-tree>
-            </div>
+        <div class="tree-style-box no-scrollbar" v-if="organList">
+            <el-tree
+                class="tree-style"
+                :data="organList"
+                ref="tree"
+                node-key="id"
+                :highlight-current="true"
+                :props="defaultProps"
+                :expand-on-click-node="false"
+                @node-click="treeClick"
+                @check="clickCheckTree"
+                :default-expand-all="defaultExpandAllTree"
+                :filter-node-method="filterNode"
+                :show-checkbox="showCheckboxTree"
+                :accordion="accordion"
+            >
+            </el-tree>
         </div>
     </div>
 </template>
@@ -73,12 +39,6 @@ export default {
             type: Boolean,
             default: true
         },
-        showHouseTree: {
-            //显示房间树
-            type: Boolean,
-            default: true
-        },
-
         accordion: {
             //房间展开手风琴
             type: Boolean,
@@ -88,169 +48,25 @@ export default {
             //人员展开手风琴
             type: Boolean,
             default: false
-        },
-        prevDetailData: {
-            type: Array,
-            default() {
-                return [];
-            }
         }
     },
     data() {
         return {
             filterText: '',
-            selectHouse: '',
-            selectPeopleInput: '',
             organList: [],
-            dataPeopleList: [],
             defaultProps: {
                 children: 'children',
                 label: 'name'
-            },
-            defaultPropsPeople: {
-                children: 'children',
-                label: 'label'
             }
         };
     },
     watch: {
         filterText(val) {
             this.$refs.tree.filter(val);
-        },
-        dataPeopleList(val) {
-            console.log('====================================');
-            console.log('dataPeopleList', val);
-            console.log('====================================');
-            this.$refs.tree.filter(val);
         }
     },
     computed: {},
     methods: {
-        // 过滤选中的社区下的房间
-        filterhouse(val, datas) {
-            let array = datas;
-            let data;
-            for (let index = 0; index < array.length; index++) {
-                const element = array[index];
-                if (element.id == val && element.children) {
-                    data = element.children;
-                }
-            }
-            this.organList = data;
-            this.$nextTick(() => {
-                this.$refs.tree.setCheckedNodes(this.organList);
-                this.clickCheckTree();
-            });
-            console.log('   this.$refs.tree.setCheckedNodes(this.organList);', this.organList);
-        },
-        // 过滤选中的人员
-        filterPeople(val) {
-            return val
-                ? this.val.filter((item) => {
-                      item.id == val;
-                  })
-                : '暂无人员';
-        },
-        // 选中所有房间
-        selectAllHouse() {
-            this.$nextTick(() => {
-                this.$refs.tree.setCheckedNodes(this.organList);
-                this.clickCheckTree();
-            });
-        },
-        // 选中指定房间
-        selectHouseOr() {
-            this.$nextTick(() => {
-                this.$refs.tree.setCheckedKeys([]);
-                this.clickCheckTree();
-            });
-        },
-        // 选中所有人员
-        selectAllPeople() {
-            this.$nextTick(() => {
-                this.$refs.treePeople.setCheckedNodes(this.dataPeopleList);
-                this.clickCheckTreePeople();
-            });
-        },
-        // 选中指定人员
-        selectPeopleOr() {
-            this.$nextTick(() => {
-                this.$refs.treePeople.setCheckedKeys([]);
-                this.clickCheckTreePeople();
-            });
-        },
-        // 获取人员
-        getPeopleList() {
-            this.$http.get('/sc-user-center/user/findUserList').then(({ status, data, msg }) => {
-                if (status === 0) {
-                    this.dataPeopleList = data;
-                    this.$emit('dataPeople', data);
-                } else {
-                    this.$message(warning, '获取人员失败,请稍后重试');
-                }
-                console.log('获取人员', data);
-            });
-        },
-        getSelect(data) {
-            var str = [];
-            const getStr = function (list) {
-                list.forEach(function (row) {
-                    if (row.children) {
-                        getStr(row.children);
-                    } else {
-                        str.push(row.value);
-                    }
-                });
-            };
-            getStr(data);
-            return str;
-            console.log('getStr', str);
-        },
-        // 多选框返回选中房间的数据
-        clickCheckTree(val) {
-            let tree = this.$refs.tree;
-            let nameArr = [];
-            let array = tree.getCheckedNodes();
-            let arrays = tree.getCheckedKeys();
-            for (let index = 0; index < array.length; index++) {
-                const element = array[index];
-                nameArr.push(element.name);
-                if (Array.isArray(element) && element.length > 0) {
-                    nameArr.push(element.name);
-                }
-            }
-            // 输入框显示的房间
-            this.selectHouse = nameArr;
-            var arr = [];
-            array.forEach(function (item) {
-                if (item.type === 'room' && Number(item.value) !== String) {
-                    arr.push(Number(item.value));
-                }
-            });
-            // 选中的房间id
-            this.$emit('selectData', arr);
-            console.log('arrays', arrays);
-            console.log('array', array);
-        },
-        // 多选框返回选中人员的数据
-        clickCheckTreePeople(val) {
-            let nameArr = [];
-            let tree = this.$refs.treePeople;
-            let array = tree.getCheckedNodes();
-            let arrays = tree.getCheckedKeys();
-
-            for (let index = 0; index < array.length; index++) {
-                const element = array[index];
-                nameArr.push(element.label);
-                if (Array.isArray(element) && element.length > 0) {
-                    nameArr.push(element.label);
-                }
-            }
-            // 输入框显示的人员
-            this.selectPeopleInput = nameArr.toString();
-            // 选中的人员id
-            this.$emit('selectPeople', arrays);
-        },
         dimension(arr) {
             arr.map((item, index) => {
                 if (!!item.children & (item.type !== 'unit')) {
@@ -320,7 +136,6 @@ export default {
     },
     created() {
         this.getOrgTreeList();
-        this.getPeopleList();
     }
 };
 </script>

+ 2 - 2
operationSupport/src/components/common/treeHouse.vue

@@ -12,7 +12,7 @@
                     v-else
                 ></el-input>
             </div>
-            <div class="tree-style-box no-scrollbar">
+            <div class="tree-style-box no-scrollbar" v-if="organList">
                 <el-tree
                     class="tree-style"
                     :data="organList"
@@ -33,7 +33,7 @@
                 </el-tree>
             </div>
         </div>
-        <div v-show="!showHouseTree">
+        <div v-show="!showHouseTree" v-if="dataPeopleList">
             <el-input v-model="selectPeople" disabled placeholder="选择的人员" maxlength="10" suffix-icon="el-icon-search"></el-input>
             <div class="tree-style-box no-scrollbar">
                 <el-tree

+ 5 - 0
operationSupport/src/main.js

@@ -136,6 +136,11 @@ Vue.prototype.routerLoad = {
 //     }
 // });
 router.beforeEach((to, from, next) => {
+    console.log('====================================');
+    console.log('beforeEach', to);
+    console.log('beforeEach from', from);
+    console.log('beforeEach next', next);
+    console.log('====================================');
     if (to.path !== '/404') {
         // console.log()
         let PermissionsRouter = Vue.prototype.routerLoad.findMen(store.getters.getMenuList, to.fullPath);

+ 85 - 89
operationSupport/src/router/dynamicMuen.js

@@ -1,101 +1,97 @@
-import store from "../store/store.js";
+import store from '../store/store.js';
 const staticMuen = [
-  {
-    path: "/workbench/index",
-    meta: { title: '工作台' },
-    component: () =>
-      import("@views/workbench/index.vue"
-      )
-  },
-  {
-    path: '/msg',
-    component: () => import(/* webpackChunkName: "messages" */ '@views/messages'),
-    meta: { title: '消息中心' }
-  },
-  {
-    path: '/403',
-    component: () => import(/* webpackChunkName: "404" */ '@views/403'),
-    meta: { title: '403' }
-  },
-  {
-    path: '/404',
-    component: () => import(/* webpackChunkName: "404" */ '@views/404'),
-    meta: { title: '404' }
-  },
-  {
-    path: '/communityManagement',
-    component: () => import(/* webpackChunkName: "404" */ '@views/communityManagement'),
-    meta: { title: '社区管理' },
+    {
+        path: '/workbench/index',
+        meta: { title: '工作台' },
+        component: () => import('@views/workbench/index.vue')
+    },
+    {
+        path: '/msg',
+        component: () => import(/* webpackChunkName: "messages" */ '@views/messages'),
+        meta: { title: '消息中心' }
+    },
+    {
+        path: '/403',
+        component: () => import(/* webpackChunkName: "404" */ '@views/403'),
+        meta: { title: '403' }
+    },
+    {
+        path: '/404',
+        component: () => import(/* webpackChunkName: "404" */ '@views/404'),
+        meta: { title: '404' }
+    },
+    {
+        path: '/communityManagement',
+        component: () => import(/* webpackChunkName: "404" */ '@views/communityManagement'),
+        meta: { title: '社区管理' }
+    },
+    {
+        path: '/communityManagement/pageJump/AddOrEdit',
+        meta: { title: '添加社区' },
+        component: () => import(/* webpackChunkName: "404" */ '@views/communityManagement/pageJump/AddOrEdit.vue')
+    },
 
-  },
-  {
-    path: '/communityManagement/pageJump/AddOrEdit',
-    meta: { title: '添加社区' },
-    component: () => import(/* webpackChunkName: "404" */ '@views/communityManagement/pageJump/AddOrEdit.vue'),
-  },
+    {
+        path: '/buildingManagement/pageJump/addoredit',
+        component: () => import(/* webpackChunkName: "404" */ '@views/buildingManagement/pageJump/addoredit.vue'),
+        meta: { title: '添加编辑楼栋管理' }
+    },
 
-  {
-    path: '/buildingManagement/pageJump/addoredit',
-    component: () => import(/* webpackChunkName: "404" */ '@views/buildingManagement/pageJump/addoredit.vue'),
-    meta: { title: '添加编辑楼栋管理' }
-  },
+    ,
+    {
+        path: '/parkingLotAdministration/pageJump/partitionManagement',
+        component: () => import(/* webpackChunkName: "404" */ '@views/parkingLotAdministration/pageJump/partitionManagement.vue'),
+        meta: { title: '车库分区管理' }
+    },
 
-  , {
-    path: '/parkingLotAdministration/pageJump/partitionManagement',
-    component: () => import(/* webpackChunkName: "404" */ '@views/parkingLotAdministration/pageJump/partitionManagement.vue'),
-    meta: { title: '车库分区管理' }
-  }
-
-
-  ,
-  {
-    path: '/ownerManagement/add',
-    component: () => import(/* webpackChunkName: "404" */ '@views/ownerManagement/stepPage/add.vue'),
-    meta: { title: '编辑住户' }
-  },
-  {
-    path: '/ownerManagement/details',
-    component: () => import(/* webpackChunkName: "404" */ '@views/ownerManagement/details.vue'),
-    meta: { title: '住户详情' }
-  }
-
-]
+    {
+        path: '/ownerManagement/add',
+        component: () => import(/* webpackChunkName: "404" */ '@views/ownerManagement/stepPage/add.vue'),
+        meta: { title: '编辑住户' }
+    },
+    {
+        path: '/ownerManagement/details',
+        component: () => import(/* webpackChunkName: "404" */ '@views/ownerManagement/details.vue'),
+        meta: { title: '住户详情' }
+    }
+];
 //路由格式
 // 自定义路由文件
 const setListMunt = (arrList, item) => {
-  let newOb = {}
-  newOb = {
-    path: `/${item.linkPath}`, component: () => import(`@/views/${item.linkPath}.vue`), meta: { title: item.name }
-  }
-  arrList.push(newOb)
-}
+    let newOb = {};
+    newOb = {
+        path: `/${item.linkPath}`,
+        component: () => import(`@/views/${item.linkPath}.vue`),
+        meta: { title: item.name }
+    };
+    arrList.push(newOb);
+};
 const dimension = (arrList, arr) => {
-  arr.forEach((item, index) => {
-    //默认去掉第一个添加路由
-    if (item.linkPath !== 'workbench/index') {
-      if (!!item.children) {
-        dimension(arrList, item.children)
-      } else {
-        setListMunt(arrList, item)
-      }
-    }
-
-  })
-}
+    arr.forEach((item, index) => {
+        //默认去掉第一个添加路由
+        if (item.linkPath !== 'workbench/index') {
+            if (!!item.children) {
+                dimension(arrList, item.children);
+            } else {
+                setListMunt(arrList, item);
+            }
+        }
+    });
+};
 //添加路由
 const AddRt = (router, dynamicMuenList) => {
-  let NEWdynamicMuenList = [...dynamicMuenList, ...staticMuen]
-  if (NEWdynamicMuenList.length !== 0) {
-    NEWdynamicMuenList.forEach(item => {
-      router.options.routes[0].children.push(item)
-    })
-    router.options.routes[0].redirect = router.options.routes[0].children[0].path
-    router.addRoutes(router.options.routes)
-  }
-}
+    let NEWdynamicMuenList = [...dynamicMuenList, ...staticMuen];
+    if (NEWdynamicMuenList.length !== 0) {
+        NEWdynamicMuenList.forEach((item) => {
+            router.options.routes[0].children.push(item);
+        });
+        router.options.routes[0].redirect = router.options.routes[0].children[0].path;
+        router.addRoutes(router.options.routes);
+    }
+};
 
 export const funcRouter = (arr, data, router) => {
-  dimension(arr, data)
-  store.commit('setMenuList', data)
-  AddRt(router, arr)
-}
+    dimension(arr, data);
+    store.commit('setMenuList', data);
+    AddRt(router, arr);
+};

+ 5 - 1
operationSupport/src/utils/filters.js

@@ -25,4 +25,8 @@ let filtercomplaintType = (val) => {
             '其他';
     }
 };
-export default { filterTime, filterTimeNumber, filterComplaintStatus, filtercomplaintType };
+// 替换富文本内容
+let filterHtml = (val) => {
+    return val ? val.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/g, '图片') : '---';
+};
+export default { filterTime, filterTimeNumber, filterComplaintStatus, filtercomplaintType, filterHtml };

+ 3 - 0
operationSupport/src/views/assetManagement/housingManagement/index.vue

@@ -269,6 +269,9 @@ export default {
 
         this.communityNameList();
         this.mixins_search('search');
+        if (this.$route.query.showDialog) {
+            this.addOrEdit('todo');
+        }
     }
 };
 </script>

+ 5 - 2
operationSupport/src/views/assetManagement/shopManagement/index.vue

@@ -81,7 +81,7 @@ import saveEdits from './saveEdits.vue';
 
 export default {
     mixins: [list],
-    name:'shopManagement',
+    name: 'shopManagement',
     data() {
         return {
             statusOptions: [
@@ -264,7 +264,7 @@ export default {
         },
         buildingInformation(data) {
             if (!!data.type && data.type == 'community') {
-               this.mixins_query = {communityId:data.value,buildingType:2};
+                this.mixins_query = { communityId: data.value, buildingType: 2 };
             } else {
                 this.mixins_query.communityId = data.communityId;
                 this.mixins_query.id = data.roomId;
@@ -292,6 +292,9 @@ export default {
 
         this.communityNameList();
         this.mixins_search('search');
+        if (this.$route.query.showDialog) {
+            this.addOrEdit('add');
+        }
     }
 };
 </script>

+ 5 - 4
operationSupport/src/views/buildingManagement/index.vue

@@ -56,7 +56,7 @@ import addplan from './pageJump/addoredit.vue';
 export default {
     mixins: [list],
     components: { addplan },
-    name:'buildingManagement',
+    name: 'buildingManagement',
     data() {
         return {
             ownerStatus: '',
@@ -190,15 +190,16 @@ export default {
         }
     },
     created() {
+        if (this.$route.query.showDialog) {
+            this.ownerStatus = 'add';
+        }
         this.communityNameList();
         // this.mixins_search();
         this.mixins_dataUrl = '/sc-community/assets/building/page';
         this.mixins_post = 'post';
-
         this.mixins_search();
     }
 };
 </script>
 
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 5 - 3
operationSupport/src/views/communityManagement/index.vue

@@ -50,7 +50,7 @@ import addCommunit from './pageJump/AddOrEdit.vue';
 export default {
     mixins: [list],
     components: { addCommunit },
-    name:'communityManagement',
+    name: 'communityManagement',
     data() {
         return {
             cols: [
@@ -158,6 +158,9 @@ export default {
         }
     },
     created() {
+        if (this.$route.query.showDialog) {
+            this.communitStatus = 'add';
+        }
         if (this.$store.getters['getCompanyArray'].length === 0) {
             this.getCompany('company');
         }
@@ -171,5 +174,4 @@ export default {
 };
 </script>
 
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 6 - 3
operationSupport/src/views/ownerManagement/index.vue

@@ -221,7 +221,7 @@ export default {
             activeData: {},
             isAdd: true,
             selectRow: [],
-            thisLeftData:{},
+            thisLeftData: {}
         };
     },
     methods: {
@@ -367,7 +367,7 @@ export default {
                     this.mixins_query.roomNumber = newValueIds[newValueIds.length - 1];
                 }
             }
-            this.thisLeftData = newValue;;
+            this.thisLeftData = newValue;
             this.mixins_search();
         }
     },
@@ -384,10 +384,13 @@ export default {
             questParams: ''
         };
         this.mixins_search('search');
+        if (this.$route.query.showDialog) {
+            this.addOrEdit('add');
+        }
     }
 };
 </script>
-<style lang='scss' scoped >
+<style lang="scss" scoped>
 @import './style.scss';
 .table-list {
     padding-bottom: 16px;

+ 13 - 6
operationSupport/src/views/propertyManagement/common/previeInform.vue

@@ -32,11 +32,11 @@
             </div>
             <div class="prev-text image-content" v-if="dataDetail.type">
                 <div class="image-text">主题图片:</div>
-                <div class="right-image">
+                <div class="right-image" v-if="successImageLists.length > 0">
                     <img v-for="(item, index) of successImageLists" :key="index" :src="item.url" alt="" />
                     <!-- <img src="https://a.storyblok.com/f/88751/1734x1092/c3cde09986/storyblok-editor-1.jpg/m/900x0/" alt="" /> -->
-                    <!-- <img src="https://a.storyblok.com/f/88751/1734x1092/c3cde09986/storyblok-editor-1.jpg/m/900x0/" alt="" /> -->
                 </div>
+                <div class="prev-text-none" v-else>暂无图片</div>
             </div>
             <div class="prev-text html-content">
                 <div class="html-left">通知内容:</div>
@@ -201,19 +201,26 @@ export default {
         width: 100%;
         display: flex;
         .image-text {
-            padding-top: 4%;
+            width: 12%;
+            display: flex;
+            flex-direction: column;
+            justify-content: center;
         }
         .right-image {
-            width: 92%;
+            max-height: 120px;
+            display: flex;
+            :last-child {
+                margin-right: 0;
+            }
             img {
                 display: block;
                 float: left;
-                width: 28%;
+                width: 33%;
                 height: 100px;
                 border: 1px solid #ccc;
                 border-radius: 4px;
-                margin-left: 25px;
                 min-width: 100px;
+                margin-right: 10px;
             }
         }
     }

+ 7 - 2
operationSupport/src/views/propertyManagement/inform.vue

@@ -465,7 +465,13 @@ export default {
         this.mixins_query = {};
         this.mixins_search();
         this.getOrgTreeList();
-        this.getPeopleList();
+        if (this.$route.query.showDialog && this.$route.query.id) {
+            let row = {
+                id: this.$route.query.id
+            };
+            this.clickDatail(row);
+        }
+        // this.getPeopleList();
     },
     mounted() {},
     watch: {},
@@ -797,7 +803,6 @@ export default {
             this.$http.get('/sc-community-web/notice/find/' + row.id).then((res) => {
                 if (res.status === 0) {
                     // this.filterHouse(this.organList, res.data.noticeUserVoList);
-
                     this.rowDetail = res.data;
                     // let fileArr = row.filePath.split(',');
                     // this.filePath = fileArr.slice(0, fileArr.length - 1);

+ 48 - 30
operationSupport/src/views/propertyManagement/neighbor.vue

@@ -270,12 +270,12 @@ export default {
                 this.message(res.status, '删除');
             });
         },
-        // 删除行按钮
-        deleteDetail() {
-            this.$http.post('/sc-community-web/neighbourhood/delete/' + this.rowData.id).then((res) => {
-                this.message(res.status, '删除');
-            });
-        },
+        // // 删除行按钮
+        // deleteDetail() {
+        //     this.$http.post('/sc-community-web/neighbourhood/delete/' + this.rowData.id).then((res) => {
+        //         this.message(res.status, '删除');
+        //     });
+        // },
         // 提示消息
         message(status, text) {
             if (status === 0) {
@@ -312,32 +312,50 @@ export default {
         /** 查看处理详情*/
         clickEdit(type, row) {
             if (type == 'endit') {
-            this.rowData = row;
-            this.$http.get('/sc-community-web/neighbourhood/find/' + row.id).then((res) => {
-                if(res.status===0){
-                if(res.data.file){
-                    let file = res.data.file;
-                    let files = file.split(',');
-                    this.srcList = files;
-                    console.log('file',this.srcList);
+                this.rowData = row;
+                this.$http.get('/sc-community-web/neighbourhood/find/' + row.id).then((res) => {
+                    if (res.status === 0) {
+                        if (res.data.file) {
+                            let file = res.data.file;
+                            let files = file.split(',');
+                            this.srcList = files;
+                            console.log('file', this.srcList);
 
-                    this.imgList = files.filter((item) => {
-                        return item.substr(-3) == 'png' || item.substr(-3) == 'jpg'||item.substr(-4)=='jpeg';
-                    });
-                    this.videoList = files.filter((item) => {
-                        return item.substr(-3) === 'mp4';
-                    });
-                this.centerDialogVisible = true;
-                this.enditShow = true;
-                this.detailData = res.data;
-                }
-                }else{
-                    this.$message('获取详情失败!请稍后重试')
-                }
-            });
+                            this.imgList = files.filter((item) => {
+                                return item.substr(-3) == 'png' || item.substr(-3) == 'jpg' || item.substr(-4) == 'jpeg';
+                            });
+                            this.videoList = files.filter((item) => {
+                                return item.substr(-3) === 'mp4';
+                            });
+                            this.centerDialogVisible = true;
+                            this.enditShow = true;
+                            this.detailData = res.data;
+                        }
+                    } else {
+                        this.$message('获取详情失败!请稍后重试');
+                    }
+                });
             } else {
-                this.deleteName = row.name;
-                this.dialogVisibleDelete = true;
+                // this.deleteName = row.name;
+                // this.dialogVisibleDelete = true;
+                // const { communityName, buildingName, unitName, roomNumber } = row;
+                // let title = `是否确定删除对应的记录${communityName}${buildingName}${unitName}${telephone}”`;
+                let title = `是否确定删除对应的记录`;
+                this.$msgBox(title)
+                    .then(() => {
+                        this.$http
+                            .post('/sc-community-web/neighbourhood/delete/' + row.id)
+                            .then(({ status, msg }) => {
+                                if (0 === status) {
+                                    this.$message.success(msg);
+                                    this.mixins_search();
+                                } else {
+                                    this.$message.error(msg);
+                                }
+                            })
+                            .catch(() => {});
+                    })
+                    .catch(() => {});
             }
         },
 

+ 274 - 2
operationSupport/src/views/workbench/index.vue

@@ -1,4 +1,276 @@
 <template>
-    <div>工作台</div>
+    <div class="workbench">
+        <!-- 头部开始部分 -->
+        <div class="header">
+            <ul>
+                <li style="background: linear-gradient(135deg, #488fff 0%, #65dcff 100%)" @click="goPath('/communityManagement')">
+                    <!-- <router-link to="sc-operation/propertyManagement/inform.vue" tag="a" target="_blank"> -->
+                    <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')">
+                    <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('/housingManagement')">
+                    <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('/shopManagement')">
+                    <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>
+        </div>
+        <!-- 头部结束部分 -->
+
+        <!-- 中间开始部分 -->
+        <div class="center">
+            <div class="center-left">
+                <div class="center-left-text">快速操作</div>
+                <ul>
+                    <!-- <li @click="goPath('/communityManagement/pageJump/AddOrEdit')"> -->
+                    <li @click="goPath('/communityManagement')">
+                        <div>
+                            <img src="../../assets/img/icon_shequ.png" alt="" />
+                        </div>
+                        <span>添加社区</span>
+                    </li>
+                    <li @click="goPath('/buildingManagement')">
+                        <div>
+                            <img src="../../assets/img/icon_loudong.png" alt="" />
+                        </div>
+                        <span>添加楼栋</span>
+                    </li>
+                    <li @click="goPath('/housingManagement')">
+                        <div>
+                            <img src="../../assets/img/icon_fangwu.png" alt="" />
+                        </div>
+                        <span>添加房屋</span>
+                    </li>
+                    <li @click="goPath('/shopManagement')">
+                        <div>
+                            <img src="../../assets/img/icon_shangpu.png" alt="" />
+                        </div>
+                        <span>添加商铺</span>
+                    </li>
+                    <li @click="goPath('/ownerManagement/index')">
+                        <div>
+                            <img src="../../assets/img/icon_zhuhu.png" alt="" />
+                        </div>
+                        <span>添加住户</span>
+                    </li>
+                </ul>
+            </div>
+            <div class="center-left center-right">
+                <div class="center-left-text">待处理事项</div>
+                <ul>
+                    <li @click="goPath('/ownerManagement/ownerReview/index')">
+                        <div>
+                            <div class="header-left">
+                                <div class="header-left-top">
+                                    <div class="header-icon center-icon"></div>
+                                    <div class="center-right-text">待审核业主</div>
+                                </div>
+                            </div>
+                            <div class="header-number center-number">{{ pendData.ownerReviewedTotal }}</div>
+                            <div class="center-right-image">
+                                <div></div>
+                            </div>
+                        </div>
+                    </li>
+                    <li @click="goPath('/propertyManagement/index')">
+                        <div>
+                            <div class="header-left">
+                                <div class="header-left-top">
+                                    <div class="header-icon center-icon"></div>
+                                    <div class="center-right-text">待处理投诉</div>
+                                </div>
+                            </div>
+                            <div class="header-number center-number">{{ pendData.complaintsTotal }}</div>
+                            <div class="center-right-image">
+                                <div></div>
+                            </div>
+                        </div>
+                    </li>
+                    <li @click="goPath('/workOrdersManagement')">
+                        <div>
+                            <div class="header-left">
+                                <div class="header-left-top">
+                                    <div class="header-icon center-icon"></div>
+                                    <div class="center-right-text">待处理工单</div>
+                                </div>
+                            </div>
+                            <div class="header-number center-number">{{ pendData.workOrderTotal }}</div>
+                            <div class="center-right-image">
+                                <div></div>
+                            </div>
+                        </div>
+                    </li>
+                </ul>
+            </div>
+        </div>
+        <!-- 中间结束部分 -->
+
+        <!-- 底部开始部分 -->
+        <div class="footer">
+            <div class="footer-left">
+                <div class="footer-left-text">
+                    <div>社区公告</div>
+                    <div @click="goPath('/propertyManagement/inform')">查看更多&nbsp;></div>
+                </div>
+                <ul v-if="informData.length > 0">
+                    <li v-for="(item, index) in informData" :key="index" @click="goPath('/propertyManagement/inform', item.id)">
+                        <div class="footer-content">
+                            <div>[{{ item.title }}]{{ item.id }}</div>
+                            <div v-html="item.content"></div>
+                        </div>
+                        <div>{{ item.pubDate }}</div>
+                    </li>
+                </ul>
+                <div v-else class="no-data">暂无公告</div>
+            </div>
+            <div class="footer-left" style="margin-right: 0">
+                <div class="footer-left-text">
+                    <div>告警信息</div>
+                    <div @click="goPath('/alarmManagement/details')">查看更多&nbsp;></div>
+                </div>
+                <div v-if="warnData.length > 0">
+                    <ul>
+                        <li @click="goPath('/alarmManagement/details')" v-for="(item, index) in warnData" :key="index">
+                            <div class="footer-content">
+                                <div>[{{ item.name }}]</div>
+                                <div>{{ item.alarmContent }}</div>
+                            </div>
+                            <div>{{ item.alarmStartTime }}</div>
+                        </li>
+                    </ul>
+                </div>
+                <div v-else class="no-data">暂无告警信息</div>
+            </div>
+        </div>
+        <!-- 底部结束部分 -->
+    </div>
 </template>
-<script></script>
+<script>
+export default {
+    data() {
+        return {
+            houseData: [],
+            warnData: [],
+            informData: [],
+            pendData: []
+        };
+    },
+
+    created() {
+        this.getHouseData();
+        this.getWarnData();
+        this.getInformData();
+        this.getPendData();
+    },
+
+    methods: {
+        // 获取待处理事项
+        getPendData() {
+            this.$http.get('/sc-community-web/Workbench/pendingMatters').then((res) => {
+                if (res.status == 0) {
+                    this.pendData = res.data;
+                } else {
+                    this.$message.warning('获取待处理事项失败');
+                }
+            });
+        },
+        // 获取房屋信息
+        getHouseData() {
+            this.$http.get('/sc-community-web/Workbench/totalHouseInfo').then((res) => {
+                if (res.status == 0) {
+                    this.houseData = res.data;
+                } else {
+                    this.$message.warning('获取房屋信息失败');
+                }
+            });
+        },
+        // 获取告警信息
+        getWarnData() {
+            this.$http.get('/sc-community-web/Workbench/getWaringInfo').then((res) => {
+                if (res.status == 0) {
+                    this.warnData = res.data;
+                } else {
+                    this.$message.warning('获取告警信息失败');
+                }
+            });
+        },
+
+        // 获取通知信息
+        getInformData() {
+            this.$http.get('/sc-community-web/Workbench/getNoticeInfo').then((res) => {
+                if (res.status == 0) {
+                    this.informData = res.data;
+                } else {
+                    this.$message.warning('获取通知信息失败');
+                }
+            });
+        },
+        // 跳转的路径
+        goPath(path, id) {
+            let routeData = this.$router.resolve({
+                path: path,
+                query: {
+                    showDialog: true,
+                    id: id
+                }
+            });
+            window.open(routeData.href, '_blank');
+        }
+    }
+};
+</script>
+<style lang="scss" scoped>
+@import './style.scss';
+</style>

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
operationSupport/src/views/workbench/style.css


+ 222 - 0
operationSupport/src/views/workbench/style.scss

@@ -0,0 +1,222 @@
+.workbench {
+    width: 100%;
+
+    .header {
+        background: #f4f7f9;
+        ul {
+            display: flex;
+            width: 100%;
+
+            :last-child {
+                margin-right: 0;
+            }
+            li {
+                width: 20%;
+                height: 150px;
+                padding: 30px 24px 30px 20px;
+                margin-right: 20px;
+                display: flex;
+                justify-content: space-between;
+                position: relative;
+                color: white;
+                font-size: 14px;
+                border-radius: 6px;
+            }
+        }
+    }
+    .header-left {
+        display: flex;
+        .header-left-top {
+            display: flex;
+            .header-icon {
+                width: 4px;
+                height: 12px;
+                border-radius: 2px;
+                background: white;
+                margin-right: 10px;
+            }
+            :last-child {
+                line-height: 14px;
+            }
+        }
+    }
+    .header-number {
+        position: absolute;
+        bottom: 20px;
+        left: 20px;
+        font-size: 40px;
+    }
+    .header-right {
+        // display: flex;
+        // flex-direction: column;
+        // justify-content: end;
+        // text-align: end;
+        // margin-right: 10px;
+        // margin-left: 200px;
+        // padding-left: 200px;
+        position: absolute;
+        right: 20px;
+        bottom: 40px;
+        img {
+            width: 64px;
+            height: 64px;
+        }
+    }
+    .center-left {
+        background: white;
+        width: 50%;
+        border-radius: 4px;
+        margin-right: 20px;
+        .center-left-text {
+            padding: 15px 20px;
+            border-bottom: 1px solid #ccc;
+            color: #424656;
+            font-size: 14px;
+            font-weight: 600;
+        }
+        ul {
+            padding: 30px 0;
+            display: flex;
+            :last-child {
+                border-right: none;
+            }
+            li {
+                width: 20%;
+                text-align: center;
+                border-right: 1px solid #ccc;
+                span {
+                    color: #747d87;
+                    font-size: 16px;
+                    margin-top: 10px;
+                }
+            }
+        }
+    }
+
+    .center {
+        margin: 20px 0;
+        display: flex;
+        // width: 100%;
+        // display: flex;
+        // justify-content: space-around;
+
+        .center-right {
+            margin-right: 0;
+            ul {
+                width: 100%;
+                li {
+                    width: 33%;
+                    padding: 10px 20px 30px 20px;
+                    position: relative;
+                    .center-right-text {
+                        font-size: 14px;
+                        color: #747d87;
+                    }
+                    .center-icon {
+                        background-image: linear-gradient(0deg, #488fff, #65dcff);
+                    }
+                    .center-number {
+                        bottom: 13px;
+                        padding-left: 10px;
+                    }
+                    .center-right-image {
+                        display: flex;
+                        justify-content: end;
+                        align-items: flex-end;
+                        margin-top: 10px;
+                        padding-bottom: 20px;
+                        div {
+                            width: 6px;
+                            height: 20px;
+                            background: #ddf4ff;
+                            border-top-left-radius: 3px;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    .footer {
+        display: flex;
+        width: 100%;
+
+        .footer-left {
+            background: white;
+            width: 50%;
+            min-height: 440px;
+            max-height: 440px;
+            border-radius: 4px;
+            margin-right: 20px;
+            overflow: hidden;
+            .footer-left-text {
+                display: flex;
+                justify-content: space-between;
+                padding: 15px 20px;
+                border-bottom: 1px solid #ccc;
+                color: #424656;
+                font-size: 14px;
+                font-weight: 600;
+
+                :last-child {
+                    color: #747d87;
+                    font-size: 12px;
+                    font-weight: normal;
+                    &:hover {
+                        cursor: pointer;
+                    }
+                }
+            }
+            ul {
+                width: 100%;
+                padding: 17px 20px;
+                font-size: 12px;
+                color: #424656;
+                li {
+                    margin-bottom: 10px;
+                    display: flex;
+                    justify-content: space-between;
+
+                    .footer-content {
+                        display: flex;
+                        :last-child {
+                            margin-left: 5px;
+                            width: 467px;
+                            height: 17px;
+                            overflow: hidden;
+                            white-space: nowrap;
+                            text-overflow: ellipsis;
+                        }
+                        /deep/ img {
+                            height: 15px;
+                        }
+                    }
+                    &:hover {
+                        color: #0eaeff;
+                    }
+                    &:active {
+                        color: #0eaeff;
+                    }
+                }
+            }
+        }
+    }
+    li:hover {
+        cursor: pointer;
+    }
+    a {
+        text-decoration: none;
+        color: white;
+    }
+    .router-link-active {
+        text-decoration: none;
+    }
+    .router-link-exact-active {
+        color: white;
+    }
+    .no-data {
+        margin: 70px auto;
+        text-align: center;
+        color: #8e8e8e;
+    }
+}

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff