Procházet zdrojové kódy

新增问卷列表页

nihao před 5 roky
rodič
revize
b08d6eeb35

+ 1 - 0
src/layout/common/topInfo.vue

@@ -25,6 +25,7 @@ export default {
 </script>
 </script>
 
 
 <style lang="less" scoped>
 <style lang="less" scoped>
+.topInfos{}
 /deep/.van-nav-bar {
 /deep/.van-nav-bar {
   background: #2c69fe;
   background: #2c69fe;
 }
 }

+ 5 - 10
src/router/index.js

@@ -13,33 +13,33 @@ const routes = [
   // 班级名单
   // 班级名单
   {
   {
     path: '/class/index',
     path: '/class/index',
-    name: 'class',
     component: () => import('../views/class/index.vue'),
     component: () => import('../views/class/index.vue'),
   },
   },
   // 班级名单-上成绩
   // 班级名单-上成绩
   {
   {
     path: '/class/achieve',
     path: '/class/achieve',
-    name: 'class',
     component: () => import('../views/class/achieve.vue'),
     component: () => import('../views/class/achieve.vue'),
   },
   },
   // 班级名单-分组
   // 班级名单-分组
   {
   {
     path: '/class/group',
     path: '/class/group',
-    name: 'class',
     component: () => import('../views/class/group.vue'),
     component: () => import('../views/class/group.vue'),
   },
   },
   // 班级名单-加入组
   // 班级名单-加入组
   {
   {
     path: '/class/joinGroup',
     path: '/class/joinGroup',
-    name: 'class',
     component: () => import('../views/class/joinGroup.vue'),
     component: () => import('../views/class/joinGroup.vue'),
   },
   },
   // 问卷调查
   // 问卷调查
   {
   {
     path: '/question/index',
     path: '/question/index',
-    name: 'question',
     component: () => import('../views/question/index.vue'),
     component: () => import('../views/question/index.vue'),
   },
   },
+  // 问卷调查
+  {
+    path: '/question/question',
+    component: () => import('../views/question/question.vue'),
+  },
   // 个人信息
   // 个人信息
   {
   {
     path: '/user/index',
     path: '/user/index',
@@ -49,32 +49,27 @@ const routes = [
   // 个人信息-信息详情
   // 个人信息-信息详情
   {
   {
     path: '/user/personalDetail',
     path: '/user/personalDetail',
-    name: 'user',
     component: () => import('../views/user/personalDetail.vue'),
     component: () => import('../views/user/personalDetail.vue'),
   },
   },
   // 个人信息-请假管理
   // 个人信息-请假管理
   {
   {
     path: '/user/leave',
     path: '/user/leave',
-    name: 'user',
     component: () => import('../views/user/leave.vue'),
     component: () => import('../views/user/leave.vue'),
   },
   },
   // 个人信息-添加请假
   // 个人信息-添加请假
   {
   {
     path: '/user/leaveDetail',
     path: '/user/leaveDetail',
-    name: 'user',
     meta: { title: '请假', sub: '管理' },
     meta: { title: '请假', sub: '管理' },
     component: () => import('../views/user/leaveDetail.vue'),
     component: () => import('../views/user/leaveDetail.vue'),
   },
   },
   // 个人信息-请假结果
   // 个人信息-请假结果
   {
   {
     path: '/user/leaveReason',
     path: '/user/leaveReason',
-    name: 'user',
     component: () => import('../views/user/leaveReason.vue'),
     component: () => import('../views/user/leaveReason.vue'),
   },
   },
   // 个人信息-考勤管理
   // 个人信息-考勤管理
   {
   {
     path: '/user/checkWork',
     path: '/user/checkWork',
-    name: 'user',
     component: () => import('../views/user/checkWork.vue'),
     component: () => import('../views/user/checkWork.vue'),
   },
   },
 ];
 ];

+ 27 - 13
src/views/question/index.vue

@@ -6,7 +6,7 @@
           <topInfo></topInfo>
           <topInfo></topInfo>
         </el-col>
         </el-col>
         <el-col :span="24" class="main">
         <el-col :span="24" class="main">
-          <questionInfo></questionInfo>
+          <questionnaireInfo :questionnaireList="questionnaireList"></questionnaireInfo>
         </el-col>
         </el-col>
         <el-col :span="24" class="foot">
         <el-col :span="24" class="foot">
           <footInfo></footInfo>
           <footInfo></footInfo>
@@ -19,7 +19,7 @@
 <script>
 <script>
 import topInfo from '@/layout/common/topInfo.vue';
 import topInfo from '@/layout/common/topInfo.vue';
 import footInfo from '@/layout/common/footInfo.vue';
 import footInfo from '@/layout/common/footInfo.vue';
-import questionInfo from '@question/src/views/index.vue';
+import questionnaireInfo from '@question/src/views/index.vue';
 import { createNamespacedHelpers, mapGetters } from 'vuex';
 import { createNamespacedHelpers, mapGetters } from 'vuex';
 const { mapActions: mapQuestion } = createNamespacedHelpers('questionnaire');
 const { mapActions: mapQuestion } = createNamespacedHelpers('questionnaire');
 export default {
 export default {
@@ -28,25 +28,39 @@ export default {
   components: {
   components: {
     topInfo, //头部导航
     topInfo, //头部导航
     footInfo, //底部导航
     footInfo, //底部导航
-    questionInfo, //问卷调查
+    questionnaireInfo, //问卷调查
   },
   },
   data: () => ({
   data: () => ({
-    info: {},
+    questionnaireList: [],
   }),
   }),
-  created() {},
+  created() {
+    this.searchNaireList();
+  },
   computed: {},
   computed: {},
   methods: {
   methods: {
     ...mapQuestion(['query', 'fetch', 'update']),
     ...mapQuestion(['query', 'fetch', 'update']),
-    async searchInfo({ ...info } = {}) {
+    async searchNaireList({ ...info } = {}) {
       const res = await this.query({ ...info });
       const res = await this.query({ ...info });
-      for (const val of res.data) {
-        const result = await this.fetch(val.id);
-        // console.log(result.data.question);
-        console.log(result.data);
-        this.$set(this, `info`, result.data);
-        this.$set(this.info, `question`, result.data.question);
-      }
+      this.$set(this, `questionnaireList`, res.data);
     },
     },
   },
   },
 };
 };
 </script>
 </script>
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+  background-color: #f9fafc;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+  position: relative;
+  z-index: 999;
+}
+.main {
+  min-height: 570px;
+  margin: 0 0 50px 0;
+}
+</style>

+ 80 - 0
src/views/question/question.vue

@@ -0,0 +1,80 @@
+<template>
+  <div id="question">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <topInfo></topInfo>
+        </el-col>
+        <el-col :span="24" class="main">
+          <questionInfo :info="info" :form="form" @submit="submit"></questionInfo>
+        </el-col>
+        <el-col :span="24" class="foot">
+          <footInfo></footInfo>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import topInfo from '@/layout/common/topInfo.vue';
+import footInfo from '@/layout/common/footInfo.vue';
+import questionInfo from '@question/src/views/question.vue';
+import { createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: mapQuestion } = createNamespacedHelpers('questionnaire');
+export default {
+  name: 'question',
+  props: {},
+  components: {
+    topInfo, //头部导航
+    footInfo, //底部导航
+    questionInfo, //问卷调查
+  },
+  data: () => ({
+    info: {
+      question: [],
+    },
+    form: {
+      checkList: [],
+      // radio: '',
+      // answer: '',
+    },
+  }),
+  created() {
+    this.searchInfo();
+  },
+  computed: {
+    id() {
+      return this.$route.query.id;
+    },
+  },
+  methods: {
+    ...mapQuestion(['query', 'fetch', 'update']),
+    async searchInfo({ ...info } = {}) {
+      const result = await this.fetch(this.id);
+      this.$set(this, `info`, result.data);
+    },
+    submit(form) {
+      console.log(form);
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+  background-color: #f9fafc;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+  position: relative;
+  z-index: 999;
+}
+.main {
+  min-height: 570px;
+  margin: 0 0 50px 0;
+}
+</style>