瀏覽代碼

完善代码

zcy 4 年之前
父節點
當前提交
7af7cc406d

+ 2 - 2
src/components/dict/JDictSelectTag.vue

@@ -1,6 +1,6 @@
 <template>
   <a-radio-group v-if="tagType=='radio'" :value="getValueSting" :disabled="disabled" @change="handleInput">
-    <a-radio v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text }}</a-radio>
+    <a-radio v-for="(item, key) in dictOptions" :key="key" :value="item.dictValue">{{ item.dictLabel }}</a-radio>
   </a-radio-group>
 
   <a-radio-group
@@ -10,7 +10,7 @@
     :disabled="disabled"
     @change="handleInput"
   >
-    <a-radio-button v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text }}</a-radio-button>
+    <a-radio-button v-for="(item, key) in dictOptions" :key="key" :value="item.dictValue">{{ item.dictLabel }}</a-radio-button>
   </a-radio-group>
 
   <a-select

+ 2 - 0
src/components/dict/index.js

@@ -2,9 +2,11 @@ import JDictSelectTag from './JDictSelectTag.vue'
 import JMultiSelectTag from './JMultiSelectTag.vue'
 import JSearchSelectTag from './JSearchSelectTag.vue'
 import JListSelectTag from './JListSelectTag'
+import sysListSelectTag from './sysListSelectTag'
 
 export default {
   install: function(Vue) {
+    Vue.component('sysListSelectTag', sysListSelectTag)
     Vue.component('JListSelectTag', JListSelectTag)
     Vue.component('JDictSelectTag', JDictSelectTag)
     Vue.component('JMultiSelectTag', JMultiSelectTag)

+ 120 - 0
src/components/dict/sysListSelectTag.vue

@@ -0,0 +1,120 @@
+<template>
+  <a-radio-group v-if="tagType=='radio'" :value="getValueSting" :disabled="disabled" @change="handleInput">
+    <a-radio v-for="(item, key) in dictOptions" :key="key" :value="item[dictCode+'Id']">{{ item[dictCode+'Name'] }}</a-radio>
+  </a-radio-group>
+
+  <a-radio-group
+    v-else-if="tagType=='radioButton'"
+    button-style="solid"
+    :value="getValueSting"
+    :disabled="disabled"
+    @change="handleInput"
+  >
+    <a-radio-button v-for="(item, key) in dictOptions" :key="key" :value="item[dictCode+'Id']">{{ item[dictCode+'Name'] }}</a-radio-button>
+  </a-radio-group>
+
+  <a-select
+    v-else-if="tagType=='select'"
+    :size="size"
+    :get-popup-container="getPopupContainer"
+    :placeholder="placeholder"
+    :disabled="disabled"
+    :value="getValueSting"
+    @change="handleInput"
+  >
+    <a-select-option :value="undefined">请选择</a-select-option>
+    <a-select-option v-for="(item, key) in dictOptions" :key="key" :value="item[dictCode+'Id']">
+      <span style="display: inline-block;width: 100%" :title=" item[(dictCode=='user'?'nick':dictCode)+'Name'] ">
+        {{ item[(dictCode=='user'?'nick':dictCode)+'Name'] }}
+      </span>
+    </a-select-option>
+  </a-select>
+</template>
+
+<script>
+import { getAction } from '@/api/request'
+
+export default {
+  name: 'JDictSelectTag',
+  model: {
+    prop: 'value',
+    event: 'change'
+  },
+  props: {
+    dictCode: String,
+    placeholder: String,
+    disabled: Boolean,
+    value: [String, Number],
+    type: String,
+    getPopupContainer: {
+      type: Function,
+      default: (node) => node.parentNode
+    },
+    size: {
+      type: String,
+      default: 'default'
+    }
+  },
+  data() {
+    return {
+      dictOptions: [],
+      tagType: ''
+    }
+  },
+  computed: {
+    getValueSting() {
+      // update-begin author:wangshuai date:20200601 for: 不显示placeholder的文字 ------
+      // 当有null或“” placeholder不显示
+      return this.value != null ? this.value : undefined
+      // update-end author:wangshuai date:20200601 for: 不显示placeholder的文字 ------
+    }
+  },
+  watch: {
+    dictCode: {
+      immediate: true,
+      handler() {
+        this.initDictData()
+      }
+    }
+  },
+  created() {
+    // console.log(this.dictCode);
+    if (!this.type || this.type === 'list') {
+      this.tagType = 'select'
+    } else {
+      this.tagType = this.type
+    }
+    // 获取字典数据
+    // this.initDictData();
+  },
+  methods: {
+    initDictData() {
+      // 根据字典Code, 初始化字典数组
+      getAction(`/system/${this.dictCode}/list`).then((res) => {
+        if (res.code === 200) {
+          this.dictOptions = res.rows
+        }
+      })
+    },
+    handleInput(e = '') {
+      let val
+      if (Object.keys(e).includes('target')) {
+        val = e.target.value
+      } else {
+        val = e
+      }
+      console.log(val)
+      this.$emit('change', val)
+    },
+    setCurrentDictOptions(dictOptions) {
+      this.dictOptions = dictOptions
+    },
+    getCurrentDictOptions() {
+      return this.dictOptions
+    }
+  }
+}
+</script>
+
+<style scoped>
+</style>

+ 1 - 1
src/components/leftTree/index.vue

@@ -39,7 +39,7 @@ export default {
   components: {},
   data() {
     return {
-      iExpandedKeys: [],
+      iExpandedKeys: [100],
       loading: false,
       autoExpandParent: true,
       treeData: [],

+ 9 - 3
src/views/sys/dept/CheckAndEditModel.vue

@@ -14,18 +14,25 @@
       <a-form-model-item label="上级部门" prop="parentId">
         <a-tree-select
           v-model="model.parentId"
+          allow-clear
           tree-default-expand-all
           style="width: 100%"
           :tree-data="treeData"
-          :replaceFields="{children:'children', title:'label', key:'id', value: 'id' }"
+          :replace-fields="{children:'children', title:'label', key:'id', value: 'id' }"
         />
       </a-form-model-item>
       <a-form-model-item label="主管人员" prop="leader">
-        <a-input />
+        <sys-list-select-tag
+          v-model="model.userId"
+          dict-code="user"
+        />
       </a-form-model-item>
       <a-form-model-item label="部门描述">
         <a-textarea v-model="model.remark" placeholder="请输入" :rows="4" />
       </a-form-model-item>
+      <a-form-model-item label="排序">
+        <a-input-number style="width: 100%" v-model="model.orderNum" :min="0" :max="100000"/>
+      </a-form-model-item>
     </a-form-model>
   </j-modal>
 </template>
@@ -79,7 +86,6 @@ export default {
       this.treeData = []
       getAction(this.url.tree).then((res) => {
         if (res.code === 200) {
-          debugger
           this.treeData = res.data
         }
       })

+ 5 - 4
src/views/sys/dept/index.vue

@@ -22,7 +22,7 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-form-item>
           <a-input
-            v-model="queryParam.glb"
+            v-model="queryParam.deptName"
             style="width: 150px"
             placeholder="部门名称"
           />
@@ -48,8 +48,9 @@
         bordered
         row-key="deptId"
         :columns="columns"
+        :defaultExpandedRowKeys="[100]"
         :data-source="dataSource"
-        :pagination="ipagination"
+        :pagination="false"
         :loading="loading"
         :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
         @change="handleTableChange"
@@ -67,7 +68,7 @@
             编辑
           </a-button>
           <a-divider type="vertical" />
-          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.deptId)">
             <a-button size="small" type="danger">
               删除
             </a-button>
@@ -97,7 +98,7 @@ export default {
       // 表头
       columns: columns(this),
       url: {
-        list: '/system/dept/treeSelect',
+        list: '/system/dept/tree',
         delete: '/system/dept/',
         exportXlsUrl: '/exportXlsUrl',
         importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`

+ 2 - 2
src/views/sys/dept/indexColumns.js

@@ -2,8 +2,8 @@ function columns(vm) {
   const cols = [
     {
       title: '部门名称',
-      dataIndex: 'label',
-      key: 'label'
+      dataIndex: 'deptName',
+      key: 'deptName'
     },
     {
       title: '部门描述',

+ 1 - 1
src/views/sys/dict/DictItemList.vue

@@ -25,6 +25,7 @@
             size="middle"
             :columns="columns"
             :data-source="dataSource"
+            :pagination="false"
             :loading="loading"
             @change="handleTableChange"
           >
@@ -105,7 +106,6 @@ export default {
   },
   methods: {
     edit(record) {
-      debugger
       if (record.dictId) {
         this.dictId = record.dictId
       }

+ 2 - 2
src/views/sys/dict/index.vue

@@ -18,9 +18,9 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-form-item>
           <a-input
-            v-model="queryParam.glb"
+            v-model="queryParam.dictName"
             style="width: 250px"
-            placeholder="请输入字典名称或码值名称"
+            placeholder="请输入字典名称"
           />
         </a-form-item>
         <a-form-item>

+ 7 - 4
src/views/sys/job/CheckAndEditModel.vue

@@ -21,10 +21,13 @@
       <a-form-model-item label="职务描述">
         <a-textarea
           v-model="model.remark"
-          placeholder="Controlled autosize"
+          placeholder="请输入"
           :auto-size="{ minRows: 3, maxRows: 5 }"
         />
       </a-form-model-item>
+      <a-form-model-item label="排序">
+        <a-input-number style="width: 100%" v-model="model.roleSort" :min="0" :max="100000"/>
+      </a-form-model-item>
     </a-form-model>
   </j-modal>
 </template>
@@ -49,8 +52,8 @@ export default {
         roleName: [{ required: true, message: '请输入' }]
       },
       url: {
-        add: '/business/catenary/bus/zzdzxx/add',
-        edit: '/business/catenary/bus/zzdzxx/update'
+        add: '/system/role',
+        edit: '/system/role'
       }
     }
   },
@@ -84,7 +87,7 @@ export default {
     },
     saveData() {
       let url, type
-      if (!this.model.id) {
+      if (!this.model.roleId) {
         url = this.url.add
         type = 'post'
       } else {

+ 3 - 3
src/views/sys/job/index.vue

@@ -18,7 +18,7 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-form-item>
           <a-input
-            v-model="queryParam.glb"
+            v-model="queryParam.roleName"
             style="width: 150px"
             placeholder="职务名称"
           />
@@ -41,7 +41,7 @@
         ref="table"
         size="middle"
         bordered
-        row-key="id"
+        row-key="roleId"
         :columns="columns"
         :data-source="dataSource"
         :pagination="ipagination"
@@ -77,7 +77,7 @@
             </a-menu>
           </a-dropdown>
           <a-divider type="vertical" />
-          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.roleId)">
             <a-button size="small" type="danger">
               删除
             </a-button>

+ 47 - 35
src/views/sys/worker/CheckAndEditModel.vue

@@ -11,57 +11,54 @@
       <a-form-model-item label="员工姓名:" prop="nickName">
         <a-input v-model="model.nickName" />
       </a-form-model-item>
-      <a-form-model-item label="数据权限" prop="qj">
-        <j-dict-select-tag
-          type="radioButton"
-          v-model="model.zxqwqn"
-          dict-code="word_type"
-        />
+      <a-form-model-item label="登录账号:" prop="userName">
+        <a-input v-model="model.userName" />
       </a-form-model-item>
-      <a-form-model-item label="登录账号:" prop="zzh">
-        <a-input v-model="model.zzh" />
-      </a-form-model-item>
-      <a-form-model-item label="所属部门" prop="bm">
+      <a-form-model-item label="所属部门" prop="deptId">
         <a-tree-select
-          v-model="model.zzh"
-          show-search
-          style="width: 100%"
-          :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
-          placeholder="选择部门"
+          v-model="model.deptId"
           allow-clear
           tree-default-expand-all
-        ></a-tree-select>
+          style="width: 100%"
+          :tree-data="treeData"
+          :replace-fields="{children:'children', title:'label', key:'id', value: 'id' }"
+        />
       </a-form-model-item>
-      <a-form-model-item label="职工职务" prop="bm">
+      <a-form-model-item label="职工职务" prop="roleId">
+        <sys-list-select-tag
+          v-model="model.roleId"
+          dict-code="role"
+        />
       </a-form-model-item>
-      <a-form-model-item label="职工工号" prop="qj">
-        <a-input v-model="model.zzh" />
+      <a-form-model-item label="职工工号" prop="userName">
+        <a-input v-model="model.userName" />
       </a-form-model-item>
-      <a-form-model-item label="手机号码" prop="qj">
-        <a-input v-model="model.zzh" />
+      <a-form-model-item label="手机号码" prop="phonenumber">
+        <a-input v-model="model.phonenumber" />
       </a-form-model-item>
-      <a-form-model-item label="微信账号" prop="qj">
-        <a-input v-model="model.zzh" />
+      <a-form-model-item label="微信账号">
+        <a-input v-model="model.userName" />
       </a-form-model-item>
-      <a-form-model-item label="邮箱地址" prop="qj">
-        <a-input v-model="model.zzh" />
+      <a-form-model-item label="邮箱地址">
+        <a-input v-model="model.email" />
       </a-form-model-item>
-      <a-form-model-item label="出生日期" prop="zzxh">
-        <a-input v-model="model.zzh" />
+      <a-form-model-item label="出生日期">
+        <a-input v-model="model.userName" />
       </a-form-model-item>
-      <a-form-model-item label="性别" prop="zxqwqn">
+      <a-form-model-item label="性别">
         <j-dict-select-tag
+          v-model="model.sex"
           type="radioButton"
-          v-model="model.zxqwqn"
-          dict-code="word_type"
+          dict-code="sys_user_sex"
         />
       </a-form-model-item>
     </a-form-model>
   </j-modal>
 </template>
 <script>
-import { httpAction } from '@/api/request'
+import { getAction, httpAction } from '@/api/request'
 import JModal from '@/components/JModal'
+
 export default {
   name: 'CheckAndEditModel',
   components: {
@@ -72,31 +69,46 @@ export default {
       labelCol: { span: 4 },
       wrapperCol: { span: 19 },
       dataSource: [],
+      treeData: [],
       title: '',
       visible: false,
       isCheck: false,
       model: {},
       validatorRules: {
-        name: [{ required: true, message: '请输入' }],
-        type: [{ required: true, message: '请选择' }]
+        nickName: [{ required: true, message: '请输入' }],
+        deptId: [{ required: true, message: '请选择' }],
+        userName: [{ required: true, message: '请选择' }],
+        roleId: [{ required: true, message: '请选择' }],
+        phonenumber: [{ required: true, message: '请输入' }],
       },
       url: {
         add: '/system/user',
-        edit: '/system/user'
+        edit: '/system/user',
+        tree: '/system/dept/treeSelect'
       }
     }
   },
   created() {
   },
   methods: {
+    loadTree() {
+      this.treeData = []
+      getAction(this.url.tree).then((res) => {
+        if (res.code === 200) {
+          this.treeData = res.data
+        }
+      })
+    },
     add() {
       this.model = {}
       this.visible = true
+      this.loadTree()
     },
     edit(record) {
       debugger
       this.model = Object.assign({}, record)
       this.visible = true
+      this.loadTree()
     },
     close(isSubmit) {
       if (isSubmit) {
@@ -116,7 +128,7 @@ export default {
     },
     saveData() {
       let url, type
-      if (!this.model.id) {
+      if (!this.model.userId) {
         url = this.url.add
         type = 'post'
       } else {

+ 8 - 27
src/views/sys/worker/index.vue

@@ -16,26 +16,19 @@
               />
             </a-form-item>
             <a-form-item>
-              <j-dict-select-tag
-                v-model="queryParam.xb"
-                style="width: 150px"
+              <sys-list-select-tag
+                v-model="queryParam.roleId"
+                dict-code="role"
                 placeholder="选择职务"
-                dict-code="sj_plan_status"
+                style="width: 150px"
               />
             </a-form-item>
             <a-form-item>
               <j-dict-select-tag
-                v-model="queryParam.sb"
+                v-model="queryParam.status"
                 style="width: 150px"
                 placeholder="状态选项"
-                dict-code="sj_plan_status"
-              />
-            </a-form-item>
-            <a-form-item>
-              <a-input
-                v-model="queryParam.glb"
-                style="width: 150px"
-                placeholder="最后登录"
+                dict-code="sys_normal_disable"
               />
             </a-form-item>
             <a-form-item>
@@ -89,7 +82,7 @@
             ref="table"
             size="middle"
             bordered
-            row-key="id"
+            row-key="userId"
             :columns="columns"
             :data-source="dataSource"
             :pagination="ipagination"
@@ -126,9 +119,6 @@
                       <a href="javascript:;">重置密码</a>
                     </a-popconfirm>
                   </a-menu-item>
-                  <a-menu-item>
-                    <a href="javascript:;" @click="handlePer(record)">角色分配</a>
-                  </a-menu-item>
                   <a-menu-item>
                     <a href="javascript:;" @click="loginLog(record)">登录日志</a>
                   </a-menu-item>
@@ -146,7 +136,6 @@
             </span>
           </a-table>
           <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
-          <right-Tree ref="rightTree" @ok="updateQueryParam" />
         </div>
         <!-- table区域-end -->
         <!-- 表单区域 -->
@@ -160,13 +149,11 @@ import columns from './indexColumns'
 import CheckAndEditModel from './CheckAndEditModel'
 import leftTree from '@/components/leftTree'
 import { httpAction } from '@/api/request'
-import rightTree from './rightTree'
 
 export default {
   components: {
     CheckAndEditModel,
-    leftTree,
-    rightTree
+    leftTree
   },
   mixins: [listMixin],
   data() {
@@ -215,12 +202,6 @@ export default {
     },
     loginLog() {
     },
-    handlePer() {
-      this.$refs.rightTree.title = '操作权限'
-      this.$refs.rightTree.treeKey = '/treeKey'
-      this.$refs.rightTree.treeList = '/system/user/authRole'
-      this.$refs.rightTree.show()
-    },
     updateQueryParam(data) {
       this.queryParam.unit = data.id
       this.queryParam.unitName = data.departName