Selaa lähdekoodia

:bug: Fixing a bug. some bugs

冷冷 6 vuotta sitten
vanhempi
commit
8b7a798351

+ 1 - 0
src/const/crud/dict.js

@@ -64,6 +64,7 @@ export const tableOption = {
   }, {
     label: '排序',
     prop: 'sort',
+    type: 'number',
     rules: [{
       required: true,
       message: '请输入排序',

+ 19 - 4
src/const/crud/user.js

@@ -41,10 +41,11 @@ export const tableOption = {
         label: 'id',
         prop: 'userId',
         span: 24,
+        hide: true,
         editDisabled: true,
         addVisdiplay: false,
     }, {
-        width: 150,
+        width: 120,
         fixed: true,
         label: '用户名',
         prop: 'username',
@@ -83,13 +84,27 @@ export const tableOption = {
         formsolt: true,
         solt: true,
         span: 24,
+        hide: true,
         rules: [{
             required: true,
             message: "请选择部门",
             trigger: "blur"
         }]
     }, {
-        width: 150,
+        width: 120,
+        label: '手机号',
+        prop: 'phone',
+        type: 'phone',
+        value: '',
+        span: 24,
+        rules: [{
+            min: 6,
+            max: 20,
+            message: "长度在 11 个字符",
+            trigger: "blur"
+        }]
+    },{
+        width: 120,
         label: '角色',
         prop: 'role',
         formsolt: true,
@@ -117,7 +132,7 @@ export const tableOption = {
             value: "0"
         }, {
             label: '锁定',
-            value: "1"
+            value: "9"
         }]
     }, {
         width: 180,
@@ -131,4 +146,4 @@ export const tableOption = {
         addVisdiplay: false,
         span: 24,
     }]
-}
+}

+ 0 - 6
src/page/index/top/index.vue

@@ -60,12 +60,6 @@
              @click="handleScreen"></i>
         </div>
       </el-tooltip>
-      <el-tooltip effect="dark"
-                  content="用户头像"
-                  placement="bottom">
-        <img class="top-bar__img"
-             :src="userInfo.avatar">
-      </el-tooltip>
       <el-dropdown>
         <span class="el-dropdown-link">
           {{userInfo.username}}

+ 3 - 0
src/views/admin/client/index.vue

@@ -115,6 +115,7 @@ export default {
             message: '删除成功',
             type: 'success'
           })
+          this.refreshChange()
         })
         .catch(function(err) { })
     },
@@ -133,6 +134,7 @@ export default {
           message: '修改成功',
           type: 'success'
         })
+        this.refreshChange()
         done()
       })
     },
@@ -150,6 +152,7 @@ export default {
           message: '添加成功',
           type: 'success'
         })
+        this.refreshChange()
         done()
       })
     },

+ 151 - 200
src/views/admin/dept/index.vue

@@ -1,4 +1,4 @@
-<!--
+`<!--
   -    Copyright (c) 2018-2025, lengleng All rights reserved.
   -
   - Redistribution and use in source and binary forms, with or without
@@ -16,73 +16,86 @@
   -->
 
 <template>
-  <div class="dept">
+  <div class="app-container calendar-list-container">
     <basic-container>
+      <div class="filter-container">
+        <el-button-group>
+          <el-button type="primary"
+                     v-if="deptManager_btn_add"
+                     icon="plus"
+                     @click="handlerAdd">添加</el-button>
+          <el-button type="primary"
+                     v-if="deptManager_btn_edit"
+                     icon="edit"
+                     @click="handlerEdit">编辑</el-button>
+          <el-button type="primary"
+                     v-if="deptManager_btn_del"
+                     icon="delete"
+                     @click="handleDelete">删除</el-button>
+        </el-button-group>
+      </div>
+
       <el-row>
         <el-col :span="8"
-                style='padding-right:20px;'>
-          <avue-tree :data="treeData"
-                     :option="treeOption"
-                     @node-click="getNodeData">
-            <template slot="addBtn">
-              <el-button size="small"
-                         @click="handlerParentAdd()"
-                         icon="el-icon-plus"
-                         v-if="deptManager_btn_add"></el-button>
-            </template>
-            <template slot-scope="scope"
-                      slot="menuBtn">
-              <el-dropdown-item v-if="deptManager_btn_add"
-                                @click.native="handlerAdd(scope.data)">新增</el-dropdown-item>
-              <el-dropdown-item v-if="deptManager_btn_edit"
-                                @click.native="handlerEdit(scope.data)">修改</el-dropdown-item>
-              <el-dropdown-item v-if="deptManager_btn_del"
-                                @click.native="handleDelete(scope.data)">删除</el-dropdown-item>
-            </template>
-          </avue-tree>
+                style='margin-top:15px;'>
+          <el-tree class="filter-tree"
+                   :data="treeData"
+                   node-key="id"
+                   highlight-current
+                   :props="defaultProps"
+                   :filter-node-method="filterNode"
+                   @node-click="getNodeData"
+                   default-expand-all>
+          </el-tree>
         </el-col>
-        <el-col :span="16">
-          <avue-form :option="formOption"
-                     v-model="form"
-                     ref="form"
-                     @submit="isAdd?create():update()">
-            <template slot="menuForm">
-              <el-button @click="onCancel()"
-                         v-if="editFlag">取消</el-button>
-            </template>
-          </avue-form>
-          <!-- <avue-crud :option="tableOption"
-                     class="dept__table"
-                     @refresh-change="getList()"
-                     @row-del="handleDelete"
-                     :data="tableData">
-            <template slot-scope="scope"
-                      slot="menuLeft">
-              <el-button type="primary"
-                         size="small"
-                         v-if="deptManager_btn_add"
-                         @click="handlerParentAdd()">新增</el-button>
-            </template>
-            <template slot-scope="scope"
-                      slot="menu">
-              <el-button type="primary"
-                         size="small"
-                         @click="handlerEdit(scope.row)">编辑</el-button>
-              <el-button type="danger"
-                         size="small"
-                         @click="handleDelete(scope.row)">删除</el-button>
-            </template>
-          </avue-crud> -->
+        <el-col :span="16"
+                style='margin-top:15px;'>
+          <el-card class="box-card">
+            <el-form :label-position="labelPosition"
+                     label-width="80px"
+                     :rules="rules"
+                     :model="form"
+                     ref="form">
+              <el-form-item label="父级节点"
+                            prop="parentId">
+                <el-input v-model="form.parentId"
+                          :disabled="formEdit"
+                          placeholder="请输入父级节点"></el-input>
+              </el-form-item>
+              <el-form-item label="节点编号"
+                            prop="deptId"
+                            v-if="formEdit">
+                <el-input v-model="form.deptId"
+                          :disabled="formEdit"
+                          placeholder="节点编号"></el-input>
+              </el-form-item>
+              <el-form-item label="部门名称"
+                            prop="name">
+                <el-input v-model="form.name"
+                          :disabled="formEdit"
+                          placeholder="请输入名称"></el-input>
+              </el-form-item>
+              <el-form-item label="排序"
+                            prop="orderNum">
+                <el-input type="number"
+                           v-model="form.sort"
+                          :disabled="formEdit"
+                          placeholder="请输入排序"></el-input>
+              </el-form-item>
+              <el-form-item v-if="formStatus == 'update'">
+                <el-button type="primary"
+                           @click="update">更新</el-button>
+                <el-button @click="onCancel">取消</el-button>
+              </el-form-item>
+              <el-form-item v-if="formStatus == 'create'">
+                <el-button type="primary"
+                           @click="create">保存</el-button>
+                <el-button @click="onCancel">取消</el-button>
+              </el-form-item>
+            </el-form>
+          </el-card>
         </el-col>
       </el-row>
-      <!-- <el-dialog @close="onCancel"
-                 :visible.sync="box">
-        <avue-form :option="formOption"
-                   v-model="form"
-                   ref="form"
-                   @submit="isAdd?create():update()">
-        </avue-form>
-      </el-dialog> -->
     </basic-container>
   </div>
 </template>
@@ -90,44 +103,45 @@
 <script>
 import { fetchTree, getObj, addObj, delObj, putObj } from '@/api/dept'
 import { mapGetters } from 'vuex'
-import { validatenull } from '@/util/validate'
-import { setTimeout } from 'timers';
 export default {
   name: 'dept',
   data () {
     return {
-      treeOption: {
-        addBtn: false,
-        editBtn: false,
-        delBtn: false,
-        nodeKey: "id",
-        props: {
-          label: 'name'
-        }
-      },
-      tableOption: {
-        index: true,
-        addBtn: false,
-        editBtn: false,
-        delBtn: false,
-        page: false,
-        column: [{
-          label: 'id',
-          prop: 'id'
-        }, {
-          label: '名称',
-          prop: 'name'
-        }],
-      },
-      editFlag: false,
-      tableData: [],
-      box: false,
-      obj: {},
+      list: null,
+      total: null,
+      formEdit: true,
+      formAdd: true,
       formStatus: '',
+      showElement: false,
+      typeOptions: ['0', '1'],
+      methodOptions: ['GET', 'POST', 'PUT', 'DELETE'],
+      listQuery: {
+        name: undefined
+      },
       treeData: [],
+      defaultProps: {
+        children: 'children',
+        label: 'name'
+      },
+      rules: {
+        parentId: [
+          { required: true, message: '请输入父级节点', trigger: 'blur' }
+        ],
+        deptId: [
+          { required: true, message: '请输入节点编号', trigger: 'blur' }
+        ],
+        name: [
+          { required: true, message: '请输入部门名称', trigger: 'blur' }
+        ],
+      },
+      labelPosition: 'right',
       form: {
-
+        name: undefined,
+        orderNum: undefined,
+        parentId: undefined,
+        deptId: undefined
       },
+      currentId: 0,
       deptManager_btn_add: false,
       deptManager_btn_edit: false,
       deptManager_btn_del: false
@@ -140,48 +154,15 @@ export default {
     this.deptManager_btn_del = this.permissions['sys_dept_del']
   },
   computed: {
-
     ...mapGetters([
       'elements',
       'permissions'
-    ]),
-    isAdd () {
-      return this.formStatus === 'create';
-    },
-    formOption () {
-      return {
-        submitText: this.isAdd ? '新增' : '修改',
-        submitBtn: this.editFlag,
-        emptyBtn: this.editFlag,
-        column: [
-          {
-            label: '父类序号',
-            prop: 'parentId',
-            disabled: true,
-            span: 24,
-          },
-          {
-            label: '部门名称',
-            prop: 'name',
-            disabled: !this.editFlag,
-            span: 24,
-            rules: [{ required: true, message: '请输入部门名称', trigger: 'change' }]
-          }, {
-            label: '排序',
-            prop: 'orderNum',
-            disabled: !this.editFlag,
-            span: 24,
-          }
-        ]
-      }
-    },
+    ])
   },
   methods: {
     getList () {
       fetchTree(this.listQuery).then(response => {
         this.treeData = response.data.data
-        if (validatenull(this.obj)) this.tableData = this.treeData;
-        else this.tableData = this.obj.children;
       })
     },
     filterNode (value, data) {
@@ -189,58 +170,35 @@ export default {
       return data.label.indexOf(value) !== -1
     },
     getNodeData (data) {
-      this.obj = data;
-      this.tableData = data.children;
-    },
-    show (data = {}) {
-      getObj(data.id).then(res => {
-        const data = res.data.data;
-        if (this.formStatus === 'update') {
-          this.form = data;
-          this.form.parentName = this.obj.name;
-        } else if (this.formStatus === 'create') {
-          this.form.parentId = data.deptId;
-          this.form.parentName = this.obj.name;
-        } else {
-          this.form = data;
-        }
-        setTimeout(() => {
-          this.$refs.form.clearValidate();
-        }, 0);
+      if (!this.formEdit) {
+        this.formStatus = 'update'
+      }
+      getObj(data.id).then(response => {
+        this.form = response.data.data
       })
+      this.currentId = data.id
+      this.showElement = true
     },
-    handlerEdit (data) {
-      this.formStatus = 'update'
-      this.editFlag = true;
-      this.show(data);
-    },
-    handlerParentAdd () {
-      this.formStatus = 'create'
-      this.editFlag = true;
-      if (validatenull(this.obj)) {
-        this.form.parentId = 0;
-        this.form.parentName = '';
-        setTimeout(() => {
-          this.$refs.form.clearValidate();
-        }, 0);
-      } else {
-        this.show(this.obj);
+    handlerEdit () {
+      if (this.form.deptId) {
+        this.formEdit = false
+        this.formStatus = 'update'
       }
     },
-    handlerAdd (data) {
+    handlerAdd () {
+      this.resetForm()
+      this.formEdit = false
       this.formStatus = 'create'
-      this.editFlag = true;
-      this.show(data);
     },
-    handleDelete (data) {
-      this.show(data);
-      this.$confirm(`此操作将永久删除${data.name}, 是否继续?`, '提示', {
+    handleDelete () {
+      this.$confirm('此操作将永久删除, 是否继续?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        delObj(this.form.deptId).then(() => {
+        delObj(this.currentId).then(() => {
           this.getList()
+          this.resetForm()
           this.onCancel()
           this.$notify({
             title: '成功',
@@ -252,51 +210,44 @@ export default {
       })
     },
     update () {
-      putObj(this.form).then(() => {
-        this.onCancel();
-        this.getList()
-        this.$notify({
-          title: '成功',
-          message: '更新成功',
-          type: 'success',
-          duration: 2000
+      this.$refs.form.validate((valid) => {
+        if (!valid) return
+        putObj(this.form).then(() => {
+          this.getList()
+          this.$notify({
+            title: '成功',
+            message: '更新成功',
+            type: 'success',
+            duration: 2000
+          })
         })
       })
 
     },
     create () {
-      addObj(this.form).then(() => {
-        this.onCancel();
-        this.getList()
-        this.$notify({
-          title: '成功',
-          message: '创建成功',
-          type: 'success',
-          duration: 2000
+      this.$refs.form.validate((valid) => {
+        if (!valid) return
+        addObj(this.form).then(() => {
+          this.getList()
+          this.$notify({
+            title: '成功',
+            message: '创建成功',
+            type: 'success',
+            duration: 2000
+          })
         })
       })
     },
     onCancel () {
+      this.formEdit = true
       this.formStatus = ''
-      this.editFlag = false;
-      this.$refs.form.resetForm();
-      setTimeout(() => {
-        this.$refs.form.clearValidate();
-      }, 0);
+    },
+    resetForm () {
+      this.form = {
+        parentId: this.currentId,
+      }
     }
   }
 }
 </script>
 
-<style lang="scss">
-.dept {
-  &__tree {
-    margin-bottom: 13px;
-  }
-  &__table {
-    margin-top: -32px;
-  }
-}
-</style>
-
-

+ 2 - 0
src/views/admin/dict/index.vue

@@ -133,6 +133,7 @@ export default {
           message: '修改成功',
           type: 'success'
         })
+        this.getList(this.page)
         done()
       })
     },
@@ -150,6 +151,7 @@ export default {
           message: '添加成功',
           type: 'success'
         })
+        this.getList(this.page)
         done()
       })
     },

+ 2 - 1
src/views/admin/menu/index.vue

@@ -101,7 +101,8 @@
               </el-form-item>
               <el-form-item label="排序"
                             prop="sort">
-                <el-input v-model="form.sort"
+                <el-input type="number"
+                          v-model="form.sort"
                           :disabled="formEdit"
                           placeholder="请输入排序"></el-input>
               </el-form-item>

+ 5 - 2
src/views/admin/social/index.vue

@@ -114,7 +114,7 @@ export default {
         type: 'warning'
       })
         .then(function () {
-          return delObj(row.clientId)
+          return delObj(row.id)
         })
         .then(data => {
           _this.tableData.splice(index, 1)
@@ -123,6 +123,7 @@ export default {
             message: '删除成功',
             type: 'success'
           })
+          this.refreshChange()
         })
         .catch(function (err) { })
     },
@@ -141,7 +142,8 @@ export default {
           message: '修改成功',
           type: 'success'
         })
-        done()
+          this.refreshChange()
+          done()
       })
     },
     /**
@@ -158,6 +160,7 @@ export default {
           message: '添加成功',
           type: 'success'
         })
+        this.refreshChange()
         done()
       })
     },

+ 3 - 3
src/views/admin/user/index.vue

@@ -60,7 +60,7 @@
                       slot-scope="scope">
               <span v-for="(role,index) in scope.row.roleList"
                     :key="index">
-                <el-tag>{{role.roleDesc}} </el-tag>&nbsp;&nbsp;
+                <el-tag>{{role.roleName}} </el-tag>&nbsp;&nbsp;
               </span>
             </template>
             <template slot="deptId"
@@ -97,7 +97,7 @@
                       slot-scope="scope">
               <avue-crud-select v-model="role"
                                 multiple
-                                placeholder="请选择角色,要先选择部门"
+                                placeholder="请选择角色"
                                 :dic="rolesOptions"
                                 :props="roleProps"></avue-crud-select>
             </template>
@@ -135,7 +135,7 @@ export default {
       treeDeptData: [],
       checkedKeys: [],
       roleProps: {
-        label: "roleDesc",
+        label: "roleName",
         value: 'roleId'
       },
       defaultProps: {

+ 4 - 2
src/views/admin/user/info.vue

@@ -29,7 +29,7 @@
               <el-form-item label="用户名"
                             prop="username">
                 <el-input type="text"
-                          :value="userInfo.username"
+                          v-model="ruleForm2.username"
                           disabled></el-input>
               </el-form-item>
               <el-form-item label="原密码"
@@ -102,6 +102,7 @@ export default {
         Authorization: 'Bearer ' + getToken()
       },
       ruleForm2: {
+        username: '',
         password: '',
         newpassword1: '',
         newpassword2: ''
@@ -114,11 +115,12 @@ export default {
     }
   },
   created () {
+      this.ruleForm2.username =  this.userInfo.username
   },
   computed: {
     ...mapState({
       userInfo: state => state.user.userInfo
-    })
+    }),
   },
   methods: {
     submitForm (formName) {

+ 2 - 2
vue.config.js

@@ -1,4 +1,4 @@
-const url = 'http://zn.huaxiadaowei.com'
+const url = 'http://localhost:9999'
 module.exports = {
     lintOnSave: true,
     productionSourceMap: false,
@@ -66,4 +66,4 @@ module.exports = {
             },
         }
     }
-}
+}