mo 2 年之前
父节点
当前提交
9acad04d1e

+ 14 - 0
src/store/modules/permission.js

@@ -1081,6 +1081,20 @@ function setDetailRoute(accessedRoutes) {
             activeMenu: "/businessStatement",
             id: "4217"
           }
+        },
+        {
+          name: "缴费项目列表",
+          path: "payschoolList",
+          component: () =>
+            import("@/views/branchPayManager/payschoolList"),
+          hidden: true,
+          meta: {
+            noCache: "1",
+            title: "缴费项目列表",
+            belongTopMenu: "/financialManager",
+            activeMenu: "/branchPayManager",
+            id: "4217"
+          }
         }
       ]);
     }

+ 22 - 0
src/views/branchPayManager/api.js

@@ -0,0 +1,22 @@
+import request2 from '@/utils/request2'
+import qs from 'qs'
+let api = '/api-web'
+
+
+export function getCoopRefundList(data) {
+  return request2({
+    url: api + '/musicGroupCalenderRefundPeriod/queryCoopRefund',
+    method: 'post',
+    // requestType:'form',
+    data
+  })
+}
+
+export function getCoopCalenderList(data) {
+  return request2({
+    url: api + '/musicGroupCalenderRefundPeriod/queryCoopCalender',
+    method: 'post',
+    // requestType:'form',
+    data
+  })
+}

+ 28 - 84
src/views/branchPayManager/payList.vue

@@ -19,7 +19,6 @@
             v-model.trim="searchForm.organId"
             filterable
             clearable
-            multiple
             collapse-tags
             placeholder="请选择分部"
             @change="changeOrgan"
@@ -32,9 +31,9 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="cooperationId">
+        <el-form-item prop="search">
           <el-select
-            v-model.trim="searchForm.cooperationId"
+            v-model.trim="searchForm.search"
             :disabled="!searchForm.organId"
             filterable
             clearable
@@ -53,14 +52,6 @@
           <el-button native-type="submit" type="primary">搜索</el-button>
           <el-button native-type="reset" type="danger">重置</el-button>
         </el-form-item>
-        <el-form-item>
-          <el-button
-            type="primary"
-            @click="exportBack"
-            v-permission="'export/userCashAccountLog'"
-            >导出</el-button
-          >
-        </el-form-item>
       </save-form>
       <div class="tableWrap">
         <el-table
@@ -70,77 +61,48 @@
         >
           <el-table-column
             align="center"
-            prop="id"
-            label="退费编号"
-          ></el-table-column>
-          <el-table-column align="center" prop="studentId" label="学员">
-            <template slot-scope="scope">
-              <div>
-                <p>{{ scope.row.username }}</p>
-                <p>{{ scope.row.userId }}</p>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column
-            align="center"
             prop="organName"
-            label="分部"
+            label="所属分部"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="groupId"
-            label="课程组编号"
+            prop="cooperationOrganName"
+            label="合作单位"
           ></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.amount | moneyFormat }}
+                {{ scope.row.receivable | 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.returnFeeType | backType }}
+                {{ scope.row.income | moneyFormat }}
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
-            label="退费时间"
-            width="100px"
-          >
+          <el-table-column align="center" prop="studentId" label="待收金额">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.createTime }}
+                {{ scope.row.prepaidFee | moneyFormat }}
               </div>
             </template>
           </el-table-column>
           <el-table-column
             align="center"
-            prop="transNo"
-            label="交易流水号"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="payTime"
-            label="打款时间"
+            prop="educationUserName"
+            label="乐团主管"
             width="100px"
-          ></el-table-column>
-          <el-table-column align="center" prop="studentId" label="退费状态">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.transNo ? "已打款" : "未打款" }}
-              </div>
-            </template>
+          >
           </el-table-column>
           <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
                 <auth auths="userCashAccountLog/update">
-                  <el-button type="text" @click="resetBackForm(scope.row)"
-                    >修改</el-button
+                  <el-button type="text" @click="gotoDetail(scope.row)"
+                    >详情</el-button
                   >
                 </auth>
               </div>
@@ -169,6 +131,8 @@ import { getTimes } from "@/utils";
 import load from "@/utils/loading";
 import { backTypeList } from "@/utils/searchArray";
 import { Export } from "@/utils/downLoadFile";
+import { getCoopRefundList } from './api'
+import { queryByOrganId } from "@/api/systemManage";
 import qs from "qs";
 export default {
   components: { pagination },
@@ -177,7 +141,7 @@ export default {
       searchForm: {
         search: null,
         returnFeeType: null,
-        organId: [],
+        organId: null,
         backTime: [],
         payTime: [],
         returnFeeFlag:null
@@ -212,19 +176,16 @@ export default {
       this.getList();
     },
     async getList() {
-      let { backTime, payTime, organId, ...rest } = this.searchForm;
+      // let { , payTime, organId, ...rest } = this.searchForm;
       let params = {
-        ...rest,
+        ...this.searchForm,
         page: this.rules.page,
         rows: this.rules.limit,
-        organId: organId.join(","),
-        ...getTimes(backTime, ["createStartTime", "createEndTime"]),
-        ...getTimes(payTime, ["payStartTime", "payEndTime"]),
       };
       try {
-        // const res = await getUserCashAccountLog(params);
-        this.tableList = res.data.rows;
-        this.rules.total = res.data.total;
+        const res = await getCoopRefundList(params);
+        this.tableList = res.data.pageInfo.rows;
+        this.rules.total = res.data.pageInfo.total;
       } catch (e) {
         console.log(e);
       }
@@ -237,28 +198,11 @@ export default {
       this.$refs["searchForm"].resetFields();
       this.search();
     },
-    resetBackForm(row) {
-      this.activeRow = row;
-      this.form = { ...row };
-      this.resetVisible = true;
-    },
-    resetRorm() {
-      this.$refs.form.validate(async (flag) => {
-        if (flag) {
-          try {
-            if(!this.form.transNo){
-              this.form.payTime = null;
-            }
-            const res = await resetUserCashAccountLog(this.form);
-            this.$message.success("修改成功");
-            this.resetVisible = false;
-            this.getList();
-          } catch (e) {
-            console.log(e);
-          }
-        }
-      });
+    gotoDetail(row) {
+      this.$router.push({path:'/financialManager/payschoolList',query:{id:row.cooperationOrganId,name:row.cooperationOrganName}})
+      // /financialManager/payschoolList
     },
+
     exportBack() {
       let { backTime, payTime, organId, ...rest } = this.searchForm;
       let params = {

+ 354 - 0
src/views/branchPayManager/payschoolList.vue

@@ -0,0 +1,354 @@
+<template>
+  <div class="m-container">
+    <el-page-header @back="goBack" :content="name"> </el-page-header>
+    <div class="m-core">
+      <save-form
+        :inline="true"
+        :model="searchForm"
+        ref="searchForm"
+        @submit="search"
+        @reset="onReSet"
+      >
+        <el-form-item prop="search">
+          <el-input
+            v-model.trim="searchForm.search"
+            clearable
+            @keyup.enter.native="
+              (e) => {
+                e.target.blur();
+                $refs.saveForm.save();
+                search();
+              }
+            "
+            placeholder="乐团名称"
+          ></el-input>
+        </el-form-item>
+        <el-form-item prop="refundStatus">
+          <el-select
+            v-model.trim="searchForm.refundStatus"
+            clearable
+            placeholder="回款状态"
+          >
+            <el-option label="已回款" :value="1"></el-option>
+            <el-option label="回款中" :value="0"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="payTime">
+          <el-date-picker
+            v-model.trim="searchForm.payTime"
+            style="width: 400px"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="缴费开始日期"
+            end-placeholder="缴费结束日期"
+            value-format="yyyy-MM-dd"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button native-type="submit" type="primary">搜索</el-button>
+          <el-button native-type="reset" type="danger">重置</el-button>
+        </el-form-item>
+      </save-form>
+      <div class="tableWrap">
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableList"
+        >
+          <el-table-column
+            align="center"
+            prop="musicGroupName"
+            label="乐团名称"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="batchNo"
+            label="缴费批次"
+          ></el-table-column>
+          <el-table-column align="center" prop="studentId" label="缴费类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.paymentType | userPaymentTypeFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="studentId" label="计价标准">
+            <template slot-scope="scope">
+              <div v-if="scope.row.calenderFeeType">
+                {{
+                  scope.row.calenderFeeType == "TEACHER" ? "按老师" : "按学员"
+                }}
+              </div>
+              <div v-else>--</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="studentId" label="应收总额">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.receivable | moneyFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="studentId" label="实收总额">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.income | moneyFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="studentId" label="待收金额">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.prepaidFee | moneyFormat }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="educationUserName"
+            label="下一回款日期"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.nextRefundDate }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="educationUserName"
+            label="回款状态"
+            width="100px"
+          >
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.refundStatus == "IN" ? "回款中" : "已回款" }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="studentId" label="操作">
+            <template slot-scope="scope">
+              <div>
+                <auth auths="userCashAccountLog/update">
+                  <el-button type="text" @click="lookList(scope.row)">详情</el-button>
+                </auth>
+                <auth auths="userCashAccountLog/update">
+                  <el-button
+                    type="text"
+                    :disabled="!scope.row.contractUrl"
+                    @click="downLoad(scope.row)"
+                    >下载合同</el-button
+                  >
+                </auth>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          sync
+          :total.sync="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
+      </div>
+      <el-dialog
+        title="查看"
+        :visible.sync="reviewVisible"
+        width="900px"
+        v-if="reviewVisible"
+      >
+        <reviewDetail
+          @close="reviewVisible = false"
+          @submited="getList"
+          :detail="viewDetail"
+          :musicGroupId="$route.query.id"
+          destroy-on-close
+        />
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="reviewVisible = false"
+            >关闭</el-button
+          >
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+<script>
+import axios from "axios";
+import { getToken } from "@/utils/auth";
+import pagination from "@/components/Pagination/index";
+import { getTimes } from "@/utils";
+import load from "@/utils/loading";
+import { backTypeList } from "@/utils/searchArray";
+import { Export } from "@/utils/downLoadFile";
+import { getCoopCalenderList } from "./api";
+import { queryByOrganId } from "@/api/systemManage";
+import reviewDetail from "@/views/resetTeaming/modals/review-detail";
+import qs from "qs";
+export default {
+  components: { pagination,reviewDetail },
+  data() {
+    return {
+      searchForm: {
+        cooperationId: this.$route.query.id,
+        search: null,
+        organId: null,
+        payTime: [],
+        returnFeeFlag: null,
+      },
+      name: this.$route.query.name,
+      backTypeList,
+      tableList: [],
+      cooperationList: [],
+      activeRow: null,
+      rules: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
+      form: {
+        id: null,
+      },
+      reviewVisible: false,
+      viewDetail:null
+    };
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  async mounted() {
+    // 获取分部
+    await this.$store.dispatch("setBranchs");
+    this.init();
+  },
+  methods: {
+    init() {
+      this.getList();
+    },
+    async getList() {
+      let { payTime, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        ...getTimes(payTime, ["refundStartDate", "refundEndDate"]),
+        page: this.rules.page,
+        rows: this.rules.limit,
+      };
+      try {
+        const res = await getCoopCalenderList(params);
+        this.tableList = res.data.rows;
+        this.rules.total = res.data.total;
+      } catch (e) {
+        console.log(e);
+      }
+    },
+    search() {
+      this.rules.page = 1;
+      this.getList();
+    },
+    onReSet() {
+      this.$refs["searchForm"].resetFields();
+      this.searchForm.cooperationId = this.$route.query.id;
+      this.search();
+    },
+    goBack() {},
+    lookList(row) {
+      this.viewDetail = row;
+      this.viewDetail.id = row.calenderId
+      this.reviewVisible = true;
+    },
+    async downLoad(row) {
+      try {
+        await this.$confirm(`是否下载批次号为${row.batchNo}合同`, "提示", {
+          type: "warning",
+        });
+        window.open(row.contractUrl);
+      } catch (e) {
+        console.log(e);
+      }
+    },
+    resetBackForm(row) {
+      this.activeRow = row;
+      this.form = { ...row };
+      this.resetVisible = true;
+    },
+    resetRorm() {
+      this.$refs.form.validate(async (flag) => {
+        if (flag) {
+          try {
+            if (!this.form.transNo) {
+              this.form.payTime = null;
+            }
+            const res = await resetUserCashAccountLog(this.form);
+            this.$message.success("修改成功");
+            this.resetVisible = false;
+            this.getList();
+          } catch (e) {
+            console.log(e);
+          }
+        }
+      });
+    },
+    exportBack() {
+      let { backTime, payTime, organId, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.rules.page,
+        rows: this.rules.limit,
+        organId: organId.join(","),
+        ...getTimes(backTime, ["createStartTime", "createEndTime"]),
+        ...getTimes(payTime, ["payStartTime", "payEndTime"]),
+      };
+      Export(
+        this,
+        {
+          url: "/api-web/export/userCashAccountLog",
+          fileName: "退费列表.xls",
+          method: "post",
+          params: qs.stringify(params),
+        },
+        "您确定导出退费列表?"
+      );
+    },
+    changeOrgan(val) {
+      this.searchForm.cooperationId = null;
+    },
+  },
+  watch: {
+    // "searchForm.organId"(val) {
+    //   if (val) {
+    //     queryByOrganId({ organId: val }).then((res) => {
+    //       if (res.code == 200) {
+    //         this.cooperationList = res.data;
+    //       }
+    //     });
+    //   }
+    // },
+    // "searchForm.cooperationId"(val) {
+    //   if (val) {
+    //     getMusicGroup({ cooperationId: val }).then((res) => {
+    //       this.musicList = res.data;
+    //     });
+    //   }
+    // },
+  },
+};
+</script>
+<style lang='scss' scoped>
+.search {
+  ::v-deep .el-input__inner {
+    width: 260px !important;
+  }
+}
+.form {
+  ::v-deep .el-input {
+    width: 220px;
+  }
+}
+</style>

+ 2 - 0
src/views/resetTeaming/components/payInfoDetail.vue

@@ -456,6 +456,7 @@ export default {
         calenderFeeType: "STUDENT",
         musicGroupCalenderRefundPeriods: [{ refundDate: "", refundAmount: "" }],
         currentTotalAmount: 0,
+        contractUrl:''
       },
       teamCourse: false,
       member: false,
@@ -1120,6 +1121,7 @@ export default {
           musicGroupCalenderRefundPeriods:
             this.form.musicGroupCalenderRefundPeriods,
           currentTotalAmount: this.form.currentTotalAmount,
+          contractUrl:this.form.contractUrl
         };
       }
     },

+ 21 - 0
src/views/resetTeaming/modals/paySchoolInfo.vue

@@ -231,6 +231,27 @@
         </el-form-item>
       </div>
       <el-row>
+        <el-form-item
+        label="上传合同"
+        prop="contractUrl"
+        :rules="[
+          {
+            required: true,
+            message: '请上传上传合同',
+            trigger: 'blur, change'
+          }
+        ]"
+      >
+        <singe-file-upload
+          tips="仅支持上传pdf格式文件"
+          buttonText="上传合同"
+          accept=".pdf"
+          v-model="form.contractUrl"
+            bucket_name="contract"
+        />
+      </el-form-item>
+      </el-row>
+      <el-row>
         <el-col class="memoWrap">
           <el-form-item
             class="memoWrapItem"

+ 7 - 0
src/views/resetTeaming/modals/review-detail.vue

@@ -365,6 +365,13 @@
       <el-table-column prop="refundAmount" label="回款金额" >
       </el-table-column>
       <el-table-column prop="refundDate" label="回款时间" >
+        <template slot-scope="scope">
+          <div>
+            {{scope.row.refundDate?'已回款':'回款中'}}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="refundDate" label="回款时间" >
       </el-table-column>
     </el-table>
 

+ 5 - 3
src/views/teamBuild/components/teamBaseInfo.vue

@@ -399,7 +399,9 @@
               placeholder="请输入收费标准"
               :disabled="basdisabled"
             >
-
+            <i slot="suffix" class="el-input__icon" style="padding-right: 5px"
+                >元</i
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -1570,7 +1572,7 @@ export default {
         this.topFrom.musicGroupPlanMakingId =
         res.data.musicGroup.musicGroupPlanMakingId;
         this.topFrom.firstRecruitGrade =
-        res.data.musicGroup.firstRecruitGrade;
+        res.data.musicGroup.firstRecruitGrade+'';
         this.topFrom.defaultChargeStandard =
         res.data.musicGroup.defaultChargeStandard;
         this.topFrom.singleTrainMinutes =
@@ -1578,7 +1580,7 @@ export default {
         this.topFrom.coursePlan =
         res.data.musicGroup.coursePlan;
         this.topFrom.graduateGrade =
-        res.data.musicGroup.graduateGrade;
+        res.data.musicGroup.graduateGrade+'';
         this.topFrom.saleActivityDesc =
         res.data.musicGroup.saleActivityDesc;
 

+ 0 - 1
src/views/teamDetail/teamList.vue

@@ -347,7 +347,6 @@
                   v-if="
                     (scope.row.status == 'PRE_APPLY' ||
                       scope.row.status == 'PAUSE' ||
-                      scope.row.status == 'DRAFT' ||
                       scope.row.status == 'PROGRESS' ||
                       scope.row.status == 'CANCELED' ||
                       scope.row.status == 'APPLY' ||