Tang пре 4 година
родитељ
комит
2ff73ec82d
70 измењених фајлова са 3608 додато и 829 уклоњено
  1. 4 0
      src/api/api.js
  2. 1 0
      src/components/busIns.vue
  3. 13 3
      src/components/questionBank.vue
  4. 36 1
      src/components/searchBoxNew.vue
  5. 205 2
      src/components/tableList.vue
  6. 16 0
      src/newApi/applicationData.js
  7. 34 0
      src/newApi/profileStamp.js
  8. 34 0
      src/newApi/profiles.js
  9. 9 0
      src/utils/methodsTool.js
  10. 2 1
      src/utils/request.js
  11. 253 136
      src/views/Marketing/commodityManageMent/add/index.vue
  12. 119 68
      src/views/Marketing/commodityManageMent/edit/index.vue
  13. 9 5
      src/views/Marketing/commodityManageMent/index.vue
  14. 4 0
      src/views/Marketing/commodityManageMent/poppleSet.vue
  15. 1 0
      src/views/Marketing/commodityManageMent/poppleSetTK.vue
  16. 132 34
      src/views/Marketing/orderList/add/order/index.vue
  17. 11 2
      src/views/Marketing/orderList/add/orderPrice/index.vue
  18. 8 18
      src/views/Marketing/orderList/index.vue
  19. 4 4
      src/views/education/classManageMent/classHoursReview/index.vue
  20. 7 0
      src/views/education/classManageMent/classList/addClass/index.vue
  21. 4 0
      src/views/education/classManageMent/classList/index.vue
  22. 16 0
      src/views/education/classManageMent/classList/manageClass/baseInfo.vue
  23. 8 4
      src/views/education/classManageMent/classList/manageClass/studentRecords.vue
  24. 4 4
      src/views/education/classManageMent/studentMenu/index.vue
  25. 850 5
      src/views/education/dataReview/dataConfig/index.vue
  26. 21 8
      src/views/education/dataReview/informationTemplate/index.vue
  27. 777 0
      src/views/education/dataReview/stamp/index.vue
  28. 86 26
      src/views/education/examManagement/applicationData/asPlanned.vue
  29. 4 0
      src/views/education/examManagement/applicationData/byTrainee.vue
  30. 1 0
      src/views/education/examManagement/applicationData/index.vue
  31. 14 3
      src/views/education/examManagement/examArrangement/index.vue
  32. 37 29
      src/views/education/examManagement/examConfiguration/examNum/index.vue
  33. 4 0
      src/views/education/examManagement/examConfiguration/examPlace/index.vue
  34. 9 1
      src/views/education/examManagement/qianpeiArrange/index.vue
  35. 24 23
      src/views/education/notificationManageMent/notificationList/add/index.vue
  36. 11 7
      src/views/education/notificationManageMent/notificationList/edit/index.vue
  37. 19 7
      src/views/education/notificationManageMent/notificationList/index.vue
  38. 5 1
      src/views/education/notificationManageMent/notificationList/info/recipientList.vue
  39. 4 0
      src/views/education/studentManageMent/studentList/index.vue
  40. 3 0
      src/views/education/studentManageMent/studentXQ/studentBaseManage.vue
  41. 5 0
      src/views/education/teacher/teacherList/index.vue
  42. 20 7
      src/views/resource/bankManagement/chapterVolumeManagement/add/index.vue
  43. 18 9
      src/views/resource/bankManagement/chapterVolumeManagement/edit/index.vue
  44. 4 0
      src/views/resource/bankManagement/chapterVolumeManagement/index.vue
  45. 14 3
      src/views/resource/bankManagement/knowledgeManagement/index.vue
  46. 1 1
      src/views/resource/bankManagement/testPaperManagement/addPaper/baseAddPaper/index.vue
  47. 40 7
      src/views/resource/bankManagement/testPaperManagement/addPaper/topicAddPaper/index.vue
  48. 5 3
      src/views/resource/bankManagement/testPaperManagement/editPaper/baseEditPaper/index.vue
  49. 104 67
      src/views/resource/bankManagement/testPaperManagement/editPaper/topicEditPaper/index.vue
  50. 4 0
      src/views/resource/bankManagement/testPaperManagement/index.vue
  51. 117 94
      src/views/resource/bankManagement/topicManagement/index.vue
  52. 60 26
      src/views/resource/bankManagement/volumeManagement/add/index.vue
  53. 69 34
      src/views/resource/bankManagement/volumeManagement/edit/index.vue
  54. 5 1
      src/views/resource/bankManagement/volumeManagement/index.vue
  55. 2 4
      src/views/resource/baseManageInfos/resource/colleges/index.vue
  56. 4 0
      src/views/resource/handoutManagement/handoutList/index.vue
  57. 2 2
      src/views/resource/videoManagement/chapter/add/index.vue
  58. 2 2
      src/views/resource/videoManagement/chapter/edit/index.vue
  59. 4 0
      src/views/resource/videoManagement/chapter/index.vue
  60. 191 92
      src/views/resource/videoManagement/courseManagement/chapterContent/index.vue
  61. 4 0
      src/views/resource/videoManagement/courseManagement/index.vue
  62. 4 0
      src/views/resource/videoManagement/festival/index.vue
  63. 5 0
      src/views/resource/videoManagement/flow/index.vue
  64. 19 17
      src/views/resource/videoManagement/moduleManagement/add/index.vue
  65. 20 17
      src/views/resource/videoManagement/moduleManagement/edit/index.vue
  66. 4 0
      src/views/resource/videoManagement/moduleManagement/index.vue
  67. 13 7
      src/views/systemManagement/accountManagement/index.vue
  68. 15 12
      src/views/systemManagement/registeredUser/index.vue
  69. 2 2
      src/views/systemManagement/roleManagement/index.vue
  70. 48 30
      src/views/systemManagement/systemConfig/videoConfig/index.vue

+ 4 - 0
src/api/api.js

@@ -82,6 +82,8 @@ import examapply from '../newApi/examapply'//考试安排
 import qianpeiApi from '../newApi/qianpeiApi'//前培
 import applicationData from '../newApi/applicationData'//报考数据
 import polyv from '../newApi/polyv'//保利威
+import profiles from '../newApi/profiles'//填写资料审核管理
+import profileStamp from '../newApi/profileStamp'//盖章资料审核管理
 
 // 导入对应模块------------------------
 export default {
@@ -142,6 +144,8 @@ export default {
     ...qianpeiApi,
     ...applicationData,
     ...polyv,
+    ...profiles,
+    ...profileStamp,
 
     // ...login,
     // ...profession,

+ 1 - 0
src/components/busIns.vue

@@ -6,6 +6,7 @@
         :key="indexs"
         :label="items.label"
         :prop="items.prop"
+        :required="true"
       >
         <div v-if="items.scope === 'buss'">
           <el-select

+ 13 - 3
src/components/questionBank.vue

@@ -78,7 +78,10 @@
             dingForm.type === 1 || dingForm.type === 2 || dingForm.type === 5
           "
         >
-          <span class="spans"><span style="color: red">* </span>选项:</span>
+          <span class="spans"
+            ><span style="color: red" v-if="dingForm.type !== 5">* </span
+            >选项:</span
+          >
           <div style="flex: 1">
             <div
               style="display: flex; align-items: center; margin-bottom: 8px"
@@ -246,7 +249,8 @@
                 v-if="ans.type === 1 || ans.type === 2 || ans.type === 5"
               >
                 <span class="spans"
-                  ><span style="color: red">* </span>选项:</span
+                  ><span style="color: red" v-if="ans.type !== 5">* </span
+                  >选项:</span
                 >
                 <div style="flex: 1">
                   <div
@@ -348,6 +352,7 @@
                   v-model="ans.answerQuestion"
                 >
                   <el-radio
+                    style="margin-right: 12px"
                     :disabled="statusPop === 2"
                     :label="oindexsz + 1 + ''"
                     >选项{{ oindexsz + 1 }}</el-radio
@@ -360,6 +365,7 @@
                 >
                 <el-checkbox-group v-model="ans.answerQuestionList">
                   <el-checkbox
+                    style="margin-right: 12px"
                     v-for="(oAsz, oindexsz) in ans.optionsList"
                     :key="oindexsz"
                     :disabled="statusPop === 2"
@@ -404,7 +410,10 @@
             :key="oindex"
             v-model="dingForm.answerQuestion"
           >
-            <el-radio :disabled="statusPop === 2" :label="oindex + 1 + ''"
+            <el-radio
+              style="margin-right: 12px"
+              :disabled="statusPop === 2"
+              :label="oindex + 1 + ''"
               >选项{{ oindex + 1 }}</el-radio
             >
           </el-radio-group>
@@ -415,6 +424,7 @@
           >
           <el-checkbox-group v-model="dingForm.answerQuestionList">
             <el-checkbox
+              style="margin-right: 12px"
               v-for="(oA, oindex) in dingForm.optionsList"
               :key="oindex"
               :disabled="statusPop === 2"

+ 36 - 1
src/components/searchBoxNew.vue

@@ -13,6 +13,19 @@
         >
       </div>
     </div>
+    <div class="inputListBox" v-if="shType">
+      <div class="fon_s">审核状态:</div>
+      <div>
+        <el-button
+          :type="formData.status === item.value ? 'primary' : ''"
+          :size="size"
+          v-for="(item, index) in lists5"
+          :key="index"
+          @click="topSearchsh(item.value)"
+          >{{ item.label }}</el-button
+        >
+      </div>
+    </div>
     <!-- <div class="inputListBox" v-if="classType">
       <div>
         <el-button
@@ -302,7 +315,7 @@
 <script>
 import { mapGetters } from "vuex";
 export default {
-  props: ["formList", "topType", "formData"], //参考文档 component.md
+  props: ["formList", "topType", "formData","shType"], //参考文档 component.md
   data() {
     return {
       lists: [
@@ -327,6 +340,24 @@ export default {
           value: 4,
         },
       ],
+      lists5:[
+        {
+          label: "全部",
+          value: "",
+        },
+        {
+          label: "通过",
+          value: 1,
+        },
+        {
+          label: "待审核",
+          value: 2,
+        },
+        {
+          label: "不通过",
+          value: 3,
+        }
+      ],
       // classLists: [
       //   {
       //     label: "全部",
@@ -454,6 +485,10 @@ export default {
       this.formData.goodsType = status;
       this.$emit("search", 3);
     },
+    topSearchsh(types) {
+      this.formData.status = types;
+      this.$emit("search", 3);
+    },
     // classSearch(status) {
     //   this.formData.classType = status;
     //   this.$emit("search", 3);

+ 205 - 2
src/components/tableList.vue

@@ -187,6 +187,29 @@
                 ? "回放"
                 : "未知"
             }}</span>
+            <span v-else-if="item.scope === 'getShops'">
+              {{
+                scope.row["goodsCode"] +
+                "-" +
+                scope.row["goodsName"] +
+                " (" +
+                scope.row["educationName"] +
+                "-" +
+                scope.row["projectName"] +
+                "-" +
+                scope.row["businessName"] +
+                ")"
+              }}
+            </span>
+            <span
+              v-else-if="
+                item.scope === 'treeWatch' &&
+                (scope.row['goodsType'] === 1 || scope.row['goodsType'] === 2)
+              "
+              style="color: blue"
+              @click="scope.row['goodsType'] === 1 ? diavios(scope.row['goodsId']) : diaviosTK(scope.row['goodsId'])"
+              >结构树视图</span
+            >
             <span v-else-if="item.scope === 'leftCh'">
               {{ item.ch }}{{ scope.row[item.prop] }}
             </span>
@@ -612,11 +635,11 @@
                 {{ $methodsTools.onlyForma(scope.row[item.prop2], false) }}
                 <span
                   >{{
-                    scope.row[item.prop3].indexOf("-") !== -1
+                    scope.row[item.prop3]
                       ? scope.row[item.prop3].replace("-", ":")
                       : scope.row[item.prop3]
                   }}-{{
-                    scope.row[item.prop4].indexOf("-") !== -1
+                    scope.row[item.prop4]
                       ? scope.row[item.prop4].replace("-", ":")
                       : scope.row[item.prop4]
                   }}</span
@@ -1021,6 +1044,9 @@
                   : ""
               }}
             </span>
+            <span v-else-if="item.scope === 'isOKs'" style="color: red"
+              >审核通过</span
+            >
             <span v-else-if="item.scope === 'classTypes'">
               {{
                 scope.row[item.prop] === 1
@@ -1134,6 +1160,7 @@
                 <span
                   :key="indext"
                   v-if="itemt.value === scope.row[item.prop]"
+                  :style="itemt.style ? itemt.style : ''"
                   >{{ itemt.label }}</span
                 >
               </template>
@@ -1263,6 +1290,62 @@
         <el-button @click="closes">取 消</el-button>
       </span>
     </el-dialog>
+    <el-dialog
+      :visible.sync="diaviosOpen"
+      width="560px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">商品树形图</div>
+        <div class="rightBoxs">
+          <img
+            src="@/assets/images/Close@2x.png"
+            alt=""
+            @click="diaviosOpen = false"
+          />
+        </div>
+      </div>
+      <div>
+        <el-tree
+          :key="Math.random()"
+          :props="props1"
+          :load="loadNode1"
+          lazy
+        ></el-tree>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="diaviosOpen = false">取 消</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      :visible.sync="diaviosTKOpen"
+      width="560px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">商品树形图</div>
+        <div class="rightBoxs">
+          <img
+            src="@/assets/images/Close@2x.png"
+            alt=""
+            @click="diaviosTKOpen = false"
+          />
+        </div>
+      </div>
+      <div>
+        <el-tree
+          :key="Math.random()"
+          :props="props2"
+          :load="loadNode2"
+          lazy
+        ></el-tree>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="diaviosTKOpen = false">取 消</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -1271,6 +1354,8 @@ export default {
   props: ["tableSets", "tableData", "navText", "rowKey", "loading"],
   data: function () {
     return {
+      diaviosOpen: false,
+      diaviosTKOpen:false,
       dialogVisible: false,
       tableSet: this.tableSets,
       allCheckData: [], //表格多选
@@ -1288,7 +1373,25 @@ export default {
           return data.hasChildren ? false : true;
         },
       },
+      props1: {
+        label(data, node) {
+          return data.courseName || data.menuName || data.name;
+        },
+        isLeaf(data, node) {
+          return data.hasChildren ? false : true;
+        },
+      },
+      props2: {
+        label(data, node) {
+          return data.examName || data.menuName || data.name;
+        },
+        isLeaf(data, node) {
+          return data.hasChildren ? false : true;
+        },
+      },
       treeDatas: [],
+      treeDatas1: [],
+      treeDatas2: [],
     };
   },
   computed: {
@@ -1466,6 +1569,106 @@ export default {
         }
       }
     },
+    diavios(ids) {
+        this.$api.obtainCourseSgoodsId(ids).then((res) => {
+          res.rows.forEach((item) => {
+            item.TypeId = "0-" + item.courseId;
+            item.type = 0;
+            item.hasChildren = true;
+          });
+          this.treeDatas1 = res.rows;
+          this.diaviosOpen = true;
+        });
+    },
+    loadNode1(node, resolve) {
+      if (node.level === 0) {
+        return resolve(this.treeDatas1);
+      } else {
+        if (node.data.type === 0) {
+          this.$api
+            .inquireCoursemenuListS({ courseId: node.data.courseId })
+            .then((res) => {
+              res.rows.forEach((item) => {
+                item.TypeId = 1 + "-" + item.menuId;
+                item.hasChildren = item.type === 3 ? false : true;
+                item.menuId = item.menuId;
+              });
+              return resolve(res.rows);
+            });
+        }
+        if (node.data.type === 1) {
+          this.$api
+            .inquireCourseListmodulechapter(node.data.courseId)
+            .then((res) => {
+              res.data.forEach((item) => {
+                item.TypeId = 2 + "-" + item.chapterId;
+                item.hasChildren = true;
+                item.menuId = item.chapterId;
+                item.type = 2;
+              });
+              return resolve(res.data);
+            });
+        }
+        if (node.data.type === 2) {
+          this.$api
+            .inquireCoursechaptersectionlist(node.data.menuId)
+            .then((res) => {
+              res.data.forEach((item) => {
+                item.TypeId = 3 + "-" + item.sectionId;
+                item.type = 3;
+              });
+              return resolve(res.data);
+            });
+        }
+        if (node.data.type === 3) {
+          return resolve([]);
+        }
+      }
+    },
+    diaviosTK(ids) {
+        this.$api.inquireGoodsbanklist({ goodsId: ids }).then((res) => {
+          res.data.forEach((item) => {
+            item.TypeId = item.type + "-" + item.majorId;
+            item.hasChildren = item.type === 3 ? false:true;
+          });
+          this.treeDatas2 = res.data;
+          this.diaviosTKOpen = true;
+        });
+    },
+    loadNode2(node, resolve) {
+      if (node.level === 0) {
+        return resolve(this.treeDatas2);
+      } else {
+        if (node.data.type === 1) {
+          this.$api
+            .inquireBankchapterModule({ moduleExamId: node.data.majorId })
+            .then((res) => {
+              res.data.forEach((item) => {
+                item.TypeId = 2 + "-" + item.chapterExamId;
+                item.menuId = item.chapterExamId;
+                item.type = 2;
+              });
+              return resolve(res.data);
+            });
+        }
+        if (node.data.type === 2) {
+          this.$api
+            .inquirebankchapterexamList({
+              chapterExamId: node.data.majorId,
+            })
+            .then((res) => {
+              res.data.forEach((item) => {
+                item.TypeId = 3 + "-" + item.examId;
+                item.type = 3;
+              });
+              return resolve(res.data);
+            });
+        }
+        if (node.data.type === 3) {
+          return resolve([]);
+        }
+      }
+    },
     timeStyle(column) {
       if (column.columnIndex === 0 && this.navText.firstColLeft) {
         return "text-align:left!important;  padding-left: 40px;";

+ 16 - 0
src/newApi/applicationData.js

@@ -16,6 +16,22 @@ export default {
             data
         })
     },
+    //导入新增预约考试模板
+    editsystemimportDatae(data) {
+        return request({
+            url: '/system/subscribe/importData',
+            method: 'post',
+            data
+        })
+    },
+    //导入修改预约考试模板
+    editsystemimportUpdateData(data) {
+        return request({
+            url: '/system/subscribe/importUpdateData',
+            method: 'post',
+            data
+        })
+    },
     //查询详细商品考试次数,前培次数
     inquiresystemsubscribeUserExam(data) {
         return request({

+ 34 - 0
src/newApi/profileStamp.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //审核盖章
+    editbaseprofileStampss(data) {
+        return request({
+            url: '/base/profileStamp',
+            method: 'post',
+            data
+        })
+    },
+    //查询填写盖章审核列表
+    inquirebaseprofileStamp(data) {
+        return request({
+            url: '/base/profileStamp/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //查询填写盖章审记录列表
+    inquirebaseprofileStamplistRecord(data) {
+        return request({
+            url: '/base/profileStamp/listRecord',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取填写盖章审核详细信息
+    obtainbaseprofileStamp(data) {
+        return request({
+            url: `/base/profileStamp/` + data,
+            method: 'get',
+        })
+    },
+}

+ 34 - 0
src/newApi/profiles.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //修改填写资料审核
+    editbaseprofilesss(data) {
+        return request({
+            url: '/base/profile',
+            method: 'post',
+            data
+        })
+    },
+    //查询填写资料审核列表
+    inquirebaseprofile(data) {
+        return request({
+            url: '/base/profile/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //查询填写资料审记录列表
+    inquirebaseprofilelistRecord(data) {
+        return request({
+            url: '/base/profile/listRecord',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取填写资料审核详细信息
+    obtainbaseprofile(data) {
+        return request({
+            url: `/base/profile/` + data,
+            method: 'get',
+        })
+    },
+}

+ 9 - 0
src/utils/methodsTool.js

@@ -155,6 +155,15 @@ export default {
 		// 	return parseInt(s) + '秒';
 		// }
 	},
+	//判断是否过期 true过期 false未过期
+	expiredTime(items){
+		var currentTime = parseInt(Date.parse(new Date())/1000)
+		if(currentTime > items){
+			return true
+		}else{
+			return false
+		}
+	},
 	getQueryVariable(variable) {
 		var query = window.location.search.substring(1);
 		var vars = query.split("&");

+ 2 - 1
src/utils/request.js

@@ -7,10 +7,11 @@ import methods from '@/utils/methodsTool';
 
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 // 创建axios实例
+export const baseURL = 'http://192.168.1.222:5030/'
 const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分
   // baseURL: 'http://192.168.1.24:5030/',
-  baseURL: 'http://192.168.1.222:5030/',
+  baseURL: baseURL,
   // baseURL: process.env.VUE_APP_BASE_API,
   // baseURL: 'https://cloud.xyyxt.net/',
 

+ 253 - 136
src/views/Marketing/commodityManageMent/add/index.vue

@@ -600,8 +600,16 @@
           </el-col>
         </el-row>
       </div>
-      <h5 class="fengs">颁发证书</h5>
-      <div class="dis_fs">
+      <h5
+        class="fengs"
+        v-if="listData.goodsType === 1 || listData.goodsType === 2"
+      >
+        颁发证书
+      </h5>
+      <div
+        class="dis_fs"
+        v-if="listData.goodsType === 1 || listData.goodsType === 2"
+      >
         <el-popover placement="bottom" trigger="click">
           <el-checkbox-group v-model="listData.certificateIds">
             <el-checkbox
@@ -686,10 +694,10 @@
     </div>
     <div style="text-align: center; margin-top: 20px">
       <el-button @click="backPage" size="mini">取消</el-button>
-      <el-button type="primary" @click="submit('listData', 1)" size="mini"
+      <el-button type="primary" @click="submit('listData', 1)" size="mini" :loading="disabledBtn"
         >保存</el-button
       >
-      <el-button type="primary" @click="submit('listData', 2)" size="mini"
+      <el-button type="primary" @click="submit('listData', 2)" size="mini" :loading="disabledBtn"
         >上架</el-button
       >
     </div>
@@ -1123,7 +1131,7 @@
             <el-radio-group
               v-model="photoVideoList.photographConfig.photograph"
             >
-              <el-radio :label="1">是</el-radio>
+              <el-radio :label="1" @change="photoVideoList.photographConfig.intervalTime.push(0)">是</el-radio>
               <el-radio
                 :label="0"
                 @change="photoVideoList.photographConfig.intervalTime = []"
@@ -1134,7 +1142,7 @@
               size="mini"
               style="margin-left: 10px"
               v-if="photoVideoList.photographConfig.photograph === 1"
-              @click="photoVideoList.photographConfig.intervalTime.push('')"
+              @click="photoVideoList.photographConfig.intervalTime.push(0)"
               >添加</el-button
             >
           </div>
@@ -1149,7 +1157,7 @@
                 :controls="false"
                 v-model="photoVideoList.photographConfig.intervalTime[indexs]"
                 style="width: 60px"
-                :precision="0"
+                :precision="2"
                 size="mini"
               ></el-input-number
               >分钟
@@ -1170,7 +1178,7 @@
             <el-radio-group
               v-model="photoVideoList.goodsPhotographExamConfig.photograph"
             >
-              <el-radio :label="1">是</el-radio>
+              <el-radio :label="1" @change="photoVideoList.goodsPhotographExamConfig.intervalTime.push(0)">是</el-radio>
               <el-radio
                 :label="0"
                 @change="
@@ -1184,7 +1192,7 @@
               style="margin-left: 10px"
               v-if="photoVideoList.goodsPhotographExamConfig.photograph === 1"
               @click="
-                photoVideoList.goodsPhotographExamConfig.intervalTime.push('')
+                photoVideoList.goodsPhotographExamConfig.intervalTime.push(0)
               "
               >添加</el-button
             >
@@ -1309,6 +1317,15 @@
 </template>
 
 <script>
+import {
+  listConfig,
+  getConfig,
+  delConfig,
+  addConfig,
+  updateConfig,
+  exportConfig,
+  refreshCache,
+} from "@/api/system/config";
 import searchBoxNew from "@/components/searchBoxNew";
 import poppleSet from "../poppleSet.vue";
 import poppleSetTk from "../poppleSetTK.vue";
@@ -1318,6 +1335,7 @@ export default {
   components: { searchBoxNew, Editor, pagination, poppleSet, poppleSetTk },
   data() {
     return {
+      disabledBtn:false,
       photoVideoList: {
         playConfig: {
           autoPlay: 0,
@@ -1593,42 +1611,42 @@ export default {
       formDatajy: {
         pageNum: 1,
         pageSize: 10,
-        status: "0,1",
+        status: 1,
       },
       formListjy: [
+        // {
+        //   prop: "educationTypeId",
+        //   placeholder: "教育类型",
+        //   scope: "educationType",
+        // },
+        // {
+        //   prop: "businessId",
+        //   placeholder: "业务层次",
+        //   scope: "businessLevel",
+        //   edu: "educationTypeId",
+        // },
+        // {
+        //   prop: "status",
+        //   placeholder: "发布状态",
+        //   scope: "select",
+        //   options: [
+        //     {
+        //       label: "全部状态",
+        //       value: "0,1",
+        //     },
+        //     {
+        //       label: "已发布",
+        //       value: 1,
+        //     },
+        //     {
+        //       label: "未发布",
+        //       value: 0,
+        //     },
+        //   ],
+        // },
         {
-          prop: "educationTypeId",
-          placeholder: "教育类型",
-          scope: "educationType",
-        },
-        {
-          prop: "businessId",
-          placeholder: "业务层次",
-          scope: "businessLevel",
-          edu: "educationTypeId",
-        },
-        {
-          prop: "status",
-          placeholder: "发布状态",
-          scope: "select",
-          options: [
-            {
-              label: "全部状态",
-              value: "0,1",
-            },
-            {
-              label: "已发布",
-              value: 1,
-            },
-            {
-              label: "未发布",
-              value: 0,
-            },
-          ],
-        },
-        {
-          prop: "handoutsName",
-          placeholder: "请输入讲义名称",
+          prop: "key",
+          placeholder: "请输入讲义标题/讲义编码",
         },
       ],
       total3: 0,
@@ -1639,7 +1657,7 @@ export default {
         examType: 1,
         educationTypeId: "",
         businessId: "",
-        names:''
+        names:""
       },
       formList3: [
         // {
@@ -1729,6 +1747,7 @@ export default {
         currentPage: 1, //当前页码
         educationTypeId: "",
         businessId: "",
+        publishStatus: 1,
       },
       formLists: [
         // {
@@ -1754,24 +1773,24 @@ export default {
           scope: "Professional",
           edu: "educationTypeId",
         },
+        // {
+        //   prop: "publishStatus",
+        //   placeholder: "发布状态",
+        //   scope: "select",
+        //   options: [
+        //     {
+        //       label: "已发布",
+        //       value: 1,
+        //     },
+        //     {
+        //       label: "未发布",
+        //       value: 0,
+        //     },
+        //   ],
+        // },
         {
-          prop: "publishStatus",
-          placeholder: "发布状态",
-          scope: "select",
-          options: [
-            {
-              label: "已发布",
-              value: 1,
-            },
-            {
-              label: "未发布",
-              value: 0,
-            },
-          ],
-        },
-        {
-          prop: "courseName",
-          placeholder: "请输入课程名称",
+          prop: "key",
+          placeholder: "请输入课程标题/课程编码",
         },
       ],
       disCheckList: [],
@@ -1873,6 +1892,57 @@ export default {
     this.getDict();
   },
   mounted() {
+    listConfig().then((res) => {
+      for (let i = 0; i < res.rows.length; i++) {
+        if (res.rows[i].configKey == "sys.play.autoPlay") {
+          //自动播放
+          this.photoVideoList.playConfig.autoPlay = Number(
+            res.rows[i].configValue
+          );
+        }
+        if (res.rows[i].configKey == "sys.play.drag") {
+          //"进度条拖拉"
+          this.photoVideoList.playConfig.drag = Number(res.rows[i].configValue);
+        }
+        if (res.rows[i].configKey == "sys.play.speed") {
+          //"倍速播放"
+          this.$set(
+            this.photoVideoList.playConfig,
+            "speed",
+            Number(res.rows[i].configValue)
+          );
+        }
+        if (res.rows[i].configKey == "sys.course.photograph") {
+          //"课程拍照"
+          this.photoVideoList.photographConfig.photograph = Number(
+            res.rows[i].configValue
+          );
+        }
+        if (res.rows[i].configKey == "sys.course.intervalTime") {
+          //"间隔时间设置"
+          if (res.rows[i].configValue) {
+            this.photoVideoList.photographConfig.intervalTime = res.rows[
+              i
+            ].configValue
+              .split(",")
+              .map(Number);
+          }
+        }
+        if (res.rows[i].configKey == "sys.paper.photograph") {
+          //"章节试卷拍照"
+          this.photoVideoList.goodsPhotographExamConfig.photograph = Number(
+            res.rows[i].configValue
+          );
+        }
+        if (res.rows[i].configKey == "sys.paper.intervalNumber") {
+          //"间隔数量设置"
+          if (res.rows[i].configValue) {
+            this.photoVideoList.goodsPhotographExamConfig.intervalTime =
+              res.rows[i].configValue.split(",").map(Number);
+          }
+        }
+      }
+    });
     // this.getJyData();
   },
   methods: {
@@ -1939,37 +2009,37 @@ export default {
     },
     //打开播放和拍照设置窗口
     openPZ() {
-      if (this.listData.playConfig) {
-        this.photoVideoList.playConfig = JSON.parse(
-          JSON.stringify(this.listData.playConfig)
-        );
-      } else {
-        this.photoVideoList.playConfig = {
-          autoPlay: 0,
-          drag: 0,
-          speed: 0,
-        };
-      }
-      if (this.listData.photographConfig) {
-        this.photoVideoList.photographConfig = JSON.parse(
-          JSON.stringify(this.listData.photographConfig)
-        );
-      } else {
-        this.photoVideoList.photographConfig = {
-          photograph: 0,
-          intervalTime: [],
-        };
-      }
-      if (this.listData.goodsPhotographExamConfig) {
-        this.photoVideoList.goodsPhotographExamConfig = JSON.parse(
-          JSON.stringify(this.listData.goodsPhotographExamConfig)
-        );
-      } else {
-        this.photoVideoList.goodsPhotographExamConfig = {
-          photograph: 0,
-          intervalTime: [],
-        };
-      }
+      // if (this.listData.playConfig) {
+      //   this.photoVideoList.playConfig = JSON.parse(
+      //     JSON.stringify(this.listData.playConfig)
+      //   );
+      // } else {
+      //   this.photoVideoList.playConfig = {
+      //     autoPlay: 0,
+      //     drag: 0,
+      //     speed: 0,
+      //   };
+      // }
+      // if (this.listData.photographConfig) {
+      //   this.photoVideoList.photographConfig = JSON.parse(
+      //     JSON.stringify(this.listData.photographConfig)
+      //   );
+      // } else {
+      //   this.photoVideoList.photographConfig = {
+      //     photograph: 0,
+      //     intervalTime: [],
+      //   };
+      // }
+      // if (this.listData.goodsPhotographExamConfig) {
+      //   this.photoVideoList.goodsPhotographExamConfig = JSON.parse(
+      //     JSON.stringify(this.listData.goodsPhotographExamConfig)
+      //   );
+      // } else {
+      //   this.photoVideoList.goodsPhotographExamConfig = {
+      //     photograph: 0,
+      //     intervalTime: [],
+      //   };
+      // }
       this.dialogPhoto = true;
     },
     //提交播放和拍照设置
@@ -2079,10 +2149,14 @@ export default {
         this.formDatajy = {
           pageNum: 1,
           pageSize: 10,
-          status: "0,1",
+          status: 1,
+          key: "",
         };
       }
-      this.$api.inquireCourseHandoutsList(this.formDatajy).then((res) => {
+      var data = JSON.parse(JSON.stringify(this.formDatajy));
+      data.educationTypeId = this.listData.educationTypeId;
+      data.businessId = this.listData.businessId;
+      this.$api.inquireCourseHandoutsList(data).then((res) => {
         this.totaljy = res.total;
         this.jYtableData = res.rows;
       });
@@ -2096,10 +2170,15 @@ export default {
       this.aboutJYBox = false;
     },
     openJY() {
+      if (!this.listData.businessId) {
+        this.$message.warning("请选择业务层次");
+        return;
+      }
       this.aboutJYBox = true;
       this.handoutsIdTable = this.listData.handoutsId;
     },
     openJYActiveBox() {
+      this.getJyData(2);
       this.jYactiveBoxs = true;
       this.templateRadio = this.handoutsIdTable;
     },
@@ -2211,13 +2290,14 @@ export default {
           this.newMajorOption = newMajorOption;
         }
       });
-      if(this.listData.goodsType === 1){
-        this.tableData = []
-        this.auditionList = []
+      if (this.listData.goodsType === 1) {
+        this.tableData = [];
+        this.auditionList = [];
+        this.listData.handoutsId = "";
       }
-      if(this.listData.goodsType === 2){
-        this.tableData2 = []
-        this.examConfigList = []
+      if (this.listData.goodsType === 2) {
+        this.tableData2 = [];
+        this.examConfigList = [];
       }
     },
     getImgFile() {
@@ -2292,6 +2372,12 @@ export default {
       });
     },
     rulesTableSumbit(int) {
+      this.disabledBtn = true
+      setTimeout(()=>{
+        if(this.disabledBtn){
+          this.disabledBtn = false
+        }
+      },3000)
       var datas = JSON.parse(JSON.stringify(this.listData));
       if (int === 2) {
         datas.goodsStatus = 1;
@@ -2386,7 +2472,9 @@ export default {
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else if (this.listData.goodsType === 2) {
         var courseIdList = [];
         this.tableData2.map((item) => {
@@ -2428,21 +2516,27 @@ export default {
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else if (this.listData.goodsType === 3) {
         this.$api.addGoodsmake(datas).then((res) => {
           this.$message.success("新增成功");
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else if (this.listData.goodsType === 4) {
         this.$api.addGoodsfront(datas).then((res) => {
           this.$message.success("新增成功");
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else {
       }
     },
@@ -2523,6 +2617,7 @@ export default {
           pageNum: 1,
           educationTypeId: this.listData.educationTypeId,
           businessId: this.listData.businessId,
+          publishStatus: 1,
         };
       }
       this.$api.inquireCourseListS(this.formDatas).then((res) => {
@@ -2539,6 +2634,7 @@ export default {
         status: 1,
         pageSize: 10,
         pageNum: 1,
+        publishStatus: 1,
       };
       if (this.listData.educationTypeId) {
         data.educationTypeId = this.listData.educationTypeId;
@@ -2561,7 +2657,7 @@ export default {
           self.$refs.searchBox.changeEducationType(
             self.listData.educationTypeId
           );
-          self.formDatas.businessId = self.listData.businessId;
+          // self.formDatas.businessId = self.listData.businessId;
         });
       });
     },
@@ -2633,14 +2729,14 @@ export default {
       this.formData3.pageNum = 1;
       // this.formData3.educationTypeId = "";
       // this.formData3.businessId = "";
-      this.formData3.names = ''
+      this.formData3.names = "";
       this.search3();
     },
     search3(int) {
       var self = this;
-      var data = JSON.parse(JSON.stringify(self.formData3))
-      if (self.formData3.examType === 1) {
-        data.moduleName = data.names
+      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;
@@ -2648,24 +2744,38 @@ export default {
             item.name = item.moduleName;
             item.sort = 0;
           });
+          var aList = [];
+          self.tableData2.map((item) => {
+            if (item.type === 1) {
+              aList.push(item.moduleExamId);
+            }
+          });
+          self.disCheckList2.moduleCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
         });
       }
-      if (self.formData3.examType === 2) {
-        data.name = data.names
+      if (data.examType === 2) {
+        data.name = data.names;
         self.$api.inquirebankchapterList(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 2 + "-" + item.chapterExamId;
             item.sort = 0;
             item.type = 2;
           });
+          var aList = [];
+          self.tableData2.map((item) => {
+            if (item.type === 2) {
+              aList.push(item.chapterExamId);
+            }
+          });
+          self.disCheckList2.chapterCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
         });
       }
-      if (self.formData3.examType === 3) {
-        data.examName = data.names
+      if (data.examType === 3) {
+        data.examName = data.names;
         self.$api.inquirebankexamList(data).then((res) => {
           res.rows.forEach((item) => {
             item.ids = 3 + "-" + item.examId;
@@ -2673,6 +2783,13 @@ export default {
             item.type = 3;
             item.name = item.examName;
           });
+          var aList = [];
+          self.tableData2.map((item) => {
+            if (item.type === 3) {
+              aList.push(item.examId);
+            }
+          });
+          self.disCheckList2.examCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
         });
@@ -2680,7 +2797,6 @@ export default {
     },
     editAddBoxs2(int) {
       var self = this;
-      self.formData3.examType = 1
       var data = JSON.parse(JSON.stringify(this.formData3));
       if (this.listData.educationTypeId) {
         data.educationTypeId = this.listData.educationTypeId;
@@ -2689,7 +2805,7 @@ export default {
       if (this.listData.businessId) {
         data.businessId = this.listData.businessId;
       }
-      if (self.formData3.examType === 1) {
+      if (data.examType === 1) {
         self.$api.inquireBankModule(data).then((res) => {
           var aList = [];
           self.tableData2.map((item) => {
@@ -2697,12 +2813,12 @@ export default {
               aList.push(item.moduleExamId);
             }
           });
-          res.rows.forEach((item) => {
-            item.ids = 1 + "-" + item.moduleExamId;
-            item.type = 1;
-            item.name = item.moduleName;
-            item.sort = 0;
-          });
+          for(let k = 0; k < res.rows.length;k++){
+            res.rows[k].ids = 1 + "-" + res.rows[k].moduleExamId;
+            res.rows[k].type = 1;
+            res.rows[k].name = res.rows[k].moduleName;
+            res.rows[k].sort = 0;
+          }
           self.disCheckList2.moduleCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
@@ -2718,7 +2834,7 @@ export default {
           }
         });
       }
-      if (self.formData3.examType === 2) {
+      if (data.examType === 2) {
         self.$api.inquirebankchapterList(data).then((res) => {
           var aList = [];
           self.tableData2.map((item) => {
@@ -2726,11 +2842,11 @@ export default {
               aList.push(item.chapterExamId);
             }
           });
-          res.rows.forEach((item) => {
-            item.ids = 2 + "-" + item.chapterExamId;
-            item.sort = 0;
-            item.type = 2;
-          });
+          for(let k = 0; k < res.rows.length;k++){
+            res.rows[k].ids = 2 + "-" + res.rows[k].chapterExamId;
+            res.rows[k].sort = 0;
+            res.rows[k].type = 2;
+          }
           self.disCheckList2.chapterCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
@@ -2746,7 +2862,7 @@ export default {
           }
         });
       }
-      if (self.formData3.examType === 3) {
+      if (data.examType === 3) {
         self.$api.inquirebankexamList(data).then((res) => {
           var aList = [];
           self.tableData2.map((item) => {
@@ -2754,12 +2870,12 @@ export default {
               aList.push(item.examId);
             }
           });
-          res.rows.forEach((item) => {
-            item.ids = 3 + "-" + item.examId;
-            item.sort = 0;
-            item.type = 3;
-            item.name = item.examName;
-          });
+          for(let k = 0; k < res.rows.length;k++){
+            res.rows[k].ids = 3 + "-" + res.rows[k].examId;
+            res.rows[k].sort = 0;
+            res.rows[k].type = 3;
+            res.rows[k].name = res.rows[k].examName;
+          }
           self.disCheckList2.examCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
@@ -2855,21 +2971,22 @@ export default {
       this.activeLists2 = lis;
     },
     checkboxT2(row, index) {
-      if (this.formData3.examType === 1) {
+      const asrty = row.ids.split("-").map(Number)[0]
+      if (asrty === 1) {
         if (this.disCheckList2.moduleCheck.indexOf(row.moduleExamId) !== -1) {
           return false;
         } else {
           return true;
         }
       }
-      if (this.formData3.examType === 2) {
+      if (asrty === 2) {
         if (this.disCheckList2.chapterCheck.indexOf(row.chapterExamId) !== -1) {
           return false;
         } else {
           return true;
         }
       }
-      if (this.formData3.examType === 3) {
+      if (asrty === 3) {
         if (this.disCheckList2.examCheck.indexOf(row.examId) !== -1) {
           return false;
         } else {

+ 119 - 68
src/views/Marketing/commodityManageMent/edit/index.vue

@@ -603,8 +603,8 @@
           </el-col>
         </el-row>
       </div>
-      <h5 class="fengs">颁发证书</h5>
-      <div class="dis_fs">
+      <h5 class="fengs" v-if="listData.goodsType === 1 || listData.goodsType === 2">颁发证书</h5>
+      <div class="dis_fs" v-if="listData.goodsType === 1 || listData.goodsType === 2">
         <el-popover placement="bottom" trigger="click">
           <el-checkbox-group v-model="listData.certificateIds">
             <el-checkbox
@@ -689,7 +689,7 @@
     </div>
     <div style="text-align: center; margin-top: 20px">
       <el-button @click="backPage" size="mini">取消</el-button>
-      <el-button type="primary" @click="submit('listData', 1)" size="mini"
+      <el-button type="primary" @click="submit('listData', 1)" size="mini" :loading="disabledBtn"
         >保存</el-button
       >
       <el-button
@@ -697,6 +697,7 @@
         type="primary"
         @click="submit('listData', 2)"
         size="mini"
+         :loading="disabledBtn"
         >{{
           listData.goodsStatus === 0
             ? "上架"
@@ -761,7 +762,6 @@
       </span>
     </el-dialog>
     <el-dialog
-      title="添加课程"
       :visible.sync="dialogVisibleTableBoxs"
       width="800px"
       :show-close="false"
@@ -1138,7 +1138,7 @@
             <el-radio-group
               v-model="photoVideoList.photographConfig.photograph"
             >
-              <el-radio :label="1">是</el-radio>
+              <el-radio :label="1" @change="photoVideoList.photographConfig.intervalTime.push(0)">是</el-radio>
               <el-radio
                 :label="0"
                 @change="photoVideoList.photographConfig.intervalTime = []"
@@ -1149,7 +1149,7 @@
               size="mini"
               style="margin-left: 10px"
               v-if="photoVideoList.photographConfig.photograph === 1"
-              @click="photoVideoList.photographConfig.intervalTime.push('')"
+              @click="photoVideoList.photographConfig.intervalTime.push(0)"
               >添加</el-button
             >
           </div>
@@ -1162,7 +1162,7 @@
               播放至<el-input-number
                 :min="0"
                 :controls="false"
-                :precision="0"
+                :precision="2"
                 v-model="photoVideoList.photographConfig.intervalTime[indexs]"
                 style="width: 60px"
                 size="mini"
@@ -1185,7 +1185,7 @@
             <el-radio-group
               v-model="photoVideoList.goodsPhotographExamConfig.photograph"
             >
-              <el-radio :label="1">是</el-radio>
+              <el-radio :label="1" @change="photoVideoList.goodsPhotographExamConfig.intervalTime.push(0)">是</el-radio>
               <el-radio
                 :label="0"
                 @change="
@@ -1199,7 +1199,7 @@
               style="margin-left: 10px"
               v-if="photoVideoList.goodsPhotographExamConfig.photograph === 1"
               @click="
-                photoVideoList.goodsPhotographExamConfig.intervalTime.push('')
+                photoVideoList.goodsPhotographExamConfig.intervalTime.push(0)
               "
               >添加</el-button
             >
@@ -1333,6 +1333,7 @@ export default {
   components: { searchBoxNew, Editor, pagination, poppleSet, poppleSetTk },
   data() {
     return {
+      disabledBtn:false,
       photoVideoList: {
         playConfig: {
           autoPlay: 0,
@@ -1608,41 +1609,42 @@ export default {
       formDatajy: {
         pageNum: 1,
         pageSize: 10,
-        status: "0,1",
+        status: 1,
+        key:''
       },
       formListjy: [
+        // {
+        //   prop: "educationTypeId",
+        //   placeholder: "教育类型",
+        //   scope: "educationType",
+        // },
+        // {
+        //   prop: "businessId",
+        //   placeholder: "业务层次",
+        //   scope: "businessLevel",
+        //   edu: "educationTypeId",
+        // },
+        // {
+        //   prop: "status",
+        //   placeholder: "发布状态",
+        //   scope: "select",
+        //   options: [
+        //     {
+        //       label: "全部状态",
+        //       value: "0,1",
+        //     },
+        //     {
+        //       label: "已发布",
+        //       value: 1,
+        //     },
+        //     {
+        //       label: "未发布",
+        //       value: 0,
+        //     },
+        //   ],
+        // },
         {
-          prop: "educationTypeId",
-          placeholder: "教育类型",
-          scope: "educationType",
-        },
-        {
-          prop: "businessId",
-          placeholder: "业务层次",
-          scope: "businessLevel",
-          edu: "educationTypeId",
-        },
-        {
-          prop: "status",
-          placeholder: "发布状态",
-          scope: "select",
-          options: [
-            {
-              label: "全部状态",
-              value: "0,1",
-            },
-            {
-              label: "已发布",
-              value: 1,
-            },
-            {
-              label: "未发布",
-              value: 0,
-            },
-          ],
-        },
-        {
-          prop: "handoutsName",
+          prop: "key",
           placeholder: "请输入讲义名称",
         },
       ],
@@ -1684,8 +1686,10 @@ export default {
         status: 1,
         pageSize: 10, //每页多少条数据
         currentPage: 1, //当前页码
+        publishStatus:1,
         educationTypeId: "",
         businessId: "",
+        key:""
       },
       formLists: [
         // {
@@ -1711,24 +1715,24 @@ export default {
           scope: "Professional",
           edu: "educationTypeId",
         },
+        // {
+        //   prop: "publishStatus",
+        //   placeholder: "发布状态",
+        //   scope: "select",
+        //   options: [
+        //     {
+        //       label: "已发布",
+        //       value: 1,
+        //     },
+        //     {
+        //       label: "未发布",
+        //       value: 0,
+        //     },
+        //   ],
+        // },
         {
-          prop: "publishStatus",
-          placeholder: "发布状态",
-          scope: "select",
-          options: [
-            {
-              label: "已发布",
-              value: 1,
-            },
-            {
-              label: "未发布",
-              value: 0,
-            },
-          ],
-        },
-        {
-          prop: "courseName",
-          placeholder: "请输入课程名称",
+          prop: "key",
+          placeholder: "请输入课程标题/课程编码",
         },
       ],
       disCheckList: [],
@@ -2093,10 +2097,14 @@ export default {
         this.formDatajy = {
           pageNum: 1,
           pageSize: 10,
-          status: "0,1",
+          status: 1,
+          key:''
         };
       }
-      this.$api.inquireCourseHandoutsList(this.formDatajy).then((res) => {
+      var data = JSON.parse(JSON.stringify(this.formDatajy));
+        data.educationTypeId = this.listData.educationTypeId;
+        data.businessId = this.listData.businessId;
+      this.$api.inquireCourseHandoutsList(data).then((res) => {
         this.totaljy = res.total;
         this.jYtableData = res.rows;
       });
@@ -2110,10 +2118,15 @@ export default {
       this.aboutJYBox = false;
     },
     openJY() {
+      if(!this.listData.businessId){
+        this.$message.warning("请选择业务层次")
+        return
+      }
       this.aboutJYBox = true;
       this.handoutsIdTable = this.listData.handoutsId;
     },
     openJYActiveBox() {
+      this.getJyData(2)
       this.jYactiveBoxs = true;
       this.templateRadio = this.handoutsIdTable;
     },
@@ -2522,6 +2535,12 @@ export default {
       });
     },
     rulesTableSumbit(int) {
+      this.disabledBtn = true
+      setTimeout(()=>{
+        if(this.disabledBtn){
+          this.disabledBtn = false
+        }
+      },3000)
       var datas = JSON.parse(JSON.stringify(this.listData));
       if (int === 2) {
         if (this.listData.goodsStatus === 1) {
@@ -2615,7 +2634,9 @@ export default {
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else if (this.listData.goodsType === 2) {
         var courseIdList = [];
         this.tableData2.map((item) => {
@@ -2657,21 +2678,27 @@ export default {
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else if (this.listData.goodsType === 3) {
         this.$api.editGoodsmake(datas).then((res) => {
           this.$message.success("修改成功");
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else if (this.listData.goodsType === 4) {
         this.$api.editGoodsfront(datas).then((res) => {
           this.$message.success("修改成功");
           setTimeout(() => {
             this.$router.go(-1);
           }, 300);
-        });
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       } else {
       }
     },
@@ -2752,6 +2779,7 @@ export default {
           pageNum: 1,
           educationTypeId: this.listData.educationTypeId,
           businessId: this.listData.businessId,
+          publishStatus:1,
         };
       }
       this.$api.inquireCourseListS(this.formDatas).then((res) => {
@@ -2768,6 +2796,7 @@ export default {
         status: 1,
         pageSize: 10,
         pageNum: 1,
+        publishStatus:1,
       };
       if (this.listData.educationTypeId) {
         data.educationTypeId = this.listData.educationTypeId;
@@ -2790,7 +2819,7 @@ export default {
           self.$refs.searchBox.changeEducationType(
             self.listData.educationTypeId
           );
-          self.formDatas.businessId = self.listData.businessId;
+          // self.formDatas.businessId = self.listData.businessId;
         });
       });
     },
@@ -2888,6 +2917,13 @@ export default {
             item.name = item.moduleName;
             item.sort = 0;
           });
+          var aList = [];
+          self.tableData2.map((item) => {
+            if (item.type === 1) {
+              aList.push(item.moduleExamId);
+            }
+          });
+          self.disCheckList2.moduleCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
         });
@@ -2900,6 +2936,13 @@ export default {
             item.sort = 0;
             item.type = 2;
           });
+          var aList = [];
+          self.tableData2.map((item) => {
+            if (item.type === 2) {
+              aList.push(item.chapterExamId);
+            }
+          });
+          self.disCheckList2.chapterCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
         });
@@ -2913,6 +2956,13 @@ export default {
             item.type = 3;
             item.name = item.examName;
           });
+          var aList = [];
+          self.tableData2.map((item) => {
+            if (item.type === 3) {
+              aList.push(item.examId);
+            }
+          });
+          self.disCheckList2.examCheck = aList;
           self.boxtableData2 = res.rows;
           self.total3 = res.total;
         });
@@ -3190,21 +3240,22 @@ export default {
       this.activeLists2 = lis;
     },
     checkboxT2(row, index) {
-      if (this.optionsNums === 1) {
+      const asrty = row.ids.split("-").map(Number)[0]
+      if (asrty === 1) {
         if (this.disCheckList2.moduleCheck.indexOf(row.moduleExamId) !== -1) {
           return false;
         } else {
           return true;
         }
       }
-      if (this.optionsNums === 2) {
+      if (asrty === 2) {
         if (this.disCheckList2.chapterCheck.indexOf(row.chapterExamId) !== -1) {
           return false;
         } else {
           return true;
         }
       }
-      if (this.optionsNums === 3) {
+      if (asrty === 3) {
         if (this.disCheckList2.examCheck.indexOf(row.examId) !== -1) {
           return false;
         } else {

+ 9 - 5
src/views/Marketing/commodityManageMent/index.vue

@@ -41,6 +41,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"CommodityManageMent",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -196,11 +197,11 @@ export default {
           prop: "classHours",
           hidden: true,
         },
-        // {
-        //   label: "商品内容视图",
-        //   prop: "educationName",
-        //   hidden: true,
-        // },
+        {
+          label: "商品内容视图",
+          hidden: true,
+          scope:"treeWatch"
+        },
         {
           label: "商品价格",
           prop: "standPrice",
@@ -263,6 +264,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search()
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

+ 4 - 0
src/views/Marketing/commodityManageMent/poppleSet.vue

@@ -40,6 +40,7 @@
               v-model="node.data.auditionMinute"
               controls-position="right"
               :min="0"
+              :precision="2"
               :controls="false"
               size="mini"
               style="width: 80px"
@@ -166,6 +167,7 @@ export default {
     },
     loadNode(node, resolve) {
       var self = this;
+      console.log(node.data,5515)
       if (node.level === 0) {
         this.tableData.map((item) => {
           item.TypeId = "0" + "-" + item.courseId;
@@ -183,6 +185,8 @@ export default {
                 item.TypeId = "2" + "-" + item.chapterId;
                 item.hasChildren = true;
                 item.disabled = true;
+                item.menuId = item.chapterId
+                item.type = 2
               });
               return resolve(res.data);
             });

+ 1 - 0
src/views/Marketing/commodityManageMent/poppleSetTK.vue

@@ -40,6 +40,7 @@
               v-model="node.data.num"
               controls-position="right"
               :min="0"
+              :precision="0"
               :controls="false"
               size="mini"
               style="width: 80px"

+ 132 - 34
src/views/Marketing/orderList/add/order/index.vue

@@ -55,16 +55,27 @@
                 v-model="listData.telphone"
                 @change="getUserInfos(listData.telphone)"
               >
-                <el-button @click="clearForm" slot="append">清除</el-button>
+                <el-button @click="clearForm1" slot="append">清除</el-button>
               </el-input>
             </el-form-item>
             <el-form-item label="身份证号码" prop="idCard">
-              <el-input disabled v-model="listData.idCard"></el-input>
+              <el-input
+                :disabled="disCard"
+                v-model="listData.idCard"
+                @change="getUsercard(listData.idCard)"
+              >
+                <el-button @click="clearForm2" slot="append"
+                  >清除</el-button
+                ></el-input
+              >
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="姓名" prop="realname">
-              <el-input disabled v-model="listData.realname"></el-input>
+              <el-input
+                :disabled="getStatus"
+                v-model="listData.realname"
+              ></el-input>
             </el-form-item>
             <el-form-item label="所在公司" prop="company">
               <el-input v-model="listData.company"></el-input>
@@ -97,7 +108,7 @@
         'background-color': '#eee',
         padding: '8px',
         color: '#333',
-        fontSize:'14px'
+        fontSize: '14px',
       }"
       :default-sort="{ prop: 'sort', order: 'ascending' }"
     >
@@ -189,7 +200,7 @@
                   style="width: 50%"
                   v-model="scope.row.cityId"
                   placeholder="地区"
-                  @change="changeCity(scope.$index, $event)"
+                  @change="changeCity(scope.$index, $event, scope.row)"
                 >
                   <el-option
                     v-for="items in cityListCopy"
@@ -312,6 +323,7 @@
           type="primary"
           :disabled="activeLists.length === 0"
           @click="submitTab"
+           :loading="disabledBtn"
           >确 定</el-button
         >
       </span>
@@ -359,7 +371,10 @@
                 <p style="padding-left: 24px">
                   有效期至:{{ $methodsTools.onlyForma(item.classEndTime) }}
                 </p>
-                <p style="padding-left: 24px">
+                <p style="padding-left: 24px" v-if="$methodsTools.expiredTime(item.classEndTime)">
+                  已过期
+                </p>
+                <p v-else style="padding-left: 24px">
                   本班还剩{{
                     $methodsTools.newTime(item.classEndTime)
                   }}天将结束学习
@@ -385,10 +400,13 @@ export default {
   components: { searchBoxNew, pagination },
   data() {
     return {
+      disabledBtn:false,
       numIndex: 0,
       radio: "",
       listData: { realname: "", idCard: "", chargingType: 1 },
       disabTel: false,
+      disCard: false,
+      getStatus: true,
       rulesItem: {
         telphone: [
           {
@@ -409,6 +427,20 @@ export default {
             trigger: "blur",
           },
         ],
+        idCard: [
+          {
+            required: true,
+            message: "请输入身份证号码",
+            trigger: "blur",
+          },
+        ],
+        realname: [
+          {
+            required: true,
+            message: "请输入姓名",
+            trigger: "blur",
+          },
+        ],
       },
       tableData: [],
       tableSetTSB: [
@@ -549,20 +581,57 @@ export default {
             self.listData.realname = res.rows[0].realname;
             self.listData.idCard = res.rows[0].idCard;
             self.disabTel = true;
+            self.disCard = true;
+            self.getStatus = true;
             self.listData.userId = res.rows[0].userId;
           } else {
-            self.$message.warning("当前手机号用户不存在");
+            self.$message.warning(
+              "当前手机号用户不存在,订单提交成功后将把当前输入的手机号码,姓名,身份证号码作为你的注册用户信息,请认真核对信息"
+            );
+            self.getStatus = false;
           }
         });
       }
     },
+    //身份证
+    getUsercard(card) {
+      var self = this;
+      this.$api.inquireappuserlists({ idCard: card }).then((res) => {
+        if (res.total) {
+          self.listData.realname = res.rows[0].realname;
+          self.listData.telphone = res.rows[0].telphone;
+          self.disabTel = true;
+          self.disCard = true;
+          self.getStatus = true;
+          self.listData.userId = res.rows[0].userId;
+        } else {
+          self.$message.warning(
+            "当前身份证号码不存在,订单提交成功后将把当前输入的手机号码,姓名,身份证号码作为你的注册用户信息,请认真核对信息"
+          );
+          self.getStatus = false;
+        }
+      });
+    },
     // 清除手机号
-    clearForm() {
+    clearForm1() {
       this.listData.telphone = "";
       this.listData.realname = "";
       this.listData.idCard = "";
       this.listData.userId = "";
       this.disabTel = false;
+      this.disCard = false;
+      this.getStatus = true;
+    },
+
+    // 清除身份证号
+    clearForm2() {
+      this.listData.telphone = "";
+      this.listData.realname = "";
+      this.listData.idCard = "";
+      this.listData.userId = "";
+      this.disabTel = false;
+      this.disCard = false;
+      this.getStatus = true;
     },
     //删除商品列表
     del(item, index) {
@@ -719,6 +788,12 @@ export default {
       });
     },
     submit() {
+      this.disabledBtn = true
+      setTimeout(()=>{
+        if(this.disabledBtn){
+          this.disabledBtn = false
+        }
+      },3000)
       var data = {};
       data.orderBusiness = {
         businessOwner: this.listData.businessOwner,
@@ -731,10 +806,10 @@ export default {
         address: this.listData.address,
       };
       data.goodsRealPrice = this.listData.goodsPrice;
-      data.userId = this.listData.userId;
       data.chargingType = this.listData.chargingType;
       var ast = [];
-      this.tableData.map((item) => {
+      var arrays = JSON.parse(JSON.stringify(this.tableData))
+      arrays.map((item) => {
         ast.push({
           goodsPrice: item.standPrice,
           goodsRealPrice: item.standPrice,
@@ -765,21 +840,40 @@ export default {
         }
       });
       data.goodsList = ast;
-      this.$api.appOrder(data).then((res) => {
-        this.$message.success("提交成功");
-        if (data.chargingType == 1) {
-          this.$router.push({
-            path: "orderPrice",
-            query: {
-              id: res.data.oderId,
-            },
-          });
-        }
-        if (data.chargingType == 2) {
-          this.$router.push({
-            path: "orderList",
-          });
+      new Promise((resolve, reject) => {
+        if (!this.disCard && !this.disabTel && !this.getStatus) {
+          this.$api
+            .addappuser({
+              realname: this.listData.realname,
+              idCard: this.listData.idCard,
+              tel: this.listData.telphone,
+            })
+            .then((res) => {
+              resolve(res.data);
+            });
+          return;
         }
+        resolve(this.listData.userId);
+      }).then((result) => {
+        data.userId = result
+        this.$api.appOrder(data).then((res) => {
+          this.$message.success("提交成功");
+          if (data.chargingType == 1) {
+            this.$router.push({
+              path: "orderPrice",
+              query: {
+                id: res.data.oderId,
+              },
+            });
+          }
+          if (data.chargingType == 2) {
+            this.$router.push({
+              path: "orderList",
+            });
+          }
+        }).catch(()=>{
+          this.disabledBtn = false
+        })
       });
     },
     changeKQ(index, int) {
@@ -799,6 +893,7 @@ export default {
       });
     },
     changeArea(index, int, value) {
+      console.log(value,'area')
       var opst = [];
       this.cityList.map((item) => {
         if (item.parentId == int) {
@@ -822,6 +917,7 @@ export default {
       });
     },
     changeCity(index, int, value) {
+      console.log(value,1121)
       this.cityList.map((item) => {
         if (item.areaId === int) {
           this.tableData[index].goodsInputData.applyAreasJson.cityName =
@@ -839,22 +935,24 @@ export default {
     getClassLists(item) {
       return new Promise((resolve, reject) => {
         this.$api
-          .inquireGradegradeList({ status: 1, goodsId: item.goodsId })
+          .inquireGradegradeList({ status: 1, goodsId: item.goodsId,pastDue:1 })
           .then((res) => {
             if (!res.rows.length) {
               // this.$api.inquireGradegradeList({ status: 1 }).then((result) => {
               //   var astu = result.rows.every((item) => {
               //     return item.studentNum >= item.studentUpper;
               //   });
-                  var ast = [{
-                    className: "自动分配新班级",
-                    gradeId: -1,
-                    status: 1,
-                    studentUpper: 999,
-                    studentNum: 0,
-                  }]
-                this.classList = ast;
-                resolve();
+              var ast = [
+                {
+                  className: "自动分配新班级",
+                  gradeId: -1,
+                  status: 1,
+                  studentUpper: 999,
+                  studentNum: 0,
+                },
+              ];
+              this.classList = ast;
+              resolve();
               // });
             } else {
               var astu = res.rows.every((item) => {

+ 11 - 2
src/views/Marketing/orderList/add/orderPrice/index.vue

@@ -203,7 +203,7 @@
         </el-row>
         <div style="text-align: center">
           <el-button @click="clearBtns">取消</el-button>
-          <el-button type="primary" @click="submitForm('listData')"
+          <el-button type="primary" @click="submitForm('listData')" :loading="disabledBtn"
             >提交计费单</el-button
           >
         </div>
@@ -217,6 +217,7 @@ import { mapGetters } from "vuex";
 export default {
   data() {
     return {
+      disabledBtn:false,
       tableHeader: [
         { label: "订单编号", prop: "orderSn" },
         { label: "商品编码", prop: "code" },
@@ -443,6 +444,12 @@ export default {
       });
     },
     submit() {
+      this.disabledBtn = true
+      setTimeout(()=>{
+        if(this.disabledBtn){
+          this.disabledBtn = false
+        }
+      },3000)
       this.$api.appOrdersheet(this.listData).then((res) => {
         this.$message.success("提交成功");
         setTimeout(() => {
@@ -450,7 +457,9 @@ export default {
             path: "orderList",
           });
         }, 500);
-      });
+      }).catch(()=>{
+          this.disabledBtn = false
+        })
     },
     //取消
     clearBtns() {

+ 8 - 18
src/views/Marketing/orderList/index.vue

@@ -39,6 +39,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"OrderList",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -154,7 +155,6 @@ export default {
       ],
       formData: {
         goodsType: '',
-        status: "0,1",
         pageSize: 10,
         pageNum: 1,
       },
@@ -279,31 +279,19 @@ export default {
           ],
         },
         {
-          label: "订单商品状态",
-          prop: "orderGoodsStatus",
+          label: "订单状态",
+          prop: "status",
           hidden: true,
           scope: "isOptions",
           options: [
             {
-              label: "关闭",
+              label: "无效",
               value: 0,
             },
             {
-              label: "正常",
+              label: "有效",
               value: 1,
             },
-            {
-              label: "退款中",
-              value: 2,
-            },
-            {
-              label: "已退款",
-              value: 3,
-            },
-            {
-              label: "拒绝退款",
-              value: 4,
-            },
           ],
         },
         {
@@ -338,6 +326,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search()
+  },
   methods: {
     emitData(option) {
       console.log(option,156)
@@ -375,7 +366,6 @@ export default {
       if (int === 2) {
         this.formData = {
           goodsType: '',
-          status: "0,1",
           pageSize: 10,
           pageNum: 1,
         };

+ 4 - 4
src/views/education/classManageMent/classHoursReview/index.vue

@@ -179,7 +179,7 @@
                   >
                   </el-image>
                   <div class="abos">
-                    {{ $methodsTools.onlyForma(its.periodId) }}
+                    {{ $methodsTools.onlyForma(its.createTime) }}
                   </div>
                 </li>
                 <div style="clear: both"></div>
@@ -290,8 +290,8 @@
                         >
                         </el-image>
                         <div class="abos">
-                          {{ $methodsTools.onlyForma(its.periodId) }}
-                        </div>
+                          {{ $methodsTools.onlyForma(its.createTime) }}
+                        </div> 
                       </li>
                       <div style="clear: both"></div>
                     </ul>
@@ -407,7 +407,7 @@
                               >
                               </el-image>
                               <div class="abos">
-                                {{ $methodsTools.onlyForma(its.periodId) }}
+                                {{ $methodsTools.onlyForma(its.createTime) }}
                               </div>
                             </li>
                             <div style="clear: both"></div>

+ 7 - 0
src/views/education/classManageMent/classList/addClass/index.vue

@@ -62,6 +62,13 @@
                 : 'learningStatus'
             "
           >
+          <el-button
+              style="margin-right: 14px"
+              size="mini"
+              v-if="listData.learningStatus"
+              @click="listData.learningStatus = ''"
+              >清除选择</el-button
+            >
             <el-radio-group
               v-model="listData.learningStatus"
               @change="changeLearning"

+ 4 - 0
src/views/education/classManageMent/classList/index.vue

@@ -41,6 +41,7 @@ import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
   components: { searchBoxNew, tableList, pagination },
+  name:"ClassList",
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -215,6 +216,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated() {
+    this.search();
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 2);

+ 16 - 0
src/views/education/classManageMent/classList/manageClass/baseInfo.vue

@@ -77,6 +77,12 @@
                 placeholder="请填写学员上限"
               ></el-input-number>
             </el-form-item>
+            <el-form-item label="当前学员人数" prop="studentNum">
+              <el-input-number :min="minNums" :controls="false" disabled
+                v-model="listData.studentNum"
+                placeholder="请填写学员上限"
+              ></el-input-number>
+            </el-form-item>
             <el-form-item
               label="开放学习时间"
               :prop="
@@ -84,6 +90,13 @@
                   ? 'learningTimeStart'
                   : 'learningStatus'
               "
+            >
+            <el-button
+              style="margin-right: 14px"
+              size="mini"
+              v-if="listData.learningStatus"
+              @click="listData.learningStatus = ''"
+              >清除选择</el-button
             >
               <el-radio-group
                 v-model="listData.learningStatus"
@@ -281,6 +294,9 @@ export default {
             trigger: "blur",
           },
         ],
+        studentNum:[
+          { required: true, message: "请填写学员上限", trigger: "blur" },
+        ],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
         learningTimeStart: [
           {

+ 8 - 4
src/views/education/classManageMent/classList/manageClass/studentRecords.vue

@@ -31,6 +31,9 @@
                     : "未知"
                 }}
               </span>
+              <span v-else-if="item.scope ==='aTime'">
+                {{$methodsTools.onlyForma(scope.row[item.prop])}}
+              </span>
               <span v-else>{{ scope.row[item.prop] }}</span></template
             >
           </el-table-column></template
@@ -79,10 +82,11 @@ export default {
           label: "绑定手机号码",
           prop: "telPhone",
         },
-        // {
-        //   label: "操作时间",
-        //   prop: "year",
-        // },
+        {
+          label: "操作时间",
+          prop: "createTime",
+          scope:"aTime"
+        },
         {
           label: "操作者",
           prop: "createBy",

+ 4 - 4
src/views/education/classManageMent/studentMenu/index.vue

@@ -170,9 +170,9 @@
       </div>
       <div>
         <el-row :gutter="20">
-          <el-col :span="4">所属商品课程:</el-col>
-          <el-col :span="20">
-            <el-descriptions>
+          <el-col :span="3">所属商品课程:</el-col>
+          <el-col :span="21">
+            <el-descriptions :labelStyle="{width:'110px'}" border>
               <el-descriptions-item label="商品编码">{{
                 obtainGoods.code
               }}</el-descriptions-item>
@@ -526,7 +526,7 @@ export default {
       formDataClass: {
         atFull: 1,
         goodsId: this.$route.query.goodsId,
-        status: "0,1",
+        status: 1,
         pageSize: 10,
         pageNum: 1,
       },

+ 850 - 5
src/views/education/dataReview/dataConfig/index.vue

@@ -1,21 +1,866 @@
 <template>
   <div id="dataConfig">
-dataConfig
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+      :shType="shType"
+    />
+    <table-list
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      @addClick="addClick"
+      :loading="loading"
+      @editInfo="editInfo"
+    >
+      <template slot="btn" slot-scope="props">
+        <el-button
+          type="text"
+          @click="addClick(props.scope.row, 0)"
+          :disabled="
+            !(
+              props.scope.row.changeStatus === 2 || props.scope.row.status === 2
+            )
+          "
+          >审核</el-button
+        >
+        <el-button type="text" @click="openRecord(props.scope.row)"
+          >审核记录</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
+      @handleSizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+    />
+    <el-dialog
+      @closed="loadingClose"
+      :visible.sync="dialogVisible"
+      width="900px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">资料审核</div>
+        <div class="rightBoxs">
+          <img src="@/assets/images/Close@2x.png" alt="" @click="close" />
+        </div>
+      </div>
+      <div slot="title" class="topStys">
+        <div class="btnsTys">学员编码:{{ listData.userAccount }}</div>
+        <div class="btnsTys">学员姓名:{{ listData.realname }}</div>
+        <div class="btnsTys">学员身份证号码:{{ listData.idCard }}</div>
+        <div class="btnsTys">绑定手机号码:{{ listData.telphone }}</div>
+        <div style="clear: both"></div>
+      </div>
+      <div class="heightstybox gdt">
+        <ul>
+          <li class="dissty" v-for="(item, index) in listInfos" :key="index">
+            <div
+              style="
+                width: 50px;
+                color: red;
+                align-self: flex-start;
+                flex-shrink: 0;
+              "
+            >
+              {{ item.status === 1 ? "有变更" : "" }}
+            </div>
+            <div class="stys">{{ item.fieldName }}:</div>
+            <div v-if="pdStatus(item.fieldKey)">
+              <div
+                v-if="item.fieldKey === 'recent_photos'"
+                style="width: 145px; height: 160px"
+              >
+                <el-image
+                  v-if="item.value"
+                  style="width: 100%; height: 100%"
+                  :src="$methodsTools.splitImgHost(item.value)"
+                  :preview-src-list="[$methodsTools.splitImgHost(item.value)]"
+                >
+                </el-image>
+                <p v-else>暂无上传图片</p>
+              </div>
+              <div v-else-if="item.fieldKey === 'commitment_electr_signature'">
+                <div>
+                  本人自愿做出如下承诺:本人己仔细阅读《广东
+                  省住房和城乡建设厅关于推进住房和城乡建设领域施
+                  工现场专业人员职业培训工作的通知》
+                  全部内容并知晓和理解,本人的学历证书、身份证、工作年限、相片等所有资料完全真实、符合报名条件、资格审查要求和相关规定,本人在报名、审查、培训、测试等有关的事项中会严格道守相关规定和要求,如有虛假或与实际规定不符等情况造成的一切后果由本人承担。
+                  特此承诺!
+                </div>
+                <div
+                  style="width: 300px; height: 150px; border: 1px solid #999"
+                  v-if="item.value"
+                >
+                  <el-image
+                    style="width: 100%; height: 100%"
+                    :src="$methodsTools.splitImgHost(item.value)"
+                    :preview-src-list="[$methodsTools.splitImgHost(item.value)]"
+                  >
+                  </el-image>
+                </div>
+                <p v-else>暂无上传图片</p>
+              </div>
+              <div v-else style="width: 224px; height: 160px">
+                <el-image
+                  v-if="item.value"
+                  style="width: 100%; height: 100%"
+                  :src="$methodsTools.splitImgHost(item.value)"
+                  :preview-src-list="[$methodsTools.splitImgHost(item.value)]"
+                >
+                </el-image>
+                <p v-else>暂无上传图片</p>
+              </div>
+            </div>
+            <div v-else>{{ item.value }}</div>
+          </li>
+          <li class="dissty" style="border-bottom: none">
+            <div class="stys">审核结果反馈:</div>
+            <el-input
+              v-model="listData.text"
+              type="textarea"
+              :rows="5"
+            ></el-input>
+          </li>
+        </ul>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="close">取 消</el-button>
+        <el-button :loading="disabledBtn" @click="submitTable(1)" type="success"
+          >审核通过</el-button
+        >
+        <el-button :loading="disabledBtn" @click="submitTable(3)" type="danger"
+          >审核不通过</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog
+      :visible.sync="dialogVisibleRecord"
+      width="900px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">资料审核</div>
+        <div class="rightBoxs">
+          <img
+            src="@/assets/images/Close@2x.png"
+            alt=""
+            @click="dialogVisibleRecord = false"
+          />
+        </div>
+      </div>
+      <div slot="title" class="topStys">
+        <div class="btnsTys">
+          学员编码:{{ recordList[activeIndex].userAccount }}
+        </div>
+        <div class="btnsTys">
+          学员姓名:{{ recordList[activeIndex].realname }}
+        </div>
+        <div class="btnsTys">
+          学员身份证号码:{{ recordList[activeIndex].idCard }}
+        </div>
+        <div class="btnsTys">
+          绑定手机号码:{{ recordList[activeIndex].telphone }}
+        </div>
+        <div style="clear: both"></div>
+      </div>
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <ul class="max_heightAuto">
+            <li
+              class="lsTYs"
+              v-for="(item, index) in recordList"
+              :key="index"
+              :class="index === activeIndex ? 'active' : ''"
+              @click="changeIndex(index)"
+            >
+              {{ $methodsTools.onlyForma(item.auditTime) }}
+            </li>
+          </ul>
+        </el-col>
+        <el-col :span="18">
+          <transition>
+            <div class="heightstybox gdt" v-if="showIS">
+              <ul>
+                <li>
+                  <div class="float_lefts">
+                    审核人:{{ recordList[activeIndex].createByName }}
+                  </div>
+                  <div class="float_lefts">
+                    {{
+                      recordList[activeIndex].status === 1
+                        ? "审核通过"
+                        : recordList[activeIndex].status === 2
+                        ? "待审核"
+                        : recordList[activeIndex].status === 3
+                        ? "审核不通过"
+                        : "无审核状态"
+                    }}
+                  </div>
+                  <div style="clear: both"></div>
+                </li>
+                <li
+                  class="dissty"
+                  v-for="(item, index) in recordList[activeIndex]
+                    .keyValueArrays"
+                  :key="index"
+                >
+                  <div class="stys">{{ item.fieldName }}:</div>
+                  <div v-if="pdStatus(item.fieldKey)">
+                    <div
+                      v-if="item.fieldKey === 'recent_photos'"
+                      style="width: 145px; height: 160px"
+                    >
+                      <el-image
+                        v-if="item.value"
+                        style="width: 100%; height: 100%"
+                        :src="$methodsTools.splitImgHost(item.value)"
+                        :preview-src-list="[
+                          $methodsTools.splitImgHost(item.value),
+                        ]"
+                      >
+                      </el-image>
+                      <p v-else>暂无上传图片</p>
+                    </div>
+                    <div
+                      v-else-if="
+                        item.fieldKey === 'commitment_electr_signature'
+                      "
+                    >
+                      <div>
+                        本人自愿做出如下承诺:本人己仔细阅读《广东
+                        省住房和城乡建设厅关于推进住房和城乡建设领域施
+                        工现场专业人员职业培训工作的通知》
+                        全部内容并知晓和理解,本人的学历证书、身份证、工作年限、相片等所有资料完全真实、符合报名条件、资格审查要求和相关规定,本人在报名、审查、培训、测试等有关的事项中会严格道守相关规定和要求,如有虛假或与实际规定不符等情况造成的一切后果由本人承担。
+                        特此承诺!
+                      </div>
+                      <div
+                        style="
+                          width: 300px;
+                          height: 150px;
+                          border: 1px solid #999;
+                        "
+                        v-if="item.value"
+                      >
+                        <el-image
+                          style="width: 100%; height: 100%"
+                          :src="$methodsTools.splitImgHost(item.value)"
+                          :preview-src-list="[
+                            $methodsTools.splitImgHost(item.value),
+                          ]"
+                        >
+                        </el-image>
+                      </div>
+                      <p v-else>暂无上传图片</p>
+                    </div>
+                    <div v-else style="width: 224px; height: 160px">
+                      <el-image
+                        v-if="item.value"
+                        style="width: 100%; height: 100%"
+                        :src="$methodsTools.splitImgHost(item.value)"
+                        :preview-src-list="[
+                          $methodsTools.splitImgHost(item.value),
+                        ]"
+                      >
+                      </el-image>
+                      <p v-else>暂无上传图片</p>
+                    </div>
+                  </div>
+                  <div v-else>{{ item.value }}</div>
+                </li>
+                <li class="dissty" style="border-bottom: none">
+                  <div class="stys">审核结果反馈:</div>
+                  <div>
+                    {{ recordList[activeIndex].text }}
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </transition>
+        </el-col>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisibleRecord = false">取 消</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
 export default {
-  data () {
+  name: "DataConfig",
+  components: { searchBoxNew, tableList, pagination },
+  data() {
     return {
-    }
+      disabledBtn: false,
+      dialogVisibleRecord: false,
+      shType: true,
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "填写资料审核",
+        index: 0,
+        ch: "条",
+        num: true,
+        border: true,
+        choice: true,
+        addHide: true,
+        backFatherBtn: {
+          status: false,
+          title: "未定义",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "educationTypeId",
+          placeholder: "教育类型",
+          scope: "educationType",
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "schoolId",
+          placeholder: "院校",
+          scope: "schoolList",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "majorId",
+          placeholder: "专业",
+          scope: "Professional",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "changeStatus",
+          placeholder: "变更状态",
+          scope: "select",
+          options: [
+            {
+              label: "正常",
+              value: 1,
+            },
+            {
+              label: "有变更",
+              value: 2,
+            },
+          ],
+        },
+        {
+          prop: "prefixName",
+          placeholder: "请输入搜索关键内容",
+        },
+      ],
+      formData: {
+        status: "",
+        pageSize: 10,
+        pageNum: 1,
+      },
+      showIS: true,
+      // 表单
+      tableSet: [
+        {
+          label: "学员编码",
+          prop: "userAccount",
+          hidden: true,
+        },
+        {
+          label: "学员姓名",
+          prop: "realname",
+          hidden: true,
+        },
+
+        {
+          label: "学员身份证",
+          prop: "idCard",
+          hidden: true,
+          width: "160px",
+        },
+        {
+          label: "绑定手机号",
+          prop: "telphone",
+          hidden: true,
+          width: "140px",
+        },
+        {
+          label: "所购商品",
+          hidden: true,
+          width: "280px",
+          scope: "getShops",
+        },
+        {
+          label: "填写资料审核状态",
+          prop: "status",
+          hidden: true,
+          scope: "isOptions",
+          width: "160px",
+          options: [
+            {
+              label: "通过",
+              value: 1,
+            },
+            {
+              label: "待审核",
+              value: 2,
+            },
+            {
+              label: "不通过",
+              value: 3,
+            },
+          ],
+        },
+        {
+          label: "填写资料变更状态",
+          prop: "changeStatus",
+          hidden: true,
+          scope: "isOptions",
+          width: "160px",
+          options: [
+            {
+              label: "正常",
+              value: 1,
+            },
+
+            {
+              label: "有变更",
+              value: 2,
+              style: "color:red",
+            },
+          ],
+        },
+        {
+          label: "第一次提交资料时间",
+          prop: "oneTime",
+          hidden: true,
+          scope: "aTimeList",
+          width: "160px",
+        },
+        {
+          label: "最后一次提交资料时间",
+          prop: "lastTime",
+          hidden: true,
+          scope: "aTimeList",
+          width: "180px",
+        },
+        {
+          label: "最后一次审核人",
+          prop: "createByName",
+          hidden: true,
+          width: "160px",
+        },
+        {
+          label: "最后一次审核时间",
+          prop: "auditTime",
+          hidden: true,
+          scope: "aTimeList",
+          width: "160px",
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      //   弹窗数据
+      listData: {},
+      statusPop: -1,
+      dialogVisible: false,
+      //表单验证
+      rules: {
+        natureName: [
+          { required: true, message: "请输入收费性质名称", trigger: "blur" },
+        ],
+        status: [{ required: true, message: "请选择状态", trigger: "change" }],
+      },
+      listInfos: [],
+      recordList: [{ keyValueArrays: [] }], //记录列表
+      activeIndex: 0,
+    };
+  },
+  mounted() {
+    this.search();
+  },
+  activated() {
+    this.search();
   },
   methods: {
+    changeIndex(v) {
+      if (this.activeIndex === v) {
+        return;
+      }
+      this.showIS = false;
+      this.activeIndex = v;
+      setTimeout(() => {
+        this.showIS = true;
+      }, 50);
+    },
+    openRecord(v) {
+      this.$api
+        .inquirebaseprofilelistRecord({ userId: v.userId, goodsId: v.goodsId })
+        .then((res) => {
+          if (!res.rows.length) {
+            this.$message.warning("该条数据无审核记录");
+            return;
+          }
+          res.rows.forEach((item) => {
+            item.keyValue = JSON.parse(item.keyValue);
+            var arst = [];
+            for (let k in item.keyValue) {
+              arst.push(item.keyValue[k]);
+            }
+            item.keyValueArrays = arst;
+          });
 
-  }
-}
+          this.recordList = res.rows;
+          this.dialogVisibleRecord = true;
+        });
+    },
+    pdStatus(int) {
+      if (
+        int === "recent_photos" ||
+        int === "idcard_face_photo" ||
+        int === "idcard_national_photo" ||
+        int === "commitment_electr_signature"
+      ) {
+        return true;
+      }
+    },
+    //1通过 3不通过
+    submitTable(int) {
+      this.disabledBtn = true;
+      var data = JSON.parse(JSON.stringify(this.listData));
+      for (let k in data.keyValue) {
+        data.keyValue[k].status = 0;
+      }
+      data.keyValue = JSON.stringify(data.keyValue);
+      data.status = int;
+      data.changeStatus = 1;
+      this.$api
+        .editbaseprofilesss(data)
+        .then((res) => {
+          this.$message.success("提交成功");
+          this.search();
+          this.dialogVisible = false;
+        })
+        .catch(() => {
+          this.disabledBtn = false;
+        });
+    },
+    loadingClose() {
+      this.disabledBtn = false;
+    },
+    editInfo(v) {
+      this.addClick(v, 0);
+    },
+    search(int) {
+      this.loading = true;
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          status: "",
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      this.$api
+        .inquirebaseprofile(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+        .then(() => {
+          var data = {
+            natureId: v.natureId,
+            status: -1,
+          };
+          this.$api.editpaynature(data).then((res) => {
+            this.$message.success("删除成功");
+            this.search();
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    addClick(v, int) {
+      if (v === undefined) {
+        this.listData = {};
+      } else {
+        this.$api.obtainbaseprofile(v.id).then((res) => {
+          res.data.keyValue = JSON.parse(res.data.keyValue);
+          this.listData = res.data;
+          var arst = [];
+          for (let k in res.data.keyValue) {
+            arst.push(res.data.keyValue[k]);
+          }
+          this.listInfos = arst;
+        });
+      }
+      this.dialogVisible = true;
+    },
+    submit() {
+      this.disabledBtn = true;
+      return;
+      if (this.statusPop === 1) {
+        this.$api
+          .apppaynature(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+      if (this.statusPop === 0) {
+        this.$api
+          .editpaynature(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+    },
+    close() {
+      this.dialogVisible = false;
+    },
+    handleSizeChange(v) {
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
+      this.search();
+    },
+    handleCurrentChange(v) {
+      this.formData.pageNum = v;
+      this.search();
+    },
+  },
+};
 </script>
 
 <style lang="less" scoped>
+// 进入前和结束后的状态
+.v-enter,
+.v-leave-to {
+  opacity: 0;
+  // transform: translateX(80px);
+}
+// 进入和离开的动画时间段
+.v-enter-active,
+.v-leave-active {
+  transition: all 0.5s ease;
+}
+.gdt {
+  /* 设置滚动条的样式 */
+  &::-webkit-scrollbar {
+    width: 8px;
+  }
+  /* 滚动槽 */
+  &::-webkit-scrollbar-track {
+    -webkit-box-shadow: inset 6px rgba(0, 0, 0, 0.3);
+    border-radius: 10px;
+  }
+  /* 滚动条滑块 */
+  &::-webkit-scrollbar-thumb {
+    border-radius: 10px;
+    background: rgba(0, 0, 0, 0.1);
+    -webkit-box-shadow: inset 06px rgba(0, 0, 0, 0.5);
+  }
+  &::-webkit-scrollbar-thumb:window-inactive {
+    background: rgba(182, 182, 182, 0.4);
+  }
+}
+.max_heightAuto {
+  padding: 0px 10px;
+  max-height: 560px;
+  overflow-y: auto;
+}
+.float_lefts {
+  float: left;
+  padding: 0px 10px;
+  border-radius: 12px;
+  background-color: #eee;
+  height: 35px;
+  line-height: 35px;
+  margin-right: 10px;
+}
+.lsTYs {
+  height: 40px;
+  border-top: 1px solid #999;
+  border-left: 1px solid #999;
+  border-right: 1px solid #999;
+  line-height: 40px;
+  cursor: pointer;
+  text-align: center;
+  &:last-child {
+    border-bottom: 1px solid #999 !important;
+  }
+}
+.active {
+  color: blue;
+}
+.heightstybox {
+  padding: 20px;
+  height: 600px;
+  overflow-y: auto;
+}
+.dissty {
+  display: flex;
+  align-items: center;
+  padding: 20px;
+  border-bottom: 1px dotted #999;
+}
+.stys {
+  flex-shrink: 0;
+  align-self: flex-start;
+  width: 200px;
+  padding-left: 50px;
+}
+.topStys {
+  padding: 20px;
+  background-color: rgb(215, 215, 215);
+  display: flex;
+  align-items: center;
+  overflow-x: auto;
 
+  .btnsTys {
+    flex-shrink: 0;
+    margin-right: 16px;
+    padding: 0px 7px;
+    background-color: #fff;
+    border-radius: 4px;
+    font-size: 14px;
+    height: 40px;
+    line-height: 40px;
+  }
+}
+/deep/.el-button {
+  border-radius: 8px;
+}
+/deep/ .el-dialog__body {
+  padding: 10px 0px;
+}
+/deep/.el-dialog {
+  border-radius: 8px;
+  .el-dialog__header {
+    padding: 0;
+    .hearders {
+      height: 40px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 18px 0px 20px;
+      border-bottom: 1px solid #e2e2e2;
+      .leftTitle {
+        font-size: 14px;
+        font-weight: bold;
+        color: #2f4378;
+      }
+      .rightBoxs {
+        display: flex;
+        align-items: center;
+        img {
+          width: 14px;
+          height: 14px;
+          margin-left: 13px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+  .el-dialog__footer {
+    padding: 0;
+    .dialog-footer {
+      padding: 0px 40px;
+      height: 70px;
+      border-top: 1px solid #e2e2e2;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+  }
+}
+.imgBox {
+  width: 100%;
+  // height: 210px;
+  border: 1px solid #e2e2e2;
+  border-radius: 8px;
+  padding: 8px 8px 3px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  .imgLabel {
+    flex: 1;
+    width: 100%;
+    border: 1px dotted #e2e2e2;
+    color: #999;
+    font-size: 14px;
+    cursor: pointer;
+    border-radius: 8px;
+    .msPhoto {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      max-width: 100%;
+      max-height: 270px;
+      img {
+        max-width: 100%;
+        max-height: 270px;
+      }
+    }
+    .imgbbx {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      width: 100%;
+      height: 100%;
+      i {
+        font-weight: bold;
+        margin: 14px 0;
+        font-size: 24px;
+      }
+    }
+  }
+  p {
+    margin: 5px 0px;
+  }
+}
 </style>
+

+ 21 - 8
src/views/education/dataReview/informationTemplate/index.vue

@@ -793,6 +793,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"InformationTemplate",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -1062,6 +1063,12 @@ export default {
     this.getInfos();
     this.getUserInfoList();
   },
+  activated() {
+    this.search();
+    this.initOptions();
+    this.getInfos();
+    this.getUserInfoList();
+  },
   methods: {
     getDowm() {
       let url = baseUrls.BASE_IMG_URL + "/oss/images/file/20211214.docx";
@@ -1305,6 +1312,9 @@ export default {
         }
       }
       this.pzList1sss = JSON.parse(JSON.stringify(this.listData.keyValue));
+      data = data.filter((item) => {
+        return item.fieldKey !== "commitment_seal";
+      });
       this.pzList1 = data;
       this.dialogVisibleLitsing1 = true;
     },
@@ -1312,9 +1322,9 @@ export default {
       this.dialogVisibleLitsing1 = false;
     },
     submitLitsing() {
-      for(let i =0; i < this.pzList1sss.length;i++){
-        if(this.pzList1sss[i].fieldKey === 'commitment_seal'){
-          this.pzList1sss[i].url = '/oss/images/file/20211214.docx'
+      for (let i = 0; i < this.pzList1sss.length; i++) {
+        if (this.pzList1sss[i].fieldKey === "commitment_seal") {
+          this.pzList1sss[i].url = "/oss/images/file/20211214.docx";
         }
       }
       this.listData.keyValue = this.pzList1sss;
@@ -1342,6 +1352,9 @@ export default {
         }
       }
       this.pzList2sss = JSON.parse(JSON.stringify(this.listData.keyValue2));
+      data = data.filter((item) => {
+        return item.fieldKey === "commitment_seal";
+      });
       this.pzList2 = data;
       this.dialogVisibleLitsing2 = true;
     },
@@ -1349,14 +1362,14 @@ export default {
       this.dialogVisibleLitsing2 = false;
     },
     submitLitsing2() {
-      for(let i =0; i < this.pzList2sss.length;i++){
-        if(this.pzList2sss[i].fieldKey === 'commitment_seal'){
-          this.pzList2sss[i].url = '/oss/images/file/20211214.docx'
+      for (let i = 0; i < this.pzList2sss.length; i++) {
+        if (this.pzList2sss[i].fieldKey === "commitment_seal") {
+          this.pzList2sss[i].url = "/oss/images/file/20211214.docx";
         }
       }
       this.listData.keyValue2 = this.pzList2sss;
       this.dialogVisibleLitsing2 = false;
-      console.log(this.pzList2sss)
+      console.log(this.pzList2sss);
     },
     getMessage() {
       if (!this.eduType) {
@@ -1394,7 +1407,7 @@ export default {
         });
         this.options1 = array;
       });
-      this.$api.inquirebusinessList({status:1}).then((res) => {
+      this.$api.inquirebusinessList({ status: 1 }).then((res) => {
         this.courseProjectType = res.rows;
         this.options2 = res.rows;
       });

+ 777 - 0
src/views/education/dataReview/stamp/index.vue

@@ -0,0 +1,777 @@
+<template>
+  <div id="stamp">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+      :shType="shType"
+    />
+    <table-list
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      @addClick="addClick"
+      :loading="loading"
+      @editInfo="editInfo"
+    >
+      <template slot="btn" slot-scope="props">
+        <el-button
+          type="text"
+          @click="addClick(props.scope.row, 0)"
+          :disabled="
+            !(
+              props.scope.row.changeStatus === 2 || props.scope.row.status === 2
+            )
+          "
+          >审核</el-button
+        >
+        <el-button type="text" @click="openRecord(props.scope.row)"
+          >审核记录</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
+      @handleSizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+    />
+    <el-dialog
+      @closed="loadingClose"
+      :visible.sync="dialogVisible"
+      width="900px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">资料审核</div>
+        <div class="rightBoxs">
+          <img src="@/assets/images/Close@2x.png" alt="" @click="close" />
+        </div>
+      </div>
+      <div slot="title" class="topStys">
+        <div class="btnsTys">学员编码:{{ listData.userAccount }}</div>
+        <div class="btnsTys">学员姓名:{{ listData.realname }}</div>
+        <div class="btnsTys">学员身份证号码:{{ listData.idCard }}</div>
+        <div class="btnsTys">绑定手机号码:{{ listData.telphone }}</div>
+        <div style="clear: both"></div>
+      </div>
+      <div class="heightstybox gdt">
+        <ul>
+          <li class="dissty" v-for="(item, index) in listInfos" :key="index">
+            <div style="width: 60px; color: red; align-self: flex-start">
+              {{ item.status === 1 ? "有变更" : "" }}
+            </div>
+            <div class="stys">{{ item.fieldName }}:</div>
+            <div v-if="item.fieldKey === 'commitment_seal'" style="width: 100%">
+              <el-image
+                  v-if="item.value"
+                  style="width: 100%;"
+                  :src="$methodsTools.splitImgHost(item.value)"
+                  :preview-src-list="[$methodsTools.splitImgHost(item.value)]"
+                >
+                </el-image>
+              <p v-else>暂无上传图片</p>
+            </div>
+          </li>
+          <li class="dissty" style="border-bottom: none">
+            <div class="stys">审核结果反馈:</div>
+            <el-input
+              v-model="listData.text"
+              type="textarea"
+              :rows="5"
+            ></el-input>
+          </li>
+        </ul>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="close">取 消</el-button>
+        <el-button :loading="disabledBtn" @click="submitTable(1)" type="success"
+          >审核通过</el-button
+        >
+        <el-button :loading="disabledBtn" @click="submitTable(3)" type="danger"
+          >审核不通过</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog
+      :visible.sync="dialogVisibleRecord"
+      width="900px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">资料审核</div>
+        <div class="rightBoxs">
+          <img
+            src="@/assets/images/Close@2x.png"
+            alt=""
+            @click="dialogVisibleRecord = false"
+          />
+        </div>
+      </div>
+      <div slot="title" class="topStys">
+        <div class="btnsTys">
+          学员编码:{{ recordList[activeIndex].userAccount }}
+        </div>
+        <div class="btnsTys">
+          学员姓名:{{ recordList[activeIndex].realname }}
+        </div>
+        <div class="btnsTys">
+          学员身份证号码:{{ recordList[activeIndex].idCard }}
+        </div>
+        <div class="btnsTys">
+          绑定手机号码:{{ recordList[activeIndex].telphone }}
+        </div>
+        <div style="clear: both"></div>
+      </div>
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <ul class="max_heightAuto">
+            <li
+              class="lsTYs"
+              v-for="(item, index) in recordList"
+              :key="index"
+              :class="index === activeIndex ? 'active' : ''"
+              @click="changeIndex(index)"
+            >
+              {{ $methodsTools.onlyForma(item.auditTime) }}
+            </li>
+          </ul>
+        </el-col>
+        <el-col :span="18">
+          <transition>
+            <div class="heightstybox gdt" v-if="showIS">
+              <ul>
+                <li>
+                  <div class="float_lefts">
+                    审核人:{{ recordList[activeIndex].createByName }}
+                  </div>
+                  <div class="float_lefts">
+                    {{
+                      recordList[activeIndex].status === 1
+                        ? "审核通过"
+                        : recordList[activeIndex].status === 2
+                        ? "待审核"
+                        : recordList[activeIndex].status === 3
+                        ? "审核不通过"
+                        : "无审核状态"
+                    }}
+                  </div>
+                  <div style="clear: both"></div>
+                </li>
+                <li
+                  class="dissty"
+                  v-for="(item, index) in recordList[activeIndex]
+                    .keyValueArrays"
+                  :key="index"
+                >
+                  <div class="stys">{{ item.fieldName }}:</div>
+                  <div
+                    v-if="item.fieldKey === 'commitment_seal'"
+                    style="width: 100%"
+                  >
+                    <el-image
+                  v-if="item.value"
+                  style="width: 100%;"
+                  :src="$methodsTools.splitImgHost(item.value)"
+                  :preview-src-list="[$methodsTools.splitImgHost(item.value)]"
+                >
+                </el-image>
+                    <p v-else>暂无上传图片</p>
+                  </div>
+                </li>
+                <li class="dissty" style="border-bottom: none">
+                  <div class="stys">审核结果反馈:</div>
+                  <div>
+                    {{ recordList[activeIndex].text }}
+                  </div>
+                </li>
+              </ul>
+            </div>
+          </transition>
+        </el-col>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisibleRecord = false">取 消</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name:"Stamp",
+  components: { searchBoxNew, tableList, pagination },
+  data() {
+    return {
+      disabledBtn: false,
+      dialogVisibleRecord: false,
+      shType: true,
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "盖章资料审核",
+        index: 0,
+        ch: "条",
+        num: true,
+        border: true,
+        choice: true,
+        addHide: true,
+        backFatherBtn: {
+          status: false,
+          title: "未定义",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "educationTypeId",
+          placeholder: "教育类型",
+          scope: "educationType",
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "schoolId",
+          placeholder: "院校",
+          scope: "schoolList",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "majorId",
+          placeholder: "专业",
+          scope: "Professional",
+          edu: "educationTypeId",
+        },
+        {
+          prop: "changeStatus",
+          placeholder: "变更状态",
+          scope: "select",
+          options: [
+            {
+              label: "正常",
+              value: 1,
+            },
+            {
+              label: "有变更",
+              value: 2,
+            },
+          ],
+        },
+        {
+          prop: "prefixName",
+          placeholder: "请输入搜索关键内容",
+        },
+      ],
+      formData: {
+        status: "",
+        pageSize: 10,
+        pageNum: 1,
+      },
+      showIS: true,
+      // 表单
+      tableSet: [
+        {
+          label: "填写资料审核状态",
+          hidden: true,
+          scope: "isOKs",
+          width: "160px",
+        },
+        {
+          label: "学员编码",
+          prop: "userAccount",
+          hidden: true,
+        },
+        {
+          label: "学员姓名",
+          prop: "realname",
+          hidden: true,
+        },
+
+        {
+          label: "学员身份证",
+          prop: "idCard",
+          hidden: true,
+          width: "160px",
+        },
+        {
+          label: "绑定手机号",
+          prop: "telphone",
+          hidden: true,
+          width: "140px",
+        },
+        {
+          label: "所购商品",
+          hidden: true,
+          width: "280px",
+          scope: "getShops",
+        },
+        {
+          label: "填写资料审核状态",
+          prop: "status",
+          hidden: true,
+          scope: "isOptions",
+          width: "160px",
+          options: [
+            {
+              label: "通过",
+              value: 1,
+            },
+            {
+              label: "待审核",
+              value: 2,
+            },
+            {
+              label: "不通过",
+              value: 3,
+            },
+          ],
+        },
+        {
+          label: "填写资料变更状态",
+          prop: "changeStatus",
+          hidden: true,
+          scope: "isOptions",
+          width: "160px",
+          options: [
+            {
+              label: "正常",
+              value: 1,
+            },
+
+            {
+              label: "有变更",
+              value: 2,
+              style: "color:red",
+            },
+          ],
+        },
+        {
+          label: "第一次提交资料时间",
+          prop: "oneTime",
+          hidden: true,
+          scope: "aTimeList",
+          width: "160px",
+        },
+        {
+          label: "最后一次提交资料时间",
+          prop: "lastTime",
+          hidden: true,
+          scope: "aTimeList",
+          width: "180px",
+        },
+        {
+          label: "最后一次审核人",
+          prop: "createByName",
+          hidden: true,
+          width: "160px",
+        },
+        {
+          label: "最后一次审核时间",
+          prop: "auditTime",
+          hidden: true,
+          scope: "aTimeList",
+          width: "160px",
+        },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+      //   弹窗数据
+      listData: {},
+      statusPop: -1,
+      dialogVisible: false,
+      listInfos: [],
+      recordList: [{ keyValueArrays: [] }], //记录列表
+      activeIndex: 0,
+    };
+  },
+  mounted() {
+    this.search();
+  },
+  activated() {
+    this.search();
+  },
+  methods: {
+    changeIndex(v) {
+      if (this.activeIndex === v) {
+        return;
+      }
+      this.showIS = false;
+      this.activeIndex = v;
+      setTimeout(() => {
+        this.showIS = true;
+      }, 50);
+    },
+    openRecord(v) {
+      this.$api
+        .inquirebaseprofileStamplistRecord({
+          userId: v.userId,
+          goodsId: v.goodsId,
+        })
+        .then((res) => {
+          if (!res.rows.length) {
+            this.$message.warning("该条数据无审核记录");
+            return;
+          }
+          res.rows.forEach((item) => {
+            item.keyValue = JSON.parse(item.keyValue);
+            var arst = [];
+            for (let k in item.keyValue) {
+              arst.push(item.keyValue[k]);
+            }
+            item.keyValueArrays = arst;
+          });
+
+          this.recordList = res.rows;
+          console.log(res.rows);
+          this.dialogVisibleRecord = true;
+        });
+    },
+    pdStatus(int) {
+      if (
+        int === "recent_photos" ||
+        int === "idcard_face_photo" ||
+        int === "idcard_national_photo" ||
+        int === "commitment_electr_signature"
+      ) {
+        return true;
+      }
+    },
+    //1通过 3不通过
+    submitTable(int) {
+      this.disabledBtn = true;
+      var data = JSON.parse(JSON.stringify(this.listData));
+      for (let k in data.keyValue) {
+        data.keyValue[k].status = 0;
+      }
+      data.keyValue = JSON.stringify(data.keyValue);
+      data.status = int;
+      data.changeStatus = 1;
+      this.$api
+        .editbaseprofileStampss(data)
+        .then((res) => {
+          this.$message.success("提交成功");
+          this.search();
+          this.dialogVisible = false;
+        })
+        .catch(() => {
+          this.disabledBtn = false;
+        });
+    },
+    loadingClose() {
+      this.disabledBtn = false;
+    },
+    editInfo(v) {
+      this.addClick(v, 0);
+    },
+    search(int) {
+      this.loading = true;
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          status: "",
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      this.$api
+        .inquirebaseprofileStamp(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+        .then(() => {
+          var data = {
+            natureId: v.natureId,
+            status: -1,
+          };
+          this.$api.editpaynature(data).then((res) => {
+            this.$message.success("删除成功");
+            this.search();
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    addClick(v, int) {
+      if (v === undefined) {
+        this.listData = {};
+      } else {
+        this.$api.obtainbaseprofile(v.id).then((res) => {
+          res.data.keyValue = JSON.parse(res.data.keyValue);
+          this.listData = res.data;
+          var arst = [];
+          for (let k in res.data.keyValue) {
+            arst.push(res.data.keyValue[k]);
+          }
+          this.listInfos = arst;
+        });
+      }
+      this.dialogVisible = true;
+    },
+    submit() {
+      this.disabledBtn = true;
+      return;
+      if (this.statusPop === 1) {
+        this.$api
+          .apppaynature(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+      if (this.statusPop === 0) {
+        this.$api
+          .editpaynature(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
+      }
+    },
+    close() {
+      this.dialogVisible = false;
+    },
+    handleSizeChange(v) {
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
+      this.search();
+    },
+    handleCurrentChange(v) {
+      this.formData.pageNum = v;
+      this.search();
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+// 进入前和结束后的状态
+.v-enter,
+.v-leave-to {
+  opacity: 0;
+  // transform: translateX(80px);
+}
+// 进入和离开的动画时间段
+.v-enter-active,
+.v-leave-active {
+  transition: all 0.5s ease;
+}
+.gdt {
+  /* 设置滚动条的样式 */
+  &::-webkit-scrollbar {
+    width: 8px;
+  }
+  /* 滚动槽 */
+  &::-webkit-scrollbar-track {
+    -webkit-box-shadow: inset 6px rgba(0, 0, 0, 0.3);
+    border-radius: 10px;
+  }
+  /* 滚动条滑块 */
+  &::-webkit-scrollbar-thumb {
+    border-radius: 10px;
+    background: rgba(0, 0, 0, 0.1);
+    -webkit-box-shadow: inset 06px rgba(0, 0, 0, 0.5);
+  }
+  &::-webkit-scrollbar-thumb:window-inactive {
+    background: rgba(182, 182, 182, 0.4);
+  }
+}
+.max_heightAuto {
+  padding: 0px 10px;
+  max-height: 560px;
+  overflow-y: auto;
+}
+.float_lefts {
+  float: left;
+  padding: 0px 10px;
+  border-radius: 12px;
+  background-color: #eee;
+  height: 35px;
+  line-height: 35px;
+  margin-right: 10px;
+}
+.lsTYs {
+  height: 40px;
+  border-top: 1px solid #999;
+  border-left: 1px solid #999;
+  border-right: 1px solid #999;
+  line-height: 40px;
+  cursor: pointer;
+  text-align: center;
+  &:last-child {
+    border-bottom: 1px solid #999 !important;
+  }
+}
+.active {
+  color: blue;
+}
+.heightstybox {
+  padding: 20px;
+  height: 600px;
+  overflow-y: auto;
+}
+.dissty {
+  display: flex;
+  align-items: center;
+  padding: 20px;
+  border-bottom: 1px dotted #999;
+}
+.stys {
+  flex-shrink: 0;
+  align-self: flex-start;
+  width: 200px;
+  padding-left: 50px;
+}
+.topStys {
+  padding: 20px;
+  background-color: rgb(215, 215, 215);
+  display: flex;
+  align-items: center;
+  overflow-x: auto;
+
+  .btnsTys {
+    flex-shrink: 0;
+    margin-right: 16px;
+    padding: 0px 7px;
+    background-color: #fff;
+    border-radius: 4px;
+    font-size: 14px;
+    height: 40px;
+    line-height: 40px;
+  }
+}
+/deep/.el-button {
+  border-radius: 8px;
+}
+/deep/ .el-dialog__body {
+  padding: 10px 0px;
+}
+/deep/.el-dialog {
+  border-radius: 8px;
+  .el-dialog__header {
+    padding: 0;
+    .hearders {
+      height: 40px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 18px 0px 20px;
+      border-bottom: 1px solid #e2e2e2;
+      .leftTitle {
+        font-size: 14px;
+        font-weight: bold;
+        color: #2f4378;
+      }
+      .rightBoxs {
+        display: flex;
+        align-items: center;
+        img {
+          width: 14px;
+          height: 14px;
+          margin-left: 13px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+  .el-dialog__footer {
+    padding: 0;
+    .dialog-footer {
+      padding: 0px 40px;
+      height: 70px;
+      border-top: 1px solid #e2e2e2;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+  }
+}
+.imgBox {
+  width: 100%;
+  // height: 210px;
+  border: 1px solid #e2e2e2;
+  border-radius: 8px;
+  padding: 8px 8px 3px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  .imgLabel {
+    flex: 1;
+    width: 100%;
+    border: 1px dotted #e2e2e2;
+    color: #999;
+    font-size: 14px;
+    cursor: pointer;
+    border-radius: 8px;
+    .msPhoto {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      max-width: 100%;
+      max-height: 270px;
+      img {
+        max-width: 100%;
+        max-height: 270px;
+      }
+    }
+    .imgbbx {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      width: 100%;
+      height: 100%;
+      i {
+        font-weight: bold;
+        margin: 14px 0;
+        font-size: 24px;
+      }
+    }
+  }
+  p {
+    margin: 5px 0px;
+  }
+}
+</style>
+

+ 86 - 26
src/views/education/examManagement/applicationData/asPlanned.vue

@@ -291,37 +291,58 @@
             alt=""
           />
         </div>
-        <div style="padding-left:100px;">
-          <p>第一步:下载导入模板</p>
-          <p style="padding-left:50px;"><i class="el-icon-upload"></i><span class="dowmStys" @click="getDowm">下载模板</span></p>
+        <div style="padding-left: 100px">
           <p>第一步:下载导入模板</p>
+          <p style="padding-left: 50px">
+            <i class="el-icon-upload"></i
+            ><span class="dowmStys" @click="getDowm">下载模板</span>
+          </p>
+          <p>
+            第二步:(批量新增):适用于新增预约考试;使用模版整理文件,点击“上传Excel”完成导入
+          </p>
+          <label
+            for="mobles"
+            class="el-button el-button--primary"
+            style="margin-left: 50px; padding: 10px 20px"
+            >上传Excel</label
+          ><input
+            style="display: none"
+            type="file"
+            id="mobles"
+            @change="importMobleadd"
+          />
+          <p>
+            (批量修改):适用于修改预约、分数登记;使用模版整理文件,点击“上传Excel”完成导入
+          </p>
           <label
-          for="mobles"
-          class="el-button el-button--primary"
-          style="margin-left: 50px; padding: 10px 20px"
-          >上传Excel</label
-        ><input
-          style="display: none"
-          type="file"
-          id="mobles"
-          @change="importMoble"
-        />
+            for="moblest"
+            class="el-button el-button--primary"
+            style="margin-left: 50px; padding: 10px 20px"
+            >上传Excel</label
+          ><input
+            style="display: none"
+            type="file"
+            id="moblest"
+            @change="importMobleEdit"
+          />
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogDR = false">取消</el-button>
-        <el-button type="primary" @click="submitChecksDR">确定</el-button>
+        <!-- <el-button type="primary" @click="submitChecksDR">确定</el-button> -->
       </span>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import * as baseUrls from '@/utils/methodsTool.js'
+import * as baseUrls from "@/utils/methodsTool.js";
+import * as baseUrlst from "@/utils/request.js";
 import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"AsPlanned",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -581,9 +602,13 @@ export default {
     this.search();
     this.getQP();
   },
+  activated() {
+    this.search();
+    this.getQP();
+  },
   methods: {
-    getDowm(){
-      let url =baseUrls.BASE_IMG_URL + "/oss/images/file/20211213.xls";
+    getDowm() {
+      let url = baseUrls.BASE_IMG_URL + "/oss/images/file/20211215.xls";
       let link = document.createElement("a");
       let fileName = "导入模板" + ".xlsx";
       document.body.appendChild(link);
@@ -592,15 +617,50 @@ export default {
       link.click();
       link.remove();
     },
-    importMoble(e) {
+    importMobleadd(e) {
+      var self = this;
+      var file = e.target.files[0];
+      let formData = new FormData();
+      formData.append("file", file);
+      this.$api.editsystemimportDatae(formData).then((res) => {
+        if (res.msg) {
+          let url = baseUrlst.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("导出失败,请看失败xlsx原因");
+        } else {
+          self.$message.success("导入成功");
+        }
+        self.search();
+      });
+    },
+    importMobleEdit(e) {
       var self = this;
       var file = e.target.files[0];
       let formData = new FormData();
       formData.append("file", file);
-      // this.$api.importDatabankquestion(formData).then((res) => {
-      //     self.$message.success("导入成功");
-      //     self.search();
-      // });
+      this.$api.editsystemimportUpdateData(formData).then((res) => {
+        if (res.msg) {
+          let url =
+            "http://192.168.1.12:5030/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("导出失败,请看失败xlsx原因");
+        } else {
+          self.$message.success("导入成功");
+        }
+        self.search();
+      });
     },
     openZS(row, int) {
       if (row.examStatus !== 1) {
@@ -608,7 +668,7 @@ export default {
         return;
       }
       this.ints = 1;
-      this.peopleList = [row];
+      this.peopleList = [JSON.parse(JSON.stringify(row))];
       this.dialogPLS = true;
     },
     //证书
@@ -735,7 +795,7 @@ export default {
     },
     examBox(row) {
       this.ints = 1;
-      this.listData = row;
+      this.listData = JSON.parse(JSON.stringify(row));
       this.dialogCG = true;
     },
     editInfo(v) {
@@ -1074,8 +1134,8 @@ export default {
   text-align: center;
   border-bottom: 1px solid #eee;
 }
-.dowmStys{
-  color:blue;
+.dowmStys {
+  color: blue;
   cursor: pointer;
 }
 </style>

+ 4 - 0
src/views/education/examManagement/applicationData/byTrainee.vue

@@ -518,6 +518,7 @@
 <script>
 import pagination from "@/components/pagination";
 export default {
+  name:"ByTrainee",
   components: { pagination },
   data() {
     return {
@@ -740,6 +741,9 @@ export default {
     //   .then((res) => {});
     this.getStudent();
   },
+  activated(){
+    this.getStudent();
+  },
   methods: {
     seeInfos(row, int) {
       this.activeInfoType = int;

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

@@ -18,6 +18,7 @@
 import asPlanned from './asPlanned.vue'
 import byTrainee from './byTrainee.vue'
 export default {
+  name:"ApplicationData",
   components:{asPlanned,byTrainee},
   data() {
     return {

+ 14 - 3
src/views/education/examManagement/examArrangement/index.vue

@@ -106,7 +106,7 @@
               注:请上传小于300kb,尺寸为1920*930的像素图片,支持gif、jpg、jpeg、png等类型
             </div>
           </el-form-item>
-          <el-form-item label="考试安排" prop="applyName">
+          <el-form-item label="考试标题" prop="applyName">
             <el-input
               :disabled="statusPop === 2"
               v-model="listData.applyName"
@@ -307,7 +307,7 @@
                       style="width: 60px"
                       :precision="0"
                       size="mini"
-                      :min="0"
+                      :min="1"
                       :max="item.people"
                       v-model="its.num"
                       :controls="false"
@@ -691,6 +691,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+name:"ExamArrangement",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -905,6 +906,11 @@ export default {
     this.search();
     this.getExamPlace();
   },
+  activated() {
+    this.getDict();
+    this.search();
+    this.getExamPlace();
+  },
   watch: {
     "listDataGoods.educationTypeId"(value) {
       this.businessList = this.busList.filter((item) => {
@@ -932,6 +938,11 @@ export default {
       this.$api
         .inquirepayservegoodsInfo({ applyId: row.applyId })
         .then((res) => {
+           this.$api
+          .inquirepayservelistGoods({ businessId: res.data.businessId })
+          .then((result) => {
+            this.goodsList = result.rows;
+          });
           if (res.data.goodsType && res.data.goodsId.length) {
             this.statusPop = 0;
             this.bfListData = JSON.parse(JSON.stringify(res.data));
@@ -1184,7 +1195,7 @@ export default {
     search(v) {
       this.loading = true;
       var data = {
-        status: "0,1",
+        status: "0,1,2",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };

+ 37 - 29
src/views/education/examManagement/examConfiguration/examNum/index.vue

@@ -114,7 +114,7 @@
                 <span
                   :style="
                     item.goodsStatus === 0 &&
-                  bfListData.goodsId.indexOf(item.goodsId) === -1
+                    bfListData.goodsId.indexOf(item.goodsId) === -1
                       ? ''
                       : 'color:#F56C6C'
                   "
@@ -129,7 +129,6 @@
               :controls="false"
               :disabled="statusPop === 2"
               v-model="listData.examNumber"
-              @change="changeNums"
               :precision="0"
             ></el-input-number
           ></el-form-item>
@@ -138,7 +137,6 @@
               :controls="false"
               :disabled="statusPop === 2"
               v-model="listData.doNumber"
-              @change="changeNums2"
               :precision="0"
             ></el-input-number
           ></el-form-item>
@@ -174,6 +172,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"ExamNum",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -245,7 +244,7 @@ export default {
           prop3: "standPrice",
           hidden: true,
           scope: "moreGoodsList",
-          width:"210px"
+          width: "210px",
         },
         {
           label: "考试次数",
@@ -271,8 +270,8 @@ export default {
       currentPage: 1, //当前页码
       //   弹窗数据
       listData: {
-          examNumber : 0,
-          doNumber : 0
+        examNumber: 0,
+        doNumber: 0,
       },
       statusPop: -1,
       dialogVisible: false,
@@ -326,14 +325,18 @@ export default {
         examNumber: [
           {
             required: true,
-            message: "请输入考试次数",
+            type: "number",
+            min: 0,
+            message: "请重新输入考试次数",
             trigger: "blur",
           },
         ],
         doNumber: [
           {
             required: true,
-            message: "请输入前培(刷题)次数",
+            type: "number",
+            min: 0,
+            message: "请重新输入前培(刷题)次数",
             trigger: "blur",
           },
         ],
@@ -352,6 +355,10 @@ export default {
     this.getDict();
     this.search();
   },
+  activated() {
+    this.getDict();
+    this.search();
+  },
   watch: {
     "listData.educationTypeId"(value) {
       this.businessList = this.busList.filter((item) => {
@@ -372,22 +379,6 @@ export default {
     },
   },
   methods: {
-    changeNums(val){
-      if(val < this.examNumber){
-        this.$message.warning("请重新输入考试次数,且不得小于" + this.examNumber)
-        this.$nextTick(()=>{
-          this.$set(this.listData,'examNumber',this.examNumber)
-        })
-      }
-    },
-    changeNums2(val){
-      if(val < this.doNumber){
-        this.$message.warning("请重新输入前培次数,且不得小于" + this.doNumber)
-        this.$nextTick(()=>{
-          this.$set(this.listData,'doNumber',this.doNumber)
-        })
-      }
-    },
     getDict() {
       this.$api.inquirebusinessList({ status: 1 }).then((res) => {
         this.busList = res.rows;
@@ -456,17 +447,34 @@ export default {
           status: 1,
           businessId: "",
           goodsId: [],
-          examNumber : 0,
-          doNumber : 0
+          examNumber: 0,
+          doNumber: 0,
         };
+        this.rules.examNumber[0].min = 0;
+        this.rules.doNumber[0].min = 0;
+        this.rules.examNumber[0].message =
+          "考试次数不得小于" + 0 + '次';
+        this.rules.doNumber[0].message =
+          "前培次数不得小于" + 0 + '次';
         this.$nextTick(() => {
-            this.$refs.listData.clearValidate();
-          });
+          this.$refs.listData.clearValidate();
+        });
         this.dialogVisible = true;
       } else {
         this.statusPop = int;
         this.$api.obtainsystemnumber(v.examNumberId).then((res) => {
-          this.bfListData = JSON.parse(JSON.stringify(res.data))
+          this.$api
+          .inquiresystemnumberlistGoods({ businessId: res.data.businessId })
+          .then((result) => {
+            this.goodsList = result.rows;
+          });
+          this.bfListData = JSON.parse(JSON.stringify(res.data));
+          this.rules.examNumber[0].min = this.bfListData.examNumber;
+          this.rules.examNumber[0].message =
+            "考试次数不得小于" + this.bfListData.examNumber + '次';
+          this.rules.doNumber[0].min = this.bfListData.doNumber;
+          this.rules.doNumber[0].message =
+            "前培次数不得小于" + this.bfListData.doNumber + '次';
           this.examNumber = this.bfListData.examNumber;
           this.doNumber = this.bfListData.doNumber;
           this.listData = res.data;

+ 4 - 0
src/views/education/examManagement/examConfiguration/examPlace/index.vue

@@ -96,6 +96,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"ExamPlace",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -187,6 +188,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

+ 9 - 1
src/views/education/examManagement/qianpeiArrange/index.vue

@@ -323,6 +323,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"QianpeiArrange",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -498,6 +499,10 @@ export default {
     this.getDict();
     this.search();
   },
+  activated() {
+    this.getDict();
+    this.search();
+  },
   watch: {
     "listDataGoods.educationTypeId"(value) {
       this.businessList = this.busList.filter((item) => {
@@ -527,6 +532,9 @@ export default {
       this.$api
         .inquiresystembeforelistGoodsgoodsInfo({ beforeId: row.beforeId })
         .then((res) => {
+          this.$api.inquiresystembeforelistGoods({ businessId: res.data.businessId }).then((result) => {
+          this.goodsList = result.rows;
+        });
           if (res.data.goodsType && res.data.goodsId.length) {
             this.statusPop = 0;
             this.bfListData = JSON.parse(JSON.stringify(res.data));
@@ -611,7 +619,7 @@ export default {
     search(v) {
       this.loading = true;
       var data = {
-        status: "0,1",
+        status: "0,1,2",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };

+ 24 - 23
src/views/education/notificationManageMent/notificationList/add/index.vue

@@ -292,13 +292,6 @@
               >
               </el-option>
             </el-select>
-            <el-button
-              style="margin-left: 14px"
-              size="small"
-              type="success"
-              @click="submitForm('informCourseAdd')"
-              >搜索</el-button
-            >
           </el-form-item>
           <el-form-item
             label="业务层级"
@@ -335,6 +328,13 @@
               >
               </el-option>
             </el-select>
+            <el-button
+              style="margin-left: 14px"
+              size="small"
+              type="success"
+              @click="submitForm('informCourseAdd')"
+              >搜索</el-button
+            >
           </el-form-item>
         </el-form>
         <el-tree
@@ -442,8 +442,8 @@ export default {
       dialogCG: false,
       dialog: false,
       listData: {
-        issueStatus:1,
-        receiptStatus:0,
+        issueStatus: 1,
+        receiptStatus: 0,
         informWay: [],
         issueTime: "",
         userId: [],
@@ -770,6 +770,10 @@ export default {
       this.dialogVisibleFL = true;
     },
     submitFL() {
+      if (!this.courseData.onlyId) {
+        this.$message.warning("请勾选视频");
+        return;
+      }
       var arrs = this.courseData.onlyId.split("-").map(Number);
       if (this.idCods === 1) {
         let arrays = {
@@ -926,8 +930,8 @@ export default {
     //返回上一页
     backPage() {
       this.$router.push({
-        path:"notificationList"
-      })
+        path: "notificationList",
+      });
     },
     //表单验证
     submit(formName, int) {
@@ -937,13 +941,10 @@ export default {
             this.$message.error("请选择收件人");
             return;
           }
-          if (
-            !this.listData.informCourseAddBo.length &&
-            !this.listData.informExamAddBo.length
-          ) {
-            this.$message.error("请添加课程题库");
-            return;
-          }
+          // if (!this.listData.informCourseAddBo.length &&!this.listData.informExamAddBo.length) {
+          //   this.$message.error("请添加课程题库");
+          //   return;
+          // }
           this.submits(int);
         } else {
           console.log("error submit!!");
@@ -995,8 +996,8 @@ export default {
       this.$api.appsysteminform(data).then((res) => {
         this.$message.success("发布成功");
         this.$router.push({
-        path:"notificationList"
-      })
+          path: "notificationList",
+        });
       });
     },
     submitCG() {
@@ -1013,8 +1014,8 @@ export default {
       this.$api.appsysteminform(data).then((res) => {
         this.$message.success("保存成功");
         this.$router.push({
-        path:"notificationList"
-      })
+          path: "notificationList",
+        });
       });
     },
     //初始获取备注分类
@@ -1162,7 +1163,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-/deep/ .filter-tree{
+/deep/ .filter-tree {
   max-height: 600px;
   overflow-y: auto;
 }

+ 11 - 7
src/views/education/notificationManageMent/notificationList/edit/index.vue

@@ -292,13 +292,6 @@
               >
               </el-option>
             </el-select>
-            <el-button
-              style="margin-left: 14px"
-              size="small"
-              type="success"
-              @click="submitForm('informCourseAdd')"
-              >搜索</el-button
-            >
           </el-form-item>
           <el-form-item
             label="业务层级"
@@ -335,6 +328,13 @@
               >
               </el-option>
             </el-select>
+            <el-button
+              style="margin-left: 14px"
+              size="small"
+              type="success"
+              @click="submitForm('informCourseAdd')"
+              >搜索</el-button
+            >
           </el-form-item>
         </el-form>
         <el-tree
@@ -790,6 +790,10 @@ export default {
       this.dialogVisibleFL = true;
     },
     submitFL() {
+      if(!this.courseData.onlyId){
+        this.$message.warning("请勾选视频")
+        return
+      }
       var arrs = this.courseData.onlyId.split("-").map(Number);
       if (this.idCods === 1) {
         let arrays = {

+ 19 - 7
src/views/education/notificationManageMent/notificationList/index.vue

@@ -150,6 +150,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "NotificationList",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -215,6 +216,10 @@ export default {
           placeholder: "发送状态",
           scope: "select",
           options: [
+            {
+              label: "-",
+              value: 0,
+            },
             {
               label: "发送成功",
               value: 1,
@@ -402,16 +407,23 @@ export default {
     };
   },
   mounted() {
-    this.$api.inquiresystemclassifylist({ status: 1 }).then((res) => {
-      this.formList[0].options = this.handleTree(
-        res.rows,
-        "classifyId",
-        "parentId"
-      );
-    });
+    this.getNews();
+    this.search();
+  },
+  activated() {
+    this.getNews();
     this.search();
   },
   methods: {
+    getNews() {
+      this.$api.inquiresystemclassifylist({ status: 1 }).then((res) => {
+        this.formList[0].options = this.handleTree(
+          res.rows,
+          "classifyId",
+          "parentId"
+        );
+      });
+    },
     newList() {
       this.listDataFL = {
         classifyName: "",

+ 5 - 1
src/views/education/notificationManageMent/notificationList/info/recipientList.vue

@@ -156,9 +156,13 @@ export default {
       this.$api
         .inquiresystemlistInformUser({
           informId: this.$route.query.id,
-          status: 0,
+          sendStatus: 0,
         })
         .then((res) => {
+          if(res.total === 0){
+            this.$message.warning("无发送失败人员")
+            return
+          }
           this.num = res.total;
           this.dialogCG = true;
         });

+ 4 - 0
src/views/education/studentManageMent/studentList/index.vue

@@ -39,6 +39,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"StudentList",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -135,6 +136,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search()
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 2);

+ 3 - 0
src/views/education/studentManageMent/studentXQ/studentBaseManage.vue

@@ -135,6 +135,9 @@
                 v-model="listData.remark"
               ></el-input>
             </el-form-item>
+            <el-form-item label="所在公司" prop="companyName">
+              <el-input v-model="listData.companyName"></el-input>
+            </el-form-item>
           </el-col>
         </el-row>
       </el-form>

+ 5 - 0
src/views/education/teacher/teacherList/index.vue

@@ -165,6 +165,7 @@ import { mapGetters } from "vuex";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"TeacherList",
   components: { tableList, pagination },
   data() {
     return {
@@ -276,6 +277,10 @@ export default {
     this.search();
     this.getInfos();
   },
+  activated(){
+    this.search();
+    this.getInfos();
+  },
   methods: {
     //删除教育项目类型
     clearList(index) {

+ 20 - 7
src/views/resource/bankManagement/chapterVolumeManagement/add/index.vue

@@ -8,7 +8,7 @@
         :rules="rules"
         ref="listData"
       >
-        <el-form-item label="适用业务层级">
+        <el-form-item label="适用业务层级" :required="true">
           <el-select
             v-model="eduType"
             placeholder="请选择教育类型"
@@ -336,6 +336,7 @@ export default {
       boxtableData: [],
       total: 0, //一共多少条
       formData: {
+        publishStatus:1,
         status: 1,
         pageSize: 10,
         pageNum: 1,
@@ -354,14 +355,19 @@ export default {
         //   edu: "educationTypeId",
         // },
         {
-          prop: "examName",
-          placeholder: "请输入试卷标题",
+          prop: "key",
+          placeholder: "请输入试卷标题/试卷编码/标题前缀",
         },
       ],
       disCheckList: [], //已选转禁用复选列表
       activeLists: [],
     };
   },
+  watch:{
+    "newSujectApis"(){
+      this.tableData = []
+    },
+  },
   mounted() {
     this.getDict();
     // this.search();
@@ -373,12 +379,13 @@ export default {
       }
     },
     openBoxs() {
-      if (!this.courType) {
+      if (!this.newSujectApis.subjectId) {
         this.$message.warning("请先选择科目");
         return;
       }
       var data = JSON.parse(JSON.stringify(this.formData));
-      data.businessId = this.courType;
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
       var self = this;
       this.$api.inquirebankexamList(data).then((res) => {
         var aList = [];
@@ -404,15 +411,21 @@ export default {
         });
     },
     getInfos(int) {
+      if (int === 1) {
+        this.formData.pageNum = 1
+      }
       if (int === 2) {
         this.formData = {
+          publishStatus:1,
           status: 1,
           pageSize: 10,
           pageNum: 1,
         };
       }
-      this.formData.businessId = this.courType,
-      this.$api.inquirebankexamList(this.formData).then((res) => {
+      var data = JSON.parse(JSON.stringify(this.formData))
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
+      this.$api.inquirebankexamList(data).then((res) => {
         this.boxtableData = res.rows;
         this.total = res.total;
       });

+ 18 - 9
src/views/resource/bankManagement/chapterVolumeManagement/edit/index.vue

@@ -8,7 +8,7 @@
         :rules="rules"
         ref="listData"
       >
-        <el-form-item label="适用业务层级">
+        <el-form-item label="适用业务层级" :required="true">
           <el-select
             disabled
             v-model="eduType"
@@ -48,6 +48,7 @@
           >
             <el-radio-group v-model="sujectApis">
               <el-radio
+              disabled
                 v-for="(item, index) in newSujectOption"
                 :label="item.newId"
                 :key="index"
@@ -55,7 +56,7 @@
               >
             </el-radio-group>
             <div style="display: block; text-align: center; margin-top: 10px">
-              <el-button size="mini" type="primary" @click="submitSujectArray"
+              <el-button size="mini" type="primary" @click="submitSujectArray" v-if="false"
                 >确定</el-button
               >
             </div>
@@ -85,7 +86,7 @@
                 " - " +
                 newSujectApis.subjectName
               }}
-              <i class="el-icon-error closeIcons" @click="closeType"></i>
+              <i class="el-icon-error closeIcons" @click="closeType" v-if="false"></i>
             </div>
           </div>
         </el-form-item>
@@ -338,6 +339,7 @@ export default {
       boxtableData: [],
       total: 0, //一共多少条
       formData: {
+        publishStatus:1,
         status: 1,
         pageSize: 10,
         pageNum: 1,
@@ -356,8 +358,8 @@ export default {
         //   edu: "educationTypeId",
         // },
         {
-          prop: "examName",
-          placeholder: "请输入试卷标题",
+          prop: "key",
+          placeholder: "请输入试卷标题/试卷编码/标题前缀",
         },
       ],
       disCheckList: [], //已选转禁用复选列表
@@ -374,12 +376,13 @@ export default {
       }
     },
     openBoxs() {
-      if (!this.courType) {
+      if (!this.newSujectApis.subjectId) {
         this.$message.warning("请先选择科目");
         return;
       }
       var data = JSON.parse(JSON.stringify(this.formData));
-      data.businessId = this.courType;
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
       var self = this;
       this.$api.inquirebankexamList(data).then((res) => {
         var aList = [];
@@ -405,15 +408,21 @@ export default {
         });
     },
     getInfos(int) {
+      if (int === 1) {
+        this.formData.pageNum = 1
+      }
       if (int === 2) {
         this.formData = {
+          publishStatus:1,
           status: 1,
           pageSize: 10,
           pageNum: 1,
         };
       }
-      (this.formData.businessId = this.courType),
-        this.$api.inquirebankexamList(this.formData).then((res) => {
+      var data = JSON.parse(JSON.stringify(this.formData))
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
+        this.$api.inquirebankexamList(data).then((res) => {
           this.boxtableData = res.rows;
           this.total = res.total;
         });

+ 4 - 0
src/views/resource/bankManagement/chapterVolumeManagement/index.vue

@@ -38,6 +38,7 @@ import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
   components: { searchBoxNew, tableList, pagination },
+  name:"ChapterVolumeManagement",
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -159,6 +160,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

+ 14 - 3
src/views/resource/bankManagement/knowledgeManagement/index.vue

@@ -44,12 +44,18 @@
         </div>
       </div>
       <div>
-        <el-form label-position="right" label-width="110px" :model="listData">
+        <el-form
+          label-position="right"
+          label-width="110px"
+          :model="listData"
+          ref="listData"
+        >
           <el-form-item
             v-for="(items, indexs) in listitem"
             :key="indexs"
             :label="items.label"
             :prop="items.prop"
+            :required="true"
           >
             <div v-if="items.scope === 'buss'">
               <el-select
@@ -186,6 +192,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "KnowledgeManagement",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -195,6 +202,7 @@ export default {
         index: 0,
         ch: "条",
         num: false,
+        border:true,
         choice: true,
         addHide: false,
         backFatherBtn: {
@@ -270,7 +278,6 @@ export default {
       tableData: [], //表单数据
       total: 0, //一共多少条
       changeHeight: false,
-      rules: [],
       listData: {},
 
       listitem: [
@@ -302,6 +309,10 @@ export default {
     this.getDict();
     this.search();
   },
+  activated() {
+    this.getDict();
+    this.search();
+  },
   methods: {
     getMessage() {
       if (!this.courType) {
@@ -580,7 +591,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.checkboxSty{
+.checkboxSty {
   display: flex;
   flex-direction: column;
 }

+ 1 - 1
src/views/resource/bankManagement/testPaperManagement/addPaper/baseAddPaper/index.vue

@@ -12,7 +12,7 @@
         :rules="rules"
         ref="listDataIns"
       >
-        <el-form-item label="适用业务层级">
+        <el-form-item label="适用业务层级" :required="true">
           <el-select
             v-model="eduType"
             placeholder="请选择教育类型"

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

@@ -65,6 +65,8 @@
           :sujectApisTable="sujectApisTable"
           :newSujectApisTable="newSujectApisTable"
         /> -->
+        <div v-if="showHide">
+          
         <el-form
           label-position="right"
           label-width="110px"
@@ -124,6 +126,7 @@
             ></el-input> </el-form-item
         ></el-form>
         <questionBank :dingFormInfo="listNums" :nums="1" ref="child" />
+        </div>
         <span slot="footer" class="dialog-footer">
           <el-button @click="closeBefore">关 闭</el-button>
           <el-button
@@ -378,6 +381,13 @@
                   size="mini"
                 ></el-input-number>
               </div>
+              <div class="margin_bs">
+                做题类型:
+                <el-radio-group v-model="examsType">
+                  <el-radio :label="1">练习</el-radio>
+                  <el-radio :label="2">考试</el-radio>
+                </el-radio-group>
+              </div>
             </div>
             <div class="margin_bs">
               <el-button size="mini" @click="activeOpens"
@@ -648,6 +658,7 @@ export default {
   components: { searchBoxNew, pagination, tableList, busIns, questionBank },
   data() {
     return {
+      showHide:false,
       activeName: "second",
       formList: [
         // {
@@ -673,11 +684,12 @@ export default {
           scope: "selectBank",
         },
         {
-          prop: "prefixName",
-          placeholder: "请输入标题前缀",
+          prop: "key",
+          placeholder: "请输入题目标题/题目编码/知识点/标题前缀",
         },
       ],
       formData: {
+        publishStatus: 1,
         status: 1,
         pageSize: 10,
         pageNum: 1,
@@ -892,6 +904,7 @@ export default {
       djTime: 0, //答卷时长
       djNumType: 0, //0无限1有限
       djNum: 0, //答卷次数
+      examsType:1,
       businObj: {},
     };
   },
@@ -954,9 +967,9 @@ export default {
           subjectName: res.data.subjectName,
           subjectId: res.data.subjectId,
         };
-        this.formData.businessId = res.data.businessId;
         this.djTime = res.data.answerTime;
         this.djNum = res.data.answerNum;
+        this.examsType = res.data.doType
         this.passScore = res.data.passScore;
       });
     },
@@ -1015,7 +1028,16 @@ export default {
         this.addClick();
       } else {
         var self = this;
-        this.$api.inquirebankquestionList(this.formData).then((res) => {
+        this.formData = {
+          status: 1,
+          pageSize: 10,
+          pageNum: 1,
+          publishStatus: 1,
+        };
+        var data = JSON.parse(JSON.stringify(this.formData));
+        data.businessId = this.businObj.businessId;
+        data.subjectId = this.businObj.subjectId;
+        this.$api.inquirebankquestionList(data).then((res) => {
           var aList = [];
           this.tableData.map((item) => {
             if (item.questionId) {
@@ -1041,10 +1063,13 @@ export default {
           status: 1,
           pageSize: 10,
           pageNum: 1,
-          businessId: this.businObj.businessId,
+          publishStatus: 1,
         };
       }
-      this.$api.inquirebankquestionList(this.formData).then((res) => {
+      var data = JSON.parse(JSON.stringify(this.formData));
+      data.businessId = this.businObj.businessId;
+      data.subjectId = this.businObj.subjectId;
+      this.$api.inquirebankquestionList(data).then((res) => {
         this.boxtableData = res.rows;
         this.totals = res.total;
       });
@@ -1094,6 +1119,7 @@ export default {
       if (v === undefined) {
         self.statusPop = 1;
         self.innerVisiblePaperTopic = true;
+        self.showHide = true
         self.$nextTick(() => {
           (self.listNums = {
             type: 1,
@@ -1115,6 +1141,7 @@ export default {
         });
       } else {
         self.innerVisiblePaperTopic = true;
+        self.showHide = true
         self.statusPop = int;
         var vres = JSON.parse(JSON.stringify(v));
         self.indexZB = indexZB;
@@ -1131,6 +1158,8 @@ export default {
               });
             });
           self.activeExam = a;
+        }else{
+          self.activeExam = []
         }
         if (vres.type === 2) {
           if (vres.answerQuestion) {
@@ -1241,7 +1270,7 @@ export default {
       var int = this.businObj.businessId;
       var ao = [];
       this.allOptions.map((item, index) => {
-        let acts = item.courseBusinessList.every((items) => {
+        let acts = item.courseBusinessList.some((items) => {
           return items.businessId === int;
         });
         if (acts) {
@@ -1274,6 +1303,7 @@ export default {
     },
     closeBefore() {
       this.innerVisiblePaperTopic = false;
+        this.showHide = false
     },
     async submitForm(formName, int) {
       this.$refs[formName].validate((valid) => {
@@ -1390,6 +1420,7 @@ export default {
             // this.$api.addbankquestion(data).then((res) => {
             self.$message.success("添加成功");
             self.innerVisiblePaperTopic = false;
+        self.showHide = false
             // self.search();
             // });
           }
@@ -1398,6 +1429,7 @@ export default {
             // this.$api.editbankquestion(data).then((res) => {
             self.$message.success("修改成功");
             self.innerVisiblePaperTopic = false;
+        self.showHide = false
             // self.search();
             // });
           }
@@ -1443,6 +1475,7 @@ export default {
         questionList: arrs,
         status: 1,
         passScore: this.passScore,
+        doType:this.examsType
       };
       if (this.djTimeType === 0) {
         data.answerTime = 0;

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

@@ -8,7 +8,7 @@
         :rules="rules"
         ref="listDataIns"
       >
-        <el-form-item label="适用业务层级">
+        <el-form-item label="适用业务层级" :required="true">
           <el-select
             disabled
             v-model="eduType"
@@ -48,6 +48,7 @@
           >
             <el-radio-group v-model="sujectApis">
               <el-radio
+              disabled
                 v-for="(item, index) in newSujectOption"
                 :label="item.newId"
                 :key="index"
@@ -55,7 +56,7 @@
               >
             </el-radio-group>
             <div style="display: block; text-align: center; margin-top: 10px">
-              <el-button size="mini" type="primary" @click="submitSujectArray"
+              <el-button size="mini" type="primary" @click="submitSujectArray" v-if="false"
                 >确定</el-button
               >
             </div>
@@ -82,7 +83,7 @@
                 " - " +
                 newSujectApis.subjectName
               }}
-              <i class="el-icon-error closeIcons" @click="closeType"></i>
+              <i class="el-icon-error closeIcons" @click="closeType" v-if="false"></i>
             </div>
           </div>
         </el-form-item>
@@ -383,6 +384,7 @@ export default {
       });
     },
     backPage() {
+      // this.$store.dispatch('tagsView/delView', this.$router.currentRoute)
       this.$router.go(-1);
     },
     closeType() {

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

@@ -61,65 +61,67 @@
           :sujectApisTable="sujectApisTable"
           :newSujectApisTable="newSujectApisTable"
         /> -->
-        <el-form
-          label-position="right"
-          label-width="110px"
-          :model="listData"
-          ref="listData"
-          :rules="rulesTest"
-        >
-          <el-form-item
-            v-for="(items, indexs) in listitem"
-            :key="indexs"
-            :label="items.label"
-            :prop="items.prop"
+        <div v-if="showHide">
+          <el-form
+            label-position="right"
+            label-width="110px"
+            :model="listData"
+            ref="listData"
+            :rules="rulesTest"
           >
-            <div v-if="items.scope === 'bussing'">
-              <div v-if="!activeExam.length">请在下面输入框添加知识点</div>
-              <ul v-else class="BusBoxs">
-                <li
-                  class="fot_Le"
-                  v-for="(item, index) in activeExam"
-                  :key="index"
-                >
-                  {{ item.knowledgeName }}
-                  <i
-                    class="el-icon-error icon_clear"
-                    @click="clearBusName(index)"
-                  ></i>
-                </li>
-                <div style="clear: both"></div>
-              </ul>
-              <el-select
-                v-model="value"
-                placeholder="请选择知识点"
-                @change="changeKnow"
-              >
-                <el-option
-                  v-for="item in options"
-                  :key="item.knowledgeId"
-                  :label="item.knowledgeName"
-                  :value="item.knowledgeId"
-                  :disabled="comLs(item)"
+            <el-form-item
+              v-for="(items, indexs) in listitem"
+              :key="indexs"
+              :label="items.label"
+              :prop="items.prop"
+            >
+              <div v-if="items.scope === 'bussing'">
+                <div v-if="!activeExam.length">请在下面输入框添加知识点</div>
+                <ul v-else class="BusBoxs">
+                  <li
+                    class="fot_Le"
+                    v-for="(item, index) in activeExam"
+                    :key="index"
+                  >
+                    {{ item.knowledgeName }}
+                    <i
+                      class="el-icon-error icon_clear"
+                      @click="clearBusName(index)"
+                    ></i>
+                  </li>
+                  <div style="clear: both"></div>
+                </ul>
+                <el-select
+                  v-model="value"
+                  placeholder="请选择知识点"
+                  @change="changeKnow"
                 >
-                </el-option>
-              </el-select>
-              <el-button @click="addExam">自定义添加</el-button>
-            </div>
+                  <el-option
+                    v-for="item in options"
+                    :key="item.knowledgeId"
+                    :label="item.knowledgeName"
+                    :value="item.knowledgeId"
+                    :disabled="comLs(item)"
+                  >
+                  </el-option>
+                </el-select>
+                <el-button @click="addExam">自定义添加</el-button>
+              </div>
 
-            <el-radio-group
-              v-else-if="items.scope === 'radio'"
-              v-model="listData[items.prop]"
-            >
-              <el-radio :label="1">发布</el-radio>
-              <el-radio :label="0">未发布</el-radio>
-            </el-radio-group>
-            <el-input
-              v-model="listData[items.prop]"
-              v-else
-            ></el-input> </el-form-item
-        ></el-form>
-        <questionBank :dingFormInfo="listNums" :nums="1" ref="child" />
+              <el-radio-group
+                v-else-if="items.scope === 'radio'"
+                v-model="listData[items.prop]"
+              >
+                <el-radio :label="1">发布</el-radio>
+                <el-radio :label="0">未发布</el-radio>
+              </el-radio-group>
+              <el-input
+                v-model="listData[items.prop]"
+                v-else
+              ></el-input> </el-form-item
+          ></el-form>
+          <questionBank :dingFormInfo="listNums" :nums="1" ref="child" />
+        </div>
         <span slot="footer" class="dialog-footer">
           <el-button @click="closeBefore">关 闭</el-button>
           <el-button
@@ -374,6 +376,13 @@
                   size="mini"
                 ></el-input-number>
               </div>
+              <div class="margin_bs">
+                做题类型:
+                <el-radio-group v-model="examsType">
+                  <el-radio :label="1">练习</el-radio>
+                  <el-radio :label="2">考试</el-radio>
+                </el-radio-group>
+              </div>
             </div>
             <div class="margin_bs">
               <el-button size="mini" @click="activeOpens"
@@ -644,6 +653,7 @@ export default {
   components: { searchBoxNew, pagination, tableList, busIns, questionBank },
   data() {
     return {
+      showHide:false,
       formList: [
         // {
         //   prop: "educationTypeId",
@@ -668,11 +678,12 @@ export default {
           scope: "selectBank",
         },
         {
-          prop: "prefixName",
-          placeholder: "请输入标题前缀",
+          prop: "key",
+          placeholder: "请输入题目标题/题目编码/知识点/标题前缀",
         },
       ],
       formData: {
+        publishStatus: 1,
         status: 1,
         pageSize: 10,
         pageNum: 1,
@@ -887,6 +898,7 @@ export default {
       djTime: 0, //答卷时长
       djNumType: 0, //0无限1有限
       djNum: 0, //答卷次数
+      examsType: 1,
       businObj: {}, //当前业务层次
     };
   },
@@ -949,9 +961,9 @@ export default {
           subjectName: res.data.subjectName,
           subjectId: res.data.subjectId,
         };
-        this.formData.businessId = res.data.businessId;
         this.djTime = res.data.answerTime;
         this.djNum = res.data.answerNum;
+        this.examsType = res.data.doType;
         this.passScore = res.data.passScore;
       });
     },
@@ -1010,7 +1022,16 @@ export default {
         this.addClick();
       } else {
         var self = this;
-        this.$api.inquirebankquestionList(this.formData).then((res) => {
+        this.formData = {
+          status: 1,
+          pageSize: 10,
+          pageNum: 1,
+          publishStatus: 1,
+        };
+        var data = JSON.parse(JSON.stringify(this.formData));
+        data.businessId = this.businObj.businessId;
+        data.subjectId = this.businObj.subjectId;
+        this.$api.inquirebankquestionList(data).then((res) => {
           var aList = [];
           this.tableData.map((item) => {
             if (item.questionId) {
@@ -1036,10 +1057,13 @@ export default {
           status: 1,
           pageSize: 10,
           pageNum: 1,
-          businessId: this.businObj.businessId,
+          publishStatus: 1,
         };
       }
-      this.$api.inquirebankquestionList(this.formData).then((res) => {
+      var data = JSON.parse(JSON.stringify(this.formData));
+      data.businessId = this.businObj.businessId;
+      data.subjectId = this.businObj.subjectId;
+      this.$api.inquirebankquestionList(data).then((res) => {
         this.boxtableData = res.rows;
         this.totals = res.total;
       });
@@ -1055,7 +1079,9 @@ export default {
       this.activeLists.map((item) => {
         item.optionsList = JSON.parse(item.jsonStr);
         item.sort = 0;
-        (item.partScore = 0), (item.score = "");
+        item.partScore = 0;
+        item.score = "";
+        item.diff = false
       });
       this.activeLists.forEach((item) => {
         this.tableData.unshift(item);
@@ -1089,6 +1115,7 @@ export default {
       if (v === undefined) {
         self.statusPop = 1;
         self.innerVisiblePaperTopic = true;
+        self.showHide = true
         self.$nextTick(() => {
           (self.listNums = {
             type: 1,
@@ -1109,7 +1136,9 @@ export default {
           self.activeExam = [];
         });
       } else {
+        self.tableData[indexZB].diff = true
         self.innerVisiblePaperTopic = true;
+        self.showHide = true
         self.statusPop = int;
         var vres = JSON.parse(JSON.stringify(v));
         self.indexZB = indexZB;
@@ -1126,6 +1155,8 @@ export default {
               });
             });
           self.activeExam = a;
+        }else{
+          self.activeExam = []
         }
         if (vres.type === 2) {
           if (vres.answerQuestion) {
@@ -1238,7 +1269,7 @@ export default {
       var int = this.businObj.businessId;
       var ao = [];
       this.allOptions.map((item, index) => {
-        let acts = item.courseBusinessList.every((items) => {
+        let acts = item.courseBusinessList.some((items) => {
           return items.businessId === int;
         });
         if (acts) {
@@ -1271,6 +1302,7 @@ export default {
     },
     closeBefore() {
       this.innerVisiblePaperTopic = false;
+      this.showHide = false
     },
     async submitForm(formName, int) {
       this.$refs[formName].validate((valid) => {
@@ -1318,7 +1350,8 @@ export default {
                 return;
               }
               if (
-                data.optionsList[i].type != 3 && data.optionsList[i].type != 5 &&
+                data.optionsList[i].type != 3 &&
+                data.optionsList[i].type != 5 &&
                 !data.optionsList[i].optionsList.length
               ) {
                 self.$message.error("请添加选项");
@@ -1386,6 +1419,7 @@ export default {
             // this.$api.addbankquestion(data).then((res) => {
             self.$message.success("添加成功");
             self.innerVisiblePaperTopic = false;
+            self.showHide = false
             // self.search();
             // });
           }
@@ -1394,6 +1428,7 @@ export default {
             // this.$api.editbankquestion(data).then((res) => {
             self.$message.success("修改成功");
             self.innerVisiblePaperTopic = false;
+            self.showHide = false
             // self.search();
             // });
           }
@@ -1421,9 +1456,10 @@ export default {
       var self = this;
       var arrs = [];
       for (let i = 0; i < this.tableData.length; i++) {
-        if (self.tableData[i].questionId) {
+        if (self.tableData[i].questionId && self.tableData[i].diff) {
           await self.uploadApis(self.tableData[i]);
-        } else {
+        } 
+        if(!self.tableData[i].questionId) {
           var ids = await self.addbankquestion(self.tableData[i]);
           self.tableData[i].questionId = ids;
         }
@@ -1439,6 +1475,7 @@ export default {
         questionList: arrs,
         status: 1,
         passScore: this.passScore,
+        doType: this.examsType,
       };
       if (this.djTimeType === 0) {
         data.answerTime = 0;

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

@@ -41,6 +41,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"TestPaperManagement",
   components: { tableList, pagination,searchBoxNew },
   data() {
     return {
@@ -172,6 +173,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 1);

+ 117 - 94
src/views/resource/bankManagement/topicManagement/index.vue

@@ -16,7 +16,9 @@
       @editInfo="editInfo"
     >
       <template slot="customize">
-        <el-button size="medium" @click="dowmModel" type="warning">下载模板</el-button>
+        <el-button size="medium" @click="dowmModel" type="warning"
+          >下载模板</el-button
+        >
         <label
           for="mobles"
           class="el-button el-button--success"
@@ -65,78 +67,80 @@
           <img src="@/assets/images/Close@2x.png" alt="" @click="closeBefore" />
         </div>
       </div>
-      <busIns
-        @amdis="changeAmdis"
-        ref="sujects"
-        :sujectApisTable="sujectApis"
-        :newSujectApisTable="newSujectApis"
-        :typeBus="typeBus"
-      />
-      <el-form
-        label-position="right"
-        label-width="110px"
-        :model="listData"
-        ref="listData"
-        :rules="rulesTest"
-      >
-        <el-form-item
-          v-for="(items, indexs) in listitem"
-          :key="indexs"
-          :label="items.label"
-          :prop="items.prop"
+      <div v-if="statusHide">
+        <busIns
+          @amdis="changeAmdis"
+          ref="sujects"
+          :sujectApisTable="sujectApis"
+          :newSujectApisTable="newSujectApis"
+          :typeBus="typeBus"
+        />
+        <el-form
+          label-position="right"
+          label-width="110px"
+          :model="listData"
+          ref="listData"
+          :rules="rulesTest"
         >
-          <div v-if="items.scope === 'bussing'">
-            <div v-if="!activeExam.length">请在下面输入框添加知识点</div>
-            <ul v-else class="BusBoxs">
-              <li
-                class="fot_Le"
-                v-for="(item, index) in activeExam"
-                :key="index"
-              >
-                {{ item.knowledgeName }}
-                <i
-                  class="el-icon-error icon_clear"
-                  @click="clearBusName(index)"
-                ></i>
-              </li>
-              <div style="clear: both"></div>
-            </ul>
-            <el-select
-              v-model="value"
-              placeholder="请选择知识点"
-              @change="changeKnow"
-            >
-              <el-option
-                v-for="item in options"
-                :key="item.knowledgeId"
-                :label="item.knowledgeName"
-                :value="item.knowledgeId"
-                :disabled="comLs(item)"
+          <el-form-item
+            v-for="(items, indexs) in listitem"
+            :key="indexs"
+            :label="items.label"
+            :prop="items.prop"
+          >
+            <div v-if="items.scope === 'bussing'">
+              <div v-if="!activeExam.length">请在下面输入框添加知识点</div>
+              <ul v-else class="BusBoxs">
+                <li
+                  class="fot_Le"
+                  v-for="(item, index) in activeExam"
+                  :key="index"
+                >
+                  {{ item.knowledgeName }}
+                  <i
+                    class="el-icon-error icon_clear"
+                    @click="clearBusName(index)"
+                  ></i>
+                </li>
+                <div style="clear: both"></div>
+              </ul>
+              <el-select
+                v-model="value"
+                placeholder="请选择知识点"
+                @change="changeKnow"
               >
-              </el-option>
-            </el-select>
-            <el-button @click="addExam">自定义添加</el-button>
-          </div>
+                <el-option
+                  v-for="item in options"
+                  :key="item.knowledgeId"
+                  :label="item.knowledgeName"
+                  :value="item.knowledgeId"
+                  :disabled="comLs(item)"
+                >
+                </el-option>
+              </el-select>
+              <el-button @click="addExam">自定义添加</el-button>
+            </div>
 
-          <el-radio-group
-            v-else-if="items.scope === 'radio'"
-            v-model="listData[items.prop]"
-          >
-            <el-radio :label="1">发布</el-radio>
-            <el-radio :label="0">未发布</el-radio>
-          </el-radio-group>
-          <el-input
-            v-model="listData[items.prop]"
-            v-else
-          ></el-input> </el-form-item
-      ></el-form>
-      <questionBank
-        v-for="(item, index) in listNums"
-        :key="index"
-        :dingFormInfo="item"
-        :nums="index"
-        ref="child"
-      />
+            <el-radio-group
+              v-else-if="items.scope === 'radio'"
+              v-model="listData[items.prop]"
+            >
+              <el-radio :label="1">发布</el-radio>
+              <el-radio :label="0">未发布</el-radio>
+            </el-radio-group>
+            <el-input
+              v-model="listData[items.prop]"
+              v-else
+            ></el-input> </el-form-item
+        ></el-form>
+        <questionBank
+          v-for="(item, index) in listNums"
+          :key="index"
+          :dingFormInfo="item"
+          :nums="index"
+          ref="child"
+        />
+      </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="closeBefore">关 闭</el-button>
         <el-button
@@ -202,7 +206,7 @@
 </template>
 
 <script>
-import * as baseUrls from '@/utils/methodsTool.js'
+import * as baseUrls from "@/utils/methodsTool.js";
 import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
@@ -210,8 +214,10 @@ import busIns from "@/components/busIns";
 import questionBank from "@/components/questionBank";
 export default {
   components: { questionBank, busIns, tableList, pagination, searchBoxNew },
+  name:"TopicManagement",
   data() {
     return {
+      statusHide: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "题目管理",
@@ -290,7 +296,7 @@ export default {
           hidden: true,
           scope: "knowledge",
           width: "200px",
-          showTooltip:true,
+          showTooltip: true,
         },
         {
           label: "适用业务层级",
@@ -306,7 +312,7 @@ export default {
           hidden: true,
           scope: "aboutChapter",
           width: "150",
-          int:5
+          int: 5,
         },
       ],
       sujectApis: [],
@@ -350,9 +356,9 @@ export default {
         },
       ],
       rulesTest: {
-        // prefixName: [
-        //   { required: true, message: "请输入标签前缀", trigger: "blur" },
-        // ],
+        publishStatus: [
+          { required: true, message: "请选择发布状态", trigger: "change" },
+        ],
       },
     };
   },
@@ -360,9 +366,13 @@ export default {
     this.getFns();
     this.search();
   },
+  activated(){
+    this.getFns();
+    this.search();
+  },
   methods: {
     dowmModel() {
-      let url =baseUrls.BASE_IMG_URL + "/oss/images/IDNumber/20211124.xlsx";
+      let url = baseUrls.BASE_IMG_URL + "/oss/images/IDNumber/20211124.xlsx";
       let link = document.createElement("a");
       let fileName = "导入模板" + ".xlsx";
       document.body.appendChild(link);
@@ -372,15 +382,14 @@ export default {
       link.remove();
     },
     importMoble(e) {
-      console.log(e)
+      console.log(e);
       var self = this;
       var file = e.target.files[0];
       let formData = new FormData();
       formData.append("file", file);
       this.$api.importDatabankquestion(formData).then((res) => {
-          self.$message.success("导入成功");
-          self.search();
-        
+        self.$message.success("导入成功");
+        self.search();
       });
     },
     editInfo(v) {
@@ -401,10 +410,11 @@ export default {
       this.$api
         .inquirebankquestionList(this.formData)
         .then((res) => {
-          for(let i = 0; i < res.rows.length;i++){
-            if(res.rows[i].knowledgeList){
-              for(let j = 0; j < res.rows[i].knowledgeList.length; j++){
-                res.rows[i].knowledgeList[j].knowledgeName = res.rows[i].knowledgeList[j].knowledgeName + ' '
+          for (let i = 0; i < res.rows.length; i++) {
+            if (res.rows[i].knowledgeList) {
+              for (let j = 0; j < res.rows[i].knowledgeList.length; j++) {
+                res.rows[i].knowledgeList[j].knowledgeName =
+                  res.rows[i].knowledgeList[j].knowledgeName + " ";
               }
             }
           }
@@ -455,6 +465,7 @@ export default {
       if (v === undefined) {
         self.statusPop = 1;
         self.innerVisiblePaperTopic = true;
+        self.statusHide = true;
         self.$nextTick(() => {
           self.listNums.push({
             type: 1,
@@ -467,6 +478,7 @@ export default {
           });
           self.$refs.sujects.eduType = "";
           self.$refs.sujects.courType = "";
+          self.options = [];
           self.sujectApis = [];
           self.newSujectApis = [];
           self.listData = {
@@ -492,6 +504,8 @@ export default {
                 });
               });
             self.activeExam = a;
+          }else{
+            self.activeExam = []
           }
           if (res.data.type === 2) {
             if (res.data.answerQuestion) {
@@ -531,6 +545,7 @@ export default {
             self.newSujectApis = res.rows;
           });
         this.innerVisiblePaperTopic = true;
+        this.statusHide = true;
       }
     },
     handleSizeChange(v) {
@@ -613,14 +628,17 @@ export default {
     changeAmdis() {
       var int = this.$refs.sujects.courType;
       var ao = [];
-      this.allOptions.map((item, index) => {
-        let acts = item.courseBusinessList.every((items) => {
+      for (let i = 0; i < this.allOptions.length; i++) {
+        let acts = this.allOptions[i].courseBusinessList.some((items) => {
           return items.businessId === int;
         });
         if (acts) {
-          ao.push(item);
+          ao.push(this.allOptions[i]);
         }
-      });
+      }
+      // this.allOptions.map((item, index) => {
+
+      // });
       this.options = ao;
     },
     clearBusName(index) {
@@ -647,14 +665,15 @@ export default {
     },
     closeBefore() {
       this.innerVisiblePaperTopic = false;
+      this.statusHide = false;
     },
     async submitForm(formName, int) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
           var self = this;
-          if(!this.$refs.sujects.newSujectApis.length){
-            this.$message.error("请选择科目")
-            return
+          if (!this.$refs.sujects.newSujectApis.length) {
+            this.$message.error("请选择科目");
+            return;
           }
           var data = this.$refs.child[0].getInfosPage();
           if (!data.content || data.content == "<p><br></p>") {
@@ -694,7 +713,8 @@ export default {
                 return;
               }
               if (
-                data.optionsList[i].type != 3 && data.optionsList[i].type != 5 &&
+                data.optionsList[i].type != 3 &&
+                data.optionsList[i].type != 5 &&
                 !data.optionsList[i].optionsList.length
               ) {
                 self.$message.error("请添加选项");
@@ -757,6 +777,8 @@ export default {
             this.$api.addbankquestion(data).then((res) => {
               self.$message.success("添加成功");
               self.innerVisiblePaperTopic = false;
+              self.statusHide = true;
+
               self.search();
               if (int === 1) {
                 self.addClick();
@@ -768,6 +790,7 @@ export default {
             this.$api.editbankquestion(data).then((res) => {
               self.$message.success("修改成功");
               self.innerVisiblePaperTopic = false;
+              self.statusHide = true;
               self.search();
             });
           }
@@ -783,9 +806,9 @@ export default {
       data.parentType = Number(this.queryData.typeId);
       data.examId = Number(this.queryData.examId) || 0;
       data.bankSectionId = Number(this.queryData.bankSectionId) || 0;
-      console.log(data);
       this.$message.success("添加成功");
       this.innerVisiblePaperTopic = false;
+      this.statusHide = true;
       // this.search();
       this.dingForm = {
         jsonStr: [],

+ 60 - 26
src/views/resource/bankManagement/volumeManagement/add/index.vue

@@ -8,7 +8,7 @@
         :rules="rules"
         ref="listData"
       >
-        <el-form-item label="适用业务层级">
+        <el-form-item label="适用业务层级" :required="true">
           <el-select
             v-model="eduType"
             placeholder="请选择教育类型"
@@ -198,6 +198,13 @@
           />
         </div>
       </div>
+      <search-box-new
+        ref="searchBox"
+        :formData="formData"
+        :formList="formList"
+        @search="getInfos(1)"
+        @init="init"
+      />
       <el-table
         ref="multipleTable"
         :data="boxtableData"
@@ -256,8 +263,8 @@
       </el-table>
       <pagination
         :total="total"
-        :pageSize="pageSize"
-        :currentPage="currentPage"
+        :pageSize="formData.pageSize"
+        :currentPage="formData.pageNum"
         @handleSizeChange="handleSizeChange"
         @handleCurrentChange="handleCurrentChange"
       />
@@ -275,10 +282,12 @@
 </template>
 
 <script>
+import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 import tableList from "@/components/tableList";
 export default {
-  components: { tableList, pagination },
+  components: {searchBoxNew,tableList, pagination },
+  name:"volumeManagementAdd",
   data() {
     return {
       listData: {
@@ -323,29 +332,42 @@ export default {
       dialogVisible: false,
       boxtableData: [],
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
+      formList: [
+        {
+          prop: "key",
+          placeholder: "请输入章卷标题/章卷编码/标题前缀",
+        },
+      ],
+      formData: {
+        publishStatus:1,
+        status: 1,
+        pageSize: 10,
+        pageNum: 1,
+      },
       disCheckList: [], //已选转禁用复选列表
       activeLists: [],
     };
   },
+  watch:{
+    "newSujectApis"(){
+      this.tableData = []
+    },
+  },
   mounted() {
     this.getDict();
   },
   methods: {
     openBoxs() {
-      if(!this.courType){
-        this.$message.warning("请先选择科目")
-        return
-      } 
+      if (!this.newSujectApis.subjectId) {
+        this.$message.warning("请先选择科目");
+        return;
+      }
       var self = this;
+      var data = JSON.parse(JSON.stringify(this.formData));
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
       this.$api
-        .inquirebankchapterList({
-          status: 1,
-          pageNum: this.currentPage,
-          pageSize: this.pageSize,
-          businessId:this.courType
-        })
+        .inquirebankchapterList(data)
         .then((res) => {
           var aList = [];
           this.tableData.map((item) => {
@@ -360,19 +382,31 @@ export default {
           });
         });
     },
-    getInfos() {
-      this.$api
-        .inquirebankchapterList({
+    getInfos(int) {
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
           status: 1,
-          pageNum: this.currentPage,
-          pageSize: this.pageSize,
-          businessId:this.courType
-        })
+          pageSize: 10,
+          pageNum: 1,
+          publishStatus:1,
+        };
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
+      this.$api
+        .inquirebankchapterList(data)
         .then((res) => {
           this.boxtableData = res.rows;
           this.total = res.total;
         });
     },
+    init() {
+      this.getInfos(2);
+    },
     changeTypes() {
       var self = this;
       if (!this.sujectApis) {
@@ -526,12 +560,12 @@ export default {
       this.changeTypes();
     },
     handleSizeChange(v) {
-      this.pageSize = v;
-      this.currentPage = 1;
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
       this.getInfos();
     },
     handleCurrentChange(v) {
-      this.currentPage = v;
+      this.formData.pageNum = v;
       this.getInfos();
     },
     selectAll(value) {

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

@@ -8,7 +8,7 @@
         :rules="rules"
         ref="listData"
       >
-        <el-form-item label="适用业务层级">
+        <el-form-item label="适用业务层级" :required="true">
           <el-select
             v-model="eduType"
             disabled
@@ -48,6 +48,7 @@
           >
             <el-radio-group v-model="sujectApis">
               <el-radio
+                disabled
                 v-for="(item, index) in newSujectOption"
                 :label="item.newId"
                 :key="index"
@@ -55,7 +56,11 @@
               >
             </el-radio-group>
             <div style="display: block; text-align: center; margin-top: 10px">
-              <el-button size="mini" type="primary" @click="submitSujectArray"
+              <el-button
+                size="mini"
+                type="primary"
+                @click="submitSujectArray"
+                v-if="false"
                 >确定</el-button
               >
             </div>
@@ -85,7 +90,11 @@
                 " - " +
                 newSujectApis.subjectName
               }}
-              <i class="el-icon-error closeIcons" @click="closeType"></i>
+              <i
+                class="el-icon-error closeIcons"
+                @click="closeType"
+                v-if="false"
+              ></i>
             </div>
           </div>
         </el-form-item>
@@ -206,6 +215,13 @@
           />
         </div>
       </div>
+      <search-box-new
+        ref="searchBox"
+        :formData="formData"
+        :formList="formList"
+        @search="getInfos(1)"
+        @init="init"
+      />
       <el-table
         ref="multipleTable"
         :data="boxtableData"
@@ -264,8 +280,8 @@
       </el-table>
       <pagination
         :total="total"
-        :pageSize="pageSize"
-        :currentPage="currentPage"
+        :pageSize="formData.pageSize"
+        :currentPage="formData.pageNum"
         @handleSizeChange="handleSizeChange"
         @handleCurrentChange="handleCurrentChange"
       />
@@ -283,10 +299,11 @@
 </template>
 
 <script>
+import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 import tableList from "@/components/tableList";
 export default {
-  components: { tableList, pagination },
+  components: { searchBoxNew, tableList, pagination },
   data() {
     return {
       listData: {
@@ -331,8 +348,18 @@ export default {
       dialogVisible: false,
       boxtableData: [],
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
+      formList: [
+        {
+          prop: "key",
+          placeholder: "请输入章卷标题/章卷编码/标题前缀",
+        },
+      ],
+      formData: {
+        publishStatus:1,
+        status: 1,
+        pageSize: 10,
+        pageNum: 1,
+      },
       disCheckList: [], //已选转禁用复选列表
       activeLists: [],
     };
@@ -342,18 +369,16 @@ export default {
   },
   methods: {
     openBoxs() {
-      if(!this.courType){
-        this.$message.warning("请先选择业务层级")
-        return
+      if (!this.newSujectApis.subjectId) {
+        this.$message.warning("请先选择科目");
+        return;
       }
       var self = this;
+      var data = JSON.parse(JSON.stringify(this.formData));
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
       this.$api
-        .inquirebankchapterList({
-          status: 1,
-          pageNum: this.currentPage,
-          pageSize: this.pageSize,
-          businessId:this.courType
-        })
+        .inquirebankchapterList(data)
         .then((res) => {
           var aList = [];
           this.tableData.map((item) => {
@@ -375,18 +400,25 @@ export default {
           this.tableData = result.data;
         });
     },
-    getInfos() {
-      this.$api
-        .inquirebankchapterList({
+    getInfos(int) {
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
           status: 1,
-          pageNum: this.currentPage,
-          pageSize: this.pageSize,
-          businessId:this.courType
-        })
-        .then((res) => {
-          this.boxtableData = res.rows;
-          this.total = res.total;
-        });
+          pageSize: 10,
+          pageNum: 1,
+          publishStatus:1,
+        };
+      }
+      var data = JSON.parse(JSON.stringify(this.formData));
+      data.businessId = this.newSujectApis.businessId
+      data.subjectId = this.newSujectApis.subjectId
+      this.$api.inquirebankchapterList(data).then((res) => {
+        this.boxtableData = res.rows;
+        this.total = res.total;
+      });
     },
 
     search() {
@@ -397,9 +429,9 @@ export default {
         .inquireBankModulebusiness({ type: 4, majorId: this.$route.query.id })
         .then((res) => {
           this.eduType = res.rows[0].educationTypeId;
-          this.changeEduType()
+          this.changeEduType();
           this.courType = res.rows[0].businessId;
-          this.changecourseType()
+          this.changecourseType();
           this.newSujectApis = res.rows[0];
           this.sujectApis =
             res.rows[0].businessId + "-" + res.rows[0].subjectId;
@@ -478,7 +510,7 @@ export default {
             item.courseArrays = array;
           });
           this.sujectOption = res.rows;
-          resolve()
+          resolve();
         });
       }).then((res) => {
         this.search();
@@ -562,13 +594,16 @@ export default {
       this.sujectApis = "";
       this.changeTypes();
     },
+    init() {
+      this.getInfos(2);
+    },
     handleSizeChange(v) {
-      this.pageSize = v;
-      this.currentPage = 1;
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
       this.getInfos();
     },
     handleCurrentChange(v) {
-      this.currentPage = v;
+      this.formData.pageNum = v;
       this.getInfos();
     },
     selectAll(value) {

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

@@ -1,5 +1,5 @@
 <template>
-  <div id="chapterVolumeManagement">
+  <div id="volumeManagement">
     <search-box-new
       ref="searchBox"
       :formData="formData"
@@ -38,6 +38,7 @@ import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
   components: { searchBoxNew, tableList, pagination },
+  name:"VolumeManagement",
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -168,6 +169,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

+ 2 - 4
src/views/resource/baseManageInfos/resource/colleges/index.vue

@@ -310,10 +310,10 @@ export default {
           { required: true, message: "请输入院校名称", trigger: "blur" },
         ],
         schoolProvinceId: [
-          { required: false, message: "请选择所在省份", trigger: ["blur","change"] },
+          { required: true, message: "请选择所在省份", trigger: ["blur","change"] },
         ],
         schoolCityId: [
-          { required: false, message: "请选择所在地市", trigger: ["blur","change"] },
+          { required: true, message: "请选择所在地市", trigger: ["blur","change"] },
         ],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
       },
@@ -343,13 +343,11 @@ export default {
       this.getXMType(this.listData.schoolProvinceId);
     },
     changeXMList(option) {
-      if (!option.schoolProvinceId) {
         this.optionsDS.map((item, index) => {
           if (item.value === option.schoolCityId) {
             this.listData.schoolProvinceId = item.pid;
           }
         });
-      }
     },
     getEduType() {
       this.$api.inquireapplyAreas({ status: 1, areaType: 1 }).then((res) => {

+ 4 - 0
src/views/resource/handoutManagement/handoutList/index.vue

@@ -37,6 +37,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"HandoutList",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -137,6 +138,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search()
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

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

@@ -421,8 +421,8 @@ export default {
           ],
         },
         {
-          prop: "prefixName",
-          placeholder: "请输入标题前缀",
+          prop: "key",
+          placeholder: "请输入节标题/节编码/标题前缀",
         },
       ],
       total: 0, //一共多少条

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

@@ -419,8 +419,8 @@ export default {
           ],
         },
         {
-          prop: "prefixName",
-          placeholder: "请输入标题前缀",
+          prop: "key",
+          placeholder: "请输入节标题/节编码/标题前缀",
         },
       ],
       total: 0, //一共多少条

+ 4 - 0
src/views/resource/videoManagement/chapter/index.vue

@@ -37,6 +37,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"Festival",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -172,6 +173,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

+ 191 - 92
src/views/resource/videoManagement/courseManagement/chapterContent/index.vue

@@ -102,6 +102,13 @@
           />
         </div>
       </div>
+      <search-box-new
+        ref="searchBox"
+        :formData="formData5"
+        :formList="formList5"
+        @search="getInfos"
+        @init="init5"
+      />
       <el-table
         ref="multipleTable"
         :data="boxtableData"
@@ -152,9 +159,9 @@
         >
       </el-table>
       <pagination
-        :total="total"
-        :pageSize="pageSize"
-        :currentPage="currentPage"
+        :total="total5"
+        :pageSize="formData5.pageSize"
+        :currentPage="formData5.pageNum"
         @handleSizeChange="handleSizeChange"
         @handleCurrentChange="handleCurrentChange"
       />
@@ -213,27 +220,26 @@
         <el-row>
           <el-col :span="22">
             <ul>
-          <li
-            v-for="(item, index) in sortList"
-            :key="index"
-            style="margin-bottom: 6px"
-          >
-            <el-input-number
-              :controls="false"
-              size="mini"
-              v-model="sortList[index].sort"
-              :min="0"
-              style="width: 50px"
-            ></el-input-number>
-            <span style="margin-left: 10px">{{ item.name }}</span>
-          </li>
-        </ul>
+              <li
+                v-for="(item, index) in sortList"
+                :key="index"
+                style="margin-bottom: 6px"
+              >
+                <el-input-number
+                  :controls="false"
+                  size="mini"
+                  v-model="sortList[index].sort"
+                  :min="0"
+                  style="width: 50px"
+                ></el-input-number>
+                <span style="margin-left: 10px">{{ item.name }}</span>
+              </li>
+            </ul>
           </el-col>
           <el-col :span="2">
             <button @click="initSort">重置</button>
           </el-col>
         </el-row>
-        
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="sortTablesBoxs = false">取 消</el-button>
@@ -253,6 +259,13 @@
         </div>
       </div>
       <div>
+        <search-box-new
+          ref="searchBox"
+          :formData="formData6"
+          :formList="formList6"
+          @search="getSJ(1)"
+          @init="init6"
+        />
         <el-table
           ref="multipleTable"
           :data="tableDataExam"
@@ -306,6 +319,13 @@
             </el-table-column></template
           >
         </el-table>
+        <pagination
+          :total="total6"
+          :pageSize="formData6.pageSize"
+          :currentPage="formData6.pageNum"
+          @handleSizeChange="handleSizeChange6"
+          @handleCurrentChange="handleCurrentChange6"
+        />
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="closePZ">取 消</el-button>
@@ -316,9 +336,10 @@
 </template>
 
 <script>
+import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 export default {
-  components: { pagination },
+  components: { searchBoxNew, pagination },
   data() {
     return {
       sortTablesBoxs: false,
@@ -404,9 +425,29 @@ export default {
       dialogVisible: false,
       boxtableData: [],
       activeLists: [],
-      total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
+      total5: 0, //一共多少条
+      formData5: {
+        pageSize: 10,
+        pageNum: 1,
+        status: 1,
+        publishStatus: 1,
+        name: "",
+      },
+      formList5: [],
+      total6:0,
+      formData6: {
+        pageSize: 10,
+        pageNum: 1,
+        status: 1,
+        publishStatus: 1,
+        name: "",
+      },
+      formList6: [
+        {
+          placeholder: "试卷标题/试卷编码/标题前缀",
+          prop: "key",
+        },
+      ],
       theModuleList: [],
       theChapterList: [],
       theSectionList: [],
@@ -424,21 +465,21 @@ export default {
   mounted() {
     this.getDs();
     this.search();
-    this.getSJ();
   },
   methods: {
-    initSort(){
+    initSort() {
       this.sortList = JSON.parse(JSON.stringify(this.tableDataInfos));
     },
-    submitTableBoxs(){
-      this.tableDataInfos = this.sortList.sort((a, b) => a.sort - b.sort)
-      this.sortTablesBoxs = false
+    submitTableBoxs() {
+      this.tableDataInfos = this.sortList.sort((a, b) => a.sort - b.sort);
+      this.sortTablesBoxs = false;
     },
     openSortBoxs() {
       this.sortList = JSON.parse(JSON.stringify(this.tableDataInfos));
       this.sortTablesBoxs = true;
     },
     openExamBoxs() {
+      this.getSJ(2);
       this.templateRadioLS = this.templateRadio;
       this.dialogVisiblePZDown = true;
     },
@@ -597,9 +638,22 @@ export default {
         this.theSectionList = res.rows;
       });
     },
-    getSJ() {
-      this.$api.inquirebankexamList({ status: 1 }).then((res) => {
+    getSJ(int) {
+      if (int === 1) {
+        this.formData6.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData6.name = "";
+        this.formData6.pageNum = 1;
+        this.formData6.pageSize = 10;
+      }
+      var data = JSON.parse(JSON.stringify(this.formData6));
+      data.businessId = this.pageInfo.businessId;
+      data.subjectId = this.pageInfo.subjectId;
+      data.name = this.formData6.name;
+      this.$api.inquirebankexamList(data).then((res) => {
         this.tableDataExam = res.rows;
+        this.total6 = res.total
       });
     },
     openBoxs() {
@@ -608,18 +662,36 @@ export default {
     },
     activeCheckBoxs() {
       var self = this;
+      if (!this.radio) {
+        this.$message.error("请选择添加类型");
+        return;
+      }
       if (this.radio === 1) {
-        this.moduleApi();
+        this.formList5 = [
+          {
+            placeholder: "模块标题/模块编码/标题前缀",
+            prop: "key",
+          },
+        ];
+        this.moduleApi(2);
       }
       if (this.radio === 2) {
-        this.chapterApi();
+        this.formList5 = [
+          {
+            placeholder: "章标题/章编码/标题前缀",
+            prop: "key",
+          },
+        ];
+        this.chapterApi(2);
       }
       if (this.radio === 3) {
-        this.sectionApi();
-      }
-      if (this.radio === "") {
-        this.$message.error("请选择添加类型");
-        return;
+        this.formList5 = [
+          {
+            placeholder: "节标题/节编码/标题前缀",
+            prop: "key",
+          },
+        ];
+        this.sectionApi(2);
       }
       this.centerDialogVisible = false;
       this.dialogVisible = true;
@@ -627,58 +699,73 @@ export default {
         self.$refs.multipleTable.clearSelection();
       });
     },
-    getInfos() {
+    init5() {
+      this.getInfos(2);
+    },
+    getInfos(int) {
       if (this.radio === 1) {
-        this.moduleApi();
+        this.moduleApi(int);
       }
       if (this.radio === 2) {
-        this.chapterApi();
+        this.chapterApi(int);
       }
       if (this.radio === 3) {
-        this.sectionApi();
+        this.sectionApi(int);
       }
     },
-    moduleApi() {
-      this.$api
-        .inquireCourseListmodule({
-          subjectId:this.pageInfo.subjectId,
-          businessId:this.pageInfo.businessId,
-          status: 1,
-          pageNum: this.currentPage,
-          pageSize: this.pageSize,
-        })
-        .then((res) => {
-          this.boxtableData = res.rows;
-          this.total = res.total;
-        });
+    moduleApi(int) {
+      if (int === 1) {
+        this.formData5.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData5.name = "";
+        this.formData5.pageNum = 1;
+        this.formData5.pageSize = 10;
+      }
+      var data = JSON.parse(JSON.stringify(this.formData5));
+      data.businessId = this.pageInfo.businessId;
+      data.subjectId = this.pageInfo.subjectId;
+      data.name = this.formData5.name;
+      this.$api.inquireCourseListmodule(data).then((res) => {
+        this.boxtableData = res.rows;
+        this.total5 = res.total;
+      });
     },
-    chapterApi() {
-      this.$api
-        .inquireCourseListchapter({
-          businessId:this.pageInfo.businessId,
-          subjectId:this.pageInfo.subjectId,
-          status: 1,
-          pageNum: this.currentPage,
-          pageSize: this.pageSize,
-        })
-        .then((res) => {
-          this.boxtableData = res.rows;
-          this.total = res.total;
-        });
+    chapterApi(int) {
+      if (int === 1) {
+        this.formData5.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData5.name = "";
+        this.formData5.pageNum = 1;
+        this.formData5.pageSize = 10;
+      }
+      var data = JSON.parse(JSON.stringify(this.formData5));
+      data.businessId = this.pageInfo.businessId;
+      data.subjectId = this.pageInfo.subjectId;
+      data.name = this.formData5.name;
+      this.$api.inquireCourseListchapter(data).then((res) => {
+        this.boxtableData = res.rows;
+        this.total5 = res.total;
+      });
     },
-    sectionApi() {
-      this.$api
-        .inquireCourseSection({
-          businessId:this.pageInfo.businessId,
-          subjectId:this.pageInfo.subjectId,
-          status: 1,
-          pageNum: this.currentPage,
-          pageSize: this.pageSize,
-        })
-        .then((res) => {
-          this.boxtableData = res.rows;
-          this.total = res.total;
-        });
+    sectionApi(int) {
+      if (int === 1) {
+        this.formData5.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData5.name = "";
+        this.formData5.pageNum = 1;
+        this.formData5.pageSize = 10;
+      }
+      var data = JSON.parse(JSON.stringify(this.formData5));
+      data.businessId = this.pageInfo.businessId;
+      data.subjectId = this.pageInfo.subjectId;
+      data.name = this.formData5.name;
+      this.$api.inquireCourseSection(data).then((res) => {
+        this.boxtableData = res.rows;
+        this.total5 = res.total;
+      });
     },
     // 查询是否存在下级 模块
     quireModule(id) {
@@ -718,7 +805,7 @@ export default {
             hasChildren: true,
             type: 1,
             isDels: true,
-            sort:item.sort
+            sort: item.sort,
           };
           //查询是否存在下级
           arrays.push(arr);
@@ -733,7 +820,7 @@ export default {
             hasChildren: true,
             type: 2,
             isDels: true,
-            sort:item.sort
+            sort: item.sort,
           };
           arrays.push(arr);
           // });
@@ -747,7 +834,7 @@ export default {
             hasChildren: false,
             type: 3,
             isDels: true,
-            sort:item.sort
+            sort: item.sort,
           };
           arrays.push(arr);
           // });
@@ -812,7 +899,7 @@ export default {
             isDels: true,
             hasChildren: true,
             type: 1,
-            sort:0
+            sort: 0,
           });
         });
       } else if (this.radio === 2) {
@@ -824,7 +911,7 @@ export default {
             isDels: true,
             hasChildren: true,
             type: 2,
-            sort:0,
+            sort: 0,
           });
         });
       } else if (this.radio === 3) {
@@ -834,13 +921,13 @@ export default {
             CodeId: item.sectionId,
             name: item.name,
             type: 3,
-            sort:0,
+            sort: 0,
             isDels: true,
           });
         });
       }
-      for(let i = 0; i < array.length;i++){
-        this.tableDataInfos.unshift(array[i])
+      for (let i = 0; i < array.length; i++) {
+        this.tableDataInfos.unshift(array[i]);
       }
       // this.tableDataInfos = this.tableDataInfos.concat(array);
       this.activeLists = [];
@@ -919,14 +1006,26 @@ export default {
       }
     },
     handleSizeChange(v) {
-      this.pageSize = v;
-      this.currentPage = 1;
+      this.formData5.pageSize = v;
+      this.formData5.pageNum = 1;
       this.getInfos();
     },
     handleCurrentChange(v) {
-      this.currentPage = v;
+      this.formData5.pageNum = v;
       this.getInfos();
     },
+    handleSizeChange6(v) {
+      this.formData6.pageSize = v;
+      this.formData6.pageNum = 1;
+      this.getSJ();
+    },
+    handleCurrentChange6(v) {
+      this.formData6.pageNum = v;
+      this.getSJ();
+    },
+    init6(){
+      this.getSJ(2)
+    },
     selectAll(value) {
       this.activeLists = value;
     },
@@ -947,7 +1046,7 @@ export default {
           parentId: 0,
           status: 1,
           type: item.type,
-          sort:item.sort
+          sort: item.sort,
         });
       });
       var data = {

+ 4 - 0
src/views/resource/videoManagement/courseManagement/index.vue

@@ -41,6 +41,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"ModuleManagement",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -209,6 +210,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     edit(v) {
       this.$router.push({

+ 4 - 0
src/views/resource/videoManagement/festival/index.vue

@@ -37,6 +37,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"Festival",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -211,6 +212,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search()
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

+ 5 - 0
src/views/resource/videoManagement/flow/index.vue

@@ -202,6 +202,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"Flow",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -473,6 +474,10 @@ export default {
     this.search();
     this.initOptions();
   },
+  activated(){
+    this.search()
+    this.initOptions();
+  },
   methods: {
     getMessage() {
       if (!this.eduType) {

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

@@ -401,24 +401,24 @@ export default {
           scope: "businessLevel",
           edu: "educationTypeId",
         },
+        // {
+        //   prop: "publishStatus",
+        //   placeholder: "发布状态",
+        //   scope: "select",
+        //   options: [
+        //     {
+        //       label: "已发布",
+        //       value: 1,
+        //     },
+        //     {
+        //       label: "未发布",
+        //       value: 0,
+        //     },
+        //   ],
+        // },
         {
-          prop: "publishStatus",
-          placeholder: "发布状态",
-          scope: "select",
-          options: [
-            {
-              label: "已发布",
-              value: 1,
-            },
-            {
-              label: "未发布",
-              value: 0,
-            },
-          ],
-        },
-        {
-          prop: "prefixName",
-          placeholder: "请输入标题前缀",
+          prop: "key",
+          placeholder: "请输入章标题/章编码/标题前缀",
         },
       ],
       total: 0, //一共多少条
@@ -456,6 +456,7 @@ export default {
           status: 1,
           pageNum: 1,
           pageSize: 10,
+          publishStatus:1,
         })
         .then((res) => {
           var aList = [];
@@ -492,6 +493,7 @@ export default {
           status: 1,
           pageSize: 10,
           pageNum: 1,
+          publishStatus:1
         };
       }
       this.$api

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

@@ -401,24 +401,24 @@ export default {
           scope: "businessLevel",
           edu: "educationTypeId",
         },
+        // {
+        //   prop: "publishStatus",
+        //   placeholder: "发布状态",
+        //   scope: "select",
+        //   options: [
+        //     {
+        //       label: "已发布",
+        //       value: 1,
+        //     },
+        //     {
+        //       label: "未发布",
+        //       value: 0,
+        //     },
+        //   ],
+        // },
         {
-          prop: "publishStatus",
-          placeholder: "发布状态",
-          scope: "select",
-          options: [
-            {
-              label: "已发布",
-              value: 1,
-            },
-            {
-              label: "未发布",
-              value: 0,
-            },
-          ],
-        },
-        {
-          prop: "prefixName",
-          placeholder: "请输入标题前缀",
+          prop: "key",
+          placeholder: "请输入章标题/章编码/标题前缀",
         },
       ],
       total: 0, //一共多少条
@@ -426,6 +426,7 @@ export default {
         status: 1,
         pageSize: 10,
         pageNum: 1,
+        publishStatus:1
       },
       disCheckList: [], //已选转禁用复选列表
       activeLists: [],
@@ -456,6 +457,7 @@ export default {
           status: 1,
           pageNum: 1,
           pageSize: 10,
+          publishStatus:1,
         })
         .then((res) => {
           var aList = [];
@@ -492,6 +494,7 @@ export default {
           status: 1,
           pageSize: 10,
           pageNum: 1,
+          publishStatus:1
         };
       }
       this.$api

+ 4 - 0
src/views/resource/videoManagement/moduleManagement/index.vue

@@ -37,6 +37,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"ModuleManagement",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -169,6 +170,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search()
+  },
   methods: {
     editInfo(v) {
       this.addClick(v, 0);

+ 13 - 7
src/views/systemManagement/accountManagement/index.vue

@@ -223,7 +223,7 @@ export default {
         ],
         phonenumber: [
           {
-            required: true,
+            required: false,
             message: "请输入手机号码",
             trigger: "blur",
           },
@@ -235,7 +235,7 @@ export default {
         ],
         email: [
           {
-            required: true,
+            required: false,
             message: "请输入邮箱",
             trigger: "blur",
           },
@@ -257,11 +257,11 @@ export default {
       },
       statusOptions: [
         {
-          label: "有效",
+          label: "启用",
           value: 1,
         },
         {
-          label: "无效",
+          label: "关闭",
           value: 0,
         },
       ],
@@ -322,9 +322,15 @@ export default {
         type: "warning",
       })
         .then(() => {
-          var data = JSON.parse(JSON.stringify(v));
-          data.menuIds = [];
-          data.status = "-1";
+          // var data = JSON.parse(JSON.stringify(v));
+          // data.menuIds = [];
+          // data.status = "-1";
+          var data = {
+            userId: v.userId,
+            status: -1,
+            userName: v.userName,
+            roleIds: [],
+          };
           this.$api.editRole(data).then((res) => {
             if (res.code === 200) {
               this.$message.success("删除成功");

+ 15 - 12
src/views/systemManagement/registeredUser/index.vue

@@ -122,11 +122,11 @@ export default {
           hidden: true,
           scope: "ptai",
         },
-        // {
-        //   label: "微信绑定",
-        //   prop: "payWay",
-        //   hidden: true,
-        // },
+        {
+          label: "历史购课数量",
+          prop: "orderNum",
+          hidden: true,
+        },
         {
           label: "最后一次登录时间",
           prop: "lastLoginTime",
@@ -156,13 +156,16 @@ export default {
           pageNum: 1,
         };
       }
-      this.$api.inquireappuserlists(this.formData).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquireappuserlists(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search(2);

+ 2 - 2
src/views/systemManagement/roleManagement/index.vue

@@ -76,11 +76,11 @@
                 @change="handleCheckedTreeNodeAll($event, 'menu')"
                 >全选/全不选</el-checkbox
               >
-              <el-checkbox
+              <!-- <el-checkbox
                 v-model="listData.menuCheckStrictly"
                 @change="handleCheckedTreeConnect($event, 'menu')"
                 >父子联动</el-checkbox
-              >
+              > -->
               <el-tree
                 class="tree-border"
                 :data="menuOptions"

+ 48 - 30
src/views/systemManagement/systemConfig/videoConfig/index.vue

@@ -24,11 +24,13 @@
         <el-form label-width="100px" class="demo-ruleForm">
           <el-form-item :label="videoActive.configName">
             <el-radio-group v-model="videoActive.configValue">
-              <el-radio label="1">是</el-radio>
-              <el-radio label="0">否</el-radio>
+              <el-radio label="1" @change="videoPhotoJG.configValue.push(0)">是</el-radio>
+              <el-radio label="0" @change="videoPhotoJG.configValue = []"
+                >否</el-radio
+              >
             </el-radio-group>
             <el-button
-            style="margin-left:12px;"
+              style="margin-left: 12px"
               size="mini"
               v-if="videoActive.configValue === '1'"
               @click="videoPhotoJG.configValue.push(0)"
@@ -39,7 +41,7 @@
             <el-form-item
               v-for="(item, index) in videoPhotoJG.configValue"
               :key="index"
-              label="拍照时段"
+              label="播放至"
             >
               <el-input-number
                 :controls="false"
@@ -63,11 +65,13 @@
         <el-form label-width="100px" class="demo-ruleForm">
           <el-form-item :label="bankActive.configName">
             <el-radio-group v-model="bankActive.configValue">
-              <el-radio label="1">是</el-radio>
-              <el-radio label="0">否</el-radio>
+              <el-radio label="1" @change="bankPhotoJG.configValue.push(0)">是</el-radio>
+              <el-radio label="0" @change="bankPhotoJG.configValue = []"
+                >否</el-radio
+              >
             </el-radio-group>
             <el-button
-            style="margin-left:12px;"
+              style="margin-left: 12px"
               size="mini"
               v-if="bankActive.configValue === '1'"
               @click="bankPhotoJG.configValue.push(0)"
@@ -85,6 +89,7 @@
                 v-model="bankPhotoJG.configValue[index]"
                 controls-position="right"
                 :min="0"
+                :precision="0"
               ></el-input-number
               >题
               <el-button type="warning" size="mini" @click="delbank(index)"
@@ -96,7 +101,7 @@
         <el-button @click="submitBank">保存</el-button>
       </div>
     </div>
-    <div style="clear:both;"></div>
+    <div style="clear: both"></div>
   </div>
 </template>
 
@@ -174,32 +179,40 @@ export default {
       this.$modal.msgSuccess("修改成功");
     },
     async submitVideo() {
-      if (this.videoActive.configValue == 1) {
-        if (!this.videoPhotoJG.configValue.length) {
-          this.$modal.msgError("参数键值不能为空");
-          return;
-        } else {
-          var arr = {};
-          for (let k in this.videoPhotoJG) {
-            if (k == "configValue") {
-              arr[k] = this.videoPhotoJG[k].toString();
-            } else {
-              arr[k] = this.videoPhotoJG[k];
+      // if (this.videoActive.configValue == 1) {
+      if (
+        this.videoActive.configValue == 1 &&
+        !this.videoPhotoJG.configValue.length
+      ) {
+        this.$modal.msgError("参数键值不能为空");
+        return;
+      } else {
+        var arr = {};
+        for (let k in this.videoPhotoJG) {
+          if (k == "configValue") {
+            var arrs = this.videoPhotoJG[k]
+            if (new Set(arrs).size != arrs.length) {
+              this.$message.warning("不允许存在重复值")
+              return
             }
+            arr[k] = this.videoPhotoJG[k].toString();
+          } else {
+            arr[k] = this.videoPhotoJG[k];
           }
-          await updateConfig(this.videoActive);
-          await updateConfig(arr);
-          this.$modal.msgSuccess("修改成功");
-          this.getConfig();
         }
-      } else {
         await updateConfig(this.videoActive);
+        await updateConfig(arr);
         this.$modal.msgSuccess("修改成功");
         this.getConfig();
       }
+      // } else {
+      //   await updateConfig(this.videoActive);
+      //   this.$modal.msgSuccess("修改成功");
+      //   this.getConfig();
+      // }
     },
     async submitBank() {
-      if (this.bankActive.configValue == 1) {
+      // if (this.bankActive.configValue == 1) {
         if (!this.bankPhotoJG.configValue.length) {
           this.$modal.msgError("参数键值不能为空");
           return;
@@ -207,6 +220,11 @@ export default {
           var arr = {};
           for (let k in this.bankPhotoJG) {
             if (k == "configValue") {
+              var arrs = this.videoPhotoJG[k]
+            if (new Set(arrs).size != arrs.length) {
+              this.$message.warning("不允许存在重复值")
+              return
+            }
               arr[k] = this.bankPhotoJG[k].toString();
             } else {
               arr[k] = this.bankPhotoJG[k];
@@ -217,11 +235,11 @@ export default {
           this.$modal.msgSuccess("修改成功");
           this.getConfig();
         }
-      } else {
-        await updateConfig(this.bankActive);
-        this.$modal.msgSuccess("修改成功");
-        this.getConfig();
-      }
+      // } else {
+      //   await updateConfig(this.bankActive);
+      //   this.$modal.msgSuccess("修改成功");
+      //   this.getConfig();
+      // }
     },
   },
 };