Browse Source

12/29 14:01 交易管理

1
mo 4 years ago
parent
commit
b88e8dd51e

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

@@ -47,6 +47,7 @@ export default {
       if (this.$listeners.submit) {
         this.$listeners.submit(evt)
       }
+
     },
     reset(evt) {
       evt.stopPropagation()
@@ -58,7 +59,7 @@ export default {
           this.resetFields()
           // this.setFormValue()
         })
-        console.log({...this.model})
+
       } else {
         this.resetFields()
       }
@@ -66,6 +67,7 @@ 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 => {

+ 6 - 0
src/router/notKeepAliveList.js

@@ -66,4 +66,10 @@ export default [
   '/orderList/backOrder', // 退费管理
   '/orderList/expend', // 提现列表
   '/orderList/salesList', // 销售列表
+  '/orderList/payRecord', // 支出记录
+  '/orderList/businessStatement', // 经营报表
+  '/business/buildVip', // 新建vip
+  '/orderList/businessStatement', // 经营报表
+  '/orderList/resetList', // 更换列表
+  '/orderList/incomeOut', // 对外订单管理
 ]

+ 15 - 3
src/store/modules/selects.js

@@ -60,8 +60,9 @@ export default {
   actions: {
     async setBranchs ({ commit, state }, force) {
       if (!state.branchs.length || force === true || !state.branchsLoading) {
-        state.branchsLoading = true
+        if(state.branchsLoading)return
         try {
+          state.branchsLoading = true
           const res = await getEmployeeOrgan()
           commit('commit_branchs', res.data)
         } catch (error) { }
@@ -70,35 +71,47 @@ export default {
     },
     async setSubjects ({ commit, state }, force) {
       if (!state.subjects.length || force === true) {
+        if(state.subjectsLoading)return
         try {
+          state.subjectsLoading = true
           const res = await getSubject({rows: 9999, tenantId: '1'})
           commit('commit_subjects', res.data)
         } catch (error) { }
+        state.subjectsLoading = false
       }
     },
     async setTeachers ({ commit, state }, force) {
       if (!state.teachers.length || force === true) {
-
+        if(state.teachersLoading)return
         try {
+          state.teachersLoading =true
           const res = await getTeacher()
           commit('commit_teachers', res.data)
         } catch (error) { }
+        state.teachersLoading = false
       }
     },
     async setSchools ({ commit, state }, force) {
       if (!state.schools.length || force === true) {
+        if(state.schoolsLoading)return
         try {
+          state.schoolsLoading = true
           const res = await getSchool()
           commit('commit_schools', res.data)
         } catch (error) { }
+        state.schoolsLoading = false
       }
     },
     async setVipGroupCategory ({ commit, state }, force) {
       if (!state.vipGroupCategory.length || force === true) {
+        if(state.vipGroupCategoryLoading)return
         try {
+          state.vipGroupCategoryLoading = true
           const res = await vipGroupCategory()
           commit('commit_vip_group_category', res.data)
         } catch (error) { }
+        state.vipGroupCategoryLoading = false
+
       }
     },
     async setEducations({commit,state},force){
@@ -108,7 +121,6 @@ export default {
           state.educationsLoading = true
           const res = await findEducationUsers()
           commit('commit_educations', res.data)
-
         } catch (error) {  }
         state.educationsLoading = false
       }

+ 1 - 0
src/utils/downLoadFile.js

@@ -54,6 +54,7 @@ export const Export = (that, params, message) => {
                     let objectUrl = URL.createObjectURL(blob);
                     let link = document.createElement("a");
                     let fname = params.fileName || "导出文件.xlsx"; //下载文件的名字
+                    console.log(params)
                     link.href = objectUrl;
                     link.setAttribute("download", fname);
                     document.body.appendChild(link);

+ 228 - 176
src/views/businessManager/orderManager/businessStatement.vue

@@ -1,26 +1,32 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>经营报表
+      <div class="squrt"></div>
+      经营报表
     </h2>
     <div class="m-core">
-      <el-button @click="downloadFile"
-                 v-permission="'operatingReport/export'"
-                 class="btn-primary">导出</el-button>
+      <el-button
+        @click="downloadFile"
+        v-permission="'operatingReport/export'"
+        class="btn-primary"
+        >导出</el-button
+      >
       <!-- 搜索类型 -->
-      <el-form :inline="true"
-               class="searchForm"
-               v-model.trim="searchForm">
-        <el-form-item prop='organId'>
-          <el-select class='multiple'
-                     v-model.trim="searchForm.organIdList"
-                     clearable
-                     filterable
-                     placeholder="请选择分部">
-            <el-option v-for="(item,index) in organList"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+      <el-form :inline="true" class="searchForm" v-model.trim="searchForm">
+        <el-form-item prop="organId">
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.organIdList"
+            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>
@@ -35,9 +41,11 @@
           </el-select>
         </el-form-item> -->
         <el-form-item>
-          <el-date-picker v-model="searchForm.month"
-                          type="month"
-                          placeholder="选择经营月份">
+          <el-date-picker
+            v-model="searchForm.month"
+            type="month"
+            placeholder="选择经营月份"
+          >
           </el-date-picker>
         </el-form-item>
         <!-- <el-form-item>
@@ -53,171 +61,202 @@
           </el-date-picker>
         </el-form-item> -->
         <el-form-item>
-          <el-button @click="search"
-                     type="danger">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button @click="search" type="danger">搜索</el-button>
+          <el-button @click="onReSet" type="primary">重置</el-button>
         </el-form-item>
       </el-form>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center'
-                           width="150"
-                           prop="organName"
-                           label="分部"></el-table-column>
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column
+            align="center"
+            width="150"
+            prop="organName"
+            label="分部"
+          >
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.organName }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
           <!-- <el-table-column align='center'
                            prop="schoolName"
                            label="学校">
           </el-table-column> -->
-          <el-table-column align='center'
-                           prop="sellAmount"
-                           width="150px"
-                           label="销售收入(元)">
+          <el-table-column
+            align="center"
+            prop="sellAmount"
+            width="150px"
+            label="销售收入(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.sellAmount | moneyFormat}}
+                {{ scope.row.sellAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="serviceAmount"
-                           width="150px"
-                           label="服务收入(元)">
+          <el-table-column
+            align="center"
+            prop="serviceAmount"
+            width="150px"
+            label="服务收入(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.serviceAmount | moneyFormat}}
+                {{ scope.row.serviceAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="otherIncome"
-                           width="150px"
-                           label="其它收入(元)">
+          <el-table-column
+            align="center"
+            prop="otherIncome"
+            width="150px"
+            label="其它收入(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.otherIncome | moneyFormat}}
+                {{ scope.row.otherIncome | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="refundAmount"
-                           width="150px"
-                           label="业务退费(元)">
+          <el-table-column
+            align="center"
+            prop="refundAmount"
+            width="150px"
+            label="业务退费(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.refundAmount | moneyFormat}}
+                {{ scope.row.refundAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="incomeTotal"
-                           width="150px"
-                           label="收入合计(元)">
+          <el-table-column
+            align="center"
+            prop="incomeTotal"
+            width="150px"
+            label="收入合计(元)"
+          >
             <template slot-scope="scope">
               <div class="point">
-                {{scope.row.incomeTotal | moneyFormat}}
+                {{ scope.row.incomeTotal | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="sellCost"
-                           width="150px"
-                           label="销售成本(元)">
+          <el-table-column
+            align="center"
+            prop="sellCost"
+            width="150px"
+            label="销售成本(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.sellCost | moneyFormat}}
+                {{ scope.row.sellCost | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="expensesAmount"
-                           width="150px"
-                           label="固定支出(元)">
+          <el-table-column
+            align="center"
+            prop="expensesAmount"
+            width="150px"
+            label="固定支出(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.expensesAmount | moneyFormat}}
+                {{ scope.row.expensesAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="variableCost"
-                           width="150px"
-                           label="变动支出(元)">
+          <el-table-column
+            align="center"
+            prop="variableCost"
+            width="150px"
+            label="变动支出(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.variableCost | moneyFormat}}
+                {{ scope.row.variableCost | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="distributionAmount"
-                           width="150px"
-                           label="分摊费用(元)">
+          <el-table-column
+            align="center"
+            prop="distributionAmount"
+            width="150px"
+            label="分摊费用(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{scope.row.distributionAmount | moneyFormat}}
+                {{ scope.row.distributionAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="costAmount"
-                           width="150px"
-                           label="成本费用合计(元)">
+          <el-table-column
+            align="center"
+            prop="costAmount"
+            width="150px"
+            label="成本费用合计(元)"
+          >
             <template slot-scope="scope">
               <div class="point">
-                {{scope.row.costAmount | moneyFormat}}
+                {{ scope.row.costAmount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="profit"
-                           label="利润(元)">
+          <el-table-column align="center" prop="profit" label="利润(元)">
             <template slot-scope="scope">
               <div class="point">
-                {{scope.row.profit | moneyFormat}}
+                {{ scope.row.profit | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column label='操作'>
+          <el-table-column label="操作">
             <template slot-scope="scope">
-              <el-button type="text"
-                         v-permission="'/businessStatementDetail'"
-                         @click="lookDetail(scope.row)">查看</el-button>
+              <el-button
+                type="text"
+                v-permission="'/businessStatementDetail'"
+                @click="lookDetail(scope.row)"
+                >查看</el-button
+              >
             </template>
-
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+        <pagination
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
-import { Export } from '@/utils/downLoadFile'
-import { getOperatingReport, applyRefundAudit } from '@/api/orderManager'
-import { getEmployeeOrgan, getCooperation } from '@/api/buildTeam'
-import store from '@/store'
-import dayjs from 'dayjs'
+import pagination from "@/components/Pagination/index";
+import { Export } from "@/utils/downLoadFile";
+import { getOperatingReport, applyRefundAudit } from "@/api/orderManager";
+import { getEmployeeOrgan, getCooperation } from "@/api/buildTeam";
+import store from "@/store";
+import dayjs from "dayjs";
 export default {
   components: { pagination },
-  name: 'backMoney',
-  data () {
+  name: "backMoney",
+  data() {
     return {
       orderDate: null,
       searchForm: {
         startTime: null,
         endTime: null,
         organId: null,
-        month: '',
-        cooperationOrganId: '',
-        organIdList: []
+        month: "",
+        cooperationOrganId: "",
+        organIdList: [],
       },
       tableList: [],
       organList: [],
@@ -227,113 +266,126 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
-      }
-    }
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
+    };
   },
-  mounted () {
-    getEmployeeOrgan().then(res => {
+  mounted() {
+    this.$store.dispatch("setBranchs");
+    // getEmployeeOrgan().then(res => {
+    //   if (res.code == 200) {
+    //     this.organList = res.data;
+    //   }
+    // })
+    getCooperation({ rows: 1000 }).then((res) => {
       if (res.code == 200) {
-        this.organList = res.data;
+        this.cooperations = res.data.rows;
       }
-    })
-    getCooperation({ 'rows': 1000, })
-      .then(res => {
-        if (res.code == 200) {
-          this.cooperations = res.data.rows;
-        }
-      })
-    const form = { ...this.searchForm }
-    form.month = dayjs().format('YYYY-MM')
-    this.searchForm = form
-    this.getList()
+    });
+    const form = { ...this.searchForm };
+    form.month = dayjs().format("YYYY-MM");
+    this.searchForm = form;
+    this.getList();
     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);
+    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.orderDate.push(startDate);
+    this.orderDate.push(endDate);
   },
   methods: {
-    search () {
+    search() {
       this.pageInfo.page = 1;
-      this.getList()
+      this.getList();
     },
-    downloadFile () {
-      let params = this.searchForm
-      Export(this, {
-        url: '/api-web/operatingReport/export',
-        params: {
-          ...params,
-          month: (params.month ? dayjs(params.month).format('YYYY-MM-DD') : ''),
-        }
-      }, '是否确认导出报表?')
+    downloadFile() {
+      let params = this.searchForm;
+      Export(
+        this,
+        {
+          url: "/api-web/operatingReport/export",
+          params: {
+            ...params,
+            month: params.month ? dayjs(params.month).format("YYYY-MM-DD") : "",
+          },
+        },
+        "是否确认导出报表?"
+      );
     },
-    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
+    getList() {
+      let params = this.searchForm;
+      params.rows = this.pageInfo.limit;
+      params.page = this.pageInfo.page;
       getOperatingReport({
         ...params,
-        month: (params.month ? dayjs(params.month).format('YYYY-MM-DD') : ''),
-        type: 'organ'
-      }).then(res => {
-        let result = res.data
+        month: params.month ? dayjs(params.month).format("YYYY-MM-DD") : "",
+        type: "organ",
+      }).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,
-        month: '',
-        cooperationOrganId: '',
-        organIdList: []
-      }
-      this.getList()
+        month: "",
+        cooperationOrganId: "",
+        organIdList: [],
+      };
+      this.getList();
     },
-    lookDetail (row) {
+    lookDetail(row) {
       this.$router.push({
-        path: '/orderList/businessStatementDetail',
+        path: "/orderList/businessStatementDetail",
         query: {
           organId: row.organId,
           organName: row.organName,
-        }
-      })
-    }
-  }
-}
+        },
+      });
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .point {

+ 1 - 0
src/views/businessManager/orderManager/financeManager.vue

@@ -65,6 +65,7 @@
         <el-form-item>
           <el-input
             placeholder="学生编号/姓名/手机号"
+            clearable
             type="text"
             v-model.trim="searchForm.search"
           ></el-input>

+ 54 - 50
src/views/businessManager/orderManager/income.vue

@@ -16,7 +16,7 @@
       <save-form
         :inline="true"
         class="searchForm"
-        v-model.trim="searchForm"
+        :model="searchForm"
         @submit="search"
         @reset="onReSet"
       >
@@ -107,11 +107,10 @@
         </el-form-item>
         <el-form-item>
           <el-date-picker
-            v-model.trim="orderDate"
+            v-model="searchForm.orderDate"
             style="width: 410px"
             type="daterange"
             value-format="yyyy-MM-dd"
-            @change="searchOrderDate"
             range-separator="至"
             :picker-options="{
               firstDayOfWeek: 1,
@@ -322,6 +321,7 @@ import axios from "axios";
 import qs from "qs";
 import { getToken } from "@/utils/auth";
 import load from "@/utils/loading";
+import { getTimes } from "@/utils";
 export default {
   components: { pagination },
   name: "income",
@@ -329,7 +329,6 @@ export default {
     return {
       orderStatus: orderStatus,
       dealStatus: dealStatus,
-      orderDate: null,
       searchForm: {
         search: null,
         orderStartDate: null,
@@ -344,6 +343,7 @@ export default {
         merNos: null,
         lessBalancePaymentAmount: null,
         lessActualAmount: null,
+        orderDate: [],
       },
       tableList: [],
       organList: [],
@@ -360,25 +360,30 @@ export default {
       totalRevenueAmount: 0,
     };
   },
+  created(){
+    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);
+      //  + " 00:00:00"  + " 23:59:59"
+      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);
+    }
+  },
   mounted() {
 
-    var now = new Date();
 
-    var startDate = new Date(
-      Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-    )
-      .toISOString()
-      .slice(0, 10);
-    //  + " 00:00:00"  + " 23:59:59"
-    var endDate = new Date(
-      Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-    )
-      .toISOString()
-      .slice(0, 10);
-    this.orderDate = [];
-    this.orderDate.push(startDate);
-    this.orderDate.push(endDate);
-        this.$store.dispatch("setBranchs");
+
+    this.$store.dispatch("setBranchs");
     this.getList();
   },
   methods: {
@@ -409,9 +414,9 @@ export default {
         lessBalancePaymentAmount: searchForm.lessBalancePaymentAmount,
         lessActualAmount: searchForm.lessActualAmount,
       };
-      if (this.orderDate && this.orderDate.length > 0) {
-        data.orderStartDate = this.orderDate[0];
-        data.orderEndDate = this.orderDate[1];
+      if (this.searchForm.orderDate && this.searchForm.orderDate.length > 0) {
+        data.orderStartDate = this.searchForm.orderDate[0];
+        data.orderEndDate = this.searchForm.orderDate[1];
       } else {
         data.orderStartDate = null;
         data.orderEndDate = null;
@@ -481,23 +486,31 @@ export default {
       this.getList();
     },
     getList() {
-      let params = JSON.parse(JSON.stringify(this.searchForm));
-      params.rows = this.pageInfo.limit;
-      params.page = this.pageInfo.page;
-      params.orderNo = params.orderNo ? params.orderNo : null;
-      params.transNo = params.transNo ? params.transNo : null;
-      params.merNos = params.merNos ? params.merNos : null;
-      params.actualAmount = params.actualAmount ? params.actualAmount : null;
-      params.balancePaymentAmount = params.balancePaymentAmount
-        ? params.balancePaymentAmount
-        : null;
-      if (this.orderDate && this.orderDate.length > 0) {
-        params.orderStartDate = this.orderDate[0];
-        params.orderEndDate = this.orderDate[1];
-      } else {
-        params.orderStartDate = null;
-        params.orderEndDate = null;
-      }
+
+          let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["orderStartDate", "orderEndDate"]),
+      };
+      // let params = JSON.parse(JSON.stringify(this.searchForm));
+      // params.rows = this.pageInfo.limit;
+      // params.page = this.pageInfo.page;
+      // params.orderNo = params.orderNo ? params.orderNo : null;
+      // params.transNo = params.transNo ? params.transNo : null;
+      // params.merNos = params.merNos ? params.merNos : null;
+      // params.actualAmount = params.actualAmount ? params.actualAmount : null;
+      // params.balancePaymentAmount = params.balancePaymentAmount
+      //   ? params.balancePaymentAmount
+      //   : null;
+      // if (this.orderDate && this.orderDate.length > 0) {
+      //   params.orderStartDate = this.orderDate[0];
+      //   params.orderEndDate = this.orderDate[1];
+      // } else {
+      //   params.orderStartDate = null;
+      //   params.orderEndDate = null;
+      // }
       orderQueryPage(cleanDeep(params)).then((res) => {
         let result = res.data;
         if (res.code == 200) {
@@ -531,18 +544,8 @@ export default {
         })
         .catch((err) => {});
     },
-    searchOrderDate(value) {
-      if (value) {
-        this.searchForm.orderStartDate = value[0];
-        this.searchForm.orderEndDate = value[1];
-      } else {
-        this.searchForm.orderStartDate = null;
-        this.searchForm.orderEndDate = null;
-      }
-    },
     onReSet() {
       // 重置搜索
-      this.orderDate = null;
       this.searchForm = {
         search: null,
         orderStartDate: null,
@@ -557,6 +560,7 @@ export default {
         merNos: null,
         lessBalancePaymentAmount: null,
         lessActualAmount: null,
+        orderDate:[]
       };
       this.getList();
     },

+ 180 - 193
src/views/businessManager/orderManager/incomeOut.vue

@@ -1,185 +1,181 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>对外订单管理
+      <div class="squrt"></div>
+      对外订单管理
     </h2>
     <div class="m-core">
-      <div class="newBand"
-           @click="onOrderExport"
-           v-permission="{child: 'export/tenantPaymentOrder', parent: '/incomeOut'}">报表导出</div>
+      <div
+        class="newBand"
+        @click="onOrderExport"
+        v-permission="{
+          child: 'export/tenantPaymentOrder',
+          parent: '/incomeOut',
+        }"
+      >
+        报表导出
+      </div>
       <!-- 搜索类型 -->
-      <el-form :inline="true"
-               class="searchForm"
-               v-model.trim="searchForm">
+      <save-form
+        :inline="true"
+        class="searchForm"
+        :model="searchForm"
+        @reset="onReSet"
+        @submit="search"
+      >
         <el-form-item>
-          <el-input v-model.trim="searchForm.phone"
-                    @keyup.enter.native="search"
-                    placeholder="手机号"></el-input>
-        </el-form-item>
-        <!-- <el-form-item prop="organId">
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.organId"
-            filterable
+          <el-input
+            v-model.trim="searchForm.phone"
+            @keyup.enter.native="search"
             clearable
-            @clear="onClear('organId')"
-            placeholder="请选择分部"
-          >
-            <el-option
-              v-for="(item,index) in organList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>-->
-        <!-- <el-form-item>
+            placeholder="手机号"
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
           <el-input
-            placeholder="余额支付大于等于"
+            placeholder="现金支付大于等于"
             type="number"
+            clearable
             @mousewheel.native.prevent
-            v-model.trim="searchForm.balancePaymentAmount"
+            v-model.trim="searchForm.actualAmount"
           ></el-input>
-        </el-form-item> -->
-        <el-form-item>
-          <el-input placeholder="现金支付大于等于"
-                    type="number"
-                    @mousewheel.native.prevent
-                    v-model.trim="searchForm.actualAmount"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-date-picker v-model.trim="orderDate"
-                          style="width:410px;"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          @change="searchOrderDate"
-                          range-separator="至"
-                          start-placeholder="订单开始日期"
-                          :picker-options="{
-        firstDayOfWeek: 1
-    }"
-                          end-placeholder="订单结束日期"></el-date-picker>
+          <el-date-picker
+            v-model.trim="searchForm.orderDate"
+            style="width: 410px"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            @change="searchOrderDate"
+            range-separator="至"
+            start-placeholder="订单开始日期"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+            end-placeholder="订单结束日期"
+          ></el-date-picker>
         </el-form-item>
-        <!-- <el-form-item>
+        <el-form-item>
           <el-select
-            v-model.trim="searchForm.paymentType"
+            v-model.trim="searchForm.status"
             clearable
             filterable
-            @clear="onClear('paymentType')"
-            placeholder="交易类型"
+            @clear="onClear('paymentStatus')"
+            placeholder="交易状态"
           >
             <el-option
-              v-for="(item, index) in orderStatus"
+              v-for="(item, index) in dealStatus"
               :key="index"
               :label="item.label"
               :value="item.value"
             ></el-option>
           </el-select>
-        </el-form-item>-->
-        <el-form-item>
-          <el-select v-model.trim="searchForm.status"
-                     clearable
-                     filterable
-                     @clear="onClear('paymentStatus')"
-                     placeholder="交易状态">
-            <el-option v-for="(item, index) in dealStatus"
-                       :key="index"
-                       :label="item.label"
-                       :value="item.value"></el-option>
-          </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button @click="search"
-                     type="danger">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <!-- 列表 -->
-      <div style="font-size: 14px; color: #F85043; padding-bottom: 10px;">
-        应收总金额:{{ totalExpectAmount |moneyFormat}}元 &nbsp;&nbsp;&nbsp;&nbsp;
-        现金实收总额:{{ totalActualAmount| moneyFormat }}元 &nbsp;&nbsp;&nbsp;&nbsp;
+      <div style="font-size: 14px; color: #f85043; padding-bottom: 10px">
+        应收总金额:{{ totalExpectAmount | moneyFormat }}元
+        &nbsp;&nbsp;&nbsp;&nbsp; 现金实收总额:{{
+          totalActualAmount | moneyFormat
+        }}元 &nbsp;&nbsp;&nbsp;&nbsp;
         <!-- 余额实收总额:{{ Number((totalExpectAmount - totalActualAmount).toFixed(2)) }}元  -->
       </div>
       <div class="tableWrap">
-        <el-table :data="tableList"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align="center"
-                           width="180px"
-                           prop="transNo"
-                           label="交易流水号"></el-table-column>
-          <el-table-column align="center"
-                           width="210px"
-                           prop="orderNo"
-                           label="订单号"></el-table-column>
-          <el-table-column align="center"
-                           width="150"
-                           prop="createTime"
-                           label="订单日期">
-            <template slot-scope="scope">{{ scope.row.createTime | dateForMinFormat }}</template>
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column
+            align="center"
+            width="180px"
+            prop="transNo"
+            label="交易流水号"
+          >
+          </el-table-column>
+          <el-table-column
+            align="center"
+            width="210px"
+            prop="orderNo"
+            label="订单号"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            width="150"
+            prop="createTime"
+            label="订单日期"
+          >
+            <template slot-scope="scope">{{
+              scope.row.createTime | dateForMinFormat
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           width="100px"
-                           label="时间/分钟">
+          <el-table-column align="center" width="100px" label="时间/分钟">
             <template slot-scope="scope">
-              <p>{{ '购买'+scope.row.transMinutes+'分钟' }}</p>
-              <p>{{ '赠送'+scope.row.giveMinutes+'分钟' }}</p>
+              <p>{{ "购买" + scope.row.transMinutes + "分钟" }}</p>
+              <p>{{ "赠送" + scope.row.giveMinutes + "分钟" }}</p>
             </template>
           </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="balancePaymentAmount" label="余额支付"></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">
               <div v-if="scope.row.user">{{ scope.row.user.username }}</div>
             </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.user">{{ scope.row.user.phone }}</div>
+              <copy-text v-if="scope.row.user">{{
+                scope.row.user.phone
+              }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="paymentChannel"
-                           label="交易方式">
-            <template slot-scope="scope">{{ scope.row.paymentChannel | paymentChannelStatus }}</template>
+          <el-table-column
+            align="center"
+            prop="paymentChannel"
+            label="交易方式"
+          >
+            <template slot-scope="scope">{{
+              scope.row.paymentChannel | paymentChannelStatus
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           label="收款账户">
+          <el-table-column align="center" label="收款账户">
             <template slot-scope="scope">{{ scope.row.merNos }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           label="交易状态">
-            <template slot-scope="scope">{{ scope.row.status | dealStatus }}</template>
+          <el-table-column align="center" label="交易状态">
+            <template slot-scope="scope">{{
+              scope.row.status | dealStatus
+            }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           label="备注">
-            <template slot-scope="scope">{{ scope.row.memo ? scope.row.memo : '-' }}</template>
+          <el-table-column align="center" label="备注">
+            <template slot-scope="scope">{{
+              scope.row.memo ? scope.row.memo : "-"
+            }}</template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+        <pagination
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
   </div>
@@ -194,14 +190,16 @@ import axios from "axios";
 import qs from "qs";
 import { getToken } from "@/utils/auth";
 import load from "@/utils/loading";
+import { getTimes } from "@/utils";
+import cleanDeep from 'clean-deep'
 export default {
   components: { pagination },
   name: "income",
-  data () {
+  data() {
     return {
       orderStatus: orderStatus,
       dealStatus: dealStatus,
-      orderDate: null,
+
       searchForm: {
         orderStartDate: null,
         orderEndDate: null,
@@ -210,7 +208,8 @@ export default {
         organId: null,
         phone: null,
         actualAmount: null,
-        balancePaymentAmount: null
+        balancePaymentAmount: null,
+        orderDate: [],
       },
       tableList: [],
       organList: [],
@@ -219,38 +218,41 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       totalExpectAmount: 0, //应收总金额
-      totalActualAmount: 0 //实收总金额
+      totalActualAmount: 0, //实收总金额
     };
   },
-  mounted () {
+  mounted() {
     // getEmployeeOrgan().then(res => {
     //   if (res.code == 200) {
     //     this.organList = res.data;
     //   }
     // });
-    var now = new Date();
+    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);
+      //  + " 00:00:00"  + " 23:59:59"
+      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);
+    }
 
-    var startDate = new Date(
-      Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-    )
-      .toISOString()
-      .slice(0, 10);
-    //  + " 00:00:00"  + " 23:59:59"
-    var endDate = new Date(
-      Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
-    )
-      .toISOString()
-      .slice(0, 10);
-    this.orderDate = [];
-    this.orderDate.push(startDate);
-    this.orderDate.push(endDate);
     this.getList();
   },
   methods: {
-    onClear (type) {
+    onClear(type) {
       if (type == "paymentType") {
         this.searchForm.paymentType = null;
       } else if (type == "paymentStatus") {
@@ -259,55 +261,40 @@ export default {
         this.searchForm.organId = null;
       }
     },
-    onOrderExport () {
+    onOrderExport() {
       // 报表导出
       let url = "/api-web/export/tenantPaymentOrder";
+       const { orderDate, ...rest } = this.searchForm;
       let data = {
-        orderType: 0
+        orderType: 0,
+         ...rest,
+        ...getTimes(orderDate, ["orderStartDate", "orderEndDate"]),
       };
-      let searchForm = this.searchForm;
-      if (searchForm.status) {
-        data.status = searchForm.status;
-      }
-
-      if (searchForm.paymentType) {
-        data.paymentType = searchForm.paymentType;
-      }
-      if (this.orderDate && this.orderDate.length > 0) {
-        data.orderStartDate = this.orderDate[0];
-        data.orderEndDate = this.orderDate[1];
-      } else {
-        data.orderStartDate = null;
-        data.orderEndDate = null;
-      }
-      if (searchForm.phone) {
-        data.phone = searchForm.phone
-      }
       const options = {
         method: "POST",
         headers: {
-          Authorization: getToken()
+          Authorization: getToken(),
         },
-        data: qs.stringify(data),
+        data: qs.stringify(cleanDeep(data)),
         url,
-        responseType: "blob"
+        responseType: "blob",
       };
       this.$confirm("您确定导出报表", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           load.startLoading();
           axios(options)
-            .then(res => {
+            .then((res) => {
               let blob = new Blob([res.data], {
                 // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
-                type: "application/vnd.ms-excel;charset=utf-8"
+                type: "application/vnd.ms-excel;charset=utf-8",
                 //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
               });
               let text = new Response(blob).text();
-              text.then(res => {
+              text.then((res) => {
                 // 判断是否报错
                 if (res.indexOf("code") != -1) {
                   let json = JSON.parse(res);
@@ -335,29 +322,27 @@ export default {
               });
               load.endLoading();
             })
-            .catch(error => {
+            .catch((error) => {
               this.$message.error("导出数据失败,请联系管理员");
               load.endLoading();
             });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
-    search () {
+    search() {
       this.pageInfo.page = 1;
       this.getList();
     },
-    getList () {
-      let params = this.searchForm;
-      params.rows = this.pageInfo.limit;
-      params.page = this.pageInfo.page;
-      if (this.orderDate && this.orderDate.length > 0) {
-        params.orderStartDate = this.orderDate[0];
-        params.orderEndDate = this.orderDate[1];
-      } else {
-        params.orderStartDate = null;
-        params.orderEndDate = null;
-      }
-      tenantPaymentOrder(params).then(res => {
+    getList() {
+      let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["orderStartDate", "orderEndDate"]),
+      };
+
+      tenantPaymentOrder(params).then((res) => {
         let result = res.data;
         if (res.code == 200) {
           this.tableList = result.rows;
@@ -371,7 +356,7 @@ export default {
         }
       });
     },
-    searchOrderDate (value) {
+    searchOrderDate(value) {
       if (value) {
         this.searchForm.orderStartDate = value[0];
         this.searchForm.orderEndDate = value[1];
@@ -380,21 +365,23 @@ export default {
         this.searchForm.orderEndDate = null;
       }
     },
-    onReSet () {
+    onReSet() {
       // 重置搜索
-      this.orderDate = null;
+
       this.searchForm = {
         orderStartDate: null,
         orderEndDate: null,
         paymentStatus: null,
         paymentType: null,
         organId: null,
-        phone: null
+        phone: null,
+        status: "SUCCESS",
+        orderDate: [],
       };
       this.getList();
-    }
-  }
+    },
+  },
 };
 </script>
 <style lang="scss">
-</style>
+</style>

+ 329 - 235
src/views/businessManager/orderManager/payRecord.vue

@@ -1,52 +1,73 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>支出记录
+      <div class="squrt"></div>
+      支出记录
     </h2>
     <div class="m-core">
-      <el-upload v-permission="'import/downloadTemplate'"
-                 style="display: inline-block;"
-                 action="/api-web/import/financialExpenditure"
-                 :show-file-list="false"
-                 :before-upload="beforeUpload"
-                 accept=".xlsx,.xls"
-                 :headers="headers"
-                 :on-error="handleError"
-                 :on-success="handleSuccess">
+      <el-upload
+        v-permission="'import/downloadTemplate'"
+        style="display: inline-block"
+        action="/api-web/import/financialExpenditure"
+        :show-file-list="false"
+        :before-upload="beforeUpload"
+        accept=".xlsx,.xls"
+        :headers="headers"
+        :on-error="handleError"
+        :on-success="handleSuccess"
+      >
         <el-button class="btn-primary">导入</el-button>
       </el-upload>
-      <el-button @click="downloadFile"
-                 v-permission="'import/downloadTemplate'"
-                 class="btn-primary">模版文件下载</el-button>
+      <el-button
+        @click="downloadFile"
+        v-permission="'import/downloadTemplate'"
+        class="btn-primary"
+        >模版文件下载</el-button
+      >
       <!-- 搜索类型 -->
-      <el-form :inline="true"
-               class="searchForm"
-               v-model.trim="searchForm">
+      <save-form
+        :inline="true"
+        class="searchForm"
+        :model="searchForm"
+        @submit="search"
+        @reset="onReSet"
+      >
         <el-form-item>
-          <el-input v-model.trim="searchForm.search"
-                    placeholder="批次号、申请人等"
-                    type="text"></el-input>
+          <el-input
+            v-model.trim="searchForm.search"
+            clearable
+            placeholder="批次号、申请人等"
+            type="text"
+          ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-select v-model.trim="searchForm.organId"
-                     clearable
-                     filterable
-                     placeholder="请选择所属分部">
-            <el-option v-for="(item,index) in organList"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            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-select clearable
-                     filterable
-                     placeholder="请选择所属学校"
-                     v-model="searchForm.cooperationOrganId">
-            <el-option v-for="(item,index) in cooperations"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            clearable
+            filterable
+            placeholder="请选择所属学校"
+            v-model="searchForm.cooperationOrganId"
+          >
+            <el-option
+              v-for="(item, index) in cooperations"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <!-- <el-form-item>
@@ -65,133 +86,185 @@
           </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 @click="search"
-                     type="danger">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <!-- 列表 -->
       <el-row>
         <el-col :span="24">
-          <el-button type="primary"
-                     v-permission="'financialExpenditure/batchDel/901'"
-                     size="medium"
-                     icon="el-icon-delete"
-                     style="background-color: #14928a; border: 1px solid #14928a; margin-bottom: 15px;"
-                     @click="onBatchDel">批量删除</el-button>
+          <el-button
+            type="primary"
+            v-permission="'financialExpenditure/batchDel/901'"
+            size="medium"
+            icon="el-icon-delete"
+            style="
+              background-color: #14928a;
+              border: 1px solid #14928a;
+              margin-bottom: 15px;
+            "
+            @click="onBatchDel"
+            >批量删除</el-button
+          >
         </el-col>
       </el-row>
       <div class="tableWrap">
-        <el-table :data='tableList'
-                  style="width: 100%"
-                  @selection-change="handleSelectionChange"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column type="selection"
-                           width="50"></el-table-column>
-          <el-table-column align='center'
-                           prop="id"
-                           label="批次号"></el-table-column>
-          <el-table-column align='center'
-                           prop="financialProcessNo"
-                           label="流程编号"></el-table-column>
-          <el-table-column align='center'
-                           prop="dingtalkProcessNo"
-                           label="钉钉流程编号"></el-table-column>
-          <el-table-column align='center'
-                           prop="organName"
-                           label="费用归属分部"></el-table-column>
-          <el-table-column align='center'
-                           prop="cooperationName"
-                           label="费用归属学校"></el-table-column>
-          <el-table-column align='center'
-                           prop="applyUser"
-                           label="申请人"></el-table-column>
+        <el-table
+          :data="tableList"
+          style="width: 100%"
+          @selection-change="handleSelectionChange"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column type="selection" width="50"></el-table-column>
+          <el-table-column align="center" prop="id" label="批次号">
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.id }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="financialProcessNo"
+            label="流程编号"
+          >
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.financialProcessNo }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="dingtalkProcessNo"
+            label="钉钉流程编号"
+          >
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.dingtalkProcessNo }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="organName" label="费用归属分部">
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.organName }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="cooperationName"
+            label="费用归属学校"
+          >
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.cooperationName }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="applyUser" label="申请人">
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.applyUser }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
           <!-- <el-table-column align='center' prop="itemDetail" label="费用项目"></el-table-column> -->
-          <el-table-column align='center'
-                           prop="amount"
-                           label="付款金额">
+          <el-table-column align="center" prop="amount" label="付款金额">
             <template slot-scope="scope">
               <div>
-                {{scope.row.amount|moneyFormat}}
+                {{ scope.row.amount | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="paymentTime"
-                           label="付款时间">
+          <el-table-column align="center" prop="paymentTime" label="付款时间">
             <template slot-scope="scope">
               <div>
-                {{scope.row.paymentTime|dayjsFormat}}
+                {{ scope.row.paymentTime | dayjsFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="cause"
-                           label="事由">
+          <el-table-column align="center" prop="cause" label="事由">
             <template slot-scope="scope">
               <div>
-                <el-tooltip class="item"
-                            effect="dark"
-                            :content="scope.row.cause"
-                            placement="top">
-                  <div class="noWrap">{{scope.row.cause}}</div>
+                <el-tooltip
+                  class="item"
+                  effect="dark"
+                  :content="scope.row.cause"
+                  placement="top"
+                >
+                  <div class="noWrap">{{ scope.row.cause }}</div>
                 </el-tooltip>
               </div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="费用类型">
-            <template slot-scope="scope">{{ scope.row.type | feeType }}</template>
+          <el-table-column align="center" label="费用类型">
+            <template slot-scope="scope">{{
+              scope.row.type | feeType
+            }}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="费用项目">
-            <template slot-scope="scope">{{ scope.row.feeProject | feeProject }}</template>
+          <el-table-column align="center" label="费用项目">
+            <template slot-scope="scope">{{
+              scope.row.feeProject | feeProject
+            }}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="itemDetail"
-                           label="备注"></el-table-column>
-          <el-table-column align='center'
-                           width='120px'
-                           fixed="right"
-                           label="操作">
+          <el-table-column
+            align="center"
+            prop="itemDetail"
+            label="备注"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            width="120px"
+            fixed="right"
+            label="操作"
+          >
             <template slot-scope="scope">
               <div>
-                <el-popconfirm title="确定删除该条数据吗?"
-                               @onConfirm="() => removeRecord(scope.row.id)"
-                               v-permission="'financialExpenditure/batchDel/902'">
-                  <el-button type="text"
-                             slot="reference">删除</el-button>
+                <el-popconfirm
+                  title="确定删除该条数据吗?"
+                  @onConfirm="() => removeRecord(scope.row.id)"
+                  v-permission="'financialExpenditure/batchDel/902'"
+                >
+                  <el-button type="text" slot="reference">删除</el-button>
                 </el-popconfirm>
-                <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 :total="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+        <pagination
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
-      <recorddetail :show="show"
-                    @closeReset='closeReset'
-                    @getList='getList'
-                    :item='activeRow' />
+      <recorddetail
+        :show="show"
+        @closeReset="closeReset"
+        @getList="getList"
+        :item="activeRow"
+      />
     </div>
     <!-- <el-dialog
       title="修改支出记录"
@@ -225,35 +298,41 @@
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
-import { Export } from '@/utils/downLoadFile'
-import { getFinancialExpenditure, applyRefundAudit, removeFinancialExpenditure, updateFinancialExpenditure } from '@/api/orderManager'
-import { getEmployeeOrgan, getCooperation } from '@/api/buildTeam'
+import pagination from "@/components/Pagination/index";
+import { Export } from "@/utils/downLoadFile";
+import {
+  getFinancialExpenditure,
+  applyRefundAudit,
+  removeFinancialExpenditure,
+  updateFinancialExpenditure,
+} from "@/api/orderManager";
+import { getEmployeeOrgan, getCooperation } from "@/api/buildTeam";
 import { getToken } from "@/utils/auth";
-import { paymentChannelStatus } from '@/utils/searchArray'
-import recorddetail from '@/views/businessManager/orderManager/payRecordConponents/payRecordDetail'
-import load from '@/utils/loading'
-import dayjs from 'dayjs'
+import { paymentChannelStatus } from "@/utils/searchArray";
+import recorddetail from "@/views/businessManager/orderManager/payRecordConponents/payRecordDetail";
+import load from "@/utils/loading";
+import dayjs from "dayjs";
+import { getTimes } from "@/utils";
 export default {
   components: { pagination, recorddetail },
-  name: 'backMoney',
-  data () {
+  name: "backMoney",
+  data() {
     return {
       show: false,
       detail: null,
       paymentChannelStatus: paymentChannelStatus,
-      orderDate: null,
       searchForm: {
         startTime: null,
         endTime: null,
         organId: null,
-        search: '',
-        dingtalkProcessNo: '',
-        financialProcessNo: '',
+        search: "",
+        dingtalkProcessNo: "",
+        financialProcessNo: "",
         cooperationOrganId: null,
+        orderDate: [],
       },
       headers: {
-        Authorization: getToken()
+        Authorization: getToken(),
       },
       tableList: [],
       organList: [],
@@ -263,160 +342,175 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       passed: [], // 传递的参数
       activeRow: null,
-    }
+    };
   },
-  mounted () {
-    getEmployeeOrgan().then(res => {
+  mounted() {
+    // getEmployeeOrgan().then(res => {
+    //   if (res.code == 200) {
+    //     this.organList = res.data;
+    //   }
+    // })
+    this.$store.dispatch("setBranchs");
+    getCooperation({ rows: 1000 }).then((res) => {
       if (res.code == 200) {
-        this.organList = res.data;
+        this.cooperations = res.data.rows;
       }
-    })
-    getCooperation({ 'rows': 1000, })
-      .then(res => {
-        if (res.code == 200) {
-          this.cooperations = res.data.rows;
-        }
-      })
-    this.getList()
-    var now = new Date();
-    var startDate = dayjs().format('YYYY-MM-DD');
-    var endDate = dayjs().format('YYYY-MM-DD');
-    this.orderDate = [];
-    this.orderDate.push(startDate)
-    this.orderDate.push(endDate)
-    this.searchOrderDate(this.orderDate)
+    });
+    if (this.searchForm.orderDate.length < 1) {
+      var now = new Date();
+      var startDate = dayjs().format("YYYY-MM-DD");
+      var endDate = dayjs().format("YYYY-MM-DD");
+      this.searchForm.orderDate = [];
+      this.searchForm.orderDate.push(startDate);
+      this.searchForm.orderDate.push(endDate);
+      this.searchOrderDate(this.searchForm.orderDate);
+    }
+
+    this.getList();
   },
   methods: {
-    editRecord (detail) {
-      this.show = true
-      this.detail = detail
+    editRecord(detail) {
+      this.show = true;
+      this.detail = detail;
     },
-    removeRecord (id) {
+    removeRecord(id) {
       removeFinancialExpenditure({
-        ids: id
-      })
-        .then(() => this.getList())
+        ids: id,
+      }).then(() => this.getList());
     },
-    beforeUpload (file) {
-      load.startLoading()
+    beforeUpload(file) {
+      load.startLoading();
     },
-    handleSuccess (response, file, fileList) {
-      load.endLoading()
-      console.log(response, file, fileList)
+    handleSuccess(response, file, fileList) {
+      load.endLoading();
+      console.log(response, file, fileList);
       if (response.code == 200) {
-        this.$message.success('导入成功')
-        this.getList()
+        this.$message.success("导入成功");
+        this.getList();
       } else {
-        this.$message.error(response.msg)
+        this.$message.error(response.msg);
       }
     },
-    handleError (err, file, fileList) {
-      load.endLoading()
-      console.log(err, file, fileList)
+    handleError(err, file, fileList) {
+      load.endLoading();
+      console.log(err, file, fileList);
     },
-    downloadFile () {
+    downloadFile() {
       Export(this, {
-        url: '/api-web/import/downloadTemplate',
-        fileName: '财务支出导入模板.xlsx',
+        url: "/api-web/import/downloadTemplate",
+        fileName: "财务支出导入模板.xlsx",
         params: {
-          templateType: 'FINANCIAL_EXPENDITURE'
-        }
-      })
+          templateType: "FINANCIAL_EXPENDITURE",
+        },
+      });
     },
-    search () {
+    search() {
       this.pageInfo.page = 1;
-      this.getList()
+      this.getList();
     },
-    handleSelectionChange (arr) {
+    handleSelectionChange(arr) {
       this.passed = [];
       for (let i in arr) {
         // let obj = {};
         // obj.id = arr[i].id;
         // obj.name = arr[i].name;
-        this.passed.push(arr[i].id)
+        this.passed.push(arr[i].id);
       }
     },
-    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
-      getFinancialExpenditure(params).then(res => {
-        let result = res.data
+    getList() {
+      let { orderDate, ...ruset } = this.searchForm;
+      let params = {
+        ...ruset,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["startTime", "endTime"]),
+      };
+      getFinancialExpenditure(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]
-        this.searchForm.endTime = value[1]
+        this.searchForm.startTime = value[0];
+        this.searchForm.endTime = value[1];
       } else {
-        this.searchForm.startTime = null
-        this.searchForm.endTime = null
+        this.searchForm.startTime = null;
+        this.searchForm.endTime = null;
       }
     },
-    onReSet () {
-      this.orderDate = []
+    onReSet() {
+      // this.orderDate = [];
       this.searchForm = {
         startTime: null,
-        endTime: null
-      }
-      this.pageInfo.page = 1
-      this.getList()
+        endTime: null,
+        orderDate: [],
+      };
+      var now = new Date();
+      var startDate = dayjs().format("YYYY-MM-DD");
+      var endDate = dayjs().format("YYYY-MM-DD");
+      this.searchForm.orderDate = [];
+      this.searchForm.orderDate.push(startDate);
+      this.searchForm.orderDate.push(endDate);
+      this.pageInfo.page = 1;
+      this.getList();
     },
-    onBatchDel () {
+    onBatchDel() {
       // 批量删除
-      const passed = this.passed
+      const passed = this.passed;
       if (passed.length <= 0) {
-        this.$message.error('请至少选择一条数据')
-        return
+        this.$message.error("请至少选择一条数据");
+        return;
       }
       this.$confirm("是否删除选择的支出记录?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
-      }).then(() => {
-        return removeFinancialExpenditure({
-          ids: this.passed.join(',')
-        })
+        type: "warning",
       })
+        .then(() => {
+          return removeFinancialExpenditure({
+            ids: this.passed.join(","),
+          });
+        })
         .then(() => this.getList())
-        .catch(() => { });
+        .catch(() => {});
     },
-    lookDetail (row) {
-      this.activeRow = row
-      this.show = true
-      console.log(111)
+    lookDetail(row) {
+      this.activeRow = row;
+      this.show = true;
+      console.log(111);
     },
-    closeReset () {
-      this.show = false
+    closeReset() {
+      this.show = false;
     },
-  }
-}
+  },
+};
 </script>
 <style lang="scss" scoped>
 .newBand {

+ 35 - 50
src/views/businessManager/orderManager/salesList.vue

@@ -82,10 +82,9 @@
         <el-form-item>
           <el-date-picker
             style="width: 410px"
-            v-model.trim="orderDate"
+            v-model.trim="searchForm.orderDate"
             type="daterange"
             value-format="yyyy-MM-dd"
-            @change="searchOrderDate"
             range-separator="至"
             start-placeholder="销售开始日期"
             end-placeholder="销售结束日期"
@@ -368,15 +367,6 @@
               :commit="'setEducations'"
               v-model="form.eduTeacherId"
             />
-            <!-- <el-select v-model.trim="form.eduTeacherId"
-                       filterable
-                       clearable
-                       placeholder="请选择乐团主管">
-              <el-option v-for="(item,index) in educationList"
-                         :key="index"
-                         :value="item.userId"
-                         :label="item.userName"></el-option>
-            </el-select> -->
           </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
@@ -406,23 +396,24 @@ import {
 import { paymentChannelStatus } from "@/utils/searchArray";
 import { Export } from "@/utils/downLoadFile";
 import dayjs from "dayjs";
+import { getTimes } from "@/utils";
+import cleanDeep from 'clean-deep'
 export default {
   components: { pagination },
   name: "backMoney",
   data() {
     return {
       paymentChannelStatus: paymentChannelStatus,
-      orderDate: null,
+
       refundVisible: false,
       detail: {},
       searchForm: {
         search: "",
         goodsName: "",
         cooperationOrganId: "",
-        startTime: null,
-        endTime: null,
         organIdList: [],
         userName: "",
+        orderDate: [],
       },
       tableList: [],
       organList: [],
@@ -455,28 +446,22 @@ export default {
     };
   },
   mounted() {
-    // getEmployeeOrgan().then(res => {
-    //   if (res.code == 200) {
-    //     this.organList = res.data;
-    //   }
-    // })
     this.$store.dispatch("setBranchs");
-    // findEducationUsers().then(res => {
-    //   if (res.code == 200) {
-    //     this.educationList = res.data;
-    //   }
-    // });
     getCooperation({ rows: 1000 }).then((res) => {
       if (res.code == 200) {
         this.cooperations = res.data.rows;
       }
     });
-    var now = new Date();
-    var startDate = dayjs().format("YYYY-MM-DD");
-    var endDate = dayjs().format("YYYY-MM-DD");
-    this.orderDate = [];
-    this.orderDate.push(startDate);
-    this.orderDate.push(endDate);
+
+    if (this.searchForm.orderDate?.length < 1) {
+      var now = new Date();
+      var startDate = dayjs().format("YYYY-MM-DD");
+      var endDate = dayjs().format("YYYY-MM-DD");
+      this.searchForm.orderDate = [];
+      this.searchForm.orderDate.push(startDate);
+      this.searchForm.orderDate.push(endDate);
+    }
+
     this.getList();
   },
   methods: {
@@ -503,10 +488,14 @@ export default {
       });
     },
     getList() {
-      let params = this.searchForm;
-      params.rows = this.pageInfo.limit;
-      params.page = this.pageInfo.page;
-      this.searchOrderDate(this.orderDate);
+      let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["startDate", "endDate"]),
+      };
+
       getSellOrder({
         ...params,
         organIdList: [...this.searchForm.organIdList].join(),
@@ -518,17 +507,8 @@ 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;
-      }
-    },
+
     onReSet() {
-      this.orderDate = null;
       this.searchForm = {
         startTime: null,
         endTime: null,
@@ -536,6 +516,7 @@ export default {
         search: "",
         goodsName: [],
         cooperationOrganId: "",
+        orderDate:[]
       };
       this.getList();
     },
@@ -597,18 +578,22 @@ export default {
       // applyRefundAudit()
     },
     onOrderExport() {
-      let params = this.searchForm;
-      params.rows = this.pageInfo.limit;
-      params.page = this.pageInfo.page;
-      this.searchOrderDate(this.orderDate);
+        let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["startDate", "endDate"]),
+      };
       Export(
         this,
         {
           url: "/api-web/export/exportSellOrders",
-          params: {
+          fileName:`销售列表导出.xls`,
+          params:cleanDeep( {
             ...params,
             organIdList: [...this.searchForm.organIdList].join(),
-          },
+          }),
         },
         "是否确认导出报表?"
       );

+ 238 - 172
src/views/businessManager/resetList/index.vue

@@ -2,37 +2,54 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>更换列表
+      <div class="squrt"></div>
+      更换列表
     </h2>
     <div class="m-core">
-      <el-form :inline="true"
-               :model="searchForm">
-        <el-form-item>
-          <el-input v-model.trim="searchForm.search"
-                    @keyup.enter.native="search"
-                    placeholder='流水号 订单号 学生姓名'></el-input>
+      <save-form
+        :inline="true"
+        :model="searchForm"
+        @submit="search"
+        @reset="onReSet"
+        ref='searchForm'
+      >
+        <el-form-item prop="search">
+          <el-input
+            v-model.trim="searchForm.search"
+            clearable
+            @keyup.enter.native="search"
+            placeholder="流水号 订单号 学生姓名"
+          ></el-input>
         </el-form-item>
-        <el-form-item prop="organId">
-          <el-select class="multiple"
-                     v-model.trim="searchForm.organIdList"
-                     filterable
-                     clearable
-                     placeholder="请选择分部">
-            <el-option v-for="(item,index) in organList"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+        <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>
         </el-form-item>
-        <el-form-item prop="organId">
-          <el-select clearable
-                     filterable
-                     placeholder="请选择所属学校"
-                     v-model="searchForm.cooperationOrganId">
-            <el-option v-for="(item,index) in cooperations"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+        <el-form-item prop="cooperationOrganId">
+          <el-select
+            clearable
+            filterable
+            placeholder="请选择所属学校"
+            v-model="searchForm.cooperationOrganId"
+          >
+            <el-option
+              v-for="(item, index) in cooperations"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <!-- <el-form-item prop="organId">
@@ -47,149 +64,187 @@
                        :value="item.value"></el-option>
           </el-select>
         </el-form-item> -->
-        <el-form-item>
-          <el-date-picker style="width:410px;"
-                          v-model.trim="resetDate"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          range-separator="至"
-                          start-placeholder="销售开始日期"
-                          end-placeholder="销售结束日期"
-                          :picker-options="{ firstDayOfWeek: 1 }">
+        <el-form-item prop="resetDate">
+          <el-date-picker
+            style="width: 410px"
+            v-model.trim="searchForm.resetDate"
+            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 @click="search"
-                     type="danger">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button native-type="submit" type="danger">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
-      </el-form>
+      </save-form>
       <div class="tableWrap">
-        <el-table style="width: 100%"
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}"
-                  :data="tableList">
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableList"
+        >
           <el-table-column type="expand">
             <template slot-scope="props">
-              <el-form label-position="left"
-                       inline
-                       label-width="120px"
-                       class="demo-table-expand">
+              <el-form
+                label-position="left"
+                inline
+                label-width="120px"
+                class="demo-table-expand"
+              >
                 <el-form-item label="交易流水号">
-                  <span>{{ props.row.transNo }}</span>
+                  <copy-text>{{ props.row.transNo }}</copy-text>
                 </el-form-item>
                 <el-form-item label="订单号">
-                  <span>{{ props.row.orderNo }}</span>
+                  <copy-text>{{ props.row.orderNo }}</copy-text>
                 </el-form-item>
                 <el-form-item label="更换金额(元)">
-                  <span>{{ props.row.changeMusicalPrice |moneyFormat}}</span>
+                  <span>{{ props.row.changeMusicalPrice | moneyFormat }}</span>
                 </el-form-item>
                 <el-form-item label="乐团主管">
                   <span>{{ props.row.eduTeacher }}</span>
                 </el-form-item>
                 <el-form-item label="交易方式">
-                  <span>{{ props.row.paymentChannel| paymentChannelStatus}}</span>
+                  <span>{{
+                    props.row.paymentChannel | paymentChannelStatus
+                  }}</span>
                 </el-form-item>
               </el-form>
             </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="studentName" label="学员姓名">
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.studentName }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="organName" label="所属分部">
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.organName }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="cooperationOrganName"
+            label="所属学校"
+          >
+            <template slot-scope="scope">
+              <div>
+                <copy-text>{{ scope.row.cooperationOrganName }}</copy-text>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="studentId" label="原乐器">
             <template slot-scope="scope">
               <div v-if="scope.row.originalMusicalGoods">
-                {{scope.row.originalMusicalGoods.name}}
+                {{ scope.row.originalMusicalGoods.name }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="studentId"
-                           label="原教辅"
-                           :formatter="(row)=>{return accessoriesFormatter(row.originalAccessoriesGoods)}">
+          <el-table-column
+            align="center"
+            prop="studentId"
+            label="原教辅"
+            :formatter="
+              (row) => {
+                return accessoriesFormatter(row.originalAccessoriesGoods);
+              }
+            "
+          >
           </el-table-column>
-          <el-table-column align="center"
-                           prop="studentId"
-                           label="原支付金额(元)">
+          <el-table-column
+            align="center"
+            prop="studentId"
+            label="原支付金额(元)"
+          >
             <template slot-scope="scope">
               <div>
-                {{(scope.row.originalMusicalPrice)|moneyFormat}}
+                {{ scope.row.originalMusicalPrice | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="studentId"
-                           label="更换乐器">
+          <el-table-column align="center" prop="studentId" label="更换乐器">
             <template slot-scope="scope">
               <div v-if="scope.row.changeMusicalGoods">
-                {{scope.row.changeMusicalGoods.name}}
+                {{ scope.row.changeMusicalGoods.name }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           label="更换教辅"
-                           :formatter="(row)=>{return accessoriesFormatter(row.changeAccessoriesGoods)}"></el-table-column>
-          <el-table-column align="center"
-                           prop="studentId"
-                           label="差价(元)">
+          <el-table-column
+            align="center"
+            label="更换教辅"
+            :formatter="
+              (row) => {
+                return accessoriesFormatter(row.changeAccessoriesGoods);
+              }
+            "
+          ></el-table-column>
+          <el-table-column align="center" prop="studentId" label="差价(元)">
             <template slot-scope="scope">
               <div>
-                {{((scope.row.changeMusicalPrice+scope.row.changeAccessoriesPrice)-(scope.row.originalMusicalPrice+scope.row.originalAccessoriesPrice))|moneyFormat}}
+                {{
+                  (scope.row.changeMusicalPrice +
+                    scope.row.changeAccessoriesPrice -
+                    (scope.row.originalMusicalPrice +
+                      scope.row.originalAccessoriesPrice))
+                    | moneyFormat
+                }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="studentId"
-                           label="成本差(元)">
+          <el-table-column align="center" prop="studentId" label="成本差(元)">
             <template slot-scope="scope">
               <div>
-                {{scope.row.costMargin | moneyFormat}}
+                {{ scope.row.costMargin | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="organName"
-                           label="所属分部"></el-table-column>
-          <el-table-column align="center"
-                           prop="cooperationOrganName"
-                           label="所属学校"></el-table-column>
-          <el-table-column align="center"
-                           prop="musicGroupName"
-                           label="乐团"></el-table-column>
-          <el-table-column align="center"
-                           prop="studentId"
-                           label="销售日期">
+
+          <el-table-column
+            align="center"
+            prop="musicGroupName"
+            label="乐团"
+          ></el-table-column>
+          <el-table-column align="center" prop="studentId" label="销售日期">
             <template slot-scope="scope">
               <div>
-                {{scope.row.sellTime | dayjsFormat}}
+                {{ scope.row.sellTime | dayjsFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="studentId"
-                           label="操作">
+          <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text"
-                           @click="reset(scope.row)">修改</el-button>
+                <el-button type="text" @click="reset(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
+          sync
+          :total.sync="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <resetSound :show="show"
-                @closeReset='closeReset'
-                @getList='getList'
-                :item='activeRow' />
+    <resetSound
+      :show="show"
+      @closeReset="closeReset"
+      @getList="getList"
+      :item="activeRow"
+    />
   </div>
 </template>
 
@@ -199,11 +254,13 @@ import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
 import load from "@/utils/loading";
 import { getTeacher, getEmployeeOrgan, getCooperation } from "@/api/buildTeam";
-import { getSubjectChangeList } from "@/api/businessManager"
-import resetSound from './resetSound'
-import { saleStatus } from '@/utils/searchArray'
-import cleanDeep from 'clean-deep'
-import { getNowDateAndMonday, getNowDateAndSunday } from '@/utils/utils'
+import { getSubjectChangeList } from "@/api/businessManager";
+import resetSound from "./resetSound";
+import { saleStatus } from "@/utils/searchArray";
+import cleanDeep from "clean-deep";
+import { getNowDateAndMonday, getNowDateAndSunday } from "@/utils/utils";
+import { closeSalaryConfirm } from "@/api/journal";
+import { getTimes } from "@/utils"
 let nowTime = new Date();
 nowTime =
   nowTime.getFullYear() +
@@ -213,13 +270,15 @@ nowTime =
   nowTime.getDate();
 export default {
   components: { pagination, resetSound },
-  data () {
+  data() {
     return {
       searchForm: {
         search: null,
-
+        resetDate: [],
+        organIdList: null,
+        cooperationOrganId: null,
       },
-      resetDate: [],
+
       show: false,
       teacherList: [],
       tableList: [],
@@ -232,90 +291,97 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created () { },
+  created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    this.resetDate = [];
-    this.resetDate.push(getNowDateAndMonday(nowTime));
-    this.resetDate.push(getNowDateAndSunday(nowTime));
-    getCooperation({ 'rows': 1000, })
-      .then(res => {
-        if (res.code == 200) {
-          this.cooperations = res.data.rows;
-        }
-      })
-    getEmployeeOrgan().then(res => {
+  mounted() {
+    getCooperation({ rows: 1000 }).then((res) => {
       if (res.code == 200) {
-        this.organList = res.data;
+        this.cooperations = res.data.rows;
       }
     });
+    this.$store.dispatch("setBranchs");
+    // getEmployeeOrgan().then((res) => {
+    //   if (res.code == 200) {
+    //     this.organList = res.data;
+    //   }
+    // });
     // 获取分部
 
     this.init();
-
-
   },
-  activated () {
-    this.init();
+  activated() {
+    // this.init();
   },
   methods: {
-    init () {
-      this.getList()
-    },
-    getList () {
-      let params = this.searchForm
-      params.rows = this.rules.limit
-      params.page = this.rules.page
-      if (this.resetDate && this.resetDate.length > 1) {
-        params.startTime = this.resetDate[0]
-        params.endTime = this.resetDate[1]
-      } else {
-        params.startTime = null
-        params.endTime = null
+    init() {
+      if (this.searchForm.resetDate.length < 1) {
+        this.searchForm.resetDate = [];
+        this.searchForm.resetDate.push(getNowDateAndMonday(nowTime));
+        this.searchForm.resetDate.push(getNowDateAndSunday(nowTime));
       }
 
+      this.getList();
+    },
+    getList() {
+      const { resetDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        ...getTimes(resetDate, ["startTime", "endTime"]),
+        page: this.rules.page,
+        rows: this.rules.limit,
+      };
+      // params.rows = this.rules.limit;
+      // params.page = this.rules.page;
+      // if (this.resetDate && this.resetDate.length > 1) {
+      //   params.startTime = this.resetDate[0];
+      //   params.endTime = this.resetDate[1];
+      // } else {
+      //   params.startTime = null;
+      //   params.endTime = null;
+      // }
 
-      getSubjectChangeList(cleanDeep(params)).then(res => {
+      getSubjectChangeList(cleanDeep(params)).then((res) => {
         if (res.code === 200) {
           this.rules.total = res.data.total;
-          this.tableList = res.data.rows
+          this.tableList = res.data.rows;
         }
-      })
+      });
     },
-    reset (row) {
-      this.activeRow = row
-      this.show = true
+    reset(row) {
+      this.activeRow = row;
+      this.show = true;
     },
-    closeReset () {
-      this.show = false
+    closeReset() {
+      this.show = false;
     },
-    search () {
+    search() {
       this.rules.page = 1;
-      this.getList()
+      this.getList();
     },
-    onReSet () {
-      this.searchForm.resetFields()
-      this.search()
+    onReSet() {
+      this.$refs.searchForm.resetFields();
+      console.log(this.searchForm)
+      this.searchForm.startTime = null;
+       this.searchForm.endTime = null;
+      this.search();
     },
-    accessoriesFormatter (accessories) {
+    accessoriesFormatter(accessories) {
       if (accessories && accessories.length > 0) {
-        let arr = accessories.map(res => {
-          return res.name
-        })
-        return arr.join(',')
+        let arr = accessories.map((res) => {
+          return res.name;
+        });
+        return arr.join(",");
       } else {
-        return ''
+        return "";
       }
-
-    }
-  }, watch: {
-
-  }
+    },
+  },
+  watch: {},
 };
 </script>
 <style lang='scss' scoped>