wuhongyu 4 anos atrás
pai
commit
9ee5212a5c

+ 51 - 3
src/layout/class/nameList/stuNameList.vue

@@ -17,7 +17,7 @@
             职务:{{ item.job }}<span v-if="item.job == '班长' || item.job == '学委'"><i class="el-icon-circle-check"></i></span>
           </p>
           <el-col :span="24" class="job">性别:{{ item.gender }}</el-col>
-          <el-col :span="24" class="job">寝室号:{{ item.bedroom }}</el-col>
+          <p :span="24" class="job" @click="showPopup(item)">寝室号:{{ item.bedroom }}</p>
           <el-col :span="24" class="job"
             ><i class="el-icon-phone"></i><el-link href="tel:01234567890" :underline="false">:{{ item.phone }}</el-link></el-col
           >
@@ -35,7 +35,7 @@
           :rules="[{ required: true, message: '请填写用户名' }]"
         />
 
-        <van-field readonly clickable name="picker" :value="newform.job" label="选择器" placeholder="点击选择城市" @click="showPicker = true" />
+        <van-field readonly clickable name="picker" :value="newform.job" label="指派职务" placeholder="点击指派职务" @click="showPicker = true" />
         <van-popup v-model="showPicker" position="bottom">
           <van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
         </van-popup>
@@ -54,11 +54,40 @@
         </div>
       </van-form>
     </van-popup>
+
+    <van-popup position="bottom" v-model="newshow">
+      <van-form @submit="pssubmit">
+        <van-field
+          v-model="psform.name"
+          disabled
+          name="学生名称"
+          label="学生名称"
+          placeholder="请输入学生名称"
+          :rules="[{ required: true, message: '请填写用户名' }]"
+        />
+
+        <van-field name="radio" label="是否指派为寝室长">
+          <template #input>
+            <van-radio-group v-model="psform.job" direction="horizontal">
+              <van-radio name="普通学生">否</van-radio>
+              <van-radio name="寝室长">是</van-radio>
+            </van-radio-group>
+          </template>
+        </van-field>
+        <div style="margin: 16px;">
+          <van-button round block type="info" native-type="submit">
+            提交
+          </van-button>
+        </div>
+      </van-form>
+    </van-popup>
   </div>
 </template>
 
 <script>
 import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: bedroom } = createNamespacedHelpers('bedroom');
+const { mapActions: util } = createNamespacedHelpers('util');
 export default {
   name: 'stuNameList',
   props: {
@@ -67,6 +96,7 @@ export default {
   components: {},
   data: () => ({
     newform: {},
+    psform: {},
     form: {},
     show: false,
     newshow: false,
@@ -81,11 +111,18 @@ export default {
   created() {},
   computed: { ...mapState(['user']) },
   methods: {
+    ...bedroom({ query: 'query', fetch: 'fetch' }),
+    ...util({ modelFetch: 'fetch' }),
     onSubmit(values) {
       this.$emit('newsubmit', { data: this.newform });
       this.show = false;
     },
 
+    qinshisub(values) {
+      this.$emit('newsubmit', { data: this.newform });
+      this.show = false;
+    },
+
     submitinfo(item) {
       // this.value = item.job;
 
@@ -130,9 +167,20 @@ export default {
       this.newshow = true;
     },
 
+    async showPopup(item) {
+      if (item.job == '普通学生') {
+        console.log(item);
+        this.psform = item;
+        const res = await this.modelFetch({ model: 'bedroom', code: item.bedroom });
+        this.newshow = true;
+      }
+    },
+
+    pssubmit(values) {
+      console.log(this.psform);
+    },
     onConfirm(job) {
       this.$set(this.newform, `job`, job);
-
       this.showPicker = false;
     },
   },

+ 2 - 2
src/layout/user/datiList.vue

@@ -12,13 +12,13 @@
             </el-form-item>
             <template v-if="item.type === '0'">
               <el-col :span="24" v-for="(items, index) in item.option" :key="index">
-                <el-radio v-model="item.answers" :label="items.opname">{{ items.opname }}</el-radio>
+                <el-radio v-model="item.answers" :label="items.number">{{ items.number }}</el-radio>
               </el-col>
             </template>
             <template v-else-if="item.type === '1'">
               <el-checkbox-group v-model="item.answers">
                 <el-col :span="24" v-for="(items, index) in item.option" :key="index">
-                  <el-checkbox :label="items.opname">{{ items.opname }}</el-checkbox>
+                  <el-checkbox :label="items.number">{{ items.opname }}</el-checkbox>
                 </el-col>
               </el-checkbox-group>
             </template>

+ 2 - 0
src/store/index.js

@@ -21,6 +21,7 @@ import task from '@frame/store/task';
 import dept from '@frame/store/dept';
 import login from '@frame/store/login';
 import sethead from '@frame/store/sethead';
+import bedroom from '@frame/store/bedroom';
 
 import * as ustate from '@frame/store/user/state';
 import * as umutations from '@frame/store/user/mutations';
@@ -53,5 +54,6 @@ export default new Vuex.Store({
     completion,
     sethead,
     util,
+    bedroom,
   },
 });

+ 0 - 1
src/views/class/achieve.vue

@@ -112,7 +112,6 @@ export default {
 
       for (const accc of result.data) {
         var arr = res.data.filter(item => item.id === accc.studentid);
-
         this.$set(this, `achieveList`, arr);
       }
     },

+ 21 - 7
src/views/user/dati.vue

@@ -75,23 +75,33 @@ export default {
 
     //查询作业
     async search() {
-      console.log(this.name);
+      // console.log(this.name);s
       const res = await this.list();
       var tilist = res.data.filter(item => item.code === this.id);
       let result = tilist[0];
-      console.log(result.id);
+      // console.log(result.id);
       this.$set(this, `taskid`, result.id);
+      // console.log(result.question);
+
       result.question = result.question.map(i => {
         if (i.type == 1) {
           i.answers = [];
         } else {
           i.answers = '';
         }
+        // console.log(i.answers);
+        // console.log(i);
 
         return i;
-        console.log(result.question);
       });
+      let num = _.cloneDeep(result);
+      console.log(num);
+      console.log(result.question);
+
       this.$set(this, `datilist`, result);
+
+      //   this.$set(this, `datilist`, num);
+
       let stuid = this.user.userid;
       let lessonid = this.lessonid;
 
@@ -99,8 +109,6 @@ export default {
 
       console.log(ress.data);
 
-      console.log(ress.data);
-
       this.$set(this, `resdata`, ress.data);
       //回显
       for (const val of ress.data) {
@@ -178,6 +186,7 @@ export default {
             let d = new Set(b);
 
             let differenceABSet = new Set([...d].filter(x => !c.has(x)));
+            console.log(differenceABSet);
 
             var sc = this.datilist.question.map(a => {
               if (n._id == a._id) {
@@ -227,8 +236,13 @@ export default {
           var arr = newsc.filter(item => item);
           answerss.answers = arr;
         });
-        console.log(answerss);
-
+        console.log(answerss.answers);
+        let sum = '';
+        answerss.answers.forEach(item => {
+          sum = Number(sum) + Number(item.questionscore);
+        });
+        console.log(sum);
+        answerss.score = sum;
         let res = await this.Uploadtaskupdates(answerss);
       } else {
         //作业