优化结算单详情以及分销相关页面展示

This commit is contained in:
pikachu1995@126.com 2024-07-02 14:56:10 +08:00
parent e3a5583802
commit bab54570fe
8 changed files with 229 additions and 57 deletions

View File

@ -348,14 +348,6 @@ export default {
// //
trigger: "blur", trigger: "blur",
}, },
{
validator: (rule, value, callback) => {
// truefalse
// this.$u.test.mobile()truefalse
return checkBankno(value);
},
message: "银行账号不正确",
},
], ],
}, },
tabName: "goodsChecked", // tab tabName: "goodsChecked", // tab
@ -415,7 +407,7 @@ export default {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
this.applyLoading = true; this.applyLoading = true;
applyDistribution(this.form).then((res) => { applyDistribution(this.applyForm).then((res) => {
this.applyLoading = false; this.applyLoading = false;
if (res.success) { if (res.success) {
this.$Message.success("申请已提交,请等待管理员审核"); this.$Message.success("申请已提交,请等待管理员审核");

View File

@ -2,21 +2,24 @@
// 统一请求路径前缀在libs/axios.js中修改 // 统一请求路径前缀在libs/axios.js中修改
import {getRequest, postRequest, putRequest, deleteRequest} from '@/libs/axios'; import {getRequest, postRequest, putRequest, deleteRequest} from '@/libs/axios';
//查询分销 //查询分销
export const getDistributionListData = (params) => { export const getDistributionListData = (params) => {
return getRequest('/distribution/distribution/getByPage', params) return getRequest('/distribution/distribution/getByPage', params)
} }
//审核分销 //审核分销
export const auditDistribution = (id, params) => { export const auditDistribution = (id, params) => {
return putRequest(`/distribution/distribution/audit/${id}`, params) return putRequest(`/distribution/distribution/audit/${id}`, params)
} }
// 清退分销 // 清退分销
export const retreatDistribution = (id, params) => { export const retreatDistribution = (id, params) => {
return putRequest(`/distribution/distribution/retreat/${id}`, params) return putRequest(`/distribution/distribution/retreat/${id}`, params)
} }
//修改分销员
export const editDistribution = (params) => {
return putRequest(`/distribution/distribution/${params.id}`, params)
}
// 恢复分销员
// 恢复分销商
export const resumeDistribution = (id, params) => { export const resumeDistribution = (id, params) => {
return putRequest(`/distribution/distribution/resume/${id}`, params) return putRequest(`/distribution/distribution/resume/${id}`, params)
} }

View File

@ -27,7 +27,8 @@
v-for="item in distributionStatusList" v-for="item in distributionStatusList"
:value="item.value" :value="item.value"
:key="item.value" :key="item.value"
>{{ item.label }}</Option >{{ item.label }}
</Option
> >
</Select> </Select>
</Form-item> </Form-item>
@ -36,7 +37,8 @@
type="primary" type="primary"
icon="ios-search" icon="ios-search"
class="search-btn" class="search-btn"
>搜索</Button >搜索
</Button
> >
</Form> </Form>
</Row> </Row>
@ -63,16 +65,37 @@
></Page> ></Page>
</Row> </Row>
</Card> </Card>
<Modal title="修改分销员" v-model="modalVisible" :mask-closable="false" :width="600">
<Form ref="distributionForm" :model="distributionForm" :label-width="150" :rules="distributionFormValidate">
<FormItem label="姓名" prop="name">
<Input v-model="distributionForm.name" clearable style="width: 100%"/>
</FormItem>
<FormItem label="身份证号" prop="idNumber">
<Input v-model="distributionForm.idNumber" clearable style="width: 100%"/>
</FormItem>
<FormItem label="结算银行开户行名称" prop="settlementBankAccountName">
<Input v-model="distributionForm.settlementBankAccountName" clearable style="width: 100%"/>
</FormItem>
<FormItem label="结算银行开户账号" prop="settlementBankAccountNum">
<Input v-model="distributionForm.settlementBankAccountNum" clearable style="width: 100%"/>
</FormItem>
<FormItem label="结算银行开户支行名称" prop="settlementBankBranchName">
<Input v-model="distributionForm.settlementBankBranchName" clearable style="width: 100%"/>
</FormItem>
</Form>
<div slot="footer">
<Button type="text" @click="modalVisible = false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
</div>
</Modal>
</div> </div>
</template> </template>
<script> <script>
import { import {editDistribution, getDistributionListData, resumeDistribution, retreatDistribution} from "@/api/distribution";
getDistributionListData, import {distributionStatusList} from "./dataJson.js";
resumeDistribution, import {regular} from "@/utils";
retreatDistribution
} from "@/api/distribution";
import { distributionStatusList } from "./dataJson.js";
export default { export default {
name: "distribution", name: "distribution",
components: {}, components: {},
@ -80,6 +103,38 @@ export default {
return { return {
distributionStatusList, // distributionStatusList, //
loading: true, // loading: true, //
modalVisible: false, //
distributionForm: {
name: "",
idNumber: "",
settlementBankAccountName: "",
settlementBankAccountNum: "",
settlementBankBranchName: ""
},
//
distributionFormValidate: {
name: [
regular.REQUIRED,
regular.VARCHAR20
],
idNumber: [
regular.REQUIRED,
regular.VARCHAR20
],
settlementBankAccountName: [
regular.REQUIRED,
regular.VARCHAR20
],
settlementBankAccountNum: [
regular.REQUIRED,
regular.VARCHAR20
],
settlementBankBranchName: [
regular.REQUIRED,
regular.VARCHAR20
],
},
submitLoading: false, //
searchForm: { searchForm: {
// //
pageNumber: 1, // pageNumber: 1, //
@ -92,29 +147,63 @@ export default {
minWidth: 120, minWidth: 120,
tooltip: true, tooltip: true,
}, },
{
title: "姓名",
key: "name",
minWidth: 100,
},
{
title: "身份证号",
key: "idNumber",
minWidth: 120,
},
{
title: "结算银行开户行名称",
key: "settlementBankAccountName",
minWidth: 120,
},
{
title: "结算银行开户账号",
key: "settlementBankAccountNum",
minWidth: 120,
},
{
title: "结算银行开户支行名称",
key: "settlementBankBranchName",
minWidth: 120,
},
{ {
title: "推广单数", title: "推广单数",
key: "distributionOrderCount", key: "distributionOrderCount",
minWidth: 120, minWidth: 120,
width: 150, width: 150,
}, },
{
title: "分销订单金额",
key: "distributionOrderPrice",
width: 150,
sortable: false,
render: (h, params) => {
return h("priceColorScheme", {props: {value: params.row.distributionOrderPrice, color: this.$mainColor}});
},
},
{ {
title: "分销金额", title: "分销金额",
key: "rebateTotal", key: "rebateTotal",
width: 150, width: 150,
sortable: false, sortable: false,
render: (h, params) => { render: (h, params) => {
return h("priceColorScheme", {props:{value:params.row.rebateTotal,color:this.$mainColor}} ); return h("priceColorScheme", {props: {value: params.row.rebateTotal, color: this.$mainColor}});
}, },
}, },
{ {
title: "可用金额", title: "待提现金额",
key: "canRebate", key: "canRebate",
width: 150, width: 150,
sortable: false, sortable: false,
render: (h, params) => { render: (h, params) => {
return h("priceColorScheme", {props:{value:params.row.canRebate,color:'green'}} ); return h("priceColorScheme", {props: {value: params.row.canRebate, color: 'green'}});
}, },
}, },
{ {
@ -123,7 +212,7 @@ export default {
width: 150, width: 150,
sortable: false, sortable: false,
render: (h, params) => { render: (h, params) => {
return h("priceColorScheme", {props:{value:params.row.commissionFrozen,color:'#347dda'}} ); return h("priceColorScheme", {props: {value: params.row.commissionFrozen, color: '#347dda'}});
}, },
}, },
{ {
@ -133,13 +222,13 @@ export default {
sortable: false, sortable: false,
render: (h, params) => { render: (h, params) => {
if (params.row.distributionStatus == "PASS") { if (params.row.distributionStatus == "PASS") {
return h("Tag", {props: {color: "green",},},"通过"); return h("Tag", {props: {color: "green",},}, "通过");
} else if (params.row.distributionStatus == "APPLY") { } else if (params.row.distributionStatus == "APPLY") {
return h("Tag", {props: {color: "geekblue",},},"待审核"); return h("Tag", {props: {color: "geekblue",},}, "待审核");
} else if (params.row.distributionStatus == "RETREAT") { } else if (params.row.distributionStatus == "RETREAT") {
return h("Tag", {props: {color: "volcano",},},"清退"); return h("Tag", {props: {color: "volcano",},}, "清退");
} else if (params.row.distributionStatus == "REFUSE") { } else if (params.row.distributionStatus == "REFUSE") {
return h("Tag", {props: {color: "red",},},"拒绝"); return h("Tag", {props: {color: "red",},}, "拒绝");
} }
}, },
}, },
@ -203,6 +292,31 @@ export default {
}, },
"恢复" "恢复"
), ),
h(
"Button",
{
props: {
type: "info",
size: "small",
},
style: {
marginRight: "5px",
},
on: {
click: () => {
this.edit(params.row);
},
},
},
"编辑"
), h(
"div",
{
style: {
display: "flex",
justifyContent: "center",
},
})
] ]
); );
}, },
@ -283,6 +397,36 @@ export default {
}, },
}); });
}, },
//
edit(v) {
this.$refs.distributionForm.resetFields();
// null""
for (let attr in v) {
if (v[attr] === null) {
v[attr] = "";
}
}
let str = JSON.stringify(v);
let data = JSON.parse(str);
this.distributionForm = data;
this.modalVisible = true;
},
//
handleSubmit() {
this.$refs.distributionForm.validate((valid) => {
if (valid) {
//
editDistribution(this.distributionForm).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.getDataList();
this.modalVisible = false;
}
});
}
});
},
}, },
mounted() { mounted() {
this.init(); this.init();

View File

@ -73,18 +73,38 @@ export default {
{ {
title: "会员名称", title: "会员名称",
key: "memberName", key: "memberName",
minWidth: 150, minWidth: 100,
tooltip: true, tooltip: true,
}, },
{ {
title: "会员姓名", title: "姓名",
key: "name", key: "name",
minWidth: 100,
},
{
title: "身份证号",
key: "idNumber",
minWidth: 120,
},
{
title: "结算银行开户行名称",
key: "settlementBankAccountName",
minWidth: 120,
},
{
title: "结算银行开户账号",
key: "settlementBankAccountNum",
minWidth: 120,
},
{
title: "结算银行开户支行名称",
key: "settlementBankBranchName",
minWidth: 120, minWidth: 120,
}, },
{ {
title: "提交时间", title: "提交时间",
key: "createTime", key: "createTime",
minWidth: 150, minWidth: 100,
}, },
{ {
title: "操作", title: "操作",

View File

@ -105,6 +105,31 @@ export default {
key: "createTime", key: "createTime",
minWidth: 130 minWidth: 130
}, },
{
title: "姓名",
key: "name",
minWidth: 100,
},
{
title: "身份证号",
key: "idNumber",
minWidth: 120,
},
{
title: "结算银行开户行名称",
key: "settlementBankAccountName",
minWidth: 120,
},
{
title: "结算银行开户账号",
key: "settlementBankAccountNum",
minWidth: 120,
},
{
title: "结算银行开户支行名称",
key: "settlementBankBranchName",
minWidth: 120,
},
{ {
title: "处理时间", title: "处理时间",
key: "updateTime", key: "updateTime",

View File

@ -209,10 +209,7 @@
filterStatus (status) { // filterStatus (status) { //
const arr = [ const arr = [
{status: 'WAIT_BILL', title: '待结算'}, {status: 'WAIT_BILL', title: '待结算'},
{status: 'NO_COMPLETED', title: '未完成'}, {status: 'COMPLETE', title: '完成'},
{status: 'WAIT_CASH', title: '待提现'},
{status: 'COMPLETE_CASH', title: '提现完成'},
{status: 'CANCEL', title: '订单取消'},
{status: 'REFUND', title: '退款'}, {status: 'REFUND', title: '退款'},
] ]
for (let i=0;i<arr.length;i++) { for (let i=0;i<arr.length;i++) {

View File

@ -13,9 +13,6 @@
<FormItem label="分销关系绑定天数" prop="distributionDay"> <FormItem label="分销关系绑定天数" prop="distributionDay">
<InputNumber :min="1" :max="365" style="width:100px;" v-model="form.distributionDay"></InputNumber> <InputNumber :min="1" :max="365" style="width:100px;" v-model="form.distributionDay"></InputNumber>
</FormItem> </FormItem>
<FormItem label="分销结算天数" prop="cashDay">
<InputNumber :min="0" :max="365" style="width:100px;" v-model="form.cashDay"></InputNumber>
</FormItem>
<FormItem> <FormItem>
<Button type="primary" @click="submit">保存</Button> <Button type="primary" @click="submit">保存</Button>
</FormItem> </FormItem>
@ -34,7 +31,6 @@ export default {
// //
isOpen: true, isOpen: true,
distributionDay: 0, // distributionDay: 0, //
cashDay: 0, //
}, },
formRule: { formRule: {
isOpen: [ isOpen: [
@ -43,9 +39,6 @@ export default {
distributionDay: [ distributionDay: [
regular.REQUIRED regular.REQUIRED
], ],
cashDay: [
regular.REQUIRED
],
} }
}; };
}, },

View File

@ -354,7 +354,7 @@ export default {
return h("div", this.$options.filters.unitPrice(params.row.billPrice, "¥") return h("div", this.$options.filters.unitPrice(params.row.billPrice, "¥")
); );
} else { } else {
return h("priceColorScheme", {props: {value: (0 - params.row.finalPrice), color: this.$mainColor}}); return h("priceColorScheme", {props: {value: (0 - params.row.billPrice), color: this.$mainColor}});
} }
}, },
}, },
@ -383,10 +383,10 @@ export default {
key: "billPrice", key: "billPrice",
render: (h, params) => { render: (h, params) => {
if (params.row.flowType == "PAY") { if (params.row.flowType == "PAY") {
return h("div", this.$options.filters.unitPrice(params.row.siteCouponCommission, "¥") return h("div", this.$options.filters.unitPrice(params.row.finalPrice, "¥")
); );
} else { } else {
return h("priceColorScheme", {props: {value: (0 - params.row.siteCouponCommission)}}); return h("priceColorScheme", {props: {value: (0 - params.row.finalPrice)}});
} }
}, },
}, },
@ -398,7 +398,7 @@ export default {
return h("div", this.$options.filters.unitPrice(params.row.finalPrice, "¥") return h("div", this.$options.filters.unitPrice(params.row.finalPrice, "¥")
); );
} else { } else {
return h("priceColorScheme", {props: {value: (0 - params.row.billPrice)}}); return h("priceColorScheme", {props: {value: (0 - params.row.finalPrice)}});
} }
}, },
}, },
@ -415,10 +415,10 @@ export default {
if (params.row.commissionPrice == 0) { if (params.row.commissionPrice == 0) {
return h("div", "-"); return h("div", "-");
} else if (params.row.flowType == "PAY") { } else if (params.row.flowType == "PAY") {
return h("div", this.$options.filters.unitPrice(params.row.commissionPrice, "¥")
);
} else {
return h("priceColorScheme", {props: {value: (0 - params.row.commissionPrice)}}); return h("priceColorScheme", {props: {value: (0 - params.row.commissionPrice)}});
} else {
return h("div", this.$options.filters.unitPrice(params.row.commissionPrice, "¥"));
} }
}, },
}, },
@ -429,10 +429,9 @@ export default {
if (params.row.distributionRebate == 0) { if (params.row.distributionRebate == 0) {
return h("div", "-"); return h("div", "-");
} else if (params.row.flowType == "PAY") { } else if (params.row.flowType == "PAY") {
return h("div", this.$options.filters.unitPrice(params.row.distributionRebate, "¥")
);
} else {
return h("priceColorScheme", {props: {value: (0 - params.row.distributionRebate)}}); return h("priceColorScheme", {props: {value: (0 - params.row.distributionRebate)}});
} else {
return h("div", this.$options.filters.unitPrice(params.row.distributionRebate, "¥"));
} }
}, },
}, },
@ -441,10 +440,9 @@ export default {
key: "billPrice", key: "billPrice",
render: (h, params) => { render: (h, params) => {
if (params.row.flowType == "PAY") { if (params.row.flowType == "PAY") {
return h("div", this.$options.filters.unitPrice((params.row.commissionPrice + params.row.distributionRebate), "¥")
);
} else {
return h("priceColorScheme", {props: {value: (0 - (params.row.commissionPrice + params.row.distributionRebate))}}); return h("priceColorScheme", {props: {value: (0 - (params.row.commissionPrice + params.row.distributionRebate))}});
} else {
return h("div", this.$options.filters.unitPrice((params.row.commissionPrice + params.row.distributionRebate), "¥"));
} }
}, },
}] }]