Przeglądaj źródła

fiex:第五阶段优化完毕,第四阶段分支合并该分支

Tang 3 lat temu
rodzic
commit
0d5b2d704c
31 zmienionych plików z 1491 dodań i 1263 usunięć
  1. 31 5
      src/components/Editor/index.vue
  2. 36 8
      src/components/searchBoxNew.vue
  3. 1 1
      src/components/tableList.vue
  4. 16 0
      src/newApi/applicationData.js
  5. 24 11
      src/views/Marketing/goods/commodityManageMent/add/index.vue
  6. 27 12
      src/views/Marketing/goods/commodityManageMent/edit/index.vue
  7. 7 1
      src/views/Marketing/goods/commodityManageMent/index.vue
  8. 4 1
      src/views/Marketing/goods/courseInquiryList/index.vue
  9. 586 568
      src/views/education/classManageMent/classHoursReview/studyTimes.vue
  10. 57 49
      src/views/education/classManageMent/classList/manageClass/baseInfo.vue
  11. 532 515
      src/views/education/classManageMent/learningHoursRecordList/studyTimesRecord.vue
  12. 2 2
      src/views/education/dataReview/dataConfig/index.vue
  13. 2 2
      src/views/education/dataReview/informationTemplate/index.vue
  14. 3 2
      src/views/education/dataReview/stamp/index.vue
  15. 3 2
      src/views/education/examManagement/applicationData/bulkImportPlan/newRegister.vue
  16. 2 0
      src/views/education/examManagement/applicationData/bulkImportPlan/newYY.vue
  17. 106 55
      src/views/education/examManagement/applicationData/examRegistration/index.vue
  18. 1 0
      src/views/education/examManagement/examArrangement/index.vue
  19. 4 4
      src/views/resource/bankManagement/testPaperManagement/addPaper/topicAddPaper/index.vue
  20. 3 3
      src/views/resource/bankManagement/testPaperManagement/editPaper/topicEditPaper/index.vue
  21. 13 2
      src/views/resource/bankManagement/topicManagement/index.vue
  22. 7 3
      src/views/resource/bankManagement/volumeManagement/add/index.vue
  23. 3 3
      src/views/resource/bankManagement/volumeManagement/edit/index.vue
  24. 2 1
      src/views/resource/bankManagement/volumeManagement/index.vue
  25. 1 1
      src/views/resource/baseManageInfos/index.vue
  26. 8 2
      src/views/resource/baseManageInfos/resource/suject/index.vue
  27. 2 2
      src/views/resource/videoManagement/chapter/add/index.vue
  28. 2 2
      src/views/resource/videoManagement/chapter/edit/index.vue
  29. 2 2
      src/views/resource/videoManagement/flow/index.vue
  30. 2 2
      src/views/resource/videoManagement/moduleManagement/add/index.vue
  31. 2 2
      src/views/resource/videoManagement/moduleManagement/edit/index.vue

+ 31 - 5
src/components/Editor/index.vue

@@ -71,6 +71,10 @@ export default {
         bounds: document.body,
         debug: "warn",
         modules: {
+          clipboard: {
+            // 粘贴版,处理粘贴时候带图片
+            matchers: [[Node.ELEMENT_NODE, this.handleCustomMatcher]],
+          },
           // 工具栏配置
           toolbar: [
             ["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
@@ -145,10 +149,32 @@ export default {
     this.Quill = null;
   },
   methods: {
+    handleCustomMatcher(node, Delta) {
+      let ops = [];
+      Delta.ops.forEach((op) => {
+        if (op.insert && typeof op.insert === "string") {
+          // 如果粘贴了图片,这里会是一个对象,所以可以这样处理
+          ops.push({
+            insert: op.insert,
+          });
+        } else {
+          if (op.insert.image.includes("data:image")) {
+            //本地图片会使文件file开头
+            this.$message.warning("不允许粘贴图片,请手动上传");
+          } else {
+            ops.push({
+              insert: op.insert,
+            });
+          }
+        }
+      });
+      Delta.ops = ops;
+      return Delta;
+    },
     init() {
       const editor = this.$refs.editor;
       this.Quill = new Quill(editor, this.options);
-      console.log(this.Quill)
+      console.log(this.Quill);
       // 如果设置了上传地址则自定义图片上传事件
       if (this.uploadUrl) {
         let toolbar = this.Quill.getModule("toolbar");
@@ -192,11 +218,11 @@ export default {
       this.Quill.on("editor-change", (eventName, ...args) => {
         this.$emit("on-editor-change", eventName, ...args);
       });
-      
-      editor.onclick=() => {
-        this.Quill.enable(true)
+
+      editor.onclick = () => {
+        this.Quill.enable(true);
         this.Quill.focus();
-      }
+      };
     },
     imageChange(param, type) {
       this.$upload

+ 36 - 8
src/components/searchBoxNew.vue

@@ -83,7 +83,7 @@
             v-model="formData[item.prop]"
             :placeholder="item.placeholder"
             :size="size"
-            @change="changeBusinessLevel"
+            @change="changeBusinessLevel($event)"
           >
             <el-option
               v-for="(items, indexs) in newBusinessLevel"
@@ -577,7 +577,10 @@ export default {
                 ) {
                   return items;
                 }
-                if (items.scope === "sujectType") {
+                if (
+                  items.scope === "sujectType" &&
+                  this.formData["businessId"]
+                ) {
                   return items;
                 }
               }
@@ -725,18 +728,43 @@ export default {
         .then((res) => {
           this.newProfessional = res.rows;
         });
-      this.$api
-        .inquireCourseSubject({ status: 1, educationId: id })
-        .then((res) => {
-          this.newSujectType = res.rows;
-        });
+      if (!status1) {
+        this.$api
+          .inquireCourseSubject({ status: 1, educationId: id })
+          .then((res) => {
+            this.newSujectType = res.rows;
+          });
+      }
     },
     /**
      *
      * @param {int} id
      * @remark 点击业务层次触发事件
      */
-    changeBusinessLevel(id) {},
+    changeBusinessLevel(v) {
+      if(this.formData.subjectId){
+        this.formData.subjectId = ''
+      }
+      this.$api
+          .inquireCourseSubject({ status: 1, businessId: v })
+          .then((res) => {
+            this.newSujectType = res.rows;
+          });
+    },
+    /**
+     * 外部调用-商品新增编辑页
+     */
+    changeSuject(v) {
+      if (v) {
+        this.$api
+          .inquireCourseSubject({ status: 1, projectId: v })
+          .then((res) => {
+            this.newSujectType = res.rows;
+          });
+      } else {
+        this.newSujectType = [];
+      }
+    },
   },
 };
 </script>

+ 1 - 1
src/components/tableList.vue

@@ -235,7 +235,7 @@
             class="editInfoSty"
             @click="jumpPeolpe(scope.row, item.type)"
           >
-            {{ scope.row[item.prop] }}
+            {{ `${scope.row[item.prop]} / ${scope.row[item.prop1]}` }}
           </span>
           <span v-else-if="item.scope === 'sectionTypesTTT'">{{
             Number(scope.row[item.prop]) === 1

+ 16 - 0
src/newApi/applicationData.js

@@ -16,6 +16,14 @@ export default {
             data
         })
     },
+    //批量选考试登记状态
+    editMoresystemsubscribe(data) {
+        return request({
+            url: '/system/subscribe/editMore',
+            method: 'post',
+            data
+        })
+    },
     //预约考试身份证导入新增模板
     editsystemimportIdsData(data) {
         return request({
@@ -121,4 +129,12 @@ export default {
             data
         })
     },
+    //预约考试身份证导入新增模板过滤不存在
+    inquiresystemsubscribeimportIdsDataFilter(data) {
+        return request({
+            url: '/system/subscribe/importIdsDataFilter',
+            method: 'post',
+            data
+        })
+    },
 }

+ 24 - 11
src/views/Marketing/goods/commodityManageMent/add/index.vue

@@ -1703,7 +1703,8 @@ export default {
         examType: 1,
         educationTypeId: "",
         businessId: "",
-        names: "",
+        subjectId:"",
+        key: "",
       },
       formList3: [
         {
@@ -1732,8 +1733,8 @@ export default {
           edu: "educationTypeId",
         },
         {
-          prop: "names",
-          placeholder: "请输入标题名称",
+          prop: "key",
+          placeholder: "标题前缀/标题编码/标题名称",
         },
       ],
       //   视频商品表格数据------------------------------------------------------------------------start
@@ -1880,7 +1881,6 @@ export default {
           label: "发布状态",
           prop: "publishStatus",
           scope: "Status",
-          width: "120",
         },
       ],
       tableSetTSBBOX2: [
@@ -1955,15 +1955,20 @@ export default {
   },
   methods: {
     judgeResult1(v) {
-      console.log(this.listData.lowestPrice, v);
-      if (this.listData.lowestPrice && this.listData.lowestPrice > v) {
+      if (
+        Number(this.listData.lowestPrice) &&
+        Number(this.listData.lowestPrice) > Number(this.listData.standPrice)
+      ) {
         this.listData.lowestPrice = "";
         this.$message.warning("商品最低价格高于标准价格,请重新输入");
         return;
       }
     },
     judgeResult2(v) {
-      if (this.listData.standPrice && this.listData.standPrice < v) {
+      if (
+        Number(this.listData.standPrice) &&
+        Number(this.listData.standPrice) < Number(this.listData.lowestPrice)
+      ) {
         this.listData.lowestPrice = "";
         this.$message.warning("商品最低价格高于标准价格,请重新输入");
         return;
@@ -2796,6 +2801,16 @@ export default {
         this.listData.educationTypeId,
         true
       );
+      var a = ''
+      if (this.listData.businessId) {
+        this.newCourTypeOptions.forEach(item => {
+          if(item.id == this.listData.businessId){
+            a = item.projectId
+          }
+        })
+        this.$refs.searchBox.changeSuject(a)
+      }
+      
     },
     submitTab() {
       if (this.activeLists.length === 0) {
@@ -2886,7 +2901,7 @@ export default {
       this.formData3.pageNum = 1;
       // this.formData3.educationTypeId = "";
       // this.formData3.businessId = "";
-      this.formData3.names = "";
+      this.formData3.key = "";
       this.formData3.subjectId = "";
       this.search3();
     },
@@ -2894,7 +2909,6 @@ export default {
       var self = this;
       var data = JSON.parse(JSON.stringify(self.formData3));
       if (data.examType === 1) {
-        data.moduleName = data.names;
         self.$api.inquireBankModule(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 1 + "-" + item.moduleExamId;
@@ -2914,7 +2928,6 @@ export default {
         });
       }
       if (data.examType === 2) {
-        data.name = data.names;
         self.$api.inquirebankchapterList(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 2 + "-" + item.chapterExamId;
@@ -2933,7 +2946,6 @@ export default {
         });
       }
       if (data.examType === 3) {
-        data.examName = data.names;
         self.$api.inquirebankexamList(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 3 + "-" + item.examId;
@@ -2955,6 +2967,7 @@ export default {
     },
     editAddBoxs2(int) {
       var self = this;
+      this.formData3.subjectId = ''
       var data = JSON.parse(JSON.stringify(this.formData3));
       if (this.listData.educationTypeId) {
         data.educationTypeId = this.listData.educationTypeId;

+ 27 - 12
src/views/Marketing/goods/commodityManageMent/edit/index.vue

@@ -1827,9 +1827,10 @@ export default {
         pageSize: 10,
         status: 1,
         examType: 1,
+        subjectId:"",
         educationTypeId: "",
         businessId: "",
-        names: "",
+        key:""
       },
       formList3: [
         {
@@ -1858,8 +1859,8 @@ export default {
           edu: "educationTypeId",
         },
         {
-          prop: "names",
-          placeholder: "请输入标题名称",
+          prop: "key",
+          placeholder: "标题前缀/标题编码/标题名称",
         },
       ],
       //   视频商品表格数据------------------------------------------------------------------------end
@@ -1882,7 +1883,6 @@ export default {
           label: "发布状态",
           prop: "publishStatus",
           scope: "Status",
-          width: "120",
         },
       ],
       tableSetTSBBOX2: [
@@ -1959,15 +1959,20 @@ export default {
   },
   methods: {
     judgeResult1(v) {
-      console.log(this.listData.lowestPrice, v);
-      if (this.listData.lowestPrice && this.listData.lowestPrice > v) {
+      if (
+        Number(this.listData.lowestPrice) &&
+        Number(this.listData.lowestPrice) > Number(this.listData.standPrice)
+      ) {
         this.listData.lowestPrice = "";
         this.$message.warning("商品最低价格高于标准价格,请重新输入");
         return;
       }
     },
     judgeResult2(v) {
-      if (this.listData.standPrice && this.listData.standPrice < v) {
+      if (
+        Number(this.listData.standPrice) &&
+        Number(this.listData.standPrice) < Number(this.listData.lowestPrice)
+      ) {
         this.listData.lowestPrice = "";
         this.$message.warning("商品最低价格高于标准价格,请重新输入");
         return;
@@ -3004,6 +3009,15 @@ export default {
         this.listData.educationTypeId,
         true
       );
+      var a = ''
+      if (this.listData.businessId) {
+        this.newCourTypeOptions.forEach(item => {
+          if(item.id == this.listData.businessId){
+            a = item.projectId
+          }
+        })
+        this.$refs.searchBox.changeSuject(a)
+      }
     },
     submitTab() {
       if (this.activeLists.length === 0) {
@@ -3105,7 +3119,7 @@ export default {
       this.formData3.pageNum = 1;
       // this.formData3.majorId = "";
       // this.formData3.schoolId = "";
-      this.formData3.names = "";
+      this.formData3.key = "";
       this.formData3.subjectId = "";
       this.search3();
     },
@@ -3113,7 +3127,7 @@ export default {
       var self = this;
       var data = JSON.parse(JSON.stringify(self.formData3));
       if (self.formData3.examType === 1) {
-        data.moduleName = data.names;
+        // data.moduleName = data.names;
         self.$api.inquireBankModule(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 1 + "-" + item.moduleExamId;
@@ -3133,7 +3147,7 @@ export default {
         });
       }
       if (self.formData3.examType === 2) {
-        data.name = data.names;
+        // data.name = data.names;
         self.$api.inquirebankchapterList(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 2 + "-" + item.chapterExamId;
@@ -3152,7 +3166,7 @@ export default {
         });
       }
       if (self.formData3.examType === 3) {
-        data.examName = data.names;
+        // data.examName = data.names;
         self.$api.inquirebankexamList(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 3 + "-" + item.examId;
@@ -3174,7 +3188,8 @@ export default {
     },
     editAddBoxs2(int) {
       var self = this;
-      self.formData3.examType = 1;
+      this.formData3.examType = 1;
+      this.formData3.subjectId = ''
       var data = JSON.parse(JSON.stringify(this.formData3));
       if (this.listData.educationTypeId) {
         data.educationTypeId = this.listData.educationTypeId;

+ 7 - 1
src/views/Marketing/goods/commodityManageMent/index.vue

@@ -163,11 +163,13 @@ export default {
           prop: "goodsName",
           scope: "editInfo",
           hidden: true,
+          width:"330px"
         },
         {
           label: "商品编码",
           prop: "code",
           hidden: true,
+          width:"130px"
         },
         {
           label: "专业",
@@ -184,7 +186,7 @@ export default {
           prop1: "projectName",
           prop2: "businessName",
           hidden: true,
-          width: "220px",
+          width: "380px",
           scope: "InfoMore",
         },
         {
@@ -201,6 +203,7 @@ export default {
           label: "商品内容视图",
           hidden: true,
           scope: "treeWatch",
+          width:"130px"
         },
         {
           label: "商品价格",
@@ -237,18 +240,21 @@ export default {
           label: "供应方(服务)",
           prop: "supplyName",
           hidden: true,
+          width:"130px"
         },
         {
           label: "最后编辑时间",
           prop: "updateTime",
           hidden: true,
           scope: "aTimeList",
+          width:"230px"
         },
         {
           label: "创建时间",
           prop: "createTime",
           hidden: true,
           scope: "aTimeList",
+          width:"230px"
         },
         {
           label: "可售状态",

+ 4 - 1
src/views/Marketing/goods/courseInquiryList/index.vue

@@ -214,13 +214,14 @@ export default {
           label: "教育类型",
           prop: "educationName",
           hidden: true,
+          width:"180px"
         },
         {
           label: "业务层次",
           prop1: "projectName",
           prop2: "businessName",
           hidden: true,
-          width: "220px",
+          width: "360px",
           scope: "InfoMore",
         },
         {
@@ -232,11 +233,13 @@ export default {
           label: "商品编码",
           prop: "code",
           hidden: true,
+          width:"130px"
         },
         {
           label: "商品名称",
           prop: "goodsName",
           hidden: true,
+          width:"330px"
         },
         {
           label: "商品状态",

Plik diff jest za duży
+ 586 - 568
src/views/education/classManageMent/classHoursReview/studyTimes.vue


+ 57 - 49
src/views/education/classManageMent/classList/manageClass/baseInfo.vue

@@ -13,7 +13,11 @@
             <el-form-item label="所属商品课程">
               <div class="flex_s">
                 <div>商品编码:{{ listData.goodsList[0].code }}</div>
-                <div>商品业务层级:{{ listData.goodsList[0].code }}</div>
+                <div style="display:flex;">
+                  <div>商品业务层级:</div><div style="flex:1">{{
+                    `${listData.goodsList[0].educationName}-${listData.goodsList[0].projectName}-${listData.goodsList[0].businessName}`
+                  }}</div>
+                </div>
                 <div>学时:{{ listData.goodsList[0].classHours }}</div>
                 <div>年份:{{ listData.goodsList[0].year }}</div>
                 <div>商品名称:{{ listData.goodsList[0].goodsName }}</div>
@@ -135,7 +139,7 @@
                 placeholder="选择开始日期时间"
                 @change="changeTimeList1"
                 :disabled="classStartStatus"
-                style="margin-bottom:10px;"
+                style="margin-bottom: 10px"
               >
               </el-date-picker>
               <el-date-picker
@@ -401,55 +405,59 @@ export default {
     },
     //   初始获取数据
     search() {
-      this.$api.obtainGradegrade(this.$route.query.id).then((res) => {
-        if (res.data.areasId) {
-          this.newCityList = this.cityList.filter((item) => {
-            return item.parentId == res.data.areasId;
-          });
-        }
-        if (res.data.learningStatus === 3) {
-          res.data.learningTimeStart = this.$methodsTools.time10to13(
-            res.data.learningTimeStart,
-            2
-          );
-        }
-        if (res.data.classStartTime && res.data.classEndTime) {
-          res.data.classStartTime = this.$methodsTools.time10to13(
-            res.data.classStartTime,
-            2
-          );
-          res.data.classEndTime = this.$methodsTools.time10to13(
-            res.data.classEndTime,
-            2
-          );
-          // classStartStatus
-          if (new Date().getTime() > res.data.classEndTime) {
-            this.classStartStatus = true;
-            this.classEndStatus = true;
-          } else {
-            this.classStartStatus = true;
+      this.$api
+        .obtainGradegrade(this.$route.query.id)
+        .then((res) => {
+          if (res.data.areasId) {
+            this.newCityList = this.cityList.filter((item) => {
+              return item.parentId == res.data.areasId;
+            });
           }
-        }
-        if (
-          res.data.goodsList[0].studyStartTime &&
-          res.data.goodsList[0].studyEndTime
-        ) {
-          this.timeArrays = [
-            this.$methodsTools.time10to13(
-              res.data.goodsList[0].studyStartTime,
+          if (res.data.learningStatus === 3) {
+            res.data.learningTimeStart = this.$methodsTools.time10to13(
+              res.data.learningTimeStart,
+              2
+            );
+          }
+          if (res.data.classStartTime && res.data.classEndTime) {
+            res.data.classStartTime = this.$methodsTools.time10to13(
+              res.data.classStartTime,
               2
-            ),
-            this.$methodsTools.time10to13(
-              res.data.goodsList[0].studyEndTime,
+            );
+            res.data.classEndTime = this.$methodsTools.time10to13(
+              res.data.classEndTime,
               2
-            ),
-          ];
-        }
-        this.minNums = res.data.studentNum;
-        this.listData = res.data;
-      }).finally(()=>{
-        this.$modal.closeLoading();
-      })
+            );
+            // classStartStatus
+            if (new Date().getTime() > res.data.classEndTime) {
+              this.classStartStatus = true;
+              this.classEndStatus = true;
+            } else {
+              this.classStartStatus = true;
+            }
+          }
+          if (
+            res.data.goodsList[0].studyStartTime &&
+            res.data.goodsList[0].studyEndTime
+          ) {
+            this.timeArrays = [
+              this.$methodsTools.time10to13(
+                res.data.goodsList[0].studyStartTime,
+                2
+              ),
+              this.$methodsTools.time10to13(
+                res.data.goodsList[0].studyEndTime,
+                2
+              ),
+            ];
+          }
+          this.minNums = res.data.studentNum;
+          console.log(res.data);
+          this.listData = res.data;
+        })
+        .finally(() => {
+          this.$modal.closeLoading();
+        });
     },
     //官方接口是否出现
     getVoselect() {
@@ -604,7 +612,7 @@ export default {
 }
 .flex_s {
   display: flex;
-  align-items: center;
+  // align-items: center;
   flex-wrap: wrap;
   & > div {
     flex-shrink: 0;

Plik diff jest za duży
+ 532 - 515
src/views/education/classManageMent/learningHoursRecordList/studyTimesRecord.vue


+ 2 - 2
src/views/education/dataReview/dataConfig/index.vue

@@ -434,7 +434,7 @@ export default {
           label: "学员编码",
           prop: "userAccount",
           hidden: true,
-          width: "140px",
+          width: "180px",
         },
         {
           label: "学员姓名",
@@ -457,7 +457,7 @@ export default {
         {
           label: "所购商品",
           hidden: true,
-          width: "180px",
+          width: "290px",
           scope: "getShops",
         },
         {

+ 2 - 2
src/views/education/dataReview/informationTemplate/index.vue

@@ -836,7 +836,7 @@ export default {
           prop: "name",
           hidden: true,
           scope: "editInfo",
-          width: "240px",
+          // width: "240px",
         },
         {
           label: "适用业务层级",
@@ -863,8 +863,8 @@ export default {
           label: "状态",
           prop: "status",
           hidden: true,
-          width: "100px",
           scope: "status",
+          width: "100px",
         },
       ],
       tableData: [], //表单数据

+ 3 - 2
src/views/education/dataReview/stamp/index.vue

@@ -344,12 +344,13 @@ export default {
           label: "填写资料审核状态",
           hidden: true,
           scope: "isOKs",
-          width: "160px",
+          width: "140px",
         },
         {
           label: "学员编码",
           prop: "userAccount",
           hidden: true,
+          width: "180px",
         },
         {
           label: "学员姓名",
@@ -372,7 +373,7 @@ export default {
         {
           label: "所购商品",
           hidden: true,
-          width: "160px",
+          width: "290px",
           scope: "getShops",
         },
         {

+ 3 - 2
src/views/education/examManagement/applicationData/bulkImportPlan/newRegister.vue

@@ -337,10 +337,11 @@ export default {
       let formData = new FormData();
       formData.append("file", file);
       this.$api
-        .editsystemsubscribeimportData(formData)
+        .editsystemimportUpdateData(formData)
         .then((res) => {
           this.tableDataSuccess = res.data.successList;
           this.tableDataError = res.data.errorList;
+          this.$message.info("导入操作执行成功")
         })
         .finally(() => {
           e.target.value = "";
@@ -376,7 +377,7 @@ export default {
       let formData = new FormData();
       formData.append("file", file);
       this.$api
-        .editsystemimportIdsData(formData)
+        .inquiresystemsubscribeimportIdsDataFilter(formData)
         .then((res) => {
           if (!res.data.length) {
             this.$message.warning("未检测到上传学员数据,请检查上传文件");

+ 2 - 0
src/views/education/examManagement/applicationData/bulkImportPlan/newYY.vue

@@ -408,6 +408,7 @@ export default {
           this.tableDataSuccess = res.data.successList;
           this.tableDataError = res.data.errorList;
           this.typeInt = 1;
+          this.$message.info("导入操作执行成功")
         })
         .finally(() => {
           e.target.value = "";
@@ -427,6 +428,7 @@ export default {
           this.tableDataSuccess = res.data.successList;
           this.tableDataError = res.data.errorList;
           this.typeInt = 2;
+          this.$message.info("导入操作执行成功")
         })
         .finally(() => {
           e.target.value = "";

+ 106 - 55
src/views/education/examManagement/applicationData/examRegistration/index.vue

@@ -87,7 +87,7 @@
       :close-on-click-modal="false"
     >
       <div slot="title" class="hearders">
-        <div class="leftTitle">考试登记</div>
+        <div class="leftTitle">成绩和证书登记</div>
         <div class="rightBoxs">
           <img
             src="@/assets/images/Close@2x.png"
@@ -97,44 +97,69 @@
         </div>
       </div>
       <div>
-        <ul>
-          <li class="liBVS" v-for="(item, index) in peopleList" :key="index">
+        <div v-for="(item, index) in peopleList" :key="index">
+          <div class="aListBottom">
             {{ item.realname }}
             <i
               v-if="peopleList.length > 1"
               class="el-icon-error clsw"
               @click="peopleList.splice(index, 1)"
             ></i>
-          </li>
-          <div style="clear: both"></div>
-        </ul>
-        <el-form
-          :model="listData"
-          label-width="120px"
-          class="demo-ruleForm"
-          :rules="rules"
-          ref="listData"
-        >
-          <el-form-item label="考试登记状态" prop="examStatus">
-            <el-radio-group v-model="listData.examStatus">
-              <el-radio :label="1">正常</el-radio>
-              <el-radio :label="2">缺考</el-radio>
-              <el-radio :label="3">作弊</el-radio>
-              <el-radio :label="4">替考</el-radio>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="考试登记补充" prop="remark">
-            <el-input
-              v-model="listData.remark"
-              type="textarea"
-              :rows="4"
-            ></el-input>
-          </el-form-item>
-        </el-form>
+          </div>
+          <el-form
+            label-width="120px"
+            :model="item"
+            :rules="rules"
+            ref="peopleList"
+          >
+            <el-form-item label="考试登记状态" prop="examStatus">
+              <el-radio-group v-model="item.examStatus">
+                <el-radio :label="0">待登记</el-radio>
+                <el-radio :label="1">正常</el-radio>
+                <el-radio :label="2">缺考</el-radio>
+                <el-radio :label="3">作弊</el-radio>
+                <el-radio :label="4">替考</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item
+              v-if="getTimes(item)"
+              label="考试成绩"
+              prop="performance"
+            >
+              <el-input-number
+                size="mini"
+                :controls="false"
+                v-model="item.performance"
+                :min="0"
+              ></el-input-number>
+              <span style="margin-left: 6px">分</span>
+            </el-form-item>
+            <el-form-item
+              v-if="getTimes(item)"
+              label="考试结果"
+              prop="result"
+            >
+              <el-radio-group v-model="item.result">
+                <el-radio :label="1">通过</el-radio>
+                <el-radio :label="0">不通过</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item v-if="getTimes(item)" label="证书编号">
+              <el-input v-model="item.certificateCode"></el-input>
+            </el-form-item>
+            <el-form-item label="登记补充">
+              <el-input
+                v-model="item.remark"
+                type="textarea"
+                :rows="4"
+              ></el-input>
+            </el-form-item>
+          </el-form>
+        </div>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogCG = false">取消</el-button>
-        <el-button type="primary" @click="submitChecks('listData')"
+        <el-button type="primary" @click="submitChecks('peopleList')"
           >确定</el-button
         >
       </span>
@@ -379,16 +404,38 @@ export default {
       total: 0, //一共多少条
       idcordList: "",
       copyAppid: "",
-      listData: {},
       dialogCG: false,
       peopleList: [],
       rules: {
         examStatus: [
           { required: true, message: "请选择考试登记状态", trigger: "change" },
         ],
+        performance: [
+          { required: true, message: "请输入考试成绩", trigger: "blur" },
+        ],
+        result: [
+          { required: true, message: "请选择考试结果", trigger: "change" },
+        ],
       },
     };
   },
+  computed: {
+    getTimes: function () {
+      return function (obj) {
+        var time = `${this.$methodsTools.onlyForma(
+          obj.applySiteExamTime,
+          false
+        )} ${obj.applySiteStartTime}:00`;
+        var newTime = new Date().getTime();
+        var theTime = new Date(time).getTime();
+        if (newTime > theTime && obj.examStatus == 1) {
+          return true;
+        } else {
+          return false;
+        }
+      };
+    },
+  },
   async mounted() {
     await this.getFirstOptions();
     this.search();
@@ -408,39 +455,34 @@ export default {
       this.peopleList = JSON.parse(
         JSON.stringify(this.$refs.tableList.allCheckData)
       );
-      this.listData = {};
       this.dialogCG = true;
-      this.$nextTick(() => {
-        this.$refs.listData.clearValidate();
-      });
+      // this.$nextTick(() => {
+      //   this.$refs.listData.clearValidate();
+      // });
     },
     submitChecks(formName) {
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          if (!this.listData.examStatus) {
-            this.$message.warning("请选择考试登记状态");
-            return;
+      var num = 0;
+      for (let i = 0; i < this.$refs[formName].length; i++) {
+        this.$refs[formName][i].validate((valid) => {
+          if (valid) {
+            num++;
+          } else {
+            console.log("error submit!!");
+            return false;
           }
-          this.submitForm();
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
-      });
+        });
+      }
+      if (num === this.$refs[formName].length) {
+        this.submitForm();
+      }
     },
     submitForm() {
-      var data = JSON.parse(JSON.stringify(this.listData));
-      var arrays = [];
-      this.peopleList.forEach((item) => {
-        arrays.push(item.subscribeId);
-      });
-      data.subscribeId = arrays;
-      this.$api.editsystemsubscribe(data).then((res) => {
+      var data = JSON.parse(JSON.stringify(this.peopleList));
+      this.$api.editMoresystemsubscribe(data).then((res) => {
         this.$message.success("批量考试登记修改成功");
         this.dialogCG = false;
         this.search();
-        this.$refs.tableList.allCheckData = [];
-        this.$refs.tableList.$refs.pagerset.clearSelection();
+        this.$refs.tableList.clearMoreActive();
       });
     },
     /**
@@ -562,6 +604,15 @@ export default {
 </script>
 
 <style lang="less" scoped>
+.aListBottom {
+  margin-left: 20px;
+  padding: 0px 6px;
+  border: 1px solid #999;
+  border-radius: 4px;
+  height: 30px;
+  line-height: 30px;
+  display: inline-block;
+}
 .liBVS {
   margin-right: 20px;
   margin-bottom: 12px;

+ 1 - 0
src/views/education/examManagement/examArrangement/index.vue

@@ -769,6 +769,7 @@ export default {
         {
           label: "预约/取消(人次)",
           prop: "people",
+          prop1: "cancelPeople",
           hidden: true,
           scope: "jumpPeolpe",
           type: 1,

+ 4 - 4
src/views/resource/bankManagement/testPaperManagement/addPaper/topicAddPaper/index.vue

@@ -1152,7 +1152,7 @@ export default {
         });
       }
       this.activeLists.forEach((item) => {
-        this.tableData.unshift(item);
+        this.tableData.push(item);
       });
       // this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisibleTable = false;
@@ -1499,7 +1499,7 @@ export default {
             } else {
               data.sort = 1;
             }
-            this.tableData.unshift(data);
+            this.tableData.push(data);
             // this.$api.addbankquestion(data).then((res) => {
             self.$message.success("添加成功");
             self.innerVisiblePaperTopic = false;
@@ -1532,7 +1532,7 @@ export default {
     addbankquestion(item) {
       return new Promise((resolve, reject) => {
         this.$api.addbankquestion(item).then((res) => {
-          resolve(res.data);
+          resolve(res.data.questionId);
         });
       });
     },
@@ -1590,7 +1590,7 @@ export default {
         data.answerNum = this.djNum;
       }
       this.$api.editbankexam(data).then((res) => {
-        this.$message.success("修改成功");
+        this.$message.success("编辑成功");
         setTimeout(async () => {
           await this.removeInfo();
           this.$store.dispatch("tagsView/exitView", this.$route).then(() => {

+ 3 - 3
src/views/resource/bankManagement/testPaperManagement/editPaper/topicEditPaper/index.vue

@@ -1207,7 +1207,7 @@ export default {
         });
       }
       this.activeLists.forEach((item) => {
-        this.tableData.unshift(item);
+        this.tableData.push(item);
       });
       this.dialogVisibleTable = false;
       this.$message.success("添加成功");
@@ -1556,7 +1556,7 @@ export default {
             } else {
               data.sort = 1;
             }
-            this.tableData.unshift(data);
+            this.tableData.push(data);
             // this.$api.addbankquestion(data).then((res) => {
             self.$message.success("添加成功");
             self.innerVisiblePaperTopic = false;
@@ -1589,7 +1589,7 @@ export default {
     addbankquestion(item) {
       return new Promise((resolve, reject) => {
         this.$api.addbankquestion(item).then((res) => {
-          resolve(res.data);
+          resolve(res.data.questionId);
         });
       });
     },

+ 13 - 2
src/views/resource/bankManagement/topicManagement/index.vue

@@ -420,7 +420,6 @@ export default {
       link.remove();
     },
     importMoble(e) {
-      console.log(e);
       var self = this;
       var file = e.target.files[0];
       let formData = new FormData();
@@ -428,7 +427,19 @@ export default {
       this.$api
         .importDatabankquestion(formData)
         .then((res) => {
-          self.$message.success("导入成功");
+          if (res.msg == "操作成功") {
+            self.$message.success("导入成功");
+          } else {
+            let url = baseUrls.baseURL + "common/download?fileName=" + res.msg;
+            let link = document.createElement("a");
+            let fileName = "导入模板" + ".xlsx";
+            document.body.appendChild(link);
+            link.href = url;
+            link.dowmload = fileName;
+            link.click();
+            link.remove();
+            self.$message.warning("导入有误,请打开文档查看错误原因");
+          }
         })
         .finally(() => {
           self.search();

+ 7 - 3
src/views/resource/bankManagement/volumeManagement/add/index.vue

@@ -322,9 +322,9 @@ export default {
       minTimeAll: 0, //总时长
       tableSet: [
         { label: "排序", prop: "sort", scope: "inputs", width: "100" },
-        { label: "章卷编码", prop: "code" },
-        { label: "标题前缀", prop: "prefixName", width: "120" },
-        { label: "章卷标题", prop: "name" },
+        { label: "章卷编码", prop: "code", width: "120" },
+        { label: "标题前缀", prop: "prefixName", width: "180" },
+        { label: "章卷标题", prop: "name", width: "320" },
         {
           label: "发布状态",
           prop: "publishStatus",
@@ -639,6 +639,10 @@ export default {
 </script>
 
 <style lang="less" scoped>
+.dis_flexbox {
+  display: flex;
+  flex-direction: column;
+}
 .boxWidth {
   width: 700px;
 }

+ 3 - 3
src/views/resource/bankManagement/volumeManagement/edit/index.vue

@@ -333,9 +333,9 @@ export default {
       minTimeAll: 0, //总时长
       tableSet: [
         { label: "排序", prop: "sort", scope: "inputs", width: "100" },
-        { label: "章卷编码", prop: "code" },
-        { label: "标题前缀", prop: "prefixName", width: "120" },
-        { label: "章卷标题", prop: "name" },
+        { label: "章卷编码", prop: "code", width: "120" },
+        { label: "标题前缀", prop: "prefixName", width: "180" },
+        { label: "章卷标题", prop: "name", width: "320" },
         {
           label: "发布状态",
           prop: "publishStatus",

+ 2 - 1
src/views/resource/bankManagement/volumeManagement/index.vue

@@ -115,13 +115,14 @@ export default {
           label: "标题前缀",
           prop: "prefixName",
           hidden: true,
+          width:"180px"
         },
         {
           label: "模块卷标题",
           prop: "moduleName",
           hidden: true,
           scope: "editInfo",
-          width:"130px"
+          width:"300px"
         },
         {
           label: "适用业务层级",

+ 1 - 1
src/views/resource/baseManageInfos/index.vue

@@ -62,7 +62,7 @@ export default {
           url: "label",
         },
         {
-          title: "科目/类目",
+          title: "科目",
           url: "suject",
         },
         {

+ 8 - 2
src/views/resource/baseManageInfos/resource/suject/index.vue

@@ -50,6 +50,7 @@
             :key="indexs"
             :label="items.label"
             :prop="items.prop"
+            :required="items.required"
           >
             <el-radio-group
               v-if="items.scope === 'status'"
@@ -165,7 +166,7 @@ export default {
       changeHeight: true,
       loading: false, //当前表单加载是否加载动画
       navText: {
-        title: "科目/类目",
+        title: "科目",
         index: 0,
         ch: "条",
         num: true,
@@ -221,6 +222,7 @@ export default {
         {
           label: "适用项目类型",
           scope: "certificate",
+          required:true
         },
         {
           label: "",
@@ -273,7 +275,7 @@ export default {
     this.search();
     this.initOptions();
   },
-  activated(){
+  activated() {
     this.search();
     this.initOptions();
   },
@@ -413,6 +415,10 @@ export default {
     submit(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
+          if (!this.cauType.length) {
+            this.$message.warning("请添加适用项目类型");
+            return;
+          }
           this.rulesTableSumbit();
         } else {
           return false;

+ 2 - 2
src/views/resource/videoManagement/chapter/add/index.vue

@@ -403,8 +403,8 @@ export default {
       tableSet: [
         { label: "排序", prop: "sort", scope: "inputs", width: "100" },
         { label: "节编码", prop: "code", width: "120" },
-        { label: "标题前缀", prop: "prefixName", width: "160" },
-        { label: "节标题", prop: "name", width: "210" },
+        { label: "标题前缀", prop: "prefixName", width: "180" },
+        { label: "节标题", prop: "name", width: "310" },
         { label: "节类型", prop: "sectionType", scope: "types" },
         {
           label: "发布状态",

+ 2 - 2
src/views/resource/videoManagement/chapter/edit/index.vue

@@ -406,8 +406,8 @@ export default {
       tableSet: [
         { label: "排序", prop: "sort", scope: "inputs", width: "100" },
         { label: "节编码", prop: "code", width: "120" },
-        { label: "标题前缀", prop: "prefixName", width: "160" },
-        { label: "节标题", prop: "name", width: "210" },
+        { label: "标题前缀", prop: "prefixName", width: "180" },
+        { label: "节标题", prop: "name", width: "310" },
         { label: "节类型", prop: "sectionType", scope: "types" },
         {
           label: "发布状态",

+ 2 - 2
src/views/resource/videoManagement/flow/index.vue

@@ -304,7 +304,7 @@ export default {
           prop: "streamingName",
           hidden: true,
           scope: "editInfo",
-          width: "120px",
+          width: "300px",
         },
         {
           label: "直播/录播/回放地址",
@@ -313,7 +313,7 @@ export default {
           prop2: "recordingVideoId",
           prop3: "playbackUrl",
           hidden: true,
-          width: "160px",
+          width: "300px",
           scope: "urlStatus",
         },
         {

+ 2 - 2
src/views/resource/videoManagement/moduleManagement/add/index.vue

@@ -403,8 +403,8 @@ export default {
       tableSet: [
         { label: "排序", prop: "sort", scope: "inputs", width: "100" },
         { label: "章编码", prop: "code", width: "120" },
-        { label: "标题前缀", prop: "prefixName", width: "160" },
-        { label: "章标题", prop: "name", width: "210" },
+        { label: "标题前缀", prop: "prefixName", width: "180" },
+        { label: "章标题", prop: "name", width: "310" },
         {
           label: "发布状态",
           prop: "publishStatus",

+ 2 - 2
src/views/resource/videoManagement/moduleManagement/edit/index.vue

@@ -408,8 +408,8 @@ export default {
       tableSet: [
         { label: "排序", prop: "sort", scope: "inputs", width: "100" },
         { label: "章编码", prop: "code", width: "120" },
-        { label: "标题前缀", prop: "prefixName", width: "160" },
-        { label: "章标题", prop: "name", width: "210" },
+        { label: "标题前缀", prop: "prefixName", width: "180" },
+        { label: "章标题", prop: "name", width: "310" },
         {
           label: "发布状态",
           prop: "publishStatus",

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików