lrf402788946 5 years ago
parent
commit
fee6b259ea
2 changed files with 40 additions and 17 deletions
  1. 38 15
      src/views/work/detail.vue
  2. 2 2
      src/views/work/index.vue

+ 38 - 15
src/views/work/detail.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="detail">
-    <detail-frame :title="mainTitle" returns="/work/index">
+    <detail-frame :title="mainTitle" :returns="toReturns">
       <data-form :data="info" :fields="fields" :rules="rules" @save="handleSave" :isNew="isNew">
         <template #options>
           <el-option v-for="(item, index) in subjectList" :key="index" :label="item.name" :value="item.code"></el-option>
@@ -28,20 +28,31 @@ export default {
     detailFrame,
     dataForm,
   },
-  data: () => ({
-    info: { status: '1' },
-    fields: [
-      { label: '科目', required: true, model: 'code', type: 'select' },
-      { label: '标题', required: true, model: 'name' },
-      { label: '使用状态', required: true, model: 'status', type: 'radio' },
-    ],
-    rules: {
-      code: [{ required: true, message: '请选择科目' }],
-      name: [{ required: true, message: '请输入标题' }],
-      status: [{ required: true, message: '请选择使用状态' }],
-    },
-    subjectList: [],
-  }),
+  data: function() {
+    return {
+      info: { status: '1' },
+      fields: [
+        {
+          label: '科目',
+          required: true,
+          model: 'code',
+          type: 'text',
+          format: i => {
+            let r = this.subjectList.find(f => f.code == i);
+            if (r) return r.name;
+          },
+        },
+        { label: '标题', required: true, model: 'name' },
+        { label: '使用状态', required: true, model: 'status', type: 'radio' },
+      ],
+      rules: {
+        code: [{ required: true, message: '请选择科目' }],
+        name: [{ required: true, message: '请输入标题' }],
+        status: [{ required: true, message: '请选择使用状态' }],
+      },
+      subjectList: [],
+    };
+  },
   created() {
     this.getOtherList();
   },
@@ -63,6 +74,9 @@ export default {
       let main = meta.title || '';
       return main;
     },
+    code() {
+      return this.$route.query.code;
+    },
   },
   watch: {
     isNew: {
@@ -72,6 +86,12 @@ export default {
         else this.search();
       },
     },
+    code: {
+      immediate: true,
+      handler(val) {
+        this.$set(this.info, 'code', val);
+      },
+    },
   },
   methods: {
     ...mapActions(['fetch', 'create', 'update']),
@@ -103,6 +123,9 @@ export default {
       let res = this.subjectList.filter(fil => fil.id === code);
       if (res.length > 0) return res[0].name;
     },
+    toReturns() {
+      window.history.go(-1);
+    },
   },
 };
 </script>

+ 2 - 2
src/views/work/index.vue

@@ -6,7 +6,7 @@
       :total="total"
       :needFilter="false"
       :needPag="false"
-      @add="$router.push({ path: '/work/detail' })"
+      @add="$router.push({ path: '/work/detail', query: { code } })"
       :returns="toReturns"
     >
       <template #options="{item}">
@@ -93,7 +93,7 @@ export default {
       this.$router.push({ path: '/work/look', query: { id: data.id } });
     },
     toReturns() {
-      this.$router.push({ path: '/subject/index' });
+      window.history.go(-1);
     },
     async toDelete({ data }) {
       const res = await this.delete(data.id);