Browse Source

更新评分相关

wuhongyuq 5 years ago
parent
commit
ec0e757d3e

+ 4 - 0
src/layout/user/clickBtn.vue

@@ -14,6 +14,10 @@
         <el-col :span="24" class="native" v-if="this.user.type === '4'">
           <van-cell is-link @click="$router.push({ path: '/user/homework' })">作业管理</van-cell>
         </el-col>
+
+        <el-col :span="24" class="native" v-if="this.user.type === '4'">
+          <van-cell is-link @click="$router.push({ path: '/user/socre' })">评分</van-cell>
+        </el-col>
       </el-col>
     </el-row>
   </div>

+ 69 - 0
src/layout/user/pingfen.vue

@@ -0,0 +1,69 @@
+<template>
+  <div id="peaceAchieve">
+    <el-row>
+      <el-col :span="24" class="info">
+        <el-form ref="form" :model="form" label-width="80px">
+          <el-form-item label="学生">
+            <el-select v-model="form.stuid" placeholder="请选择学生" style="width: 200px;">
+              <el-option v-for="item in stulist" :key="item.value" :label="item.name" :value="item.id"> </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="课程">
+            <el-select v-model="form.lessonid" placeholder="请选择课程" style="width: 200px;">
+              <el-option v-for="item in lessonlists" :key="item.value" :label="item.name" :value="item.subid"> </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="平时分数">
+            <el-input v-model="form.score" style="width: 200px;"></el-input>
+          </el-form-item>
+
+          <el-form-item label="评价" prop="desc">
+            <el-input type="textarea" v-model="form.remark" style="width: 200px;"></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="onSubmit" style="text-align:center;">评分</el-button>
+          </el-form-item>
+        </el-form>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'peaceAchieve',
+  props: {
+    form: null,
+    stulist: null,
+    lessonlists: null,
+  },
+  components: {},
+  data: () => ({
+    username: '',
+  }),
+  created() {},
+  computed: {},
+  methods: {
+    showBtn(id) {
+      this.$emit('showBtn', id);
+    },
+    onConfirm(value) {
+      this.$emit('onConfirm', value);
+    },
+
+    onSubmit(form) {
+      console.log(this.form);
+      this.form.lessonid;
+      this.$emit('onSubmit', this.form);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.info {
+  padding: 30px;
+}
+</style>

+ 46 - 0
src/layout/user/socrecontext.vue

@@ -0,0 +1,46 @@
+<template>
+  <div id="achieve">
+    <el-row>
+      <el-col :span="24">
+        <pingfen v-on="$listeners" :form="form" :lessonlists="lessonlists" :stulist="stulist"></pingfen>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import pingfen from '@/layout/user/pingfen.vue';
+
+export default {
+  name: 'achieve',
+  props: {
+    peaceAchieveList: null, //平时成绩
+    showPicker: null, //平時成绩显示
+    peaceScore: null, //平时成绩分数
+    achieveList: null, //作业成绩
+    show: null, //显示弹框
+    form: null, //修改form
+    stulist: null,
+    lessonlists: null,
+  },
+  components: {
+    pingfen, //评分
+  },
+  data: () => ({
+    active: 0,
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.van-tabs__line {
+  width: 50% !important;
+  background-color: #405ffe;
+}
+/deep/.van-tab--active {
+  color: #405ffe;
+}
+</style>

+ 8 - 0
src/router/index.js

@@ -47,6 +47,7 @@ const routes = [
     meta: { title: '教师评分', isleftarrow: true },
     component: () => import('../views/teacherscore/index.vue'),
   },
+
   // 班级名单-上成绩
   {
     path: '/class/achieve',
@@ -152,6 +153,13 @@ const routes = [
     meta: { title: '上传作业', isleftarrow: true },
     component: () => import('../views/user/chuanzuoye.vue'),
   },
+
+  //个人信息-查看评分
+  {
+    path: '/user/socre',
+    meta: { title: '查看评分', isleftarrow: true },
+    component: () => import('../views/user/socre.vue'),
+  },
   //正在登陆
   {
     path: '/login',

+ 156 - 0
src/views/user/socre.vue

@@ -0,0 +1,156 @@
+<template>
+  <div id="achieve">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <!-- <topInfo></topInfo> -->
+          <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
+        </el-col>
+        <el-col :span="24" class="main">
+          <socrecontext :stulist="stulist" :form="form" @onSubmit="submit" :lessonlists="lessonlists"></socrecontext>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import NavBar from '@/layout/common/topInfo.vue';
+import socrecontext from '@/layout/user/socrecontext.vue';
+import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: mapStudent } = createNamespacedHelpers('student');
+const { mapActions: mapClass } = createNamespacedHelpers('classes');
+const { mapActions: mapScore } = createNamespacedHelpers('score');
+const { mapActions: maplesson } = createNamespacedHelpers('lesson');
+
+export default {
+  name: 'achieve',
+  props: {},
+  components: {
+    NavBar, //头部导航
+    socrecontext, //班级学生成绩列表
+  },
+  data: () => ({
+    showPicker: false,
+    stulist: [],
+    lessonlists: [],
+    achieveList: [],
+    show: false,
+    form: {},
+    lessons: [
+      {
+        day1: '测试科目1',
+        day2: '测试科目2',
+        day3: '测试科目3',
+        day4: '测试科目4',
+        subid1: '1',
+        subid2: '2',
+        subid3: '3',
+        subid4: '4',
+        teacherid1: '1234556',
+        teacherid2: '345456676',
+        teacherid3: '35456654',
+        teacherid4: '354563346',
+      },
+    ],
+
+    title: '',
+    isleftarrow: '',
+    transitionName: 'fade',
+    navShow: true,
+    // 修改
+  }),
+  created() {
+    this.search();
+  },
+  computed: {
+    ...mapState(['user']),
+    classid() {
+      return this.$route.query.classid;
+    },
+  },
+  mounted() {
+    this.title = this.$route.meta.title;
+    this.isleftarrow = this.$route.meta.isleftarrow;
+  },
+  watch: {
+    $route(to, from) {
+      this.title = to.meta.title;
+      this.isleftarrow = to.meta.isleftarrow;
+    },
+  },
+  methods: {
+    ...mapStudent({ list: 'query', add: 'create', fet: 'fetch', updates: 'update' }),
+
+    ...mapScore({ scorelist: 'query', scorecreate: 'create' }),
+    ...maplesson({ lessonfetch: 'fetch', lessonlist: 'query' }),
+
+    // 平时成绩学生名单查询+作业成绩学生名单查询
+    async search() {
+      let classid;
+      if (this.user.type === '1') classid = this.classid;
+      else classid = this.user.classid;
+      const res = await this.list({ classid });
+      const score = await this.scorelist({ classid });
+      const lesson = await this.lessonlist({ classid });
+      for (const acc of this.lessons) {
+        console.log(acc);
+        let day1 = acc.day1;
+        let day2 = acc.day2;
+        let day3 = acc.day3;
+        let day4 = acc.day4;
+        let subid1 = acc.subid1;
+        let subid2 = acc.subid2;
+        let subid3 = acc.subid3;
+        let subid4 = acc.subid4;
+        let teacher1 = acc.teacherid1;
+        let teacher2 = acc.teacherid2;
+        let teacher3 = acc.teacherid3;
+        let teacher4 = acc.teacherid4;
+        let news = [
+          { name: day1, subid: subid1, teacherid: teacher1 },
+          { name: day2, subid: subid2, teacherid: teacher2 },
+          { name: day3, subid: subid3, teacherid: teacher3 },
+          { name: day4, subid: subid4, teacherid: teacher4 },
+        ];
+        this.lessonlists = news;
+        console.log(this.lessonlists);
+      }
+
+      console.log();
+
+      console.log(lesson.data);
+      this.$set(this, `stulist`, res.data);
+    },
+
+    async submit() {
+      console.log(this.lessonlists);
+      var result = this.lessonlists.filter(item => item.subid === this.form.lessonid);
+      for (const acc of result) {
+        console.log(acc.teacherid);
+        this.form.teacherid = acc.teacherid;
+        console.log(this.form);
+      }
+
+      let data = this.form;
+      let res = await this.scorecreate(data);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+  background-color: #eeeeee;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+}
+.main {
+  min-height: 570px;
+}
+</style>