lrf402788946 il y a 4 ans
Parent
commit
b0bf566a6c
2 fichiers modifiés avec 31 ajouts et 17 suppressions
  1. 2 0
      src/store/index.js
  2. 29 17
      src/views/personnel/driver.vue

+ 2 - 0
src/store/index.js

@@ -8,6 +8,7 @@ import role from '@f/store/auth/role';
 import userMenu from '@f/store/auth/userMenu';
 import login from '@f/store/auth/login';
 import dictionary from '@f/store/system/dictionary';
+import driver from '@f/store/personnel/driver';
 import util from '@f/store/util';
 import { menuParams, setMenuParams } from '@f/store/auth/menuParams';
 
@@ -25,5 +26,6 @@ export default new Vuex.Store({
     role,
     userMenu,
     dictionary,
+    driver,
   },
 });

+ 29 - 17
src/views/personnel/driver.vue

@@ -14,13 +14,14 @@
       </template>
     </data-table>
     <el-dialog title="司机信息" :visible.sync="dialog" center width="40%">
-      <data-form v-model="form" :fields="fields" @save="toSave"> </data-form>
+      <data-form v-model="form" :rules="rules" :fields="fields" @save="toSave"> </data-form>
     </el-dialog>
   </div>
 </template>
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: util } = createNamespacedHelpers('util');
 export default {
   name: 'driver',
   props: {},
@@ -41,7 +42,7 @@ export default {
         },
       ],
       fields: [
-        { label: '姓名', required: true, model: 'name', filter: true },
+        { label: '姓名', required: false, model: 'name', filter: true },
         { required: true, label: '联系电话', model: 'mobile', filter: true },
         { required: true, label: '身份证号', model: 'id_number', filter: true },
         { required: true, label: '驾驶证号', model: 'drive_card' },
@@ -54,27 +55,32 @@ export default {
       ],
       statusList: [],
       list: [],
+      rules: {
+        id_card: [{ min: 18, max: 18, message: '请输入18位身份证号', trigger: 'blur' }],
+      },
       total: 0,
       form: {},
     };
   },
-  created() {},
+  created() {
+    this.toGetModel();
+  },
   methods: {
+    ...util(['getModel']),
     async search({ skip = 0, limit = 10 }) {},
-    async toSave({ data }) {
-      console.log(data);
-      // let duplicate = _.cloneDeep(this.form);
-      // const { id } = this.form;
-      // let res;
-      // if (id) {
-      //   res = await this.update(duplicate);
-      // } else {
-      //   res = await this.create(duplicate);
-      // }
-      // if (this.$checkRes(res, '保存成功', '保存失败')) {
-      //   this.toReturn();
-      //   this.search();
-      // }
+    async toSave() {
+      let duplicate = _.cloneDeep(this.form);
+      const { id } = this.form;
+      let res;
+      if (id) {
+        res = await this.update(duplicate);
+      } else {
+        res = await this.create(duplicate);
+      }
+      if (this.$checkRes(res, '保存成功', '保存失败')) {
+        this.toReturn();
+        this.search();
+      }
     },
     async toEdit({ data }) {
       this.dialog = true;
@@ -94,6 +100,12 @@ export default {
       this.dialog = false;
       this.form = {};
     },
+    async toGetModel() {
+      let res = await this.getModel('driver');
+      if (this.$checkRes(res)) {
+        this.$set(this, `fields`, res);
+      }
+    },
   },
   computed: {
     ...mapState(['user', 'menuParams']),