Ver código fonte

班主任指派职务更新

wuhongyuq 5 anos atrás
pai
commit
d17ada3025

+ 3 - 1
src/layout/class/achieve.vue

@@ -7,7 +7,7 @@
             <peaceAchieve v-on="$listeners" :formscore="formscore" :peaceAchieveList="peaceAchieveList" :score="score"></peaceAchieve>
           </van-tab>
           <van-tab title="作业成绩">
-            <homeworkAchiece v-on="$listeners" :achieveList="achieveList" :show="show" :form="form"></homeworkAchiece>
+            <homeworkAchiece v-on="$listeners" :lesson="lesson" :achieveList="achieveList" :deptList="deptList" :show="show" :form="form"></homeworkAchiece>
           </van-tab>
         </van-tabs>
       </el-col>
@@ -27,6 +27,8 @@ export default {
     achieveList: null, //作业成绩
     show: null, //显示弹框
     form: null, //修改form
+    deptList: null,
+    lesson: null,
   },
   components: {
     peaceAchieve, //平時成績

+ 33 - 7
src/layout/class/achieveList/homeworkAchiece.vue

@@ -5,11 +5,16 @@
         <van-collapse v-model="openCollapse">
           <van-collapse-item :name="index" v-for="(item, index) in achieveList" :key="index">
             <div slot="title" class="title">
-              <span class="name">{{ item.studentid }}</span>
-              <van-button type="primary" size="mini" @click="clickBtn()">上成绩</van-button>
+              <span class="name">{{ item.name }}</span>
+              <van-button type="primary" size="mini" @click="clickBtn(item.id)">上成绩</van-button>
             </div>
-            <van-row v-for="(tag, index) in item.lesson" :key="index">
-              <van-col :span="14" class="score"> 课程名称:{{ tag.lessonid }} </van-col>
+
+            <!-- <van-row v-for="(tag, index) in item.lesson" :key="index">
+              <van-col :span="14" class="score"> 课程名称:{{ tag.code }} </van-col>
+              <van-col :span="10" class="score"> 作业分:{{ tag.score }} 分</van-col>
+            </van-row> -->
+            <van-row v-for="(tag, index) in lesson" :key="index">
+              <van-col :span="14" class="score"> 课程名称:{{ tag.subname }} </van-col>
               <van-col :span="10" class="score"> 作业分:{{ tag.score }} 分</van-col>
             </van-row>
           </van-collapse-item>
@@ -19,7 +24,11 @@
     <van-dialog v-model="show" title="学生成绩上传" :showConfirmButton="false">
       <van-form @submit="onSubmit">
         <van-field v-model="form.name" name="学生名称" disabled />
-        <van-field v-model="form.lessonid" name="课程名称" label="课程名称" placeholder="请输入课程名称" />
+        <!-- <van-field v-model="form.lessonid" name="课程名称" label="课程名称" placeholder="请输入课程名称" /> -->
+        <span class="lesson">课程名称</span>
+        <el-select v-model="form.lessonid" placeholder="请选择课程名称">
+          <el-option v-for="(item, index) in deptList" :key="index" :label="item.name" :value="item.code"></el-option>
+        </el-select>
         <van-field v-model="form.score" name="作业分数" label="作业分数" placeholder="请输入作业分数" />
         <div style="margin: 16px;">
           <van-button round block type="info" native-type="submit">
@@ -39,16 +48,28 @@ export default {
     show: null,
     form: null,
     lessonList: null,
+    deptList: null,
+    lesson: null,
   },
   components: {},
   data: () => ({
+    ruleForm: {
+      region: '',
+    },
+    value: '',
+    columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
+    showPicker: false,
     openCollapse: [],
   }),
   created() {},
   computed: {},
   methods: {
-    clickBtn() {
-      this.$emit('clickDialog');
+    onConfirm(value) {
+      this.value = value;
+      this.showPicker = false;
+    },
+    clickBtn(id) {
+      this.$emit('clickDialog', { id: id });
     },
     onSubmit() {
       this.$emit('submit', { data: this.form });
@@ -95,4 +116,9 @@ p {
   padding: 10px 0;
   font-size: 18px;
 }
+.lesson {
+  font-size: 14px;
+  padding: 0 21px 0 16px;
+  color: #323233;
+}
 </style>

+ 1 - 1
src/layout/class/achieveList/peaceAchieve.vue

@@ -42,7 +42,7 @@ export default {
   computed: {},
   methods: {
     onConfirm() {
-      this.$emit('access', { data: this.formscore });
+      this.$emit('access', { data: this.form }, id);
     },
     showBtn(id) {
       this.$emit('showBtn', id);

+ 12 - 2
src/layout/class/classList.vue

@@ -4,8 +4,16 @@
       <el-col :span="24">
         <van-tabs v-model="active">
           <van-tab title="班级名单">
-            <span v-if="role === '1'">
-              <headNameList v-on="$listeners" :headNameList="headNameList" :assignShow="assignShow" :assignForm="assignForm" :name="name"></headNameList>
+            <span v-if="role === '4'">
+              <headNameList
+                v-on="$listeners"
+                :headNameList="headNameList"
+                :assignShow="assignShow"
+                :assignForm="assignForm"
+                :name="name"
+                :job="job"
+                :job_list="job_list"
+              ></headNameList>
             </span>
             <span v-else>
               <stuNameList :stuNameList="stuNameList"></stuNameList>
@@ -35,6 +43,8 @@ export default {
     stuIdAndGroupId: null, //登陆者id和小组id
     noGroupStudentNames: null, //没有小组的学生
     name: null,
+    job: null,
+    job_list: null,
   },
   components: {
     // 显示班级学生名称(带有职务)

+ 6 - 14
src/layout/class/nameList/headNameList.vue

@@ -2,7 +2,7 @@
   <div id="headNameList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="6" class="list" v-for="(item, index) in headNameList" :key="index" @click.native="clickAssign(item.id, item.name)">
+        <el-col :span="6" class="list" v-for="(item, index) in headNameList" :key="index" @click.native="clickAssign(item.id, item.name, item.job)">
           <p class="name">{{ item.name }}</p>
           <p class="job" v-if="item.job">{{ item.job }}<i class="el-icon-circle-check"></i></p>
         </el-col>
@@ -15,7 +15,6 @@
           {{ name }}
         </el-form-item>
         <el-form-item label="学生职务">
-          <!-- <el-input v-model="assignForm.job" placeholder="请输入学生职务"></el-input> -->
           <el-select v-model="assignForm.job" placeholder="请选择学生职务">
             <el-option v-for="(item, index) in job_list" :key="index" :label="item.name" :value="item.name"></el-option>
           </el-select>
@@ -37,23 +36,16 @@ export default {
     assignForm: null,
     assignShow: null,
     name: null,
+    job: null,
+    job_list: null,
   },
   components: {},
-  data: () => ({
-    job_list: [
-      {
-        name: '班长',
-      },
-      {
-        name: '学委',
-      },
-    ],
-  }),
+  data: () => ({}),
   created() {},
   computed: {},
   methods: {
-    clickAssign(id, name) {
-      this.$emit('assign', { id, name });
+    clickAssign(id, name, job) {
+      this.$emit('assign', { id, name, job });
     },
     outAssignShow() {
       this.$emit('outForm');

+ 1 - 7
src/layout/class/nameList/stuNameList.vue

@@ -2,13 +2,7 @@
   <div id="stuNameList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col
-          :span="6"
-          class="list"
-          v-for="(item, index) in stuNameList"
-          :key="index"
-          @click.native="$router.push({ path: '/class/achieve', query: { id: item.id } })"
-        >
+        <el-col :span="6" class="list" v-for="(item, index) in stuNameList" :key="index" @click.native="$router.push({ path: '/class/achieve' })">
           <p class="name">{{ item.name }}</p>
           <p class="job" v-if="item.job">{{ item.job }}<i class="el-icon-circle-check"></i></p>
         </el-col>

+ 1 - 1
src/layout/user/leaveList.vue

@@ -12,7 +12,7 @@
           <p>开始时间:{{ item.starttime }}</p>
           <p>结束时间:{{ item.endtime }}</p>
         </el-col>
-        <el-col :span="10" class="ispass"> 请假结果:{{ item.ispass === '0' ? '未通过' : item.ispass === '1' ? '通过' : '审核中' }} </el-col>
+        <el-col :span="10" class="ispass"> 请假结果:{{ item.status === '0' ? '未通过' : item.status === '1' ? '通过' : '审核中' }} </el-col>
         <!-- <el-col :span="10" @click="deleteBtn(item.id)">删除</el-col> -->
       </el-col>
     </el-row>

+ 4 - 0
src/store/index.js

@@ -10,6 +10,8 @@ import student from '@frame/store/student';
 import lesson from '@frame/store/lesson';
 import teacher from '@frame/store/teacher';
 import classes from '@frame/store/classes';
+import subject from '@frame/store/subject';
+import uploadtask from '@frame/store/uploadtask';
 import score from '@frame/store/score';
 import termquest from '@frame/store/termquest';
 import login from '@frame/store/login';
@@ -36,5 +38,7 @@ export default new Vuex.Store({
     termquest,
     login,
     classes,
+    uploadtask,
+    subject,
   },
 });

+ 35 - 39
src/views/class/achieve.vue

@@ -19,6 +19,8 @@
             :formscore="formscore"
             @clickDialog="clickAchieve"
             @submit="submitAchieve"
+            :deptList="deptList"
+            :lesson="lesson"
           ></achieves>
         </el-col>
       </el-col>
@@ -31,6 +33,9 @@ import NavBar from '@/layout/common/topInfo.vue';
 import achieves from '@/layout/class/achieve.vue';
 import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
 const { mapActions: mapStudent } = createNamespacedHelpers('student');
+const { mapActions: mapClass } = createNamespacedHelpers('classes');
+const { mapActions: mapLesson } = createNamespacedHelpers('lesson');
+const { mapActions: mapUploadtask } = createNamespacedHelpers('uploadtask');
 
 export default {
   name: 'achieve',
@@ -40,49 +45,25 @@ export default {
     achieves, //班级学生成绩列表
   },
   data: () => ({
+    lesson: [],
     peaceAchieveList: [],
-    // showPicker: false,
-    // score: '',
+    deptList: [],
     score: false,
     formscore: {},
     studid: '',
-    achieveList: [
-      {
-        studentid: '刘裕',
-        lesson: [
-          {
-            lessonid: '拓展训练',
-            score: '20',
-          },
-          {
-            lessonid: '简历制作',
-            score: '20',
-          },
-        ],
-      },
-      {
-        studentid: '刘裕',
-        lesson: [
-          {
-            lessonid: '拓展训练',
-            score: '20',
-          },
-          {
-            lessonid: '简历制作',
-            score: '20',
-          },
-        ],
-      },
-    ],
+    achieveList: {},
     show: false,
     form: {},
     title: '',
     isleftarrow: '',
     transitionName: 'fade',
     navShow: true,
+    // 修改
+    stuid: '',
   }),
   created() {
     this.search();
+    // this.searchLesson();
   },
   computed: {
     ...mapState(['user']),
@@ -99,10 +80,33 @@ export default {
   },
   methods: {
     ...mapStudent({ list: 'query', add: 'create', fet: 'fetch', updates: 'update' }),
-    async search() {
+    ...mapClass({ classinfo: 'fetch', classlist: 'query' }),
+    ...mapLesson({ lessoninfo: 'fetch', classlist: 'query' }),
+    ...mapUploadtask({ uploadtaskinfo: 'fetch', uploadtasklist: 'query' }),
+    async search({ ...info } = {}) {
       let classid = this.user.classid;
       const res = await this.list({ classid });
       this.$set(this, `peaceAchieveList`, res.data);
+      this.$set(this, `achieveList`, res.data);
+      const result = await this.classinfo(classid);
+      const lessonInfo = await this.uploadtasklist({ ...info });
+      // this.$set(this, `lesson`, lessonInfo.data.lessons);
+      console.log(lessonInfo);
+
+      // // const ress = await this.subjectlist();
+      // // const resss = await this.uploadtasklist();
+      // const ressss = await this.classlist({ classid });
+    },
+    clickAchieve({ id }) {
+      this.$set(this, `stuid`, id);
+      this.show = true;
+    },
+    async submitAchieve(form) {
+      this.form.id = this.stuid;
+      let data = this.form;
+      const res = await this.uploadtaskupdate(data);
+      console.log(res);
+      this.show = false;
     },
     showBtn(id) {
       this.$set(this, `studid`, id);
@@ -117,14 +121,6 @@ export default {
       const ress = await this.updates(data);
       this.score = false;
     },
-    clickAchieve() {
-      this.show = true;
-    },
-
-    submitAchieve(form) {
-      console.log(form);
-      this.show = false;
-    },
   },
 };
 </script>

+ 17 - 20
src/views/class/index.vue

@@ -8,7 +8,9 @@
         </el-col>
         <el-col :span="24" class="main">
           <classList
+            :job="job"
             :name="name"
+            :job_list="job_list"
             :headNameList="headNameList"
             @assign="clickAssign"
             :assignShow="assignShow"
@@ -52,27 +54,18 @@ export default {
     classList, //班级名单
   },
   data: () => ({
+    job_list: [
+      {
+        name: '班长',
+      },
+      {
+        name: '学委',
+      },
+    ],
     name: '',
     xsid: '',
     // 班主任看学生名单
-    headNameList: [
-      // {
-      //   name: '测试人员',
-      //   job: '班长',
-      // },
-      // {
-      //   name: '测试人',
-      //   job: '',
-      // },
-      // {
-      //   name: '测试人员',
-      //   job: '班长',
-      // },
-      // {
-      //   name: '测试人',
-      //   job: '班长',
-      // },
-    ],
+    headNameList: [],
     assignShow: false,
     assignForm: {},
     // 学生看学生名单
@@ -85,6 +78,7 @@ export default {
     isleftarrow: '',
     transitionName: 'fade',
     navShow: true,
+    job: '',
   }),
   created() {
     this.findList();
@@ -128,11 +122,14 @@ export default {
       this.$set(this, `stuNameList`, res.data);
     },
 
-    async clickAssign({ id, name }) {
+    //点击派遣
+    async clickAssign({ id, name, job }) {
       this.assignShow = true;
       this.$set(this, `xsid`, id);
       this.$set(this, `name`, name);
+      this.$set(this.assignForm, `job`, job);
     },
+    //指派职务
     async onAssignShow(assignForm) {
       this.assignShow = false;
       this.assignForm.id = this.xsid;
@@ -142,7 +139,7 @@ export default {
       const ress = await this.list({ classid });
       this.$set(this, `headNameList`, ress.data);
       this.$message({
-        message: '评分成功',
+        message: '成功',
         type: 'success',
       });
     },