lrf402788946 5 年之前
父节点
当前提交
f6b238319e
共有 3 个文件被更改,包括 64 次插入7 次删除
  1. 27 2
      src/views/location/detail.vue
  2. 34 5
      src/views/train-plan/parts/lesson-table.vue
  3. 3 0
      src/views/train-plan/term-lesson.vue

+ 27 - 2
src/views/location/detail.vue

@@ -1,7 +1,13 @@
 <template>
   <div id="detail">
     <detail-frame :title="mainTitle" returns="/location/index">
-      <data-form :data="info" :fields="fields" :rules="rules" @save="handleSave" :isNew="isNew"> </data-form>
+      <data-form :data="info" :fields="fields" :rules="rules" @save="handleSave" :isNew="isNew">
+        <template #radios="{item, form}">
+          <template v-if="item.model == 'type'">
+            <el-radio v-for="(i, index) in typeList" :key="index" :label="i.value">{{ i.label }}</el-radio>
+          </template>
+        </template>
+      </data-form>
     </detail-frame>
   </div>
 </template>
@@ -23,11 +29,30 @@ export default {
     info: {},
     fields: [
       { label: '地点', required: true, model: 'name' },
-      { label: '蓝牙id', required: true, model: 'ibeacon' },
+      { label: '类型', required: true, model: 'type', type: 'radio' },
+      { label: '蓝牙id', model: 'ibeacon' },
     ],
     rules: {
       name: [{ required: true, message: '请输入地点' }],
     },
+    typeList: [
+      {
+        value: '0',
+        label: '教室位置',
+      },
+      {
+        value: '1',
+        label: '开班仪式地点',
+      },
+      {
+        value: '2',
+        label: '拓展计划地点',
+      },
+      {
+        value: '3',
+        label: '用餐地点',
+      },
+    ],
   }),
   created() {},
   computed: {

+ 34 - 5
src/views/train-plan/parts/lesson-table.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="lesson-table">
-    <el-form :model="form" size="mini" style="padding:20px" label-width="100px">
+    <el-form ref="lessonForm" :model="form" size="mini" style="padding:20px" label-width="100px">
       <el-form-item label="日期">{{ form.date }}</el-form-item>
       <el-form-item label="类型">
         <el-radio-group v-model="form.type">
@@ -19,9 +19,15 @@
           </el-select>
         </el-form-item>
         <el-form-item label="教师安排">
-          <el-form-item v-for="(i, index) in cList" :key="index" :label="`${i.class_num}班`" label-width="50px">
-            <el-input v-model="i.name" :readonly="true" placeholder="点击选择教师" @click.native="toChooseTeacher(i.classid)"></el-input>
-          </el-form-item>
+          <template v-for="(i, index) in cList">
+            <el-form-item :key="`tea${index}`" :label="`${i.class_num}班`" label-width="50px">
+              <el-input v-model="i.name" placeholder="点击选择教师" @click.native="toChooseTeacher(i.classid)" clearable @clear="toClear(index)"></el-input>
+              <!-- :readonly="true" -->
+            </el-form-item>
+            <el-form-item v-if="needReason(index)" :key="`rea${index}`" :label="`${i.class_num}班修改教师原因`" label-width="150px" required>
+              <el-input v-model="i.reason" placeholder="请填写修改教师原因"></el-input>
+            </el-form-item>
+          </template>
         </el-form-item>
       </template>
       <el-form-item label="是否全天" v-if="form.is_last">
@@ -88,7 +94,16 @@ export default {
         dForm.subname = this.subjectList.find(f => f.id == _.get(dForm, 'subid')).name;
       }
       let dList = _.cloneDeep(this.cList);
-      this.$emit('save', { form: dForm, classList: dList });
+      let vali = true;
+      for (let index = 0; index < dList.length; index++) {
+        let r = this.needReason(index);
+        if (r) {
+          let { reason } = dList[index];
+          if (!reason) vali = false;
+        }
+      }
+      if (vali) this.$emit('save', { form: dForm, classList: dList });
+      else this.$message.error('请填写修改教师原因');
     },
     //选择教师
     selTea(data) {
@@ -126,6 +141,20 @@ export default {
       this.$set(this, `isChange`, classid);
       this.dialog = true;
     },
+    //判断是否修改教师,需要填写修改教师的原因
+    needReason(index) {
+      let orData = _.get(this.classList, index);
+      let nowData = _.get(this.cList, index);
+      let { id: oteaid, reason } = orData;
+      let { id: nteaid } = nowData;
+      if (reason) return true;
+      return oteaid != nteaid;
+    },
+    toClear(index) {
+      let nowData = _.get(this.cList, index);
+      let { id, ...info } = nowData;
+      this.$set(this.cList, index, info);
+    },
   },
   computed: {
     ...mapState(['user']),

+ 3 - 0
src/views/train-plan/term-lesson.vue

@@ -424,6 +424,8 @@ export default {
     allSave() {
       //match(/\d+(.\d+)?/g)[0];
       let duplicate = _.cloneDeep(this.list);
+      let dun = _.cloneDeep(this.unusualList);
+      duplicate = [...duplicate, ...dun];
       let dClass = _.cloneDeep(this.classList);
       let dLesson = _.cloneDeep(this.lessonList);
       duplicate.map(data => {
@@ -547,6 +549,7 @@ export default {
       });
       let ndClass = dClass.map(i => _.omit(i, ['lessons']));
       let ndLesson = dLesson.map(i => _.omit(i, ['meta']));
+      console.log(ndClass, ndLesson);
       let res = this.checkClassConfig(dClass);
       if (!res.length > 0) {
         this.toSubmit(ndLesson, ndClass);