Jelajahi Sumber

Merge branch 'iteration_201225' into Nov16thResetMusic

lex-xin 4 tahun lalu
induk
melakukan
d5218227d9
35 mengubah file dengan 639 tambahan dan 769 penghapusan
  1. 18 0
      src/router/notKeepAliveList.js
  2. 0 3
      src/views/adapayAccount/form.vue
  3. 18 11
      src/views/adapayAccount/index.vue
  4. 1 18
      src/views/afterSchoolManager/afterSchoolDetail.vue
  5. 26 64
      src/views/afterSchoolManager/afterSchoolList.vue
  6. 21 53
      src/views/afterSchoolManager/afterWorkList.vue
  7. 15 20
      src/views/afterSchoolManager/index.vue
  8. 140 112
      src/views/categroyManager/globalConfig.vue
  9. 35 44
      src/views/categroyManager/insideSetting/addressManager.vue
  10. 6 2
      src/views/categroyManager/insideSetting/adminManager.vue
  11. 1 1
      src/views/categroyManager/insideSetting/adminOperation.vue
  12. 19 30
      src/views/categroyManager/insideSetting/branchManager.vue
  13. 56 63
      src/views/categroyManager/insideSetting/staffManager.vue
  14. 4 4
      src/views/categroyManager/specialSetup/chargesList.vue
  15. 5 2
      src/views/categroyManager/specialSetup/courseTimerSetting.vue
  16. 8 7
      src/views/categroyManager/specialSetup/discountManage.vue
  17. 8 38
      src/views/categroyManager/specialSetup/jobTemplateSetting.vue
  18. 16 20
      src/views/categroyManager/specialSetup/musicCourseFee.vue
  19. 15 12
      src/views/chargeManager/index.vue
  20. 6 20
      src/views/chargeManager/one.vue
  21. 5 5
      src/views/chargeManager/share-model.vue
  22. 6 20
      src/views/chargeManager/three.vue
  23. 4 19
      src/views/chargeManager/two.vue
  24. 8 6
      src/views/editionManager/editionList.vue
  25. 12 24
      src/views/levelManager/levelManager.vue
  26. 7 9
      src/views/luckyDraw/lotteryManager.vue
  27. 42 28
      src/views/luckyDraw/lotteryRecord.vue
  28. 7 10
      src/views/luckyDraw/trophyManager.vue
  29. 8 2
      src/views/matchManager/index.vue
  30. 23 24
      src/views/repairManager/repairList.vue
  31. 20 37
      src/views/reportForm/index.vue
  32. 6 6
      src/views/workBenchManager/classFeesIsOk.vue
  33. 70 51
      src/views/workBenchManager/journal/index.vue
  34. 1 3
      src/views/workBenchManager/payAppeal.vue
  35. 2 1
      src/views/workBenchManager/requestProcessing.vue

+ 18 - 0
src/router/notKeepAliveList.js

@@ -27,5 +27,23 @@ export default [
   '/business/returnVisitList',
   '/business/levelManager',
   '/matchManager/matchManager',
+  '/luckyDraw/lotteryManager', // 抽奖活动管理
+  '/luckyDraw/trophyManager', // 奖品设置
+  '/luckyDraw/lotteryRecord', // 抽奖记录
+  '/specialSetup/globalConfig', // 全局配置
+  '/specialSetup/adminManager', // 系统角色权限管理
+  '/specialSetup/adminoperation',
+  '/reportForm/index', // 报表中心
+  '/business/repairList', // 维修单列表
+  '/business/afterSchoolManager', // 课外训练
+  '/business/afterSchoolDetail', // 课外训练详情
+  '/insideSetting/staffManager', // 员工管理
+  '/insideSetting/branchManager', // 合作单位
+  '/insideSetting/addressManager', // 教学点管理
+  '/insideSetting/branchSetting', // 分部设置
+  '/insideSetting/chargeManager', // 收费管理
+  '/insideSetting/editionList', // 版本控制
+  '/insideSetting/adapayManager', // 汇仁账号管理
+  '/insideSetting/adapayOperation', //
   '/operateManager/stuRecodeManager'
 ]

+ 0 - 3
src/views/adapayAccount/form.vue

@@ -242,9 +242,6 @@ export default {
   mounted () {
     this.__init()
   },
-  activated () {
-    this.__init()
-  },
   methods: {
     __init () {
       const query = this.$route.query

+ 18 - 11
src/views/adapayAccount/index.vue

@@ -10,15 +10,16 @@
            @click="onOperationAccount('create')">创建账号</div>
     </div>
     <div class="m-core">
-      <el-form :inline="true"
+      <save-form :inline="true"
                class="searchForm"
-               v-model.trim="searchForm">
+               @submit="search"
+               :model="searchForm">
         <el-form-item>
-          <el-input v-model.trim="searchForm.memberId"
+          <el-input v-model.trim="searchForm.memberId" clearable
                     placeholder="请输入商户号"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-input v-model.trim="searchForm.name"
+          <el-input v-model.trim="searchForm.name" clearable
                     placeholder="请输入公司名称"></el-input>
         </el-form-item>
         <el-form-item>
@@ -35,10 +36,9 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button @click="getList"
-                     type="danger">搜索</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div class="tableWrap">
         <el-table :data="tableList"
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}">
@@ -89,7 +89,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="rules.total"
+        <pagination sync :total.sync="rules.total"
                     :page.sync="rules.page"
                     :limit.sync="rules.limit"
                     :page-sizes="rules.page_size"
@@ -172,9 +172,6 @@ export default {
   mounted () {
     this.getList()
   },
-  activated () {
-    this.getList()
-  },
   methods: {
     getList () {
       try {
@@ -191,16 +188,26 @@ export default {
         //
       }
     },
+    search() {
+      this.rules.page = 1
+      this.getList()
+    },
     onFormClose (formName) {
       this.$refs[formName].resetFields()
     },
     onOperationAccount (type, row) {
+      let tagTitle = '创建'
+      if(type == 'update') {
+        tagTitle = '修改'
+      }
       this.$router.push({
         path: '/insideSetting/adapayOperation',
         query: {
           type: type,
           row: JSON.stringify(row)
         }
+      }, (route) => {
+        route.meta.title = tagTitle + '汇会账号'
       })
     },
     onUpdateAccount (row) {

+ 1 - 18
src/views/afterSchoolManager/afterSchoolDetail.vue

@@ -16,38 +16,21 @@ export default {
   components: { afterWorkList },
   data () {
     return {
-      FsearchForm: null,
-      Frules: null,
       title: '',
       id: null
     };
   },
-  //生命周期 - 创建完成(可以访问当前this实例)
-  // created() {
-  //   this.init();
-  // },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {
     this.init();
   },
-  activated () {
-    this.init();
-  },
   methods: {
     init () {
-      if (this.$route.query.searchForm) {
-        this.FsearchForm = this.$route.query.searchForm;
-      }
-      if (this.$route.query.rules) {
-        this.Frules = this.$route.query.rules;
-      }
       this.title = this.$route.query.title
       this.id = this.$route.query.extracurricularExercisesId
-      // console.log(this.id)
-      //   console.log(this.$router.query)
     },
     goBack () {
-      this.$router.push({ path: "/business/afterSchoolManager", query: { rules: this.Frules, searchForm: this.FsearchForm } });
+      this.$router.push({ path: "/business/afterSchoolManager"});
     }
   }
 };

+ 26 - 64
src/views/afterSchoolManager/afterSchoolList.vue

@@ -5,11 +5,13 @@
       <div class="squrt"></div>课外训练
     </h2> -->
     <div class="m-core">
-      <el-form :inline="true"
+      <save-form :inline="true"
+               @submit="search"
+               @reset="onReSet"
+               :saveKey="'afterSchoolList'"
                :model="searchForm">
         <el-form-item>
-          <el-input v-model.trim="searchForm.listSearch"
-          clearable
+          <el-input v-model.trim="searchForm.listSearch" clearable
                     @keyup.enter.native="search"
                     placeholder="请输入标题"></el-input>
         </el-form-item>
@@ -22,7 +24,7 @@
                      filterable
                      clearable
                      placeholder="请选择分部">
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
@@ -34,19 +36,17 @@
                           type="daterange"
                           value-format="yyyy-MM-dd"
                           range-separator="至"
-                          start-placeholder="分配开始日期"
-                          end-placeholder="分配结束日期"
+                          start-placeholder="布置开始日期"
+                          end-placeholder="布置结束日期"
                           :picker-options="{
         firstDayOfWeek: 1
     }"></el-date-picker>
         </el-form-item>
         <el-form-item>
-          <el-button type="danger"
-                     @click="search">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div class="tableWrap">
         <el-table style="width: 100%"
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}"
@@ -99,7 +99,7 @@
                     @pagination="getList" />
       </div>
     </div>
-    <el-dialog title="课外训练详情"
+    <!-- <el-dialog title="课外训练详情"
                :visible.sync="afterSchoolVisible"
                width="600px">
       <el-form :model="visibleForm">
@@ -137,16 +137,16 @@
                     style="width:400px"></el-input>
         </el-form-item>
       </el-form>
-    </el-dialog>
+    </el-dialog> -->
   </div>
 </template>
 
 <script>
 import pagination from "@/components/Pagination/index";
+import remoteSearch from '@/components/remote-search'
 import { queryPageList } from "@/api/afterSchool";
-import { getTeacher, getEmployeeOrgan } from "@/api/buildTeam";
 export default {
-  components: { pagination },
+  components: { pagination, remoteSearch },
   data () {
     return {
       searchForm: {
@@ -162,62 +162,29 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
-      teacherList: [],
       tableList: [],
-      organList: [],
       visibleForm: {
-        createTime:
-          "啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦"
+        createTime: null
       },
-      afterSchoolVisible: false
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created () { },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {
-    getTeacher().then(res => {
-      if (res.code == 200) {
-        this.teacherList = res.data;
-      }
-    });
-    getEmployeeOrgan().then(res => {
-      if (res.code == 200) {
-        this.organList = res.data;
-      }
-    });
+    this.$store.dispatch('setBranchs')
     // 获取分部
     this.init();
   },
-  activated () {
-    this.init();
-  },
   methods: {
     init () {
-      var now = new Date();
-      var startDate = new Date(
-        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      )
-        .toISOString()
-        .slice(0, 10);
-      //  + " 00:00:00"  + " 23:59:59"
-      var endDate = new Date(
-        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      )
-        .toISOString()
-        .slice(0, 10);
-      this.searchForm.listTimer = [];
-      this.searchForm.listTimer.push(startDate);
-      this.searchForm.listTimer.push(endDate);
-      if (this.$route.query.searchForm) {
-        this.$route.query.searchForm instanceof Object
-          ? (this.searchForm = this.$route.query.searchForm)
-          : (this.searchForm = JSON.parse(this.$route.query.searchForm));
-      }
-      if (this.$route.query.rules) {
-        this.$route.query.rules instanceof Object
-          ? (this.rules = this.$route.query.rules)
-          : (this.rules = JSON.parse(this.$route.query.rules));
+      if(this.searchForm.listTimer.length <= 0) {
+        let now = new Date();
+        let startDate = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())).toISOString().slice(0, 10);
+        let endDate = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())).toISOString().slice(0, 10);
+        this.searchForm.listTimer = [];
+        this.searchForm.listTimer.push(startDate);
+        this.searchForm.listTimer.push(endDate);
       }
       this.getList();
     },
@@ -230,7 +197,7 @@ export default {
       }
       obj.page = this.rules.page;
       obj.rows = this.rules.limit,
-        this.searchForm.teacherId ? obj.teacherId = this.searchForm.teacherId : null;
+      this.searchForm.teacherId ? obj.teacherId = this.searchForm.teacherId : null;
       this.searchForm.listSearch ? obj.title = this.searchForm.listSearch : null;
       this.searchForm.organIdList ? obj.organIdList = this.searchForm.organIdList : null;
       queryPageList(obj).then(res => {
@@ -254,12 +221,7 @@ export default {
       this.search();
     },
     lookDetail (row) {
-      // this.afterSchoolVisible = true;
-
-      let rules = JSON.stringify(this.rules);
-      let searchForm = JSON.stringify(this.searchForm);
-      this.$router.push({ path: '/business/afterSchoolDetail', query: { extracurricularExercisesId: row.id, rules, searchForm, title: row.title } })
-
+      this.$router.push({ path: '/business/afterSchoolDetail', query: { extracurricularExercisesId: row.id, title: row.title } })
     }
   }
 };

+ 21 - 53
src/views/afterSchoolManager/afterWorkList.vue

@@ -5,12 +5,15 @@
       <div class="squrt"></div>课外作业
     </h2>-->
     <div class="m-core">
-      <el-form :inline="true"
+      <save-form :inline="true"
                :model="searchForm"
+               @submit="search"
+               :saveKey="'afterWorkList'"
+               @reset="onReSet"
                v-if="show">
         <el-form-item>
           <el-input v-model.trim="searchForm.search"
-                    @keyup.enter.native="search"
+                    @keyup.enter.native="search" clearable
                     placeholder="请输入标题 学生姓名"></el-input>
         </el-form-item>
         <el-form-item prop="organId">
@@ -19,7 +22,7 @@
                      filterable
                      clearable
                      placeholder="请选择分部">
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
@@ -94,16 +97,13 @@
         </el-form-item>
 
         <el-form-item>
-          <el-button type="danger"
-                     @click="search">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button type="primary" native-type="reset">重置</el-button>
           <el-button @click="onExport"
                      type="primary"
-                     v-permission="'export/extraExercisesReplys'"
-                     style=" background: #14928a; border:1px solid #14928a;">导出</el-button>
+                     v-permission="'export/extraExercisesReplys'">导出</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div class="tableWrap">
         <el-table style="width: 100%"
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}"
@@ -210,39 +210,27 @@
     <el-dialog title="课外训练详情"
                :visible.sync="afterSchoolVisible"
                width="600px">
-      <el-form :model="visibleForm">
-        <!-- <el-form-item label="结束时间">
-          <p class="schoolCell">{{visibleForm.expiryDate}}</p>
-        </el-form-item>-->
+      <el-form :model="visibleForm" label-width="100px">
         <el-form-item label="老师姓名">
-          <p class="schoolCell">{{visibleForm.teacherName}}</p>
+          <el-input v-model="visibleForm.teacherName" disabled></el-input>
         </el-form-item>
         <el-form-item label="学生姓名">
-          <el-popover placement="top-start"
-                      width="400"
-                      trigger="hover"
-                      :content="visibleForm.studentName">
-            <p class="schoolCell"
-               slot="reference">{{visibleForm.studentName}}</p>
-          </el-popover>
+          <el-input v-model="visibleForm.studentName" disabled></el-input>
         </el-form-item>
         <el-form-item label="截止时间">
-          <p class="schoolCell">{{visibleForm.expiryDate | dateForMinFormat}}</p>
+          <el-input v-model="visibleForm.expiryDate" disabled></el-input>
         </el-form-item>
         <el-form-item label="训练标题">
-          <p class="schoolCell">{{visibleForm.title}}</p>
+          <el-input v-model="visibleForm.title" disabled></el-input>
         </el-form-item>
         <el-form-item label="训练内容">
-          <el-input disabled
-                    type="textarea"
-                    rows="5"
-                    v-model="visibleForm.content"
-                    style="width:400px"></el-input>
+          <el-input type="textarea" rows="5" v-model="visibleForm.content" disabled></el-input>
         </el-form-item>
 
         <el-form-item label="学生上传"
                       v-for="(item,index) in visibleForm.attachments"
                       :key="index">
+          <!-- <el-button type="primary" v-if="item" @click="lookWork(item)">点击播放</el-button> -->
           <p class="schoolCell"
              v-if="item"
              @click="lookWork(item)">点击播放</p>
@@ -280,6 +268,7 @@ export default {
         search: null,
         timer: [],
         status: null,
+        isReplied: null,
         isRepliedTimely: null,
         isView: null,
         organIdList: null,
@@ -297,7 +286,7 @@ export default {
       tableList: [],
       organList: [],
       visibleForm: {
-        expiryDate: "啦啦啦啦",
+        expiryDate: "",
         teacherName: "",
         title: "",
         studentName: "",
@@ -315,33 +304,11 @@ export default {
   created () { },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {
-    getEmployeeOrgan().then(res => {
-      if (res.code == 200) {
-        this.organList = res.data;
-      }
-    });
-    this.init();
-  },
-  activated () {
+    this.$store.dispatch('setBranchs')
     this.init();
   },
   methods: {
     init () {
-      //   var now = new Date();
-      //   var startDate = new Date(
-      //     Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      //   )
-      //     .toISOString()
-      //     .slice(0, 10);
-      //   //  + " 00:00:00"  + " 23:59:59"
-      //   var endDate = new Date(
-      //     Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-      //   )
-      //     .toISOString()
-      //     .slice(0, 10);
-      //   this.searchForm.timer = [];
-      //   this.searchForm.timer.push(startDate);
-      //   this.searchForm.timer.push(endDate);
 
       this.extracurricularExercisesId = this.$route.query.extracurricularExercisesId;
       if (this.extracurricularExercisesId) {
@@ -460,6 +427,7 @@ export default {
         timer: [],
         status: null,
         isReplied: null,
+        isRepliedTimely: null,
         isView: null,
         organId: null,
         expireDate: [],

+ 15 - 20
src/views/afterSchoolManager/index.vue

@@ -5,18 +5,20 @@
       <div class="squrt"></div>课外训练
     </h2>
     <div class="m-core">
-      <el-tabs v-model.trim="activeIndex"
+      <location-hash v-model="activeIndex" @change="handleClick">
+        <el-tabs v-model.trim="activeIndex"
                type="card"
                @tab-click="handleClick">
-        <el-tab-pane label="课外训练"
-                     name="1">
-          <afterSchoolList v-if="activeStatus[0]"></afterSchoolList>
-        </el-tab-pane>
-        <el-tab-pane label="课外训练(学员)"
-                     name="2">
-          <afterWorkList v-if="activeStatus[1]"></afterWorkList>
-        </el-tab-pane>
-      </el-tabs>
+          <el-tab-pane lazy label="课外训练"
+                      name="1">
+            <afterSchoolList v-if="activeIndex == 1"></afterSchoolList>
+          </el-tab-pane>
+          <el-tab-pane lazy label="课外训练(学员)"
+                      name="2">
+            <afterWorkList v-if="activeIndex == 2"></afterWorkList>
+          </el-tab-pane>
+        </el-tabs>
+      </location-hash>
     </div>
   </div>
 </template>
@@ -27,10 +29,9 @@ import afterWorkList from "@/views/afterSchoolManager/afterWorkList";
 export default {
   components: { afterSchoolList, afterWorkList},
   data () {
+    const query = this.$route.query
     return {
-      activeIndex: "1",
-      extracurricularExercisesId: null,
-      activeStatus: [true, false],
+      activeIndex: query.opt || "1",
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -39,9 +40,6 @@ export default {
   mounted () {
     this.init();
   },
-  activated () {
-    this.init()
-  },
   methods: {
     init () {
       this.$route.query.activeIndex
@@ -49,12 +47,9 @@ export default {
         : this.activeIndex;
 
     },
-    handleClick (val, event) {
+    handleClick (val) {
       this.activeIndex = val.name
-      this.activeStatus[val.name - 1] = true
     }
   }
 };
 </script>
-<style lang='scss' scoped>
-</style>

+ 140 - 112
src/views/categroyManager/globalConfig.vue

@@ -1,106 +1,133 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>全局配置
+      <div class="squrt"></div>
+      全局配置
     </h2>
     <div class="m-core">
       <!-- navMenu -->
-      <el-tabs v-model.trim="activeIndex"
-               type="card"
-               @tab-click="handleClick">
-
-        <el-tab-pane label="声部设置(对内)"
-        lazy
-                     name="0"
-                     v-if="permissionList.musicalManager">
-          <musicalManager v-if="activeIndex == 0" />
-        </el-tab-pane>
-        <el-tab-pane label="声部设置(对外)"
-        lazy
-                     name="1"
-                     v-if="permissionList.musicalManagerOut">
-          <musicalManagerOut v-if="activeIndex == 1" />
-        </el-tab-pane>
-        <el-tab-pane label="乐团收费类型"
-        lazy
-                     name="2"
-                     v-if="permissionList.typesManager">
-          <typesManager v-if="activeIndex == 2" />
-        </el-tab-pane>
-          <el-tab-pane label="课程时长设置"
-          lazy
-                     name="11"
-                     v-if="permissionList.courseTimerSetting">
-          <courseTimerSetting v-if="activeIndex == 11" />
-        </el-tab-pane>
-        <el-tab-pane label="商品折扣和声部设置"
-        lazy
-                     name="9"
-                     v-if="permissionList.discountManage">
-          <discountManage v-if="activeIndex == 9" />
-        </el-tab-pane>
-        <el-tab-pane label="乐团收费标准"
-        lazy
-                     name="3"
-                     v-if="permissionList.chargesList">
-          <chargesList v-if="activeIndex == 3" />
-        </el-tab-pane>
-        <el-tab-pane label="乐团课程费用"
-        lazy
-                     name="10"
-                     v-if="permissionList.musicCourseFee">
-          <musicCourseFee v-if="activeIndex == 10" />
-        </el-tab-pane>
-        <el-tab-pane label="乐团作业模板"
-        lazy
-                     name="4"
-                     v-if="permissionList.jobTemplateSetting">
-          <jobTemplateSetting v-if="activeIndex == 4" />
-        </el-tab-pane>
-        <el-tab-pane label="热词标签"
-        lazy
-                     name="5"
-                     v-if="permissionList.errorManager">
-          <errorManager v-if="activeIndex == 5" />
-        </el-tab-pane>
-        <el-tab-pane label="参数设置"
-        lazy
-                     name="6"
-                     v-if="permissionList.overallManager">
-          <overallManager v-if="activeIndex == 6" />
-        </el-tab-pane>
-        <el-tab-pane label="收费分润配置"
-        lazy
-                     name="7"
-                     v-if="permissionList.overallManagerTwo">
-          <overallManagerTwo v-if="activeIndex == 7" />
-        </el-tab-pane>
-        <!-- holiday_setting -->
-        <el-tab-pane label="节假日设置"
-        lazy
-                     name="8"
-                     v-if="permissionList.holidaySetting">
-          <holidaySetting v-if="activeIndex == 8" />
-        </el-tab-pane>
-
-      </el-tabs>
+      <location-hash v-model="activeIndex" @change="handleClick">
+        <el-tabs
+          v-model.trim="activeIndex"
+          type="card"
+          @tab-click="handleClick"
+        >
+          <el-tab-pane
+            label="声部设置(对内)"
+            lazy
+            name="0"
+            v-if="permissionList.musicalManager"
+          >
+            <musicalManager v-if="activeIndex == 0" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="声部设置(对外)"
+            lazy
+            name="1"
+            v-if="permissionList.musicalManagerOut"
+          >
+            <musicalManagerOut v-if="activeIndex == 1" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="乐团收费类型"
+            lazy
+            name="2"
+            v-if="permissionList.typesManager"
+          >
+            <typesManager v-if="activeIndex == 2" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="课程时长设置"
+            lazy
+            name="11"
+            v-if="permissionList.courseTimerSetting"
+          >
+            <courseTimerSetting v-if="activeIndex == 11" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="商品折扣和声部设置"
+            lazy
+            name="9"
+            v-if="permissionList.discountManage"
+          >
+            <discountManage v-if="activeIndex == 9" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="乐团收费标准"
+            lazy
+            name="3"
+            v-if="permissionList.chargesList"
+          >
+            <chargesList v-if="activeIndex == 3" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="乐团课程费用"
+            lazy
+            name="10"
+            v-if="permissionList.musicCourseFee"
+          >
+            <musicCourseFee v-if="activeIndex == 10" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="乐团作业模板"
+            lazy
+            name="4"
+            v-if="permissionList.jobTemplateSetting"
+          >
+            <jobTemplateSetting v-if="activeIndex == 4" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="热词标签"
+            lazy
+            name="5"
+            v-if="permissionList.errorManager"
+          >
+            <errorManager v-if="activeIndex == 5" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="参数设置"
+            lazy
+            name="6"
+            v-if="permissionList.overallManager"
+          >
+            <overallManager v-if="activeIndex == 6" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="收费分润配置"
+            lazy
+            name="7"
+            v-if="permissionList.overallManagerTwo"
+          >
+            <overallManagerTwo v-if="activeIndex == 7" />
+          </el-tab-pane>
+          <!-- holiday_setting -->
+          <el-tab-pane
+            label="节假日设置"
+            lazy
+            name="8"
+            v-if="permissionList.holidaySetting"
+          >
+            <holidaySetting v-if="activeIndex == 8" />
+          </el-tab-pane>
+        </el-tabs>
+      </location-hash>
     </div>
   </div>
 </template>
 <script>
-import overallManager from './generalSettings/overallManager'
-import overallManagerTwo from './generalSettings/overallManagerTwo'
-import holidaySetting from './generalSettings/holidaySetting'
-import musicalManager from './specialSetup/musicalManager'
-import musicalManagerOut from './specialSetup/musicalManagerOut'
-import typesManager from './specialSetup/typesManager'
-import discountManage from './specialSetup/discountManage'
-import jobTemplateSetting from './specialSetup/jobTemplateSetting'
-import errorManager from './generalSettings/errorManager'
-import chargesList from './specialSetup/chargesList'
-import musicCourseFee from './specialSetup/musicCourseFee'
-import courseTimerSetting from './specialSetup/courseTimerSetting'
-import { permission } from '@/utils/directivePage'
+import musicalManager from "./specialSetup/musicalManager";
+import musicalManagerOut from "./specialSetup/musicalManagerOut";
+import typesManager from "./specialSetup/typesManager";
+import courseTimerSetting from "./specialSetup/courseTimerSetting";
+import discountManage from "./specialSetup/discountManage";
+import chargesList from "./specialSetup/chargesList";
+import musicCourseFee from "./specialSetup/musicCourseFee";
+import jobTemplateSetting from "./specialSetup/jobTemplateSetting";
+import errorManager from "./generalSettings/errorManager";
+import overallManager from "./generalSettings/overallManager";
+import overallManagerTwo from "./generalSettings/overallManagerTwo";
+import holidaySetting from "./generalSettings/holidaySetting";
+import { permission } from "@/utils/directivePage";
 export default {
   components: {
     overallManager,
@@ -116,32 +143,33 @@ export default {
     musicCourseFee,
     courseTimerSetting
   },
-  name: 'globalConfig',
-  data () {
+  name: "globalConfig",
+  data() {
+    const query = this.$route.query
     return {
-      activeIndex: '0',
+      activeIndex: query.opt || "0",
       permissionList: {
-        overallManager: permission('/globalConfig/overallManager'),
-        overallManagerTwo: permission('/globalConfig/overallManagerTwo'),
-        musicalManager: permission('/globalConfig/musicalManager'),
-        musicalManagerOut: permission('/globalConfig/musicalManagerOut'),
-        typesManager: permission('/globalConfig/typesManager'),
-        chargesList: permission('/globalConfig/chargesList'),
-        jobTemplateSetting: permission('/globalConfig/jobTemplateSetting'),
-        errorManager: permission('/globalConfig/errorManager'),
-        holidaySetting: permission('/globalConfig/holidaySetting'),
-        musicCourseFee: permission('/globalConfig/musicCourseFee'),
-        discountManage: permission('/globalConfig/discountManage'),
-        courseTimerSetting:permission('/globalConfig/courseTimerSetting'),
+        overallManager: permission("/globalConfig/overallManager"),
+        overallManagerTwo: permission("/globalConfig/overallManagerTwo"),
+        musicalManager: permission("/globalConfig/musicalManager"),
+        musicalManagerOut: permission("/globalConfig/musicalManagerOut"),
+        typesManager: permission("/globalConfig/typesManager"),
+        chargesList: permission("/globalConfig/chargesList"),
+        jobTemplateSetting: permission("/globalConfig/jobTemplateSetting"),
+        errorManager: permission("/globalConfig/errorManager"),
+        holidaySetting: permission("/globalConfig/holidaySetting"),
+        musicCourseFee: permission("/globalConfig/musicCourseFee"),
+        discountManage: permission("/globalConfig/discountManage"),
+        courseTimerSetting: permission("/globalConfig/courseTimerSetting")
       }
-    }
+    };
   },
   methods: {
-    handleClick (val) {
-      this.activeIndex = val.name
+    handleClick(val) {
+      this.activeIndex = val.name;
     }
   }
-}
+};
 </script>
 <style lang="scss" scoped>
 /deep/.m-container {

+ 35 - 44
src/views/categroyManager/insideSetting/addressManager.vue

@@ -7,14 +7,14 @@
       <div @click="openTeaching('create')"
            v-permission="'school/add'"
            class='newBand'>新建</div>
-      <el-form :inline="true"
+      <save-form :inline="true"
                class="searchForm"
-               @submit.native.prevent
+               @submit="search"
                v-model.trim="searchForm">
         <el-form-item>
           <el-input type="text"
+                    clearable
                     v-model.trim="searchForm.search"
-                    @keyup.enter.native='search'
                     placeholder="教学点名称"></el-input>
         </el-form-item>
         <el-form-item>
@@ -22,17 +22,16 @@
                      clearable
                      filterable
                      placeholder="请选择分部">
-            <el-option v-for="item in branchList"
-                       :key="item.value"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+            <el-option v-for="item in selects.branchs"
+                       :key="item.id"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button @click="search"
-                     type="danger">搜索</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table :data='tableList'
@@ -104,7 +103,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
+        <pagination sync :total.sync="pageInfo.total"
                     :page.sync="pageInfo.page"
                     :limit.sync="pageInfo.limit"
                     :page-sizes="pageInfo.page_size"
@@ -130,6 +129,7 @@
                       :label-width="formLabelWidth">
           <template v-if="formActionTitle == 'update'">
             <el-select v-model.trim="form.source"
+                       style="width: 100% !important;"
                        filterable
                        clearable
                        disabled>
@@ -142,6 +142,7 @@
           <template v-else>
             <el-select v-model.trim="form.source"
                        filterable
+                       style="width: 100% !important;"
                        clearable>
               <el-option label="合作单位"
                          value="1"></el-option>
@@ -156,6 +157,7 @@
                       :label-width="formLabelWidth">
           <el-select v-model.trim="form.cooperationOrganId"
                      filterable
+                     style="width: 100% !important;"
                      clearable
                      @change="onCooperationChange">
             <el-option v-for="item in cooperationList"
@@ -177,11 +179,12 @@
                       :label-width="formLabelWidth">
           <el-select v-model.trim="form.organId"
                      clearable
+                     style="width: 100% !important;"
                      filterable>
-            <el-option v-for="item in branchList"
-                       :key="item.value"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+            <el-option v-for="item in selects.branchs"
+                       :key="item.id"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="address"
@@ -326,7 +329,6 @@ export default {
         autoFitView: true // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
       },
       cooperationList: [], // 合作单位列表
-      branchList: [],
       searchValue: '测试'
     }
   },
@@ -464,40 +466,29 @@ export default {
         }
       })
     },
-    getBreachList () { // 获取分部列表
+    async getBreachList () { // 获取分部列表
       // 获取当前用户分部
-      getEmployeeOrgan().then(res => {
+      await this.$store.dispatch('setBranchs')
+
+      let branchIds = []
+      this.selects.branchs.forEach(item => {
+        branchIds.push(item.id)
+      })
+      await queryByOrganId({
+        organId: branchIds.join(',')
+      }).then(res => {
         if (res.code == 200) {
-          let branchIds = []
-          res.data.forEach(item => {
-            branchIds.push(item.id)
-            this.branchList.push({
-              label: item.name,
-              value: item.id
+          // 判断是否有数据
+          if (!res.data && res.data.length <= 0) return
+          res.data.forEach(r => {
+            this.cooperationList.push({
+              value: r.id,
+              organId: r.organId,
+              label: r.name
             })
           })
-
-          queryByOrganId({
-            organId: branchIds.join(',')
-          }).then(res => {
-            if (res.code == 200) {
-              // 判断是否有数据
-              if (!res.data && res.data.length <= 0) return
-              res.data.forEach(r => {
-                this.cooperationList.push({
-                  value: r.id,
-                  organId: r.organId,
-                  label: r.name
-                })
-              })
-            }
-          })
-
         }
       })
-
-
-
     },
     openTeaching (type, row) {
       // 重置数据

+ 6 - 2
src/views/categroyManager/insideSetting/adminManager.vue

@@ -28,7 +28,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
+        <pagination sync :total.sync="pageInfo.total"
                     :page.sync="pageInfo.page"
                     :limit.sync="pageInfo.limit"
                     :page-sizes="pageInfo.page_size"
@@ -90,10 +90,14 @@ export default {
           page: this.pageInfo.page
         }
       }
+      let tagTitle = '新建'
       if (row) {
         params.query.id = row.id
+        tagTitle = '修改'
       }
-      this.$router.push(params)
+      this.$router.push(params, (route) => {
+        route.meta.title = tagTitle + '系统角色权限'
+      })
     }
   }
 }

+ 1 - 1
src/views/categroyManager/insideSetting/adminOperation.vue

@@ -17,7 +17,7 @@
                     v-model.trim="result.roleDesc"></el-input>
         </el-form-item>
         <el-form-item label="搜索">
-          <el-input style="width:212px"
+          <el-input style="width:210px"
                     v-model.trim="seachRoleValue"></el-input>
           <el-button style="margin-left: 10px"
                      type="danger"

+ 19 - 30
src/views/categroyManager/insideSetting/branchManager.vue

@@ -5,11 +5,13 @@
     </h2>
     <div class="m-core">
       <!-- 搜索类型 -->
-      <el-form :inline="true"
+      <save-form :inline="true"
                class="searchForm"
-               v-model.trim="searchForm">
+               @submit="search"
+               @reset="onReSet"
+               :model="searchForm">
         <el-form-item>
-          <el-input v-model="searchForm.search"
+          <el-input v-model="searchForm.search" clearable
                     placeholder="请输入合作单位名称"></el-input>
         </el-form-item>
         <el-form-item>
@@ -17,10 +19,10 @@
                      placeholder="请选择分部"
                      filterable
                      clearable>
-            <el-option v-for="item in userBranchList"
-                       :key="item.value"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+            <el-option v-for="item in selects.branchs"
+                       :key="item.id"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -35,16 +37,14 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button @click="search"
-                     type="danger">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
           <!-- export/isSettlementCourseSalarys  -->
           <el-button @click="onExport"
                      v-permission="'export/cooperationOrgan'"
                      type="primary">导出</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div @click="openTeaching('create')"
            v-permission="'cooperationOrgan/add'"
            class='newBand'>新建</div>
@@ -115,7 +115,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
+        <pagination sync :total.sync="pageInfo.total"
                     :page.sync="pageInfo.page"
                     :limit.sync="pageInfo.limit"
                     :page-sizes="pageInfo.page_size"
@@ -142,10 +142,10 @@
           <el-select v-model.trim="form.organId"
                      filterable
                      clearable>
-            <el-option v-for="item in userBranchList"
-                       :key="item.value"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+            <el-option v-for="item in selects.branchs"
+                       :key="item.id"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="状态"
@@ -201,7 +201,6 @@
 <script>
 import pagination from '@/components/Pagination/index'
 import { cooperationOrganAdd, cooperationOrganUpdate, cooperationOrganDel, queryPage } from '@/api/systemManage'
-import { getEmployeeOrgan } from '@/api/buildTeam'
 import cleanDeep from 'clean-deep'
 import store from '@/store'
 import { isvalidPhone } from '@/utils/validate'
@@ -230,7 +229,6 @@ export default {
       },
       searchLsit: [],
       tableList: [],
-      userBranchList: [], // 用户当前分部列表
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -238,7 +236,7 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
-      teachingStatus: false, // 添加教学点 
+      teachingStatus: false, // 添加教学点
       formActionTitle: 'create',
       formTitle: {
         create: '添加合作单位',
@@ -270,16 +268,7 @@ export default {
     this.getList() // 获取列表数据
 
     // 获取当前用户分部
-    getEmployeeOrgan().then(res => {
-      if (res.code == 200) {
-        res.data.forEach(item => {
-          this.userBranchList.push({
-            label: item.name,
-            value: item.id
-          })
-        })
-      }
-    })
+    this.$store.dispatch('setBranchs')
   },
   methods: {
     onDelete (rows) {

+ 56 - 63
src/views/categroyManager/insideSetting/staffManager.vue

@@ -8,17 +8,19 @@
            v-permission="'employee/add'"
            class='newBand'>添加</div>
 
-      <el-form :inline="true"
+      <save-form :inline="true"
                class="searchForm"
-               @submit.native.prevent
-               v-model.trim="searchForm">
-        <el-form-item>
-          <el-input type="text"
+               ref="searchForm"
+               @submit="search"
+               @reset="reset"
+               :model="searchForm">
+        <el-form-item prop="search">
+          <el-input type="text" clearable
                     v-model.trim="searchForm.search"
                     @keyup.enter.native='search'
                     placeholder="姓名或手机号"></el-input>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="jobNature">
           <el-select v-model.trim="searchForm.jobNature"
                      clearable
                      filterable
@@ -31,18 +33,18 @@
                        value="TEMPORARY"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="organId">
           <el-select v-model.trim="searchForm.organId"
                      clearable
                      filterable
                      placeholder="请选择分部">
-            <el-option v-for="item in branchList"
-                       :key="item.value"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+            <el-option v-for="item in selects.branchs"
+                       :key="item.id"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="roleId">
           <!--   multiple -->
           <el-select v-model.trim="searchForm.roleId"
                      clearable
@@ -56,10 +58,10 @@
           <!-- collapse-tags -->
         </el-form-item>
         <el-form-item>
-          <el-button @click="search"
-                     type="danger">搜索</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
 
       <!-- 列表 -->
       <div class="tableWrap">
@@ -68,20 +70,28 @@
           <el-table-column align='center'
                            prop="id"
                            label="员工编号">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.id }}</copy-text>
+            </template>
           </el-table-column>
           <el-table-column align='center'
                            prop="realName"
                            label="姓名">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.realName }}</copy-text>
+            </template>
           </el-table-column>
           <el-table-column align='center'
                            prop="phone"
                            label="手机号">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.phone }}</copy-text>
+            </template>
           </el-table-column>
           <el-table-column align='center'
                            label="角色分类">
             <template slot-scope="scope">
-              <span style="max-height: 68px;display: block;"
-                    :title="scope.row.roleNames | joinArray(',')">{{ scope.row.roleNames | joinArray(',') }}</span>
+              <tooltip :content="scope.row.roleNames | joinArray(',')"></tooltip>
             </template>
           </el-table-column>
           <el-table-column align='center'
@@ -93,16 +103,9 @@
           </el-table-column>
           <el-table-column align='center'
                            label="所属部门">
-            <span style="display: inline-block;width: 100%;overflow: hidden;white-space: nowrap; text-overflow: ellipsis;"
-                  slot-scope="scope">
-              <el-popover placement="top-start"
-                          width="200"
-                          trigger="hover"
-                          :content="scope.row.organNameList | joinArray(',')">
-                <span slot="reference">{{ scope.row.organNameList | joinArray(',') }}</span>
-              </el-popover>
-
-            </span>
+            <template slot-scope="scope">
+              <tooltip :content="scope.row.organNameList | joinArray(',')"></tooltip>
+            </template>
           </el-table-column>
           <el-table-column align='center'
                            label="状态"
@@ -139,7 +142,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
+        <pagination sync :total.sync="pageInfo.total"
                     :page.sync="pageInfo.page"
                     :limit.sync="pageInfo.limit"
                     :page-sizes="pageInfo.page_size"
@@ -157,13 +160,14 @@
         <el-form-item label="姓名"
                       prop="realName"
                       :label-width="formLabelWidth">
-          <el-input v-model.trim="form.realName"
+          <el-input v-model.trim="form.realName" placeholder="请输入姓名"
                     autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="性别"
                       prop="gender"
                       :label-width="formLabelWidth">
           <el-select v-model.trim="form.gender"
+                     placeholder="请选择性别"
                      clearable
                      filterable>
             <el-option label="男"
@@ -175,22 +179,23 @@
         <el-form-item label="手机号"
                       prop="phone"
                       :label-width="formLabelWidth">
-          <el-input v-model.trim.number="form.phone"
+          <el-input v-model.trim.number="form.phone" placeholder="请输入手机号"
                     autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="角色分类"
                       prop="roleIds"
                       :label-width="formLabelWidth">
           <el-select v-model.trim="form.roleIds"
+                     placeholder="请选择角色分类"
                      clearable
                      filterable
+                     collapse-tags
                      multiple>
             <el-option v-for="item in roleList"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value"></el-option>
           </el-select>
-          <!-- collapse-tags -->
         </el-form-item>
         <el-form-item label="所属部门"
                       prop="organIdLists"
@@ -198,12 +203,14 @@
           <el-select style="width: calc(100% - 75px) !important;"
                      filterable
                      clearable
+                      placeholder="请选择部门"
+                     collapse-tags
                      v-model.trim="form.organIdLists"
                      multiple>
-            <el-option v-for="item in branchList"
-                       :key="item.value"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+            <el-option v-for="item in selects.branchs"
+                       :key="item.id"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
           <el-button @click="onBranchCheckAll">全选</el-button>
         </el-form-item>
@@ -212,6 +219,7 @@
                       :label-width="formLabelWidth">
           <el-select v-model.trim="form.jobNature"
                      clearable
+                     placeholder="请选择工作类型"
                      filterable>
             <el-option label="全职"
                        value="FULL_TIME"></el-option>
@@ -230,19 +238,19 @@
                             firstDayOfWeek:1
                           }"
                           value-format="yyyy-MM-dd HH:mm:ss"
-                          placeholder="选择日期">
+                          placeholder="选择入职日期">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="通讯地址"
                       prop="contactAddress"
                       :label-width="formLabelWidth">
-          <el-input v-model.trim="form.contactAddress"
+          <el-input v-model.trim="form.contactAddress" placeholder="请输入通讯地址"
                     autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="邮政编码"
                       prop="postalCode"
                       :label-width="formLabelWidth">
-          <el-input v-model.trim="form.postalCode"
+          <el-input v-model.trim="form.postalCode" placeholder="请输入邮政编码"
                     autocomplete="off"></el-input>
         </el-form-item>
       </el-form>
@@ -293,9 +301,9 @@
 <script>
 import pagination from '@/components/Pagination/index'
 import { queryEmployByOrganId, employeeOperate, getUserRole, employeeAdd, employeeUpdate, hasCourseGroupRelation, updateEducationTeacherId } from '@/api/systemManage'
-import { branchQueryPage, findEducationTeacher } from '@/api/specialSetting'
+import { findEducationTeacher } from '@/api/specialSetting'
 import { findEducationUsers } from '@/api/buildTeam'
-import store from '@/store'
+import Tooltip from '@/components/Tooltip/index'
 import { isvalidPhone } from '@/utils/validate'
 let validPhone = (rule, value, callback) => {
   if (!value) {
@@ -308,7 +316,7 @@ let validPhone = (rule, value, callback) => {
 }
 export default {
   name: 'staffManager',
-  components: { pagination },
+  components: { pagination, Tooltip },
   data () {
     return {
       tableList: [],
@@ -328,7 +336,6 @@ export default {
       roleStatus: false,
       formActionTitle: 'create',
       roleList: [], // 角色列表
-      branchList: [], // 分部列表
       formTitle: {
         create: '添加员工',
         update: '修改员工'
@@ -367,17 +374,13 @@ export default {
     this.getList()
     this.getRoleList()
   },
-  activated () {
-    this.getList()
-    this.getRoleList()
-  },
   methods: {
 
     onBranchCheckAll () {
       this.form.organIdLists = []
 
-      this.branchList.forEach(item => {
-        this.form.organIdLists.push(item.value)
+      this.selects.branchs.forEach(item => {
+        this.form.organIdLists.push(item.id)
       })
     },
     onRoleSubmit (formName) {
@@ -414,6 +417,10 @@ export default {
       this.pageInfo.page = 1
       this.getList()
     },
+    reset() {
+      this.$refs.searchForm.resetFields()
+      this.search()
+    },
     getList () {
       let searchForm = this.searchForm
       let params = {
@@ -444,21 +451,7 @@ export default {
           })
         }
       })
-      branchQueryPage({ // 获取分部
-        delFlag: 0,
-        rows: 9999
-      }).then(res => {
-        if (res.code == 200 && res.data && res.data.rows) {
-          this.branchList = []
-          res.data.rows.forEach(item => {
-            this.branchList.push({
-              label: item.name,
-              value: item.id
-            })
-          })
-        }
-      })
-
+      this.$store.dispatch('setBranchs')
     },
     roleOperation (type, data) {
       this.formActionTitle = type

+ 4 - 4
src/views/categroyManager/specialSetup/chargesList.vue

@@ -2,7 +2,7 @@
   <div class='m-container'>
     <!-- <h2>收费类型设置</h2> -->
     <div class="m-core">
-      <el-form :inline="true" :model="searchForm">
+      <save-form :inline="true" @submit="search" @reset="onReSet" :saveKey="'chargesList'" :model="searchForm">
         <el-form-item>
           <el-select
             placeholder="请选择分部"
@@ -34,10 +34,10 @@
         </el-form-item>
 
         <el-form-item>
-          <el-button type="danger" @click="search">搜索</el-button>
-          <el-button @click="onReSet" type="primary">重置</el-button>
+          <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button type="primary" native-type="reset">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div @click="onChargeOperation('create')" v-permission="'chargeTypeOrganizationFee/add'"
            class='newBand'>添加</div>
       <div class="tableWrap">

+ 5 - 2
src/views/categroyManager/specialSetup/courseTimerSetting.vue

@@ -4,6 +4,9 @@
       :inline="true"
       class="searchForm"
       ref="searchForm"
+      @submit="search"
+      @reset="reset"
+      :saveKey="'courseTimerSetting'"
       :model.sync="searchForm"
     >
       <el-form-item :rules="[]">
@@ -39,8 +42,8 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="search" type="primary">搜索</el-button>
-        <el-button @click="reset" type="danger">重置</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
+        <el-button native-type="reset" type="primary">重置</el-button>
       </el-form-item>
     </save-form>
     <div

+ 8 - 7
src/views/categroyManager/specialSetup/discountManage.vue

@@ -2,7 +2,10 @@
   <div class='m-container'>
     <!-- <h2>折扣设置</h2> -->
     <div class="m-core">
-      <el-form :inline="true"
+      <save-form :inline="true"
+               @submit="search"
+               @reset="onReSet"
+               :saveKey="'discountManage'"
                :model="searchForm">
         <el-form-item>
           <el-select v-model.trim="searchForm.subjectId"
@@ -34,12 +37,10 @@
         </el-form-item>
 
         <el-form-item>
-          <el-button type="danger"
-                     @click="search">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div class='newBand'
            v-permission="'chargeTypeSubjectMapper/insert'"
            @click="createVisible = true">添加</div>
@@ -73,7 +74,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
+        <pagination sync :total.sync="pageInfo.total"
                     :page.sync="pageInfo.page"
                     :limit.sync="pageInfo.limit"
                     :page-sizes="pageInfo.page_size"

+ 8 - 38
src/views/categroyManager/specialSetup/jobTemplateSetting.vue

@@ -74,15 +74,11 @@
             <el-select v-model.trim="form.subjectId"
                        clearable
                        filterable>
-              <el-option-group v-for="group in subjectList"
-                               :key="group.label"
-                               :label="group.label">
-                <el-option v-for="item in group.options"
-                           :key="item.value"
-                           :label="item.label"
-                           :value="item.value">
-                </el-option>
-              </el-option-group>
+              <el-option v-for="item in selects.subjects"
+                           :key="item.id"
+                          :label="item.name"
+                           :value="item.id">
+              </el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="作业内容"
@@ -107,14 +103,13 @@
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
-import { courseHomeworkTemplateList, subjectListTree, homeWorkUpdate, homeWorkAdd, homeWorkDel } from '@/api/specialSetting'
+import { courseHomeworkTemplateList, homeWorkUpdate, homeWorkAdd, homeWorkDel } from '@/api/specialSetting'
 export default {
   components: { pagination },
   name: 'jobTemplateSetting',
   data () {
     return {
       tableList: [],
-      subjectList: [], // 声部
       formActionTitle: 'create',
       formTitle: {
         create: '添加作业模板',
@@ -145,7 +140,8 @@ export default {
   },
   mounted () {
     this.getList()
-    this.getSubjectTree()
+    // 获取声部
+    this.$store.dispatch('setSubjects')
   },
   methods: {
     onJobSubmit (formName) { // 添加数据
@@ -220,32 +216,6 @@ export default {
       }
       this.$refs[formName].resetFields()
     },
-    getSubjectTree () { // 获取声部列表
-      subjectListTree({
-        delFlag: 'NO',
-        rows: 9999
-      }).then(res => {
-        let result = res.data
-        if (res.code == 200) {
-          let tempArray = []
-          result.rows.forEach((item, index) => {
-            let subject = []
-            item.subjects.forEach(s => {
-              subject.push({
-                value: s.id,
-                label: s.name
-              })
-            })
-
-            tempArray[index] = {
-              label: item.name,
-              options: subject
-            }
-          })
-          this.subjectList = tempArray
-        }
-      })
-    }
 
   }
 }

+ 16 - 20
src/views/categroyManager/specialSetup/musicCourseFee.vue

@@ -2,19 +2,23 @@
   <div class="m-container">
     <!-- <h2>折扣设置</h2> -->
     <div class="m-core">
-      <el-form :inline="true"
+      <save-form :inline="true"
+               @submit="search"
+               @reset="onReSet"
+               ref="searchForm"
+               :saveKey="'musicCourseFee'"
                :model="searchForm">
-        <el-form-item>
+        <el-form-item prop="organId">
           <el-select placeholder="请选择分部"
                      v-model="searchForm.organId"
                      clearable>
-            <el-option v-for="(item, index) in organList"
+            <el-option v-for="(item, index) in selects.branchs"
                        :label="item.name"
                        :value="item.id"
                        :key="index"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="courseScheduleType">
           <el-select placeholder="课程类型"
                      v-model="searchForm.courseScheduleType"
                      clearable
@@ -27,12 +31,11 @@
         </el-form-item>
 
         <el-form-item>
-          <el-button type="danger"
-                     @click="search">搜索</el-button>
-          <el-button @click="onReSet"
+          <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button native-type="reset"
                      type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div class="newBand"
            v-permission="'organizationCourseUnitPriceSettings/insert'"
            @click="newVisiable = true">
@@ -105,7 +108,7 @@
           <el-select placeholder="请选择分部"
                      v-model="createForm.organId"
                      clearable>
-            <el-option v-for="(item, index) in organList"
+            <el-option v-for="(item, index) in selects.branchs"
                        :label="item.name"
                        :value="item.id"
                        :key="index"></el-option>
@@ -172,7 +175,7 @@
                      v-model="resetForm.organId"
                      clearable
                      disabled>
-            <el-option v-for="(item, index) in organList"
+            <el-option v-for="(item, index) in search.branchs"
                        :label="item.name"
                        :value="item.id"
                        :key="index"></el-option>
@@ -282,14 +285,10 @@ export default {
         this.dataList.forEach((item) => {
           this.$set(this.createForm.unitPriceJson, item.id, null);
         });
-        console.log(this.createForm);
-      }
-    });
-    getEmployeeOrgan().then((res) => {
-      if (res.code == 200) {
-        this.organList = res.data;
       }
     });
+    // 获取分部
+    this.$store.dispatch('setBranchs')
     this.getList();
   },
   methods: {
@@ -298,10 +297,7 @@ export default {
       this.getList();
     },
     onReSet () {
-      this.searchForm = {
-        organId: null,
-        courseScheduleType: null,
-      };
+      this.$refs.searchForm.resetFields()
       this.search();
     },
 

+ 15 - 12
src/views/chargeManager/index.vue

@@ -6,17 +6,19 @@
     </h2>
     <div class="m-core">
       <!-- navMenu -->
-      <el-tabs v-model.trim="activeIndex" type="card" @tab-click="handleClick">
-        <el-tab-pane label="分润" name="0" v-if="permissionList.share">
-            <three v-if="activeIndex == 0" />
-        </el-tab-pane>
-        <el-tab-pane label="比例" name="1" v-if="permissionList.scalc">
-            <one v-if="activeIndex == 1" />
-        </el-tab-pane>
-        <el-tab-pane label="金额" name="2" v-if="permissionList.money">
-            <two v-if="activeIndex == 2" />
-        </el-tab-pane>
-      </el-tabs>
+      <location-hash v-model="activeIndex" @change="handleClick">
+        <el-tabs v-model.trim="activeIndex" type="card" @tab-click="handleClick">
+          <el-tab-pane lazy label="分润" name="0" v-if="permissionList.share">
+              <three v-if="activeIndex == 0" />
+          </el-tab-pane>
+          <el-tab-pane lazy label="比例" name="1" v-if="permissionList.scalc">
+              <one v-if="activeIndex == 1" />
+          </el-tab-pane>
+          <el-tab-pane lazy label="金额" name="2" v-if="permissionList.money">
+              <two v-if="activeIndex == 2" />
+          </el-tab-pane>
+        </el-tabs>
+      </location-hash>
     </div>
   </div>
 </template>
@@ -33,8 +35,9 @@ export default {
   },
   name: 'chargeManager',
   data () {
+    const query = this.$route.query
     return {
-      activeIndex: '0',
+      activeIndex: query.opt || '0',
       permissionList: {
         scalc: permission('/chargeManager/scalc'),
         money: permission('/chargeManager/money'),

+ 6 - 20
src/views/chargeManager/one.vue

@@ -36,7 +36,8 @@
           </el-table-column>
         </el-table>
         <pagination
-          :total="pageInfo.total"
+          sync
+          :total.sync="pageInfo.total"
           :page.sync="pageInfo.page"
           :limit.sync="pageInfo.limit"
           :page-sizes="pageInfo.page_size"
@@ -55,10 +56,10 @@
         <el-form-item label="所属分部" prop="organId" :label-width="formLabelWidth">
           <el-select v-model.trim="form.organId" :disabled="formActionTitle === 'update'" placeholder="请选择所属分部">
             <el-option
-              v-for="(item, index) in branchList"
+              v-for="(item, index) in selects.branchs"
               :key="index"
-              :label="item.label"
-              :value="item.value"
+              :label="item.name"
+              :value="item.id"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -188,7 +189,6 @@ import {
   paymentConfigDel
 } from "@/api/systemManage";
 import { getPaymentConfigs } from "./api";
-import { branchQueryPage } from "@/api/specialSetting";
 import store from "@/store";
 export default {
   name: "chargeProfitManager",
@@ -204,7 +204,6 @@ export default {
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       chargeStatus: false,
-      branchList: [], // 分部列表
       calcBranchList: [], // 可选比例分部
       formActionTitle: "create",
       formLabelWidth: "100px",
@@ -516,20 +515,7 @@ export default {
     },
     getRoleList() {
       //
-      branchQueryPage({
-        // 获取分部
-        delFlag: 0,
-        rows: 9999
-      }).then(res => {
-        if (res.code == 200 && res.data && res.data.rows) {
-          res.data.rows.forEach(item => {
-            this.branchList.push({
-              label: item.name,
-              value: item.id
-            });
-          });
-        }
-      });
+      this.$store.dispatch('setBranchs')
     },
     chargeOperation(type, data) {
       this.formActionTitle = type;

+ 5 - 5
src/views/chargeManager/share-model.vue

@@ -4,10 +4,10 @@
             <el-form-item label="所属分部" prop="organId" :label-width="formLabelWidth">
                 <el-select v-model.trim="form.organId" :disabled="formActionTitle === 'update'" placeholder="请选择所属分部">
                     <el-option
-                    v-for="item in branchList"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
+                    v-for="item in selects.branchs"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id"
                     ></el-option>
                 </el-select>
             </el-form-item>
@@ -149,7 +149,7 @@ const validSale = (rule, value, callback) => {
   }
 };
 export default {
-    props:['detail', 'branchList', 'close', 'getList', 'formActionTitle'],
+    props:['detail', 'close', 'getList', 'formActionTitle'],
     data() {
         return {
             formLabelWidth: "100px",

+ 6 - 20
src/views/chargeManager/three.vue

@@ -32,7 +32,8 @@
           </el-table-column>
         </el-table>
         <pagination
-          :total="pageInfo.total"
+          sync
+          :total.sync="pageInfo.total"
           :page.sync="pageInfo.page"
           :limit.sync="pageInfo.limit"
           :page-sizes="pageInfo.page_size"
@@ -48,7 +49,6 @@
       width="700px"
     >
       <share-model :detail.sync="rowDetail"
-              :branchList="branchList"
               :formActionTitle="formActionTitle"
               :close="onFormClose"
               :getList="getList" />
@@ -77,7 +77,6 @@ export default {
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       chargeStatus: false,
-      branchList: [], // 分部列表
       formActionTitle: "create",
       formTitle: {
         create: "添加分润",
@@ -93,9 +92,9 @@ export default {
   methods: {
     getOrganToStr(id) {
       let name = null
-      this.branchList.forEach(item => {
-        if(item.value == id) {
-          name = item.label
+      this.selects.branchs.forEach(item => {
+        if(item.id == id) {
+          name = item.name
         }
       })
       return name
@@ -126,20 +125,7 @@ export default {
       });
     },
     async getRoleList(val) {
-      await branchQueryPage({
-        // 获取分部
-        delFlag: 0,
-        rows: 9999
-      }).then(res => {
-        if (res.code == 200 && res.data && res.data.rows) {
-          res.data.rows.forEach(item => {
-            this.branchList.push({
-              label: item.name,
-              value: item.id
-            });
-          });
-        }
-      });
+      this.$store.dispatch('setBranchs')
     },
     chargeOperation(type, data) {
       this.formActionTitle = type;

+ 4 - 19
src/views/chargeManager/two.vue

@@ -23,10 +23,10 @@
               }">
               <el-select v-model.trim="domain.organId" clearable :disabled="domain.disabled" placeholder="请选择所属分部">
                 <el-option
-                  v-for="(item, index1) in branchList"
+                  v-for="(item, index1) in selects.branchs"
                   :key="index1"
-                  :label="item.label"
-                  :value="item.value"
+                  :label="item.name"
+                  :value="item.id"
                 ></el-option>
               </el-select>
             </el-form-item>
@@ -144,7 +144,6 @@ export default {
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       roleList: [], // 角色列表
-      branchList: [], // 分部列表
       calcBranchList: [],
       formLabelWidth: "100px",
       result: {
@@ -186,21 +185,7 @@ export default {
   },
   methods: {
     async __init() {
-      await branchQueryPage({
-        // 获取分部
-        delFlag: 0,
-        rows: 9999
-      }).then(res => {
-        this.branchList = [];
-        if (res.code == 200 && res.data && res.data.rows) {
-          res.data.rows.forEach(item => {
-            this.branchList.push({
-              label: item.name,
-              value: item.id
-            });
-          });
-        }
-      });
+      this.$store.dispatch('setBranchs')
       await getPaymentConfigs().then(res => {
         if (res.code == 200 && res.data) {
           res.data.forEach(item => {

+ 8 - 6
src/views/editionManager/editionList.vue

@@ -8,7 +8,8 @@
       <div class="newBand"
            @click="createEdi"
            v-permission="'appVersionInfo/add'">新建</div>
-      <el-form :inline="true"
+      <save-form :inline="true"
+               @submit="search"
                :model="searchForm">
         <el-form-item label="客户端">
           <el-select clearable
@@ -20,10 +21,9 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="danger"
-                     @click="search">搜索</el-button>
+          <el-button type="danger" native-type="submit">搜索</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
 
       <div class="tableWrap">
         <el-table :data="tableList"
@@ -77,7 +77,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="rules.total"
+        <pagination sync :total.sync="rules.total"
                     :page.sync="rules.page"
                     :limit.sync="rules.limit"
                     :page-sizes="rules.page_size"
@@ -94,12 +94,12 @@
                :rules="sectionRules"
                label-position="right"
                label-width="80px"
-               :inline="true"
                v-if="sectionVisible">
         <el-form-item label="客户端"
                       prop="platform"
                       v-if="isNew">
           <el-select v-model="sectionForm.platform"
+                     style="width: 100% !important"
                      clearable>
             <el-option v-for="(item,index) in sectionList"
                        :key="index"
@@ -116,6 +116,7 @@
         <el-form-item label="强制更新"
                       prop="isForceUpdate">
           <el-select clearable
+                      style="width: 100% !important"
                      v-model="sectionForm.isForceUpdate">
             <el-option label="是"
                        :value="true"></el-option>
@@ -126,6 +127,7 @@
         <el-form-item label="状态"
                       prop="status">
           <el-select clearable
+                      style="width: 100% !important"
                      v-model="sectionForm.status">
             <el-option label="最新"
                        value="newest"></el-option>

+ 12 - 24
src/views/levelManager/levelManager.vue

@@ -13,15 +13,15 @@
                @reset="onReSet"
                :model="searchForm">
         <el-form-item prop="name">
-          <el-input v-model.trim="searchForm.name"
+          <el-input v-model.trim="searchForm.name" clearable
                     placeholder="请输入姓名"></el-input>
         </el-form-item>
         <el-form-item prop="orderNo">
-          <el-input v-model.trim="searchForm.orderNo"
+          <el-input v-model.trim="searchForm.orderNo" clearable
                     placeholder="请输入订单编号"></el-input>
         </el-form-item>
         <el-form-item prop="transNo">
-          <el-input v-model.trim="searchForm.transNo"
+          <el-input v-model.trim="searchForm.transNo" clearable
                     placeholder="请输入交易流水号"></el-input>
         </el-form-item>
         <!-- <el-form-item>
@@ -34,10 +34,10 @@
                      filterable
                      clearable
                      placeholder="请选择分部">
-            <el-option v-for="item in branchList"
+            <el-option v-for="item in selects.branchs"
                        :key="item.id"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item >
@@ -92,7 +92,11 @@
                            label="姓名"></el-table-column>
           <el-table-column align="center"
                            prop="orderNo"
-                           label="订单编号"></el-table-column>
+                           label="订单编号">
+            <template slot-scope="scope">
+              <copy-text>{{scope.row.orderNo}}</copy-text>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="transNo"
                            label="交易流水号">
@@ -184,7 +188,6 @@ import cleandeep from 'clean-deep'
 // import store from '@/store'
 import { degreeQueryPage } from "./levelManageApi";
 import { getToken } from "@/utils/auth";
-import { getEmployeeOrgan } from "@/api/buildTeam";
 import load from "@/utils/loading";
 export default {
   components: { pagination },
@@ -205,7 +208,6 @@ export default {
       totalNumber: 0,
       totalAmount: 0,
       tableList: [],
-      branchList: [], // 分部列表
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -216,27 +218,13 @@ export default {
       tempTreeList: [],
     };
   },
-  activated () {
-    this.getList();
-    this.__init();
-  },
   mounted () {
     this.getList();
     this.__init();
   },
   methods: {
     __init () {
-      getEmployeeOrgan().then((res) => {
-        if (res.code == 200) {
-          this.branchList = [];
-          res.data.forEach((item) => {
-            this.branchList.push({
-              label: item.name,
-              value: item.id,
-            });
-          });
-        }
-      });
+      this.$store.dispatch('setBranchs')
     },
     onSearch () {
       this.pageInfo.page = 1;

+ 7 - 9
src/views/luckyDraw/lotteryManager.vue

@@ -6,18 +6,19 @@
         </h2>
         <div class="newBand" v-permission="'luckDrawGroup/add'" @click="onOperationLottery('create')">添加</div>
         <!-- 搜索标题 -->
-        <el-form :inline="true"
+        <save-form :inline="true"
                 class="searchForm"
-                v-model.trim="searchForm">
+                @submit="getList"
+                :model="searchForm">
         <el-form-item >
-            <el-input v-model.trim="searchForm.search"
+            <el-input v-model.trim="searchForm.search" clearable
                     placeholder="请输入活动名称"></el-input>
         </el-form-item>
         <el-form-item>
-            <el-button @click="getList"
+            <el-button native-type="submit"
                     type="danger">搜索</el-button>
         </el-form-item>
-        </el-form>
+        </save-form>
         <!-- 列表 -->
         <div class="tableWrap">
             <el-table :data="tableList"
@@ -40,7 +41,7 @@
                     </template>
                 </el-table-column>
             </el-table>
-            <pagination :total="pageInfo.total"
+            <pagination sync :total.sync="pageInfo.total"
                         :page.sync="pageInfo.page"
                         :limit.sync="pageInfo.limit"
                         :page-sizes="pageInfo.page_size"
@@ -127,9 +128,6 @@ export default {
     mounted () {
         this.getList()
     },
-    activated () {
-        this.getList()
-    },
     methods: {
         onOperationLottery(type, data) {
             this.formActionTitle = type

+ 42 - 28
src/views/luckyDraw/lotteryRecord.vue

@@ -5,24 +5,27 @@
             <div class="squrt"></div>抽奖记录
         </h2>
         <!-- 搜索标题 -->
-        <el-form :inline="true"
+        <save-form :inline="true"
                 class="searchForm"
-                v-model.trim="searchForm">
-            <el-form-item>
-                <el-input v-model.trim="searchForm.userId"
-                        placeholder="请输入学生编号"></el-input>
+                ref="searchForm"
+                @submit="search"
+                @reset="onReset"
+                :model="searchForm">
+            <el-form-item prop="userId">
+                <el-input v-model.number="searchForm.userId" maxlength="9" clearable placeholder="请输入学生编号" type="number"></el-input>
             </el-form-item>
-            <el-form-item>
-                <el-input v-model.trim="searchForm.name"
+            <el-form-item prop="name">
+                <el-input v-model.trim="searchForm.name" clearable
                         placeholder="请输入奖项名称"></el-input>
             </el-form-item>
-            <el-form-item>
+            <el-form-item prop="time">
                 <el-date-picker
                     style="width: 100%"
                     v-model="time"
                     :picker-options="{ firstDayOfWeek: 1 }"
                     @change="onDateChange"
                     type="daterange"
+                    clearable
                     range-separator="至"
                     start-placeholder="抽奖开始日期"
                     end-placeholder="抽奖结束日期">
@@ -34,24 +37,28 @@
                             filterable
                             clearable
                             placeholder="请选择分部">
-                    <el-option v-for="(item,index) in organList"
+                    <el-option v-for="(item,index) in selects.branchs"
                             :key="index"
                             :label="item.name"
                             :value="item.id"></el-option>
                 </el-select>
             </el-form-item>
             <el-form-item>
-                <el-button @click="getList"
-                        type="danger">搜索</el-button>
+                <el-button native-type="submit" type="danger">搜索</el-button>
+                <el-button native-type="reset" type="primary">重置</el-button>
             </el-form-item>
-        </el-form>
+        </save-form>
         <!-- 列表 -->
         <div class="tableWrap">
             <el-table :data="tableList"
                         :header-cell-style="{background:'#EDEEF0',color:'#444'}">
                 <el-table-column align="center"
                                 prop="userId"
-                                label="学员编号"></el-table-column>
+                                label="学员编号">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.userId }}</copy-text>
+                    </template>
+                </el-table-column>
                 <el-table-column align="center"
                                 prop="user.username"
                                 label="学员姓名"></el-table-column>
@@ -64,13 +71,16 @@
                 <el-table-column align="center"
                                 prop="luckDrawPrize.name"
                                 label="奖项">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.luckDrawPrize.name }}</copy-text>
+                    </template>
                 </el-table-column>
                 <el-table-column align="center"
                                 prop="createOn"
                                 label="抽奖时间">
                 </el-table-column>
             </el-table>
-            <pagination :total="pageInfo.total"
+            <pagination sync :total.sync="pageInfo.total"
                         :page.sync="pageInfo.page"
                         :limit.sync="pageInfo.limit"
                         :page-sizes="pageInfo.page_size"
@@ -81,7 +91,6 @@
 
 <script>
 import pagination from "@/components/Pagination/index";
-import { getEmployeeOrgan } from '@/api/buildTeam'
 import { luckDrawLogList } from './api'
 import dayjs from 'dayjs';
 import cleanDeep from 'clean-deep';
@@ -94,6 +103,7 @@ export default {
                 userId: null,
                 name: null,
                 startDate: null,
+                organId: null,
                 endDate: null
             },
             tableList: [],
@@ -116,20 +126,12 @@ export default {
         this.__init()
         this.getList()
     },
-    activated () {
-        this.__init()
-        this.getList()
-    },
     methods: {
-        __init() {
-            getEmployeeOrgan().then(res => {
-                if (res.code == 200) {
-                    this.organList = res.data;
-                }
-            })
+        async __init() {
+            // 获取分部
+            this.$store.dispatch('setBranchs')
         },
         onDateChange(value) {
-            console.log(value)
             let searchForm = this.searchForm
             searchForm.startDate = null
             searchForm.endDate = null
@@ -138,16 +140,28 @@ export default {
                 searchForm.endDate = dayjs(value[1]).format('YYYY-MM-DD') + ' 23:59:59'
             }
         },
-        getList() {
+        async getList() {
             let params = Object.assign({}, this.searchForm)
             params.rows = this.pageInfo.limit
             params.page = this.pageInfo.page
-            luckDrawLogList(cleanDeep(params)).then(res => {
+            await luckDrawLogList(cleanDeep(params)).then(res => {
                 if (res.code == 200 && res.data) {
                     this.tableList = res.data.rows
                     this.pageInfo.total = res.data.total
                 }
             })
+        },
+        search() {
+            this.pageInfo.page = 1
+            this.getList()
+        },
+        onReset() {
+            this.$refs.searchForm.resetFields()
+            this.time = null
+            this.searchForm.startDate = null
+            this.searchForm.endDate = null
+            this.pageInfo.page = 1
+            this.getList()
         }
     }
 };

+ 7 - 10
src/views/luckyDraw/trophyManager.vue

@@ -6,11 +6,12 @@
         </h2>
         <div class="newBand" v-permission="'luckDrawPrize/batchAdd'" @click="onOperationTrophy('create')">添加</div>
         <!-- 搜索标题 -->
-        <el-form :inline="true"
+        <save-form :inline="true"
                 class="searchForm"
-                v-model.trim="searchForm">
+                @submit="getList"
+                :model="searchForm">
             <el-form-item>
-                <el-input v-model.trim="searchForm.name"
+                <el-input v-model.trim="searchForm.name" clearable
                         placeholder="请输入奖品名称"></el-input>
             </el-form-item>
             <el-form-item>
@@ -21,10 +22,9 @@
                 </el-select>
             </el-form-item>
             <el-form-item>
-                <el-button @click="getList"
-                        type="danger">搜索</el-button>
+                <el-button native-type="submit" type="danger">搜索</el-button>
             </el-form-item>
-        </el-form>
+        </save-form>
         <!-- 列表 -->
         <div class="tableWrap">
             <el-table :data="tableList"
@@ -73,7 +73,7 @@
                     </template>
                 </el-table-column>
             </el-table>
-            <pagination :total="pageInfo.total"
+            <pagination sync :total.sync="pageInfo.total"
                         :page.sync="pageInfo.page"
                         :limit.sync="pageInfo.limit"
                         :page-sizes="pageInfo.page_size"
@@ -228,9 +228,6 @@ export default {
     async mounted () {
         await this.__init()
     },
-    async activated () {
-        await this.__init()
-    },
     methods: {
         async __init() {
             const query = this.$route.query

+ 8 - 2
src/views/matchManager/index.vue

@@ -8,6 +8,7 @@
       <save-form :inline="true" ref="searchForm" @submit="search" @reset="onReSet" :model="searchForm">
         <el-form-item prop="search">
           <el-input v-model.trim="searchForm.search"
+                    clearable
                     @keyup.enter.native="search"
                     placeholder='选手姓名/编号/身份证号'></el-input>
         </el-form-item>
@@ -85,7 +86,11 @@
                   :data="tableList">
           <el-table-column align="center"
                            prop="userId"
-                           label="选手编号"></el-table-column>
+                           label="选手编号">
+            <template slot-scope="scope">
+              <copy-text>{{scope.row.userId}}</copy-text>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="username"
                            label="选手姓名"></el-table-column>
@@ -153,7 +158,8 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
+        <pagination :total.sync="pageInfo.total"
+                    sync
                     :page.sync="pageInfo.page"
                     :limit.sync="pageInfo.limit"
                     :page-sizes="pageInfo.page_size"

+ 23 - 24
src/views/repairManager/repairList.vue

@@ -5,10 +5,12 @@
       <div class="squrt"></div>维修单列表
     </h2>
     <div class="m-core">
-      <el-form :inline="true"
+      <save-form :inline="true"
+               @submit="search"
+               @reset="onReSet"
                :model="searchForm">
         <el-form-item>
-          <el-input v-model.trim="searchForm.search"
+          <el-input v-model.trim="searchForm.search" clearable
                     @keyup.enter.native="search"
                     placeholder='维修单号/学生姓名/编号'></el-input>
         </el-form-item>
@@ -27,7 +29,7 @@
           <el-select placeholder="请选择分部"
                      v-model="searchForm.organIdList"
                      clearable>
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :label="item.name"
                        :value="item.id"
                        :key="index"></el-option>
@@ -71,19 +73,17 @@
                           type="daterange"
                           value-format="yyyy-MM-dd"
                           :picker-options="{
-        firstDayOfWeek: 1
-    }"
+                              firstDayOfWeek: 1
+                          }"
                           range-separator="至"
                           start-placeholder="送修开始日期"
                           end-placeholder="送修结束日期"></el-date-picker>
         </el-form-item>
         <el-form-item>
-          <el-button type="danger"
-                     @click="search">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div class="tableWrap">
         <el-table style="width: 100%"
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}"
@@ -94,13 +94,21 @@
           <el-table-column align="center"
                            prop="transNo"
                            label="维修单号"
-                           width="160"></el-table-column>
+                           width="175">
+            <template slot-scope="scope">
+              <copy-text>{{scope.row.transNo}}</copy-text>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="studentName"
                            label="学生姓名"></el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="学生编号"></el-table-column>
+                           label="学生编号">
+            <template slot-scope="scope">
+              <copy-text>{{scope.row.studentId}}</copy-text>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="employeeName"
                            label="维修技师"></el-table-column>
@@ -138,7 +146,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="rules.total"
+        <pagination sync :total.sync="rules.total"
                     :page.sync="rules.page"
                     :limit.sync="rules.limit"
                     :page-sizes="rules.page_size"
@@ -272,7 +280,7 @@ import axios from "axios";
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
 import load from "@/utils/loading";
-import { getEmployeeOrgan, getSoundTree } from "@/api/buildTeam";
+import { getSoundTree } from "@/api/buildTeam";
 import { findTechnician, studentRepairList, repairSuccess } from "@/api/repairManager"
 export default {
   components: { pagination },
@@ -289,7 +297,6 @@ export default {
       repairVisible: false,
       employeeList: [],
       tableList: [],
-      organList: [],
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -313,11 +320,7 @@ export default {
         this.employeeList = res.data;
       }
     });
-    getEmployeeOrgan().then(res => {
-      if (res.code == 200) {
-        this.organList = res.data;
-      }
-    });
+    this.$store.dispatch('setBranchs')
     // 获取声部
     getSoundTree({ tenantId: 1, rows: 9999 }).then(res => {
       if (res.code == 200) {
@@ -332,9 +335,6 @@ export default {
     // }
 
   },
-  activated () {
-    this.init();
-  },
   methods: {
     init () {
       this.isInit = true;
@@ -387,7 +387,6 @@ export default {
       let goodsList = row.goodsJson ? JSON.parse(row.goodsJson) : []
       row.goodsList = goodsList
       this.activeRow = row;
-      console.log(row)
       this.repairVisible = true;
     },
     repairEnd (str, row) {

+ 20 - 37
src/views/reportForm/index.vue

@@ -21,16 +21,12 @@
                      :label="item.label"
                      :value="item.value"></el-option>
         </el-select> -->
-
-        <div class="newBand"
-             @click="exportSalar"
-             v-permission="'export/teacherSalary'">导出</div>
+        <el-button style="margin-left: 10px;" type="primary" @click="exportSalar"  v-permission="'export/teacherSalary'">导出</el-button>
         <el-tooltip placement="top"
                     popper-class="mTooltip">
           <div slot="content">
             将只导出当前选择月份已结算的课程课酬。
           </div>
-          <!-- <img :src="imageIcon" class="micon el-tooltip" style="width:8px height:8px" alt /> -->
           <i class="el-icon-question micon el-tooltip"
              style="font-size: 18px; color: #F56C6C"
              v-permission="'export/teacherSalary'"></i>
@@ -48,15 +44,13 @@
                      placeholder="请选择分部"
                      multiple
                      clearable>
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
           </select-all>
-
-          <div class="newBand"
-               @click="exportMusicGroup"
-               v-permission="'export/musicGroupRegister'">导出</div>
+          <el-button style="margin-left: 10px;" type="primary"  @click="exportMusicGroup"
+               v-permission="'export/musicGroupRegister'">导出</el-button>
           <el-tooltip placement="top"
                       popper-class="mTooltip">
             <div slot="content">
@@ -80,15 +74,14 @@
                      placeholder="请选择分部"
                      multiple
                      clearable>
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
           </select-all>
 
-          <div class="newBand"
-               @click="exportDefaultSalary"
-               v-permission="'export/teacherDefaultSalary'">导出</div>
+          <el-button style="margin-left: 10px;" type="primary"  @click="exportDefaultSalary"
+               v-permission="'export/teacherDefaultSalary'">导出</el-button>
           <el-tooltip placement="top"
                       popper-class="mTooltip">
             <div slot="content">
@@ -112,15 +105,13 @@
                      multiple
                      placeholder="请选择分部"
                      clearable>
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
           </select-all>
-          <div class="newBand"
-               @click="exportMusicTeamNum"
-               v-permission="'export/musicGroupNormalStudentNum'">导出
-          </div>
+          <el-button style="margin-left: 10px;" type="primary"  @click="exportMusicTeamNum"
+               v-permission="'export/musicGroupNormalStudentNum'">导出</el-button>
           <el-tooltip placement="top"
                       popper-class="mTooltip">
             <div slot="content">
@@ -144,7 +135,7 @@
                      placeholder="请选择分部"
                      multiple
                      clearable>
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
@@ -154,9 +145,8 @@
                           type="month"
                           placeholder="选择月"
                           value-format="yyyy-MM-dd"></el-date-picker>
-          <div class="newBand"
-               @click="exportStudent"
-               v-permission="'export/studentOrder'">导出</div>
+          <el-button style="margin-left: 10px;" type="primary" @click="exportStudent"
+               v-permission="'export/studentOrder'">导出</el-button>
           <el-tooltip placement="top"
                       popper-class="mTooltip">
             <div slot="content">
@@ -180,7 +170,7 @@
                      multiple
                      placeholder="请选择分部"
                      clearable>
-            <el-option v-for="(item,index) in organList"
+            <el-option v-for="(item,index) in selects.branchs"
                        :key="index"
                        :label="item.name"
                        :value="item.id"></el-option>
@@ -203,11 +193,11 @@
                           start-placeholder="上课开始日期"
                           end-placeholder="上课结束日期"
                           :picker-options="{
-        firstDayOfWeek: 1
-    }"></el-date-picker>
-          <div class="newBand"
-               @click="exportAttendance"
-               v-permission="'export/exportStudentAttendances'">导出</div>
+                            firstDayOfWeek: 1
+                          }"
+          ></el-date-picker>
+          <el-button style="margin-left: 10px;" type="primary" @click="exportAttendance"
+               v-permission="'export/exportStudentAttendances'">导出</el-button>
           <!-- <el-tooltip placement="top"
                       popper-class="mTooltip">
             <div slot="content">
@@ -224,7 +214,6 @@
 </template>
 <script>
 import { exportTeacherSalary } from '@/api/generalSettings'
-import { getEmployeeOrgan } from "@/api/buildTeam";
 import { courseType, courseListType } from '@/utils/searchArray'
 import { Export } from '@/utils/downLoadFile'
 import cleanDeep from 'clean-deep'
@@ -239,7 +228,6 @@ export default {
   data () {
     return {
       mouth: "",
-      organList: [],
       organIdList: [],
       teacherDefaultSalaryOrganId: '',
       courseArray: courseType,
@@ -251,15 +239,10 @@ export default {
       attendanceOrganId: [],
       attendanceCourseType: 'MUSIC',
       timer: []
-      // imageIcon: require("@/assets/images/base/warning.png")
     };
   },
   mounted () {
-    getEmployeeOrgan().then(res => {
-      if (res.code == 200) {
-        this.organList = res.data;
-      }
-    });
+    this.$store.dispatch('setBranchs')
   },
   methods: {
     exportSalar () {

+ 6 - 6
src/views/workBenchManager/classFeesIsOk.vue

@@ -32,6 +32,7 @@
           <el-input
             v-model.trim="searchForm.search"
             @keyup.enter.native="search"
+            clearable
             placeholder="课程编号、课程组名称"
           ></el-input>
         </el-form-item>
@@ -68,7 +69,8 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select
+          <remoteSearch :commit='"setTeachers"'  v-model='searchForm.teacherId' />
+          <!-- <el-select
             placeholder="老师姓名"
             v-model="searchForm.teacherId"
             clearable
@@ -80,7 +82,7 @@
               :value="item.id"
               :key="index"
             ></el-option>
-          </el-select>
+          </el-select> -->
         </el-form-item>
         <el-form-item>
           <el-select
@@ -358,6 +360,7 @@ import numeral from "numeral";
 import axios from "axios";
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
+import remoteSearch from '@/components/remote-search/index'
 import load from "@/utils/loading";
 import {
   findIsSettlementCourseSalarys,
@@ -367,7 +370,7 @@ import {
 } from "@/api/journal";
 import { courseListType } from "@/utils/searchArray";
 export default {
-  components: { pagination },
+  components: { pagination, remoteSearch },
   data() {
     return {
       searchForm: {
@@ -412,9 +415,6 @@ export default {
     // 获取分部
     this.init();
   },
-  activated() {
-    this.init();
-  },
   methods: {
     init() {
       if (!this.searchForm.month) {

+ 70 - 51
src/views/workBenchManager/journal/index.vue

@@ -1,71 +1,90 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>系统日志
+      <div class="squrt"></div>
+      系统日志
     </h2>
     <div class="m-core">
-      <el-tabs type="border-card"
-               v-model.trim="activeIndex"
-               @tab-click="handleClick">
-        <el-tab-pane label="系统通知"
-                     v-if="permissionList.journalItem"
-                     name='0'>
-          <item v-if="activeIndex == 0" />
-        </el-tab-pane>
-        <el-tab-pane label="学员申诉"
-                     v-if="permissionList.studentComplain"
-                     name='1'>
-          <studentComplain v-if="activeIndex == 1" />
-        </el-tab-pane>
-        <el-tab-pane label="退团退课"
-                     v-if="permissionList.musicGroupCourse"
-                     name='2'>
-          <musicGroup v-if="activeIndex == 2" />
-        </el-tab-pane>
-        <el-tab-pane label="请假处理"
-                     v-if="permissionList.leaveOperation"
-                     name='3'>
-          <leaveOperation v-if="activeIndex == 3" />
-        </el-tab-pane>
-        <el-tab-pane label="VIP申请审核"
-                     v-if="permissionList.vipApply"
-                     name='4'>
-          <vipApply v-if="activeIndex == 4" />
-        </el-tab-pane>
-      </el-tabs>
+      <location-hash v-model="activeIndex" @change="handleClick">
+        <el-tabs
+          type="border-card"
+          v-model.trim="activeIndex"
+          @tab-click="handleClick"
+        >
+          <el-tab-pane
+            label="系统通知" lazy
+            v-if="permissionList.journalItem"
+            name="0"
+          >
+            <item v-if="activeIndex == 0" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="学员申诉" lazy
+            v-if="permissionList.studentComplain"
+            name="1"
+          >
+            <studentComplain v-if="activeIndex == 1" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="退团退课" lazy
+            v-if="permissionList.musicGroupCourse"
+            name="2"
+          >
+            <musicGroup v-if="activeIndex == 2" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="请假处理" lazy
+            v-if="permissionList.leaveOperation"
+            name="3"
+          >
+            <leaveOperation v-if="activeIndex == 3" />
+          </el-tab-pane>
+          <el-tab-pane
+            label="VIP申请审核" lazy
+            v-if="permissionList.vipApply"
+            name="4"
+          >
+            <vipApply v-if="activeIndex == 4" />
+          </el-tab-pane>
+        </el-tabs>
+      </location-hash>
     </div>
   </div>
 </template>
 <script>
-import item from './journalItem'
-import studentComplain from './studentComplain'
-import musicGroup from './musicGroup'
-import leaveOperation from './leaveOperation'
-import vipApply from './vipApply'
-import { permission } from '@/utils/directivePage'
+import item from "./journalItem";
+import studentComplain from "./studentComplain";
+import musicGroup from "./musicGroup";
+import leaveOperation from "./leaveOperation";
+import vipApply from "./vipApply";
+import { permission } from "@/utils/directivePage";
 export default {
   components: {
-    item, studentComplain, musicGroup, leaveOperation, vipApply
+    item,
+    studentComplain,
+    musicGroup,
+    leaveOperation,
+    vipApply
   },
-  name: 'journal',
-  data () {
+  name: "journal",
+  data() {
+    const query = this.$route.query
     return {
-      activeIndex: '0',
+      activeIndex: query.opt || "0",
       permissionList: {
-        journalItem: permission('/journalItem'),
-        studentComplain: permission('/studentComplain'),
-        musicGroupCourse: permission('/musicGroupCourse'),
-        leaveOperation: permission('/leaveOperation'),
-        vipApply: permission('/vipApply')
+        journalItem: permission("/journalItem"),
+        studentComplain: permission("/studentComplain"),
+        musicGroupCourse: permission("/musicGroupCourse"),
+        leaveOperation: permission("/leaveOperation"),
+        vipApply: permission("/vipApply")
       }
-    }
+    };
   },
   methods: {
-    handleClick (val) {
-      this.activeIndex = val.name
+    handleClick(val) {
+      this.activeIndex = val.name;
     }
   }
-}
+};
 </script>
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 1 - 3
src/views/workBenchManager/payAppeal.vue

@@ -10,6 +10,7 @@
         <el-form-item>
           <el-input
             v-model.trim="searchForm.search"
+            clearable
             @keyup.enter.native="search"
             placeholder="老师名称"
           ></el-input>
@@ -299,9 +300,6 @@ export default {
 
     this.init();
   },
-  activated() {
-    this.init();
-  },
   methods: {
     init() {
       this.getList();

+ 2 - 1
src/views/workBenchManager/requestProcessing.vue

@@ -62,10 +62,11 @@
         <el-form-item>
           <el-date-picker
             :clearable="true"
+            style="width: 100% !important;"
             v-model="searchForm.salarySettlementMonth"
             type="month"
             value-format="yyyy-MM"
-            placeholder="选择申诉年月"
+            placeholder="选择归属年月"
           ></el-date-picker>
         </el-form-item>
         <el-form-item>