Tang před 4 roky
rodič
revize
f154c9825c
40 změnil soubory, kde provedl 2486 přidání a 392 odebrání
  1. 3 0
      src/api/api.js
  2. binární
      src/assets/images/left@2x.png
  3. binární
      src/assets/images/left_slices/left.png
  4. binární
      src/assets/images/left_slices/left@2x.png
  5. binární
      src/assets/images/mZ/1@2x.png
  6. binární
      src/assets/images/mZ/2@2x.png
  7. binární
      src/assets/images/mZ/3@2x.png
  8. binární
      src/assets/images/mZ/4@2x.png
  9. binární
      src/assets/images/mZ/5@2x.png
  10. binární
      src/assets/images/smile@2x.png
  11. binární
      src/assets/images/登录页3_slices/left@2x.png
  12. binární
      src/assets/images/登录页3_slices/smile@2x.png
  13. 5 4
      src/components/questionBank.vue
  14. 62 1
      src/components/searchBoxNew.vue
  15. 126 7
      src/components/tableList.vue
  16. 16 0
      src/newApi/business.js
  17. 1 1
      src/newApi/modules.js
  18. 34 0
      src/newApi/order.js
  19. 0 6
      src/permission.js
  20. 2 2
      src/settings.js
  21. 37 31
      src/views/Marketing/basicParameters/index.vue
  22. 91 3
      src/views/Marketing/basicParameters/resource/businessLevel/index.vue
  23. 2 0
      src/views/Marketing/basicParameters/resource/educationType/index.vue
  24. 0 25
      src/views/Marketing/commodityManageMent/add/index.vue
  25. 660 0
      src/views/Marketing/orderList/add/order/index.vue
  26. 110 0
      src/views/Marketing/orderList/add/orderPrice/index.vue
  27. 338 0
      src/views/Marketing/orderList/index.vue
  28. 244 126
      src/views/login.vue
  29. 215 0
      src/views/loginCopy.vue
  30. 63 17
      src/views/resource/bankManagement/chapterVolumeManagement/index.vue
  31. 6 9
      src/views/resource/bankManagement/knowledgeManagement/index.vue
  32. 125 46
      src/views/resource/bankManagement/testPaperManagement/editPaper/topicEditPaper/index.vue
  33. 63 17
      src/views/resource/bankManagement/testPaperManagement/index.vue
  34. 185 65
      src/views/resource/bankManagement/topicManagement/index.vue
  35. 62 17
      src/views/resource/bankManagement/volumeManagement/index.vue
  36. 1 0
      src/views/resource/videoManagement/chapter/add/index.vue
  37. 3 2
      src/views/resource/videoManagement/courseManagement/basicInfoAdd/index.vue
  38. 30 13
      src/views/resource/videoManagement/courseManagement/index.vue
  39. 1 0
      src/views/resource/videoManagement/festival/add/index.vue
  40. 1 0
      src/views/resource/videoManagement/moduleManagement/add/index.vue

+ 3 - 0
src/api/api.js

@@ -67,6 +67,7 @@ import paperquestion from '../newApi/paperquestion'//题库题目管理
 import department from '../newApi/department'//部门信息管理
 import operationLog from '../newApi/operationLog'//操作日志记录
 import handout from '../newApi/handout'//讲义
+import order from '../newApi/order'//订单
 
 // 导入对应模块------------------------
 export default {
@@ -112,6 +113,8 @@ export default {
     ...department,
     ...operationLog,
     ...handout,
+    ...order,
+
 
     // ...login,
     // ...profession,

binární
src/assets/images/left@2x.png


binární
src/assets/images/left_slices/left.png


binární
src/assets/images/left_slices/left@2x.png


binární
src/assets/images/mZ/1@2x.png


binární
src/assets/images/mZ/2@2x.png


binární
src/assets/images/mZ/3@2x.png


binární
src/assets/images/mZ/4@2x.png


binární
src/assets/images/mZ/5@2x.png


binární
src/assets/images/smile@2x.png


binární
src/assets/images/登录页3_slices/left@2x.png


binární
src/assets/images/登录页3_slices/smile@2x.png


+ 5 - 4
src/components/questionBank.vue

@@ -394,13 +394,13 @@
             />
           </div>
         </div>
-        <div class="marg_play">
+        <!-- <div class="marg_play">
           <span class="spans">是否启用:</span>
           <el-radio-group v-model="dingForm.status">
             <el-radio :disabled="statusPop === 2" :label="1">启用</el-radio>
             <el-radio :disabled="statusPop === 2" :label="0">停用</el-radio>
           </el-radio-group>
-        </div>
+        </div> -->
       </el-col>
       <el-col
         :span="2"
@@ -504,7 +504,7 @@ export default {
         answerQuestionList: [],
         answerQuestion: "",
         content: "",
-        status: "",
+        // status: "",
         analysisContent: "",
       };
     },
@@ -547,6 +547,7 @@ export default {
       if (v === undefined) {
         this.dingForm = {
           optionsList: [],
+          status:1
         };
         this.statusPop = 1;
       } else {
@@ -567,7 +568,7 @@ export default {
         .then(async () => {
           var data = JSON.parse(JSON.stringify(this.dingForm));
           data.parentType = Number(this.queryData.typeId);
-          data.status = -1;
+          // data.status = -1;
           console.log(data);
           this.$message.success("删除成功");
           this.search();

+ 62 - 1
src/components/searchBoxNew.vue

@@ -95,6 +95,35 @@
                 :value="items.id"
               ></el-option>
             </el-select>
+            <!-- 题目类型 -->
+            <el-select
+              v-else-if="item.scope === 'selectBank'"
+              v-model="formData[item.prop]"
+              :placeholder="item.placeholder"
+              :size="size"
+            >
+              <el-option
+                v-for="(items, indexs) in optionsBank"
+                :key="indexs"
+                :label="items.label"
+                :value="items.value"
+              ></el-option>
+            </el-select>
+            <!-- 试卷类型 -->
+            <el-select
+              v-else-if="item.scope === 'paperType'"
+              v-model="formData[item.prop]"
+              :placeholder="item.placeholder"
+              :size="size"
+            >
+              <el-option
+                v-for="(items, indexs) in paperType"
+                :key="indexs"
+                :label="items.label"
+                :value="items.value"
+              ></el-option>
+            </el-select>
+
             <el-select
               v-else-if="item.scope === 'select'"
               v-model="formData[item.prop]"
@@ -197,7 +226,7 @@
 <script>
 import { mapGetters } from "vuex";
 export default {
-  props: ["formList", "topType", "pageSizes", "pageNums", "formData"], //参考文档 component.md
+  props: ["formList", "topType", "formData"], //参考文档 component.md
   data() {
     return {
       lists: [
@@ -222,6 +251,38 @@ export default {
           value: 4,
         },
       ],
+      paperType: [
+        {
+          label: "发布",
+          value: 1,
+        },
+        {
+          label: "未发布",
+          value: 0,
+        },
+      ],
+      optionsBank: [
+        {
+          label: "单选题",
+          value: 1,
+        },
+        {
+          label: "多选题",
+          value: 2,
+        },
+        {
+          label: "判断题",
+          value: 3,
+        },
+        {
+          label: "案例题",
+          value: 4,
+        },
+        {
+          label: "简答题",
+          value: 5,
+        },
+      ], //题目类型
       size: "small", //输入框尺寸类型
       // formData: {
       //   status: "0,1",

+ 126 - 7
src/components/tableList.vue

@@ -81,6 +81,7 @@
       :load="load"
       :cell-style="timeStyle"
       lazy
+      :border="navText.border"
       ref="pagerset"
       v-loading="loading"
       :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
@@ -208,6 +209,31 @@
                 >
               </el-popover>
             </ul>
+            <div v-else-if="item.scope === 'goodsList'" class="ulAuto">
+              <ul>
+                <template v-for="(itm, inds) in scope.row[item.prop]">
+                  <li :key="inds" v-if="inds === 0">
+                    {{ itm.goodsName }}
+                  </li>
+                </template>
+              </ul>
+              <el-popover placement="right" trigger="click">
+                <ul>
+                  <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
+                    {{ inds + 1 }}、
+                    {{ itm.goodsName }}
+                  </li>
+                </ul>
+                <el-button
+                  slot="reference"
+                  style="margin-left: 6px"
+                  type="primary"
+                  v-if="scope.row[item.prop].length > 1"
+                  size="mini"
+                  >更多</el-button
+                >
+              </el-popover>
+            </div>
             <ul v-else-if="item.scope === 'mapTypesMores'" class="ulAuto">
               <template v-for="(itm, inds) in scope.row[item.prop]">
                 <li :key="inds" v-if="inds === 0">
@@ -587,6 +613,12 @@
               @click="editInfo(scope.row)"
               >{{ scope.row[item.prop] }}
             </span>
+            <el-button
+              v-else-if="item.scope === 'aboutTrees'"
+              slot="reference"
+              @click="activesBoxszing(scope.row[item.prop])"
+              >查看</el-button
+            >
             <div
               class="editInfoSty"
               v-else-if="item.scope === 'editInfoHTML'"
@@ -614,13 +646,9 @@
               style="color: #409eff; cursor: pointer"
               >详情</span
             >
-            <span v-else-if="item.scope === 'ptai'"
-              >{{
-                scope.row[item.prop] == 1
-                  ? '微信小程序'
-                  : '未知'
-              }}</span
-            >
+            <span v-else-if="item.scope === 'ptai'">{{
+              scope.row[item.prop] == 1 ? "微信小程序" : "未知"
+            }}</span>
             <span v-else-if="item.scope === 'diffTime'"
               >{{
                 scope.row["sectionType"] === 2
@@ -675,6 +703,30 @@
         <el-button @click="closeBeforefs">关闭</el-button>
       </div>
     </el-dialog>
+    <el-dialog
+      :visible.sync="dialogVisible"
+      width="560px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">课程树形图</div>
+        <div class="rightBoxs">
+          <img src="@/assets/images/Close@2x.png" alt="" @click="closes" />
+        </div>
+      </div>
+      <div>
+        <el-tree
+          :key="Math.random()"
+          :props="props"
+          :load="loadNode"
+          lazy
+        ></el-tree>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="closes">取 消</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -683,6 +735,7 @@ export default {
   props: ["tableSets", "tableData", "navText", "rowKey", "loading"],
   data: function () {
     return {
+      dialogVisible: false,
       tableSet: this.tableSets,
       allCheckData: [], //表格多选
       checkAll: true,
@@ -691,6 +744,15 @@ export default {
       isIndeterminate: false,
       videoUrls: "",
       diaBox: false,
+      props: {
+        label(data, node) {
+          return data.menuName || data.name;
+        },
+        isLeaf(data, node) {
+          return data.hasChildren ? false : true;
+        },
+      },
+      treeDatas: [],
     };
   },
   computed: {
@@ -724,6 +786,63 @@ export default {
   },
   mounted() {},
   methods: {
+    //树形图关闭
+    closes() {
+      this.dialogVisible = false;
+    },
+    activesBoxszing(ids) {
+      this.$api.inquireCoursemenuListS({ courseId: ids }).then((res) => {
+        res.rows.forEach((item) => {
+          item.TypeId = item.type + "-" + item.menuId;
+        });
+        this.treeDatas = res.rows;
+        this.dialogVisible = true;
+      });
+    },
+    loadNode(node, resolve) {
+      if (node.level === 0) {
+        this.treeDatas.forEach((item) => {
+          if (item.type === 1) {
+            item.hasChildren = true;
+          }
+          if (item.type === 2) {
+            item.hasChildren = true;
+          }
+          if (item.type === 3) {
+            item.hasChildren = false;
+          }
+        });
+        return resolve(this.treeDatas);
+      } else {
+        if (node.data.type === 1) {
+          this.$api
+            .inquireCourseListmodulechapter(node.data.courseId)
+            .then((res) => {
+              res.data.forEach((item) => {
+                item.TypeId = 2 + "-" + item.chapterId;
+                item.hasChildren = true;
+                item.menuId = item.chapterId;
+                item.type = 2;
+              });
+              return resolve(res.data);
+            });
+        }
+        if (node.data.type === 2) {
+          this.$api
+            .inquireCoursechaptersectionlist(node.data.menuId)
+            .then((res) => {
+              res.data.forEach((item) => {
+                item.TypeId = 3 + "-" + item.sectionId;
+                item.type = 3;
+              });
+              return resolve(res.data);
+            });
+        }
+        if (node.data.type === 3) {
+          return resolve([]);
+        }
+      }
+    },
     timeStyle(column) {
       if (column.columnIndex === 0 && this.navText.firstColLeft) {
         return "text-align:left!important;  padding-left: 40px;";

+ 16 - 0
src/newApi/business.js

@@ -31,4 +31,20 @@ export default {
             method: 'get',
         })
     },
+    //查询订单采集信息模板列表
+    orderinputtemplatelist(data) {
+        return request({
+            url: '/order/input/template/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //批量更改业务层次得模板
+    editModelCourseBusiness(data) {
+        return request({
+            url: '/course/business/editModel',
+            method: 'post',
+            data
+        })
+    },
 }

+ 1 - 1
src/newApi/modules.js

@@ -31,7 +31,7 @@ export default {
             method: 'get',
         })
     },
-    //查询课程模块列表
+    //查询模块与章关系列表
     inquireCourseListmodulechapter(data) {
         return request({
             url: '/course/module/chapter/allList/' + data,

+ 34 - 0
src/newApi/order.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //新增业务员订单
+    appOrder(data) {
+        return request({
+            url: '/order',
+            method: 'post',
+            data
+        })
+    },
+    //修改订单
+    editOrder(data) {
+        return request({
+            url: '/order/edit',
+            method: 'post',
+            data
+        })
+    },
+    //查询订单列表
+    inquireOrderList(data) {
+        return request({
+            url: '/order/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取订单详细信息
+    obtainOrder(data) {
+        return request({
+            url: `/order/` + data,
+            method: 'get',
+        })
+    },
+}

+ 0 - 6
src/permission.js

@@ -13,16 +13,11 @@ const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
 router.beforeEach((to, from, next) => {
   NProgress.start()
   if (methods.getQueryVariable('TenantId') && !sessionStorage.TenantId) {
-    console.log(11)
     sessionStorage.TenantId = methods.getQueryVariable('TenantId')
   }
   if (methods.getQueryVariable('TenantId') && sessionStorage.TenantId == undefined) {
-    console.log(12)
     sessionStorage.TenantId = methods.getQueryVariable('TenantId')
   }
-  if (!methods.getQueryVariable('TenantId') && !sessionStorage.TenantId) {
-    Message.error("未携带TenantId")
-  }
   if (getToken()) {
     to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
     /* has token*/
@@ -60,7 +55,6 @@ router.beforeEach((to, from, next) => {
       next()
     } else {
       if (sessionStorage.TenantId == undefined) {
-        console.log(1)
         next(`/login`) // 否则全部重定向到登录页
       } else {
         next(`/login?redirect=${to.fullPath}&TenantId=${sessionStorage.TenantId}`) // 否则全部重定向到登录页

+ 2 - 2
src/settings.js

@@ -12,7 +12,7 @@ module.exports = {
   /**
    * 是否显示顶部导航
    */
-  topNav: false,
+  topNav: true,
 
   /**
    * 是否显示 tagsView
@@ -22,7 +22,7 @@ module.exports = {
   /**
    * 是否固定头部
    */
-  fixedHeader: false,
+  fixedHeader: true,
 
   /**
    * 是否显示logo

+ 37 - 31
src/views/Marketing/basicParameters/index.vue

@@ -9,35 +9,41 @@
     <div v-if="status === 1">
       <div class="infoBox">
         <div class="he">订单</div>
-        <el-button
-          style="margin: 10px"
-          v-for="(item, index) in list1"
-          :key="index"
-        @click="jumpPage(item)"
-          >{{ item.title }}</el-button
-        >
+        <div>
+          <el-button
+            style="margin: 10px; display: block"
+            v-for="(item, index) in list1"
+            :key="index"
+            @click="jumpPage(item)"
+            >{{ item.title }}</el-button
+          >
+        </div>
       </div>
     </div>
-    <div v-if="status === 2">
-        <div class="infoBox">
+    <div v-if="status === 2" style="display: flex">
+      <div class="infoBox">
         <div class="he">课程</div>
-        <el-button
-          style="margin: 10px"
-          v-for="(item, index) in list2"
-          :key="index"
-          @click="jumpPage(item)"
-          >{{ item.title }}</el-button
-        >
+        <div>
+          <el-button
+            style="margin: 10px; display: block"
+            v-for="(item, index) in list2"
+            :key="index"
+            @click="jumpPage(item)"
+            >{{ item.title }}</el-button
+          >
+        </div>
       </div>
-      <div class="infoBox">
+      <div class="infoBox" style="margin-left: 12px;height:100%;">
         <div class="he">题库</div>
-        <el-button
-          style="margin: 10px"
-          v-for="(item, index) in list3"
-          :key="index"
-          @click="jumpPage(item)"
-          >{{ item.title }}</el-button
-        >
+        <div>
+          <el-button
+            style="margin: 10px; display: block"
+            v-for="(item, index) in list3"
+            :key="index"
+            @click="jumpPage(item)"
+            >{{ item.title }}</el-button
+          >
+        </div>
       </div>
     </div>
   </div>
@@ -137,12 +143,12 @@ export default {
     };
   },
   methods: {
-      jumpPage(item){
-          console.log(item.url)
-          this.$router.push({
-              path: item.url
-          })
-      },
+    jumpPage(item) {
+      console.log(item.url);
+      this.$router.push({
+        path: item.url,
+      });
+    },
   },
 };
 </script>
@@ -151,7 +157,7 @@ export default {
 .infoBox {
   border-radius: 8px;
   border: 1px solid #a4a4a4;
-  width: 300px;
+  width: 200px;
   overflow: hidden;
   margin: 20px 0px;
   .he {

+ 91 - 3
src/views/Marketing/basicParameters/resource/businessLevel/index.vue

@@ -1,14 +1,19 @@
 <template>
   <div id="businessLevel">
     <table-list
+      ref="tablieListmest"
       :tableSets="tableSet"
       :tableData="tableData"
       :navText="navText"
       @addClick="addClick"
       :loading="loading"
       @editInfo="editInfo"
+      @emitData="openPZDowm"
     >
       <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="openPZDowm(props.scope.row, 1)"
+          >配置模板</el-button
+        >
         <el-button type="text" @click="addClick(props.scope.row, 0)"
           >修改</el-button
         >
@@ -124,6 +129,33 @@
         >
       </span>
     </el-dialog>
+    <el-dialog
+      :visible.sync="dialogVisiblePZDown"
+      width="560px"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">配置下单填选模板</div>
+        <div class="rightBoxs">
+          <img src="@/assets/images/Close@2x.png" alt="" @click="closePZ" />
+        </div>
+      </div>
+      <div>
+        <el-radio-group v-model="radioActives">
+          <el-radio
+            v-for="(item, index) in plateList"
+            :key="index"
+            :label="item.id"
+            >{{ item.name }}</el-radio
+          >
+        </el-radio-group>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="closePZ">取 消</el-button>
+        <el-button type="primary" @click="submitPZ">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -140,12 +172,12 @@ export default {
         title: "业务层次",
         index: 0,
         ch: "条",
-        num: false,
+        num: true,
         choice: true,
         addHide: false,
         backFatherBtn: {
-          status: false,
-          title: "未定义",
+          status: true,
+          title: "配置下单填选模板",
         },
       },
       // 表单
@@ -229,8 +261,12 @@ export default {
       listData: {},
       statusPop: -1,
       dialogVisible: false,
+      dialogVisiblePZDown: false,
       optionsSF: [], //教育类型
       optionsXM: [], //项目类型
+      plateList: [], //模板列表
+      activeLists: [], //选中列表
+      radioActives: "",
       //表单验证
       rules: {
         educationId: [
@@ -260,8 +296,60 @@ export default {
   },
   mounted() {
     this.search();
+    this.initPlate();
   },
   methods: {
+    initPlate() {
+      this.$api.orderinputtemplatelist({ status: 1 }).then((res) => {
+        this.plateList = res.rows;
+      });
+    },
+    openPZDowm(item, int) {
+      if (int === 1) {
+        this.activeLists = [item];
+        if(item.templateStatus){
+          this.radioActives = item.templateStatus
+        }else{
+          this.radioActives = ''
+        }
+        this.dialogVisiblePZDown = true;
+      } else {
+        if (item.length) {
+          this.activeLists = item;
+          this.dialogVisiblePZDown = true;
+        } else {
+          this.$message.warning("请勾选需要配置下单填选模板的业务层级");
+        }
+      }
+    },
+    closePZ() {
+      this.dialogVisiblePZDown = false;
+    },
+    submitPZ() {
+      if (!this.radioActives) {
+        this.$message.warning("请选择模板");
+      } else {
+        this.submitPZs();
+      }
+    },
+    submitPZs() {
+      var ast = [];
+      this.activeLists.map((item) => {
+        ast.push(item.id);
+      });
+      var data = {
+        businessIds: ast,
+        templateStatus: this.radioActives,
+      };
+      this.$api.editModelCourseBusiness(data).then((res) => {
+        this.$message.success("配置修改成功");
+        this.dialogVisiblePZDown = false;
+        this.activeLists = [];
+        this.radioActives = "";
+        this.$refs.tablieListmest.allCheckData = [];
+        this.search();
+      });
+    },
     changeXMList(option) {
       if (!option.educationId) {
         this.optionsXM.map((item, index) => {

+ 2 - 0
src/views/Marketing/basicParameters/resource/educationType/index.vue

@@ -288,6 +288,7 @@ export default {
         this.statusPop = 1;
         this.listData = {
           status: 1,
+          tireStatus:"1,2"
         };
       } else {
         this.statusPop = int;
@@ -463,6 +464,7 @@ export default {
   }
 }
 .againSet {
+  margin-left: 10px;
   color: blueviolet;
   cursor: pointer;
 }

+ 0 - 25
src/views/Marketing/commodityManageMent/add/index.vue

@@ -1628,37 +1628,12 @@ export default {
         return;
       }
       this.tableData = this.tableData.concat(this.activeLists);
-
-      // if (this.$refs.poppleSet.$refs.trees) {
-      //   console.log(this.$refs.poppleSet.$refs.trees);
-      //   this.activeLists.map((item) => {
-      //     item.TypeId = "0" + "-" + item.courseId;
-      //     item.disabled = true;
-      //     item.hasChildren = true;
-      //   });
-      //   for (let i = 0; i < this.activeLists.length; i++) {
-      //     this.$refs.poppleSet.$refs.trees.insertAfter(
-      //       this.activeLists[i],
-      //       this.$refs.poppleSet.$refs.trees.root.childNodes[
-      //         this.$refs.poppleSet.$refs.trees.root.childNodes.length - 1
-      //       ]
-      //     );
-      //   }
-      // }
       this.dialogVisibleTableBoxs = false;
       this.$message.success("添加成功");
       this.activeLists = [];
     },
     del(item, index) {
       this.tableData.splice(index, 1);
-      // if (this.$refs.poppleSet.$refs.trees) {
-      //   this.$refs.poppleSet.$refs.trees.remove(
-      //     this.$refs.poppleSet.$refs.trees.root.childNodes[index]
-      //   );
-      // }
-      // this.auditionList = this.auditionList.filter((items) => {
-      //   return items.courseId !== item.courseId;
-      // });
       this.$message.success("删除成功");
     },
     selectAll(value) {

+ 660 - 0
src/views/Marketing/orderList/add/order/index.vue

@@ -0,0 +1,660 @@
+<template>
+  <div id="addOrder">
+    <h5>基础信息</h5>
+    <div class="boxsSTTs">
+      <h5 class="fengs">业务信息</h5>
+      <el-row :gutter="20">
+        <el-form label-position="right" label-width="120px" :model="listData">
+          <el-col :span="12">
+            <el-form-item label="业务归属人" prop="businessOwner">
+              <el-input v-model="listData.businessOwner"></el-input>
+            </el-form-item>
+            <el-form-item label="渠道来源" prop="source">
+              <el-select v-model="listData.source" placeholder="请选择渠道来源">
+                <el-option
+                  v-for="(item, index) in paysource"
+                  :key="index"
+                  :label="item.sourceName"
+                  :value="item.sourceName"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="归属部门" prop="dept">
+              <el-input v-model="listData.dept"></el-input>
+            </el-form-item>
+            <el-form-item label="到访校区" prop="school">
+              <el-select v-model="listData.school" placeholder="请选择到访校区">
+                <el-option
+                  v-for="(item, index) in payvisit"
+                  :key="index"
+                  :label="item.visitName"
+                  :value="item.visitName"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <h5 class="fengs">学员信息</h5>
+      <el-row :gutter="20">
+        <el-form
+          ref="listData"
+          label-position="right"
+          label-width="120px"
+          :model="listData"
+          :rules="rulesItem"
+        >
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="telphone">
+              <el-input
+                :disabled="disabTel"
+                v-model="listData.telphone"
+                @change="getUserInfos(listData.telphone)"
+              >
+                <el-button @click="clearForm" slot="append">清除</el-button>
+              </el-input>
+            </el-form-item>
+            <el-form-item label="身份证号码" prop="idCard">
+              <el-input disabled v-model="listData.idCard"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="realname">
+              <el-input disabled v-model="listData.realname"></el-input>
+            </el-form-item>
+            <el-form-item label="所在公司" prop="company">
+              <el-input v-model="listData.company"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="收件地址" prop="address">
+              <el-input
+                type="textarea"
+                :rows="2"
+                v-model="listData.address"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+    </div>
+    <h5>
+      商品列表<el-button
+        style="margin-left: 15px"
+        size="small"
+        @click="editAddBoxs"
+        >添加</el-button
+      >
+    </h5>
+    <el-table
+      :data="tableData"
+      border
+      :header-cell-style="{
+        'background-color': '#eee',
+        padding: '8px',
+        color: '#333',
+      }"
+      :default-sort="{ prop: 'sort', order: 'ascending' }"
+    >
+      <template v-for="(item, index) in tableSetTSB">
+        <el-table-column
+          :width="item.width"
+          :key="index"
+          :label="item.label"
+          align="center"
+          :show-overflow-tooltip="true"
+          header-align="center"
+          :sortable="item.prop === 'sort'"
+          sort-by="sort"
+          :prop="item.prop"
+        >
+          <template slot-scope="scope">
+            <span v-if="item.scope === 'ywcs'">
+              {{ zuHe(scope.row) }}
+            </span>
+            <div v-else-if="item.scope === 'activeType'" class="_sty">
+              <el-select
+                class="mar_b10"
+                v-if="getDs(scope.row['templateType'], '班级')"
+                v-model="scope.row['gradeJson']"
+                placeholder="请选择班级"
+              >
+                <el-option
+                  v-for="items in options"
+                  :key="items.value"
+                  :label="items.label"
+                  :value="items.value"
+                >
+                </el-option>
+              </el-select>
+              <el-select
+                @change="changeKQ(scope.$index, $event)"
+                class="mar_b10"
+                v-if="getDs(scope.row['templateType'], '考期')"
+                v-model="scope.row['examDateJsonId']"
+                placeholder="请选择考期"
+              >
+                <el-option
+                  v-for="items in courseExamine"
+                  :key="items.id"
+                  :label="items.examineName"
+                  :value="items.id"
+                >
+                </el-option>
+              </el-select>
+              <div
+                class="mar_b10"
+                v-if="getDs(scope.row['templateType'], '报考地区')"
+              >
+                <el-select
+                  style="width: 50%"
+                  v-model="scope.row.areaId"
+                  placeholder="省"
+                  @change="changeArea(scope.$index, $event)"
+                >
+                  <el-option
+                    v-for="items in areas"
+                    :key="items.areaId"
+                    :label="items.areaName"
+                    :value="items.areaId"
+                  >
+                  </el-option>
+                </el-select>
+                <el-select
+                  v-if="scope.row.goodsInputData.applyAreasJson.areaId"
+                  style="width: 50%"
+                  v-model="scope.row.cityId"
+                  placeholder="地区"
+                  @change="changeCity(scope.$index, $event)"
+                >
+                  <el-option
+                    v-for="items in cityListCopy"
+                    :key="items.areaId"
+                    :label="items.areaName"
+                    :value="items.areaId"
+                  >
+                  </el-option>
+                </el-select>
+              </div>
+            </div>
+            <span v-else>{{ scope.row[item.prop] }}</span></template
+          >
+        </el-table-column></template
+      >
+      <el-table-column label="操作" align="center" fixed="right" width="100px">
+        <template slot-scope="scope">
+          <el-button type="text" @click="del(scope.row, scope.$index)"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <div style="font-size: 14px; margin: 10px 0px">
+      收费方式:<el-radio-group v-model="listData.chargingType">
+        <el-radio :label="1">即刻收费</el-radio>
+        <el-radio :label="2">稍后收费</el-radio>
+      </el-radio-group>
+    </div>
+    <div style="text-align: center">
+      <el-button @click="clearBtns">取消</el-button>
+      <el-button @click="submitForm('listData')">确定</el-button>
+    </div>
+    <el-dialog
+      title="添加商品"
+      :visible.sync="dialogVisibleTableBoxs"
+      width="900px"
+    >
+      <el-table
+        ref="multipleTable"
+        :data="boxtableData"
+        border
+        @select-all="selectAll"
+        @select="select"
+        :row-key="getRowKeys"
+        :header-cell-style="{
+          'background-color': '#eee',
+          padding: '8px',
+          color: '#333',
+        }"
+      >
+        <el-table-column
+          align="center"
+          type="selection"
+          width="55"
+          header-align="center"
+          :selectable="checkboxT"
+          :reserve-selection="true"
+        >
+        </el-table-column>
+        <template v-for="(item, index) in tableSetTSBBOX">
+          <el-table-column
+            v-if="item.scope !== 'inputs'"
+            :width="item.width"
+            :key="index"
+            :label="item.label"
+            align="center"
+            :show-overflow-tooltip="true"
+            header-align="center"
+          >
+            <template slot-scope="scope">
+              <span v-if="item.scope === 'status'">
+                {{
+                  scope.row[item.prop] === 1
+                    ? "有效"
+                    : scope.row[item.prop] === 0
+                    ? "无效"
+                    : "未知"
+                }}
+              </span>
+              <span v-else-if="item.scope === 'goodsType'">
+                {{ getSwite(scope.row[item.prop]) }}
+              </span>
+              <span v-else-if="item.scope === 'ywcs'">
+                {{ zuHe(scope.row) }}
+              </span>
+              <span v-else>{{ scope.row[item.prop] }}</span></template
+            >
+          </el-table-column></template
+        >
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisibleTableBoxs = false">取 消</el-button>
+        <el-button
+          type="primary"
+          :disabled="activeLists.length === 0"
+          @click="submitTab"
+          >确 定</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+export default {
+  data() {
+    return {
+      listData: { realname: "", idCard: "", chargingType: 1 },
+      disabTel: false,
+      rulesItem: {
+        telphone: [
+          {
+            required: true,
+            message: "请输入手机号码",
+            trigger: "blur",
+          },
+          {
+            validator(rule, value, callback) {
+              var reg =
+                /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/;
+              if (reg.test(value)) {
+                callback();
+              } else {
+                callback(new Error("请输入正确手机号码"));
+              }
+            },
+            trigger: "blur",
+          },
+        ],
+      },
+      tableData: [],
+      tableSetTSB: [
+        {
+          label: "商品编码",
+          prop: "code",
+        },
+        {
+          label: "商品业务层级",
+          scope: "ywcs",
+        },
+        {
+          label: "商品名称",
+          prop: "goodsName",
+        },
+        {
+          label: "请选择",
+          scope: "activeType",
+          width: "280",
+        },
+        {
+          label: "商品标准价格",
+          prop: "standPrice",
+        },
+      ],
+      dialogVisibleTableBoxs: false, //新增商品列表弹窗状态
+      boxtableData: [], //商品列表数据
+      tableSetTSBBOX: [
+        {
+          label: "商品编码",
+          prop: "code",
+        },
+        {
+          label: "年份",
+          prop: "year",
+        },
+        {
+          label: "商品名称",
+          prop: "goodsName",
+        },
+        {
+          label: "业务层次",
+          scope: "ywcs",
+        },
+        {
+          label: "商品类型",
+          prop: "goodsType",
+          scope: "goodsType",
+        },
+        {
+          label: "有效状态",
+          prop: "status",
+          scope: "status",
+        },
+        {
+          label: "商品标价",
+          prop: "standPrice",
+        },
+      ],
+      disCheckList: [], //商品列表禁选数据
+      activeLists: [],
+      options: [],
+      modelList: [],
+      cityListCopy: [],
+      cityList: [],
+    };
+  },
+  computed: {
+    ...mapGetters(["paysource", "payvisit", "courseExamine", "areas"]),
+  },
+  mounted() {
+    this.$api.inquireapplyCityList({ status: 1, areaType: 2 }).then((res) => {
+      this.cityList = res.rows;
+    });
+    this.$api.orderinputtemplatelist({ status: 1 }).then((res) => {
+      this.modelList = res.rows;
+    });
+  },
+  methods: {
+    //   手机号失去焦点查询
+    getUserInfos(tel) {
+      var self = this;
+      var phoneTest =
+        /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/;
+      if (phoneTest.test(tel)) {
+        this.$api.inquireappuserlists({ telphone: tel }).then((res) => {
+          if (res.total) {
+            self.listData.realname = res.rows[0].realname;
+            self.listData.idCard = res.rows[0].idCard;
+            self.disabTel = true;
+            self.listData.userId = res.rows[0].userId;
+          } else {
+            self.$message.warning("当前手机号用户不存在");
+          }
+        });
+      }
+    },
+    // 清除手机号
+    clearForm() {
+      this.listData.telphone = "";
+      this.listData.realname = "";
+      this.listData.idCard = "";
+      this.listData.userId = "";
+      this.disabTel = false;
+    },
+    //删除商品列表
+    del(item, index) {
+      this.tableData.splice(index, 1);
+      this.$message.success("删除成功");
+    },
+    //添加商品列表
+    editAddBoxs() {
+      var self = this;
+      this.$api
+        .inquireGoods({
+          pageNum: 1,
+          pageSize: 10,
+        })
+        .then((res) => {
+          var aList = [];
+          this.tableData.map((item) => {
+            aList.push(item.goodsId);
+          });
+          this.disCheckList = aList;
+          this.boxtableData = res.rows;
+          this.dialogVisibleTableBoxs = true;
+          this.$nextTick(function () {
+            self.$refs.multipleTable.clearSelection();
+          });
+        });
+    },
+    submitTab() {
+      if (this.activeLists.length === 0) {
+        this.dialogVisibleTableBoxs = false;
+        return;
+      }
+      this.activeLists.map((item) => {
+        item.goodsInputData = {};
+        if (item.templateType === "class") {
+          item.goodsInputData.gradeJson = {};
+        }
+        if (item.templateType === "apply") {
+          item.goodsInputData.applyAreasJson = {};
+          item.goodsInputData.examDateJson = {};
+        }
+      });
+      this.tableData = this.tableData.concat(this.activeLists);
+      this.dialogVisibleTableBoxs = false;
+      this.$message.success("添加成功");
+      this.activeLists = [];
+    },
+    selectAll(value) {
+      this.activeLists = value;
+    },
+    select(value) {
+      this.activeLists = value;
+    },
+    checkboxT(row, index) {
+      if (this.disCheckList.indexOf(row.goodsId) !== -1) {
+        return false;
+      } else {
+        return true;
+      }
+    },
+    getRowKeys(row) {
+      return row.goodsId;
+    },
+    //类型转换
+    getSwite(info) {
+      var ast = "";
+      switch (info) {
+        case 1:
+          ast = "视频";
+          break;
+        case 2:
+          ast = "题库";
+          break;
+        case 3:
+          ast = "面授";
+          break;
+        case 4:
+          ast = "服务";
+          break;
+        case 5:
+          ast = "组合";
+          break;
+
+        default:
+          break;
+      }
+      return ast;
+    },
+    // 业务层次组合
+    zuHe(item) {
+      var ast = [];
+      if (item.educationName) {
+        ast.push(item.educationName);
+      }
+      if (item.businessName) {
+        ast.push(item.businessName);
+      }
+      if (item.schoolName) {
+        ast.push(item.schoolName);
+      }
+      if (item.categoryName) {
+        ast.push(item.categoryName);
+      }
+      return ast.join(" — ");
+    },
+    getDs(tys, names) {
+      for (let i = 0; i < this.modelList.length; i++) {
+        if (this.modelList[i].type === tys) {
+          return this.modelList[i].name.indexOf(names) != -1;
+        }
+      }
+    },
+    //确认提交
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          if (!this.listData.idCard) {
+            this.$message.error("请输入有效的用户手机号码");
+            return;
+          }
+          this.submit();
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    submit() {
+      var data = {};
+      data.orderBusiness = {
+        businessOwner: this.listData.businessOwner,
+        dept: this.listData.dept,
+        school: this.listData.school,
+        source: this.listData.source,
+      };
+      data.orderStudent = {
+        company: this.listData.company,
+        address: this.listData.address,
+      };
+      data.goodsRealPrice = this.listData.goodsPrice;
+      data.userId = this.listData.userId;
+      data.chargingType = this.listData.chargingType;
+      var ast = [];
+      this.tableData.map((item) => {
+        ast.push({
+          goodsPrice: item.standPrice,
+          goodsId: item.goodsId,
+          goodsInputData: item.goodsInputData,
+        });
+      });
+      ast.map((item) => {
+        if (item.goodsInputData.applyAreasJson) {
+          item.goodsInputData.applyAreasJson = JSON.stringify(
+            item.goodsInputData.applyAreasJson
+          );
+        }
+        if (item.goodsInputData.examDateJson) {
+          item.goodsInputData.examDateJson = JSON.stringify(
+            item.goodsInputData.examDateJson
+          );
+        }
+        if (item.goodsInputData.gradeJson) {
+          item.goodsInputData.gradeJson = JSON.stringify(
+            item.goodsInputData.gradeJson
+          );
+        }
+      });
+      data.goodsList = ast;
+      this.$api.appOrder(data).then((res) => {
+        this.$message.success("提交成功");
+        if (data.chargingType == 1) {
+          this.$router.push({
+            path: "orderPrice",
+            query: {
+              id: res.data.oderId,
+            },
+          });
+        }
+        if (data.chargingType == 2) {
+          this.$router.go(-1);
+        }
+      });
+      console.log(data);
+    },
+    changeKQ(index, int) {
+      this.courseExamine.map((item) => {
+        if (item.id === int) {
+          this.tableData[index].goodsInputData.examDateJson = item;
+        }
+      });
+    },
+    changeArea(index, int) {
+      var opst = [];
+      this.cityList.map((item) => {
+        if (item.parentId == int) {
+          opst.push(item);
+        }
+      });
+      this.cityListCopy = opst;
+      this.areas.map((item) => {
+        if (item.areaId === int) {
+          this.tableData[index].goodsInputData.applyAreasJson.areaName =
+            item.areaName;
+          this.tableData[index].goodsInputData.applyAreasJson.areaId =
+            item.areaId;
+          if (this.tableData[index].cityId) {
+            this.tableData[index].cityId = "";
+          }
+          this.tableData[index].goodsInputData.applyAreasJson.cityName = "";
+          this.tableData[index].goodsInputData.applyAreasJson.cityId = "";
+        }
+      });
+    },
+    changeCity(index, int) {
+      this.cityList.map((item) => {
+        if (item.areaId === int) {
+          this.tableData[index].goodsInputData.applyAreasJson.cityName =
+            item.areaName;
+          this.tableData[index].goodsInputData.applyAreasJson.cityId =
+            item.areaId;
+        }
+      });
+    },
+    //取消
+    clearBtns() {
+      this.$router.go(-1);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.boxsSTTs {
+  margin: 10px 0px;
+  border: 1px solid #a4a4a4;
+  border-top: 2px solid rgb(179, 204, 255);
+  padding: 20px 40px;
+}
+.fengs {
+  border-bottom: 1px dashed #a4a4a4;
+  color: #a4a4a4;
+  padding: 4px 0px;
+  margin-bottom: 20px;
+}
+._sty {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+.mar_b10 {
+  margin-bottom: 6px;
+}
+</style>

+ 110 - 0
src/views/Marketing/orderList/add/orderPrice/index.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="orderPrice">
+    <h5>计费单收费</h5>
+    <div class="boxsSTTs">
+      <h5 class="fengs">付款人</h5>
+      <el-row :gutter="20">
+        <el-form
+          label-position="right"
+          label-width="120px"
+          :model="listData"
+          ref="listData"
+          :rules="rulesItem"
+        >
+          <el-col :span="12">
+            <el-form-item label="付款人" prop="businessOwner">
+              <el-input v-model="listData.businessOwner"></el-input>
+            </el-form-item>
+            <el-form-item label="付款方式" prop="source">
+              <el-select v-model="listData.source" placeholder="请选择付款方式">
+                <el-option
+                  v-for="(item, index) in paysource"
+                  :key="index"
+                  :label="item.sourceName"
+                  :value="item.sourceName"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="付款人手机号码" prop="telphone">
+              <el-input v-model="listData.telphone"></el-input>
+            </el-form-item>
+            <el-form-item label="付款账号" prop="dept">
+              <el-input v-model="listData.dept"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      listData: {},
+      paysource:[],
+      rulesItem: {
+        telphone: [
+          {
+            required: true,
+            message: "请输入手机号码",
+            trigger: "blur",
+          },
+          {
+            validator(rule, value, callback) {
+              var reg =
+                /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/;
+              if (reg.test(value)) {
+                callback();
+              } else {
+                callback(new Error("请输入正确手机号码"));
+              }
+            },
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  methods: {
+    submit() {
+      this.$api.appOrder(data).then((res) => {
+        this.$message.success("提交成功");
+        this.$router.go(-1);
+      });
+      console.log(data);
+    },
+    //取消
+    clearBtns() {
+      this.$router.go(-1);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.boxsSTTs {
+  margin: 10px 0px;
+  border: 1px solid #a4a4a4;
+  border-top: 2px solid rgb(179, 204, 255);
+  padding: 20px 40px;
+}
+.fengs {
+  border-bottom: 1px dashed #a4a4a4;
+  color: #a4a4a4;
+  padding: 4px 0px;
+  margin-bottom: 20px;
+}
+._sty {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+.mar_b10 {
+  margin-bottom: 6px;
+}
+</style>

+ 338 - 0
src/views/Marketing/orderList/index.vue

@@ -0,0 +1,338 @@
+<template>
+  <div id="orderList">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      @addClick="addClick"
+      :loading="loading"
+      @editInfo="editInfo"
+    >
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="addClick(props.scope.row, 0)"
+          >修改</el-button
+        >
+        <el-button type="text" @click="del(props.scope.row)">删除</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
+      @handleSizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+    />
+  </div>
+</template>
+
+<script>
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  components: { searchBoxNew, tableList, pagination },
+  data() {
+    return {
+      loading: false, //当前表单加载是否加载动画
+      navText: {
+        title: "订单列表",
+        index: 0,
+        ch: "条",
+        num: false,
+        choice: true,
+        addHide: false,
+        backFatherBtn: {
+          status: false,
+          title: "未定义",
+        },
+      },
+      //搜索
+      formList: [
+        {
+          prop: "educationId",
+          placeholder: "教育类型",
+          scope: "educationType",
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+        }
+      ],
+      formData: {
+        status: "0,1",
+        pageSize: 10,
+        pageNum: 1,
+      },
+      // 表单
+      tableSet: [
+        // {
+        //   label: "订单时间",
+        //   prop: "code",
+        //   hidden: true,
+        // },
+        {
+          label: "订单编码",
+          prop: "oderSn",
+          hidden: true,
+        },
+        // {
+        //   label: "手机号码",
+        //   prop: "name",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "学员姓名",
+        //   prop: "businessList",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "学员身份证",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "商品名称",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "商品业务层级",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "商品年份",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "商品标准价格",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "使用优惠劵",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        {
+          label: "商品成交价",
+          prop: "orderPrice",
+          hidden: true,
+        },
+        {
+          label: "支付状态",
+          prop: "orderStatus",
+          hidden: true,
+        },
+        // {
+        //   label: "已收金额",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "未收金额",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "订单来源",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "订单状态",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+        // {
+        //   label: "退款状态",
+        //   prop: "publishStatus",
+        //   hidden: true,
+        // },
+      ],
+      tableData: [], //表单数据
+      total: 0, //一共多少条
+    };
+  },
+  mounted() {
+    this.search();
+  },
+  methods: {
+    editInfo(v) {
+      this.addClick(v, 0);
+    },
+    search(int) {
+      this.loading = true;
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          status: "0,1",
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      this.$api.inquireOrderList(this.formData).then((res) => {
+        this.tableData = res.rows;
+        this.total = res.total;
+        this.navText.index = res.total;
+      });
+      this.loading = false;
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+        .then(() => {
+          var data = {
+            chapterExamId: v.chapterExamId,
+            status: -1,
+          };
+          this.$api.editbankchapter(data).then((res) => {
+            this.$message.success("删除成功");
+            this.search();
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    addClick(v, int) {
+      if (v === undefined) {
+        this.$router.push({
+          path: "addOrder",
+        });
+      } else {
+        this.$router.push({
+          path: "chapterVolumeManagementEdit",
+          query: {
+            id: v.chapterExamId,
+          },
+        });
+      }
+    },
+    handleSizeChange(v) {
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
+      this.search();
+    },
+    handleCurrentChange(v) {
+      this.formData.pageNum = v;
+      this.search();
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-button {
+  border-radius: 8px;
+}
+/deep/.el-dialog {
+  border-radius: 8px;
+  .el-dialog__header {
+    padding: 0;
+    .hearders {
+      height: 40px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 18px 0px 20px;
+      border-bottom: 1px solid #e2e2e2;
+      .leftTitle {
+        font-size: 14px;
+        font-weight: bold;
+        color: #2f4378;
+      }
+      .rightBoxs {
+        display: flex;
+        align-items: center;
+        img {
+          width: 14px;
+          height: 14px;
+          margin-left: 13px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+  .el-dialog__footer {
+    padding: 0;
+    .dialog-footer {
+      padding: 0px 40px;
+      height: 70px;
+      border-top: 1px solid #e2e2e2;
+      display: flex;
+      align-items: center;
+      justify-content: flex-end;
+    }
+  }
+}
+.imgBox {
+  width: 100%;
+  // height: 210px;
+  border: 1px solid #e2e2e2;
+  border-radius: 8px;
+  padding: 8px 8px 3px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  .imgLabel {
+    flex: 1;
+    width: 100%;
+    border: 1px dotted #e2e2e2;
+    color: #999;
+    font-size: 14px;
+    cursor: pointer;
+    border-radius: 8px;
+    .msPhoto {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      max-width: 100%;
+      max-height: 270px;
+      img {
+        max-width: 100%;
+        max-height: 270px;
+      }
+    }
+    .imgbbx {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      width: 100%;
+      height: 100%;
+      i {
+        font-weight: bold;
+        margin: 14px 0;
+        font-size: 24px;
+      }
+    }
+  }
+  p {
+    margin: 5px 0px;
+  }
+}
+</style>
+

+ 244 - 126
src/views/login.vue

@@ -1,57 +1,86 @@
 <template>
   <div class="login">
-    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">中正高校端后台管理系统</h3>
-      <el-form-item prop="username">
-        <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
-          <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="password">
-        <el-input
-          v-model="loginForm.password"
-          type="password"
-          auto-complete="off"
-          placeholder="密码"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="code" v-if="captchaOnOff">
-        <el-input
-          v-model="loginForm.code"
-          auto-complete="off"
-          placeholder="验证码"
-          style="width: 63%"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
-        </el-input>
-        <div class="login-code">
-          <img :src="codeUrl" @click="getCode" class="login-code-img"/>
+    <div class="login_Left">
+      <div class="anima1"></div>
+      <div class="anima2"></div>
+      <div class="anima3"></div>
+      <div class="anima4"></div>
+      <div class="anima5"></div>
+    </div>
+    <div class="login_divs">
+      <el-form
+        class="login_Right"
+        ref="loginForm"
+        :model="loginForm"
+        :rules="loginRules"
+      >
+        <div class="weComeSty">
+          <img
+            style="width: 30px; height: 24px; vertical-align: sub"
+            src="@/assets/images/smile@2x.png"
+            alt=""
+          /><span class="textStys">欢迎登录</span>
         </div>
-      </el-form-item>
-      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
-      <el-form-item style="width:100%;">
-        <el-button
-          :loading="loading"
-          size="medium"
-          type="primary"
-          style="width:100%;"
-          @click.native.prevent="handleLogin"
-        >
-          <span v-if="!loading">登 录</span>
-          <span v-else>登 录 中...</span>
-        </el-button>
-        <div style="float: right;" v-if="register">
-          <router-link class="link-type" :to="'/register'">立即注册</router-link>
+        <div class="mar_stys textStys">用户名</div>
+        <el-form-item prop="username">
+          <el-input
+            v-model="loginForm.username"
+            type="text"
+            auto-complete="off"
+            placeholder="请输入用户名"
+          >
+          </el-input>
+        </el-form-item>
+        <div class="mar_stys textStys">密码</div>
+        <el-form-item prop="password">
+          <el-input
+            class="el_inputSty"
+            v-model="loginForm.password"
+            type="password"
+            auto-complete="off"
+            placeholder="密码"
+            @keyup.enter.native="handleLogin"
+          >
+          </el-input>
+        </el-form-item>
+        <div class="mar_stys textStys">验证码</div>
+        <el-form-item prop="code" v-if="captchaOnOff" class="fle_x">
+          <el-input
+            class="el_inputSty"
+            v-model="loginForm.code"
+            auto-complete="off"
+            placeholder="验证码"
+            style="width: 63%"
+            @keyup.enter.native="handleLogin"
+          >
+          </el-input>
+          <div class="login-code">
+            <img :src="codeUrl" @click="getCode" class="login-code-img" />
+          </div>
+        </el-form-item>
+        <div class="rightStsyt">
+          <el-checkbox v-model="loginForm.rememberMe" class="checkStyles"
+            >记住密码</el-checkbox
+          >
         </div>
-      </el-form-item>
-    </el-form>
-    <!--  底部  -->
-    <div class="el-login-footer">
-      <span>Copyright © 2018-2021 ruoyi.vip All Rights Reserved.</span>
+        <el-form-item style="width: 100%">
+          <el-button
+            :loading="loading"
+            size="medium"
+            type="primary"
+            class="btnFootsty"
+            @click.native.prevent="handleLogin"
+          >
+            <span v-if="!loading">登 录</span>
+            <span v-else>登 录 中...</span>
+          </el-button>
+          <div style="float: right" v-if="register">
+            <router-link class="link-type" :to="'/register'"
+              >立即注册</router-link
+            >
+          </div>
+        </el-form-item>
+      </el-form>
     </div>
   </div>
 </template>
@@ -59,7 +88,7 @@
 <script>
 import { getCodeImg } from "@/api/login";
 import Cookies from "js-cookie";
-import { encrypt, decrypt } from '@/utils/jsencrypt'
+import { encrypt, decrypt } from "@/utils/jsencrypt";
 
 export default {
   name: "Login",
@@ -72,32 +101,32 @@ export default {
         password: "",
         rememberMe: false,
         code: "",
-        uuid: ""
+        uuid: "",
       },
       loginRules: {
         username: [
-          { required: true, trigger: "blur", message: "请输入您的账号" }
+          { required: true, trigger: "blur", message: "请输入您的账号" },
         ],
         password: [
-          { required: true, trigger: "blur", message: "请输入您的密码" }
+          { required: true, trigger: "blur", message: "请输入您的密码" },
         ],
-        code: [{ required: true, trigger: "change", message: "请输入验证码" }]
+        code: [{ required: true, trigger: "change", message: "请输入验证码" }],
       },
       loading: false,
       // 验证码开关
       captchaOnOff: true,
       // 注册开关
       register: false,
-      redirect: undefined
+      redirect: undefined,
     };
   },
   watch: {
     $route: {
-      handler: function(route) {
+      handler: function (route) {
         this.redirect = route.query && route.query.redirect;
       },
-      immediate: true
-    }
+      immediate: true,
+    },
   },
   created() {
     this.getCode();
@@ -105,111 +134,200 @@ export default {
   },
   methods: {
     getCode() {
-      getCodeImg().then(res => {
+      getCodeImg().then((res) => {
         // this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff;
         // if (this.captchaOnOff) {
-          this.codeUrl = "data:image/gif;base64," + res.data.img;
-          this.loginForm.uuid = res.data.uuid;
+        this.codeUrl = "data:image/gif;base64," + res.data.img;
+        this.loginForm.uuid = res.data.uuid;
         // }
       });
     },
     getCookie() {
       const username = Cookies.get("username");
       const password = Cookies.get("password");
-      const rememberMe = Cookies.get('rememberMe')
+      const rememberMe = Cookies.get("rememberMe");
       this.loginForm = {
         username: username === undefined ? this.loginForm.username : username,
-        password: password === undefined ? this.loginForm.password : decrypt(password),
-        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
+        password:
+          password === undefined ? this.loginForm.password : decrypt(password),
+        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
       };
     },
     handleLogin() {
-      this.$refs.loginForm.validate(valid => {
+      this.$refs.loginForm.validate((valid) => {
         if (valid) {
           this.loading = true;
           if (this.loginForm.rememberMe) {
             Cookies.set("username", this.loginForm.username, { expires: 30 });
-            Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
-            Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
+            Cookies.set("password", encrypt(this.loginForm.password), {
+              expires: 30,
+            });
+            Cookies.set("rememberMe", this.loginForm.rememberMe, {
+              expires: 30,
+            });
           } else {
             Cookies.remove("username");
             Cookies.remove("password");
-            Cookies.remove('rememberMe');
+            Cookies.remove("rememberMe");
           }
-          this.$store.dispatch("Login", this.loginForm).then(() => {
-            this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-          }).catch(() => {
-            this.loading = false;
-            if (this.captchaOnOff) {
-              this.getCode();
-            }
-          });
+          this.$store
+            .dispatch("Login", this.loginForm)
+            .then(() => {
+              this.$router.push({ path: this.redirect || "/" }).catch(() => {});
+            })
+            .catch(() => {
+              this.loading = false;
+              if (this.captchaOnOff) {
+                this.getCode();
+              }
+            });
         }
       });
-    }
-  }
+    },
+  },
 };
 </script>
 
-<style rel="stylesheet/scss" lang="scss">
+<style lang="less" scoped>
 .login {
   display: flex;
-  justify-content: center;
-  align-items: center;
   height: 100%;
-  background-image: url("../assets/images/login-background.jpg");
-  background-size: cover;
-}
-.title {
-  margin: 0px auto 30px auto;
-  text-align: center;
-  color: #707070;
-}
-
-.login-form {
-  border-radius: 6px;
-  background: #ffffff;
-  width: 400px;
-  padding: 25px 25px 5px 25px;
-  .el-input {
-    height: 38px;
-    input {
-      height: 38px;
+  overflow: hidden;
+  .login_Left {
+    width: 100%;
+    min-width: 1920px;
+    background: url("../assets/images/left@2x.png") no-repeat center;
+    background-size: contain;
+    overflow: hidden;
+    .anima1 {
+      position: fixed;
+      top: 343px;
+      left: 182px;
+      width: 48px;
+      height: 136px;
+      background: url("../assets/images/mZ/1@2x.png");
+      background-size: 48px 136px;
+      animation: animal1 4s linear infinite;
+      opacity: 0;
+    }
+    .anima2 {
+      position: fixed;
+      top: 580px;
+      left: -20px;
+      width: 62px;
+      height: 170px;
+      background: url("../assets/images/mZ/2@2x.png");
+      background-size: 62px 170px;
+      animation: animal1 4s linear infinite;
+      opacity: 0;
+    }
+    .anima3 {
+      position: fixed;
+      bottom: -258px;
+      left: 183px;
+      width: 151px;
+      height: 415px;
+      background: url("../assets/images/mZ/3@2x.png");
+      background-size: 151px 415px;
+      animation: animal1 4s linear infinite;
+      opacity: 0;
+    }
+    .anima4 {
+      position: fixed;
+      bottom: -350px;
+      left: 987px;
+      width: 199px;
+      height: 551px;
+      background: url("../assets/images/mZ/4@2x.png");
+      background-size: 199px 551px;
+      animation: animal1 4s linear infinite;
+      opacity: 0;
+    }
+    .anima5 {
+      position: fixed;
+      top: 200px;
+      left: 1289px;
+      width: 85px;
+      height: 236px;
+      background: url("../assets/images/mZ/5@2x.png");
+      background-size: 85px 236px;
+      animation: animal1 4s linear infinite;
+      opacity: 0;
+    }
+    @keyframes animal1 {
+      50% {
+        transform: translateY(-50px);
+        opacity: 1;
+      }
     }
   }
-  .input-icon {
-    height: 39px;
-    width: 14px;
-    margin-left: 2px;
+  .login_divs {
+    position: fixed;
+    right: 0;
+    top: 0;
+    min-width: 500px;
+    width: 574px;
+    height: 100%;
+    background-color: #4174ff;
+    z-index: 9999;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    box-shadow: -4px 0px 9px 1px rgba(17, 33, 77, 0.1);
+    .login_Right {
+      width: 420px;
+    }
   }
 }
-.login-tip {
-  font-size: 13px;
-  text-align: center;
-  color: #bfbfbf;
+.textStys {
+  margin-left: 13px;
+  color: #fff;
+  font-weight: 400;
+  font-family: Microsoft YaHei;
+  font-size: 24px;
+}
+.weComeSty {
+  margin-bottom: 70px;
+}
+.mar_stys {
+  margin-bottom: 16px;
+}
+/deep/.el-input--medium .el-input__inner {
+  height: 48px;
+  font-size: 20px;
+  border-radius: 24px;
+}
+/deep/.el-form-item--medium .el-form-item__content {
+  display: flex;
+  align-items: center;
 }
 .login-code {
-  width: 33%;
-  height: 38px;
-  float: right;
-  img {
-    cursor: pointer;
-    vertical-align: middle;
+  height: 48px;
+  margin-left: 18px;
+  .login-code-img {
+    height: 48px;
   }
 }
-.el-login-footer {
-  height: 40px;
-  line-height: 40px;
-  position: fixed;
-  bottom: 0;
-  width: 100%;
-  text-align: center;
+.rightStsyt {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+/deep/.checkStyles {
+  margin: 0px 0px 25px 0px;
   color: #fff;
-  font-family: Arial;
-  font-size: 12px;
-  letter-spacing: 1px;
 }
-.login-code-img {
-  height: 38px;
+/deep/.el-checkbox__input.is-checked + .el-checkbox__label {
+  color: #fff;
+}
+.btnFootsty {
+  width: 100%;
+  height: 48px;
+  border-radius: 24px;
+  background-color: #fff;
+  color: #4174ff;
+  font-size: 20px;
+  font-weight: bold;
+  font-family: Microsoft YaHei;
 }
 </style>

+ 215 - 0
src/views/loginCopy.vue

@@ -0,0 +1,215 @@
+<template>
+  <div class="login">
+    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
+      <h3 class="title">中正高校端后台管理系统</h3>
+      <el-form-item prop="username">
+        <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
+          <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
+        </el-input>
+      </el-form-item>
+      <el-form-item prop="password">
+        <el-input
+          v-model="loginForm.password"
+          type="password"
+          auto-complete="off"
+          placeholder="密码"
+          @keyup.enter.native="handleLogin"
+        >
+          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
+        </el-input>
+      </el-form-item>
+      <el-form-item prop="code" v-if="captchaOnOff">
+        <el-input
+          v-model="loginForm.code"
+          auto-complete="off"
+          placeholder="验证码"
+          style="width: 63%"
+          @keyup.enter.native="handleLogin"
+        >
+          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+        </el-input>
+        <div class="login-code">
+          <img :src="codeUrl" @click="getCode" class="login-code-img"/>
+        </div>
+      </el-form-item>
+      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
+      <el-form-item style="width:100%;">
+        <el-button
+          :loading="loading"
+          size="medium"
+          type="primary"
+          style="width:100%;"
+          @click.native.prevent="handleLogin"
+        >
+          <span v-if="!loading">登 录</span>
+          <span v-else>登 录 中...</span>
+        </el-button>
+        <div style="float: right;" v-if="register">
+          <router-link class="link-type" :to="'/register'">立即注册</router-link>
+        </div>
+      </el-form-item>
+    </el-form>
+    <!--  底部  -->
+    <div class="el-login-footer">
+      <span>Copyright © 2018-2021 ruoyi.vip All Rights Reserved.</span>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getCodeImg } from "@/api/login";
+import Cookies from "js-cookie";
+import { encrypt, decrypt } from '@/utils/jsencrypt'
+
+export default {
+  name: "Login",
+  data() {
+    return {
+      codeUrl: "",
+      cookiePassword: "",
+      loginForm: {
+        username: "",
+        password: "",
+        rememberMe: false,
+        code: "",
+        uuid: ""
+      },
+      loginRules: {
+        username: [
+          { required: true, trigger: "blur", message: "请输入您的账号" }
+        ],
+        password: [
+          { required: true, trigger: "blur", message: "请输入您的密码" }
+        ],
+        code: [{ required: true, trigger: "change", message: "请输入验证码" }]
+      },
+      loading: false,
+      // 验证码开关
+      captchaOnOff: true,
+      // 注册开关
+      register: false,
+      redirect: undefined
+    };
+  },
+  watch: {
+    $route: {
+      handler: function(route) {
+        this.redirect = route.query && route.query.redirect;
+      },
+      immediate: true
+    }
+  },
+  created() {
+    this.getCode();
+    this.getCookie();
+  },
+  methods: {
+    getCode() {
+      getCodeImg().then(res => {
+        // this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff;
+        // if (this.captchaOnOff) {
+          this.codeUrl = "data:image/gif;base64," + res.data.img;
+          this.loginForm.uuid = res.data.uuid;
+        // }
+      });
+    },
+    getCookie() {
+      const username = Cookies.get("username");
+      const password = Cookies.get("password");
+      const rememberMe = Cookies.get('rememberMe')
+      this.loginForm = {
+        username: username === undefined ? this.loginForm.username : username,
+        password: password === undefined ? this.loginForm.password : decrypt(password),
+        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
+      };
+    },
+    handleLogin() {
+      this.$refs.loginForm.validate(valid => {
+        if (valid) {
+          this.loading = true;
+          if (this.loginForm.rememberMe) {
+            Cookies.set("username", this.loginForm.username, { expires: 30 });
+            Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
+            Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
+          } else {
+            Cookies.remove("username");
+            Cookies.remove("password");
+            Cookies.remove('rememberMe');
+          }
+          this.$store.dispatch("Login", this.loginForm).then(() => {
+            this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
+          }).catch(() => {
+            this.loading = false;
+            if (this.captchaOnOff) {
+              this.getCode();
+            }
+          });
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style rel="stylesheet/scss" lang="scss">
+.login {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 100%;
+  background-image: url("../assets/images/login-background.jpg");
+  background-size: cover;
+}
+.title {
+  margin: 0px auto 30px auto;
+  text-align: center;
+  color: #707070;
+}
+
+.login-form {
+  border-radius: 6px;
+  background: #ffffff;
+  width: 400px;
+  padding: 25px 25px 5px 25px;
+  .el-input {
+    height: 38px;
+    input {
+      height: 38px;
+    }
+  }
+  .input-icon {
+    height: 39px;
+    width: 14px;
+    margin-left: 2px;
+  }
+}
+.login-tip {
+  font-size: 13px;
+  text-align: center;
+  color: #bfbfbf;
+}
+.login-code {
+  width: 33%;
+  height: 38px;
+  float: right;
+  img {
+    cursor: pointer;
+    vertical-align: middle;
+  }
+}
+.el-login-footer {
+  height: 40px;
+  line-height: 40px;
+  position: fixed;
+  bottom: 0;
+  width: 100%;
+  text-align: center;
+  color: #fff;
+  font-family: Arial;
+  font-size: 12px;
+  letter-spacing: 1px;
+}
+.login-code-img {
+  height: 38px;
+}
+</style>

+ 63 - 17
src/views/resource/bankManagement/chapterVolumeManagement/index.vue

@@ -1,5 +1,12 @@
 <template>
   <div id="chapterVolumeManagement">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -17,8 +24,8 @@
     </table-list>
     <pagination
       :total="total"
-      :pageSize="pageSize"
-      :currentPage="currentPage"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
       @handleSizeChange="handleSizeChange"
       @handleCurrentChange="handleCurrentChange"
     />
@@ -26,11 +33,11 @@
 </template>
 
 <script>
-import searchBox from "@/components/searchBox";
+import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  components: { searchBox, tableList, pagination },
+  components: { searchBoxNew, tableList, pagination },
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -46,6 +53,42 @@ export default {
           title: "未定义",
         },
       },
+      //搜索
+      formList: [
+        {
+          prop: "educationId",
+          placeholder: "教育类型",
+          scope: "educationType",
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+        },
+        {
+          prop: "subjectId",
+          placeholder: "科目",
+          scope: "sujectType",
+        },
+        {
+          prop:"publishStatus",
+          placeholder:"发布状态",
+          scope:"paperType"
+        },
+        {
+          prop: "prefixName",
+          placeholder: "请输入名称前缀",
+        },
+        {
+          prop: "examName",
+          placeholder: "请输入试卷名称",
+        }
+      ],
+      formData: {
+        status: "0,1",
+        pageSize: 10,
+        pageNum: 1,
+      },
       // 表单
       tableSet: [
         {
@@ -80,8 +123,6 @@ export default {
       ],
       tableData: [], //表单数据
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
     };
   },
   mounted() {
@@ -91,14 +132,19 @@ export default {
     editInfo(v) {
       this.addClick(v, 0);
     },
-    search(v) {
+    search(int) {
       this.loading = true;
-      var data = {
-        status: 1,
-        pageSize: this.pageSize,
-        pageNum: this.currentPage,
-      };
-      this.$api.inquirebankchapterList(data).then((res) => {
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          status: "0,1",
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      this.$api.inquirebankchapterList(this.formData).then((res) => {
         this.tableData = res.rows;
         this.total = res.total;
         this.navText.index = res.total;
@@ -106,7 +152,7 @@ export default {
       this.loading = false;
     },
     init() {
-      this.search();
+      this.search(2);
     },
     del(v) {
       this.$alert(
@@ -148,12 +194,12 @@ export default {
       }
     },
     handleSizeChange(v) {
-      this.pageSize = v;
-      this.currentPage = 1;
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
       this.search();
     },
     handleCurrentChange(v) {
-      this.currentPage = v;
+      this.formData.pageNum = v;
       this.search();
     },
   },

+ 6 - 9
src/views/resource/bankManagement/knowledgeManagement/index.vue

@@ -3,8 +3,6 @@
     <search-box-new
       ref="searchBox"
       :formData="formData"
-      :pageSizes="pageSize"
-      :pageNums="currentPage"
       :formList="formList"
       @search="search"
       @init="init"
@@ -222,6 +220,11 @@ export default {
           placeholder: "请输入知识点名称",
         },
       ],
+      formData: {
+        status: "0,1",
+        pageSize: 10,
+        pageNum: 1,
+      },
       // 表单
       tableSet: [
         {
@@ -260,16 +263,10 @@ export default {
 
       tableData: [], //表单数据
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
       changeHeight: false,
       rules: [],
       listData: {},
-      formData: {
-        status: "0,1",
-        pageSize: 10,
-        pageNum: 1,
-      },
+      
       listitem: [
         {
           label: "适用业务层级",

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

@@ -61,7 +61,13 @@
           :sujectApisTable="sujectApisTable"
           :newSujectApisTable="newSujectApisTable"
         />
-        <el-form label-position="right" label-width="110px" :model="listData">
+        <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"
@@ -117,7 +123,7 @@
         <span slot="footer" class="dialog-footer">
           <el-button @click="closeBefore">关 闭</el-button>
           <el-button
-            @click="submitForm"
+            @click="submitForm('listData')"
             v-if="statusPop === 1 || statusPop === 0"
             >完成</el-button
           >
@@ -666,6 +672,11 @@ export default {
           title: "分值设置",
         },
       },
+      rulesTest: {
+        prefixName: [
+          { required: true, message: "请输入标签前缀", trigger: "blur" },
+        ],
+      },
       dialogVisible: false,
       innerVisiblePaperTopic: false,
       fullscreenChildPaperTopic: false,
@@ -990,7 +1001,9 @@ export default {
           self.$refs.sujects.courType = "";
           self.$refs.sujects.sujectApis = [];
           self.$refs.sujects.newSujectApis = [];
-          self.listData = {};
+          self.listData = {
+            publishStatus: 1,
+          };
           self.activeExam = [];
         });
       } else {
@@ -1150,51 +1163,117 @@ export default {
     closeBefore() {
       this.innerVisiblePaperTopic = false;
     },
-    async submitForm(int) {
-      var self = this;
-      var data = this.$refs.child.getInfosPage();
-      var numList = [];
-      this.activeExam.map((item) => {
-        numList.push(item.knowledgeId);
-      });
-      data.knowledgeList = this.activeExam;
-      data.prefixName = this.listData.prefixName;
-      data.knowledgeIds = numList.toString();
-      data.publishStatus = this.listData.publishStatus;
-      data.businessList = this.$refs.sujects.newSujectApis;
-      if (data.type === 2) {
-        if (data.answerQuestionList.length) {
-          data.answerQuestion = data.answerQuestionList.toString();
-        }
-      }
-      if (data.type === 4) {
-        data.optionsList.map((item) => {
-          if (item.type === 2) {
-            if (item.answerQuestionList.length) {
-              item.answerQuestion = item.answerQuestionList.toString();
+    async submitForm(formName, int) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          var self = this;
+          var data = this.$refs.child.getInfosPage();
+          if (!data.content || data.content == "<p><br></p>") {
+            self.$message.error("请填写题目内容");
+            return;
+          }
+          if (data.type != 3 && !data.optionsList.length) {
+            self.$message.error("请添加选项");
+            return;
+          }
+          if (data.type != 3 && data.type != 4 && data.optionsList.length) {
+            var ast = data.optionsList.some((item) => {
+              return !item.content && !item.imgUrl;
+            });
+            if (ast) {
+              self.$message.error("请完善选项内容");
+              return;
             }
           }
-        });
-      }
-      if (this.statusPop === 1) {
-        data.sort = 0;
-        data.partScore = 0;
-        data.score = "";
-        this.tableData.push(data);
-        // this.$api.addbankquestion(data).then((res) => {
-        self.$message.success("添加成功");
-        self.innerVisiblePaperTopic = false;
-        // self.search();
-        // });
-      }
-      if (this.statusPop === 0) {
-        this.tableData.splice(this.indexZB, 1, data);
-        // this.$api.editbankquestion(data).then((res) => {
-        self.$message.success("修改成功");
-        self.innerVisiblePaperTopic = false;
-        // self.search();
-        // });
-      }
+          if (data.type != 5 && data.type != 4 && !data.answerQuestion) {
+            self.$message.error("请选择正确答案");
+            return;
+          }
+          if (data.type == 4 && data.optionsList.length) {
+            for (let i = 0; i < data.optionsList.length; i++) {
+              if (
+                !data.optionsList[i].content ||
+                data.optionsList[i].content == "<p><br></p>"
+              ) {
+                self.$message.error("请填写题目内容");
+                return;
+              }
+              if (
+                data.optionsList[i].type != 3 &&
+                !data.optionsList[i].optionsList.length
+              ) {
+                self.$message.error("请添加选项");
+                return;
+              }
+              if (
+                data.optionsList[i].type != 3 &&
+                data.optionsList[i].optionsList.length
+              ) {
+                var ast = data.optionsList[i].optionsList.some((item) => {
+                  return !item.content && !item.imgUrl;
+                });
+                if (ast) {
+                  self.$message.error("请完善选项内容");
+                  return;
+                }
+              }
+              if (
+                data.optionsList[i].type != 5 &&
+                !data.optionsList[i].answerQuestion
+              ) {
+                self.$message.error("请选择正确答案");
+                return;
+              }
+            }
+          }
+          var numList = [];
+          this.activeExam.map((item) => {
+            numList.push(item.knowledgeId);
+          });
+          data.knowledgeList = this.activeExam;
+          data.prefixName = this.listData.prefixName;
+          data.knowledgeIds = numList.toString();
+          data.publishStatus = this.listData.publishStatus;
+          data.businessList = this.$refs.sujects.newSujectApis;
+          if (data.type === 2) {
+            if (data.answerQuestionList.length) {
+              data.answerQuestion = data.answerQuestionList.toString();
+            }
+          }
+          if (data.type === 4) {
+            data.optionsList.map((item) => {
+              if (item.type === 2) {
+                if (item.answerQuestionList.length) {
+                  item.answerQuestion = item.answerQuestionList.toString();
+                }
+              }
+            });
+          }
+          if (this.statusPop === 1) {
+            data.sort = 0;
+            data.partScore = 0;
+            data.score = "";
+            data.status = 1;
+            this.tableData.push(data);
+            // this.$api.addbankquestion(data).then((res) => {
+            self.$message.success("添加成功");
+            self.innerVisiblePaperTopic = false;
+            // self.search();
+            // });
+          }
+          if (this.statusPop === 0) {
+            this.tableData.splice(this.indexZB, 1, data);
+            // this.$api.editbankquestion(data).then((res) => {
+            self.$message.success("修改成功");
+            self.innerVisiblePaperTopic = false;
+            // self.search();
+            // });
+          }
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
     },
     uploadApis(item) {
       return new Promise((resolve, reject) => {

+ 63 - 17
src/views/resource/bankManagement/testPaperManagement/index.vue

@@ -1,5 +1,12 @@
 <template>
   <div id="testPaperManagement">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -20,8 +27,8 @@
     </table-list>
     <pagination
       :total="total"
-      :pageSize="pageSize"
-      :currentPage="currentPage"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
       @handleSizeChange="handleSizeChange"
       @handleCurrentChange="handleCurrentChange"
     />
@@ -29,11 +36,11 @@
 </template>
 
 <script>
-import searchBox from "@/components/searchBox";
+import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  components: { searchBox, tableList, pagination },
+  components: { tableList, pagination,searchBoxNew },
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -49,6 +56,42 @@ export default {
           title: "未定义",
         },
       },
+      //搜索
+      formList: [
+        {
+          prop: "educationId",
+          placeholder: "教育类型",
+          scope: "educationType",
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+        },
+        {
+          prop: "subjectId",
+          placeholder: "科目",
+          scope: "sujectType",
+        },
+        {
+          prop:"publishStatus",
+          placeholder:"发布状态",
+          scope:"paperType"
+        },
+        {
+          prop: "prefixName",
+          placeholder: "请输入名称前缀",
+        },
+        {
+          prop: "examName",
+          placeholder: "请输入试卷名称",
+        }
+      ],
+      formData: {
+        status: "0,1",
+        pageSize: 10,
+        pageNum: 1,
+      },
       // 表单
       tableSet: [
         {
@@ -97,8 +140,6 @@ export default {
       ],
       tableData: [], //表单数据
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
     };
   },
   mounted() {
@@ -108,14 +149,19 @@ export default {
     editInfo(v) {
       this.addClick(v, 0);
     },
-    search(v) {
+    search(int) {
       this.loading = true;
-      var data = {
-        status: 1,
-        pageSize: this.pageSize,
-        pageNum: this.currentPage,
-      };
-      this.$api.inquirebankexamList(data).then((res) => {
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          status: "0,1",
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      this.$api.inquirebankexamList(this.formData).then((res) => {
         this.tableData = res.rows;
         this.total = res.total;
         this.navText.index = res.total;
@@ -123,7 +169,7 @@ export default {
       this.loading = false;
     },
     init() {
-      this.search();
+      this.search(2);
     },
     del(v) {
       this.$alert(
@@ -177,12 +223,12 @@ export default {
       }
     },
     handleSizeChange(v) {
-      this.pageSize = v;
-      this.currentPage = 1;
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
       this.search();
     },
     handleCurrentChange(v) {
-      this.currentPage = v;
+      this.formData.pageNum = v;
       this.search();
     },
   },

+ 185 - 65
src/views/resource/bankManagement/topicManagement/index.vue

@@ -1,5 +1,12 @@
 <template>
   <div id="topicManagement">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -17,8 +24,8 @@
     </table-list>
     <pagination
       :total="total"
-      :pageSize="pageSize"
-      :currentPage="currentPage"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
       @handleSizeChange="handleSizeChange"
       @handleCurrentChange="handleCurrentChange"
     />
@@ -51,7 +58,13 @@
         :newSujectApisTable="newSujectApis"
         :typeBus="typeBus"
       />
-      <el-form label-position="right" label-width="110px" :model="listData">
+      <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"
@@ -112,10 +125,15 @@
       />
       <span slot="footer" class="dialog-footer">
         <el-button @click="closeBefore">关 闭</el-button>
-        <el-button @click="submitForm" v-if="statusPop === 1 || statusPop === 0"
+        <el-button
+          @click="submitForm('listData')"
+          v-if="statusPop === 1 || statusPop === 0"
           >完成</el-button
         >
-        <el-button type="primary" v-if="statusPop === 1" @click="submitForm(1)"
+        <el-button
+          type="primary"
+          v-if="statusPop === 1"
+          @click="submitForm('listData', 1)"
           >完成,并继续添加</el-button
         >
       </span>
@@ -170,12 +188,13 @@
 </template>
 
 <script>
+import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 import busIns from "@/components/busIns";
 import questionBank from "@/components/questionBank";
 export default {
-  components: { questionBank, busIns, tableList, pagination },
+  components: { questionBank, busIns, tableList, pagination, searchBoxNew },
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -191,6 +210,38 @@ export default {
           title: "未定义",
         },
       },
+      //搜索
+      formList: [
+        {
+          prop: "educationId",
+          placeholder: "教育类型",
+          scope: "educationType",
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+        },
+        {
+          prop: "subjectId",
+          placeholder: "科目",
+          scope: "sujectType",
+        },
+        {
+          prop: "type",
+          placeholder: "题目类型",
+          scope: "selectBank",
+        },
+        {
+          prop: "prefixName",
+          placeholder: "请输入标题前缀",
+        },
+      ],
+      formData: {
+        status: "0,1",
+        pageSize: 10,
+        pageNum: 1,
+      },
       // 表单
       tableSet: [
         {
@@ -236,11 +287,9 @@ export default {
         // },
       ],
       sujectApis: [],
-      newSujectApis:[],
+      newSujectApis: [],
       tableData: [], //表单数据
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
       //-----------------------------------------------
       dialogVisible: false,
       innerVisiblePaperTopic: false,
@@ -277,6 +326,11 @@ export default {
           scope: "radio",
         },
       ],
+      rulesTest: {
+        prefixName: [
+          { required: true, message: "请输入标签前缀", trigger: "blur" },
+        ],
+      },
     };
   },
   mounted() {
@@ -287,14 +341,19 @@ export default {
     editInfo(v) {
       this.addClick(v, 0);
     },
-    search(v) {
+    search(int) {
       this.loading = true;
-      var data = {
-        status: 1,
-        pageSize: this.pageSize,
-        pageNum: this.currentPage,
-      };
-      this.$api.inquirebankquestionList(data).then((res) => {
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          status: "0,1",
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      this.$api.inquirebankquestionList(this.formData).then((res) => {
         this.tableData = res.rows;
         this.total = res.total;
         this.navText.index = res.total;
@@ -302,7 +361,7 @@ export default {
       this.loading = false;
     },
     init() {
-      this.search();
+      this.search(2);
     },
     del(v) {
       this.$alert(
@@ -349,7 +408,9 @@ export default {
           self.$refs.sujects.courType = "";
           self.sujectApis = [];
           self.newSujectApis = [];
-          self.listData = {};
+          self.listData = {
+            publishStatus: 1,
+          };
           self.activeExam = [];
         });
       } else {
@@ -410,12 +471,12 @@ export default {
       }
     },
     handleSizeChange(v) {
-      this.pageSize = v;
-      this.currentPage = 1;
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
       this.search();
     },
     handleCurrentChange(v) {
-      this.currentPage = v;
+      this.formData.pageNum = v;
       this.search();
     },
     //-----------------------------------------------
@@ -524,53 +585,112 @@ export default {
     closeBefore() {
       this.innerVisiblePaperTopic = false;
     },
-    async submitForm(int) {
-      var self = this;
-      // for (let i = 0; i < this.$refs.child.length; i++) {
-      //   var infos = this.$refs.child[i].getInfosPage();
-      //   console.log(infos, 101);
-      // }
-      var data = this.$refs.child[0].getInfosPage();
-      var numList = [];
-      this.activeExam.map((item) => {
-        numList.push(item.knowledgeId);
-      });
-      data.prefixName = this.listData.prefixName;
-      data.knowledgeIds = numList.toString();
-      data.publishStatus = this.listData.publishStatus;
-      data.businessList = this.$refs.sujects.newSujectApis;
-      if (data.type === 2) {
-        if (data.answerQuestionList.length) {
-          data.answerQuestion = data.answerQuestionList.toString();
-        }
-      }
-      if (data.type === 4) {
-        data.optionsList.map((item) => {
-          if (item.type === 2) {
-            if (item.answerQuestionList.length) {
-              item.answerQuestion = item.answerQuestionList.toString();
+    async submitForm(formName, int) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          var self = this;
+          var data = this.$refs.child[0].getInfosPage();
+          if (!data.content || data.content == "<p><br></p>") {
+            self.$message.error("请填写题目内容");
+            return;
+          }
+          if (data.type != 3 && !data.optionsList.length) {
+            self.$message.error("请添加选项");
+            return;
+          }
+          if (data.type != 3 && data.type != 4 && data.optionsList.length) {
+            var ast = data.optionsList.some((item) => {
+              return !item.content && !item.imgUrl;
+            });
+            if (ast) {
+              self.$message.error("请完善选项内容");
+              return;
             }
           }
-        });
-      }
-      if (this.statusPop === 1) {
-        this.$api.addbankquestion(data).then((res) => {
-          self.$message.success("添加成功");
-          self.innerVisiblePaperTopic = false;
-          self.search();
-          if (int === 1) {
-            self.addClick();
+          if (data.type != 5 && data.type != 4 && !data.answerQuestion) {
+            self.$message.error("请选择正确答案");
+            return;
           }
-        });
-      }
-      if (this.statusPop === 0) {
-        data.questionId = self.questionId;
-        this.$api.editbankquestion(data).then((res) => {
-          self.$message.success("修改成功");
-          self.innerVisiblePaperTopic = false;
-          self.search();
-        });
-      }
+          if (data.type == 4 && data.optionsList.length) {
+            for (let i = 0; i < data.optionsList.length; i++) {
+              if (
+                !data.optionsList[i].content ||
+                data.optionsList[i].content == "<p><br></p>"
+              ) {
+                self.$message.error("请填写题目内容");
+                return;
+              }
+              if (
+                data.optionsList[i].type != 3 &&
+                !data.optionsList[i].optionsList.length
+              ) {
+                self.$message.error("请添加选项");
+                return;
+              }
+              if (data.optionsList[i].type != 3 && data.optionsList[i].optionsList.length) {
+                var ast = data.optionsList[i].optionsList.some((item) => {
+                  return !item.content && !item.imgUrl;
+                });
+                if (ast) {
+                  self.$message.error("请完善选项内容");
+                  return;
+                }
+              }
+              if (
+                data.optionsList[i].type != 5 &&
+                !data.optionsList[i].answerQuestion
+              ) {
+                self.$message.error("请选择正确答案");
+                return;
+              }
+            }
+          }
+          var numList = [];
+          this.activeExam.map((item) => {
+            numList.push(item.knowledgeId);
+          });
+          data.prefixName = this.listData.prefixName;
+          data.knowledgeIds = numList.toString();
+          data.publishStatus = this.listData.publishStatus;
+          data.businessList = this.$refs.sujects.newSujectApis;
+          if (data.type === 2) {
+            if (data.answerQuestionList.length) {
+              data.answerQuestion = data.answerQuestionList.toString();
+            }
+          }
+          if (data.type === 4) {
+            data.optionsList.map((item) => {
+              if (item.type === 2) {
+                if (item.answerQuestionList.length) {
+                  item.answerQuestion = item.answerQuestionList.toString();
+                }
+              }
+            });
+          }
+          if (this.statusPop === 1) {
+            data.status = 1;
+            this.$api.addbankquestion(data).then((res) => {
+              self.$message.success("添加成功");
+              self.innerVisiblePaperTopic = false;
+              self.search();
+              if (int === 1) {
+                self.addClick();
+              }
+            });
+          }
+          if (this.statusPop === 0) {
+            data.questionId = self.questionId;
+            this.$api.editbankquestion(data).then((res) => {
+              self.$message.success("修改成功");
+              self.innerVisiblePaperTopic = false;
+              self.search();
+            });
+          }
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
     },
     //保存且添加下一题
     async submitAndNext() {

+ 62 - 17
src/views/resource/bankManagement/volumeManagement/index.vue

@@ -1,5 +1,12 @@
 <template>
   <div id="chapterVolumeManagement">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -17,8 +24,8 @@
     </table-list>
     <pagination
       :total="total"
-      :pageSize="pageSize"
-      :currentPage="currentPage"
+      :pageSize="formData.pageSize"
+      :currentPage="formData.pageNum"
       @handleSizeChange="handleSizeChange"
       @handleCurrentChange="handleCurrentChange"
     />
@@ -26,11 +33,11 @@
 </template>
 
 <script>
-import searchBox from "@/components/searchBox";
+import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  components: { searchBox, tableList, pagination },
+  components: { searchBoxNew, tableList, pagination },
   data() {
     return {
       loading: false, //当前表单加载是否加载动画
@@ -46,6 +53,41 @@ export default {
           title: "未定义",
         },
       },
+      //搜索
+      formList: [
+        {
+          prop: "educationId",
+          placeholder: "教育类型",
+          scope: "educationType",
+        },
+        {
+          prop: "businessId",
+          placeholder: "业务层次",
+          scope: "businessLevel",
+        },
+        {
+          prop: "subjectId",
+          placeholder: "科目",
+          scope: "sujectType",
+        },
+        {
+          prop: "paperType",
+          placeholder: "发布状态",
+        },
+        {
+          prop: "prefixName",
+          placeholder: "请输入标题前缀",
+        },
+        {
+          prop: "moduleName",
+          placeholder: "请输入模块卷标题",
+        },
+      ],
+      formData: {
+        status: "0,1",
+        pageSize: 10,
+        pageNum: 1,
+      },
       // 表单
       tableSet: [
         {
@@ -80,8 +122,6 @@ export default {
       ],
       tableData: [], //表单数据
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
     };
   },
   mounted() {
@@ -91,14 +131,19 @@ export default {
     editInfo(v) {
       this.addClick(v, 0);
     },
-    search(v) {
+    search(int) {
       this.loading = true;
-      var data = {
-        status: 1,
-        pageSize: this.pageSize,
-        pageNum: this.currentPage,
-      };
-      this.$api.inquireBankModule(data).then((res) => {
+      if (int === 1) {
+        this.formData.pageNum = 1;
+      }
+      if (int === 2) {
+        this.formData = {
+          status: "0,1",
+          pageSize: 10,
+          pageNum: 1,
+        };
+      }
+      this.$api.inquireBankModule(this.formData).then((res) => {
         this.tableData = res.rows;
         this.total = res.total;
         this.navText.index = res.total;
@@ -106,7 +151,7 @@ export default {
       this.loading = false;
     },
     init() {
-      this.search();
+      this.search(2);
     },
     del(v) {
       this.$alert(
@@ -148,12 +193,12 @@ export default {
       }
     },
     handleSizeChange(v) {
-      this.pageSize = v;
-      this.currentPage = 1;
+      this.formData.pageSize = v;
+      this.formData.pageNum = 1;
       this.search();
     },
     handleCurrentChange(v) {
-      this.currentPage = v;
+      this.formData.pageNum = v;
       this.search();
     },
   },

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

@@ -300,6 +300,7 @@ export default {
       changeHeight: true,
       bfImg: "oss/images/avatar/20211013/1634097664410_1397766697",
       listData: {
+        publishStatus:1,
         recordingUrl: "",
         liveUrl: "",
         coverUrl: "oss/images/avatar/20211013/1634097664410_1397766697",

+ 3 - 2
src/views/resource/videoManagement/courseManagement/basicInfoAdd/index.vue

@@ -198,6 +198,7 @@ export default {
       //   弹窗数据
       bfImg: "oss/images/avatar/20211013/1634097664410_1397766697",
       listData: {
+        publishStatus:1,
         coverUrl: "oss/images/avatar/20211013/1634097664410_1397766697",
         educationTypeId: "",
         businessId: "",
@@ -398,11 +399,11 @@ export default {
         this.$message.success("新增成功");
         setTimeout(() => {
           this.$router.replace({
-            path: "/resource/videoManagement/courseManagement/chapterContent",
+            path: "chapterContent",
             query: {
               id: res.data,
             },
-          });
+          }).catch(err => {})
         }, 300);
       });
     },

+ 30 - 13
src/views/resource/videoManagement/courseManagement/index.vue

@@ -41,7 +41,7 @@ export default {
         title: "课程管理",
         index: 0,
         ch: "条",
-        num: false,
+        num: true,
         choice: true,
         addHide: false,
         backFatherBtn: {
@@ -77,18 +77,26 @@ export default {
           prop: "schoolName",
           hidden: true,
         },
-        // {
-        //   label: "业务层级",
-        //   prop: "businessList",
-        //   hidden: true,
-        //   scope:"mapTypesMores",
-        //   width:"400"
-        // },
         {
           label: "教育类型",
           prop: "educationName",
           hidden: true,
         },
+        {
+          label:"项目类型",
+          prop:"projectName",
+          hidden:true
+        },
+        {
+          label:"业务层次",
+          prop:"businessName",
+          hidden:true
+        },
+        {
+          label:"科目",
+          prop:"subjectName",
+          hidden:true
+        },
         {
           label: "发布状态",
           prop: "publishStatus",
@@ -107,11 +115,20 @@ export default {
           scope: "aTimeList",
           hidden: true,
         },
-        // {
-        //   label: "关联商品",
-        //   prop: "sectionNum",
-        //   hidden: true,
-        // },
+        {
+          label: "课程章节",
+          prop: "courseId",
+          hidden: true,
+          width:"120px",
+          scope:"aboutTrees"
+        },
+        {
+          label:"关联商品",
+          hidden: true,
+          prop:"goodsList",
+          width:"230px",
+          scope:"goodsList"
+        }
       ],
       tableData: [], //表单数据
       total: 0, //一共多少条

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

@@ -276,6 +276,7 @@ export default {
       changeHeight: true,
       bfImg: "oss/images/avatar/20211013/1634097664410_1397766697",
       listData: {
+        publishStatus:1,
         recordingUrl: "",
         liveUrl: "",
         coverUrl: "oss/images/avatar/20211013/1634097664410_1397766697",

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

@@ -300,6 +300,7 @@ export default {
       changeHeight: true,
       bfImg: "oss/images/avatar/20211013/1634097664410_1397766697",
       listData: {
+        publishStatus:1,
         recordingUrl: "",
         liveUrl: "",
         coverUrl: "oss/images/avatar/20211013/1634097664410_1397766697",