Browse Source

12/31 除新建团外优化完毕

mo 4 years ago
parent
commit
44c0bd2bee

+ 0 - 1
src/components/save-form/index.vue

@@ -67,7 +67,6 @@ export default {
     save(search = null, type = 'form') {
       search = search ? search : this.model
       this.searchs.update(search, undefined, type)
-          console.log({...this.model})
     },
     validate(FC) {
       this.$refs.form.validate(valid => {

+ 1 - 0
src/router/notKeepAliveList.js

@@ -77,4 +77,5 @@ export default [
   '/business/teamLookBase', // 筹备中 乐团信息
   '/business/vipReset', // vip修改
   '/business/vipDetail', // vip查看
+  '/contentManager/contentManager', // 内容管理
 ]

+ 137 - 88
src/views/afterSchoolManager/afterSchoolList.vue

@@ -5,42 +5,56 @@
       <div class="squrt"></div>课外训练
     </h2> -->
     <div class="m-core">
-      <save-form :inline="true"
-               @submit="search"
-               @reset="onReSet"
-               :saveKey="'afterSchoolList'"
-               :model="searchForm">
+      <save-form
+        :inline="true"
+        @submit="search"
+        @reset="onReSet"
+        :saveKey="'afterSchoolList'"
+        :model="searchForm"
+      >
         <el-form-item>
-          <el-input v-model.trim="searchForm.listSearch" clearable
-                    @keyup.enter.native="search"
-                    placeholder="请输入标题"></el-input>
+          <el-input
+            v-model.trim="searchForm.listSearch"
+            clearable
+            @keyup.enter.native="search"
+            placeholder="请输入标题"
+          ></el-input>
         </el-form-item>
         <el-form-item>
-           <remote-search :commit='"setTeachers"' v-model='searchForm.teacherId'/>
+           <remote-search
+            :commit="'setTeachers'"
+            v-model="searchForm.teacherId"
+          />
         </el-form-item>
         <el-form-item prop="organIdList">
-          <el-select class="multiple"
-                     v-model.trim="searchForm.organIdList"
-                     filterable
-                     clearable
-                     placeholder="请选择分部">
-            <el-option v-for="(item,index) in selects.branchs"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.organIdList"
+            filterable
+            clearable
+            placeholder="请选择分部"
+          >
+            <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-date-picker v-model.trim="searchForm.listTimer"
-                          style="width:410px;"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          range-separator="至"
-                          start-placeholder="布置开始日期"
-                          end-placeholder="布置结束日期"
-                          :picker-options="{
-        firstDayOfWeek: 1
-    }"></el-date-picker>
+          <el-date-picker
+            v-model.trim="searchForm.listTimer"
+            style="width: 410px"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="布置开始日期"
+            end-placeholder="布置结束日期"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item>
           <el-button type="danger" native-type="submit">搜索</el-button>
@@ -48,55 +62,73 @@
         </el-form-item>
       </save-form>
       <div class="tableWrap">
-        <el-table style="width: 100%"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}"
-                  :data="tableList">
-          <el-table-column align="center"
-                           prop="createTime"
-                           label="布置时间">
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableList"
+        >
+          <el-table-column align="center" prop="teacherName" label="老师姓名">
             <template slot-scope="scope">
-              {{scope.row.createTime | dateForMinFormat}}
+              <copy-text v-if="scope.row.teacher">
+                {{ scope.row.teacher.username }}
+              </copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="title"
-                           label="训练标题"></el-table-column>
-          <el-table-column align="center"
-                           prop="organName"
-                           label="老师分部"></el-table-column>
-
-          <el-table-column align="center"
-                           prop="expireDate"
-                           label="截止时间">
+          <el-table-column align="center" prop="createTime" label="布置时间">
             <template slot-scope="scope">
-              {{scope.row.expireDate | dateForMinFormat}}
+              {{ scope.row.createTime | dateForMinFormat }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="title"
+            label="训练标题"
+          >
+           <template slot-scope="scope">
+              <copy-text >
+                {{ scope.row.title }}
+              </copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="teacherName"
-                           label="老师姓名">
+
+          <el-table-column
+            align="center"
+            prop="organName"
+            label="老师分部"
+          >
+              <template slot-scope="scope">
+              <copy-text >
+                {{ scope.row.organName }}
+              </copy-text>
+            </template>
+          </el-table-column>
+
+          <el-table-column align="center" prop="expireDate" label="截止时间">
             <template slot-scope="scope">
-              <div v-if="scope.row.teacher">
-                {{scope.row.teacher.username}}
-              </div>
+              {{ scope.row.expireDate | dateForMinFormat }}
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           label="操作">
+
+          <el-table-column align="center" label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text"
-                           v-permission="'afterSchollList/look'"
-                           @click="lookDetail(scope.row)">查看</el-button>
+                <el-button
+                  type="text"
+                  v-permission="'afterSchollList/look'"
+                  @click="lookDetail(scope.row)"
+                  >查看</el-button
+                >
               </div>
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="rules.total"
-                    :page.sync="rules.page"
-                    :limit.sync="rules.limit"
-                    :page-sizes="rules.page_size"
-                    @pagination="getList" />
+        <pagination
+          :total="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
     <!-- <el-dialog title="课外训练详情"
@@ -143,52 +175,60 @@
 
 <script>
 import pagination from "@/components/Pagination/index";
-import remoteSearch from '@/components/remote-search'
+import remoteSearch from "@/components/remote-search";
 import { queryPageList } from "@/api/afterSchool";
 export default {
   components: { pagination, remoteSearch },
-  data () {
+  data() {
     return {
       searchForm: {
         listSearch: null,
         listTimer: [],
         teacherId: null,
-        organIdList: null
+        organIdList: null,
       },
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       tableList: [],
       visibleForm: {
-        createTime: null
+        createTime: null,
       },
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created () { },
+  created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    this.$store.dispatch('setBranchs')
+  mounted() {
+    this.$store.dispatch("setBranchs");
     // 获取分部
     this.init();
   },
   methods: {
-    init () {
-      if(this.searchForm.listTimer && this.searchForm.listTimer.length <= 0) {
+    init() {
+      if (this.searchForm.listTimer && 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);
+        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();
     },
-    getList () {
+    getList() {
       // assignStartTime  assignEndTime page search teacherId title
       let obj = {};
       if (this.searchForm.listTimer && this.searchForm.listTimer.length > 0) {
@@ -196,34 +236,43 @@ export default {
         obj.assignEndTime = this.searchForm.listTimer[1];
       }
       obj.page = this.rules.page;
-      obj.rows = this.rules.limit,
-      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 => {
+      (obj.rows = this.rules.limit),
+        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) => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
         }
       });
     },
-    search () {
+    search() {
       this.rules.page = 1;
       this.getList();
     },
-    onReSet () {
+    onReSet() {
       this.searchForm = {
         listSearch: null,
         listTimer: [],
         teacherId: null,
-        organIdList: null
-      }
+        organIdList: null,
+      };
       this.search();
     },
-    lookDetail (row) {
-      this.$router.push({ path: '/business/afterSchoolDetail', query: { extracurricularExercisesId: row.id, title: row.title } })
-    }
-  }
+    lookDetail(row) {
+      this.$router.push({
+        path: "/business/afterSchoolDetail",
+        query: { extracurricularExercisesId: row.id, title: row.title },
+      });
+    },
+  },
 };
 </script>
 <style lang='scss' scoped>

+ 2 - 4
src/views/afterSchoolManager/index.vue

@@ -5,8 +5,7 @@
       <div class="squrt"></div>课外训练
     </h2>
     <div class="m-core">
-      <location-hash v-model="activeIndex" @change="handleClick">
-        <el-tabs v-model.trim="activeIndex"
+        <tab-router v-model.trim="activeIndex"
                type="card"
                @tab-click="handleClick">
           <el-tab-pane lazy label="课外训练"
@@ -17,8 +16,7 @@
                       name="2">
             <afterWorkList v-if="activeIndex == 2"></afterWorkList>
           </el-tab-pane>
-        </el-tabs>
-      </location-hash>
+        </tab-router>
     </div>
   </div>
 </template>

+ 36 - 24
src/views/attendanceManager/attendanceList/index.vue

@@ -15,6 +15,7 @@
         <el-form-item>
           <el-input
             v-model.trim="searchForm.search"
+            clearable
             @keyup.enter.native="search"
             placeholder="课程编号、名称、乐团名称"
           ></el-input>
@@ -28,7 +29,7 @@
             placeholder="请选择分部"
           >
             <el-option
-              v-for="(item, index) in organList"
+              v-for="(item, index) in selects.branchs"
               :key="index"
               :label="item.name"
               :value="item.id"
@@ -53,7 +54,7 @@
         </el-form-item>
         <el-form-item>
           <el-date-picker
-            v-model.trim="courseTimer"
+            v-model.trim="searchForm.courseTimer"
             style="width: 420px"
             type="daterange"
             value-format="yyyy-MM-dd"
@@ -166,6 +167,7 @@ import { courseListType } from "@/utils/searchArray";
 import { getEmployeeOrgan } from "@/api/buildTeam";
 import studentWork from "@/views/teamDetail/componentCourse/studentWork";
 import { getHomePageList } from "./api.js";
+import { getTimes } from "@/utils";
 export default {
   components: { pagination, studentWork },
   data() {
@@ -175,8 +177,9 @@ export default {
         search: null,
         organId: null,
         groupType: "MUSIC",
+          courseTimer: [],
       },
-      courseTimer: [],
+
       teacherList: [],
       tableList: [],
       organList: [],
@@ -195,13 +198,13 @@ export default {
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
-    getEmployeeOrgan().then((res) => {
-      if (res.code == 200) {
-        this.organList = res.data;
-      }
-    });
+    // getEmployeeOrgan().then((res) => {
+    //   if (res.code == 200) {
+    //     this.organList = res.data;
+    //   }
+    // });
     // 获取分部
-
+    this.$store.dispatch('setBranchs')
     this.init();
   },
   activated() {
@@ -212,20 +215,28 @@ export default {
       this.getList();
     },
     getList() {
-      let date = this.searchForm;
-      let classStartDate, classEndDate;
-      if (this.courseTimer?.length > 0) {
-        classStartDate = this.courseTimer[0];
-        classEndDate = this.courseTimer[1];
-      } else {
-        classStartDate = null;
-        classEndDate = null;
-      }
-      date.classStartDate = classStartDate;
-      date.classEndDate = classEndDate;
-      date.page = this.rules.page;
-      date.rows = this.rules.limit;
-      getHomePageList(date).then((res) => {
+      // let date = this.searchForm;
+      // let classStartDate, classEndDate;
+      // if (this.courseTimer?.length > 0) {
+      //   classStartDate = this.courseTimer[0];
+      //   classEndDate = this.courseTimer[1];
+      // } else {
+      //   classStartDate = null;
+      //   classEndDate = null;
+      // }
+      // date.classStartDate = classStartDate;
+      // date.classEndDate = classEndDate;
+      // date.page = this.rules.page;
+      // date.rows = this.rules.limit;
+
+            let { courseTimer, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.rules.page,
+        rows: this.rules.limit,
+        ...getTimes(courseTimer, ["classStartDate", "classEndDate"]),
+      };
+      getHomePageList(params).then((res) => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
@@ -241,8 +252,9 @@ export default {
         search: null,
         organId: null,
         groupType: "MUSIC",
+        courseTimer:[]
       };
-      this.courseTimer = [];
+      // this.courseTimer = [];
       this.search();
     },
     lookDetail(row) {

+ 171 - 125
src/views/auditList/index.vue

@@ -7,151 +7,190 @@
     </h2>
     <div class="m-core">
       <!-- 搜索标题 -->
-      <save-form :inline="true"
-               class="searchForm"
-               ref="searchForm"
-               :model.sync="searchForm">
+      <save-form
+        :inline="true"
+        class="searchForm"
+        ref="searchForm"
+        :model.sync="searchForm"
+      >
         <el-form-item>
-          <el-input v-model.trim="searchForm.search"
-                    @keyup.enter.native="search"
-                    placeholder="乐团名称/编号"></el-input>
+          <el-input
+            v-model.trim="searchForm.search"
+            clearable
+            @keyup.enter.native="search"
+            placeholder="乐团名称/编号"
+          ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-select class="multiple"
-                     v-model.trim="searchForm.organId"
-                     filterable
-                     clearable
-                     placeholder="请选择分部">
-            <el-option v-for="(item, index) in selects.branchs"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.organId"
+            filterable
+            clearable
+            placeholder="请选择分部"
+          >
+            <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-select class="multiple"
-                     v-model.trim="searchForm.paymentType"
-                     filterable
-                     clearable
-                     placeholder="申请类型">
-            <el-option v-for="(item, index) in paymentTypeList"
-                       :key="index"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.paymentType"
+            filterable
+            clearable
+            placeholder="申请类型"
+          >
+            <el-option
+              v-for="(item, index) in paymentTypeList"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select class="multiple"
-                     v-model.trim="searchForm.status"
-                     filterable
-                     clearable
-                     placeholder="审核状态">
-            <el-option v-for="(item, index) in statusList"
-                       :key="index"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.status"
+            filterable
+            clearable
+            placeholder="审核状态"
+          >
+            <el-option
+              v-for="(item, index) in statusList"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
           </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 @click="search" type="primary">搜索</el-button>
+          <el-button @click="reset" type="danger">重置</el-button>
         </el-form-item>
       </save-form>
       <div class="tableWrap">
-        <el-table :data="tableList"
-                  :header-cell-style="{ background: '#EDEEF0', color: '#444' }">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
           <!-- <el-table-column type="selection" width="55"></el-table-column> -->
-          <el-table-column align="center"
-                           prop="organName"
-                           label="分部名称"></el-table-column>
-          <el-table-column align="center"
-                           width="200px"
-                           prop="musicGroupName"
-                           label="乐团名称">
+          <el-table-column align="center" prop="organName" label="分部名称">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.organName }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            width="200px"
+            prop="musicGroupName"
+            label="乐团名称"
+          >
             <template slot-scope="scope">
               <div>
                 <Tooltip :content="scope.row.musicGroupName" />
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           width="180px"
-                           prop="musicGroupId"
-                           label="乐团编号"></el-table-column>
-          <el-table-column align="center"
-                           prop="paymentType"
-                           label="申请类型">
+          <el-table-column
+            align="center"
+            width="180px"
+            prop="musicGroupId"
+            label="乐团编号"
+          >
+              <template slot-scope="scope">
+              <copy-text>{{ scope.row.musicGroupId }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="paymentType" label="申请类型">
             <template slot-scope="scope">
               <div>
                 {{ scope.row.paymentType | auditPaymentType }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="payUserType"
-                           label="订单类型">
+          <el-table-column align="center" prop="payUserType" label="订单类型">
             <template slot-scope="scope">
               <div>
                 {{ scope.row.payUserType | payOrderType }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="addCourseTotalTime"
-                           label="加课总时长(分钟)"></el-table-column>
-          <el-table-column align="center"
-                           prop="courseOriginalPrice"
-                           label="原现价(元)">
+          <el-table-column
+            align="center"
+            prop="addCourseTotalTime"
+            label="加课总时长(分钟)"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="courseOriginalPrice"
+            label="原现价(元)"
+          >
             <template slot-scope="scope">
               <div>
                 {{ scope.row.courseOriginalPrice | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="courseCurrentPrice"
-                           label="申请价格(元)">
+          <el-table-column
+            align="center"
+            prop="courseCurrentPrice"
+            label="申请价格(元)"
+          >
             <template slot-scope="scope">
               <div>
                 {{ scope.row.courseCurrentPrice | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="memo"
-                           width="200px"
-                           label="备注">
+          <el-table-column
+            align="center"
+            prop="memo"
+            width="200px"
+            label="备注"
+          >
             <template slot-scope="scope">
               <overflow-text width="200px" :text="scope.row.memo" />
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="auditMemo"
-                           width="200px"
-                           label="审核备注">
+          <el-table-column
+            align="center"
+            prop="auditMemo"
+            width="200px"
+            label="审核备注"
+          >
             <template slot-scope="scope">
               <overflow-text width="200px" :text="scope.row.auditMemo" />
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="operatorName"
-                           label="申请人"></el-table-column>
-          <el-table-column align="center"
-                           prop="auditStatus"
-                           label="状态"
-                           width="100px">
+          <el-table-column
+            align="center"
+            prop="operatorName"
+            label="申请人"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="auditStatus"
+            label="状态"
+            width="100px"
+          >
             <template slot-scope="scope">
               <div>
                 {{ scope.row.auditStatus | auditType }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="createTime"
-                           label="申请时间"
-                           width="140px">
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="申请时间"
+            width="140px"
+          >
             <template slot-scope="scope">
               <div>
                 {{ scope.row.createTime | dateForMinFormat }}
@@ -159,33 +198,40 @@
             </template>
           </el-table-column>
           <!--  -->
-          <el-table-column align="center"
-                           label="操作"
-                           width="100px"
-                           fixed="right">
+          <el-table-column
+            align="center"
+            label="操作"
+            width="100px"
+            fixed="right"
+          >
             <template slot-scope="scope">
-              <el-button v-permission="'musicGroupPaymentCalender/auditListDetail'"
-                         @click="lookDetail(scope.row)"
-                         type="text">
-                            {{(scope.row.auditStatus === 'AUDITING' ? '审核' : '查看')}}
-                         </el-button>
+              <el-button
+                v-permission="'musicGroupPaymentCalender/auditListDetail'"
+                @click="lookDetail(scope.row)"
+                type="text"
+              >
+                {{ scope.row.auditStatus === "AUDITING" ? "审核" : "查看" }}
+              </el-button>
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total.sync="pageInfo.total"
-                    sync
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+        <pagination
+          :total.sync="pageInfo.total"
+          sync
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog title="申请详情"
-               width="900px"
-               :visible.sync="typeStatus"
-               destroy-on-close>
-      <review :detail="detail"
-              @close="close" />
+    <el-dialog
+      title="申请详情"
+      width="900px"
+      :visible.sync="typeStatus"
+      destroy-on-close
+    >
+      <review :detail="detail" @close="close" />
     </el-dialog>
   </div>
 </template>
@@ -201,18 +247,18 @@ import { auditTypeList, auditPaymentTypeList } from "@/utils/searchArray";
 const initSearch = {
   search: null,
   paymentType: null,
-  status: 'AUDITING',
+  status: "AUDITING",
   organId: null,
-}
+};
 export default {
   components: { pagination, Tooltip, review },
   name: "helpCategory",
-  data () {
+  data() {
     return {
       paymentTypeList: auditPaymentTypeList,
       organList: [],
       statusList: auditTypeList,
-      searchForm: {...initSearch},
+      searchForm: { ...initSearch },
       tableList: [],
 
       pageInfo: {
@@ -226,22 +272,22 @@ export default {
       typeStatus: false,
     };
   },
-  mounted () {
-    this.$store.dispatch('setBranchs')
+  mounted() {
+    this.$store.dispatch("setBranchs");
     this.getList();
   },
   methods: {
     search() {
-      this.pageInfo.page = 1
-      this.$refs.searchForm.save(this.searchForm)
-      this.$refs.searchForm.save(this.pageInfo, 'page')
-      this.getList()
+      this.pageInfo.page = 1;
+      this.$refs.searchForm.save(this.searchForm);
+      this.$refs.searchForm.save(this.pageInfo, "page");
+      this.getList();
     },
     reset() {
-      this.searchForm = {...initSearch}
-      this.search()
+      this.searchForm = { ...initSearch };
+      this.search();
     },
-    getList () {
+    getList() {
       let params = {
         page: this.pageInfo.page,
         rows: this.pageInfo.limit,
@@ -256,23 +302,23 @@ export default {
       });
     },
 
-    lookDetail (row) {
+    lookDetail(row) {
       // this.detail = res.data
       this.detail = {
         id: row.musicGroupPaymentCalenderId,
         batchNo: row.batchNo,
         musicGroupId: row.musicGroupId,
-        status: row.auditStatus
-      }
+        status: row.auditStatus,
+      };
       this.typeStatus = true;
     },
-    close () {
+    close() {
       this.typeStatus = false;
-      this.getList()
+      this.getList();
     },
   },
   watch: {
-    typeStatus (val) {
+    typeStatus(val) {
       if (!val) {
         this.detail = null;
       }

+ 223 - 166
src/views/businessManager/orderManager/backMoney.vue

@@ -1,179 +1,208 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>退费管理
+      <div class="squrt"></div>
+      退费管理
     </h2>
     <div class="m-core">
       <!-- 搜索类型 -->
-      <save-form :inline="true"
-               class="searchForm"
-              :model="searchForm" @submit='search' @reset='onReSet'>
-        <el-form-item prop='organId'>
-          <el-select class='multiple'
-                     v-model.trim="searchForm.organId"
-                     clearable
-                     filterable
-                     placeholder="请选择分部">
-            <el-option v-for="(item,index) in selects.branchs"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+      <save-form
+        :inline="true"
+        class="searchForm"
+        :model="searchForm"
+        @submit="search"
+        @reset="onReSet"
+      >
+        <el-form-item prop="organId">
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.organId"
+            clearable
+            filterable
+            placeholder="请选择分部"
+          >
+            <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-date-picker style="width:410px;"
-                          v-model.trim="orderDate"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          @change="searchOrderDate"
-                          range-separator="至"
-                          start-placeholder="申请开始日期"
-                          end-placeholder="申请结束日期"
-                          :picker-options="{
-        firstDayOfWeek: 1
-    }">
+          <el-date-picker
+            style="width: 410px"
+            v-model.trim="searchForm.orderDate"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            @change="searchOrderDate"
+            range-separator="至"
+            start-placeholder="申请开始日期"
+            end-placeholder="申请结束日期"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+          >
           </el-date-picker>
         </el-form-item>
         <el-form-item>
-          <el-button native-type="submit"
-                     type="danger">搜索</el-button>
-          <el-button native-type="reset"
-                     type="primary">重置</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 class="tableWrap">
-        <el-table :data='tableList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center'
-                           width="150"
-                           prop="createTime"
-                           label="申请时间">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column
+            align="center"
+            width="150"
+            prop="createTime"
+            label="申请时间"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.createTime | dateForMinFormat}}
+                {{ scope.row.createTime | dateForMinFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="orderNo"
-                           label="原订单编号">
+          <el-table-column align="center" prop="orderNo" label="原订单编号">
           </el-table-column>
-          <el-table-column align='center'
-                           prop="studentPaymentOrder.expectAmount"
-                           label="应付金额">
+          <el-table-column
+            align="center"
+            prop="studentPaymentOrder.expectAmount"
+            label="应付金额"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.studentPaymentOrder.expectAmount | moneyFormat}}
+                {{ scope.row.studentPaymentOrder.expectAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="studentPaymentOrder.actualAmount"
-                           label="实付金额">
+          <el-table-column
+            align="center"
+            prop="studentPaymentOrder.actualAmount"
+            label="实付金额"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.studentPaymentOrder.actualAmount | moneyFormat}}
+                {{ scope.row.studentPaymentOrder.actualAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="user.username"
-                           label="学员姓名">
+          <el-table-column align="center" prop="user.username" label="学员姓名">
           </el-table-column>
-          <el-table-column align='center'
-                           prop="remark"
-                           label="退费说明">
+          <el-table-column align="center" prop="remark" label="退费说明">
           </el-table-column>
-          <el-table-column align='center'
-                           prop="expectAmount"
-                           label="预退费金额">
+          <el-table-column
+            align="center"
+            prop="expectAmount"
+            label="预退费金额"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.expectAmount| moneyFormat}}
+                {{ scope.row.expectAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="actualAmount"
-                           label="实退费金额">
+          <el-table-column
+            align="center"
+            prop="actualAmount"
+            label="实退费金额"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.actualAmount| moneyFormat}}
+                {{ scope.row.actualAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="退费状态">
+          <el-table-column align="center" label="退费状态">
             <template slot-scope="scope">
               {{ scope.row.status | returnStatus }}
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="操作">
-            <template slot-scope="scope"
-                      v-if="scope.row.status == 'WAIT_PAYMENT'">
-              <el-button @click="onBackMoney(scope.row)"
-                         v-permission="'vipGroupManage/applyRefundAudit'"
-                         type="text">退费</el-button>
+          <el-table-column align="center" label="操作">
+            <template
+              slot-scope="scope"
+              v-if="scope.row.status == 'WAIT_PAYMENT'"
+            >
+              <el-button
+                @click="onBackMoney(scope.row)"
+                v-permission="'vipGroupManage/applyRefundAudit'"
+                type="text"
+                >退费</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
         <pagination
-        sync
-        :total.sync="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
-      <el-dialog title="退费确认"
-                 :visible.sync="backStatus"
-                 @close="onFormClose('ruleForm')"
-                 width="500px">
-        <el-form :model="form"
-                 :rules="rules"
-                 ref="ruleForm">
-          <el-form-item label="退费路径"
-                        prop="name"
-                        :label-width="formLabelWidth">
-            <el-input disabled
-                      value="余额"
-                      autocomplete="off"></el-input>
+      <el-dialog
+        title="退费确认"
+        :visible.sync="backStatus"
+        @close="onFormClose('ruleForm')"
+        width="500px"
+      >
+        <el-form :model="form" :rules="rules" ref="ruleForm">
+          <el-form-item
+            label="退费路径"
+            prop="name"
+            :label-width="formLabelWidth"
+          >
+            <el-input disabled value="余额" autocomplete="off"></el-input>
           </el-form-item>
-          <el-form-item label="退费金额"
-                        prop="amount"
-                        :label-width="formLabelWidth">
-            <el-input v-model.trim.number="form.amount"
-                      autocomplete="off"></el-input>
+          <el-form-item
+            label="退费金额"
+            prop="amount"
+            :label-width="formLabelWidth"
+          >
+            <el-input
+              v-model.trim.number="form.amount"
+              autocomplete="off"
+            ></el-input>
           </el-form-item>
         </el-form>
-        <span slot="footer"
-              class="dialog-footer">
-          <el-button type="danger"
-                     @click="onTeachingSubmit('ruleForm', 'REJECT')">拒绝退费</el-button>
-          <el-button type="primary"
-                     @click="onTeachingSubmit('ruleForm', 'DONE')">确认退费</el-button>
+        <span slot="footer" class="dialog-footer">
+          <el-button
+            type="danger"
+            @click="onTeachingSubmit('ruleForm', 'REJECT')"
+            >拒绝退费</el-button
+          >
+          <el-button
+            type="primary"
+            @click="onTeachingSubmit('ruleForm', 'DONE')"
+            >确认退费</el-button
+          >
         </span>
       </el-dialog>
     </div>
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
-import { studentRefundsQueryPage, applyRefundAudit } from '@/api/orderManager'
-import { getEmployeeOrgan } from '@/api/buildTeam'
-import store from '@/store'
+import pagination from "@/components/Pagination/index";
+import { studentRefundsQueryPage, applyRefundAudit } from "@/api/orderManager";
+import { getEmployeeOrgan } from "@/api/buildTeam";
+import { getTimes } from "@/utils";
+import store from "@/store";
 export default {
   components: { pagination },
-  name: 'backMoney',
-  data () {
+  name: "backMoney",
+  data() {
     return {
-      orderDate: null,
       searchForm: {
         startTime: null,
         endTime: null,
-        organId: null
+        organId: null,
+        orderDate: [],
       },
       tableList: [],
       organList: [],
@@ -182,105 +211,133 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       backStatus: false,
-      formLabelWidth: '100px',
+      formLabelWidth: "100px",
       form: {
         id: null,
         amount: null,
       },
       rules: {
-        amount: [{ required: true, type: 'number', message: '请输入金额', trigger: 'blur' }],
+        amount: [
+          {
+            required: true,
+            type: "number",
+            message: "请输入金额",
+            trigger: "blur",
+          },
+        ],
       },
-    }
+    };
   },
-  mounted () {
+  mounted() {
     // getEmployeeOrgan().then(res => {
     //   if (res.code == 200) {
     //     this.organList = res.data;
     //   }
     // })
-   this.$store.dispatch("setBranchs");
-    var now = new Date();
-    var startDate = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())).toISOString().slice(0, 10);
-    var endDate = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())).toISOString().slice(0, 10);
-    this.orderDate = [];
-    this.orderDate.push(startDate)
-    this.orderDate.push(endDate)
-    this.getList()
+    this.$store.dispatch("setBranchs");
+    if (this.searchForm.orderDate.length < 1) {
+      var now = new Date();
+      var startDate = new Date(
+        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+      )
+        .toISOString()
+        .slice(0, 10);
+      var endDate = new Date(
+        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+      )
+        .toISOString()
+        .slice(0, 10);
+      this.searchForm.orderDate = [];
+      this.searchForm.orderDate.push(startDate);
+      this.searchForm.orderDate.push(endDate);
+    }
+
+    this.getList();
   },
   methods: {
-    search () {
+    search() {
       this.pageInfo.page = 1;
-      this.getList()
+      this.getList();
     },
-    onTeachingSubmit (formName, status) { // 添加数据
+    onTeachingSubmit(formName, status) {
+      // 添加数据
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          this.form.status = status
-          applyRefundAudit(this.form).then(res => {
+          this.form.status = status;
+          applyRefundAudit(this.form).then((res) => {
             if (res.code == 200) {
-              this.$message.success('操作成功')
-              this.backStatus = false
-              this.getList()
+              this.$message.success("操作成功");
+              this.backStatus = false;
+              this.getList();
             } else {
-              this.$message.error(res.msg)
+              this.$message.error(res.msg);
             }
-          })
+          });
         } else {
           return false;
         }
-      })
+      });
     },
-    getList () {
-      let params = this.searchForm
-      params.rows = this.pageInfo.limit
-      params.page = this.pageInfo.page
-      if (this.orderDate?.length > 0) {
-        params.startTime = this.orderDate[0]
-        params.endTime = this.orderDate[1]
-      } else {
-        params.startTime = null
-        params.endTime = null
-      }
-      studentRefundsQueryPage(params).then(res => {
-        let result = res.data
+    getList() {
+      let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["startTime", "endTime"]),
+      };
+      // let params = this.searchForm;
+      // params.rows = this.pageInfo.limit;
+      // params.page = this.pageInfo.page;
+      // if (this.orderDate?.length > 0) {
+      //   params.startTime = this.orderDate[0];
+      //   params.endTime = this.orderDate[1];
+      // } else {
+      //   params.startTime = null;
+      //   params.endTime = null;
+      // }
+      studentRefundsQueryPage(params).then((res) => {
+        let result = res.data;
         if (res.code == 200) {
-          this.tableList = result.rows
-          this.pageInfo.total = result.total
+          this.tableList = result.rows;
+          this.pageInfo.total = result.total;
         }
-      })
+      });
     },
-    searchOrderDate (value) {
+    searchOrderDate(value) {
       if (value) {
-        this.searchForm.startTime = value[0] + ' 00:00:00'
-        this.searchForm.endTime = value[1] + ' 23:59:59'
+        this.searchForm.startTime = value[0] + " 00:00:00";
+        this.searchForm.endTime = value[1] + " 23:59:59";
       } else {
-        this.searchForm.startTime = null
-        this.searchForm.endTime = null
+        this.searchForm.startTime = null;
+        this.searchForm.endTime = null;
       }
     },
-    onReSet () {
-      this.orderDate = null
+    onReSet() {
+      this.orderDate = null;
       this.searchForm = {
         startTime: null,
-        endTime: null
-      }
+        endTime: null,
+      };
     },
-    onFormClose (formName) { // 关闭弹窗重置验证
-      this.$refs[formName].clearValidate()
+    onFormClose(formName) {
+      // 关闭弹窗重置验证
+      this.$refs[formName].clearValidate();
     },
-    onBackMoney (row) { // 退费
-      this.backStatus = true
+    onBackMoney(row) {
+      // 退费
+      this.backStatus = true;
       this.form = {
         id: row.id,
-        amount: row.expectAmount
-      }
+        amount: row.expectAmount,
+      };
       // applyRefundAudit()
-    }
-  }
-}
+    },
+  },
+};
 </script>
 <style lang="scss">
 </style>

+ 3 - 6
src/views/categroyManager/generalSettings/vipParameterManager.vue

@@ -5,16 +5,14 @@
       VIP参数设置
     </h2>
     <div class="m-core">
-      <location-hash v-model="activeIndex" @change="handleClick">
-        <el-tabs v-model.trim="activeIndex" type="card" @tab-click="handleClick">
+        <tab-router v-model.trim="activeIndex" type="card" @tab-click="handleClick">
           <el-tab-pane lazy label="课程形式" name="1">
             <vipCourseType />
           </el-tab-pane>
           <el-tab-pane lazy label="周期循环" name="2">
             <vipCourseTimeSet />
           </el-tab-pane>
-        </el-tabs>
-      </location-hash>
+        </tab-router>
     </div>
   </div>
 </template>
@@ -25,9 +23,8 @@ export default {
   name: "vipParameterManager",
   components: { vipCourseType, vipCourseTimeSet },
   data() {
-    const query = this.$route.query
     return {
-      activeIndex: query.opt || "1",
+      activeIndex: "1",
     };
   },
   mounted() {},

+ 2 - 4
src/views/categroyManager/globalConfig.vue

@@ -6,8 +6,7 @@
     </h2>
     <div class="m-core">
       <!-- navMenu -->
-      <location-hash v-model="activeIndex" @change="handleClick">
-        <el-tabs
+        <tab-router
           v-model.trim="activeIndex"
           type="card"
           @tab-click="handleClick"
@@ -109,8 +108,7 @@
           >
             <holidaySetting v-if="activeIndex == 8" />
           </el-tab-pane>
-        </el-tabs>
-      </location-hash>
+        </tab-router>
     </div>
   </div>
 </template>

+ 140 - 106
src/views/categroyManager/insideSetting/branchActive.vue

@@ -1,54 +1,76 @@
 <template>
-  <div class='m-container'>
+  <div class="m-container">
     <h2>
-      <div class="squrt"></div>VIP分部活动列表
+      <div class="squrt"></div>
+      VIP分部活动列表
     </h2>
     <div class="m-core">
-      <el-button type="primary" @click="openActive('create')" style="margin-bottom: 20px"
-           v-permission="'/branchActiveOperationAdd'" >新建</el-button>
+      <el-button
+        type="primary"
+        @click="openActive('create')"
+        style="margin-bottom: 20px"
+        v-permission="'/branchActiveOperationAdd'"
+        >新建</el-button
+      >
       <!-- 搜索类型 -->
-      <save-form :inline="true"
-               ref="searchForm"
-               @submit.native.prevent
-               @submit="onSearch"
-               @reset="onReset"
-               :model.sync="searchForm">
+      <save-form
+        :inline="true"
+        ref="searchForm"
+        @submit.native.prevent
+        @submit="onSearch"
+        @reset="onReset"
+        :model.sync="searchForm"
+      >
         <el-form-item prop="search">
-          <el-input type="text"
-                    v-model.trim="searchForm.search"
-                    @keyup.enter.native='getList'
-                    placeholder="分部活动名"></el-input>
+          <el-input
+            type="text"
+            v-model.trim="searchForm.search"
+            @keyup.enter.native="getList"
+            placeholder="分部活动名"
+          ></el-input>
         </el-form-item>
         <el-form-item prop="rewardMode">
-          <el-select v-model.trim="searchForm.rewardMode"
-                     clearable
-                     placeholder="分部活动类型">
-            <el-option v-for="(item,index) in rewardModeTypeList"
-                       :key="index"
-                       :label="item.label"
-                       :value="item.value"></el-option>
+          <el-select
+            v-model.trim="searchForm.rewardMode"
+            clearable
+            placeholder="分部活动类型"
+          >
+            <el-option
+              v-for="(item, index) in rewardModeTypeList"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="teacherId">
-          <el-select v-model.trim="searchForm.teacherId"
-                     clearable
-                     filterable
-                     placeholder="适用老师">
-            <el-option v-for="item in selects.teachers"
-                       :key="item.id"
-                       :label="item.realName"
-                       :value="item.id"></el-option>
+          <el-select
+            v-model.trim="searchForm.teacherId"
+            clearable
+            filterable
+            placeholder="适用老师"
+          >
+            <el-option
+              v-for="item in selects.teachers"
+              :key="item.id"
+              :label="item.realName"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="vipGroupCategoryId">
-          <el-select v-model.trim="searchForm.vipGroupCategoryId"
-                     filterable
-                     clearable
-                     placeholder="课程类型">
-            <el-option v-for="item in selects.vipGroupCategory"
-                       :key="item.id"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            v-model.trim="searchForm.vipGroupCategoryId"
+            filterable
+            clearable
+            placeholder="课程类型"
+          >
+            <el-option
+              v-for="item in selects.vipGroupCategory"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -58,58 +80,70 @@
       </save-form>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center'
-                           prop='name'
-                           label="分部活动名">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column align="center" prop="name" label="分部活动名">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.name }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop='rewardMode'
-                           label="分部活动类型">
+          <el-table-column
+            align="center"
+            prop="rewardMode"
+            label="分部活动类型"
+          >
             <template slot-scope="scope">
               {{ scope.row.rewardMode | rewardModeTypeFormat }}
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="适用老师">
+          <el-table-column align="center" label="适用老师">
             <template slot-scope="scope">
-              <span style="max-height: 68px;display: block;"
-                    :title="scope.row.teacherNames | joinArray(',')">{{ scope.row.teacherNames | joinArray(',') }}</span>
+              <span
+                style="max-height: 68px; display: block"
+                :title="scope.row.teacherNames | joinArray(',')"
+                >{{ scope.row.teacherNames | joinArray(",") }}</span
+              >
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop='vipGroupCategoryNameList'
-                           label="课程类型">
+          <el-table-column
+            align="center"
+            prop="vipGroupCategoryNameList"
+            label="课程类型"
+          >
           </el-table-column>
-          <el-table-column align='center'
-                           label="操作"
-                           width='100'>
+          <el-table-column align="center" label="操作" width="100">
             <template slot-scope="scope">
-              <el-button @click="openActive('update', scope.row)"
-                         v-permission="'/branchActiveOperationUpdate'"
-                         type="text">修改</el-button>
+              <el-button
+                @click="openActive('update', scope.row)"
+                v-permission="'/branchActiveOperationUpdate'"
+                type="text"
+                >修改</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total.sync="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    sync
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+        <pagination
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          sync
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
-import { courseScheduleRewards } from '@/api/systemManage'
+import pagination from "@/components/Pagination/index";
+import { courseScheduleRewards } from "@/api/systemManage";
 import { rewardModeTypeList } from "@/utils/searchArray";
 export default {
-  name: 'branchActive',
+  name: "branchActive",
   components: { pagination },
-  data () {
+  data() {
     return {
       rewardModeTypeList,
       searchForm: {
@@ -125,64 +159,64 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
-
-    }
+    };
   },
-  mounted () {
-    this.getList() // 获取列表数据
-    this.__init()
+  mounted() {
+    this.getList(); // 获取列表数据
+    this.__init();
   },
   methods: {
-    async __init () {
+    async __init() {
       // 获取类型
-      this.$store.dispatch('setVipGroupCategory')
+      this.$store.dispatch("setVipGroupCategory");
 
-      this.$store.dispatch('setTeachers')
+      this.$store.dispatch("setTeachers");
     },
-    getList () {
-      let params = this.searchForm
-      params.rows = this.pageInfo.limit
-      params.page = this.pageInfo.page
-      courseScheduleRewards(params).then(res => {
+    getList() {
+      let params = this.searchForm;
+      params.rows = this.pageInfo.limit;
+      params.page = this.pageInfo.page;
+      courseScheduleRewards(params).then((res) => {
         if (res.code == 200 && res.data) {
-          this.tableList = res.data.rows
-          this.pageInfo.total = res.data.total
+          this.tableList = res.data.rows;
+          this.pageInfo.total = res.data.total;
         }
-      })
+      });
     },
-    openActive (type, row) {
+    openActive(type, row) {
       let params = {
-        path: '/vipClassSet/branchActiveOperation',
+        path: "/vipClassSet/branchActiveOperation",
         query: {
-          type: type
+          type: type,
         },
-      }
-      let tagTitle = '新建'
+      };
+      let tagTitle = "新建";
       if (row) {
-        params.query.id = row.id
-        tagTitle = '修改'
+        params.query.id = row.id;
+        tagTitle = "修改";
       }
       this.$router.push(params, (route) => {
-        route.meta.title = tagTitle + 'VIP分部活动'
-      })
+        route.meta.title = tagTitle + "VIP分部活动";
+      });
     },
-    onFormClose (formName) { // 关闭弹窗重置验证
-      this.$refs[formName].clearValidate()
+    onFormClose(formName) {
+      // 关闭弹窗重置验证
+      this.$refs[formName].clearValidate();
     },
     onSearch() {
-      this.$refs.searchForm.validate(valid => {
-        this.pageInfo.page = 1
-        this.getList()
-      })
+      this.$refs.searchForm.validate((valid) => {
+        this.pageInfo.page = 1;
+        this.getList();
+      });
     },
     onReset() {
-      this.$refs.searchForm.resetFields()
-      this.onSearch()
-    }
-  }
-}
+      this.$refs.searchForm.resetFields();
+      this.onSearch();
+    },
+  },
+};
 </script>
 <style lang="scss">
 .el-button--primary {
@@ -203,4 +237,4 @@ export default {
   margin-top: 10px;
   z-index: 99999 !important;
 }
-</style>
+</style>

+ 27 - 18
src/views/categroyManager/vipActiveList.vue

@@ -6,7 +6,13 @@
     </h2>
 
     <div class="m-core">
-      <el-button type="primary" style="margin-bottom: 20px" v-permission="'/vipNewActive'" @click="gotoNewActive">新建</el-button>
+      <el-button
+        type="primary"
+        style="margin-bottom: 20px"
+        v-permission="'/vipNewActive'"
+        @click="gotoNewActive"
+        >新建</el-button
+      >
       <save-form
         :inline="true"
         class="searchForm"
@@ -63,16 +69,20 @@
           :data="tableList"
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         >
-          <el-table-column
-            align="center"
-            prop="id"
-            label="活动编号"
-          ></el-table-column>
+          <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="name"
             label="活动名称"
-          ></el-table-column>
+          >
+           <template slot-scope="scope">
+              <copy-text>{{ scope.row.name }}</copy-text>
+            </template>
+          </el-table-column>
           <el-table-column
             align="center"
             prop="vipGroupCategoryNames"
@@ -269,7 +279,8 @@
           title="活动适用范围&结算标准"
           type="info"
           :closable="false"
-          class="alert">
+          class="alert"
+        >
         </el-alert>
         <div class="activeRange">
           <!-- <div class="left">
@@ -371,8 +382,9 @@
           title="活动类型"
           type="info"
           :closable="false"
-          style="margin-bottom: 15px;"
-          class="alert">
+          style="margin-bottom: 15px"
+          class="alert"
+        >
         </el-alert>
         <div class="activeType">
           <!-- <div class="left">
@@ -398,7 +410,6 @@
                 折扣
               </div>
               <el-input
-
                 v-if="activeType == 'DISCOUNT'"
                 v-model.trim="attribute1"
                 placeholder="请输入折扣数值"
@@ -417,14 +428,12 @@
               <el-input
                 placeholder="多少节开始赠"
                 v-if="activeType == 'GIVE_CLASS'"
-
                 v-model.trim="attribute1"
                 style="margin-right: 10px"
               ></el-input>
               <span v-if="activeType == 'GIVE_CLASS'">赠</span>
               <el-input
                 v-if="activeType == 'GIVE_CLASS'"
-
                 placeholder="请输入赠送课时数"
                 v-model.trim="attribute2"
                 style="margin: 0 10px"
@@ -533,7 +542,7 @@ export default {
   //   this.init();
   // },
   mounted() {
-    this.init()
+    this.init();
   },
   filters: {
     onlinePip(val) {
@@ -651,9 +660,9 @@ export default {
   methods: {
     async init() {
       // 获取类型
-      await this.$store.dispatch('setVipGroupCategory')
+      await this.$store.dispatch("setVipGroupCategory");
       // 获取分部
-      await this.$store.dispatch('setBranchs')
+      await this.$store.dispatch("setBranchs");
 
       this.getList();
     },
@@ -875,7 +884,7 @@ export default {
                 this.$message.error("折扣比必须大于0且小于100");
                 return;
               }
-            }else if(this.onlineSalary == 'TEACHER_DEFAULT'){
+            } else if (this.onlineSalary == "TEACHER_DEFAULT") {
               this.onlineprice = 0;
             }
             onlineSalarySettlement = {
@@ -892,7 +901,7 @@ export default {
                 this.$message.error("折扣比必须大于0且小于100");
                 return;
               }
-            }else if(this.unonlineSalary == 'TEACHER_DEFAULT'){
+            } else if (this.unonlineSalary == "TEACHER_DEFAULT") {
               this.unonlineprice = 0;
             }
             offlineSalarySettlement = {

+ 5 - 6
src/views/chargeManager/index.vue

@@ -6,8 +6,8 @@
     </h2>
     <div class="m-core">
       <!-- navMenu -->
-      <location-hash v-model="activeIndex" @change="handleClick">
-        <el-tabs v-model.trim="activeIndex" type="card" @tab-click="handleClick">
+
+        <tab-router 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>
@@ -17,8 +17,7 @@
           <el-tab-pane lazy label="金额" name="2" v-if="permissionList.money">
               <two v-if="activeIndex == 2" />
           </el-tab-pane>
-        </el-tabs>
-      </location-hash>
+        </tab-router>
     </div>
   </div>
 </template>
@@ -37,7 +36,7 @@ export default {
   data () {
     const query = this.$route.query
     return {
-      activeIndex: query.opt || '0',
+      activeIndex: '0',
       permissionList: {
         scalc: permission('/chargeManager/scalc'),
         money: permission('/chargeManager/money'),
@@ -56,4 +55,4 @@ export default {
 /deep/.m-container {
   padding: 0 10px 40px
 }
-</style>
+</style>

+ 18 - 20
src/views/contentManager/index.vue

@@ -4,58 +4,58 @@
       <div class="squrt"></div> 内容管理
     </h2>
     <div class="m-core">
-      <el-tabs v-model.trim="activeName"
+      <tab-router v-model.trim="activeName"
                type="card"
                @tab-click="handleClick">
         <el-tab-pane label="精彩活动"
                      v-if="permissionList.activity"
                      lazy
                      name="0">
-          <activity v-if="activeStatus[0]" />
+          <activity />
         </el-tab-pane>
         <el-tab-pane label="热门资讯"
                      v-if="permissionList.information"
                      lazy
                      name="1">
-          <information v-if="activeStatus[1]" />
+          <information  />
         </el-tab-pane>
         <el-tab-pane label="专项训练"
                      v-if="permissionList.training"
                      lazy
                      name="2">
-          <training v-if="activeStatus[2]" />
+          <training  />
         </el-tab-pane>
         <el-tab-pane label="闪页管理"
                      v-if="permissionList.flashPage"
                      lazy
                      name="3">
-          <flashPage v-if="activeStatus[3]" />
+          <flashPage />
         </el-tab-pane>
         <el-tab-pane label="BANNER管理"
                      v-if="permissionList.banner"
                      lazy
                      name="4">
-          <banner v-if="activeStatus[4]" />
+          <banner  />
         </el-tab-pane>
         <el-tab-pane label="APP按钮管理"
                      v-if="permissionList.appPage"
                      lazy
                      name="5">
-          <appPage v-if="activeStatus[5]" />
+          <appPage  />
         </el-tab-pane>
         <el-tab-pane label="知识库管理"
                      v-if="permissionList.knowledge"
                      lazy
                      name="6">
-          <knowledge v-if="activeStatus[6]" />
+          <knowledge  />
         </el-tab-pane>
         <el-tab-pane label="广告管理"
                      v-if="permissionList.advert"
                      lazy
                      name="7">
-          <advert v-if="activeStatus[7]" />
+          <advert  />
         </el-tab-pane>
-      </el-tabs>
+      </tab-router>
     </div>
   </div>
 </template>
@@ -83,7 +83,6 @@ export default {
   data () {
     return {
       activeName: "0",
-      activeStatus: [true, false, false, false, false, false, false, false],
       permissionList: {
         banner: permission('/contentManager/banner'),
         activity: permission('/contentManager/activity'),
@@ -97,21 +96,20 @@ export default {
     }
   },
   mounted () {
-    let type = this.$route.query.type
-    if (type != null) {
-      this.activeName = type.toString()
-      this.activeStatus[type] = true
-    }
+    // let type = this.$route.query.type
+    // if (type != null) {
+    //   this.activeName = type.toString()
+    //   this.activeStatus[type] = true
+    // }
   },
   methods: {
     handleClick (val, event) {
+      console.log(val.name)
       this.activeName = val.name
-      this.activeStatus[val.name] = true
-      const origin = window.location.origin
-      history.pushState("", "", `${origin}/#/contentManager/contentManager?type=${val.name}`)
+      // this.activeStatus[val.name] = true
     }
   }
 }
 </script>
 <style lang="scss">
-</style>
+</style>

+ 207 - 147
src/views/levelManager/levelManager.vue

@@ -2,27 +2,39 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>考级报名列表
+      <div class="squrt"></div>
+      考级报名列表
     </h2>
     <div class="m-core">
       <!-- 搜索标题 -->
-      <save-form :inline="true"
-               class="searchForm"
-               ref='searchForm'
-               @submit="onSearch"
-               @reset="onReSet"
-               :model="searchForm">
+      <save-form
+        :inline="true"
+        class="searchForm"
+        ref="searchForm"
+        @submit="onSearch"
+        @reset="onReSet"
+        :model="searchForm"
+      >
         <el-form-item prop="name">
-          <el-input v-model.trim="searchForm.name" clearable
-                    placeholder="请输入姓名"></el-input>
+          <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" clearable
-                    placeholder="请输入订单编号"></el-input>
+          <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" clearable
-                    placeholder="请输入交易流水号"></el-input>
+          <el-input
+            v-model.trim="searchForm.transNo"
+            clearable
+            placeholder="请输入交易流水号"
+          ></el-input>
         </el-form-item>
         <!-- <el-form-item>
           <el-input v-model.trim="searchForm.city"
@@ -30,139 +42,173 @@
                     placeholder="请输入城市名"></el-input>
         </el-form-item> -->
         <el-form-item prop="organId">
-          <el-select v-model.trim="searchForm.organId"
-                     filterable
-                     clearable
-                     placeholder="请选择分部">
-            <el-option v-for="item in selects.branchs"
-                       :key="item.id"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            v-model.trim="searchForm.organId"
+            filterable
+            clearable
+            placeholder="请选择分部"
+          >
+            <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-select class="multiple"
-                     v-model.trim="searchForm.status"
-                     filterable
-                     clearable
-                     placeholder="请选择缴费状态">
-            <el-option value="reg"
-                       label="未缴费"></el-option>
-            <el-option value="pay"
-                       label="已缴费"></el-option>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.status"
+            filterable
+            clearable
+            placeholder="请选择缴费状态"
+          >
+            <el-option value="reg" label="未缴费"></el-option>
+            <el-option value="pay" label="已缴费"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="orderDate">
-          <el-date-picker v-model.trim="orderDate"
-                          style="width:410px;"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          @change="searchOrderDate"
-                          range-separator="至"
-                          start-placeholder="报名开始日期"
-                          end-placeholder="报名结束日期"
-                          :picker-options="{
-        firstDayOfWeek: 1
-    }"></el-date-picker>
+          <el-date-picker
+            v-model.trim="searchForm.orderDate"
+            style="width: 410px"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="报名开始日期"
+            end-placeholder="报名结束日期"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item>
-          <el-button native-type="submit"
-                     type="danger">搜索</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
           <el-button native-type="reset" type="primary">重置</el-button>
-          <el-button @click="onExport"
-                     v-permission="'export/degreeRegistration/825'"
-                     type="primary">导出</el-button>
+          <el-button
+            @click="onExport"
+            v-permission="'export/degreeRegistration/825'"
+            type="primary"
+            >导出</el-button
+          >
         </el-form-item>
       </save-form>
-      <div style="font-size: 14px; color: #F85043; padding-bottom: 10px;">
+      <div style="font-size: 14px; color: #f85043; padding-bottom: 10px">
         报考总人数:{{ totalNumber }}人
         <i style="width: 10px; display: inline-block"></i>
         实收总金额:{{ totalAmount }}元
       </div>
       <div class="tableWrap">
-        <el-table :data="tableList"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-
-          <el-table-column width="90px"
-                           align="center"
-                           prop="id"
-                           label="编号"></el-table-column>
-          <el-table-column align="center"
-                           prop="name"
-                           label="姓名"></el-table-column>
-          <el-table-column align="center"
-                           prop="orderNo"
-                           label="订单编号">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column width="90px" 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="name" label="姓名">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.name }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="orderNo" label="订单编号">
             <template slot-scope="scope">
-              <copy-text>{{scope.row.orderNo}}</copy-text>
+              <copy-text>{{ scope.row.orderNo }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="transNo"
-                           label="交易流水号">
+          <el-table-column align="center" prop="transNo" label="交易流水号">
             <template slot-scope="scope">
               <el-tooltip placement="top-start">
                 <div slot="content">{{ scope.row.transNo }}</div>
-                <span>{{ scope.row.transNo }}</span>
+                <copy-text>{{ scope.row.transNo }}</copy-text>
               </el-tooltip>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="gender"
-                           label="性别">
-            <template slot-scope="scope">{{ scope.row.gender == 1 ? '男' : '女' }}</template>
+                <el-table-column
+            align="center"
+            prop="city"
+            label="分部"
+          >
+              <template slot-scope="scope">
+              <copy-text>{{ scope.row.city }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="gender" label="性别">
+            <template slot-scope="scope">{{
+              scope.row.gender == 1 ? "男" : "女"
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="idcard"
-                           label="身份证号"></el-table-column>
-          <el-table-column align="center"
-                           prop="mobile"
-                           label="联系电话"
-                           width="110px"></el-table-column>
-          <el-table-column align="center"
-                           prop="city"
-                           label="分部"></el-table-column>
-          <el-table-column align="center"
-                           prop="subject"
-                           label="报考乐器"></el-table-column>
-          <el-table-column align="center"
-                           prop="level"
-                           label="报考级别"></el-table-column>
-          <el-table-column align="center"
-                           prop="theoryLevel"
-                           label="乐理级别"></el-table-column>
-          <el-table-column align="center"
-                           label="缴费状态">
-            <template slot-scope="scope">{{ scope.row.status == 2 ? '已缴费' : '未缴费' }}</template>
+          <el-table-column
+            align="center"
+            prop="idcard"
+            label="身份证号"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="mobile"
+            label="联系电话"
+            width="110px"
+          ></el-table-column>
+
+          <el-table-column
+            align="center"
+            prop="subject"
+            label="报考乐器"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="level"
+            label="报考级别"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="theoryLevel"
+            label="乐理级别"
+          ></el-table-column>
+          <el-table-column align="center" label="缴费状态">
+            <template slot-scope="scope">{{
+              scope.row.status == 2 ? "已缴费" : "未缴费"
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="money"
-                           label="报考级别费用">
-            <template slot-scope="scope">{{ scope.row.money|moneyFormat }}元</template>
+          <el-table-column align="center" prop="money" label="报考级别费用">
+            <template slot-scope="scope"
+              >{{ scope.row.money | moneyFormat }}元</template
+            >
           </el-table-column>
-          <el-table-column align="center"
-                           prop="theoryMoney"
-                           label="乐理级别费用">
-            <template slot-scope="scope">{{ scope.row.theoryMoney|moneyFormat }}元</template>
+          <el-table-column
+            align="center"
+            prop="theoryMoney"
+            label="乐理级别费用"
+          >
+            <template slot-scope="scope"
+              >{{ scope.row.theoryMoney | moneyFormat }}元</template
+            >
           </el-table-column>
-          <el-table-column align="center"
-                           label="证书">
+          <el-table-column align="center" label="证书">
             <template slot-scope="scope">
               <div v-if="scope.row.theoryCert">
-                <el-image fit="cover"
-                          style="width: 100px; height: 100px"
-                          :src="scope.row.theoryCert"
-                          :preview-src-list="[scope.row.theoryCert]"></el-image>
+                <el-image
+                  fit="cover"
+                  style="width: 100px; height: 100px"
+                  :src="scope.row.theoryCert"
+                  :preview-src-list="[scope.row.theoryCert]"
+                ></el-image>
               </div>
               <div v-else>--</div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="createTime"
-                           label="报名时间"></el-table-column>
-          <el-table-column align="center"
-                           prop="memo"
-                           label="备注"></el-table-column>
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="报名时间"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="memo"
+            label="备注"
+          ></el-table-column>
           <!-- <el-table-column align="center" label="操作">
                     <template slot-scope="scope">
                     <el-button @click="onTypeDelOpeation(scope.row)"
@@ -171,12 +217,13 @@
           </el-table-column>-->
         </el-table>
         <pagination
-        sync
-        :total.sync="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
   </div>
@@ -184,26 +231,27 @@
 <script>
 import pagination from "@/components/Pagination/index";
 import axios from "axios";
-import cleandeep from 'clean-deep'
+import cleandeep from "clean-deep";
 // import store from '@/store'
 import { degreeQueryPage } from "./levelManageApi";
 import { getToken } from "@/utils/auth";
+import { getTimes } from "@/utils";
 import load from "@/utils/loading";
 export default {
   components: { pagination },
   name: "helpCategory",
-  data () {
+  data() {
     return {
-      orderDate: null,
       searchForm: {
         name: null,
         orderNo: null,
         transNo: null,
         city: null,
-        status: 'pay',
+        status: "pay",
         startTime: null,
         organId: null,
         endTime: null,
+        orderDate: [],
       },
       totalNumber: 0,
       totalAmount: 0,
@@ -218,19 +266,19 @@ export default {
       tempTreeList: [],
     };
   },
-  mounted () {
+  mounted() {
     this.getList();
     this.__init();
   },
   methods: {
-    __init () {
-      this.$store.dispatch('setBranchs')
+    __init() {
+      this.$store.dispatch("setBranchs");
     },
-    onSearch () {
+    onSearch() {
       this.pageInfo.page = 1;
       this.getList();
     },
-    onReSet () {
+    onReSet() {
       // 重置搜索
 
       this.orderDate = null;
@@ -243,16 +291,23 @@ export default {
       //   organId: null,
       //   endTime: null,
       // };
-         this.$refs.searchForm.resetFields()
-        //  this.$set(this.searchForm,'status','pay')
+      this.$refs.searchForm.resetFields();
+      //  this.$set(this.searchForm,'status','pay')
       // this.searchForm.status = 'pay'
       this.onSearch();
     },
-    getList () {
-      let searchForm = this.searchForm;
-      let params = cleandeep(searchForm)
-      params.page = this.pageInfo.page
-      params.rows = this.pageInfo.limit
+    getList() {
+      // let searchForm = this.searchForm;
+      // let params = cleandeep(searchForm);
+      // params.page = this.pageInfo.page;
+      // params.rows = this.pageInfo.limit;
+      let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["startTime", "endTime"]),
+      };
       degreeQueryPage(params).then((res) => {
         let result = res.data;
         if (res.code == 200) {
@@ -263,20 +318,25 @@ export default {
         }
       });
     },
-    searchOrderDate (value) {
-      if (value) {
-        this.searchForm.startTime = value[0];
-        this.searchForm.endTime = value[1];
-      } else {
-        this.searchForm.startTime = null;
-        this.searchForm.endTime = null;
-      }
-    },
+    // searchOrderDate(value) {
+    //   if (value) {
+    //     this.searchForm.startTime = value[0];
+    //     this.searchForm.endTime = value[1];
+    //   } else {
+    //     this.searchForm.startTime = null;
+    //     this.searchForm.endTime = null;
+    //   }
+    // },
     // 导出
-    onExport () {
+    onExport() {
       let url = "/api-web/export/degreeRegistration";
-      let searchForm = this.searchForm;
-      let params = cleandeep(searchForm)
+          let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        ...getTimes(orderDate, ["startTime", "endTime"]),
+      };
+
+     params = cleandeep(params);
       // {
       //   orderNo: searchForm.orderNo ? searchForm.orderNo : null,
       //   transNo: searchForm.transNo ? searchForm.transNo : null,
@@ -343,7 +403,7 @@ export default {
               load.endLoading();
             });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
   },
 };

+ 285 - 214
src/views/repairManager/repairList.vue

@@ -2,82 +2,98 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>维修单列表
+      <div class="squrt"></div>
+      维修单列表
     </h2>
     <div class="m-core">
-      <save-form :inline="true"
-               @submit="search"
-               @reset="onReSet"
-               :model="searchForm">
+      <save-form
+        :inline="true"
+        @submit="search"
+        @reset="onReSet"
+        :model="searchForm"
+      >
         <el-form-item>
-          <el-input v-model.trim="searchForm.search" clearable
-                    @keyup.enter.native="search"
-                    placeholder='维修单号/学生姓名/编号'></el-input>
+          <el-input
+            v-model.trim="searchForm.search"
+            clearable
+            @keyup.enter.native="search"
+            placeholder="维修单号/学生姓名/编号"
+          ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="维修技师"
-                     v-model="searchForm.employeeId"
-                     clearable
-                     filterable>
-            <el-option v-for="(item,index) in employeeList"
-                       :label="item.userName"
-                       :value="item.userId"
-                       :key="index"></el-option>
+          <el-select
+            placeholder="维修技师"
+            v-model="searchForm.employeeId"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="(item, index) in employeeList"
+              :label="item.userName"
+              :value="item.userId"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="请选择分部"
-                     v-model="searchForm.organIdList"
-                     clearable>
-            <el-option v-for="(item,index) in selects.branchs"
-                       :label="item.name"
-                       :value="item.id"
-                       :key="index"></el-option>
+          <el-select
+            placeholder="请选择分部"
+            v-model="searchForm.organIdList"
+            clearable
+          >
+            <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-select placeholder="请选择乐器类型"
-                     v-model="searchForm.subjectId"
-                     clearable
-                     filterable>
-            <el-option v-for="(item,index) in soundLists"
-                       :label="item.name"
-                       :value="item.id"
-                       :key="index"></el-option>
+          <el-select
+            placeholder="请选择乐器类型"
+            v-model="searchForm.subjectId"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="(item, index) in soundLists"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="维修状态"
-                     v-model="searchForm.repairStatus"
-                     clearable>
-            <el-option label="已完成"
-                       value="1"></el-option>
-            <el-option label="维修中"
-                       value="0"></el-option>
+          <el-select
+            placeholder="维修状态"
+            v-model="searchForm.repairStatus"
+            clearable
+          >
+            <el-option label="已完成" value="1"></el-option>
+            <el-option label="维修中" value="0"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="维修类型"
-                     v-model="searchForm.type"
-                     clearable>
-            <el-option label="线上"
-                       value="1"></el-option>
-            <el-option label="线下"
-                       value="0"></el-option>
+          <el-select placeholder="维修类型" v-model="searchForm.type" clearable>
+            <el-option label="线上" value="1"></el-option>
+            <el-option label="线下" value="0"></el-option>
           </el-select>
         </el-form-item>
         <br />
         <el-form-item label="送修日期">
-          <el-date-picker v-model.trim="searchForm.timer"
-                          style="width:400px;"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          :picker-options="{
-                              firstDayOfWeek: 1
-                          }"
-                          range-separator="至"
-                          start-placeholder="送修开始日期"
-                          end-placeholder="送修结束日期"></el-date-picker>
+          <el-date-picker
+            v-model.trim="searchForm.timer"
+            style="width: 400px"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+            range-separator="至"
+            start-placeholder="送修开始日期"
+            end-placeholder="送修结束日期"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item>
           <el-button type="danger" native-type="submit">搜索</el-button>
@@ -85,191 +101,241 @@
         </el-form-item>
       </save-form>
       <div class="tableWrap">
-        <el-table style="width: 100%"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}"
-                  :data="tableList">
-          <el-table-column align="center"
-                           prop="organName"
-                           label="分部"></el-table-column>
-          <el-table-column align="center"
-                           prop="transNo"
-                           label="维修单号"
-                           width="175">
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableList"
+        >
+          <el-table-column
+            align="center"
+            prop="organName"
+            label="分部"
+          >
+                <template slot-scope="scope">
+              <copy-text>{{ scope.row.organName }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="transNo"
+            label="维修单号"
+            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="学生姓名">
             <template slot-scope="scope">
-              <copy-text>{{scope.row.transNo}}</copy-text>
+              <copy-text>{{ scope.row.studentName }}</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 align="center" prop="studentId" label="学生编号">
             <template slot-scope="scope">
-              <copy-text>{{scope.row.studentId}}</copy-text>
+              <copy-text>{{ scope.row.studentId }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="employeeName"
-                           label="维修技师"></el-table-column>
-          <el-table-column align="center"
-                           prop="subjectName"
-                           label="乐器种类"></el-table-column>
-          <el-table-column align="center"
-                           prop="type"
-                           label="维修类型">
-            <template slot-scope="scope">{{scope.row.type?'线上':'线下'}}</template>
+          <el-table-column align="center" prop="employeeName" label="维修技师">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.employeeName }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="subjectName" label="乐器种类">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.subjectName }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="instrumentNo"
-                           label="乐器编号"></el-table-column>
-          <el-table-column align="center"
-                           prop="createTime"
-                           label="送修日期">
-            <template slot-scope="scope">{{scope.row.createTime | formatTimer}}</template>
+          <el-table-column align="center" prop="type" label="维修类型">
+            <template slot-scope="scope">{{
+              scope.row.type ? "线上" : "线下"
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="finishTime"
-                           label="完成日期">
-            <template slot-scope="scope">{{scope.row.finishTime | formatTimer}}</template>
+          <el-table-column
+            align="center"
+            prop="instrumentNo"
+            label="乐器编号"
+          ></el-table-column>
+          <el-table-column align="center" prop="createTime" label="送修日期">
+            <template slot-scope="scope">{{
+              scope.row.createTime | formatTimer
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="repairStatus"
-                           label="状态">
-            <template slot-scope="scope">{{scope.row.repairStatus?'已完成':'维修中'}}</template>
+          <el-table-column align="center" prop="finishTime" label="完成日期">
+            <template slot-scope="scope">{{
+              scope.row.finishTime | formatTimer
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           label="操作">
+          <el-table-column align="center" prop="repairStatus" label="状态">
+            <template slot-scope="scope">{{
+              scope.row.repairStatus ? "已完成" : "维修中"
+            }}</template>
+          </el-table-column>
+          <el-table-column align="center" label="操作">
             <template slot-scope="scope">
-              <el-button type="text"
-                         @click="showDetail(scope.row)">详情</el-button>
+              <el-button type="text" @click="showDetail(scope.row)"
+                >详情</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
-        <pagination sync :total.sync="rules.total"
-                    :page.sync="rules.page"
-                    :limit.sync="rules.limit"
-                    :page-sizes="rules.page_size"
-                    @pagination="getList" />
+        <pagination
+          sync
+          :total.sync="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog title="维修单详情"
-               :close-on-click-modal="false"
-               :visible.sync="repairVisible"
-               width="600px">
-      <el-form :model="visibleForm"
-               :inline="true">
+    <el-dialog
+      title="维修单详情"
+      :close-on-click-modal="false"
+      :visible.sync="repairVisible"
+      width="600px"
+    >
+      <el-form :model="visibleForm" :inline="true">
         <el-row>
           <el-col :span="12">
             <el-form-item label="维修单号:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.transNo}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.transNo }}
+              </p>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="乐器编号:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.instrumentNo}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.instrumentNo }}
+              </p>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="学生姓名:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.studentName}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.studentName }}
+              </p>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="归属乐团:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.studentSchool}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.studentSchool }}
+              </p>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="联系人:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.contactName}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.contactName }}
+              </p>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="联系方式:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.contactMobile}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.contactMobile }}
+              </p>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="邮寄地址:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.address}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.address }}
+              </p>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="取件方式:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.sendType=='0'?'自取':'邮寄'}}</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.sendType == "0" ? "自取" : "邮寄" }}
+              </p>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="维修服务费:">
-              <p v-if="activeRow"
-                 class="visibleCell">{{activeRow.amount | moneyFormat}}元</p>
+              <p v-if="activeRow" class="visibleCell">
+                {{ activeRow.amount | moneyFormat }}元
+              </p>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item label="问题描述及解决方案:"
-                      style="width: 100%; margin-bottom: 0"></el-form-item>
-        <el-input type='textarea'
-                  v-if="activeRow"
-                  style="width: 100%"
-                  :rows="3"
-                  v-model="activeRow.description"
-                  :disabled="activeRow&&Boolean(activeRow.finishTime)"></el-input>
-        <el-form-item label="收费组成:"
-                      style="width: 100%; margin-bottom: 0"
-                      v-if="activeRow && activeRow.feeList"></el-form-item>
-        <el-input type='textarea'
-                  v-if="activeRow && activeRow.feeList"
-                  style="width: 100%"
-                  :rows="3"
-                  v-model="activeRow.feeList"
-                  :disabled="true"></el-input>
-        <el-form-item label="商品列表:"
-                      style="width: 100%; margin-bottom: 0"></el-form-item>
-        <el-table style="width: 100%"
-                  v-if="activeRow"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}"
-                  :data="activeRow.goodsList">
-          <el-table-column align="center"
-                           prop="name"
-                           label="商品名"></el-table-column>
-          <el-table-column align="center"
-                           prop="groupPurchasePrice"
-                           label="商品价格(元)">
+        <el-form-item
+          label="问题描述及解决方案:"
+          style="width: 100%; margin-bottom: 0"
+        ></el-form-item>
+        <el-input
+          type="textarea"
+          v-if="activeRow"
+          style="width: 100%"
+          :rows="3"
+          v-model="activeRow.description"
+          :disabled="activeRow && Boolean(activeRow.finishTime)"
+        ></el-input>
+        <el-form-item
+          label="收费组成:"
+          style="width: 100%; margin-bottom: 0"
+          v-if="activeRow && activeRow.feeList"
+        ></el-form-item>
+        <el-input
+          type="textarea"
+          v-if="activeRow && activeRow.feeList"
+          style="width: 100%"
+          :rows="3"
+          v-model="activeRow.feeList"
+          :disabled="true"
+        ></el-input>
+        <el-form-item
+          label="商品列表:"
+          style="width: 100%; margin-bottom: 0"
+        ></el-form-item>
+        <el-table
+          style="width: 100%"
+          v-if="activeRow"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="activeRow.goodsList"
+        >
+          <el-table-column
+            align="center"
+            prop="name"
+            label="商品名"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="groupPurchasePrice"
+            label="商品价格(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.groupPurchasePrice|moneyFormat}}
+                {{ scope.row.groupPurchasePrice | moneyFormat }}
               </div>
             </template>
           </el-table-column>
         </el-table>
       </el-form>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button type="danger"
-                   v-if="!(activeRow&&Boolean(activeRow.finishTime))"
-                   v-permission="'studentRepair/repairSuccess'"
-                   @click="repairEnd('save',activeRow)">保存</el-button>
-        <el-button type="primary"
-                   v-permission="'studentRepair/repairSuccess'"
-                   v-if="!(activeRow&&activeRow.finishTime)"
-                   @click="repairEnd('end',activeRow)">完成维修</el-button>
+      <span slot="footer" class="dialog-footer">
+        <el-button
+          type="danger"
+          v-if="!(activeRow && Boolean(activeRow.finishTime))"
+          v-permission="'studentRepair/repairSuccess'"
+          @click="repairEnd('save', activeRow)"
+          >保存</el-button
+        >
+        <el-button
+          type="primary"
+          v-permission="'studentRepair/repairSuccess'"
+          v-if="!(activeRow && activeRow.finishTime)"
+          @click="repairEnd('end', activeRow)"
+          >完成维修</el-button
+        >
       </span>
     </el-dialog>
   </div>
@@ -281,10 +347,14 @@ import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
 import load from "@/utils/loading";
 import { getSoundTree } from "@/api/buildTeam";
-import { findTechnician, studentRepairList, repairSuccess } from "@/api/repairManager"
+import {
+  findTechnician,
+  studentRepairList,
+  repairSuccess,
+} from "@/api/repairManager";
 export default {
   components: { pagination },
-  data () {
+  data() {
     return {
       searchForm: {
         search: null,
@@ -292,7 +362,7 @@ export default {
         organIdList: null,
         repairStatus: null,
         subjectId: null,
-        time: []
+        time: [],
       },
       repairVisible: false,
       employeeList: [],
@@ -302,46 +372,44 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       soundLists: [],
       soundList: [],
       isInit: false,
       visibleForm: {},
-      activeRow: null
+      activeRow: null,
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created () { },
+  created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    findTechnician().then(res => {
+  mounted() {
+    findTechnician().then((res) => {
       if (res.code == 200) {
         this.employeeList = res.data;
       }
     });
-    this.$store.dispatch('setBranchs')
+    this.$store.dispatch("setBranchs");
     // 获取声部
-    getSoundTree({ tenantId: 1, rows: 9999 }).then(res => {
+    getSoundTree({ tenantId: 1, rows: 9999 }).then((res) => {
       if (res.code == 200) {
         if (res.code == 200) {
           this.soundList = res.data.rows;
           this.getSound();
         }
       }
-    })
+    });
     // if (!this.isInit) {
     this.init();
     // }
-
   },
   methods: {
-    init () {
+    init() {
       this.isInit = true;
-      this.getList()
-
+      this.getList();
     },
-    getList () {
+    getList() {
       let obj = JSON.parse(JSON.stringify(this.searchForm));
       obj.page = this.rules.page;
       obj.rows = this.rules.limit;
@@ -350,75 +418,78 @@ export default {
         obj.endTime = this.searchForm.timer[1];
       }
       delete obj.timer;
-      studentRepairList(obj).then(res => {
+      studentRepairList(obj).then((res) => {
         if (res.code == 200) {
           this.isInit = false;
           this.tableList = res.data.rows;
-          this.rules.total = res.data.total
+          this.rules.total = res.data.total;
         }
-      })
+      });
     },
-    getSound () {
+    getSound() {
       // soundLists
       // soundList
       this.soundLists = [];
       for (let i in this.soundList) {
         if (this.soundList[i].subjects.length > 0) {
-          this.soundLists = this.soundLists.concat(this.soundList[i].subjects)
+          this.soundLists = this.soundLists.concat(this.soundList[i].subjects);
         }
       }
     },
-    onReSet () {
+    onReSet() {
       this.searchForm = {
         search: null,
         employeeId: null,
         organIdList: null,
         repairStatus: null,
         subjectId: null,
-        time: []
-      }
+        time: [],
+      };
       this.search();
     },
-    search () {
+    search() {
       this.rules.page = 1;
-      this.getList()
+      this.getList();
     },
-    showDetail (row) {
-      let goodsList = row.goodsJson ? JSON.parse(row.goodsJson) : []
-      row.goodsList = goodsList
+    showDetail(row) {
+      let goodsList = row.goodsJson ? JSON.parse(row.goodsJson) : [];
+      row.goodsList = goodsList;
       this.activeRow = row;
       this.repairVisible = true;
     },
-    repairEnd (str, row) {
+    repairEnd(str, row) {
       let repairStatus = null;
-      if (str && str == 'end') {
-        repairStatus = 1
+      if (str && str == "end") {
+        repairStatus = 1;
       }
-      repairSuccess({ repairStatus: repairStatus, id: row.id, description: row.description }).then(res => {
+      repairSuccess({
+        repairStatus: repairStatus,
+        id: row.id,
+        description: row.description,
+      }).then((res) => {
         if (res.code == 200) {
-          if (str && str == 'end') {
-            this.$message.success('完成维修')
+          if (str && str == "end") {
+            this.$message.success("完成维修");
           } else {
-            this.$message.success('保存成功')
+            this.$message.success("保存成功");
           }
           this.repairVisible = false;
           this.getList();
         }
-      })
-    }
-
+      });
+    },
   },
   watch: {
-    repairVisible (val) {
+    repairVisible(val) {
       if (!val) {
         this.activeRow = null;
       }
-    }
-  }
+    },
+  },
 };
 </script>
 <style lang='scss' scoped>
 .visibleCell {
   // width: 180px;
 }
-</style>
+</style>

+ 144 - 158
src/views/returnVisitManager/returnVisitList.vue

@@ -5,194 +5,172 @@
       回访记录
     </h2>
     <div class="m-core">
-      <save-form :inline="true"
-      @submit='search'
-      @reset="onReSet"
-               :model="searchForm">
+      <save-form
+        :inline="true"
+        @submit="search"
+        @reset="onReSet"
+        :model="searchForm"
+      >
         <el-form-item>
-          <el-input placeholder="请输入老师姓名"
-                    v-model.trim="searchForm.teacher"></el-input>
+          <el-input
+            placeholder="请输入老师姓名"
+            v-model.trim="searchForm.teacher"
+          ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-select v-model.trim="searchForm.organId"
-                     placeholder='请选择分部'
-                     clearable
-                     filterable>
-            <el-option v-for='(item,index) in organList'
-                       :key="index"
-                       :value="item.id"
-                       :label="item.name"></el-option>
+          <el-select
+            v-model.trim="searchForm.organId"
+            placeholder="请选择分部"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :key="index"
+              :value="item.id"
+              :label="item.name"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select v-model.trim="searchForm.visiterType"
-                     placeholder='请选择角色'
-                     clearable
-                     filterable>
-            <el-option value="TEACHER"
-                       label="指导老师"></el-option>
-            <el-option value="EDU_TEACHER"
-                       label="乐团主管"></el-option>
+          <el-select
+            v-model.trim="searchForm.visiterType"
+            placeholder="请选择角色"
+            clearable
+            filterable
+          >
+            <el-option value="TEACHER" label="指导老师"></el-option>
+            <el-option value="EDU_TEACHER" label="乐团主管"></el-option>
           </el-select>
         </el-form-item>
+        <!-- @change="handleChange" -->
         <el-form-item>
-          <el-cascader expand-trigger="hover"
-                       clearable
-                       placeholder="请选择回访类型"
-                       :options="visitChiose"
-                       @change="handleChange"
-                       v-model="type">
+          <el-cascader
+            expand-trigger="hover"
+            clearable
+            placeholder="请选择回访类型"
+            :options="visitChiose"
+            v-model="searchForm.typeList"
+          >
           </el-cascader>
         </el-form-item>
         <el-form-item>
-          <el-date-picker v-model.trim="timer"
-                          style="width:420px;"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          @change="changeTimer"
-                          range-separator="至"
-                          start-placeholder="回访开始日期"
-                          end-placeholder="回访结束日期"
-                          :picker-options="{
-                            firstDayOfWeek: 1
-                          }">
+          <el-date-picker
+            v-model.trim="searchForm.timer"
+            style="width: 420px"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="回访开始日期"
+            end-placeholder="回访结束日期"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+          >
           </el-date-picker>
         </el-form-item>
         <el-form-item>
-          <el-button type="danger"
-                    native-type="submit">搜索</el-button>
-          <el-button native-type="reset"
-                     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>
       </save-form>
       <div class="tableWrap">
-        <el-table :data='tableList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center'
-                           prop="teacherName"
-                           label="老师姓名">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column align="center" prop="teacherName" label="老师姓名">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.teacherName }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="organName"
-                           label="所属分部">
+          <el-table-column align="center" prop="organName" label="所属分部">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.organName }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="visiterType"
-                           label="角色">
+          <el-table-column align="center" prop="visiterType" label="角色">
             <template slot-scope="scope">
               <div>
-                {{scope.row.visiterType | visiterType}}
+                {{ scope.row.visiterType | visiterType }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="studentId"
-                           label="学生ID">
+          <el-table-column align="center" prop="studentId" label="学生ID">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.studentId }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="studentName"
-                           label="学生姓名">
+          <el-table-column align="center" prop="studentName" label="学生姓名">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.studentName }}</copy-text>
+            </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="type"
-                           label="回访类型">
+          <el-table-column align="center" prop="type" label="回访类型">
           </el-table-column>
-          <el-table-column align='center'
-                           prop="purpose"
-                           label="回访目的">
+          <el-table-column align="center" prop="purpose" label="回访目的">
           </el-table-column>
-          <el-table-column align='center'
-                           prop="visitTime"
-                           label="回访时间">
+          <el-table-column align="center" prop="visitTime" label="回访时间">
             <template slot-scope="scope">
               <div>
-                {{scope.row.visitTime?scope.row.visitTime.split(' ')[0]:'--'}}
+                {{
+                  scope.row.visitTime ? scope.row.visitTime.split(" ")[0] : "--"
+                }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="masterTeacherName"
-                           label="操作">
+          <el-table-column align="center" prop="masterTeacherName" label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text"
-                           @click="lookDetail(scope.row)">查看</el-button>
+                <el-button type="text" @click="lookDetail(scope.row)"
+                  >查看</el-button
+                >
               </div>
             </template>
           </el-table-column>
         </el-table>
         <pagination
-        sync
-        :total.sync="rules.total"
-                    :page.sync="rules.page"
-                    :limit.sync="rules.limit"
-                    :page-sizes="rules.page_size"
-                    @pagination="getList" />
+          sync
+          :total.sync="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog title="回访详情"
-               width="700px"
-               destroy-on-close
-               :visible.sync="detailVisible">
-         <descriptions :column="2" v-if="activeRow">
-      <descriptions-item label="老师姓名:">{{
-        activeRow.teacherName
-      }}</descriptions-item>
-      <descriptions-item label="所属分部:">{{
-        activeRow.organName
-      }}</descriptions-item>
-      <descriptions-item label="角色:">{{
-       activeRow.visiterType | visiterType
-      }}</descriptions-item>
-      <descriptions-item label="学生姓名:">{{
-        activeRow.studentName
-      }}</descriptions-item>
-      <descriptions-item label="回访类型:">{{
-        activeRow.type
-      }}</descriptions-item>
-      <descriptions-item label="回访目的:">{{
-       activeRow.purpose
-      }}</descriptions-item>
-      <descriptions-item label="回访情况:" :span="6">{{ activeRow.overview }}</descriptions-item>
-      <descriptions-item label="家长反馈" :span="6">{{ activeRow.feedback }}</descriptions-item>
-    </descriptions>
-
-
-
-      <!-- <el-form :inline="true"
-               v-if="activeRow"
-               ref='visitForm'>
-        <el-form-item label="老师姓名">
-          <p class="msg">{{ activeRow.teacherName}}</p>
-        </el-form-item>
-        <el-form-item label="所属分部">
-          <p class="msg">{{ activeRow.organName}}</p>
-        </el-form-item>
-        <el-form-item label="角色">
-          <p class="msg">{{activeRow.visiterType | visiterType}}</p>
-        </el-form-item>
-        <el-form-item label="学生姓名">
-          <p class="msg">{{activeRow.studentName}}</p>
-        </el-form-item>
-        <el-form-item label="回访类型"
-                      prop='visitType'>
-          <p class="msg">{{activeRow.type}}</p>
-        </el-form-item>
-        <el-form-item label="回访目的"
-                      prop='visitType'>
-          <p class="msg">{{activeRow.purpose}}</p>
-        </el-form-item>
-
-        </el-form-item>
-        <el-form-item label="学员情况"
-                      prop="overview">
-          <p class="label">{{activeRow.overview}}</p>
-        </el-form-item>
-        <el-form-item label="家长反馈"
-                      prop='feedback'>
-          <p class="label">{{activeRow.feedback}}</p>
-        </el-form-item>
-      </el-form> -->
+    <el-dialog
+      title="回访详情"
+      width="700px"
+      destroy-on-close
+      :visible.sync="detailVisible"
+    >
+      <descriptions :column="2" v-if="activeRow">
+        <descriptions-item label="老师姓名:">{{
+          activeRow.teacherName
+        }}</descriptions-item>
+        <descriptions-item label="所属分部:">{{
+          activeRow.organName
+        }}</descriptions-item>
+        <descriptions-item label="角色:">{{
+          activeRow.visiterType | visiterType
+        }}</descriptions-item>
+        <descriptions-item label="学生姓名:">{{
+          activeRow.studentName
+        }}</descriptions-item>
+        <descriptions-item label="回访类型:">{{
+          activeRow.type
+        }}</descriptions-item>
+        <descriptions-item label="回访目的:">{{
+          activeRow.purpose
+        }}</descriptions-item>
+        <descriptions-item label="回访情况:" :span="6">{{
+          activeRow.overview
+        }}</descriptions-item>
+        <descriptions-item label="家长反馈" :span="6">{{
+          activeRow.feedback
+        }}</descriptions-item>
+      </descriptions>
     </el-dialog>
   </div>
 </template>
@@ -202,6 +180,7 @@ import pagination from "@/components/Pagination/index";
 import { getEmployeeOrgan } from "@/api/buildTeam";
 import { getVisitList } from "./api.js";
 import cleanDeep from "clean-deep";
+import { getTimes } from "@/utils";
 export default {
   components: { pagination },
   data() {
@@ -210,11 +189,10 @@ export default {
         teacher: "",
         organId: "",
         visiterType: "",
-        type: "",
-        purpose: "",
+        typeList: [],
+        timer: [],
       },
-      type: [],
-      timer: [],
+
       visitChiose,
       organList: [],
       rules: {
@@ -230,11 +208,12 @@ export default {
     };
   },
   mounted() {
-    getEmployeeOrgan().then((res) => {
-      if (res.code == 200) {
-        this.organList = res.data;
-      }
-    });
+    // getEmployeeOrgan().then((res) => {
+    //   if (res.code == 200) {
+    //     this.organList = res.data;
+    //   }
+    // });
+    this.$store.dispatch("setBranchs");
     this.getList();
   },
   activated() {
@@ -258,15 +237,22 @@ export default {
         visiterType: "",
         type: "",
         purpose: "",
+        typeList: [],
+        timer: [],
       };
       this.search();
     },
     getList() {
       // cleanDeep
-
-      this.searchForm.page = this.rules.page;
-      this.searchForm.rows = this.rules.limit;
-      getVisitList(cleanDeep(this.searchForm)).then((res) => {
+      let { timer, typeList, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.rules.page,
+        rows: this.rules.limit,
+        ...getTimes(timer, ["startTime", "endTime"]),
+        ...getTimes(typeList, ["type", "purpose"]),
+      };
+      getVisitList(cleanDeep(params)).then((res) => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;

+ 48 - 42
src/views/stuRecodeManager/index.vue

@@ -22,7 +22,10 @@
           ></el-input>
         </el-form-item>
         <el-form-item prop="teacherId">
-          <remote-search :commit='"setTeachers"' v-model='searchForm.teacherId' />
+          <remote-search
+            :commit="'setTeachers'"
+            v-model="searchForm.teacherId"
+          />
         </el-form-item>
 
         <el-form-item prop="organId">
@@ -72,7 +75,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-         <el-form-item prop="courseScheduleType">
+        <el-form-item prop="courseScheduleType">
           <el-select
             v-model.trim="searchForm.courseScheduleType"
             clearable
@@ -100,14 +103,15 @@
             ></el-option>
           </el-select>
         </el-form-item>
-            <el-form-item prop="dates" >
+        <el-form-item prop="dates">
           <el-date-picker
-            v-model="dates"
+            v-model="searchForm.dates"
             type="daterange"
-            style="width: 405px;"
+            style="width: 405px"
             range-separator="至"
             start-placeholder="课程开始日期"
-            end-placeholder="课程结束日期">
+            end-placeholder="课程结束日期"
+          >
           </el-date-picker>
         </el-form-item>
         <el-form-item>
@@ -150,27 +154,23 @@
               </p>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="musicGroupId"
-            label="乐团编号"
-          >
-          <template slot-scope="scope">
-            <div>
-              <copy-text>{{ scope.row.musicGroupId }}</copy-text>
-            </div>
-          </template>
+          <el-table-column align="center" prop="musicGroupId" label="乐团编号">
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.musicGroupId }}</copy-text>
+              </div>
+            </template>
           </el-table-column>
           <el-table-column
             align="center"
             prop="courseScheduleId"
             label="课程编号"
           >
-              <template slot-scope="scope">
-            <div>
-              <copy-text>{{ scope.row.courseScheduleId }}</copy-text>
-            </div>
-          </template>
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.courseScheduleId }}</copy-text>
+              </div>
+            </template>
           </el-table-column>
 
           <el-table-column
@@ -233,13 +233,10 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            label="是否被合并"
-          >
+          <el-table-column align="center" label="是否被合并">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.courseSchedule.newCourseId > 0 ? '是' : '否' }}
+                {{ scope.row.courseSchedule.newCourseId > 0 ? "是" : "否" }}
               </div>
             </template>
           </el-table-column>
@@ -286,11 +283,7 @@ import qs from "qs";
 import { findStudentAttendance } from "@/api/buildTeam";
 
 // import { queryTeacherAttendances } from "@/api/recodeManager";
-import {
-  courseType,
-  courseListType,
-  stuAttendance,
-} from "@/utils/searchArray";
+import { courseType, courseListType, stuAttendance } from "@/utils/searchArray";
 export default {
   components: { pagination },
   data() {
@@ -301,14 +294,15 @@ export default {
         musicGroupId: "",
         courseScheduleId: "",
         status: "",
-        teacherId:'',
-        courseScheduleType:'',
-        organId:''
+        teacherId: "",
+        courseScheduleType: "",
+        organId: "",
+        dates: [],
       },
-      dates:[],
+
       courseType,
       courseListType,
-      attendanceStatus:stuAttendance,
+      attendanceStatus: stuAttendance,
       // teacherList: [],
       tableList: [],
       organList: [],
@@ -329,18 +323,30 @@ export default {
   },
 
   methods: {
-   async init() {
-       await this.$store.dispatch('setBranchs')
+    async init() {
+      await this.$store.dispatch("setBranchs");
       this.getList();
     },
     getList() {
-      let obj = {
+      let { dates, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
         page: this.rules.page,
         rows: this.rules.limit,
-        ...this.searchForm,
-        ...getTimes(this.dates, ["startDateOfCourse", "endDateOfCourse"],'YYYY-MM-DD'),
+        ...getTimes(dates, ["startDateOfCourse", "endDateOfCourse"]),
       };
-      findStudentAttendance(obj).then((res) => {
+
+      // let obj = {
+      //   page: this.rules.page,
+      //   rows: this.rules.limit,
+      //   ...this.searchForm,
+      //   ...getTimes(
+      //     this.dates,
+      //     ["startDateOfCourse", "endDateOfCourse"],
+      //     "YYYY-MM-DD"
+      //   ),
+      // };
+      findStudentAttendance(params).then((res) => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;