guhongwei 3 年之前
父節點
當前提交
8e29f6459c
共有 3 個文件被更改,包括 54 次插入50 次删除
  1. 49 28
      src/views/menu/user/index.vue
  2. 2 10
      src/views/menu/user/parts/detail-1.vue
  3. 3 12
      src/views/menu/user/parts/info-1.vue

+ 49 - 28
src/views/menu/user/index.vue

@@ -3,24 +3,25 @@
     <el-row>
     <el-row>
       <el-col :span="24" class="main animate__animated animate__backInRight">
       <el-col :span="24" class="main animate__animated animate__backInRight">
         <el-col class="one">
         <el-col class="one">
-          <el-button type="primary" size="mini" @click="toAdd()">添加用户</el-button>
-        </el-col>
-        <el-col class="two">
-          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @view="toView" @edit="toEdit" @reset="toReset" @del="toDel">
+          <data-table @query="search" :fields="fields" :opera="opera" :data="list" :total="total" @view="toView" @edit="toEdit" @reset="toReset" @del="toDel">
+            <template #selfbtn>
+              <el-button type="primary" size="mini" @click="toAdd()">添加用户</el-button>
+            </template>
           </data-table>
           </data-table>
         </el-col>
         </el-col>
       </el-col>
       </el-col>
     </el-row>
     </el-row>
     <e-dialog :dialog="dialog" @toClose="toClose">
     <e-dialog :dialog="dialog" @toClose="toClose">
       <template slot="info">
       <template slot="info">
-        <detail-1 v-if="dialog.type == '1'" :form="form" @onSubmit="onSubmit"></detail-1>
-        <info-1 :form="info" v-else></info-1>
+        <detail-1 v-if="dialog.type == '1'" :form="form" :typeList="typeList" @toSave="onSubmit"></detail-1>
+        <info-1 v-else-if="dialog.type == '2'" :form="form" :typeList="typeList"></info-1>
       </template>
       </template>
     </e-dialog>
     </e-dialog>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
+const { type } = require('@common/src/layout/deploy/dict');
 import { mapState, createNamespacedHelpers } from 'vuex';
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
 export default {
   name: 'index',
   name: 'index',
@@ -33,20 +34,33 @@ export default {
     return {
     return {
       // 数据项
       // 数据项
       fields: [
       fields: [
-        { label: '名称', prop: 'name' },
-        { label: '电话', prop: 'phone' },
-        { label: '邮箱', prop: 'email' },
+        {
+          label: '用户类别',
+          prop: 'type',
+          format: (item) => {
+            let data = this.typeList.find((i) => i.value == item);
+            if (data) return data.label;
+          },
+        },
+        { label: '姓名', prop: 'name', filter: true },
+        { label: '电话', prop: 'phone', filter: true },
+        { label: '电子邮箱', prop: 'email' },
+        { label: '联系地址', prop: 'address' },
+        { label: '部门', prop: 'dept' },
+        { label: '职务', prop: 'zw' },
+        { label: '工作单位', prop: 'company' },
       ],
       ],
       total: 0,
       total: 0,
       opera: [
       opera: [
-        { label: '详细信息', method: 'view' },
-        { label: '信息变更', method: 'edit' },
+        { label: '详', method: 'view' },
+        { label: '修改', method: 'edit' },
         { label: '密码重置', method: 'reset', confirm: true },
         { label: '密码重置', method: 'reset', confirm: true },
-        { label: '删除信息', method: 'del', type: 'danger', confirm: true },
+        { label: '删除', method: 'del', type: 'danger', confirm: true },
       ],
       ],
       // 列表
       // 列表
       list: [
       list: [
         {
         {
+          type: '0',
           id: '1111',
           id: '1111',
           name: '法外狂徒张三',
           name: '法外狂徒张三',
           phone: '12345678901',
           phone: '12345678901',
@@ -59,40 +73,47 @@ export default {
       ],
       ],
       // 弹框
       // 弹框
       dialog: { title: '信息管理', show: false, type: '1' },
       dialog: { title: '信息管理', show: false, type: '1' },
-      // 添加表单
+      // 表单
       form: {},
       form: {},
-      //详情
-      info: {},
+      // 用户类别
+      typeList: type,
     };
     };
   },
   },
   created() {},
   created() {},
   methods: {
   methods: {
-    search() {},
-    // 添加
-    toAdd() {
-      this.dialog = { title: '信息管理', show: true, type: '1', widths: '40%' };
-    },
-    // 提交保存
-    onSubmit(data) {
-      this.toClose();
-    },
+    search({ skip = 0, limit = 10, ...info } = {}) {},
     // 详细信息
     // 详细信息
     toView({ data }) {
     toView({ data }) {
-      this.$set(this, `info`, data);
+      this.$set(this, `form`, data);
       this.dialog = { title: '详细信息', show: true, type: '2', widths: '40%' };
       this.dialog = { title: '详细信息', show: true, type: '2', widths: '40%' };
     },
     },
-    // 信息变更
+    // 添加
+    toAdd() {
+      this.dialog = { title: '信息管理', show: true, type: '1', widths: '40%' };
+    },
+    // 修改
     toEdit({ data }) {
     toEdit({ data }) {
       this.$set(this, `form`, data);
       this.$set(this, `form`, data);
       this.dialog = { title: '信息管理', show: true, type: '1', widths: '40%' };
       this.dialog = { title: '信息管理', show: true, type: '1', widths: '40%' };
     },
     },
+    // 提交保存
+    onSubmit({ data }) {
+      console.log(data);
+      // this.toClose();
+    },
     // 密码重置
     // 密码重置
-    toReset() {},
+    toReset({ data }) {
+      console.log(data);
+    },
     // 删除信息
     // 删除信息
-    toDel() {},
+    toDel({ data }) {
+      console.log(data);
+    },
     // 关闭弹框
     // 关闭弹框
     toClose() {
     toClose() {
+      this.form = {};
       this.dialog = { show: false };
       this.dialog = { show: false };
+      this.search();
     },
     },
   },
   },
   computed: {
   computed: {

+ 2 - 10
src/views/menu/user/parts/detail-1.vue

@@ -20,6 +20,7 @@ export default {
   name: 'detail-1',
   name: 'detail-1',
   props: {
   props: {
     form: { type: Object },
     form: { type: Object },
+    typeList: { type: Array },
   },
   },
   components: {},
   components: {},
   data: function () {
   data: function () {
@@ -44,21 +45,12 @@ export default {
         zw: [{ required: true, message: '请输入职务' }],
         zw: [{ required: true, message: '请输入职务' }],
         company: [{ required: true, message: '请输入工作单位' }],
         company: [{ required: true, message: '请输入工作单位' }],
       },
       },
-      typeList: [
-        { label: '超级管理员', value: '0' },
-        { label: '科室人员', value: '1' },
-        { label: '办公室人员', value: '2' },
-        { label: '采购部门', value: '3' },
-        { label: '入库管理部门', value: '4' },
-        { label: '财务部门', value: '5' },
-        { label: '供货部门', value: '6' },
-      ],
     };
     };
   },
   },
   created() {},
   created() {},
   methods: {
   methods: {
     toSave({ data }) {
     toSave({ data }) {
-      this.$emit('onSubmit', data);
+      this.$emit('toSave', { data: data });
     },
     },
   },
   },
   computed: {
   computed: {

+ 3 - 12
src/views/menu/user/parts/info-1.vue

@@ -2,7 +2,7 @@
   <div id="info-1">
   <div id="info-1">
     <el-row>
     <el-row>
       <el-col :span="24" class="main">
       <el-col :span="24" class="main">
-        <data-form :fields="fields" :data="form" :rules="rules" :needSave="false">
+        <data-form :fields="fields" :data="form" :rules="{}" :needSave="false">
           <template #options="{ item }">
           <template #options="{ item }">
             <template v-if="item.model === 'type'">
             <template v-if="item.model === 'type'">
               <el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
               <el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
@@ -20,11 +20,13 @@ export default {
   name: 'info-1',
   name: 'info-1',
   props: {
   props: {
     form: { type: Object },
     form: { type: Object },
+    typeList: { type: Array },
   },
   },
   components: {},
   components: {},
   data: function () {
   data: function () {
     return {
     return {
       fields: [
       fields: [
+        { label: '用户类别', model: 'type', type: 'select', readonly: true },
         { label: '姓名', model: 'name', readonly: true },
         { label: '姓名', model: 'name', readonly: true },
         { label: '电话', model: 'phone', readonly: true },
         { label: '电话', model: 'phone', readonly: true },
         { label: '电子邮箱', model: 'email', readonly: true },
         { label: '电子邮箱', model: 'email', readonly: true },
@@ -32,17 +34,6 @@ export default {
         { label: '部门', model: 'dept', readonly: true },
         { label: '部门', model: 'dept', readonly: true },
         { label: '职务', model: 'zw', readonly: true },
         { label: '职务', model: 'zw', readonly: true },
         { label: '工作单位', model: 'company', readonly: true },
         { label: '工作单位', model: 'company', readonly: true },
-        { label: '用户类别', model: 'type', type: 'select', readonly: true },
-      ],
-      rules: {},
-      typeList: [
-        { label: '超级管理员', value: '0' },
-        { label: '科室人员', value: '1' },
-        { label: '办公室人员', value: '2' },
-        { label: '采购部门', value: '3' },
-        { label: '入库管理部门', value: '4' },
-        { label: '财务部门', value: '5' },
-        { label: '供货部门', value: '6' },
       ],
       ],
     };
     };
   },
   },