谢杰标 2 лет назад
Родитель
Сommit
02481a0836

+ 8 - 0
src/api/financed/index.js

@@ -167,6 +167,14 @@ export function updateMonthRemark(data) {
     data,
   });
 }
+// 查询月份订单列表
+export function monthOrderList(query) {
+  return request({
+    url: "/divide/log/monthOrderList",
+    method: "get",
+    params: query,
+  });
+}
 // 订单应收应付统计
 export function countOrderNum(query) {
   return request({

+ 5 - 2
src/components/tableList.vue

@@ -546,6 +546,9 @@
                 : "未知"
             }}
           </span>
+          <span v-else-if="item.scope === 'type'">
+            {{ item.values[scope.row[item.prop]] }}
+          </span>
           <span v-else-if="item.scope === 'typeStatus'">{{
             scope.row[item.prop] === 0
               ? "报名指引"
@@ -963,14 +966,14 @@
           <div v-else-if="item.scope === 'solt'">
             <slot :name="item.soltName" :scope="scope"></slot>
           </div>
-          <div v-else>
+          <span v-else>
             {{ scope.row[item.prop] }}
             {{
               (scope.row[item.prop] || scope.row[item.prop] === 0) && item.ch
                 ? item.ch
                 : ""
             }}
-          </div>
+          </span>
         </template>
       </af-table-column>
       <el-table-column

+ 138 - 61
src/views/financed/arap/index.vue

@@ -31,10 +31,11 @@
       :navText="navText"
       :loading="loading"
       :setIndex="setIndex"
-      :objectSpanMethod="spanMethod"
+      @load="load"
     >
       <template slot="customize">
-        <el-button @click="openDialog({}, 5)" type="success">
+        <el-button @click="() => {}" type="warning"> 批量支付 </el-button>
+        <el-button @click="openDialog({}, 4)" type="success">
           坏账设置
         </el-button>
         <el-button @click="batchExport" type="primary"> 导出excel </el-button>
@@ -70,16 +71,13 @@
         </div>
       </template>
       <template slot="status" slot-scope="props">
-        {{
-          props.scope.row.payStatus == 1
-            ? "0"
-            : props.scope.row[props.scope.column.property]
-        }}
+        {{ backStatus(props.scope) }}
       </template>
       <template slot="btn" slot-scope="props">
         <el-button
+          v-if="props.scope.row.oId"
           type="text"
-          @click="openDialog(props.scope.row, type == 0 ? 3 : 4)"
+          @click="openDialog(props.scope.row, 3)"
         >
           查看详情
         </el-button>
@@ -130,9 +128,7 @@
       :dialogVisible.sync="orderDialogVisible"
     />
     <arap-remarks
-      :orderSn="activeOrderInfo.id"
-      :remark="activeOrderInfo.remark"
-      :id="activeOrderInfo.id"
+      :info="activeOrderInfo"
       @search="search"
       :dialogVisible.sync="remarkDialogVisible"
     ></arap-remarks>
@@ -144,8 +140,6 @@
       :orderSn="activeOrderInfo.orderSn"
       :checkFrom="type + 1"
     ></dislog-set>
-    <!-- 查看详情 -->
-    <dislog-arap-details :type="type" :dialogVisible.sync="arapDialogVisible" />
     <!-- 坏账设置 -->
     <dislog-bad-bill
       :dialogVisible.sync="badBillDialogVisible"
@@ -162,7 +156,6 @@ import dislogTip from "./dislogTip.vue";
 import dislogOrderDetails from "../components/dislogOrderDetails.vue";
 import arapRemarks from "../components/arapRemarks.vue";
 import pictureList from "@/components/Comon/pictureList.vue";
-import dislogArapDetails from "../components/dislogArapDetails.vue";
 import dislogBadBill from "../components/dislogBadBill.vue";
 import { exportFn } from "@/utils/index.js";
 import {
@@ -176,6 +169,7 @@ import {
   countOrderNum,
   commissionList,
   sellerPercentageList,
+  monthOrderList,
 } from "@/api/financed/index";
 export default {
   name: "cost",
@@ -185,7 +179,6 @@ export default {
     pagination,
     dislogTip,
     dislogOrderDetails,
-    dislogArapDetails,
     arapRemarks,
     dislogSet,
     pictureList,
@@ -265,8 +258,9 @@ export default {
         index: 0,
         ch: "条",
         num: true,
-        choice: false,
+        choice: true,
         addHide: true,
+        dontNum: false,
         openCheckMore: true,
         changeWidth: "240px",
         custom: false,
@@ -343,6 +337,30 @@ export default {
         },
       ],
       tableSet1: [
+        {
+          label: "时间",
+          prop: "monthTime",
+          hidden: true,
+        },
+        {
+          label: "订单单号",
+          prop: "orderSn",
+          hidden: true,
+        },
+        {
+          label: "类型",
+          prop: "billType",
+          scope: "type",
+          hidden: true,
+          values: {
+            1: "月份",
+            2: "季度",
+            3: "半年",
+            4: "年度",
+            6: "完单",
+            7: "退款",
+          },
+        },
         {
           label: "机构名称",
           prop: "tenantName",
@@ -350,18 +368,17 @@ export default {
         },
         {
           label: "已付分成(元)",
-          prop: "payMoneyTotal",
+          prop: "payMoney",
           hidden: true,
+          scope: "solt",
+          soltName: "status",
         },
         {
           label: "已扣分成(元)",
-          prop: "deductMoneyTotal",
-          hidden: true,
-        },
-        {
-          label: "待付月份",
-          prop: "month",
+          prop: "deductMoney",
           hidden: true,
+          scope: "solt",
+          soltName: "status",
         },
         {
           label: "待付分成(元)",
@@ -374,6 +391,8 @@ export default {
           label: "待扣分成(元)",
           prop: "deductMoney",
           hidden: true,
+          scope: "solt",
+          soltName: "status",
         },
         {
           label: "预付时间",
@@ -392,6 +411,12 @@ export default {
           scope: "solt",
           soltName: "divideCheckStatus",
         },
+        {
+          label: "支付时间",
+          prop: "payTime",
+          scope: "aTimeList",
+          hidden: true,
+        },
         {
           label: "备注",
           prop: "remark",
@@ -399,6 +424,30 @@ export default {
         },
       ],
       tableSet2: [
+        {
+          label: "时间",
+          prop: "monthTime",
+          hidden: true,
+        },
+        {
+          label: "订单单号",
+          prop: "orderSn",
+          hidden: true,
+        },
+        {
+          label: "类型",
+          prop: "billType",
+          scope: "type",
+          hidden: true,
+          values: {
+            1: "月份",
+            2: "季度",
+            3: "半年",
+            4: "年度",
+            6: "完单",
+            7: "退款",
+          },
+        },
         {
           label: "机构名称",
           prop: "tenantName",
@@ -416,21 +465,20 @@ export default {
         },
         {
           label: "已付提成(元)",
-          prop: "payMoneyTotal",
+          prop: "payMoney",
           hidden: true,
+          scope: "solt",
+          soltName: "status",
         },
         {
           label: "已扣提成(元)",
-          prop: "deductMoneyTotal",
-          hidden: true,
-        },
-        {
-          label: "待审月份",
-          prop: "month",
+          prop: "deductMoney",
           hidden: true,
+          scope: "solt",
+          soltName: "status",
         },
         {
-          label: "待提成(元)",
+          label: "待提成(元)",
           prop: "payMoney",
           hidden: true,
           scope: "solt",
@@ -440,6 +488,8 @@ export default {
           label: "待扣提成(元)",
           prop: "deductMoney",
           hidden: true,
+          scope: "solt",
+          soltName: "status",
         },
         {
           label: "审核状态",
@@ -448,6 +498,13 @@ export default {
           scope: "solt",
           soltName: "divideCheckStatus",
         },
+        {
+          label: "支付时间",
+          prop: "payTime",
+          scope: "aTimeList",
+          scope: "aTimeList",
+          hidden: true,
+        },
         {
           label: "备注",
           prop: "remark",
@@ -455,6 +512,16 @@ export default {
         },
       ],
       tableSet3: [
+        {
+          label: "时间",
+          prop: "monthTime",
+          hidden: true,
+        },
+        {
+          label: "订单单号",
+          prop: "orderSn",
+          hidden: true,
+        },
         {
           label: "机构名称",
           prop: "tenantName",
@@ -464,11 +531,8 @@ export default {
           label: "已付佣金(元)",
           prop: "payMoney",
           hidden: true,
-        },
-        {
-          label: "待付月份",
-          prop: "month",
-          hidden: true,
+          scope: "solt",
+          soltName: "status",
         },
         {
           label: "待付佣金(元)",
@@ -484,6 +548,11 @@ export default {
           scope: "solt",
           soltName: "divideCheckStatus",
         },
+        {
+          label: "支付时间",
+          prop: "payTime",
+          hidden: true,
+        },
         {
           label: "备注",
           prop: "remark",
@@ -494,7 +563,6 @@ export default {
       total: 0, //一共多少条
       tipDialogVisible: false,
       orderDialogVisible: false,
-      arapDialogVisible: false,
       remarkDialogVisible: false,
       examineDialogVisible: false,
       badBillDialogVisible: false,
@@ -509,27 +577,6 @@ export default {
     this.init();
   },
   methods: {
-    spanMethod({ row, column, rowIndex, columnIndex }) {
-      let t = [3, 5, 2][this.type - 1];
-      if (columnIndex <= t) {
-        const num = this.spanData[rowIndex];
-        if (num) {
-          return {
-            rowspan: num,
-            colspan: 1,
-          };
-        } else {
-          return {
-            rowspan: 0,
-            colspan: 0,
-          };
-        }
-      }
-    },
-    // 设置序号
-    setIndex(index) {
-      return Object.keys(this.spanData).findIndex((e) => index == e) + 1;
-    },
     divideCheckStatus(e) {
       var a = "";
       switch (e) {
@@ -557,8 +604,7 @@ export default {
     openDialog(data, type) {
       this.activeOrderInfo = data;
       this[
-        ["tip", "examine", "remark", "order", "arap", "badBill"][type] +
-          "DialogVisible"
+        ["tip", "examine", "remark", "order", "badBill"][type] + "DialogVisible"
       ] = true;
     },
     batchExport() {
@@ -583,6 +629,9 @@ export default {
       let data = row[key].split(",").sort((a, b) => a - b);
       return data;
     },
+    setIndex(index) {
+      return index + 1;
+    },
     changeSearch() {
       this.search(2);
     },
@@ -592,7 +641,12 @@ export default {
       ];
       fn(this.formData)
         .then((res) => {
-          this.tableData = this.changeData(res.rows);
+          res.rows.forEach((e) => {
+            e.children = [];
+            e.hasChildren = true;
+            e.monthTime = this.parseTime(e.monthTime, "{y}-{m}");
+          });
+          this.tableData = res.rows;
           this.total = res.total;
           this.navText.index = res.total;
         })
@@ -600,6 +654,29 @@ export default {
           this.loading = false;
         });
     },
+    load(tree, treeNode, resolve) {
+      monthOrderList({ divideLogId: tree.id })
+        .then((res) => {
+          // id冲突会报错
+          res.data.forEach((e) => {
+            e.oId = e.id;
+            e.id = e.id + 100086;
+            e.billType = e.orderType + 5;
+            e.monthTime = this.parseTime(e.monthTime, "{y}-{m}-{d}");
+          });
+          resolve(res.data);
+        })
+        .catch(() => {
+          resolve([]);
+        });
+    },
+    // 切换已付待付
+    backStatus({ row, column }) {
+      let { label, property } = column;
+      return ["0.00", row[property]][
+        (label.indexOf("已") != -1 ? 0 : 1) ^ row.payStatus
+      ];
+    },
     changeData(data) {
       if (this.type == 0) {
         return data;

+ 11 - 13
src/views/financed/components/arapRemarks.vue

@@ -25,15 +25,11 @@ export default {
       type: Boolean,
       default: false,
     },
-    orderSn: {
-      type: String,
-    },
-    id: {
-      type: [Number, String],
-    },
-    remark: {
-      type: String,
-      default: "",
+    info: {
+      type: Object,
+      default: () => {
+        return {};
+      },
     },
   },
   data() {
@@ -46,13 +42,15 @@ export default {
 
   methods: {
     init() {
-      this.value = this.remark;
+      this.value = this.info.remark;
     },
     submitForm() {
-      updateMonthRemark({
-        orderSn: this.orderSn,
+      let { orderSn, id } = this.info;
+      let fn = orderSn ? updateRemark : updateMonthRemark;
+      fn({
+        orderSn: orderSn,
         remark: this.value,
-        id: this.id,
+        id: id,
       }).then((res) => {
         this.$message.success("修改备注成功");
         this.isShow = false;

+ 86 - 33
src/views/financed/components/dislogBadBill.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <BaseDialog
-      width="640px"
+      width="700px"
       :isShow.sync="isShow"
       title="坏账设置"
       @submit="submitForm"
@@ -14,32 +14,53 @@
         :rules="rules"
         ref="form"
       >
-        <el-form-item label="账龄:" prop="yearType">
-          <el-select v-model="form.yearType" multiple placeholder="请选择账龄">
-            <el-option
-              v-for="(item, idx) in typeList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-              :disabled="disabled(idx)"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          label="扣押比例:"
-          class="range"
-          label-width="90px"
-          prop="detainRate"
-        >
-          <el-input
-            v-model="form.detainRate"
-            v-int="{ max: 100 }"
-            placeholder="请输入扣押比例"
+        <div v-for="(item, index) in form.data" :key="index">
+          <el-form-item
+            label="账龄:"
+            :prop="'data.' + index + '.yearType'"
+            :rules="rules['yearType']"
+          >
+            <el-select v-model="item.yearType" placeholder="请选择账龄">
+              <el-option
+                v-for="(item, idx) in typeList"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+                :disabled="disabled(idx, item.value)"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            label="扣押比例:"
+            class="range"
+            label-width="90px"
+            :rules="rules['detainRate']"
+            :prop="'data.' + index + '.detainRate'"
           >
-            <template slot="append"> % </template>
-          </el-input>
-        </el-form-item>
+            <el-input
+              v-model="item.detainRate"
+              v-int="{ max: 100 }"
+              placeholder="请输入扣押比例"
+            >
+              <template slot="append"> % </template>
+            </el-input>
+          </el-form-item>
+          <el-form-item label-width="0" label=" ">
+            <div class="btns">
+              <i
+                @click="add(index)"
+                v-if="!yearType.includes(1) && form.data.length < 4"
+                class="el-icon-circle-plus-outline"
+              ></i>
+              <i
+                v-if="index != 0"
+                @click="del(index)"
+                class="el-icon-remove-outline"
+              ></i>
+            </div>
+          </el-form-item>
+        </div>
       </el-form>
     </BaseDialog>
   </div>
@@ -57,10 +78,10 @@ export default {
   },
   data() {
     return {
-      form: {},
+      form: { data: [] },
       rules: {
         detainRate: [
-          { required: true, message: "请输入扣押比例", trigger: "change" },
+          { required: true, message: "请输入扣押比例", trigger: "blur" },
         ],
         yearType: [
           { required: true, message: "请选择账龄", trigger: "change" },
@@ -85,20 +106,25 @@ export default {
     },
     resetForm() {
       this.form = {
-        detainRate: undefined,
-        yearType: [],
+        data: [
+          {
+            detainRate: undefined,
+            yearType: undefined,
+          },
+        ],
       };
     },
     badBillDetail() {
       badBillDetail().then((res) => {
         if (res.data) {
+          this.form.data = JSON.parse(res.data);
         }
       });
     },
     submitForm() {
       this.$refs["form"].validate((valid) => {
         if (valid) {
-          setBadBill(this.form).then((res) => {
+          setBadBill(this.form.data).then((res) => {
             this.$message.success("坏账设置成功");
             this.isShow = false;
           });
@@ -112,8 +138,20 @@ export default {
         this.$refs["form"].resetFields();
       });
     },
-    disabled(idx) {
-      return this.form.yearType.some((e) => (idx == 0 ? e != 1 : e == 1));
+    disabled(idx, value) {
+      if (this.form.data.length <= 1) {
+        return false;
+      }
+      return this.yearType.some((e) => (idx == 0 ? e != 1 : e == value));
+    },
+    add(index) {
+      this.form.data.splice(index + 1, 0, {
+        detainRate: undefined,
+        yearType: undefined,
+      });
+    },
+    del(index) {
+      this.form.data.splice(index, 1);
     },
   },
   computed: {
@@ -128,6 +166,10 @@ export default {
         this.$emit("update:dialogVisible", false);
       },
     },
+    yearType() {
+      console.log(this.form.data);
+      return this.form.data.map((e) => e.yearType).filter((e) => e);
+    },
   },
 };
 </script>
@@ -138,4 +180,15 @@ export default {
     width: 200px;
   }
 }
+.btns {
+  margin-left: -10px;
+  height: 36px;
+  display: flex;
+  align-items: center;
+  i {
+    font-size: 24px;
+    cursor: pointer;
+    margin-left: 5px;
+  }
+}
 </style>

+ 1 - 1
src/views/financed/cost/dislogSet.vue

@@ -179,7 +179,7 @@
               <template slot="append"> 元 </template>
             </el-input>
           </el-form-item>
-          <el-form-item label="">
+          <el-form-item label="" v-if="item.itemCategory == 1">
             <el-checkbox
               :true-label="1"
               :false-label="0"