Tang пре 4 година
родитељ
комит
a8573f763d
99 измењених фајлова са 3250 додато и 1446 уклоњено
  1. 7 1
      src/components/searchBoxNew.vue
  2. 371 97
      src/components/tableList.vue
  3. 1 0
      src/main.js
  4. 3 0
      src/plugins/index.js
  5. 67 0
      src/plugins/tab.js
  6. 1 1
      src/store/getters.js
  7. 59 35
      src/store/modules/tagsView.js
  8. 19 2
      src/utils/methodsTool.js
  9. 1 0
      src/views/2Cport/adSlotManagement/index.vue
  10. 4 0
      src/views/2Cport/adv/index.vue
  11. 48 35
      src/views/Marketing/basicParameters/marketings/beneficiary/index.vue
  12. 53 32
      src/views/Marketing/basicParameters/marketings/beneficiaryInfos/index.vue
  13. 4 0
      src/views/Marketing/basicParameters/marketings/channelSource/index.vue
  14. 47 34
      src/views/Marketing/basicParameters/marketings/natureCharge/index.vue
  15. 47 34
      src/views/Marketing/basicParameters/marketings/paymentChannel/index.vue
  16. 47 34
      src/views/Marketing/basicParameters/marketings/serviceModel/index.vue
  17. 7 3
      src/views/Marketing/basicParameters/marketings/supplier/index.vue
  18. 4 0
      src/views/Marketing/basicParameters/marketings/typesFee/index.vue
  19. 46 33
      src/views/Marketing/basicParameters/marketings/visitCampus/index.vue
  20. 111 16
      src/views/Marketing/goods/commodityManageMent/add/index.vue
  21. 114 18
      src/views/Marketing/goods/commodityManageMent/edit/index.vue
  22. 19 1
      src/views/Marketing/goods/commodityManageMent/index.vue
  23. 63 16
      src/views/Marketing/goods/commodityManageMent/poppleSet.vue
  24. 1 1
      src/views/Marketing/goods/courseInquiryList/index.vue
  25. 23 15
      src/views/Marketing/order/orderList/add/order/index.vue
  26. 38 24
      src/views/Marketing/order/orderList/add/orderPrice/index.vue
  27. 5 1
      src/views/Marketing/order/orderList/details/costPriceManages.vue
  28. 5 1
      src/views/Marketing/order/orderList/details/goodsManage.vue
  29. 1 0
      src/views/Marketing/order/orderList/details/index.vue
  30. 5 1
      src/views/Marketing/order/orderList/details/studentManageOrder.vue
  31. 55 18
      src/views/Marketing/order/orderList/index.vue
  32. 32 10
      src/views/education/classManageMent/classHours/index.vue
  33. 2 2
      src/views/education/classManageMent/classHoursReview/index.vue
  34. 11 2
      src/views/education/classManageMent/classList/addClass/index.vue
  35. 18 0
      src/views/education/classManageMent/classList/index.vue
  36. 8 3
      src/views/education/classManageMent/classList/manageClass/baseInfo.vue
  37. 1 0
      src/views/education/classManageMent/classList/manageClass/index.vue
  38. 4 2
      src/views/education/classManageMent/classList/manageClass/studentRecords.vue
  39. 4 2
      src/views/education/classManageMent/classList/manageClass/teacherRecords.vue
  40. 53 100
      src/views/education/classManageMent/learningHoursRecordList/index.vue
  41. 84 66
      src/views/education/classManageMent/listOfhoursToBeReviewed/index.vue
  42. 30 7
      src/views/education/classManageMent/studentMenu/index.vue
  43. 1 1
      src/views/education/examManagement/examArrangement/index.vue
  44. 1 1
      src/views/education/examManagement/qianpeiArrange/index.vue
  45. 16 7
      src/views/education/notificationManageMent/notificationList/add/index.vue
  46. 41 27
      src/views/education/notificationManageMent/notificationList/edit/index.vue
  47. 83 29
      src/views/education/notificationManageMent/notificationList/index.vue
  48. 1 0
      src/views/education/notificationManageMent/notificationList/info/index.vue
  49. 5 1
      src/views/education/notificationManageMent/notificationList/info/notificationDetailsList.vue
  50. 5 1
      src/views/education/notificationManageMent/notificationList/info/recipientList.vue
  51. 1 0
      src/views/education/notificationManageMent/notificationModel/index.vue
  52. 18 0
      src/views/education/studentManageMent/studentList/index.vue
  53. 5 1
      src/views/education/studentManageMent/studentXQ/classRecord.vue
  54. 1 0
      src/views/education/studentManageMent/studentXQ/index.vue
  55. 5 1
      src/views/education/studentManageMent/studentXQ/studentBaseManage.vue
  56. 39 18
      src/views/resource/bankManagement/chapterVolumeManagement/add/index.vue
  57. 55 23
      src/views/resource/bankManagement/chapterVolumeManagement/edit/index.vue
  58. 45 24
      src/views/resource/bankManagement/chapterVolumeManagement/index.vue
  59. 28 19
      src/views/resource/bankManagement/testPaperManagement/addPaper/baseAddPaper/index.vue
  60. 138 105
      src/views/resource/bankManagement/testPaperManagement/addPaper/topicAddPaper/index.vue
  61. 37 13
      src/views/resource/bankManagement/testPaperManagement/editPaper/baseEditPaper/index.vue
  62. 1 0
      src/views/resource/bankManagement/testPaperManagement/editPaper/index.vue
  63. 52 12
      src/views/resource/bankManagement/testPaperManagement/editPaper/topicEditPaper/index.vue
  64. 25 7
      src/views/resource/bankManagement/testPaperManagement/index.vue
  65. 26 6
      src/views/resource/bankManagement/volumeManagement/add/index.vue
  66. 50 28
      src/views/resource/bankManagement/volumeManagement/edit/index.vue
  67. 19 1
      src/views/resource/bankManagement/volumeManagement/index.vue
  68. 5 0
      src/views/resource/baseManageInfos/resource/businessLevel/index.vue
  69. 46 33
      src/views/resource/baseManageInfos/resource/certificate/index.vue
  70. 5 0
      src/views/resource/baseManageInfos/resource/colleges/index.vue
  71. 31 21
      src/views/resource/baseManageInfos/resource/educationTypes/index.vue
  72. 7 6
      src/views/resource/baseManageInfos/resource/enrollmentArea/index.vue
  73. 7 3
      src/views/resource/baseManageInfos/resource/label/index.vue
  74. 21 10
      src/views/resource/baseManageInfos/resource/labelInfos/index.vue
  75. 32 22
      src/views/resource/baseManageInfos/resource/papers/index.vue
  76. 71 53
      src/views/resource/baseManageInfos/resource/professional/index.vue
  77. 61 43
      src/views/resource/baseManageInfos/resource/projectType/index.vue
  78. 46 32
      src/views/resource/baseManageInfos/resource/suject/index.vue
  79. 7 3
      src/views/resource/baseManageInfos/resource/testPeriod/index.vue
  80. 11 2
      src/views/resource/handoutManagement/handoutList/add/index.vue
  81. 18 6
      src/views/resource/handoutManagement/handoutList/edit/index.vue
  82. 24 6
      src/views/resource/handoutManagement/handoutList/index.vue
  83. 25 5
      src/views/resource/videoManagement/chapter/add/index.vue
  84. 54 23
      src/views/resource/videoManagement/chapter/edit/index.vue
  85. 24 6
      src/views/resource/videoManagement/chapter/index.vue
  86. 56 41
      src/views/resource/videoManagement/courseManagement/basicInfoAdd/index.vue
  87. 25 10
      src/views/resource/videoManagement/courseManagement/basicInfoEdit/index.vue
  88. 92 34
      src/views/resource/videoManagement/courseManagement/chapterContent/index.vue
  89. 1 0
      src/views/resource/videoManagement/courseManagement/editCourse/index.vue
  90. 25 6
      src/views/resource/videoManagement/courseManagement/index.vue
  91. 87 19
      src/views/resource/videoManagement/festival/add/index.vue
  92. 111 41
      src/views/resource/videoManagement/festival/edit/index.vue
  93. 24 6
      src/views/resource/videoManagement/festival/index.vue
  94. 25 5
      src/views/resource/videoManagement/moduleManagement/add/index.vue
  95. 61 32
      src/views/resource/videoManagement/moduleManagement/edit/index.vue
  96. 24 6
      src/views/resource/videoManagement/moduleManagement/index.vue
  97. 1 0
      src/views/systemManagement/accountManagement/index.vue
  98. 1 0
      src/views/systemManagement/registeredUser/index.vue
  99. 1 0
      src/views/systemManagement/roleManagement/index.vue

+ 7 - 1
src/components/searchBoxNew.vue

@@ -520,7 +520,13 @@ export default {
               }
             }
           } else {
-            return items;
+            if(items.diff === 'gfxs'){
+              if(this.formData['studyStatus'] == 2){
+                return items
+              }
+            }else{
+              return items;
+            }
           }
         });
         return arrsy;

+ 371 - 97
src/components/tableList.vue

@@ -546,7 +546,7 @@
                 placement="right"
                 trigger="click"
               >
-                <ul>
+                <ul style="overflow: auto; max-height: 500px">
                   <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
                     {{ inds + 1 }}、
                     {{
@@ -1679,89 +1679,255 @@ export default {
         });
     },
     sortMethods(a, b) {
-      return a.classGradeUserGoodsVoList.length >
-        b.classGradeUserGoodsVoList.length
-        ? -1
-        : 1;
+      if (a.classGradeUserGoodsVoList && b.classGradeUserGoodsVoList) {
+        return a.classGradeUserGoodsVoList.length >
+          b.classGradeUserGoodsVoList.length
+          ? -1
+          : 1;
+      } else {
+        return a.sort > b.sort ? -1 : 1;
+      }
     },
     /**
      * int: 1 节列表-关联章 2 章列表-关联模块 3 模块列表-关联课程 4 课程列表-关联商品 5 题目列表-关联试卷 6 试卷列表-关联商品 7 章卷列表-关联商品 8 模块列表-关联商品
      */
     jumpPages(v, int) {
       if (int === 1) {
-        this.$router.push({
-          path: "/resource/videoManagement/chapterEdit",
-          query: {
-            id: v.chapterId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "/resource/videoManagement/chapterEdit",
+            query: {
+              id: v.chapterId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ChapterEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ChapterEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (int === 2) {
-        this.$router.push({
-          path: "/resource/videoManagement/moduleManagementEdit",
-          query: {
-            id: v.moduleId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "/resource/videoManagement/moduleManagementEdit",
+            query: {
+              id: v.moduleId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ModuleManagementEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ModuleManagementEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (int === 3) {
-        this.$router.push({
-          path: "/resource/videoManagement/editCourse",
-          query: {
-            id: v.courseId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "/resource/videoManagement/editCourse",
+            query: {
+              id: v.courseId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "EditCourse";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "EditCourse",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (int === 4) {
-        this.$router.push({
-          path: "/Marketing/commodityManageMentEdit",
-          query: {
-            id: v.goodsId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "/Marketing/goods/commodityManageMentEdit",
+            query: {
+              id: v.goodsId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "CommodityManageMentEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "CommodityManageMentEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (int === 5) {
-        this.$router.push({
-          path: "/resource/bankManagement/editPaper",
-          query: {
-            id: v.examId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "/resource/bankManagement/editPaper",
+            query: {
+              id: v.examId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "EditPaper";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "EditPaper",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (int === 6) {
-        this.$router.push({
-          path: "/Marketing/commodityManageMentEdit",
-          query: {
-            id: v.goodsId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "/Marketing/goods/commodityManageMentEdit",
+            query: {
+              id: v.goodsId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "CommodityManageMentEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "CommodityManageMentEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (int === 7) {
-        this.$router.push({
-          path: "/Marketing/commodityManageMentEdit",
-          query: {
-            id: v.goodsId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "/Marketing/goods/commodityManageMentEdit",
+            query: {
+              id: v.goodsId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "CommodityManageMentEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "CommodityManageMentEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (int === 8) {
+        const jump = () => {
+          this.$router.push({
+            path: "/Marketing/goods/commodityManageMentEdit",
+            query: {
+              id: v.goodsId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "CommodityManageMentEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "CommodityManageMentEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
+      }
+    },
+    jumpClass(v) {
+      const jump = () => {
         this.$router.push({
-          path: "/Marketing/commodityManageMentEdit",
+          path: "/education/classManageMent/studentMenu",
           query: {
-            id: v.goodsId,
+            id: v.gradeId,
+            goodsId: v.id,
           },
         });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "StudentMenu";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "StudentMenu",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
       }
     },
-    jumpClass(v) {
-      this.$router.push({
-        path: "/education/classManageMent/studentMenu",
-        query: {
-          id: v.gradeId,
-          goodsId: v.id,
-        },
-      });
-    },
     getSimpleText(html) {
       var re1 = new RegExp("<.+?>", "g"); //匹配html标签的正则表达式,"g"是搜索匹配多个符合的内容
       var msg = html.replace(re1, ""); //执行替换成空字符
@@ -2024,38 +2190,110 @@ export default {
     },
     //跳转页面
     jumpPage(options) {
-      this.$router.push({
-        path: "dictData",
-        query: {
-          dictId: options.dictId,
-          dictType: options.dictType,
-        },
-      });
+      const jump = () => {
+        this.$router.push({
+          path: "dictData",
+          query: {
+            dictId: options.dictId,
+            dictType: options.dictType,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "DictData";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "DictData",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     },
     //跳转页面
     jumpPageLabel(options) {
-      this.$router.push({
-        path: "labelInfos",
-        query: {
-          id: options.id,
-        },
-      });
+      const jump = () => {
+        this.$router.push({
+          path: "labelInfos",
+          query: {
+            id: options.id,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "LabelInfos";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "LabelInfos",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     }, //跳转页面
     jumpPageLabelProfess(options) {
-      this.$router.push({
-        path: "labelInfos",
-        query: {
-          id: options.labelId,
-        },
-      });
+      const jump = () => {
+        this.$router.push({
+          path: "labelInfos",
+          query: {
+            id: options.labelId,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "LabelInfos";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "LabelInfos",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     },
     jumpinfoJump(options) {
-      this.$router.push({
-        path: "beneficiaryInfos",
-        query: {
-          id: options.payeeId,
-        },
-      });
+      const jump = () => {
+        this.$router.push({
+          path: "beneficiaryInfos",
+          query: {
+            id: options.payeeId,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "BeneficiaryInfos";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "BeneficiaryInfos",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     },
     //新增按钮
     addClick() {
@@ -2084,22 +2322,58 @@ export default {
     },
     jumpPeolpe(item, type) {
       if (type === 1) {
-        this.$router.push({
-          path: "applicationData",
-          query: {
-            id: item.applyId,
-            type: type,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "applicationData",
+            query: {
+              id: item.applyId,
+              type: type,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ApplicationData";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ApplicationData",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
       if (type === 2) {
-        this.$router.push({
-          path: "applicationData",
-          query: {
-            id: item.beforeId,
-            type: type,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "applicationData",
+            query: {
+              id: item.beforeId,
+              type: type,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ApplicationData";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ApplicationData",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     getxq(option) {

+ 1 - 0
src/main.js

@@ -38,6 +38,7 @@ import VueMeta from 'vue-meta'
 import DictData from '@/components/DictData'
 import methodsTools from '@/utils/methodsTool'
 // 全局方法挂载
+
 Vue.prototype.$store = store
 Vue.prototype.getDicts = getDicts
 Vue.prototype.getConfigKey = getConfigKey

+ 3 - 0
src/plugins/index.js

@@ -2,9 +2,12 @@ import auth from './auth'
 import cache from './cache'
 import modal from './modal'
 import download from './download'
+import tab from './tab'
 
 export default {
   install(Vue) {
+    // 页签操作
+    Vue.prototype.$tab = tab
     // 认证对象
     Vue.prototype.$auth = auth
     // 缓存对象

+ 67 - 0
src/plugins/tab.js

@@ -0,0 +1,67 @@
+import store from '@/store'
+import router from '@/router';
+
+export default {
+  // 刷新当前tab页签
+  refreshPage(obj) {
+    const { path, query, matched } = router.currentRoute;
+    if (obj === undefined) {
+      matched.forEach((m) => {
+        if (m.components && m.components.default && m.components.default.name) {
+          if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
+            obj = { name: m.components.default.name, path: path, query: query };
+          }
+        }
+      });
+    }
+    return store.dispatch('tagsView/delCachedView', obj).then(() => {
+      const { path, query } = obj
+      router.replace({
+        path: '/redirect' + path,
+        query: query
+      })
+    })
+  },
+  // 关闭当前tab页签,打开新页签
+  closeOpenPage(obj) {
+    store.dispatch("tagsView/delView", router.currentRoute);
+    if (obj !== undefined) {
+      return router.push(obj);
+    }
+  },
+  // 关闭指定tab页签
+  closePage(obj) {
+    if (obj === undefined) {
+      return store.dispatch('tagsView/delView', router.currentRoute).then(({ lastPath }) => {
+        return router.push(lastPath || '/');
+      });
+    }
+    return store.dispatch('tagsView/delView', obj);
+  },
+  // 关闭所有tab页签
+  closeAllPage() {
+    return store.dispatch('tagsView/delAllViews');
+  },
+  // 关闭左侧tab页签
+  closeLeftPage(obj) {
+    return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute);
+  },
+  // 关闭右侧tab页签
+  closeRightPage(obj) {
+    return store.dispatch('tagsView/delRightTags', obj || router.currentRoute);
+  },
+  // 关闭其他tab页签
+  closeOtherPage(obj) {
+    return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute);
+  },
+  // 添加tab页签
+  openPage(title, url) {
+    var obj = { path: url, meta: { title: title } }
+    store.dispatch('tagsView/addView', obj);
+    return router.push(url);
+  },
+  // 修改tab页签
+  updatePage(obj) {
+    return store.dispatch('tagsView/updateVisitedView', obj);
+  }
+}

+ 1 - 1
src/store/getters.js

@@ -19,7 +19,7 @@ const getters = {
   sidebarRouters: state => state.permission.sidebarRouters,
   indexnum(state) {
     if (!state.dict.indexnum) {
-      api.inquireGradegradelistUserPeriod({ status: "0,1", periodStatus: 2 }).then(res => {
+      api.inquireGradegradelistUserPeriod({ status: 1, periodStatus: 2, pageSize: 1, pageNum: 1 }).then(res => {
         state.dict.indexnum = res.total
       })
     }

+ 59 - 35
src/store/modules/tagsView.js

@@ -1,8 +1,10 @@
+import { MessageBox } from 'element-ui';
 const state = {
   visitedViews: [],
-  cachedViews: []
+  cachedViews: [],
+  alertPage: ["CommodityManageMentAdd", "CommodityManageMentEdit", "FestivalAdd", "FestivalEdit", "ChapterAdd", "ChapterEdit","ModuleManagementAdd","ModuleManagementEdit","BasicInfoEdit","BasicInfoAdd","ChapterContent","EditCourse","OrderDetail","OrderPrice","AddOrder","EditPaper","AddPaper","TopicAddPaper","ChapterVolumeManagementEdit","ChapterVolumeManagementAdd","VolumeManagementAdd","VolumeManagementEdit","HandoutListEdit","HandoutListAdd","StudentXQ","AddClass","ManageClass","NotificationInfo","NotificationListAdd","NotificationListEdit"],
 }
-
+ 
 const mutations = {
   ADD_VISITED_VIEW: (state, view) => {
     if (state.visitedViews.some(v => v.path === view.path)) return
@@ -28,7 +30,6 @@ const mutations = {
     }
   },
   DEL_CACHED_VIEW: (state, view) => {
-    console.log(111)
     const index = state.cachedViews.indexOf(view.name)
     index > -1 && state.cachedViews.splice(index, 1)
   },
@@ -64,7 +65,7 @@ const mutations = {
       }
     }
   },
-  
+
   DEL_RIGHT_VIEWS: (state, view) => {
     const index = state.visitedViews.findIndex(v => v.path === view.path)
     if (index === -1) {
@@ -112,16 +113,6 @@ const actions = {
     commit('ADD_CACHED_VIEW', view)
   },
 
-  delView({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delVisitedView', view)
-      dispatch('delCachedView', view)
-      resolve({
-        visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
-  },
   delVisitedView({ commit, state }, view) {
     return new Promise(resolve => {
       commit('DEL_VISITED_VIEW', view)
@@ -135,16 +126,6 @@ const actions = {
     })
   },
 
-  delOthersViews({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delOthersVisitedViews', view)
-      dispatch('delOthersCachedViews', view)
-      resolve({
-        visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
-  },
   delOthersVisitedViews({ commit, state }, view) {
     return new Promise(resolve => {
       commit('DEL_OTHERS_VISITED_VIEWS', view)
@@ -158,16 +139,6 @@ const actions = {
     })
   },
 
-  delAllViews({ dispatch, state }, view) {
-    return new Promise(resolve => {
-      dispatch('delAllVisitedViews', view)
-      dispatch('delAllCachedViews', view)
-      resolve({
-        visitedViews: [...state.visitedViews],
-        cachedViews: [...state.cachedViews]
-      })
-    })
-  },
   delAllVisitedViews({ commit, state }) {
     return new Promise(resolve => {
       commit('DEL_ALL_VISITED_VIEWS')
@@ -184,7 +155,60 @@ const actions = {
   updateVisitedView({ commit }, view) {
     commit('UPDATE_VISITED_VIEW', view)
   },
-
+  exitView({ dispatch, state }, view) {
+    return new Promise(resolve => {
+      dispatch('delVisitedView', view)
+      dispatch('delCachedView', view)
+      resolve({
+        visitedViews: [...state.visitedViews],
+        cachedViews: [...state.cachedViews]
+      })
+    })
+  },
+  delView({ dispatch, state }, view) {
+    console.log(view)
+    return new Promise(resolve => {
+      var func = () => {
+        dispatch('delVisitedView', view)
+        dispatch('delCachedView', view)
+        resolve({
+          visitedViews: [...state.visitedViews],
+          cachedViews: [...state.cachedViews]
+        })
+      }
+      if (state.alertPage.includes(view.name)) {
+        MessageBox.confirm('当前正在编辑内容,确认是否退出?', '提示', {
+          confirmButtonText: '确认',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          func()
+        }).catch(() => { });
+      } else {
+        func()
+      }
+    })
+  },
+  delAllViews({ dispatch, state }, view) {
+    return new Promise(resolve => {
+      dispatch('delAllVisitedViews', view)
+      dispatch('delAllCachedViews', view)
+      resolve({
+        visitedViews: [...state.visitedViews],
+        cachedViews: [...state.cachedViews]
+      })
+    })
+  },
+  delOthersViews({ dispatch, state }, view) {
+    return new Promise(resolve => {
+      dispatch('delOthersVisitedViews', view)
+      dispatch('delOthersCachedViews', view)
+      resolve({
+        visitedViews: [...state.visitedViews],
+        cachedViews: [...state.cachedViews]
+      })
+    })
+  },
   delRightTags({ commit }, view) {
     return new Promise(resolve => {
       commit('DEL_RIGHT_VIEWS', view)

+ 19 - 2
src/utils/methodsTool.js

@@ -1,5 +1,6 @@
 import * as baseUrls from "@/utils/request.js";
 import router from '@/router/index'//引入路由对象
+// import { map } from "core-js/core/array";
 export default {
 	getUrl() {
 		return baseUrls.BASE_IMG_URL + '/'
@@ -137,17 +138,33 @@ export default {
 	 * @returns {string}
 	 * @remard 单位S转小时分钟秒
 	 */
-	secondToDate(result) {
+	secondToDate(result,Diszing = true) {
 		var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
 		var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
 		var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
-		if (h == 0) {
+		if (h == 0 && Diszing) {
 			result = m + ":" + s;
 		} else {
 			result = h + ':' + m + ":" + s
 		}
 		return result;
 	},
+	/**
+	 * @param {string} result 
+	 * @returns int
+	 * @remard 00:00:00格式转秒
+	 */
+	secondFormDate(result){
+		if(result){
+			let reTime = result.split(":").map(Number)
+			var hs = reTime[0]*60*60
+			var ms = reTime[1]*60
+			var ss = reTime[2]
+			return hs + ms + ss
+		}else{
+			return 0
+		}
+	},
 	//JS计算两个时间戳相差月数、天数、时数、分钟、秒数
 	humandate(time1, time2) {
 		// var time1 = Date.parse(new Date()) / 1000;

+ 1 - 0
src/views/2Cport/adSlotManagement/index.vue

@@ -24,6 +24,7 @@
 import tab1 from "./tab1.vue";
 import tab2 from "./tab2.vue";
 export default {
+  name:"AdSlotManagement",
   components: { tab1, tab2 },
   data() {
     return {

+ 4 - 0
src/views/2Cport/adv/index.vue

@@ -96,6 +96,7 @@
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"Adv",
   components: { tableList, pagination },
   data() {
     return {
@@ -194,6 +195,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     loadingClose() {
       this.disabledBtn = false;

+ 48 - 35
src/views/Marketing/basicParameters/marketings/beneficiary/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -81,7 +81,7 @@
         <el-button @click="close">取 消</el-button>
         <el-button
           type="primary"
-:loading="disabledBtn"
+          :loading="disabledBtn"
           v-if="statusPop !== 2"
           @click="submit('listData')"
           >确 定</el-button
@@ -96,10 +96,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "Beneficiary",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "收款方",
@@ -119,12 +120,12 @@ disabledBtn: false,
           label: "收款方名称",
           prop: "payeeName",
           hidden: true,
-          scope: 'editInfo'
+          scope: "editInfo",
         },
         {
           label: "收款方信息",
           hidden: true,
-          scope:"infoJump"
+          scope: "infoJump",
         },
         {
           label: "状态",
@@ -185,27 +186,33 @@ disabledBtn: false,
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
     search(v) {
       this.loading = true;
       var data = {
-        status:'0,1',
+        status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquirepaypayee(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquirepaypayee(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -225,7 +232,7 @@ loadingClose(){
           };
           this.$api.editpaypayee(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PAYPAYEE");
+            this.$store.commit("PAYPAYEE");
             this.search();
           });
         })
@@ -261,26 +268,32 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.apppaypayee(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.$store.commit("PAYPAYEE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .apppaypayee(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.$store.commit("PAYPAYEE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editpaypayee(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("PAYPAYEE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editpaypayee(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("PAYPAYEE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 53 - 32
src/views/Marketing/basicParameters/marketings/beneficiaryInfos/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -108,7 +108,7 @@
         <el-button @click="close">取 消</el-button>
         <el-button
           type="primary"
-:loading="disabledBtn"
+          :loading="disabledBtn"
           v-if="statusPop !== 2"
           @click="submit('listData')"
           >确 定</el-button
@@ -119,15 +119,16 @@
 </template>
 
 <script>
-import {mapGetters} from "vuex"
+import { mapGetters } from "vuex";
 import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "BeneficiaryInfos",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "收款方详情",
@@ -153,7 +154,7 @@ disabledBtn: false,
           label: "收款方账号类型",
           prop: "typeStatus",
           hidden: true,
-          scope:"typeStatusName"
+          scope: "typeStatusName",
         },
         {
           label: "支付通道",
@@ -231,22 +232,33 @@ disabledBtn: false,
           { required: true, message: "请输入收款方账号", trigger: "blur" },
         ],
         typeStatus: [
-          { required: true, message: "请选择收款方账号类型", trigger: ["change","blur"] },
+          {
+            required: true,
+            message: "请选择收款方账号类型",
+            trigger: ["change", "blur"],
+          },
         ],
         aisleId: [
-          { required: true, message: "请选择支付通道", trigger: ["change","blur"] },
+          {
+            required: true,
+            message: "请选择支付通道",
+            trigger: ["change", "blur"],
+          },
         ],
         status: [{ required: true, message: "请选择状态", trigger: "change" }],
       },
     };
   },
-  computed:{...mapGetters(["payList"])},
+  computed: { ...mapGetters(["payList"]) },
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
     editInfo(v) {
       this.addClick(v, 0);
@@ -259,13 +271,16 @@ loadingClose(){
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquirePayeeAisle(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquirePayeeAisle(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -321,24 +336,30 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.appPayeeAisle(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .appPayeeAisle(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editPayeeAisle(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editPayeeAisle(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 4 - 0
src/views/Marketing/basicParameters/marketings/channelSource/index.vue

@@ -96,6 +96,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"ChannelSource",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -180,6 +181,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     loadingClose(){
       this.disabledBtn = false

+ 47 - 34
src/views/Marketing/basicParameters/marketings/natureCharge/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -81,7 +81,7 @@
         <el-button @click="close">取 消</el-button>
         <el-button
           type="primary"
-:loading="disabledBtn"
+          :loading="disabledBtn"
           v-if="statusPop !== 2"
           @click="submit('listData')"
           >确 定</el-button
@@ -96,10 +96,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "NatureCharge",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "收费性质",
@@ -119,7 +120,7 @@ disabledBtn: false,
           label: "收费性质名称",
           prop: "natureName",
           hidden: true,
-          scope: 'editInfo'
+          scope: "editInfo",
         },
         {
           label: "状态",
@@ -180,27 +181,33 @@ disabledBtn: false,
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
     search(v) {
       this.loading = true;
       var data = {
-        status:'0,1',
+        status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquirepaynature(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquirepaynature(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -220,7 +227,7 @@ loadingClose(){
           };
           this.$api.editpaynature(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PAYNATURE");
+            this.$store.commit("PAYNATURE");
             this.search();
           });
         })
@@ -256,26 +263,32 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.apppaynature(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.$store.commit("PAYNATURE");
-          this.dialogVisible = false;
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .apppaynature(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.$store.commit("PAYNATURE");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editpaynature(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.$store.commit("PAYNATURE");
-          this.dialogVisible = false;
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editpaynature(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.$store.commit("PAYNATURE");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 47 - 34
src/views/Marketing/basicParameters/marketings/paymentChannel/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-@closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -81,7 +81,7 @@
         <el-button @click="close">取 消</el-button>
         <el-button
           type="primary"
-:loading="disabledBtn"
+          :loading="disabledBtn"
           v-if="statusPop !== 2"
           @click="submit('listData')"
           >确 定</el-button
@@ -96,10 +96,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "EducationType",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "支付通道",
@@ -119,7 +120,7 @@ disabledBtn: false,
           label: "支付通道名称",
           prop: "payWay",
           hidden: true,
-          scope: 'editInfo'
+          scope: "editInfo",
         },
         {
           label: "状态",
@@ -180,27 +181,33 @@ disabledBtn: false,
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
     search(v) {
       this.loading = true;
       var data = {
-        status:'0,1',
+        status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquirepayaislelist(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquirepayaislelist(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -220,7 +227,7 @@ loadingClose(){
           };
           this.$api.editpayaisle(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PAYLIST");
+            this.$store.commit("PAYLIST");
             this.search();
           });
         })
@@ -256,26 +263,32 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-       this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.apppayaisle(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.$store.commit("PAYLIST");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .apppayaisle(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.$store.commit("PAYLIST");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editpayaisle(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("PAYLIST");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editpayaisle(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("PAYLIST");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 47 - 34
src/views/Marketing/basicParameters/marketings/serviceModel/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -81,7 +81,7 @@
         <el-button @click="close">取 消</el-button>
         <el-button
           type="primary"
-:loading="disabledBtn"
+          :loading="disabledBtn"
           v-if="statusPop !== 2"
           @click="submit('listData')"
           >确 定</el-button
@@ -96,10 +96,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "ServiceModel",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "服务模式",
@@ -119,7 +120,7 @@ disabledBtn: false,
           label: "服务模式名称",
           prop: "serveName",
           hidden: true,
-          scope: 'editInfo'
+          scope: "editInfo",
         },
         {
           label: "状态",
@@ -180,27 +181,33 @@ disabledBtn: false,
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
     search(v) {
       this.loading = true;
       var data = {
-        status:'0,1',
+        status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquirepayserve(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquirepayserve(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -220,7 +227,7 @@ loadingClose(){
           };
           this.$api.editpayserve(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PAYSERVE");
+            this.$store.commit("PAYSERVE");
             this.search();
           });
         })
@@ -256,26 +263,32 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.apppayserve(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.$store.commit("PAYSERVE");
-          this.dialogVisible = false;
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .apppayserve(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.$store.commit("PAYSERVE");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editpayserve(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.$store.commit("PAYSERVE");
-          this.dialogVisible = false;
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editpayserve(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.$store.commit("PAYSERVE");
+            this.dialogVisible = false;
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 7 - 3
src/views/Marketing/basicParameters/marketings/supplier/index.vue

@@ -109,6 +109,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "Supplier",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -204,6 +205,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     loadingClose() {
       this.disabledBtn = false;
@@ -247,7 +251,7 @@ export default {
           };
           this.$api.editpaysupply(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PAYSUPPLY");
+            this.$store.commit("PAYSUPPLY");
             this.search();
           });
         })
@@ -290,7 +294,7 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             this.dialogVisible = false;
-          this.$store.commit("PAYSUPPLY");
+            this.$store.commit("PAYSUPPLY");
             this.search();
           })
           .catch(() => {
@@ -303,7 +307,7 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             this.dialogVisible = false;
-          this.$store.commit("PAYSUPPLY");
+            this.$store.commit("PAYSUPPLY");
             this.search();
           })
           .catch(() => {

+ 4 - 0
src/views/Marketing/basicParameters/marketings/typesFee/index.vue

@@ -96,6 +96,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"NatureCharge",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -180,6 +181,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     loadingClose() {
       this.disabledBtn = false;

+ 46 - 33
src/views/Marketing/basicParameters/marketings/visitCampus/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -96,10 +96,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "VisitCampus",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "到访校区",
@@ -119,7 +120,7 @@ disabledBtn: false,
           label: "到访校区名称",
           prop: "visitName",
           hidden: true,
-          scope: 'editInfo'
+          scope: "editInfo",
         },
         {
           label: "状态",
@@ -180,27 +181,33 @@ disabledBtn: false,
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
     search(v) {
       this.loading = true;
       var data = {
-        status:'0,1',
+        status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquirepayvisit(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquirepayvisit(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -220,7 +227,7 @@ loadingClose(){
           };
           this.$api.editpayvisit(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PAYVISIT");
+            this.$store.commit("PAYVISIT");
             this.search();
           });
         })
@@ -256,26 +263,32 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.apppayvisit(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.$store.commit("PAYVISIT");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .apppayvisit(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.$store.commit("PAYVISIT");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editpayvisit(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("PAYVISIT");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editpayvisit(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("PAYVISIT");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 111 - 16
src/views/Marketing/goods/commodityManageMent/add/index.vue

@@ -1321,6 +1321,7 @@ import poppleSetTk from "../poppleSetTK.vue";
 import pagination from "@/components/pagination";
 import Editor from "@/components/Editor";
 export default {
+  name: "CommodityManageMentAdd",
   components: { searchBoxNew, Editor, pagination, poppleSet, poppleSetTk },
   data() {
     return {
@@ -2368,7 +2369,9 @@ export default {
         var auditionListArray = [];
         this.auditionList.map((item) => {
           auditionListArray.push({
-            auditionMinute: item.auditionMinute,
+            auditionMinute: this.$methodsTools.secondFormDate(
+              item.auditionMinute
+            ),
             courseId: item.courseId,
             sectionId: item.menuId,
           });
@@ -2383,7 +2386,13 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2445,7 +2454,13 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2457,7 +2472,13 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2469,7 +2490,13 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2479,7 +2506,11 @@ export default {
       }
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "CommodityManageMent",
+        });
+      });
     },
     openBoxs(int, item) {
       if (int === 1) {
@@ -2604,6 +2635,21 @@ export default {
         this.dialogVisibleTableBoxs = false;
         return;
       }
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisibleTableBoxs = false;
       this.$message.success("添加成功");
@@ -2845,16 +2891,65 @@ export default {
         this.dialogVisibleTableBoxs2 = false;
         return;
       }
-      if (this.activeLists2.moduleCheck.length) {
-        this.tableData2 = this.tableData2.concat(this.activeLists2.moduleCheck);
-      }
-      if (this.activeLists2.chapterCheck.length) {
-        this.tableData2 = this.tableData2.concat(
-          this.activeLists2.chapterCheck
-        );
-      }
-      if (this.activeLists2.examCheck.length) {
-        this.tableData2 = this.tableData2.concat(this.activeLists2.examCheck);
+      if (this.tableData2.length) {
+        let maxIndex = 0;
+        this.tableData2.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        if (this.activeLists2.moduleCheck.length) {
+          this.activeLists2.moduleCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort;
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.moduleCheck
+          );
+        }
+        if (this.activeLists2.chapterCheck.length) {
+          this.activeLists2.chapterCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort;
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.chapterCheck
+          );
+        }
+        if (this.activeLists2.examCheck.length) {
+          this.activeLists2.examCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort;
+          });
+          this.tableData2 = this.tableData2.concat(this.activeLists2.examCheck);
+        }
+      } else {
+        let maxIndex = 0;
+        if (this.activeLists2.moduleCheck.length) {
+          this.activeLists2.moduleCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort;
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.moduleCheck
+          );
+        }
+        if (this.activeLists2.chapterCheck.length) {
+          this.activeLists2.chapterCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort;
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.chapterCheck
+          );
+        }
+        if (this.activeLists2.examCheck.length) {
+          this.activeLists2.examCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort;
+          });
+          this.tableData2 = this.tableData2.concat(this.activeLists2.examCheck);
+        }
       }
       this.tableData2.forEach((item) => {
         if (item.type === 1) {

+ 114 - 18
src/views/Marketing/goods/commodityManageMent/edit/index.vue

@@ -307,7 +307,9 @@
       <div v-if="listData.goodsType === 1">
         <h5 class="fengs">课程内容</h5>
         <div style="margin-bottom: 20px">
-          <el-button @click="editAddBoxs" size="small" v-if="noStudent">添加</el-button>
+          <el-button @click="editAddBoxs" size="small" v-if="noStudent"
+            >添加</el-button
+          >
           <el-button
             @click="openSet"
             type="success"
@@ -1334,6 +1336,7 @@ import poppleSetTk from "../poppleSetTK.vue";
 import pagination from "@/components/pagination";
 import Editor from "@/components/Editor";
 export default {
+  name: "CommodityManageMentEdit",
   components: { searchBoxNew, Editor, pagination, poppleSet, poppleSetTk },
   data() {
     return {
@@ -2199,7 +2202,7 @@ export default {
               TypeId: "3-" + item.sectionId,
               menuId: item.sectionId,
               courseId: item.courseId,
-              auditionMinute: item.auditionMinute,
+              auditionMinute: this.$methodsTools.secondToDate(item.auditionMinute,false),
               type: 3,
             });
           });
@@ -2563,7 +2566,7 @@ export default {
         var auditionListArray = [];
         this.auditionList.map((item) => {
           auditionListArray.push({
-            auditionMinute: item.auditionMinute,
+            auditionMinute: this.$methodsTools.secondFormDate(item.auditionMinute),
             courseId: item.courseId,
             sectionId: item.menuId,
           });
@@ -2578,7 +2581,13 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2640,7 +2649,13 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2652,7 +2667,13 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2664,7 +2685,13 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             setTimeout(() => {
-              this.$router.go(-1);
+              this.$store
+                .dispatch("tagsView/exitView", this.$route)
+                .then((res) => {
+                  this.$router.push({
+                    path: "CommodityManageMent",
+                  });
+                });
             }, 300);
           })
           .catch(() => {
@@ -2674,7 +2701,11 @@ export default {
       }
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "CommodityManageMent",
+        });
+      });
     },
     openBoxs(int, item) {
       if (int === 1) {
@@ -2801,6 +2832,21 @@ export default {
         this.dialogVisibleTableBoxs = false;
         return;
       }
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisibleTableBoxs = false;
       this.$message.success("添加成功");
@@ -3054,17 +3100,67 @@ export default {
         this.dialogVisibleTableBoxs2 = false;
         return;
       }
-      if (this.activeLists2.moduleCheck.length) {
-        this.tableData2 = this.tableData2.concat(this.activeLists2.moduleCheck);
-      }
-      if (this.activeLists2.chapterCheck.length) {
-        this.tableData2 = this.tableData2.concat(
-          this.activeLists2.chapterCheck
-        );
-      }
-      if (this.activeLists2.examCheck.length) {
-        this.tableData2 = this.tableData2.concat(this.activeLists2.examCheck);
+      if (this.tableData2.length) {
+        let maxIndex = 0;
+        this.tableData2.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        if (this.activeLists2.moduleCheck.length) {
+          this.activeLists2.moduleCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.moduleCheck
+          );
+        }
+        if (this.activeLists2.chapterCheck.length) {
+          this.activeLists2.chapterCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.chapterCheck
+          );
+        }
+        if (this.activeLists2.examCheck.length) {
+          this.activeLists2.examCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort
+          });
+          this.tableData2 = this.tableData2.concat(this.activeLists2.examCheck);
+        }
+      } else {
+        let maxIndex = 0
+        if (this.activeLists2.moduleCheck.length) {
+          this.activeLists2.moduleCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.moduleCheck
+          );
+        }
+        if (this.activeLists2.chapterCheck.length) {
+          this.activeLists2.chapterCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort
+          });
+          this.tableData2 = this.tableData2.concat(
+            this.activeLists2.chapterCheck
+          );
+        }
+        if (this.activeLists2.examCheck.length) {
+          this.activeLists2.examCheck.forEach((item, index) => {
+            item.sort = maxIndex + 1;
+            maxIndex = item.sort
+          });
+          this.tableData2 = this.tableData2.concat(this.activeLists2.examCheck);
+        }
       }
+
       this.tableData2.forEach((item) => {
         if (item.type === 1) {
           item.name = item.name || item.moduleName;

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

@@ -346,12 +346,30 @@ export default {
           path: "commodityManageMentAdd",
         });
       } else {
-        this.$router.push({
+        const jump = () => {
+          this.$router.push({
           path: "commodityManageMentEdit",
           query: {
             id: v.goodsId,
           },
         });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "CommodityManageMentEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "CommodityManageMentEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     handleSizeChange(v) {

+ 63 - 16
src/views/Marketing/goods/commodityManageMent/poppleSet.vue

@@ -36,7 +36,7 @@
           <span>{{ node.label }}</span>
           <span v-if="node.checked"
             >试听前
-            <el-input-number
+            <!-- <el-input-number
               v-model="node.data.auditionMinute"
               controls-position="right"
               :min="0"
@@ -47,8 +47,21 @@
               :max="node.data.durationTime"
               @blur="changeNum(node)"
             ></el-input-number
-            >分钟</span
-          >
+            >分钟 -->
+            <el-time-picker
+              style="width: 140px"
+              size="mini"
+              value-format="HH:mm:ss"
+              range-separator=":"
+              v-model="node.data.auditionMinute"
+              :picker-options="{
+                selectableRange: '00:00:00 - 12:12:15',
+              }"
+              placeholder="请选择试听时长"
+              @blur="changeNum(node)"
+            >
+            </el-time-picker>
+          </span>
         </span>
       </el-tree>
       <span slot="footer" class="dialog-footer">
@@ -82,29 +95,46 @@ export default {
       getAllSeNum: [], //当前tree所有节ID
     };
   },
+  computed: {
+    compTimes() {
+      const aTime = 192;
+      let chasTime = this.$methodsTools.secondToDate(aTime, false);
+      console.log(chasTime);
+      return `00:00:00 - 00:00:21`;
+    },
+  },
   methods: {
     /**
      * 相同节-时长同步修改
      */
     changeNum(v) {
-      if (v.data.auditionMinute === 0) {
-        this.$message.warning("时长禁止为0,请重新设置");
+      if (v.data.auditionMinute == "00:00:00") {
+        this.$message.warning("试听时长禁止为0,请重新设置");
       } else {
         var arrays = this.$refs.trees;
         //修改指定项的 auditionMinute
         arrays.root.childNodes.forEach((item, index) => {
           item.childNodes.forEach((items, indexs) => {
-            if (items.data.TypeId === v.data.TypeId && items.data.courseId === v.data.courseId) {
+            if (
+              items.data.TypeId === v.data.TypeId &&
+              items.data.courseId === v.data.courseId
+            ) {
               items.data.auditionMinute = v.data.auditionMinute;
             }
             if (items.childNodes.length) {
               items.childNodes.forEach((ik) => {
-                if (ik.data.TypeId === v.data.TypeId && ik.data.courseId === v.data.courseId) {
+                if (
+                  ik.data.TypeId === v.data.TypeId &&
+                  ik.data.courseId === v.data.courseId
+                ) {
                   ik.data.auditionMinute = v.data.auditionMinute;
                 }
                 if (ik.childNodes.length) {
                   ik.childNodes.forEach((iks) => {
-                    if (iks.data.TypeId === v.data.TypeId && iks.data.courseId === v.data.courseId) {
+                    if (
+                      iks.data.TypeId === v.data.TypeId &&
+                      iks.data.courseId === v.data.courseId
+                    ) {
                       iks.data.auditionMinute = v.data.auditionMinute;
                     }
                   });
@@ -115,7 +145,10 @@ export default {
         });
 
         this.auditionListCope.forEach((items) => {
-          if (items.TypeId === v.data.TypeId && v.data.courseId === items.courseId) {
+          if (
+            items.TypeId === v.data.TypeId &&
+            v.data.courseId === items.courseId
+          ) {
             items.auditionMinute = v.data.auditionMinute;
           }
         });
@@ -194,7 +227,8 @@ export default {
             }
           }
         });
-        var pds = self.auditionListCope.filter((itx, indx) => {
+
+        var pdst = self.auditionListCope.filter((itx, indx) => {
           if (itx.courseId != item.courseId) {
             return itx;
           } else {
@@ -203,7 +237,7 @@ export default {
             }
           }
         });
-        self.auditionListCope = pds;
+        self.auditionListCope = pdst;
       }
     },
     submitTable() {
@@ -212,7 +246,7 @@ export default {
         return;
       }
       this.auditionListCope.forEach((item) => {
-        if (!item.auditionMinute) {
+        if (!item.auditionMinute || item.auditionMinute === "00:00:00") {
           this.$message.warning("不允许填写时长为0的节,请重新输入");
           return;
         }
@@ -260,11 +294,18 @@ export default {
                 item.type = 3;
                 item.TypeId = "3" + "-" + item.sectionId;
                 item.menuId = item.sectionId;
-                item.auditionMinute = item.durationTime;
+                item.auditionMinute = self.$methodsTools.secondToDate(
+                  item.durationTime,
+                  false
+                );
                 item.courseId = node.data.courseId;
+                console.log(self.auditionListCope, 555825);
                 if (self.auditionListCope) {
                   self.auditionListCope.map((items) => {
-                    if (items.TypeId === item.TypeId && items.courseId === node.data.courseId) {
+                    if (
+                      items.TypeId === item.TypeId &&
+                      items.courseId === node.data.courseId
+                    ) {
                       if (self.audition.indexOf(item.onlyId) === -1) {
                         self.audition.push(item.onlyId);
                       }
@@ -297,10 +338,16 @@ export default {
                     this.getAllSeNum.push(item.onlyId);
                   }
                   item.TypeId = item.type + "-" + item.menuId;
-                  item.auditionMinute = item.durationTime;
+                  item.auditionMinute = self.$methodsTools.secondToDate(
+                    item.durationTime,
+                    false
+                  );
                   if (self.auditionListCope) {
                     self.auditionListCope.map((items) => {
-                      if (items.TypeId === item.TypeId && items.courseId ===node.data.courseId) {
+                      if (
+                        items.TypeId === item.TypeId &&
+                        items.courseId === node.data.courseId
+                      ) {
                         if (self.audition.indexOf(item.onlyId) === -1) {
                           self.audition.push(item.onlyId);
                         }

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

@@ -159,7 +159,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  name: "courseInquiryList",
+  name: "CourseInquiryList",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {

+ 23 - 15
src/views/Marketing/order/orderList/add/order/index.vue

@@ -383,7 +383,7 @@
                 </p>
                 <p v-else style="padding-left: 24px">
                   本班还剩{{
-                    $methodsTools.newTime(item.classEndTime) 
+                    $methodsTools.newTime(item.classEndTime)
                   }}将结束学习
                 </p>
               </div>
@@ -404,6 +404,7 @@ import pagination from "@/components/pagination";
 import searchBoxNew from "@/components/searchBoxNew";
 import { mapGetters } from "vuex";
 export default {
+  name: "AddOrder",
   components: { searchBoxNew, pagination },
   data() {
     return {
@@ -867,19 +868,23 @@ export default {
           .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",
+            this.$store
+              .dispatch("tagsView/exitView", this.$route)
+              .then(() => {
+                if (data.chargingType == 1) {
+                  this.$router.push({
+                    path: "orderPrice",
+                    query: {
+                      id: res.data.orderId,
+                    },
+                  });
+                }
+                if (data.chargingType == 2) {
+                  this.$router.push({
+                    path: "orderList",
+                  });
+                }
               });
-            }
           })
           .catch(() => {
             this.disabledBtn = false;
@@ -927,7 +932,6 @@ export default {
       });
     },
     changeCity(index, int, value) {
-      console.log(value, 1121);
       this.cityList.map((item) => {
         if (item.areaId === int) {
           this.tableData[index].goodsInputData.applyAreasJson.cityName =
@@ -940,7 +944,11 @@ export default {
     },
     //取消
     clearBtns() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "orderList",
+        });
+      });
     },
     getClassLists(item) {
       return new Promise((resolve, reject) => {

+ 38 - 24
src/views/Marketing/order/orderList/add/orderPrice/index.vue

@@ -169,7 +169,8 @@
                     getChanges(
                       item.goodsRealPrice,
                       item.goodsReceived,
-                      listData.goodsList[index].amount,index
+                      listData.goodsList[index].amount,
+                      index
                     )
                   "
                 ></el-input-number>
@@ -203,7 +204,10 @@
         </el-row>
         <div style="text-align: center">
           <el-button @click="clearBtns">取消</el-button>
-          <el-button type="primary" @click="submitForm('listData')" :loading="disabledBtn"
+          <el-button
+            type="primary"
+            @click="submitForm('listData')"
+            :loading="disabledBtn"
             >提交计费单</el-button
           >
         </div>
@@ -215,9 +219,10 @@
 <script>
 import { mapGetters } from "vuex";
 export default {
+  name: "OrderPrice",
   data() {
     return {
-      disabledBtn:false,
+      disabledBtn: false,
       tableHeader: [
         { label: "订单编号", prop: "orderSn" },
         { label: "商品编码", prop: "code" },
@@ -335,15 +340,15 @@ export default {
     }
   },
   methods: {
-    getChanges(num1,num2,num3,index){
-      if(num3 > (num1 - num2)){
-        this.listData.goodsList[index].amount = ''
-        this.$message.warning('请重新输入收费金额')
-      }else{
-       if( num3 < 0){
-        this.listData.goodsList[index].amount = ''
-         this.$message.warning('请重新输入收费金额')
-       }
+    getChanges(num1, num2, num3, index) {
+      if (num3 > num1 - num2) {
+        this.listData.goodsList[index].amount = "";
+        this.$message.warning("请重新输入收费金额");
+      } else {
+        if (num3 < 0) {
+          this.listData.goodsList[index].amount = "";
+          this.$message.warning("请重新输入收费金额");
+        }
       }
     },
     //从新增订单即刻收费进来
@@ -444,27 +449,36 @@ export default {
       });
     },
     submit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       // setTimeout(()=>{
       //   if(this.disabledBtn){
       //     this.disabledBtn = false
       //   }
       // },3000)
-      this.$api.appOrdersheet(this.listData).then((res) => {
-        this.$message.success("提交成功");
-        setTimeout(() => {
-          this.$router.push({
-            path: "orderList",
-          });
-        }, 500);
-      }).catch(()=>{
-          this.disabledBtn = false
+      this.$api
+        .appOrdersheet(this.listData)
+        .then((res) => {
+          this.$message.success("提交成功");
+          setTimeout(() => {
+            this.$store
+              .dispatch("tagsView/exitView", this.$route)
+              .then(() => {
+                this.$router.push({
+                  path: "orderList",
+                });
+              });
+          }, 500);
         })
+        .catch(() => {
+          this.disabledBtn = false;
+        });
     },
     //取消
     clearBtns() {
-      this.$router.push({
-        path: "orderList",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "orderList",
+        });
       });
     },
     //查询收款方账号

+ 5 - 1
src/views/Marketing/order/orderList/details/costPriceManages.vue

@@ -206,7 +206,11 @@ export default {
     },
     //返回
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "orderList",
+        });
+      });
     },
     //切换list
     changeLi(int) {

+ 5 - 1
src/views/Marketing/order/orderList/details/goodsManage.vue

@@ -366,7 +366,11 @@ export default {
   },
   methods: {
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "orderList",
+        });
+      });
     },
     submit(formName) {
       this.$refs[formName].validate((valid) => {

+ 1 - 0
src/views/Marketing/order/orderList/details/index.vue

@@ -19,6 +19,7 @@ import goodsManage from "./goodsManage.vue";
 import studentManageOrder from "./studentManageOrder.vue";
 import costPriceManages from "./costPriceManages.vue";
 export default {
+  name:"OrderDetail",
   components: { goodsManage, studentManageOrder, costPriceManages },
   data() {
     return {

+ 5 - 1
src/views/Marketing/order/orderList/details/studentManageOrder.vue

@@ -240,7 +240,11 @@ export default {
         });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "orderList",
+        });
+      });
     },
     submit(formName) {
       this.$refs[formName].validate((valid) => {

+ 55 - 18
src/views/Marketing/order/orderList/index.vue

@@ -9,6 +9,7 @@
       :topType="topType"
     />
     <table-list
+      ref="tableLists"
       :tableSets="tableSet"
       :tableData="tableData"
       :navText="navText"
@@ -308,7 +309,7 @@ export default {
         },
         {
           label: "复购-学时冲突",
-          width:"120px",
+          width: "120px",
           prop: "rebuy",
           hidden: true,
           scope: "rebuy",
@@ -323,10 +324,10 @@ export default {
   },
   activated() {
     this.search();
+    this.$refs.tableLists.allCheckData = [];
   },
   methods: {
     emitData(option) {
-      console.log(option, 156);
       if (!option.length) {
         this.$message.error("请勾选需要操作的订单");
         return;
@@ -342,13 +343,31 @@ export default {
       for (let i = 0; i < option.length; i++) {
         arrayId.push(option[i].orderGoodsId);
       }
-      this.$router.push({
-        path: "orderPrice",
-        query: {
-          goodsArrays: arrayId.toString(),
-        },
-      });
-      this.$message.success("成功");
+
+      const jump = () => {
+        this.$router.push({
+          path: "orderPrice",
+          query: {
+            goodsArrays: arrayId.toString(),
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "OrderPrice";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "OrderPrice",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     },
     editInfo(v) {
       this.addClick(v, 0);
@@ -422,15 +441,33 @@ export default {
       }
     },
     jumpDetail(v) {
-      this.$router.push({
-        path: "orderDetail",
-        query: {
-          orderId: v.orderId,
-          goodsId: v.goodsId,
-          orderSn: v.orderSn,
-          userId: v.userId,
-        },
-      });
+      const jump = () => {
+        this.$router.push({
+          path: "orderDetail",
+          query: {
+            orderId: v.orderId,
+            goodsId: v.goodsId,
+            orderSn: v.orderSn,
+            userId: v.userId,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "OrderDetail";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "OrderDetail",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     },
     handleSizeChange(v) {
       this.formData.pageSize = v;

+ 32 - 10
src/views/education/classManageMent/classHours/index.vue

@@ -52,8 +52,7 @@
                 : ''
             "
             style="font-weight: bold"
-          ></i> -->
-          </el-button
+          ></i> --> </el-button
         ><el-button
           :type="activeBtn === 0 ? 'primary' : ''"
           :size="size"
@@ -152,6 +151,7 @@ import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 import { mapGetters } from "vuex";
 export default {
+  // name: "ClassHours",
   components: { tableList, pagination },
   data() {
     return {
@@ -299,6 +299,11 @@ export default {
     this.search();
     this.getInitList();
   },
+  activated() {
+    this.getStatus();
+    this.search();
+    this.getInitList();
+  },
   methods: {
     changeBTN(int) {
       this.activeBtn = int;
@@ -383,14 +388,32 @@ export default {
         return;
       } else {
         if (int === 1) {
+          const jump = () => {
+            this.$router.push({
+              path: "studentMenu",
+              query: {
+                id: this.$route.query.id,
+                goodsId: this.$route.query.goodsId,
+              },
+            });
+          };
+          const statusPage = this.$store.state.tagsView.visitedViews.some(
+            (item) => {
+              return item.name == "StudentMenu";
+            }
+          );
+          if (statusPage) {
+            this.$store
+              .dispatch("tagsView/delCachedView", {
+                name: "StudentMenu",
+              })
+              .then((res) => {
+                jump();
+              });
+          } else {
+            jump();
+          }
           // this.active = int;
-          this.$router.push({
-            path: "studentMenu",
-            query: {
-              id: this.$route.query.id,
-              goodsId: this.$route.query.goodsId,
-            },
-          });
         }
       }
     },
@@ -447,7 +470,6 @@ export default {
           status: "0,1",
         })
         .then((res) => {
-          console.log(res.rows)
           this.reviewListNums = res.rows.length;
         });
     },

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

@@ -1,6 +1,6 @@
 <template>
   <div id="classHoursReview">
-    <div style="margin-bottom: 10px">
+    <!-- <div style="margin-bottom: 10px">
       <el-button
         :size="size"
         :type="active === 1 ? 'primary' : ''"
@@ -13,7 +13,7 @@
         @click="changeActive(2)"
         >学时管理</el-button
       >
-    </div>
+    </div> -->
     <study-times />
   </div>
 </template>

+ 11 - 2
src/views/education/classManageMent/classList/addClass/index.vue

@@ -346,6 +346,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 import { mapGetters } from "vuex";
 export default {
+  name:"AddClass",
   components: { searchBoxNew, pagination },
   data() {
     return {
@@ -619,7 +620,11 @@ export default {
     },
     //返回
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "classList",
+        });
+      });
     },
     //表单验证
     submitForm(formName) {
@@ -653,7 +658,11 @@ export default {
       this.$api.appGradegrade(data).then((res) => {
         this.$message.success("添加成功");
         setTimeout(() => {
-          this.$router.go(-1);
+           this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "classList",
+            });
+          });
         }, 500);
       });
     },

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

@@ -291,6 +291,7 @@ export default {
         });
       } else {
         if (int === 2) {
+        const jump = () => {
           //班级详情
           this.$router.push({
             path: "manageClass",
@@ -298,6 +299,23 @@ export default {
               id: v.gradeId,
             },
           });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ManageClass";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ManageClass",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
         }
         if (int === 3) {
           // 学员管理

+ 8 - 3
src/views/education/classManageMent/classList/manageClass/baseInfo.vue

@@ -363,6 +363,7 @@ export default {
   },
   computed: { ...mapGetters(["courseExamine", "areas"]) },
   mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.getInfoCityDict();
     this.getVoselect();
     this.search();
@@ -446,7 +447,9 @@ export default {
         }
         this.minNums = res.data.studentNum;
         this.listData = res.data;
-      });
+      }).finally(()=>{
+        this.$modal.closeLoading();
+      })
     },
     //官方接口是否出现
     getVoselect() {
@@ -499,8 +502,10 @@ export default {
     },
     //返回
     backPage() {
-      this.$router.push({
-        path: "classList",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "classList",
+        });
       });
     },
     //表单验证

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

@@ -19,6 +19,7 @@ import baseInfo from "./baseInfo.vue";
 import studentRecords from "./studentRecords";
 import teacherRecords from "./teacherRecords";
 export default {
+  name:"ManageClass",
   components: { baseInfo, studentRecords, teacherRecords },
   data() {
     return {

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

@@ -124,8 +124,10 @@ export default {
     },
     //返回
     backPage() {
-      this.$router.push({
-        path:"classList"
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "classList",
+        });
       });
     },
   },

+ 4 - 2
src/views/education/classManageMent/classList/manageClass/teacherRecords.vue

@@ -137,8 +137,10 @@ export default {
     },
     //返回
     backPage() {
-      this.$router.push({
-        path:"classList"
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "classList",
+        });
       });
     },
   },

+ 53 - 100
src/views/education/classManageMent/learningHoursRecordList/index.vue

@@ -33,7 +33,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  name: "learningHoursRecordList",
+  name: "LearningHoursRecordList",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -65,33 +65,17 @@ export default {
           edu: "educationTypeId",
         },
         {
-          prop: "schoolId",
-          placeholder: "院校",
-          scope: "schoolList",
-          edu: "educationTypeId",
-        },
-        {
-          prop: "majorId",
-          placeholder: "专业",
-          scope: "Professional",
-          edu: "educationTypeId",
-        },
-        {
-          prop: "status",
+          prop: "studyStatus",
           placeholder: "学习状态",
           scope: "select",
           options: [
-            {
-              label: "全部",
-              value: 1,
-            },
             {
               label: "完成学习",
               value: 2,
             },
             {
               label: "未完成学习",
-              value: 0,
+              value: 1,
             },
           ],
         },
@@ -99,12 +83,13 @@ export default {
           prop: "status1",
           placeholder: "请选择学时官方推送状态",
           scope: "select",
-          noClear:false,
+          noClear: false,
+          diff:"gfxs",
           options: [
             {
               label: "学时官方推送状态",
-              value: '',
-              disable: true
+              value: "",
+              disable: true,
             },
             {
               label: "是",
@@ -116,58 +101,47 @@ export default {
             },
           ],
         },
-        {
-          prop1: "validityStartTime",
-          prop2: "validityEndTime",
-          placeholder1: "班级有效期开始时间",
-          placeholder2: "班级有效期结束时间",
-          scope: "moreDataPicker",
-        },
         {
           prop: "goodsName",
           placeholder: "请输入关键内容",
         },
       ],
       formData: {
-        goodsType: "",
-        status: "0,1",
+        status: 1,
+        changeGrade:0,
         pageSize: 10,
         pageNum: 1,
       },
       // 表单
       tableSet: [
         {
-          label: "商品名称",
-          prop: "goodsName",
-          scope: "editInfo",
+          label: "学员编码",
+          prop: "studentCode",
           hidden: true,
         },
         {
-          label: "商品编码",
-          prop: "code",
+          label: "学员姓名",
+          prop: "realName",
           hidden: true,
         },
         {
-          label: "专业",
-          prop: "categoryName",
+          label: "学员身份证",
+          prop: "idCard",
           hidden: true,
         },
         {
-          label: "院校",
-          prop: "schoolName",
+          label: "手机号码",
+          prop: "telPhone",
           hidden: true,
         },
         {
-          label: "业务层次",
-          prop1: "projectName",
-          prop2: "businessName",
+          label: "一寸头像照",
+          prop: "classHours",
           hidden: true,
-          width: "220px",
-          scope: "InfoMore",
         },
         {
-          label: "教育类型",
-          prop: "educationName",
+          label: "商品名称",
+          prop: "goodsName",
           hidden: true,
         },
         {
@@ -175,33 +149,6 @@ export default {
           prop: "classHours",
           hidden: true,
         },
-        {
-          label: "商品内容视图",
-          hidden: true,
-          scope: "treeWatch",
-        },
-        {
-          label: "商品价格",
-          prop: "standPrice",
-          hidden: true,
-          scope: "leftCh",
-          ch: "¥",
-        },
-        {
-          label: "商品状态",
-          prop: "status",
-          hidden: true,
-          scope: "hasTime",
-        },
-        {
-          label: "商品有效期",
-          prop1: "validityStartTime",
-          prop2: "validityEndTime",
-          scope: "TimeLists",
-          width: "220px",
-          Diszing: false,
-          hidden: true,
-        },
         {
           label: "学习有效期",
           prop1: "studyStartTime",
@@ -212,27 +159,36 @@ export default {
           hidden: true,
         },
         {
-          label: "供应方(服务)",
-          prop: "supplyName",
+          label: "所在班级",
+          prop: "className",
           hidden: true,
         },
         {
-          label: "最后编辑时间",
-          prop: "updateTime",
+          label: "班级有效期",
+          prop1: "studyStartTime",
+          prop2: "studyEndTime",
+          scope: "TimeLists",
+          width: "220px",
+          Diszing: false,
           hidden: true,
-          scope: "aTimeList",
         },
         {
-          label: "创建时间",
-          prop: "createTime",
+          label: "学习状态",
+          prop: "periodStatus",
           hidden: true,
-          scope: "aTimeList",
+          scope:"isOptions",
+          options:[{
+            label:"已完成",
+            value:0 || 1 || 2
+          },{
+            label:"未完成",
+            value:-1
+          }]
         },
         {
-          label: "可售状态",
-          prop: "goodsStatus",
+          label: "学时官方推送状态",
+          prop: "createTime",
           hidden: true,
-          scope: "status",
         },
       ],
       tableData: [], //表单数据
@@ -253,8 +209,8 @@ export default {
       }
       if (int === 2) {
         this.formData = {
-          goodsType: "",
-          status: "0,1",
+          changeGrade:0,
+          status: 1,
           pageSize: 10,
           pageNum: 1,
         };
@@ -263,19 +219,16 @@ export default {
         this.formData.pageNum = 1;
       }
       var data = JSON.parse(JSON.stringify(this.formData));
-      if (this.formData.validityStartTime) {
-        data.validityStartTime = data.validityStartTime / 1000;
-      }
-      if (this.formData.validityEndTime) {
-        data.validityEndTime = data.validityEndTime / 1000;
-      }
-      //   this.$api.inquireGoods(data).then((res) => {
-      //     this.tableData = res.rows;
-      //     this.total = res.total;
-      //     this.navText.index = res.total;
-      //   }).finally(()=>{
-      this.loading = false;
-      //   })
+      this.$api
+        .inquireGradegradelistUserPeriod(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search(2);

+ 84 - 66
src/views/education/classManageMent/listOfhoursToBeReviewed/index.vue

@@ -14,7 +14,9 @@
       :loading="loading"
     >
       <template slot="btn" slot-scope="props">
-        <el-button type="text">学时审核</el-button>
+        <el-button type="text" @click="jumpPage(props.scope.row)"
+          >学时审核</el-button
+        >
       </template>
     </table-list>
     <pagination
@@ -76,27 +78,27 @@ export default {
           edu: "educationTypeId",
         },
         {
-          prop: "status",
+          prop: "profileStatus",
           placeholder: "填写资料审核状态",
           scope: "select",
           options: [
             {
-              label: "待审核",
+              label: "通过",
               value: 1,
             },
             {
-              label: "审核通过",
-              value: 2,
+              label: "通过",
+              value: 3,
             },
             {
-              label: "审核不通过",
-              value: 0,
+              label: "审核",
+              value: 2,
             },
           ],
         },
         {
-          prop1: "validityStartTime",
-          prop2: "validityEndTime",
+          prop1: "classStartTime",
+          prop2: "classEndTime",
           placeholder1: "班级有效期开始时间",
           placeholder2: "班级有效期结束时间",
           scope: "moreDataPicker",
@@ -107,46 +109,36 @@ export default {
         },
       ],
       formData: {
-        periodStatus:2,
-        status: "0,1",
+        profileStatus: "",
+        periodStatus: 2,
+        status: 1,
         pageSize: 10,
         pageNum: 1,
       },
       // 表单
       tableSet: [
         {
-          label: "商品名称",
-          prop: "goodsName",
-          scope: "editInfo",
-          hidden: true,
-        },
-        {
-          label: "商品编码",
-          prop: "code",
+          label: "学员编码",
+          prop: "studentCode",
           hidden: true,
+          width: "130px",
         },
         {
-          label: "专业",
-          prop: "categoryName",
+          label: "学员姓名",
+          prop: "realName",
           hidden: true,
         },
         {
-          label: "院校",
-          prop: "schoolName",
+          label: "学员身份证",
+          prop: "idCard",
           hidden: true,
+          width: "160px",
         },
         {
-          label: "业务层次",
-          prop1: "projectName",
-          prop2: "businessName",
-          hidden: true,
-          width: "220px",
-          scope: "InfoMore",
-        },
-        {
-          label: "教育类型",
-          prop: "educationName",
+          label: "绑定手机号码",
+          prop: "telPhone",
           hidden: true,
+          width: "130px",
         },
         {
           label: "学时",
@@ -154,63 +146,78 @@ export default {
           hidden: true,
         },
         {
-          label: "商品内容视图",
+          label: "视频学习进度(节)",
+          prop1: "stuAllNum",
+          prop2: "secAllNum",
           hidden: true,
-          scope: "treeWatch",
+          scope: "computer",
+          width: "140px",
         },
         {
-          label: "商品价格",
-          prop: "standPrice",
+          label: "做题进度(章卷)",
+          prop1: "recordNum",
+          prop2: "examNum",
           hidden: true,
-          scope: "leftCh",
-          ch: "¥",
+          scope: "computer",
+          width: "130px",
         },
         {
-          label: "商品状态",
-          prop: "status",
+          label: "学习开始时间",
+          prop: "startTime",
           hidden: true,
-          scope: "hasTime",
+          scope: "aTimeList",
+          width: "120px",
         },
         {
-          label: "商品有效期",
-          prop1: "validityStartTime",
-          prop2: "validityEndTime",
-          scope: "TimeLists",
-          width: "220px",
-          Diszing: false,
+          label: "学习结束时间",
+          prop: "endTime",
           hidden: true,
+          scope: "aTimeList",
+          width: "120px",
         },
         {
           label: "学习有效期",
           prop1: "studyStartTime",
           prop2: "studyEndTime",
+          hidden: true,
           scope: "TimeLists",
           width: "220px",
-          Diszing: false,
-          hidden: true,
         },
         {
-          label: "供应方(服务)",
-          prop: "supplyName",
+          label: "填写资料审核状态",
+          prop: "profileStatus",
           hidden: true,
+          scope: "isOptions",
+          width: "130px",
+          options: [
+            {
+              label: "审核通过",
+              value: 1,
+            },
+            {
+              label: "待审核",
+              value: 2,
+            },
+            {
+              label: "审核不通过",
+              value: 3,
+            },
+          ],
         },
         {
-          label: "最后编辑时间",
-          prop: "updateTime",
-          hidden: true,
-          scope: "aTimeList",
-        },
-        {
-          label: "创建时间",
-          prop: "createTime",
+          label: "学时审批状态",
+          prop: "allStatus",
           hidden: true,
-          scope: "aTimeList",
+          scope: "statusPeriod",
+          width: "130px",
         },
         {
-          label: "可售状态",
-          prop: "goodsStatus",
+          label: "待重修(视频节和题卷)",
+          prop: "waitRebuildNum",
+          prop1: "rebuildNum",
           hidden: true,
-          scope: "status",
+          scope: "againStudent",
+          width: "150px",
         },
       ],
       tableData: [], //表单数据
@@ -224,6 +231,16 @@ export default {
     this.search();
   },
   methods: {
+    jumpPage(v) {
+      this.$router.push({
+        path: "classHoursReview",
+        query: {
+          id: v.gradeId,
+          userId: v.userId,
+          goodsId: v.goodsId,
+        },
+      });
+    },
     search(int) {
       this.loading = true;
       if (int === 1) {
@@ -231,8 +248,9 @@ export default {
       }
       if (int === 2) {
         this.formData = {
-          periodStatus:2,
-          status: "0,1",
+          profileStatus: "",
+          periodStatus: 2,
+          status: 1,
           pageSize: 10,
           pageNum: 1,
         };

+ 30 - 7
src/views/education/classManageMent/studentMenu/index.vue

@@ -479,6 +479,7 @@
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  // name: "StudentMenu",
   components: { tableList, pagination },
   data() {
     return {
@@ -682,6 +683,10 @@ export default {
     await this.getStatus();
     this.search();
   },
+  activated() {
+    this.getStatus();
+    this.search();
+  },
   methods: {
     getInfos(e) {
       console.log(e);
@@ -865,14 +870,32 @@ export default {
         return;
       } else {
         if (int === 2) {
+          const jump = () => {
+            this.$router.push({
+              path: "classHours",
+              query: {
+                id: this.$route.query.id,
+                goodsId: this.$route.query.goodsId,
+              },
+            });
+          };
+          const statusPage = this.$store.state.tagsView.visitedViews.some(
+            (item) => {
+              return item.name == "ClassHours";
+            }
+          );
+          if (statusPage) {
+            this.$store
+              .dispatch("tagsView/delCachedView", {
+                name: "ClassHours",
+              })
+              .then((res) => {
+                jump();
+              });
+          } else {
+            jump();
+          }
           // this.active = int;
-          this.$router.push({
-            path: "classHours",
-            query: {
-              id: this.$route.query.id,
-              goodsId: this.$route.query.goodsId,
-            },
-          });
         }
       }
     },

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

@@ -497,7 +497,7 @@
               >请先选择业务层级</span
             >
             <el-checkbox-group
-              style="overflow: auto"
+              style="overflow: auto;max-height:500px;"
               v-model="listDataGoods.goodsId"
               v-else-if="listDataGoods.businessId && goodsList.length"
             >

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

@@ -208,7 +208,7 @@
               >请先选择业务层级</span
             >
             <el-checkbox-group
-            style="overflow:auto;"
+            style="overflow:auto;max-height:500px;"
               v-model="listDataGoods.goodsId"
               v-else-if="listDataGoods.businessId && goodsList.length"
             >

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

@@ -464,6 +464,7 @@ import bankInfo from "@/components/bankInfo";
 import { mapGetters } from "vuex";
 import Editor from "@/components/Editor";
 export default {
+  name:"NotificationListAdd",
   components: { Editor, bankInfo },
   data() {
     return {
@@ -964,8 +965,10 @@ export default {
     },
     //返回上一页
     backPage() {
-      this.$router.push({
-        path: "notificationList",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "notificationList",
+        });
       });
     },
     //表单验证
@@ -1041,8 +1044,10 @@ export default {
       }
       this.$api.appsysteminform(data).then((res) => {
         this.$message.success("发布成功");
-        this.$router.push({
-          path: "notificationList",
+        this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+          this.$router.push({
+            path: "notificationList",
+          });
         });
       });
     },
@@ -1059,8 +1064,10 @@ export default {
       data.orderStatus = 1;
       this.$api.appsysteminform(data).then((res) => {
         this.$message.success("保存成功");
-        this.$router.push({
-          path: "notificationList",
+        this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+          this.$router.push({
+            path: "notificationList",
+          });
         });
       });
     },
@@ -1087,7 +1094,9 @@ export default {
           },
         ];
         this.activeOne();
-      });
+      }).catch((err)=>{
+          this.$message.error("收件人-班级选择列表请求超时")
+        })
       this.$api.inquiresysteminformlistGradeStudy({ status: 1 }).then((res) => {
         res.rows.forEach((item, index) => {
           item.onlyId = item.userId;

+ 41 - 27
src/views/education/notificationManageMent/notificationList/edit/index.vue

@@ -96,7 +96,9 @@
               style="margin-right: 12px"
               >添加题库跳转</el-button
             >
-            <span style="font-size: 14px">注:1.视频课程关联的试卷,无法做跳转、2.视频课程设置了【播放-禁止拖动】,无法做跳转</span>
+            <span style="font-size: 14px"
+              >注:1.视频课程关联的试卷,无法做跳转、2.视频课程设置了【播放-禁止拖动】,无法做跳转</span
+            >
           </div>
           <div
             style="padding: 5px 20px; background-color: #eee"
@@ -445,9 +447,7 @@
           />
         </div>
       </div>
-      <div>
-       是否继续发送?
-      </div>
+      <div>是否继续发送?</div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogsy = false">否</el-button>
         <el-button type="primary" @click="submitszz(2)">是</el-button>
@@ -462,12 +462,13 @@ import bankInfo from "@/components/bankInfo";
 import { mapGetters } from "vuex";
 import Editor from "@/components/Editor";
 export default {
+  name:"NotificationListEdit",
   components: { bankInfo, Editor },
   data() {
     return {
       dialogCG: false,
       dialog: false,
-      dialogsy:false,
+      dialogsy: false,
       listData: {
         informWay: [],
         issueTime: "",
@@ -586,10 +587,8 @@ export default {
         });
     },
   },
-  created() {
-    this.$modal.loading("正在导入数据,请稍后...");
-  },
   mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     new Promise((resolve, reject) => {
       this.$api.inquireappuserlists({ status: 1 }).then((res) => {
         this.userList = res.rows;
@@ -623,9 +622,10 @@ export default {
           setTimeout(() => {
             this.activeOne();
           }, 200);
-        }).finally(()=>{
-        this.$modal.closeLoading();
-      })
+        })
+        .finally(() => {
+          this.$modal.closeLoading();
+        });
     },
     delCourse(int) {
       this.listData.informCourseAddBo.splice(int, 1);
@@ -816,9 +816,9 @@ export default {
       this.dialogVisibleFL = true;
     },
     submitFL() {
-      if(!this.courseData.onlyId){
-        this.$message.warning("请勾选视频")
-        return
+      if (!this.courseData.onlyId) {
+        this.$message.warning("请勾选视频");
+        return;
       }
       var arrs = this.courseData.onlyId.split("-").map(Number);
       if (this.idCods === 1) {
@@ -975,9 +975,11 @@ export default {
     },
     //返回上一页
     backPage() {
-      this.$router.push({
-        path:"notificationList"
-      })
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "notificationList",
+        });
+      });
     },
     //表单验证
     submit(formName, int) {
@@ -1016,9 +1018,12 @@ export default {
             1
           );
         }
-        if(!this.listData.informCourseAddBo.length && !this.listData.informExamAddBo.length){
+        if (
+          !this.listData.informCourseAddBo.length &&
+          !this.listData.informExamAddBo.length
+        ) {
           this.dialogsy = true;
-          return
+          return;
         }
         this.$api.inquireselectNum(data).then((res) => {
           this.num = res.data;
@@ -1048,9 +1053,11 @@ export default {
       }
       this.$api.editsysteminform(data).then((res) => {
         this.$message.success("发布成功");
-        this.$router.push({
-        path:"notificationList"
-      })
+        this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+          this.$router.push({
+            path: "notificationList",
+          });
+        });
       });
     },
     submitCG() {
@@ -1066,9 +1073,11 @@ export default {
       data.orderStatus = 1;
       this.$api.editsysteminform(data).then((res) => {
         this.$message.success("保存成功");
-        this.$router.push({
-        path:"notificationList"
-      })
+        this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+          this.$router.push({
+            path: "notificationList",
+          });
+        });
       });
     },
     //初始获取备注分类
@@ -1077,7 +1086,10 @@ export default {
         this.$api.inquiresystemclassifylist({ status: 1 }).then((res) => {
           this.options = this.handleTree(res.rows, "classifyId", "parentId");
         });
-        await this.get1();
+        await this.get1().catch((err)=>{
+          this.$message.error("收件人-班级选择列表请求超时")
+          this.$modal.closeLoading();
+        })
         await this.get2();
         await this.get3();
         resolve();
@@ -1117,7 +1129,9 @@ export default {
           ];
           this.activeOne();
           resolve();
-        });
+        }).catch((err)=>{
+          reject();
+        })
       });
     },
     get2() {

+ 83 - 29
src/views/education/notificationManageMent/notificationList/index.vue

@@ -335,7 +335,7 @@ export default {
           prop: "receiptStatus",
           hidden: true,
           scope: "isOptions",
-          width:'150px',
+          width: "150px",
           options: [
             {
               label: "是",
@@ -435,9 +435,9 @@ export default {
       this.dialogVisibleFL = true;
     },
     submitFL() {
-      if(!this.listDataFL.classifyName){
-        this.$message.warning('请输入分类名称')
-        return
+      if (!this.listDataFL.classifyName) {
+        this.$message.warning("请输入分类名称");
+        return;
       }
       if (this.statusNum == 1) {
         this.$api.appsystemclassify(this.listDataFL).then((res) => {
@@ -458,12 +458,30 @@ export default {
       this.dialogVisibleFL = false;
     },
     editList(v) {
-      this.$router.push({
-        path: "notificationEdit",
-        query: {
-          id: v.informId,
-        },
-      });
+      const jump = () => {
+        this.$router.push({
+          path: "notificationEdit",
+          query: {
+            id: v.informId,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "NotificationEdit";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "NotificationEdit",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     },
     addClickFLs(v, int) {
       if (v === undefined) {
@@ -472,21 +490,57 @@ export default {
         });
       } else {
         if (int === 0) {
-          this.$router.push({
-            path: "notificationInfo",
-            query: {
-              id: v.informId,
-            },
-          });
+          const jump = () => {
+            this.$router.push({
+              path: "notificationInfo",
+              query: {
+                id: v.informId,
+              },
+            });
+          };
+          const statusPage = this.$store.state.tagsView.visitedViews.some(
+            (item) => {
+              return item.name == "NotificationInfo";
+            }
+          );
+          if (statusPage) {
+            this.$store
+              .dispatch("tagsView/delCachedView", {
+                name: "NotificationInfo",
+              })
+              .then((res) => {
+                jump();
+              });
+          } else {
+            jump();
+          }
         }
         if (int === 6) {
-          this.$router.push({
-            path: "notificationInfo",
-            query: {
-              id: v.informId,
-              active: 2,
-            },
-          });
+          const jump = () => {
+            this.$router.push({
+              path: "notificationInfo",
+              query: {
+                id: v.informId,
+                active: 2,
+              },
+            });
+          };
+          const statusPage = this.$store.state.tagsView.visitedViews.some(
+            (item) => {
+              return item.name == "NotificationInfo";
+            }
+          );
+          if (statusPage) {
+            this.$store
+              .dispatch("tagsView/delCachedView", {
+                name: "NotificationInfo",
+              })
+              .then((res) => {
+                jump();
+              });
+          } else {
+            jump();
+          }
         }
       }
     },
@@ -512,13 +566,13 @@ export default {
       });
     },
     plDel() {
-      if(!this.$refs.tableList.allCheckData.length){
-        this.$message.warning('请选择需要删除的通知')
-        return
+      if (!this.$refs.tableList.allCheckData.length) {
+        this.$message.warning("请选择需要删除的通知");
+        return;
       }
-      var arst = this.$refs.tableList.allCheckData.map(item => {
-        return item.informId
-      })
+      var arst = this.$refs.tableList.allCheckData.map((item) => {
+        return item.informId;
+      });
       this.$alert(
         "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
         "提示",

+ 1 - 0
src/views/education/notificationManageMent/notificationList/info/index.vue

@@ -15,6 +15,7 @@
 import notificationDetailsList from "./notificationDetailsList.vue";
 import recipientList from "./recipientList.vue";
 export default {
+  name:"NotificationInfo",
   components: { notificationDetailsList, recipientList },
   data() {
     return {

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

@@ -140,7 +140,11 @@ export default {
       return str;
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "notificationList",
+        });
+      });
     },
     getInfo() {
       this.$api

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

@@ -204,7 +204,11 @@ export default {
       this.search(2);
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "notificationList",
+        });
+      });
     },
     handleSizeChange(v) {
       this.formData.pageSize = v;

+ 1 - 0
src/views/education/notificationManageMent/notificationModel/index.vue

@@ -83,6 +83,7 @@
 <script>
 import pagination from "@/components/pagination";
 export default {
+  name:"NotificationModel",
   components: { pagination },
   data() {
     return {

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

@@ -216,6 +216,7 @@ export default {
         // });
       } else {
         if (int === 2) {
+        const jump = () => {
           //学员详情
           this.$router.push({
             path: "studentXQ",
@@ -223,6 +224,23 @@ export default {
               id: v.userId,
             },
           });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "StudentXQ";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "StudentXQ",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
         }
         if (int === 3) {
           // 选班

+ 5 - 1
src/views/education/studentManageMent/studentXQ/classRecord.vue

@@ -163,7 +163,11 @@ export default {
     },
     //返回
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "StudentList",
+        });
+      });
     },
   },
 };

+ 1 - 0
src/views/education/studentManageMent/studentXQ/index.vue

@@ -23,6 +23,7 @@ import classRecord from "./classRecord.vue";
 import studentBaseManage from "./studentBaseManage.vue";
 import studyRecord from "./studyRecord.vue";
 export default {
+  name:"StudentXQ",
   components: {
     BankQuestionPassRecord,
     classRecord,

+ 5 - 1
src/views/education/studentManageMent/studentXQ/studentBaseManage.vue

@@ -184,7 +184,11 @@ export default {
         });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "StudentList",
+        });
+      });
     },
     submit() {
       this.$api.editgradestudent(this.listData).then((res) => {

+ 39 - 18
src/views/resource/bankManagement/chapterVolumeManagement/add/index.vue

@@ -291,6 +291,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 import tableList from "@/components/tableList";
 export default {
+  name: "ChapterVolumeManagementAdd",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -335,7 +336,7 @@ export default {
       boxtableData: [],
       total: 0, //一共多少条
       formData: {
-        publishStatus:1,
+        publishStatus: 1,
         status: 1,
         pageSize: 10,
         pageNum: 1,
@@ -362,9 +363,9 @@ export default {
       activeLists: [],
     };
   },
-  watch:{
-    "newSujectApis"(){
-      this.tableData = []
+  watch: {
+    newSujectApis() {
+      this.tableData = [];
     },
   },
   mounted() {
@@ -383,8 +384,8 @@ export default {
         return;
       }
       var data = JSON.parse(JSON.stringify(this.formData));
-      data.businessId = this.newSujectApis.businessId
-      data.subjectId = this.newSujectApis.subjectId
+      data.businessId = this.newSujectApis.businessId;
+      data.subjectId = this.newSujectApis.subjectId;
       var self = this;
       this.$api.inquirebankexamList(data).then((res) => {
         var aList = [];
@@ -411,19 +412,19 @@ export default {
     },
     getInfos(int) {
       if (int === 1) {
-        this.formData.pageNum = 1
+        this.formData.pageNum = 1;
       }
       if (int === 2) {
         this.formData = {
-          publishStatus:1,
+          publishStatus: 1,
           status: 1,
           pageSize: 10,
           pageNum: 1,
         };
       }
-      var data = JSON.parse(JSON.stringify(this.formData))
-      data.businessId = this.newSujectApis.businessId
-      data.subjectId = this.newSujectApis.subjectId
+      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;
@@ -567,7 +568,7 @@ export default {
           });
           if (new Set(arr).size != arr.length) {
             this.$message.warning("排序不允许有重复值");
-            return
+            return;
           }
           this.rulesTableSumbit();
         } else {
@@ -593,12 +594,20 @@ export default {
       this.$api.addbankchapter(data1).then((res) => {
         this.$message.success("新增成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "chapterVolumeManagement",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "chapterVolumeManagement",
+        });
+      });
     },
     closeType() {
       this.sujectApis = "";
@@ -634,9 +643,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
-      this.activeLists.map((item) => {
-        item.sort = 0;
-      });
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");
@@ -651,7 +672,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.dis_flexbox{
+.dis_flexbox {
   display: flex;
   flex-direction: column;
 }

+ 55 - 23
src/views/resource/bankManagement/chapterVolumeManagement/edit/index.vue

@@ -47,7 +47,7 @@
           >
             <el-radio-group v-model="sujectApis" class="dis_flexbox">
               <el-radio
-              disabled
+                disabled
                 v-for="(item, index) in newSujectOption"
                 :label="item.newId"
                 :key="index"
@@ -55,7 +55,11 @@
               >
             </el-radio-group>
             <div style="display: block; text-align: center; margin-top: 10px">
-              <el-button size="mini" type="primary" @click="submitSujectArray" v-if="false"
+              <el-button
+                size="mini"
+                type="primary"
+                @click="submitSujectArray"
+                v-if="false"
                 >确定</el-button
               >
             </div>
@@ -85,7 +89,11 @@
                 " - " +
                 newSujectApis.subjectName
               }}
-              <i class="el-icon-error closeIcons" @click="closeType" v-if="false"></i>
+              <i
+                class="el-icon-error closeIcons"
+                @click="closeType"
+                v-if="false"
+              ></i>
             </div>
           </div>
         </el-form-item>
@@ -294,6 +302,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 import tableList from "@/components/tableList";
 export default {
+  name:"ChapterVolumeManagementEdit",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -338,7 +347,7 @@ export default {
       boxtableData: [],
       total: 0, //一共多少条
       formData: {
-        publishStatus:1,
+        publishStatus: 1,
         status: 1,
         pageSize: 10,
         pageNum: 1,
@@ -366,6 +375,7 @@ export default {
     };
   },
   mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.getDict();
   },
   methods: {
@@ -380,8 +390,8 @@ export default {
         return;
       }
       var data = JSON.parse(JSON.stringify(this.formData));
-      data.businessId = this.newSujectApis.businessId
-      data.subjectId = this.newSujectApis.subjectId
+      data.businessId = this.newSujectApis.businessId;
+      data.subjectId = this.newSujectApis.subjectId;
       var self = this;
       this.$api.inquirebankexamList(data).then((res) => {
         var aList = [];
@@ -408,23 +418,23 @@ export default {
     },
     getInfos(int) {
       if (int === 1) {
-        this.formData.pageNum = 1
+        this.formData.pageNum = 1;
       }
       if (int === 2) {
         this.formData = {
-          publishStatus:1,
+          publishStatus: 1,
           status: 1,
           pageSize: 10,
           pageNum: 1,
         };
       }
-      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;
-        });
+      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;
+      });
     },
     init() {
       this.getInfos(2);
@@ -447,7 +457,9 @@ export default {
           this.sujectApis =
             res.rows[0].businessId + "-" + res.rows[0].subjectId;
           this.getInfosList();
-        });
+        }).finally(()=>{
+        this.$modal.closeLoading();
+      })
     },
     changeTypes() {
       var self = this;
@@ -574,7 +586,7 @@ export default {
           });
           if (new Set(arr).size != arr.length) {
             this.$message.warning("排序不允许有重复值");
-            return
+            return;
           }
           this.rulesTableSumbit();
         } else {
@@ -600,12 +612,20 @@ export default {
       this.$api.editbankchapter(data1).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "chapterVolumeManagement",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "chapterVolumeManagement",
+        });
+      });
     },
     closeType() {
       this.sujectApis = "";
@@ -641,9 +661,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
-      this.activeLists.map((item) => {
-        item.sort = 0;
-      });
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");
@@ -658,7 +690,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.dis_flexbox{
+.dis_flexbox {
   display: flex;
   flex-direction: column;
 }

+ 45 - 24
src/views/resource/bankManagement/chapterVolumeManagement/index.vue

@@ -38,7 +38,7 @@ import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
   components: { searchBoxNew, tableList, pagination },
-  name:"ChapterVolumeManagement",
+  name: "ChapterVolumeManagement",
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -47,7 +47,7 @@ export default {
         index: 0,
         ch: "条",
         num: false,
-        border:true,
+        border: true,
         choice: true,
         addHide: false,
         backFatherBtn: {
@@ -66,17 +66,17 @@ export default {
           prop: "businessId",
           placeholder: "业务层次",
           scope: "businessLevel",
-          edu:"educationId"
+          edu: "educationId",
         },
         {
           prop: "subjectId",
           placeholder: "科目",
           scope: "sujectType",
-          edu:"educationId"
+          edu: "educationId",
         },
         {
-          prop:"publishStatus",
-          placeholder:"发布状态",
+          prop: "publishStatus",
+          placeholder: "发布状态",
           scope: "select",
           options: [
             {
@@ -96,7 +96,7 @@ export default {
         {
           prop: "name",
           placeholder: "请输入章卷标题",
-        }
+        },
       ],
       formData: {
         status: "0,1",
@@ -128,8 +128,8 @@ export default {
           prop3: "businessName",
           prop4: "subjectName",
           hidden: true,
-          scope:"eduTypes",
-          width:"400"
+          scope: "eduTypes",
+          width: "400",
         },
         {
           label: "关联商品",
@@ -138,7 +138,7 @@ export default {
           hidden: true,
           scope: "aboutChapter",
           width: "150",
-          int:7
+          int: 7,
         },
         {
           label: "试卷总数",
@@ -160,7 +160,7 @@ export default {
   mounted() {
     this.search();
   },
-  activated(){
+  activated() {
     this.search();
   },
   methods: {
@@ -179,13 +179,16 @@ export default {
           pageNum: 1,
         };
       }
-      this.$api.inquirebankchapterList(this.formData).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquirebankchapterList(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);
@@ -221,12 +224,30 @@ export default {
           path: "chapterVolumeManagementAdd",
         });
       } else {
-        this.$router.push({
-          path: "chapterVolumeManagementEdit",
-          query: {
-            id: v.chapterExamId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "chapterVolumeManagementEdit",
+            query: {
+              id: v.chapterExamId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ChapterVolumeManagementEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ChapterVolumeManagementEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     handleSizeChange(v) {

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

@@ -60,7 +60,10 @@
                 >确定</el-button
               >
             </div>
-            <el-button slot="reference" style="margin-left: 12px" @click="getMessage"
+            <el-button
+              slot="reference"
+              style="margin-left: 12px"
+              @click="getMessage"
               >请选择科目</el-button
             >
           </el-popover>
@@ -102,7 +105,11 @@
           </el-select>
         </el-form-item>
         <el-form-item label="地域(省)" prop="provinceId">
-          <el-select v-model="listDataIns.provinceId" placeholder="请选择省" @change="changeCity">
+          <el-select
+            v-model="listDataIns.provinceId"
+            placeholder="请选择省"
+            @change="changeCity"
+          >
             <el-option
               v-for="item in areas"
               :key="item.areaId"
@@ -798,8 +805,8 @@ export default {
       data1: {},
       page: 1,
       listDataIns: {
-        provinceId:'',
-        cityId:'',
+        provinceId: "",
+        cityId: "",
         publishStatus: 1,
       }, //   弹窗数据
       eduTypeOptions: [], //教育类型数据
@@ -1048,7 +1055,7 @@ export default {
     },
   },
   mounted() {
-    console.log(this.cityList)
+    console.log(this.cityList);
     this.getDict();
     this.getFns();
   },
@@ -1105,7 +1112,7 @@ export default {
       this.optionsCity = this.cityList.filter((item) => {
         return item.parentId === newVal;
       });
-      this.listDataIns.cityId = ''
+      this.listDataIns.cityId = "";
     },
     clearImgs() {
       this.listDataIns.coverUrl = "";
@@ -1239,21 +1246,22 @@ export default {
       };
       this.$api.addbankexam(data1).then((res) => {
         this.$message.success("新增成功");
-        this.$router.push({
-          path: "topicAddPaper",
-          query: {
-            id: res.data.examId,
-            code: res.data.code,
-          },
+        this.$store.dispatch("tagsView/exitView", this.$route).then(() => {
+          this.$router.push({
+            path: "topicAddPaper",
+            query: {
+              id: res.data.examId,
+              code: res.data.code,
+            },
+          });
         });
       });
-      // this.data1 = data1;
-      // console.log(this.data1);
-      // this.page = 2;
     },
     backPage() {
-      this.$router.push({
-        path: "testPaperManagement",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "testPaperManagement",
+        });
       });
     },
     closeType() {
@@ -1604,7 +1612,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("请添加选项");
@@ -1851,7 +1860,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.dis_flexbox{
+.dis_flexbox {
   display: flex;
   flex-direction: column;
 }

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

@@ -66,66 +66,65 @@
           :newSujectApisTable="newSujectApisTable"
         /> -->
         <div v-if="showHide">
-          
-        <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"
+          <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>
@@ -364,7 +363,8 @@
                   controls-position="right"
                   :min="1"
                   size="mini"
-                ></el-input-number><span v-if="djTimeType === 1">分钟</span>
+                ></el-input-number
+                ><span v-if="djTimeType === 1">分钟</span>
               </div>
               <div class="margin_bs">
                 答卷次数:
@@ -655,10 +655,11 @@ import tableList from "@/components/tableList";
 import busIns from "@/components/busIns";
 import questionBank from "@/components/questionBank";
 export default {
+  name: "TopicAddPaper",
   components: { searchBoxNew, pagination, tableList, busIns, questionBank },
   data() {
     return {
-      showHide:false,
+      showHide: false,
       activeName: "second",
       formList: [
         // {
@@ -904,7 +905,7 @@ export default {
       djTime: 0, //答卷时长
       djNumType: 0, //0无限1有限
       djNum: 0, //答卷次数
-      examsType:1,
+      examsType: 1,
       businObj: {},
     };
   },
@@ -969,7 +970,7 @@ export default {
         };
         this.djTime = res.data.answerTime;
         this.djNum = res.data.answerNum;
-        this.examsType = res.data.doType
+        this.examsType = res.data.doType;
         this.passScore = res.data.passScore;
       });
     },
@@ -1082,11 +1083,28 @@ export default {
         this.dialogVisibleTable = false;
         return;
       }
-      this.activeLists.map((item) => {
-        item.optionsList = JSON.parse(item.jsonStr);
-        item.sort = 0;
-        (item.partScore = 0), (item.score = "");
-      });
+
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+          item.optionsList = JSON.parse(item.jsonStr);
+          item.partScore = 0;
+          item.score = "";
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+          item.optionsList = JSON.parse(item.jsonStr);
+          item.partScore = 0;
+          item.score = "";
+        });
+      }
       this.activeLists.forEach((item) => {
         this.tableData.unshift(item);
       });
@@ -1119,7 +1137,7 @@ export default {
       if (v === undefined) {
         self.statusPop = 1;
         self.innerVisiblePaperTopic = true;
-        self.showHide = true
+        self.showHide = true;
         self.$nextTick(() => {
           (self.listNums = {
             type: 1,
@@ -1141,7 +1159,7 @@ export default {
         });
       } else {
         self.innerVisiblePaperTopic = true;
-        self.showHide = true
+        self.showHide = true;
         self.statusPop = int;
         var vres = JSON.parse(JSON.stringify(v));
         self.indexZB = indexZB;
@@ -1158,8 +1176,8 @@ export default {
               });
             });
           self.activeExam = a;
-        }else{
-          self.activeExam = []
+        } else {
+          self.activeExam = [];
         }
         if (vres.type === 2) {
           if (vres.answerQuestion) {
@@ -1303,7 +1321,7 @@ export default {
     },
     closeBefore() {
       this.innerVisiblePaperTopic = false;
-        this.showHide = false
+      this.showHide = false;
     },
     async submitForm(formName, int) {
       this.$refs[formName].validate((valid) => {
@@ -1351,7 +1369,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("请添加选项");
@@ -1412,15 +1431,25 @@ export default {
           }
           if (this.statusPop === 1) {
             data.businessList = [this.businObj];
-            data.sort = 0;
             data.partScore = 0;
             data.score = "";
             data.status = 1;
+            if (this.tableData.length) {
+              let maxIndex = 0;
+              this.tableData.forEach((item) => {
+                if (item.sort > maxIndex) {
+                  maxIndex = item.sort;
+                }
+              });
+              data.sort = maxIndex + 1;
+            } else {
+              data.sort = 1;
+            }
             this.tableData.unshift(data);
             // this.$api.addbankquestion(data).then((res) => {
             self.$message.success("添加成功");
             self.innerVisiblePaperTopic = false;
-        self.showHide = false
+            self.showHide = false;
             // self.search();
             // });
           }
@@ -1429,7 +1458,7 @@ export default {
             // this.$api.editbankquestion(data).then((res) => {
             self.$message.success("修改成功");
             self.innerVisiblePaperTopic = false;
-        self.showHide = false
+            self.showHide = false;
             // self.search();
             // });
           }
@@ -1460,18 +1489,18 @@ export default {
         return;
       }
       for (let i = 0; i < this.tableData.length; i++) {
-            if (!this.tableData[i].sort && this.tableData[i].sort !== 0) {
-              this.$message.warning(`题目管理第${i + 1}条请输入排序`);
-              return;
-            }
-          }
-          let arr = this.tableData.map((items) => {
-            return items.sort;
-          });
-          if (new Set(arr).size != arr.length) {
-            this.$message.warning("排序不允许重复");
-            return
-          }
+        if (!this.tableData[i].sort && this.tableData[i].sort !== 0) {
+          this.$message.warning(`题目管理第${i + 1}条请输入排序`);
+          return;
+        }
+      }
+      let arr = this.tableData.map((items) => {
+        return items.sort;
+      });
+      if (new Set(arr).size != arr.length) {
+        this.$message.warning("排序不允许重复");
+        return;
+      }
       var arrs = [];
       for (let i = 0; i < this.tableData.length; i++) {
         if (self.tableData[i].questionId) {
@@ -1492,7 +1521,7 @@ export default {
         questionList: arrs,
         status: 1,
         passScore: this.passScore,
-        doType:this.examsType
+        doType: this.examsType,
       };
       if (this.djTimeType === 0) {
         data.answerTime = 0;
@@ -1507,15 +1536,19 @@ export default {
       this.$api.editbankexam(data).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "testPaperManagement",
+          this.$store.dispatch("tagsView/exitView", this.$route).then(() => {
+            this.$router.push({
+              path: "testPaperManagement",
+            });
           });
         }, 500);
       });
     },
     backPage() {
-      this.$router.push({
-        path: "testPaperManagement",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "testPaperManagement",
+        });
       });
     },
     emitData() {
@@ -1530,22 +1563,22 @@ export default {
       this.diansBoxStatus = false;
     },
     submitPagsInfos() {
-      if(this.examsType === 2){
-        var ast = this.boxtableDataPags.every(item => {
-          if(item.type === 2){
-            return item.partScore >= 0 && item.score >= 0
-          }else{
-            return item.score >= 0
+      if (this.examsType === 2) {
+        var ast = this.boxtableDataPags.every((item) => {
+          if (item.type === 2) {
+            return item.partScore >= 0 && item.score >= 0;
+          } else {
+            return item.score >= 0;
           }
-        })
-        if(!ast){
-          this.$message.warning("请设置每道题目的分值")
-          return
+        });
+        if (!ast) {
+          this.$message.warning("请设置每道题目的分值");
+          return;
         }
       }
-      if(Number(this.passScore) > Number(this.getAllpocis)){
-        this.$message.warning("及格分数不得大于当前总分")
-        return
+      if (Number(this.passScore) > Number(this.getAllpocis)) {
+        this.$message.warning("及格分数不得大于当前总分");
+        return;
       }
       this.tableData = this.boxtableDataPags;
       this.diansBoxStatus = false;

+ 37 - 13
src/views/resource/bankManagement/testPaperManagement/editPaper/baseEditPaper/index.vue

@@ -47,7 +47,7 @@
           >
             <el-radio-group v-model="sujectApis" class="dis_flexbox">
               <el-radio
-              disabled
+                disabled
                 v-for="(item, index) in newSujectOption"
                 :label="item.newId"
                 :key="index"
@@ -55,11 +55,18 @@
               >
             </el-radio-group>
             <div style="display: block; text-align: center; margin-top: 10px">
-              <el-button size="mini" type="primary" @click="submitSujectArray" v-if="false"
+              <el-button
+                size="mini"
+                type="primary"
+                @click="submitSujectArray"
+                v-if="false"
                 >确定</el-button
               >
             </div>
-            <el-button slot="reference" style="margin-left: 12px" @click="getMessage"
+            <el-button
+              slot="reference"
+              style="margin-left: 12px"
+              @click="getMessage"
               >请选择科目</el-button
             >
           </el-popover>
@@ -82,7 +89,11 @@
                 " - " +
                 newSujectApis.subjectName
               }}
-              <i class="el-icon-error closeIcons" @click="closeType" v-if="false"></i>
+              <i
+                class="el-icon-error closeIcons"
+                @click="closeType"
+                v-if="false"
+              ></i>
             </div>
           </div>
         </el-form-item>
@@ -149,7 +160,10 @@
         </el-form-item>
         <el-form-item>
           <el-button @click="backPage">取消</el-button>
-          <el-button type="primary" @click="submitIns('listDataIns')" :disabled="!noStudent"
+          <el-button
+            type="primary"
+            @click="submitIns('listDataIns')"
+            :disabled="!noStudent"
             >确定</el-button
           >
         </el-form-item>
@@ -181,7 +195,7 @@ export default {
       newSujectApis: {},
       sujectApis: "", //当前存在的科目 例如'19-2'
       optionsCity: [],
-      noStudent:true,
+      noStudent: true,
       //表单验证
       rules: {
         examPaperId: [
@@ -204,6 +218,7 @@ export default {
     ...mapGetters(["paperexam", "areas", "cityList"]),
   },
   mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.$api
       .gradecheckGoodsChange({ examId: this.$route.query.id })
       .then((res) => {
@@ -245,7 +260,9 @@ export default {
           this.newSujectApis = res.rows[0];
           this.sujectApis =
             res.rows[0].businessId + "-" + res.rows[0].subjectId;
-        });
+        }).finally(()=>{
+        this.$modal.closeLoading();
+      })
     },
     // changeCity(newVal) {
     //   console.log(newVal)
@@ -320,10 +337,10 @@ export default {
             item.courseArrays = array;
           });
           this.sujectOption = res.rows;
-          resolve()
+          resolve();
         });
       }).then((res) => {
-        this.search()
+        this.search();
       });
     },
     changeEduType() {
@@ -388,13 +405,20 @@ export default {
       this.$api.editbankexam(data1).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "testPaperManagement",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      // this.$store.dispatch('tagsView/delView', this.$router.currentRoute)
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "testPaperManagement",
+        });
+      });
     },
     closeType() {
       this.sujectApis = "";
@@ -405,7 +429,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.dis_flexbox{
+.dis_flexbox {
   display: flex;
   flex-direction: column;
 }

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

@@ -11,6 +11,7 @@
 import baseEditPaper from "./baseEditPaper/index.vue"
 import topicEditPaper from "./topicEditPaper/index.vue"
 export default {
+  name:"EditPaper",
   components:{baseEditPaper,topicEditPaper},
   data() {
     return {

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

@@ -25,7 +25,11 @@
       </table-list>
       <div class="centerStys">
         <el-button size="small" @click="backPage">取消</el-button>
-        <el-button size="small" type="primary" @click="submitTableAllInfos" :disabled="!noStudent"
+        <el-button
+          size="small"
+          type="primary"
+          @click="submitTableAllInfos"
+          :disabled="!noStudent"
           >确定</el-button
         >
       </div>
@@ -1086,17 +1090,33 @@ export default {
         this.dialogVisibleTable = false;
         return;
       }
-      this.activeLists.map((item) => {
-        item.optionsList = JSON.parse(item.jsonStr);
-        item.sort = 0;
-        item.partScore = 0;
-        item.score = "";
-        item.diff = false;
-      });
+
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+          item.optionsList = JSON.parse(item.jsonStr);
+          item.partScore = 0;
+          item.score = "";
+          item.diff = false;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+          item.optionsList = JSON.parse(item.jsonStr);
+          item.partScore = 0;
+          item.score = "";
+          item.diff = false;
+        });
+      }
       this.activeLists.forEach((item) => {
         this.tableData.unshift(item);
       });
-      // this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisibleTable = false;
       this.$message.success("添加成功");
       this.activeLists = [];
@@ -1419,12 +1439,24 @@ export default {
               }
             });
           }
+
           if (this.statusPop === 1) {
-            data.sort = 0;
             data.partScore = 0;
             data.score = "";
             data.status = 1;
             data.businessList = [this.businObj];
+
+            if (this.tableData.length) {
+              let maxIndex = 0;
+              this.tableData.forEach((item) => {
+                if (item.sort > maxIndex) {
+                  maxIndex = item.sort;
+                }
+              });
+              data.sort = maxIndex + 1;
+            } else {
+              data.sort = 1;
+            }
             this.tableData.unshift(data);
             // this.$api.addbankquestion(data).then((res) => {
             self.$message.success("添加成功");
@@ -1517,12 +1549,20 @@ export default {
       this.$api.editbankexam(data).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "testPaperManagement",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "testPaperManagement",
+        });
+      });
     },
     emitData() {
       if (!this.tableData.length) {

+ 25 - 7
src/views/resource/bankManagement/testPaperManagement/index.vue

@@ -248,13 +248,31 @@ export default {
         return;
       }
       if (int === 1) {
-        this.$router.push({
-          path: "editPaper",
-          query: {
-            id: v.examId,
-            code: v.code,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "editPaper",
+            query: {
+              id: v.examId,
+              code: v.code,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "EditPaper";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "EditPaper",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
         return;
       }
       if (int === 2) {

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

@@ -292,7 +292,7 @@ import pagination from "@/components/pagination";
 import tableList from "@/components/tableList";
 export default {
   components: { searchBoxNew, tableList, pagination },
-  name: "volumeManagementAdd",
+  name: "VolumeManagementAdd",
   data() {
     return {
       listData: {
@@ -562,12 +562,20 @@ export default {
       this.$api.addBankModule(data1).then((res) => {
         this.$message.success("新增成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "volumeManagement",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "volumeManagement",
+        });
+      });
     },
     closeType() {
       this.sujectApis = "";
@@ -603,9 +611,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
-      this.activeLists.map((item) => {
-        item.sort = 0;
-      });
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");

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

@@ -302,6 +302,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 import tableList from "@/components/tableList";
 export default {
+  name:"VolumeManagementEdit",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {
@@ -354,7 +355,7 @@ export default {
         },
       ],
       formData: {
-        publishStatus:1,
+        publishStatus: 1,
         status: 1,
         pageSize: 10,
         pageNum: 1,
@@ -364,6 +365,7 @@ export default {
     };
   },
   mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.getDict();
   },
   methods: {
@@ -374,23 +376,21 @@ export default {
       }
       var self = this;
       var data = JSON.parse(JSON.stringify(this.formData));
-      data.businessId = this.newSujectApis.businessId
-      data.subjectId = this.newSujectApis.subjectId
-      this.$api
-        .inquirebankchapterList(data)
-        .then((res) => {
-          var aList = [];
-          this.tableData.map((item) => {
-            aList.push(item.chapterExamId);
-          });
-          this.disCheckList = aList;
-          this.boxtableData = res.rows;
-          this.total = res.total;
-          this.dialogVisible = true;
-          this.$nextTick(function () {
-            self.$refs.multipleTable.clearSelection();
-          });
+      data.businessId = this.newSujectApis.businessId;
+      data.subjectId = this.newSujectApis.subjectId;
+      this.$api.inquirebankchapterList(data).then((res) => {
+        var aList = [];
+        this.tableData.map((item) => {
+          aList.push(item.chapterExamId);
         });
+        this.disCheckList = aList;
+        this.boxtableData = res.rows;
+        this.total = res.total;
+        this.dialogVisible = true;
+        this.$nextTick(function () {
+          self.$refs.multipleTable.clearSelection();
+        });
+      });
     },
     getInfosList() {
       this.$api
@@ -408,12 +408,12 @@ export default {
           status: 1,
           pageSize: 10,
           pageNum: 1,
-          publishStatus:1,
+          publishStatus: 1,
         };
       }
       var data = JSON.parse(JSON.stringify(this.formData));
-      data.businessId = this.newSujectApis.businessId
-      data.subjectId = this.newSujectApis.subjectId
+      data.businessId = this.newSujectApis.businessId;
+      data.subjectId = this.newSujectApis.subjectId;
       this.$api.inquirebankchapterList(data).then((res) => {
         this.boxtableData = res.rows;
         this.total = res.total;
@@ -435,7 +435,9 @@ export default {
           this.sujectApis =
             res.rows[0].businessId + "-" + res.rows[0].subjectId;
           this.getInfosList();
-        });
+        }).finally(()=>{
+        this.$modal.closeLoading();
+      })
     },
     changeTypes() {
       var self = this;
@@ -567,7 +569,7 @@ export default {
           });
           if (new Set(arr).size != arr.length) {
             this.$message.warning("排序不允许有重复值");
-            return
+            return;
           }
           this.rulesTableSumbit();
         } else {
@@ -595,12 +597,20 @@ export default {
       this.$api.editBankModule(data1).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "volumeManagement",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "volumeManagement",
+        });
+      });
     },
     closeType() {
       this.sujectApis = "";
@@ -639,9 +649,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
-      this.activeLists.map((item) => {
-        item.sort = 0;
-      });
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");
@@ -656,7 +678,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.dis_flexbox{
+.dis_flexbox {
   display: flex;
   flex-direction: column;
 }

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

@@ -230,12 +230,30 @@ export default {
           path: "volumeManagementAdd",
         });
       } else {
-        this.$router.push({
+        const jump = () => {
+          this.$router.push({
           path: "volumeManagementEdit",
           query: {
             id: v.moduleExamId,
           },
         });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "VolumeManagementEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "VolumeManagementEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     handleSizeChange(v) {

+ 5 - 0
src/views/resource/baseManageInfos/resource/businessLevel/index.vue

@@ -218,6 +218,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"BusinessLevel",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -354,6 +355,10 @@ export default {
     this.search();
     this.initPlate();
   },
+  activated(){
+    this.search();
+    this.initPlate()
+  },
   methods: {
     submitLearn() {
       console.log(this.learningOrder)

+ 46 - 33
src/views/resource/baseManageInfos/resource/certificate/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -96,10 +96,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "Certificate",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "证书",
@@ -124,7 +125,7 @@ disabledBtn: false,
           label: "证书类型名称",
           prop: "certificateName",
           hidden: true,
-          scope: 'editInfo'
+          scope: "editInfo",
         },
         {
           label: "状态",
@@ -180,24 +181,30 @@ disabledBtn: false,
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
     search(v) {
       this.loading = true;
       var data = {
-        status:'0,1',
+        status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquireBaseCertificate(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquireBaseCertificate(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -217,7 +224,7 @@ disabledBtn: false,
           };
           this.$api.editBaseCertificate(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("CERTIFICATE");
+            this.$store.commit("CERTIFICATE");
             this.search();
           });
         })
@@ -252,30 +259,36 @@ disabledBtn: false,
         }
       });
     },
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
     rulesTableSumbit() {
-       this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.appBaseCertificate(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.$store.commit("CERTIFICATE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .appBaseCertificate(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.$store.commit("CERTIFICATE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editBaseCertificate(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("CERTIFICATE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editBaseCertificate(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("CERTIFICATE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 5 - 0
src/views/resource/baseManageInfos/resource/colleges/index.vue

@@ -184,6 +184,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"Colleges",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -329,6 +330,10 @@ export default {
     this.search();
     this.initOptions();
   },
+  activated(){
+    this.search();
+    this.initOptions()
+  },
   methods: {
     getMessage(){
       if(!this.eduType){

+ 31 - 21
src/views/resource/baseManageInfos/resource/educationTypes/index.vue

@@ -84,7 +84,7 @@
       <span slot="footer" class="dialog-footer">
         <el-button @click="close">取 消</el-button>
         <el-button
-        :loading="disabledBtn"
+          :loading="disabledBtn"
           type="primary"
           v-if="statusPop !== 2"
           @click="submit('listData')"
@@ -129,6 +129,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "EducationTypes",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -240,9 +241,12 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-    loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
     editInfo(v) {
       this.addClick(v, 0);
@@ -283,7 +287,7 @@ export default {
           };
           this.$api.editCourseEducationType(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("EDICATIONTYPE");
+            this.$store.commit("EDICATIONTYPE");
             this.search();
           });
         })
@@ -320,26 +324,32 @@ export default {
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.addCourseEducationType(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.search();
-          this.$store.commit("EDICATIONTYPE");
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .addCourseEducationType(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.search();
+            this.$store.commit("EDICATIONTYPE");
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editCourseEducationType(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("EDICATIONTYPE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editCourseEducationType(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("EDICATIONTYPE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     getSpan() {

+ 7 - 6
src/views/resource/baseManageInfos/resource/enrollmentArea/index.vue

@@ -220,6 +220,7 @@ import pagination from "@/components/pagination";
 // import tableLists from "@/components/tableLists";
 // import paginations from "@/components/paginations";
 export default {
+  name: "EnrollmentArea",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -479,7 +480,7 @@ export default {
           };
           this.$api.editapplyAreas(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("AREAS");
+            this.$store.commit("AREAS");
             this.search();
           });
         })
@@ -524,7 +525,7 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             this.dialogVisible = false;
-          this.$store.commit("AREAS");
+            this.$store.commit("AREAS");
             this.search();
           })
           .catch(() => {
@@ -537,7 +538,7 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             this.dialogVisible = false;
-          this.$store.commit("AREAS");
+            this.$store.commit("AREAS");
             this.search();
           })
           .catch(() => {
@@ -591,7 +592,7 @@ export default {
           };
           this.$api.editapplyAreas(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("CITYLIST");
+            this.$store.commit("CITYLIST");
             this.searchZ();
           });
         })
@@ -645,7 +646,7 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             this.dialogVisibleZ = false;
-          this.$store.commit("CITYLIST");
+            this.$store.commit("CITYLIST");
             this.searchZ();
           })
           .catch(() => {
@@ -658,7 +659,7 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             this.dialogVisibleZ = false;
-          this.$store.commit("CITYLIST");
+            this.$store.commit("CITYLIST");
             this.searchZ();
           })
           .catch(() => {

+ 7 - 3
src/views/resource/baseManageInfos/resource/label/index.vue

@@ -96,6 +96,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "Label",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -186,6 +187,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     loadingClose() {
       this.disabledBtn = false;
@@ -229,7 +233,7 @@ export default {
           };
           this.$api.editCourseLabelList(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("LABELLIST");
+            this.$store.commit("LABELLIST");
             this.search();
           });
         })
@@ -272,7 +276,7 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             this.dialogVisible = false;
-          this.$store.commit("LABELLIST");
+            this.$store.commit("LABELLIST");
             this.search();
           })
           .catch(() => {
@@ -285,7 +289,7 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             this.dialogVisible = false;
-          this.$store.commit("LABELLIST");
+            this.$store.commit("LABELLIST");
             this.search();
           })
           .catch(() => {

+ 21 - 10
src/views/resource/baseManageInfos/resource/labelInfos/index.vue

@@ -91,6 +91,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "LabelInfos",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -172,20 +173,30 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
     search(v) {
       this.loading = true;
-      this.$api.inquireCourseLabelListMajor({id:this.$route.query.id,status:"0,1",pageSize: this.pageSize,
-        pageNum: this.currentPage,}).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquireCourseLabelListMajor({
+          id: this.$route.query.id,
+          status: "0,1",
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+        })
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();

+ 32 - 22
src/views/resource/baseManageInfos/resource/papers/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="educationType">
+  <div id="papers">
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="560px"
       :show-close="false"
@@ -96,10 +96,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "Papers",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "试卷类型",
@@ -180,9 +181,12 @@ disabledBtn: false,
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
     editInfo(v) {
       this.addClick(v, 0);
@@ -259,26 +263,32 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.addpaperexam(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.search();
-          this.$store.commit("EXAMTYPE");
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .addpaperexam(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.search();
+            this.$store.commit("EXAMTYPE");
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editpaperexam(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.search();
-          this.$store.commit("EXAMTYPE");
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editpaperexam(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.search();
+            this.$store.commit("EXAMTYPE");
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 71 - 53
src/views/resource/baseManageInfos/resource/professional/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="620px"
       :show-close="false"
@@ -121,7 +121,10 @@
                     >{{ item.label }}</el-checkbox
                   >
                 </el-checkbox-group>
-                <el-button slot="reference" style="margin-left: 12px" @click="getMessage"
+                <el-button
+                  slot="reference"
+                  style="margin-left: 12px"
+                  @click="getMessage"
                   >请选择项目类型</el-button
                 >
               </el-popover>
@@ -168,17 +171,18 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "Professional",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       changeHeight: true,
       loading: false, //当前表单加载是否加载动画
       navText: {
         title: "专业",
         index: 0,
         ch: "条",
-        border:true,
+        border: true,
         num: true,
         choice: true,
         addHide: false,
@@ -194,20 +198,20 @@ disabledBtn: false,
           prop: "categoryName",
           hidden: true,
           scope: "editInfo",
-          width:'130px'
+          width: "130px",
         },
         {
           label: "专业编码",
           prop: "encoder",
           hidden: true,
-          width:'130px'
+          width: "130px",
         },
         {
           label: "适用项目类型",
           prop: "courseProjectTypeVo",
           hidden: true,
           scope: "mapTypes",
-          width:"240px"
+          width: "240px",
         },
         {
           label: "状态",
@@ -219,8 +223,8 @@ disabledBtn: false,
           label: "标签",
           prop: "labelName",
           hidden: true,
-          width:"130px",
-          scope: 'jumpPageLabelProfess'
+          width: "130px",
+          scope: "jumpPageLabelProfess",
         },
       ],
       tableData: [], //表单数据
@@ -229,7 +233,7 @@ disabledBtn: false,
       currentPage: 1, //当前页码
       options1: [],
       options2: [],
-      BQList:[],//标签列表
+      BQList: [], //标签列表
       courseProjectType: [],
       itemOption1: [],
       itemOption2: [],
@@ -301,29 +305,34 @@ disabledBtn: false,
   },
   mounted() {
     this.search();
-    this.BQListApi()
+    this.BQListApi();
+    this.initOptions();
+  },
+  activated(){
+    this.search();
+    this.BQListApi();
     this.initOptions();
   },
   methods: {
-    loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
-    getMessage(){
-      if(!this.eduType){
-        this.$message.warning("请先选择教育类型")
+    getMessage() {
+      if (!this.eduType) {
+        this.$message.warning("请先选择教育类型");
       }
     },
-    BQListApi(){
-      this.$api.inquireCourseLabelList({status:1}).then(res => {
-        var arrays = []
-        res.rows.map((item,index) => {
+    BQListApi() {
+      this.$api.inquireCourseLabelList({ status: 1 }).then((res) => {
+        var arrays = [];
+        res.rows.map((item, index) => {
           arrays.push({
-            label:item.labelName,
-            value:item.id
-          })
-        })
-        this.BQList = arrays
-      })
+            label: item.labelName,
+            value: item.id,
+          });
+        });
+        this.BQList = arrays;
+      });
     },
     changeType() {
       this.changeHeight = !this.changeHeight;
@@ -349,14 +358,14 @@ disabledBtn: false,
       this.itemOption2 = array;
     },
     initOptions() {
-      this.$api.inquireCourseEducationType({status:1}).then((res) => {
+      this.$api.inquireCourseEducationType({ status: 1 }).then((res) => {
         var array = [];
         res.rows.map((item) => {
           array.push({ label: item.educationName, value: item.id });
         });
         this.options1 = array;
       });
-      this.$api.inquireCourseProjectType({status:1}).then((res) => {
+      this.$api.inquireCourseProjectType({ status: 1 }).then((res) => {
         var array = [];
         res.rows.map((item) => {
           array.push({
@@ -379,13 +388,16 @@ disabledBtn: false,
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquireCourseMajor(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquireCourseMajor(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -408,7 +420,7 @@ disabledBtn: false,
           };
           this.$api.editCourseMajor(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PROFESSIONAL");
+            this.$store.commit("PROFESSIONAL");
             this.search();
           });
         })
@@ -456,27 +468,33 @@ disabledBtn: false,
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       this.listData.majorProjects = this.cauType;
       if (this.statusPop === 1) {
-        this.$api.appCourseMajor(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.$store.commit("PROFESSIONAL");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .appCourseMajor(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.$store.commit("PROFESSIONAL");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editCourseMajor(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("PROFESSIONAL");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editCourseMajor(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("PROFESSIONAL");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 61 - 43
src/views/resource/baseManageInfos/resource/projectType/index.vue

@@ -111,6 +111,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "ProjectType",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -139,7 +140,7 @@ export default {
           label: "项目类型名称",
           prop: "projectName",
           hidden: true,
-          scope: 'editInfo'
+          scope: "editInfo",
         },
         {
           label: "教育类型",
@@ -193,11 +194,15 @@ export default {
       listData: {},
       statusPop: -1,
       dialogVisible: false,
-      optionsSF:[],
+      optionsSF: [],
       //表单验证
       rules: {
         educationId: [
-          { required: true, message: "请选择教育类型", trigger: ["blur","change"] },
+          {
+            required: true,
+            message: "请选择教育类型",
+            trigger: ["blur", "change"],
+          },
         ],
         projectName: [
           { required: true, message: "请输入项目类型名称", trigger: "blur" },
@@ -208,38 +213,45 @@ export default {
   },
   mounted() {
     this.search();
-    this.getEduType()
+    this.getEduType();
+  },
+  activated(){
+    this.search();
+    this.getEduType();
   },
   methods: {
-    editInfo(v){
-      this.addClick(v,0)
+    editInfo(v) {
+      this.addClick(v, 0);
     },
-    getEduType(){
-      this.$api.inquireCourseEducationType({status:1}).then(res =>{
-        var arrays = []
-        res.rows.map((item,index) => {
+    getEduType() {
+      this.$api.inquireCourseEducationType({ status: 1 }).then((res) => {
+        var arrays = [];
+        res.rows.map((item, index) => {
           arrays.push({
             label: item.educationName,
-            value: item.id
-          })
-        })
-        this.optionsSF = arrays
-      })
+            value: item.id,
+          });
+        });
+        this.optionsSF = arrays;
+      });
     },
     search(v) {
       this.loading = true;
       var data = {
-        status:'0,1',
+        status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquireCourseProjectType(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquireCourseProjectType(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -259,7 +271,7 @@ export default {
           };
           this.$api.editCourseProjectType(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("PROJECTTYPE");
+            this.$store.commit("PROJECTTYPE");
             this.search();
           });
         })
@@ -295,33 +307,39 @@ export default {
       });
     },
     rulesTableSumbit() {
-      this.disabledBtn = true
+      this.disabledBtn = true;
       if (this.statusPop === 1) {
-        this.$api.addCourseProjectType(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.$store.commit("PROJECTTYPE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .addCourseProjectType(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.$store.commit("PROJECTTYPE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editCourseProjectType(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("PROJECTTYPE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editCourseProjectType(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("PROJECTTYPE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {
       this.dialogVisible = false;
     },
-    loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
     handleSizeChange(v) {
       this.pageSize = v;

+ 46 - 32
src/views/resource/baseManageInfos/resource/suject/index.vue

@@ -23,7 +23,7 @@
       @handleCurrentChange="handleCurrentChange"
     />
     <el-dialog
-    @closed="loadingClose"
+      @closed="loadingClose"
       :visible.sync="dialogVisible"
       width="630px"
       :show-close="false"
@@ -157,10 +157,11 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "Suject",
   components: { searchBox, tableList, pagination },
   data() {
     return {
-disabledBtn: false,
+      disabledBtn: false,
       changeHeight: true,
       loading: false, //当前表单加载是否加载动画
       navText: {
@@ -168,7 +169,7 @@ disabledBtn: false,
         index: 0,
         ch: "条",
         num: true,
-        border:true,
+        border: true,
         choice: true,
         addHide: false,
         backFatherBtn: {
@@ -272,9 +273,13 @@ disabledBtn: false,
     this.search();
     this.initOptions();
   },
+  activated(){
+    this.search();
+    this.initOptions();
+  },
   methods: {
-loadingClose(){
-      this.disabledBtn = false
+    loadingClose() {
+      this.disabledBtn = false;
     },
     getMessage() {
       if (!this.eduType) {
@@ -305,14 +310,14 @@ loadingClose(){
       this.itemOption2 = array;
     },
     initOptions() {
-      this.$api.inquireCourseEducationType({status:1}).then((res) => {
+      this.$api.inquireCourseEducationType({ status: 1 }).then((res) => {
         var array = [];
         res.rows.map((item) => {
           array.push({ label: item.educationName, value: item.id });
         });
         this.options1 = array;
       });
-      this.$api.inquireCourseProjectType({status:1}).then((res) => {
+      this.$api.inquireCourseProjectType({ status: 1 }).then((res) => {
         var array = [];
         res.rows.map((item) => {
           array.push({
@@ -335,13 +340,16 @@ loadingClose(){
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
-      this.$api.inquireCourseSubject(data).then((res) => {
-        this.tableData = res.rows;
-        this.total = res.total;
-        this.navText.index = res.total;
-      }).finally(()=>{
-        this.loading = false;
-      })
+      this.$api
+        .inquireCourseSubject(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search();
@@ -365,7 +373,7 @@ loadingClose(){
           this.$api.editCourseSubject(data).then((res) => {
             this.$message.success("删除成功");
             this.search();
-          this.$store.commit("SUJECTTYPE");
+            this.$store.commit("SUJECTTYPE");
           });
         })
         .catch(() => {
@@ -412,27 +420,33 @@ loadingClose(){
       });
     },
     rulesTableSumbit() {
-       this.disabledBtn = true
+      this.disabledBtn = true;
       this.listData.courseSubjectProjects = this.cauType;
       if (this.statusPop === 1) {
-        this.$api.appCourseSubject(this.listData).then((res) => {
-          this.$message.success("新增成功");
-          this.dialogVisible = false;
-          this.$store.commit("SUJECTTYPE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .appCourseSubject(this.listData)
+          .then((res) => {
+            this.$message.success("新增成功");
+            this.dialogVisible = false;
+            this.$store.commit("SUJECTTYPE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
       if (this.statusPop === 0) {
-        this.$api.editCourseSubject(this.listData).then((res) => {
-          this.$message.success("修改成功");
-          this.dialogVisible = false;
-          this.$store.commit("SUJECTTYPE");
-          this.search();
-        }).catch(()=>{
-          this.disabledBtn = false
-        })
+        this.$api
+          .editCourseSubject(this.listData)
+          .then((res) => {
+            this.$message.success("修改成功");
+            this.dialogVisible = false;
+            this.$store.commit("SUJECTTYPE");
+            this.search();
+          })
+          .catch(() => {
+            this.disabledBtn = false;
+          });
       }
     },
     close() {

+ 7 - 3
src/views/resource/baseManageInfos/resource/testPeriod/index.vue

@@ -164,6 +164,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name: "TestPeriod",
   components: { searchBox, tableList, pagination },
   data() {
     return {
@@ -325,6 +326,9 @@ export default {
   mounted() {
     this.search();
   },
+  activated(){
+    this.search();
+  },
   methods: {
     loadingClose() {
       this.disabledBtn = false;
@@ -430,7 +434,7 @@ export default {
           };
           this.$api.editCourseExamine(data).then((res) => {
             this.$message.success("删除成功");
-          this.$store.commit("COURSEEXAMINE");
+            this.$store.commit("COURSEEXAMINE");
             this.search();
           });
         })
@@ -489,7 +493,7 @@ export default {
           .then((res) => {
             this.$message.success("新增成功");
             this.dialogVisible = false;
-          this.$store.commit("COURSEEXAMINE");
+            this.$store.commit("COURSEEXAMINE");
             this.search();
           })
           .catch(() => {
@@ -502,7 +506,7 @@ export default {
           .then((res) => {
             this.$message.success("修改成功");
             this.dialogVisible = false;
-          this.$store.commit("COURSEEXAMINE");
+            this.$store.commit("COURSEEXAMINE");
             this.search();
           })
           .catch(() => {

+ 11 - 2
src/views/resource/handoutManagement/handoutList/add/index.vue

@@ -146,6 +146,7 @@
 
 <script>
 export default {
+  name:"HandoutListAdd",
   data() {
     return {
       blob: "", //pdf本地路径
@@ -344,12 +345,20 @@ export default {
       this.$api.addCourseHandouts(dataInfos).then((res) => {
         this.$message.success("新增成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "handoutList",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "handoutList",
+        });
+      });
     },
     closeType(index) {
       this.sujectApis.splice(index, 1);

+ 18 - 6
src/views/resource/handoutManagement/handoutList/edit/index.vue

@@ -149,6 +149,7 @@
 
 <script>
 export default {
+  name:"HandoutListEdit",
   data() {
     return {
       blob: "", //pdf本地路径
@@ -176,7 +177,7 @@ export default {
         handoutsName: [
           { required: true, message: "请输入讲义标题", trigger: "blur" },
         ],
-        canDownload:[
+        canDownload: [
           { required: true, message: "请选择是否可下载", trigger: "change" },
         ],
         status: [
@@ -203,6 +204,7 @@ export default {
     },
   },
   async mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     await this.getDict();
     this.search();
   },
@@ -218,7 +220,9 @@ export default {
           });
           this.sujectApis = arrays;
         }
-      });
+      }).finally(()=>{
+        this.$modal.closeLoading();
+      })
     },
     clearImgs() {
       this.listData.handoutsUrl = undefined;
@@ -302,7 +306,7 @@ export default {
             item.courseArrays = array;
           });
           this.sujectOption = res.rows;
-        resolve();
+          resolve();
         });
         this.$api.inquireCourseStreaming({ status: 1 }).then((res) => {
           var arrays = [];
@@ -374,7 +378,7 @@ export default {
         courseHandoutsBusinessAddBos: this.newSujectApis,
         handoutsName: this.listData.handoutsName,
         status: this.listData.status,
-        canDownload:this.listData.canDownload
+        canDownload: this.listData.canDownload,
       };
       if (this.listData.handoutsUrl !== this.bfImg) {
         if (this.listData.handoutsUrl) {
@@ -389,12 +393,20 @@ export default {
       this.$api.editCourseHandouts(dataInfos).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.go(-1);
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "handoutList",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "handoutList",
+        });
+      });
     },
     closeType(index) {
       this.sujectApis.splice(index, 1);

+ 24 - 6
src/views/resource/handoutManagement/handoutList/index.vue

@@ -218,12 +218,30 @@ export default {
           path: "handoutListAdd",
         });
       } else {
-        this.$router.push({
-          path: "handoutListEdit",
-          query: {
-            id: v.handoutsId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "handoutListEdit",
+            query: {
+              id: v.handoutsId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "HandoutListEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "HandoutListEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     handleSizeChange(v) {

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

@@ -335,6 +335,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 export default {
   components: { searchBoxNew, pagination },
+  name: "ChapterAdd",
   data() {
     return {
       //   弹窗数据
@@ -657,7 +658,7 @@ export default {
           });
           if (new Set(arr).size != arr.length) {
             this.$message.warning("排序不允许有重复值");
-            return
+            return;
           }
           this.rulesTableSumbit();
         } else {
@@ -685,15 +686,19 @@ export default {
       this.$api.addCoursechapter(dataInfos).then((res) => {
         this.$message.success("新增成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "chapter",
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "chapter",
+            });
           });
         }, 500);
       });
     },
     backPage() {
-      this.$router.push({
-        path: "chapter",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "chapter",
+        });
       });
     },
     closeType(index) {
@@ -755,6 +760,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");

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

@@ -226,7 +226,12 @@
         </el-form-item>
         <el-form-item>
           <el-button @click="backPage">取消</el-button>
-          <el-button type="primary" @click="submit('listData')" :disabled="!noStudent">确定</el-button>
+          <el-button
+            type="primary"
+            @click="submit('listData')"
+            :disabled="!noStudent"
+            >确定</el-button
+          >
         </el-form-item>
       </el-form>
     </div>
@@ -334,6 +339,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 export default {
   components: { searchBoxNew, pagination },
+  name: "ChapterEdit",
   data() {
     return {
       //   弹窗数据
@@ -431,7 +437,7 @@ export default {
       },
       disCheckList: [], //已选转禁用复选列表
       activeLists: [],
-      noStudent:true,
+      noStudent: true,
     };
   },
   watch: {
@@ -443,10 +449,11 @@ export default {
     },
   },
   async mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.$api
       .gradecheckGoodsChange({ chapterId: this.$route.query.id })
       .then((res) => {
-        console.log(res.data)
+        console.log(res.data);
         if (res.data > 0) {
           this.noStudent = false;
         }
@@ -511,20 +518,25 @@ export default {
       this.getInfos(2);
     },
     search() {
-      this.$api.obtainCoursechapter(this.$route.query.id).then((res) => {
-        this.bfImg = res.data.coverUrl;
-        this.listData = res.data;
-        this.$api
-          .obtainCoursechapterbusiness(this.$route.query.id)
-          .then((result) => {
-            var arrays = [];
-            result.data.map((item) => {
-              arrays.push(item.businessId + "-" + item.subjectId);
+      this.$api
+        .obtainCoursechapter(this.$route.query.id)
+        .then((res) => {
+          this.bfImg = res.data.coverUrl;
+          this.listData = res.data;
+          this.$api
+            .obtainCoursechapterbusiness(this.$route.query.id)
+            .then((result) => {
+              var arrays = [];
+              result.data.map((item) => {
+                arrays.push(item.businessId + "-" + item.subjectId);
+              });
+              this.sujectApis = arrays;
+              this.getInfosList();
             });
-            this.sujectApis = arrays;
-            this.getInfosList();
-          });
-      });
+        })
+        .finally(() => {
+          this.$modal.closeLoading();
+        });
     },
     clearImgs() {
       this.listData.coverUrl = "";
@@ -667,7 +679,7 @@ export default {
           });
           if (new Set(arr).size != arr.length) {
             this.$message.warning("排序不允许有重复值");
-            return
+            return;
           }
           this.rulesTableSumbit();
         } else {
@@ -696,16 +708,20 @@ export default {
       this.$api.editCoursechapter(dataInfos).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.push({
-                path:"chapter"
-              })
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "chapter",
+            });
+          });
         }, 500);
       });
     },
     backPage() {
-      this.$router.push({
-                path:"chapter"
-              })
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "chapter",
+        });
+      });
     },
     closeType(index) {
       this.sujectApis.splice(index, 1);
@@ -766,6 +782,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");

+ 24 - 6
src/views/resource/videoManagement/chapter/index.vue

@@ -246,12 +246,30 @@ export default {
           path: "chapterAdd",
         });
       } else {
-        this.$router.push({
-          path: "chapterEdit",
-          query: {
-            id: v.chapterId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "chapterEdit",
+            query: {
+              id: v.chapterId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ChapterEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ChapterEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     handleSizeChange(v) {

+ 56 - 41
src/views/resource/videoManagement/courseManagement/basicInfoAdd/index.vue

@@ -1,9 +1,9 @@
 <template>
   <div id="basicInfoAdd">
     <el-tabs v-model="activeName" type="card">
-    <el-tab-pane label="课程基本信息" name="first"></el-tab-pane>
-    <el-tab-pane label="课程章节内容" name="second" disabled></el-tab-pane>
-  </el-tabs>
+      <el-tab-pane label="课程基本信息" name="first"></el-tab-pane>
+      <el-tab-pane label="课程章节内容" name="second" disabled></el-tab-pane>
+    </el-tabs>
     <div class="boxWidth">
       <el-form
         label-position="right"
@@ -194,16 +194,17 @@
 import Editor from "@/components/Editor";
 
 export default {
+  name: "BasicInfoAdd",
   components: { Editor },
   data() {
     return {
-      activeName:"first",
+      activeName: "first",
       uploadStatus: 2, //富文本组件传值
       active: 1,
       //   弹窗数据
       bfImg: "oss/images/avatar/20211013/1634097664410_1397766697",
       listData: {
-        publishStatus:1,
+        publishStatus: 1,
         coverUrl: "oss/images/avatar/20211013/1634097664410_1397766697",
         educationTypeId: "",
         businessId: "",
@@ -356,43 +357,49 @@ export default {
           this.listData.educationTypeId = item.educationId;
           var newSchoolOption = [];
           var newMajorOption = [];
-          var newSujectOption = []
+          var newSujectOption = [];
           // this.$api
           //   .inquireCourseSubjectlistAll({status:1, projectId: item.projectId })
           //   .then((res) => {
           //     this.newSujectOption = res.rows
           //   });
-            for(let i = 0; i < this.schoolOption.length;i++){
-              if(this.schoolOption[i].courseArrays.indexOf(item.projectId) !== -1){
-                newSchoolOption.push(this.schoolOption[i])
-              }
-            }
-            if(!newSchoolOption.length){
-              this.newSchoolOption = this.schoolOption
-            }else{
-              this.newSchoolOption = newSchoolOption;
+          for (let i = 0; i < this.schoolOption.length; i++) {
+            if (
+              this.schoolOption[i].courseArrays.indexOf(item.projectId) !== -1
+            ) {
+              newSchoolOption.push(this.schoolOption[i]);
             }
+          }
+          if (!newSchoolOption.length) {
+            this.newSchoolOption = this.schoolOption;
+          } else {
+            this.newSchoolOption = newSchoolOption;
+          }
 
-            for(let i = 0; i < this.majorOption.length;i++){
-              if(this.majorOption[i].courseArrays.indexOf(item.projectId) !== -1){
-                newMajorOption.push(this.majorOption[i])
-              }
+          for (let i = 0; i < this.majorOption.length; i++) {
+            if (
+              this.majorOption[i].courseArrays.indexOf(item.projectId) !== -1
+            ) {
+              newMajorOption.push(this.majorOption[i]);
             }
-            if(!newMajorOption.length){
-              this.newMajorOption = this.majorOption
-            }else{
-              this.newMajorOption = newMajorOption;
-            }
-            for(let i = 0; i < this.sujectOption.length;i++){
-              if(this.sujectOption[i].courseArrays.indexOf(item.projectId) !== -1){
-                newSujectOption.push(this.sujectOption[i])
-              }
-            }
-            if(!newSujectOption.length){
-              this.newSujectOption = this.sujectOption
-            }else{
-              this.newSujectOption = newSujectOption;
+          }
+          if (!newMajorOption.length) {
+            this.newMajorOption = this.majorOption;
+          } else {
+            this.newMajorOption = newMajorOption;
+          }
+          for (let i = 0; i < this.sujectOption.length; i++) {
+            if (
+              this.sujectOption[i].courseArrays.indexOf(item.projectId) !== -1
+            ) {
+              newSujectOption.push(this.sujectOption[i]);
             }
+          }
+          if (!newSujectOption.length) {
+            this.newSujectOption = this.sujectOption;
+          } else {
+            this.newSujectOption = newSujectOption;
+          }
           // this.schoolOption.map((items) => {
           //   if (items.courseArrays.indexOf(item.projectId) !== -1) {
           //     newSchoolOption.push(items);
@@ -435,18 +442,26 @@ export default {
       this.$api.addCourse(this.listData).then((res) => {
         this.$message.success("新增成功");
         setTimeout(() => {
-          this.$router.replace({
-            path: "chapterContent",
-            query: {
-              id: res.data,
-              status:'add'
-            },
-          }).catch(err => {})
+          this.$store.dispatch("tagsView/exitView", this.$route).then((rest) => {
+            this.$router
+              .replace({
+                path: "chapterContent",
+                query: {
+                  id: res.data,
+                  status: "add",
+                },
+              })
+              .catch((err) => {});
+          });
         }, 300);
       });
     },
     backPage() {
-      this.$router.go(-1);
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "courseManagement",
+        });
+      });
     },
     getImgFile() {
       var self = this;

+ 25 - 10
src/views/resource/videoManagement/courseManagement/basicInfoEdit/index.vue

@@ -10,7 +10,7 @@
       >
         <el-form-item label="教育类型" prop="educationTypeId">
           <el-select
-          disabled
+            disabled
             v-model="listData.educationTypeId"
             placeholder="请选择教育类型"
             @change="changeEducationTypeId"
@@ -26,7 +26,7 @@
         </el-form-item>
         <el-form-item label="业务层次" prop="businessId">
           <el-select
-          disabled
+            disabled
             v-model="listData.businessId"
             placeholder="请选择业务层次"
             @change="changeBusinessId"
@@ -75,7 +75,11 @@
           prop="subjectId"
           v-if="listData.businessId"
         >
-          <el-select v-model="listData.subjectId" placeholder="请选择科目/类目" disabled>
+          <el-select
+            v-model="listData.subjectId"
+            placeholder="请选择科目/类目"
+            disabled
+          >
             <el-option
               v-for="(item, index) in newSujectOption"
               :key="index"
@@ -180,7 +184,11 @@
       />
       <div style="text-align: center; margin-top: 20px">
         <el-button @click="backPage" size="mini">取消</el-button>
-        <el-button type="primary" @click="submit('listData')" size="mini" :disabled="!noStudent"
+        <el-button
+          type="primary"
+          @click="submit('listData')"
+          size="mini"
+          :disabled="!noStudent"
           >确定</el-button
         >
       </div>
@@ -218,7 +226,7 @@ export default {
       newSujectOption: [], //当前科目数据数据
       newSchoolOption: [], //当前院校数据
       newMajorOption: [], //当前专业数据
-      noStudent:true,
+      noStudent: true,
       //表单验证
       rules: {
         educationTypeId: [
@@ -269,6 +277,7 @@ export default {
     };
   },
   mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.$api
       .gradecheckGoodsChange({ courseId: this.$route.query.id })
       .then((res) => {
@@ -301,7 +310,9 @@ export default {
       this.$api.obtainCourseS(this.$route.query.id).then((res) => {
         this.listData = res.data;
         this.changeBusiness();
-      });
+      }).finally(()=>{
+        this.$modal.closeLoading();
+      })
     },
     changeBusiness() {
       var arrays = [];
@@ -497,15 +508,19 @@ export default {
       this.$api.editCourse(this.listData).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "courseManagement",
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "courseManagement",
+            });
           });
         }, 300);
       });
     },
     backPage() {
-      this.$router.push({
-        path: "courseManagement",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "courseManagement",
+        });
       });
     },
     getImgFile() {

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

@@ -342,6 +342,7 @@
 import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 export default {
+  name: "ChapterContent",
   components: { searchBoxNew, pagination },
   data() {
     return {
@@ -924,42 +925,95 @@ export default {
         return;
       }
       var array = [];
-      if (this.radio === 1) {
-        this.activeLists.map((item) => {
-          array.push({
-            id: 1 + "-" + item.moduleId,
-            CodeId: item.moduleId,
-            name: item.moduleName,
-            isDels: true,
-            hasChildren: true,
-            type: 1,
-            sort: 0,
+      if (this.tableDataInfos.length) {
+        if (this.radio === 1) {
+          this.activeLists.map((item) => {
+            array.push({
+              id: 1 + "-" + item.moduleId,
+              CodeId: item.moduleId,
+              name: item.moduleName,
+              isDels: true,
+              hasChildren: true,
+              type: 1,
+              sort: 0,
+            });
           });
-        });
-      } else if (this.radio === 2) {
-        this.activeLists.map((item) => {
-          array.push({
-            id: 2 + "-" + item.chapterId,
-            CodeId: item.chapterId,
-            name: item.name,
-            isDels: true,
-            hasChildren: true,
-            type: 2,
-            sort: 0,
+        } else if (this.radio === 2) {
+          this.activeLists.map((item) => {
+            array.push({
+              id: 2 + "-" + item.chapterId,
+              CodeId: item.chapterId,
+              name: item.name,
+              isDels: true,
+              hasChildren: true,
+              type: 2,
+              sort: 0,
+            });
           });
+        } else if (this.radio === 3) {
+          this.activeLists.map((item) => {
+            array.push({
+              id: 3 + "-" + item.sectionId,
+              CodeId: item.sectionId,
+              name: item.name,
+              type: 3,
+              sort: 0,
+              isDels: true,
+            });
+          });
+        }
+
+        let maxIndex = 0;
+        this.tableDataInfos.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
         });
-      } else if (this.radio === 3) {
-        this.activeLists.map((item) => {
-          array.push({
-            id: 3 + "-" + item.sectionId,
-            CodeId: item.sectionId,
-            name: item.name,
-            type: 3,
-            sort: 0,
-            isDels: true,
+        array.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        if (this.radio === 1) {
+          this.activeLists.map((item) => {
+            array.push({
+              id: 1 + "-" + item.moduleId,
+              CodeId: item.moduleId,
+              name: item.moduleName,
+              isDels: true,
+              hasChildren: true,
+              type: 1,
+              sort: 0,
+            });
+          });
+        } else if (this.radio === 2) {
+          this.activeLists.map((item) => {
+            array.push({
+              id: 2 + "-" + item.chapterId,
+              CodeId: item.chapterId,
+              name: item.name,
+              isDels: true,
+              hasChildren: true,
+              type: 2,
+              sort: 0,
+            });
           });
+        } else if (this.radio === 3) {
+          this.activeLists.map((item) => {
+            array.push({
+              id: 3 + "-" + item.sectionId,
+              CodeId: item.sectionId,
+              name: item.name,
+              type: 3,
+              sort: 0,
+              isDels: true,
+            });
+          });
+        }
+        array.forEach((item, index) => {
+          item.sort = index + 1;
         });
       }
+
       for (let i = 0; i < array.length; i++) {
         this.tableDataInfos.unshift(array[i]);
       }
@@ -1034,8 +1088,10 @@ export default {
       this.activeLists = value;
     },
     backPage() {
-      this.$router.push({
-        path: "courseManagement",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "courseManagement",
+        });
       });
     },
     submit() {
@@ -1058,8 +1114,10 @@ export default {
       this.$api.editCoursemenu(data).then((res) => {
         this.$message.success("编辑成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "courseManagement",
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "courseManagement",
+            });
           });
         }, 300);
       });

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

@@ -12,6 +12,7 @@ import basicInfoEdit from "../basicInfoEdit/index.vue"
 import chapterContent from "../chapterContent/index.vue"
 export default {
   components:{basicInfoEdit,chapterContent},
+  name:"EditCourse",
   data() {
     return {
       activeName:"first"

+ 25 - 6
src/views/resource/videoManagement/courseManagement/index.vue

@@ -113,6 +113,7 @@ export default {
         {
           prop: "courseName",
           placeholder: "请输入课程名称",
+          scope:false
         },
       ],
       formData: {
@@ -215,12 +216,30 @@ export default {
   },
   methods: {
     edit(v) {
-      this.$router.push({
-        path: "editCourse",
-        query: {
-          id: v.courseId,
-        },
-      });
+      const jump = () => {
+        this.$router.push({
+          path: "editCourse",
+          query: {
+            id: v.courseId,
+          },
+        });
+      };
+      const statusPage = this.$store.state.tagsView.visitedViews.some(
+        (item) => {
+          return item.name == "EditCourse";
+        }
+      );
+      if (statusPage) {
+        this.$store
+          .dispatch("tagsView/delCachedView", {
+            name: "EditCourse",
+          })
+          .then((res) => {
+            jump();
+          });
+      } else {
+        jump();
+      }
     },
     editInfo(v) {
       this.edit(v);

+ 87 - 19
src/views/resource/videoManagement/festival/add/index.vue

@@ -159,13 +159,15 @@
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="节时长" v-if="listData.sectionType === 2">
-          <el-input
-            class="numInputs"
-            type="age"
-            v-model.number="listData.durationTime"
-            ><template slot="append">分钟</template></el-input
-          >
+        <el-form-item
+          label="直播时长"
+          v-if="
+            listData.sectionType === 2 &&
+            listData.liveStartTime &&
+            listData.liveEndTime
+          "
+        >
+          {{ compTimeOUT(listData.liveStartTime, listData.liveEndTime) }}
         </el-form-item>
         <el-form-item
           label="URL地址"
@@ -175,6 +177,7 @@
             style="width: 300px"
             v-model="listData.recordingUrl"
             placeholder="请输入URL地址"
+            @change="getApiTime(listData.recordingUrl)"
           ></el-input>
           <label
             for="mobles"
@@ -190,6 +193,7 @@
           <el-select
             v-if="listData.sectionType === 1"
             v-model="newActiveRecordingUrl1"
+            filterable
             placeholder="快捷选中录播URL地址"
             @change="changeRecordingUrl1"
           >
@@ -205,6 +209,7 @@
             v-if="listData.sectionType === 3"
             v-model="newActiveRecordingUrl2"
             placeholder="快捷选中回放URL地址"
+            filterable
             @change="changeRecordingUrl2"
           >
             <el-option
@@ -228,12 +233,14 @@
           label="节时长"
           v-if="listData.sectionType === 1 || listData.sectionType === 3"
         >
-          <el-input
-            class="numInputs"
-            type="age"
-            v-model.number="listData.durationTime"
-            ><template slot="append">分钟</template></el-input
+          <el-time-picker
+            :disabled="disabloutime"
+            value-format="HH:mm:ss"
+            range-separator=":"
+            v-model="listData.durationTime"
+            placeholder="请填入节时长"
           >
+          </el-time-picker>
         </el-form-item>
         <el-form-item label="节封面">
           <div class="imgBoxins">
@@ -332,6 +339,7 @@
 <script>
 import { uploadFile } from "@/utils/uopladFile.js";
 export default {
+  name: "FestivalAdd",
   data() {
     return {
       vodPlayerJs: "https://player.polyv.net/script/player.js",
@@ -367,6 +375,8 @@ export default {
       changeHeight: true,
       bfImg: "oss/images/avatar/20211013/1634097664410_1397766697",
       listData: {
+        durationTime: "",
+        sectionType: 1,
         publishStatus: 1,
         recordingUrl: "",
         liveUrl: "",
@@ -389,6 +399,7 @@ export default {
       sujectApis: [], //当前存在的科目
       newSujectApis: [],
       sujectArray: [], //选中的科目
+      disabloutime: false,
       //表单验证
       rules: {
         prefixName: [
@@ -413,10 +424,47 @@ export default {
       },
     },
   },
+  // computed: {
+  //   compTimes() {
+  //     const aTime = 192;
+  //     let chasTime = this.$methodsTools.secondToDate(aTime, false);
+  //     console.log(chasTime);
+  //     return `00:00:00 - ${chasTime}`;
+  //   },
+  // },
   mounted() {
     this.getDict();
   },
   methods: {
+    compTimeOUT(start, end) {
+      if (start && end) {
+        if (end < start) {
+          return "请检查开始与结束的时间范围";
+        }
+        const asTimes = end / 1000 - start / 1000;
+        return this.$methodsTools.secondToDate(asTimes, false);
+      } else {
+        return "未检测到直播开始时间结束时间,无法计算!";
+      }
+    },
+    getApiTime(val) {
+      var self = this;
+      const valueUrl = val.replace(/\s/g, "");
+      if (valueUrl && valueUrl.length > 30)
+        this.$api
+          .inquirepolyvvideo(valueUrl)
+          .then((res) => {
+            if (res.data.duration) {
+              self.listData.durationTime = res.data.duration;
+              self.disabloutime = true;
+            } else {
+              self.disabloutime = false;
+            }
+          })
+          .catch((err) => {
+            self.disabloutime = false;
+          });
+    },
     loadPlayerScript(callback) {
       if (!window.polyvPlayer) {
         const myScript = document.createElement("script");
@@ -528,6 +576,7 @@ export default {
        */
       uploadFile(file, this.fileSetting, (index, event) => {
         this.listData.recordingUrl = event.vid;
+        this.getApiTime(event.vid);
       });
     },
     getMessage() {
@@ -770,30 +819,47 @@ export default {
           this.listData.liveEndTime,
           1
         );
-        dataInfos.durationTime = this.listData.durationTime;
+        if (
+          dataInfos.liveStartTime &&
+          dataInfos.liveEndTime &&
+          dataInfos.liveEndTime < dataInfos.liveStartTime
+        ) {
+          this.$message.warning("请检查直播开始与结束时间范围");
+          return;
+        }
+        dataInfos.durationTime =
+          dataInfos.liveEndTime - dataInfos.liveStartTime;
       }
       if (this.listData.sectionType === 1) {
         dataInfos.sectionType = 1;
         dataInfos.recordingUrl = this.listData.recordingUrl;
-        dataInfos.durationTime = this.listData.durationTime;
+        dataInfos.durationTime = this.$methodsTools.secondFormDate(
+          this.listData.durationTime
+        );
       }
       if (this.listData.sectionType === 3) {
         dataInfos.sectionType = 3;
         dataInfos.recordingUrl = this.listData.recordingUrl;
-        dataInfos.durationTime = this.listData.durationTime;
+        dataInfos.durationTime = this.$methodsTools.secondFormDate(
+          this.listData.durationTime
+        );
       }
       this.$api.appCourseSection(dataInfos).then((res) => {
         this.$message.success("新增成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "festival",
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "festival",
+            });
           });
         }, 500);
       });
     },
     backPage() {
-      this.$router.push({
-        path: "festival",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "festival",
+        });
       });
     },
     closeType(index) {
@@ -814,6 +880,7 @@ export default {
       this.newSteamUrl1.map((item) => {
         if (item.id === this.newActiveRecordingUrl1) {
           this.listData.recordingUrl = item.recordingVideoId;
+          this.getApiTime(item.recordingVideoId);
         }
       });
       this.newActiveRecordingUrl1 = "";
@@ -822,6 +889,7 @@ export default {
       this.newSteamUrl2.map((item) => {
         if (item.id === this.newActiveRecordingUrl2) {
           this.listData.recordingUrl = item.playbackUrl;
+          this.getApiTime(item.recordingVideoId);
         }
       });
       this.newActiveRecordingUrl2 = "";

+ 111 - 41
src/views/resource/videoManagement/festival/edit/index.vue

@@ -161,13 +161,15 @@
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="节时长" v-if="listData.sectionType === 2">
-          <el-input
-            class="numInputs"
-            type="age"
-            v-model.number="listData.durationTime"
-            ><template slot="append">分钟</template></el-input
-          >
+        <el-form-item
+          label="直播时长"
+          v-if="
+            listData.sectionType === 2 &&
+            listData.liveStartTime &&
+            listData.liveEndTime
+          "
+        >
+          {{ compTimeOUT(listData.liveStartTime, listData.liveEndTime) }}
         </el-form-item>
         <el-form-item
           label="URL地址"
@@ -177,6 +179,7 @@
             style="width: 300px"
             v-model="listData.recordingUrl"
             placeholder="请输入URL地址"
+            @change="getApiTime(listData.recordingUrl)"
           ></el-input>
           <label
             for="mobles"
@@ -193,6 +196,7 @@
             v-if="listData.sectionType === 1"
             v-model="newActiveRecordingUrl1"
             placeholder="快捷选中录播URL地址"
+            filterable
             @change="changeRecordingUrl1"
           >
             <el-option
@@ -207,6 +211,7 @@
             v-if="listData.sectionType === 3"
             v-model="newActiveRecordingUrl2"
             placeholder="快捷选中回放URL地址"
+            filterable
             @change="changeRecordingUrl2"
           >
             <el-option
@@ -230,12 +235,14 @@
           label="节时长"
           v-if="listData.sectionType === 1 || listData.sectionType === 3"
         >
-          <el-input
-            class="numInputs"
-            type="age"
-            v-model.number="listData.durationTime"
-            ><template slot="append">分钟</template></el-input
+          <el-time-picker
+            :disabled="disabloutime"
+            value-format="HH:mm:ss"
+            range-separator=":"
+            v-model="listData.durationTime"
+            placeholder="请填入节时长"
           >
+          </el-time-picker>
         </el-form-item>
         <el-form-item label="节封面">
           <div class="imgBoxins">
@@ -340,6 +347,7 @@
 import { returnTitle } from "@/utils/polyvError.js";
 import { uploadFile } from "@/utils/uopladFile.js";
 export default {
+  name: "FestivalEdit",
   data() {
     return {
       vodPlayerJs: "https://player.polyv.net/script/player.js",
@@ -397,6 +405,7 @@ export default {
       newSujectApis: [],
       sujectArray: [], //选中的科目
       noStudent: true,
+      disabloutime: false,
       //表单验证
       rules: {
         prefixName: [
@@ -422,10 +431,10 @@ export default {
     },
   },
   mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.$api
       .gradecheckGoodsChange({ sectionId: this.$route.query.id })
       .then((res) => {
-        console.log(res.data)
         if (res.data > 0) {
           this.noStudent = false;
         }
@@ -433,6 +442,35 @@ export default {
     this.getDict();
   },
   methods: {
+    compTimeOUT(start, end) {
+      if (start && end) {
+        if (end < start) {
+          return "请检查开始与结束的时间范围";
+        }
+        const asTimes = end / 1000 - start / 1000;
+        return this.$methodsTools.secondToDate(asTimes, false);
+      } else {
+        return "未检测到直播开始时间结束时间,无法计算!";
+      }
+    },
+    getApiTime(val) {
+      var self = this;
+      const valueUrl = val.replace(/\s/g, "");
+      if (valueUrl && valueUrl.length > 30)
+        this.$api
+          .inquirepolyvvideo(valueUrl)
+          .then((res) => {
+            if (res.data.duration) {
+              self.listData.durationTime = res.data.duration;
+              self.disabloutime = true;
+            } else {
+              self.disabloutime = false;
+            }
+          })
+          .catch((err) => {
+            self.disabloutime = false;
+          });
+    },
     loadPlayerScript(callback) {
       if (!window.polyvPlayer) {
         const myScript = document.createElement("script");
@@ -547,6 +585,7 @@ export default {
        */
       uploadFile(file, this.fileSetting, (index, event) => {
         this.listData.recordingUrl = event.vid;
+        this.getApiTime(event.vid);
       });
     },
     getMessage() {
@@ -555,29 +594,41 @@ export default {
       }
     },
     search() {
-      this.$api.obtainCourseSection(this.$route.query.id).then((res) => {
-        this.bfImg = res.data.coverUrl;
-        if (res.data.sectionType === 2) {
-          res.data.liveStartTime = this.$methodsTools.time10to13(
-            res.data.liveStartTime,
-            2
-          );
-          res.data.liveEndTime = this.$methodsTools.time10to13(
-            res.data.liveEndTime,
-            2
+      this.$api
+        .obtainCourseSection(this.$route.query.id)
+        .then((res) => {
+          this.bfImg = res.data.coverUrl;
+          if (res.data.sectionType === 2) {
+            res.data.liveStartTime = this.$methodsTools.time10to13(
+              res.data.liveStartTime,
+              2
+            );
+            res.data.liveEndTime = this.$methodsTools.time10to13(
+              res.data.liveEndTime,
+              2
+            );
+          }
+          res.data.durationTime = this.$methodsTools.secondToDate(
+            res.data.durationTime,
+            false
           );
-        }
-        this.listData = res.data;
-        this.$api
-          .obtaincourseSectionbusiness(this.$route.query.id)
-          .then((result) => {
-            var arrays = [];
-            result.data.map((item) => {
-              arrays.push(item.businessId + "-" + item.subjectId);
+          if (res.data.durationTime) {
+            this.disabloutime = true;
+          }
+          this.listData = res.data;
+          this.$api
+            .obtaincourseSectionbusiness(this.$route.query.id)
+            .then((result) => {
+              var arrays = [];
+              result.data.map((item) => {
+                arrays.push(item.businessId + "-" + item.subjectId);
+              });
+              this.sujectApis = arrays;
             });
-            this.sujectApis = arrays;
-          });
-      });
+        })
+        .finally(() => {
+          this.$modal.closeLoading();
+        });
     },
     clearImgs() {
       this.listData.coverUrl = "";
@@ -846,30 +897,47 @@ export default {
           this.listData.liveEndTime,
           1
         );
-        dataInfos.durationTime = this.listData.durationTime;
+        if (
+          dataInfos.liveStartTime &&
+          dataInfos.liveEndTime &&
+          dataInfos.liveEndTime < dataInfos.liveStartTime
+        ) {
+          this.$message.warning("请检查直播开始与结束时间范围");
+          return;
+        }
+        dataInfos.durationTime =
+          dataInfos.liveEndTime - dataInfos.liveStartTime;
       }
       if (this.listData.sectionType === 1) {
         dataInfos.sectionType = 1;
         dataInfos.recordingUrl = this.listData.recordingUrl;
-        dataInfos.durationTime = this.listData.durationTime;
+        dataInfos.durationTime = this.$methodsTools.secondFormDate(
+          this.listData.durationTime
+        );
       }
       if (this.listData.sectionType === 3) {
         dataInfos.sectionType = 3;
         dataInfos.recordingUrl = this.listData.recordingUrl;
-        dataInfos.durationTime = this.listData.durationTime;
+        dataInfos.durationTime = this.$methodsTools.secondFormDate(
+          this.listData.durationTime
+        );
       }
       this.$api.editCourseSection(dataInfos).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "festival",
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "festival",
+            });
           });
         }, 500);
       });
     },
     backPage() {
-      this.$router.push({
-        path: "festival",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "festival",
+        });
       });
     },
     closeType(index) {
@@ -890,6 +958,7 @@ export default {
       this.newSteamUrl1.map((item) => {
         if (item.id === this.newActiveRecordingUrl1) {
           this.listData.recordingUrl = item.recordingVideoId;
+          this.getApiTime(item.recordingVideoId);
         }
       });
       this.newActiveRecordingUrl1 = "";
@@ -898,6 +967,7 @@ export default {
       this.newSteamUrl2.map((item) => {
         if (item.id === this.newActiveRecordingUrl2) {
           this.listData.recordingUrl = item.playbackUrl;
+          this.getApiTime(item.recordingVideoId);
         }
       });
       this.newActiveRecordingUrl2 = "";

+ 24 - 6
src/views/resource/videoManagement/festival/index.vue

@@ -372,12 +372,30 @@ export default {
           path: "festivalAdd",
         });
       } else {
-        this.$router.push({
-          path: "festivalEdit",
-          query: {
-            id: v.sectionId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "festivalEdit",
+            query: {
+              id: v.sectionId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "FestivalEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "FestivalEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     handleSizeChange(v) {

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

@@ -334,6 +334,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 export default {
   components: { searchBoxNew, pagination },
+  name: "ModuleManagementAdd",
   data() {
     return {
       //   弹窗数据
@@ -655,7 +656,7 @@ export default {
           });
           if (new Set(arr).size != arr.length) {
             this.$message.warning("排序不允许有重复值");
-            return
+            return;
           }
           this.rulesTableSumbit();
         } else {
@@ -683,15 +684,19 @@ export default {
       this.$api.addCoursemodule(dataInfos).then((res) => {
         this.$message.success("新增成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "moduleManagement",
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "moduleManagement",
+            });
           });
         }, 500);
       });
     },
     backPage() {
-      this.$router.push({
-        path: "moduleManagement",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "moduleManagement",
+        });
       });
     },
     closeType(index) {
@@ -753,6 +758,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");

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

@@ -227,7 +227,12 @@
         </el-form-item>
         <el-form-item>
           <el-button @click="backPage">取消</el-button>
-          <el-button type="primary" @click="submit('listData')" :disabled="!noStudent">确定</el-button>
+          <el-button
+            type="primary"
+            @click="submit('listData')"
+            :disabled="!noStudent"
+            >确定</el-button
+          >
         </el-form-item>
       </el-form>
     </div>
@@ -334,7 +339,8 @@
 import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
 export default {
-  components: { searchBoxNew,pagination },
+  name: "ModuleManagementEdit",
+  components: { searchBoxNew, pagination },
   data() {
     return {
       //   弹窗数据
@@ -426,11 +432,11 @@ export default {
         status: 1,
         pageSize: 10,
         pageNum: 1,
-        publishStatus:1
+        publishStatus: 1,
       },
       disCheckList: [], //已选转禁用复选列表
       activeLists: [],
-      noStudent:true
+      noStudent: true,
     };
   },
   watch: {
@@ -442,6 +448,7 @@ export default {
     },
   },
   async mounted() {
+    this.$modal.loading("正在导入数据,请稍后...");
     this.$api
       .gradecheckGoodsChange({ moduleId: this.$route.query.id })
       .then((res) => {
@@ -465,7 +472,7 @@ export default {
           status: 1,
           pageNum: 1,
           pageSize: 10,
-          publishStatus:1,
+          publishStatus: 1,
         })
         .then((res) => {
           var aList = [];
@@ -494,7 +501,7 @@ export default {
       this.getInfos(2);
     },
     getInfos(int) {
-       if (int === 1) {
+      if (int === 1) {
         this.formData.pageNum = 1;
       }
       if (int === 2) {
@@ -502,31 +509,34 @@ export default {
           status: 1,
           pageSize: 10,
           pageNum: 1,
-          publishStatus:1
+          publishStatus: 1,
         };
       }
-      this.$api
-        .inquireCourseListchapter(this.formData)
-        .then((res) => {
-          this.boxtableData = res.rows;
-          this.total = res.total;
-        });
+      this.$api.inquireCourseListchapter(this.formData).then((res) => {
+        this.boxtableData = res.rows;
+        this.total = res.total;
+      });
     },
     search() {
-      this.$api.obtainCoursemodule(this.$route.query.id).then((res) => {
-        this.bfImg = res.data.coverUrl;
-        this.listData = res.data;
-        this.$api
-          .inquireCourseListmodulebusiness(this.$route.query.id)
-          .then((result) => {
-            var arrays = [];
-            result.data.map((item) => {
-              arrays.push(item.businessId + "-" + item.subjectId);
+      this.$api
+        .obtainCoursemodule(this.$route.query.id)
+        .then((res) => {
+          this.bfImg = res.data.coverUrl;
+          this.listData = res.data;
+          this.$api
+            .inquireCourseListmodulebusiness(this.$route.query.id)
+            .then((result) => {
+              var arrays = [];
+              result.data.map((item) => {
+                arrays.push(item.businessId + "-" + item.subjectId);
+              });
+              this.sujectApis = arrays;
+              this.getInfosList();
             });
-            this.sujectApis = arrays;
-            this.getInfosList();
-          });
-      });
+        })
+        .finally(() => {
+          this.$modal.closeLoading();
+        });
     },
     clearImgs() {
       this.listData.coverUrl = "";
@@ -669,7 +679,7 @@ export default {
           });
           if (new Set(arr).size != arr.length) {
             this.$message.warning("排序不允许有重复值");
-            return
+            return;
           }
           this.rulesTableSumbit();
         } else {
@@ -698,15 +708,19 @@ export default {
       this.$api.editCoursemodule(dataInfos).then((res) => {
         this.$message.success("修改成功");
         setTimeout(() => {
-          this.$router.push({
-            path: "moduleManagement",
+          this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
+            this.$router.push({
+              path: "moduleManagement",
+            });
           });
         }, 500);
       });
     },
     backPage() {
-      this.$router.push({
-        path: "moduleManagement",
+      this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
+        this.$router.push({
+          path: "moduleManagement",
+        });
       });
     },
     closeType(index) {
@@ -738,7 +752,7 @@ export default {
         self.listData.coverUrl = res;
       });
     },
-    
+
     handleSizeChange(v) {
       this.formData.pageSize = v;
       this.formData.pageNum = 1;
@@ -769,6 +783,21 @@ export default {
         this.dialogVisible = false;
         return;
       }
+      if (this.tableData.length) {
+        let maxIndex = 0;
+        this.tableData.forEach((item) => {
+          if (item.sort > maxIndex) {
+            maxIndex = item.sort;
+          }
+        });
+        this.activeLists.forEach((item, index) => {
+          item.sort = maxIndex + index + 1;
+        });
+      } else {
+        this.activeLists.forEach((item, index) => {
+          item.sort = index + 1;
+        });
+      }
       this.tableData = this.tableData.concat(this.activeLists);
       this.dialogVisible = false;
       this.$message.success("添加成功");

+ 24 - 6
src/views/resource/videoManagement/moduleManagement/index.vue

@@ -241,12 +241,30 @@ export default {
           path: "moduleManagementAdd",
         });
       } else {
-        this.$router.push({
-          path: "moduleManagementEdit",
-          query: {
-            id: v.moduleId,
-          },
-        });
+        const jump = () => {
+          this.$router.push({
+            path: "moduleManagementEdit",
+            query: {
+              id: v.moduleId,
+            },
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ModuleManagementEdit";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ModuleManagementEdit",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
       }
     },
     handleSizeChange(v) {

+ 1 - 0
src/views/systemManagement/accountManagement/index.vue

@@ -141,6 +141,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"AccountManagement",
   components: { searchBox, tableList, pagination },
   data() {
     return {

+ 1 - 0
src/views/systemManagement/registeredUser/index.vue

@@ -29,6 +29,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"RegisteredUser",
   components: { searchBoxNew, tableList, pagination },
   data() {
     return {

+ 1 - 0
src/views/systemManagement/roleManagement/index.vue

@@ -159,6 +159,7 @@ import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
+  name:"RoleManagement",
   components: { searchBox, tableList, pagination },
   data() {
     return {