Преглед на файлове

更新问卷详情页面

wuhongyuq преди 5 години
родител
ревизия
939a4b3dc7
променени са 4 файла, в които са добавени 135 реда и са изтрити 2 реда
  1. 10 0
      src/router/index.js
  2. 11 2
      src/views/Itembank/detail.vue
  3. 65 0
      src/views/questionnaire/detail.vue
  4. 49 0
      src/views/questionnaire/index.vue

+ 10 - 0
src/router/index.js

@@ -30,6 +30,16 @@ const routes = [
         name: 'index_index',
         component: () => import('@/views/Itembank/index.vue'),
       },
+      {
+        path: 'questionnaire/index',
+        name: 'index_index',
+        component: () => import('@/views/questionnaire/index.vue'),
+      },
+      {
+        path: 'questionnaire/detail',
+        name: 'teacher_detail',
+        component: () => import('@/views/questionnaire/detail.vue'),
+      },
     ],
   },
 ];

+ 11 - 2
src/views/Itembank/detail.vue

@@ -58,8 +58,17 @@ export default {
     },
   }),
   created() {},
-  computed: {},
-  methods: {},
+  computed: {
+    isNew() {
+      return this.$route.query.id ? false : true;
+    },
+  },
+  methods: {
+    async handleSave({ isNew, data }) {
+      console.log(isNew);
+      console.log(data);
+    },
+  },
 };
 </script>
 

+ 65 - 0
src/views/questionnaire/detail.vue

@@ -0,0 +1,65 @@
+<template>
+  <div id="detail">
+    <detail-frame title="问卷详情页" returns="./index">
+      <data-form :fields="fields" :rules="rules" @save="handleSave" :isNew="isNew">
+        <template #custom="{ item, form, fieldChange }">
+          <el-select v-model="form[item.model]" multiple placeholder="请选择">
+            <el-option v-for="item in options" :key="item.code" :label="item.label" :value="item.code"> </el-option>
+          </el-select>
+        </template>
+      </data-form>
+    </detail-frame>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@frame/layout/admin/detail-frame';
+import dataForm from '@frame/components/form';
+export default {
+  metaInfo: { title: '问卷详情页' },
+  name: 'detail',
+  props: {},
+  components: {
+    detailFrame,
+    dataForm,
+  },
+  data: () => ({
+    options: [
+      {
+        code: '选项4',
+        label: '龙须面',
+      },
+      {
+        code: '选项5',
+        label: '北京烤鸭',
+      },
+    ],
+    code: [],
+
+    fields: [
+      { label: '序号', required: true, model: 'id' },
+      { label: '名称', required: true, model: 'name' },
+      { label: '题名', required: true, model: 'code', custom: true },
+    ],
+    rules: {
+      id: [{ required: true, message: '请输入序号' }],
+      name: [{ required: true, message: '请输入名称' }],
+      code: [{ required: true, message: '请选择题名' }],
+    },
+  }),
+  created() {},
+  computed: {
+    isNew() {
+      return this.$route.query.id ? false : true;
+    },
+  },
+  methods: {
+    async handleSave({ isNew, data }) {
+      console.log(isNew);
+      console.log(data);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 49 - 0
src/views/questionnaire/index.vue

@@ -0,0 +1,49 @@
+<template>
+  <div id="index">
+    <list-frame title="问卷列表页" @query="search" :filter="filFields">
+      <data-table :fields="fields" :data="index" :opera="opera" @edit="toEdit"></data-table>
+    </list-frame>
+  </div>
+</template>
+
+<script>
+import listFrame from '@frame/layout/admin/list-frame';
+import dataTable from '@frame/layout/admin/data-table';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    listFrame,
+    dataTable,
+  },
+  data: () => ({
+    opera: [
+      {
+        label: '编辑',
+        icon: 'el-icon-edit',
+        method: 'edit',
+      },
+    ],
+    fields: [
+      { label: '问卷序号', prop: 'id' },
+      { label: '问卷名称', prop: 'name' },
+      { label: 'code', prop: 'code' },
+    ],
+    index: [
+      { id: '01', name: '问卷1', code: '12' },
+      { id: '02', name: '问卷2', code: '12' },
+      { id: '03', name: '问卷3', code: '12' },
+    ],
+    filFields: [
+      { label: '问卷名', model: 'name' },
+      { label: '问卷序号', model: 'id' },
+    ],
+  }),
+
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>