Преглед на файлове

点击菜单异常报错修复

chuwuya преди 2 години
родител
ревизия
b855975d90

+ 49 - 4
src/api/user/user.js

@@ -1,4 +1,4 @@
-import { get } from "@/utils/requestMethod";
+import { get, post, put, del } from "@/utils/requestMethod";
 
 /**
  * 获取用户列表
@@ -14,8 +14,53 @@ const getUserList = (
 ) => {
     return get(
         `/users/user_list?status=${status}&page=${page}&page_size=${page_size}`
-    )
+    );
 }
-export{
-    getUserList
+//添加用户
+const addUser = () => {
+    let params = new FormData();
+    return post(`/users/user`, params);
+}
+//获取用户详情
+const getUserDetail = (
+    id
+) => {
+    return get(`/users/user?id=${id}`);
+}
+//导出用户数据
+const exportUserData = () => {
+    return get(`/users/export_data`);
+}
+//删除用户
+const deleteUser = () => {
+    let params = new FormData();
+    return del(`/users/user`, params);
+}
+//批量删除用户
+const delUserByBatched = () => {
+    return del(`/users/batch_delete_user`);
+}
+//更新用户详情
+const updateUserDetail = () =>{
+    let params = new FormData();
+    return put(`/users/user`,params);
+}
+//修改用户状态等
+const alterUserStatus = () => {
+    return put(`/users/user_status`);
+}
+//批量修改用户状态等
+const alterUserStatusByBatched = () =>{
+    return put(`/users/batch_modify_user_status`);
+}
+export {
+    getUserList, 
+    addUser, 
+    getUserDetail, 
+    exportUserData ,
+    deleteUser, 
+    delUserByBatched,
+    updateUserDetail,
+    alterUserStatus,
+    alterUserStatusByBatched
 }

+ 2 - 1
src/layout/Navbar.vue

@@ -24,7 +24,8 @@
             <el-icon class="el-icon-user"></el-icon>
             <span style="display: inline-block;margin-left: 8px"></span>
           </el-button>
-
+          <!--|||-->
+          <el-dropdown-menu></el-dropdown-menu>
         </el-dropdown>
       </div>
     </div>

+ 16 - 25
src/layout/Sidebar.vue

@@ -1,33 +1,18 @@
 <template>
   <div>
-    <el-menu style="border: 0;" 
-    v-for="(menu, index) in menus" 
-    :key="index" background-color="#266999"
-    text-color="rgba(255, 255, 255, 1)" 
-    active-text-color="#ffd04b" 
-    :collapse="isCollapse" 
-    :collapse-transition="false"
-    router mode="vertical" 
-    :unique-opened="true">
+    <el-menu style="border: 0;" :key="index" background-color="#266999" text-color="rgba(255, 255, 255, 1)"
+      active-text-color="#ffd04b" :collapse="isCollapse" :collapse-transition="false" router mode="vertical"
+      :unique-opened="true" v-for="(menu, index) in menus">
       <el-submenu :index="String(index)" v-if="menu.submenus != null">
         <template slot="title">
           <el-image :src="menu.url"></el-image>
           <span>{{ menu.name }}</span>
         </template>
-        <el-menu-item-group
-          v-for="(submenu, index2) in menu.submenus"
-          :key="index2"
-        >
-          <el-menu-item :index="submenu.path">
-            <span class="subMenu" style="margin-left:40px">{{ submenu.name }}</span>
-          </el-menu-item>
-        </el-menu-item-group>
+        <el-menu-item v-for="submenu in menu.submenus" :index="submenu.path" :key="submenu.path">
+          <span style="margin-left:40px">{{ submenu.name }}</span>
+        </el-menu-item>
       </el-submenu>
-      <el-menu-item
-        v-if="menu.submenus == null"
-        :key="menu.path"
-        :index="menu.path"
-      >
+      <el-menu-item v-if="menu.submenus == null" :key="menu.path" :index="menu.path">
         <el-image :src="menu.url"></el-image>
         <span slot="title">
           {{ menu.name }}
@@ -44,7 +29,7 @@ export default {
   },
   data() {
     return {
-      menus: [
+      'menus': [
         {
           url: require("@/assets/images/userManagement@3x.png"),
           name: "用户管理",
@@ -125,6 +110,12 @@ export default {
           url: require("@/assets/images/serviceManagement@3x.png"),
           name: "服务管理",
           path: "/home/service",
+          submenus: [
+            {
+              name: "全部服务",
+              path: "/home/service/all",
+            } 
+          ]
         },
         {
           url: require("@/assets/images/securityManagement@3x.png"),
@@ -169,11 +160,11 @@ export default {
   padding: 0;
 }
 
-.el-menu-item-group > .span {
+.el-menu-item-group>.span {
   margin-left: 70px;
 }
 
-/deep/.el-menu--inline > {
+/deep/.el-menu--inline> {
   border: none;
   text-align: -webkit-right;
 }

+ 3 - 1
src/utils/requestMethod.js

@@ -103,5 +103,7 @@ function delform(url, data) {
 export {
   get,
   post,
-  put
+  put,
+  del,
+  delform
 }

+ 28 - 9
src/views/permissionManagement/roleOverview.vue

@@ -30,23 +30,18 @@
             </el-table>
         </div>
         <div class="bottom">
-            <div>
-                <checkbox class="checkbox"></checkbox>
-                <el-button class="check-cancel" size="mini" type="text" @click="cancleChecked">取消</el-button>
-            </div>
             <div class="bottom_button" v-show="show">
                 <el-button class="delete" type="text">批量删除</el-button>
             </div>
-            <page class="page"></page>
+            <page class="page" :paginationData="paginationData"></page>
         </div>
     </div>
 </template>
 
 <script>
-import checkbox from '@/components/Checkbox/index'
 import page from '@/components/pagination/index'
 export default {
-    components: { checkbox, page },
+    components: { page },
     data() {
         return {
             filterText: '',
@@ -81,7 +76,22 @@ export default {
                 associated_ORN: '3家',
             }],
             multipleSelection: [],
-            show: true
+            show: true,
+            currentPageSize: 10,
+            currentPage: 1,
+            paginationData: {
+                pageSize: 10,
+                pagerCount: 5,
+                currentPage: 1,
+                pageSizes: [5, 10, 20, 30],
+                total: 30,
+                currentChange: (val) => {
+                    this.getTableData(val);
+                },
+                handleSizeChange: (val) => {
+                    this.handleSizeChange(val);
+                },
+            },
         }
     },
     watch: {
@@ -106,7 +116,16 @@ export default {
         },
         handleSelectionChange() {
 
-        }
+        },
+        getTableData() {
+            this.tableData = [];
+            //
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.currentPageSize = val;
+            this.getTableData(this.currentPage);
+        },
     }
 }
 </script>

+ 3 - 186
src/views/servicesManagement/index.vue

@@ -5,193 +5,10 @@
 </template>
 
 <script>
-import checkbox from "@/components/Checkbox/index";
-import page from "@/components/pagination/index";
 export default {
-  components: { checkbox, page },
-  data() {
-    return {
-      input: "",
-      show: true,
-      total: 0,
-      form: {},
-      tableData: [
-        {
-          photo:
-            "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
-          updatetime: "2023-01-01 00:00",
-          name: "海康威视软件包",
-          introduction: "xxxxxxxxxxxxx",
-          status: "1",
-        },
-        {
-          photo:
-            "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
-          updatetime: "2023-01-01 00:00",
-          name: "海康威视软件包",
-          introduction: "xxxxxxxxxxxxx",
-          status: "2",
-        },
-        {
-          photo:
-            "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
-          updatetime: "2023-01-01 00:00",
-          name: "海康威视软件包",
-          introduction: "xxxxxxxxxxxxx",
-          status: "3",
-        },
-      ],
-      paginationData: {
-        pageSize: 10,
-        pagerCount: 5,
-        currentPage: 1,
-        pageSizes: [5, 10, 20, 30],
-        total: 30,
-        currentChange: (val) => {
-          this.getTableData(val);
-        },
-        handleSizeChange: (val) => {
-          this.handleSizeChange(val);
-        },
-      },
-    };
-  },
-  methods: {
-    handleSelectionChange() {
-      //
-    },
-    getTableData(val) {},
-    handleSizeChange(val) {},
-  },
-};
-</script>
-<style lang="less" scoped>
-.content {
-  top: 77px;
-  position: absolute;
-  left: 218px;
-  right: 16px;
-  height: -webkit-fill-available;
-  margin-bottom: 20px;
-  background-color: #ffffff;
-}
-
-.el-table {
-  top: 100px;
-  margin-left: 2.5%;
-  border: 1px solid #f0f2f2;
-  font-size: 0.95rem;
-  font-family: PingFang SC;
-  font-weight: 500;
-  color: #b2b2b2;
-  background: rgba(255, 255, 255, 0.8);
-  /deep/th {
-    background: #f7fbff;
-  }
-  /deep/.el-checkbox {
-    color: #b2b2b2;
-    .el-checkbox__input.is-checked + .el-checkbox__label {
-      color: #2ea8e6;
-    }
-
-    .el-checkbox__input.is-checked .el-checkbox__inner::after {
-      width: 70%;
-      height: 70%;
-      background: #2ea8e6;
-      border-radius: 0;
-      transform: rotate(0deg) scaleY(1);
-      position: static;
-      // border: 1px solid #8DD9FF;
-    }
-
-    .el-checkbox__inner {
-      border: 1px solid #8dd9ff;
-      background: rgba(0, 170, 255, 0);
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      position: static;
-      &::after {
-        transition: 0ms;
-      }
-    }
-
-    .el-checkbox__label {
-      padding-left: 0;
-      font-size: 15px;
-      position: absolute;
-      top: 1px;
-      left: 25px;
-    }
-  }
-}
-
-.el-form-item {
-  margin-bottom: 0 !important;
+  //
 }
 
-/deep/.el-form-item__label {
-  padding: 0;
-}
-
-/deep/.el-form-item__content {
-  margin-right: 8px;
-}
-
-.bottom {
-  position: absolute;
-  left: 20px;
-  right: 16px;
-  bottom: 20px;
-  height: 50px;
-  line-height: 20px;
-  background-color: rgba(255, 255, 255, 1);
-  text-align: center;
-
-  .checkbox {
-    position: absolute;
-    left: 29px;
-    top: 15px;
-    font-size: 14px;
-  }
-
-  .check-cancel {
-    position: absolute;
-    // line-height: 20px;
-    font-size: 14px;
-    text-align: center;
-    left: 140px;
-    top: 10px;
-  }
-
-  .bottom_button {
-    position: absolute;
-    left: 200px;
-    margin-top: 15px;
-
-    .delete {
-      font-size: 14px;
-      text-align: center;
-      padding: 1px;
-    }
-
-    .disabled {
-      font-size: 14px;
-      text-align: center;
-      padding: 1px;
-    }
-
-    .export {
-      font-size: 14px;
-      text-align: center;
-      padding: 1px;
-    }
-  }
-}
-.search {
-  position: absolute;
-  width: 300px;
-  top: 20px;
-  right: 2.5%;
-}
+</script>
+<style lang="less" scoped>
 </style>

+ 36 - 11
src/views/systemManagement/indexConfiguration/smartBoard.vue

@@ -25,35 +25,32 @@
                 <el-table-column prop="calculateRules" label="计算规则">
                 </el-table-column>
                 <el-table-column prop="operation" label="操作">
-                    <el-select>
-                        <el-option></el-option>
+                    <el-select v-model="value">
+                        <el-option value="test"></el-option>
                     </el-select>
                     <el-button size="mini" type="text">删除</el-button>
                 </el-table-column>
             </el-table>
         </div>
         <div class="bottom">
-            <div>
-                <checkbox class="checkbox" :total="total"></checkbox>
-                <el-button class="check-cancel" size="mini" type="text" @click="cancleChecked">取消</el-button>
-            </div>
             <div class="bottom_button" v-show="show">
                 <el-button class="delete" type="text">批量删除</el-button>
             </div>
-            <page class="page"></page>
+            <page class="page" :paginationData="paginationData"></page>
         </div>
     </div>
 </div></template>
 
 <script>
-import checkbox from '@/components/Checkbox/index'
 import page from '@/components/pagination/index'
 export default {
-    components: { checkbox, page },
+    components: { page },
     data() {
         return {
             total: 0,
             filterText: '',
+            show: true,
+            value:'test',
             data: [
                 {
                     label: '人员画像',
@@ -102,7 +99,20 @@ export default {
             defaultProps: {
                 children: 'children',
                 label: 'label'
-            }
+            },
+            paginationData: {
+                pageSize: 10,
+                pagerCount: 5,
+                currentPage: 1,
+                pageSizes: [5, 10, 20, 30],
+                total: 30,
+                currentChange: (val) => {
+                    this.getTableData(val);
+                },
+                handleSizeChange: (val) => {
+                    this.handleSizeChange(val);
+                },
+            },
         }
     },
     watch: {
@@ -114,7 +124,22 @@ export default {
         filterNode(value, data) {
             if (!value) return true;
             return data.label.indexOf(value) !== -1;
-        }
+        },
+        handleNodeClick() {
+            //
+        },
+        handleSelectionChange() {
+            //
+        },
+        getTableData() {
+            this.tableData = [];
+            getUserList()
+        },
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+            this.currentPageSize = val;
+            this.getTableData(this.currentPage);
+        },
     }
 }
 </script>

+ 1 - 1
src/views/systemManagement/infoConfiguration/floorInfo.vue

@@ -5,7 +5,7 @@
             <el-button type="text">历史记录</el-button>
         </div>
         <div style="height: 600px;width: 100%; margin-top: 10px;">
-            <el-image style="height: 100%;" :src="testUrl" :fit="contain" :preview-src-list="srcList"></el-image>
+            <el-image style="height: 100%;" :src="testUrl" :preview-src-list="srcList"></el-image>
         </div>
         <el-button>删除</el-button>
         <el-button>更新</el-button>

+ 3 - 0
src/views/systemManagement/infoConfiguration/index.vue

@@ -53,6 +53,9 @@ export default {
         filterNode(value, data) {
             if (!value) return true;
             return data.label.indexOf(value) !== -1;
+        },
+        handleNodeClick(){
+            //
         }
     }
 }

+ 3 - 0
src/views/systemManagement/messageConfiguration/commonMessage.vue

@@ -132,6 +132,9 @@ export default {
         filterNode(value, data) {
             if (!value) return true;
             return data.label.indexOf(value) !== -1;
+        },
+        handleNodeClick(){
+            //
         }
     }
 }

+ 5 - 1
src/views/systemManagement/strategyConfiguration/smartMeeting.vue

@@ -101,6 +101,9 @@ export default {
         filterNode(value, data) {
             if (!value) return true;
             return data.label.indexOf(value) !== -1;
+        },
+        handleNodeClick() {
+            //
         }
     }
 }
@@ -140,4 +143,5 @@ export default {
             font-size: 25px;
         }
     }
-}</style>
+}
+</style>

+ 25 - 14
src/views/userManagement/personManagement/messageDialog/addUser.vue

@@ -92,11 +92,12 @@
 </template>
 
 <script>
+import { addUser } from '@/api/user/user';
 export default {
     data() {
         return {
             dialogVisible: false,
-            select:'',
+            select: '',
             form: {
                 username: '',
                 password: '',
@@ -112,23 +113,27 @@ export default {
                 account_status: '',
                 nationality: ''
             },
-            charNum:0,
+            charNum: 0,
             testUrl: require('@/assets/images/头像上传@3x.png')
         }
     },
-    watch: { 
+    watch: {
     },
     methods: {
         handleNodeClick() {
 
         },
-        resetForm(formName) {
-            this.$refs[formName].resetFields();
+        resetForm() {
+            this.$refs.form.resetFields();
         },
-        submitForm(formName) {
-            this.$refs[formName].validate((valid) => {
+        submitForm() {
+            this.$refs.form.validate((valid) => {
                 if (valid) {
-                    //
+                    // addUser(
+                    
+                    // ).then((res) =>{
+
+                    // })
                 }
             })
         }
@@ -140,15 +145,18 @@ export default {
 /deep/.el-dialog {
     height: 750px !important;
 }
-.next{
+
+.next {
     background-color: #2EA8E6;
     color: #FFFFFF;
 }
-.reset{
+
+.reset {
     background-color: #B3B3B3;
     color: #FFFFFF;
 }
-.update{
+
+.update {
     background-color: #2EA8E6;
     color: #FFFFFF;
 }
@@ -184,9 +192,11 @@ export default {
 
 .password {
     margin-left: 10px;
-        /deep/.el-input__inner {
+
+    /deep/.el-input__inner {
         width: 300px !important;
     }
+
     /deep/.el-input__suffix-inner {
         position: absolute;
         right: 15px !important;
@@ -202,10 +212,12 @@ export default {
 .el-form {
     .el-form-item {
         margin-bottom: 15px;
+
         /deep/.el-form-item__label {
             padding: 0;
             font-size: 15px;
         }
+
         /deep/.el-input__inner {
             height: 30px;
             background-color: #F7F9FA;
@@ -249,5 +261,4 @@ export default {
     text-align: center;
     margin: 30px;
     padding: 5px;
-}
-</style>
+}</style>

+ 1 - 1
src/views/userManagement/personManagement/tables/activeUser.vue

@@ -118,7 +118,7 @@ export default {
         },
         userInfoEdit(){
             this.$refs.userInfoEdit.dialogVisible = true;
-        }
+        },
     }
 }
 </script>