Commit d87c07ef authored by 邓春圆's avatar 邓春圆

佣金付款单模块

parent 9cf4fdbf
......@@ -273,6 +273,14 @@ export function getPayableInfoByIds(query) {
params: query
})
}
//获取佣金应付款详情
export function getCommissionPayable(params){
return request({
url:'/ecw/commission-payable/get',
method:"get",
params
})
}
// 创建付款单
export function createPayment(data) {
......@@ -282,6 +290,14 @@ export function createPayment(data) {
data: data
})
}
// 创建佣金订单
export function commissionPayment(data){
return request({
url:'/ecw/commission-payment/create',
method:'post',
data
})
}
// 获取付款单列表
export function getPaymentList(query) {
......@@ -318,6 +334,14 @@ export function updatePayment(data) {
data: data
})
}
// 更新佣金付款单
export function commissionPaymentUpdate(data){
return request({
url:'/ecw/commission-payment/update',
method:'put',
data
})
}
// 删除付款单
export function deletePayment(id) {
......@@ -360,6 +384,24 @@ export function paymentVerifyCancel(id) {
})
}
//获取佣金应付款
export function payablePage(params){
return request({
url:'/ecw/commission-payable/page',
method:'get',
params
})
}
//获取佣金付款单
export function commissionPaymentPage(params){
return request({
url:'/ecw/commission-payment/page',
method:'get',
params
})
}
// 根据流程主键获取付款单流程审核信息
export function getPaymentApprove(id) {
return request({
......@@ -465,4 +507,94 @@ export function cancelFinanceReceiptItemWriteOffNo(query) {
data: query
})
}
// 取消审核
export function cancelFinancePaymentApproval(data){
return request({
url:'/ecw/payment/cancelFinancePaymentApproval',
method:'post',
data
})
}
// 取消付款单反审核
export function cancelFinancePaymentApprovalNo(data){
return request({
url:'/ecw/payment/cancelFinancePaymentApprovalNo',
method:'post',
data
})
}
// 取消付款单核销
export function cancelFinancePaymentWriteOff(data){
return request({
url:'/ecw/payment/cancelFinancePaymentWriteOff',
method:'post',
data
})
}
export function cancelFinancePaymentWriteOffNo(data){
return request({
url:'/ecw/payment/cancelFinancePaymentWriteOffNo',
method:'post',
data
})
}
//删除佣金付款单
export function commissionPaymentDelete(params){
return request({
url:'/ecw/commission-payment/delete',
method:'delete',
params
})
}
//反审核佣金付款单
export function commissionPaymentVerifyCancel(data){
return request({
url:'/ecw/commission-payment/verifyCancel',
method:'post',
data
})
}
// 佣金付款单核销
export function commissionPaymentVerification(data){
return request({
url:'/ecw/commission-payment/verification',
method:'post',
data
})
}
//付款单反核销申请
export function commissionPaymentVerificationCancel(data){
return request({
url:'/ecw/commission-payment/verificationCancel',
method:'post',
data
})
}
// 取消付款单反审核
export function commissionPaymentCancelFinancePaymentApprovalNo(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentApprovalNo',
method:'post',
data
})
}
// 取消付款单核销
export function commissionPaymentCancelFinancePaymentWriteOff(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentWriteOff',
method:'post',
data
})
}
// 取消付款单反核销
export function commissionPaymentCancelFinancePaymentWriteOffNo(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentWriteOffNo',
method:'post',
data,
})
}
<template>
<div style="padding: 20px">
<el-card class="box-card">
<div slot="header" class="clearfix" style="font-size: 20px;">
{{$t('佣金付款单')}}
</div>
<el-form label-width="80px" label-position="left">
<el-row :gutter="30">
<el-col :span="7">
<el-form-item :label="$t('付款单号')">
<el-input></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('客户')">
<el-input v-model="queryParams.searchKey"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('状态')">
<dict-selector :type="DICT_TYPE.ECW_PAYMENT_STATE" v-model="queryParams.state" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item :label="$t('业务员')">
<el-select v-model="queryParams.salesmanName" :placeholder="$t('请选择业务员')">
<el-option
v-for="item in creatorData"
:key="item.id"
:label="item.nickname"
:value="item.nickname"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="7">
<el-form-item :label="$t('创建时间')">
<el-date-picker
v-model="selectDate"
type="datetimerange"
range-separator="至"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('发票状态')">
<el-select
v-model="queryParams.invoiceStatus"
:placeholder="$t('请选择是否开票')">
<el-option :label="$t('未开票')" value="0" />
<el-option :label="$t('已开票')" value="1" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('订单编号')">
<el-input></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-button type="primary" @click="getList">{{$t('查找')}}</el-button>
<el-button type="primary">{{$t('新增请款单')}}</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-table :data="list" style="margin-top: 30px">
<el-table-column type="index" :label="$t('序号')"></el-table-column>
<el-table-column prop="customerId" :label="$t('付款单号')"></el-table-column>
<el-table-column prop="customerName" :label="$t('客户')"></el-table-column>
<el-table-column :label="$t('创建时间')">
<template v-slot="{row}">
{{parseTime(row.createTime)}}
</template>
</el-table-column>
<el-table-column :label="$t('最后付款时间')">
<template v-slot="{row}">
{{parseTime(row.latestPayAt)}}
</template>
</el-table-column>
<el-table-column prop="invoiceStatus" :label="$t('发票')">
<template v-slot="{row}">
{{row.invoiceStatus ? $t('已开票') : $t('未开票')}}
</template>
</el-table-column>
<el-table-column :label="$t('状态')" prop="state" >
<template slot-scope="scope">
<dict-tag
:type="DICT_TYPE.ECW_PAYMENT_STATE"
:value="scope.row.state"
/>
</template>
</el-table-column>
<el-table-column :label="$t('操作')">
<template v-slot="{row}">
<el-button type="text" v-if="[0,2].includes(row.state)" >{{$t('编辑')}}</el-button>
<el-button type="text" @click="deleteFn(row)" v-if="[0,2].includes(row.state)" > {{$t('删除')}}</el-button>
<el-button type="text" v-if="[3,4].includes(row.state)" >{{$t('审核详情')}}</el-button>
<el-button type="text" v-if="[1,3,5].includes(row.state)" @click="bridgeFn('取消审核',7, row, '取消审核' )" >{{$t('取消审核')}}</el-button>
<el-button type="text" v-if="[5,6].includes(row.state)" @click="bridgeFn('付款单反审核', 1, row, '提交反审核',)" >{{$t('反审核')}}</el-button>
<el-button type="text" v-if="[5].includes(row.state)" @click="bridgeFn('付款单核销申请', 2, row, '提交核销')" >{{$t('核销')}}</el-button>
<el-button type="text" v-if="[5,6].includes(row.state)" >{{$t('打印')}}</el-button>
<el-button type="text" v-if="[8].includes(row.state)" @click="bridgeFn('付款单反核销申请', 3, row, '提交方核销')" >{{$t('反核销')}}</el-button>
<el-button type="text" v-if="[4,7].includes(row.state)" @click="bridgeFn('取消反核销',4, row, '提交取消反核销' )" >{{$t('取消反核销')}}</el-button>
<el-button type="text" @click="bridgeFn('取消付款单核销',5, row, '取消付款单核销' )" > {{$t('取消核销')}} </el-button>
<el-button type="text" @click="bridgeFn('取消付款反单核销',6, row, '取消付款反单核销' )" > {{$t('取消反核销')}} </el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
<!--对话框 审核 -->
<el-dialog width="30%" :title="paymentTitle" :visible.sync="paymentShow">
<div class="cancel_content">
<span>{{ $t('申请理由') }}</span>
<el-input type="textarea" :rows="6" v-model="paymentValue" :placeholder="$t('请输入取消理由')"></el-input>
</div>
<span slot="footer" class="dialog-footers">
<el-button type="primary" @click="cancelWriteOffClick()">{{ $t(butTitle) }}</el-button>
<el-button @click="paymentShow = false">{{ $t('取消') }}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {listSimpleUsers} from "@/api/system/user";
import {
commissionPaymentCancelFinancePaymentApprovalNo,
commissionPaymentCancelFinancePaymentWriteOff,
commissionPaymentCancelFinancePaymentWriteOffNo,
commissionPaymentDelete,
commissionPaymentPage,
commissionPaymentVerification,
commissionPaymentVerificationCancel,
commissionPaymentVerifyCancel
} from "@/api/ecw/financial";
import {parseTime} from "../../../utils/ruoyi";
export default {
name: "commission-Payment",
created() {
// 业务员
listSimpleUsers().then((res) => (this.creatorData = res.data));
this.getList();
},
data(){
return {
queryParams:{
invoiceStatus:null,
state:null,
salesmanName:null,
searchKey:null,
page:1,
rows:10,
},
selectDate:[],
creatorData:[],
list:[],
total:0,
paymentRow:{},
paymentIndex:0,
paymentTitle:'',
butTitle:'',
paymentShow:false,
paymentValue:''
}
},
methods:{
parseTime,
getList(){
commissionPaymentPage(this.queryParams).then(r => {
this.list = r.data.list
this.total = r.data.total
})
},
// 删除
deleteFn(row){
this.$confirm(this.$t('是否删除此条佣金付款单'), this.$t('提示'), {
confirmButtonText: this.$t('确定'),
cancelButtonText: this.$t('取消'),
type: 'warning'
}).then(() => {
commissionPaymentDelete({id:row.id}).then(r => {
this.$message({
type: 'success',
message:this.$t('删除成功!')
});
this.getList();
})
}).catch(() => {
this.$message({
type: 'info',
message: this.$t('已取消删除')
});
});
},
bridgeFn(title, index ,row, butTitle = '提交'){
this.paymentTitle = title;
this.butTitle = butTitle;
this.paymentIndex = index;
this.paymentRow = row;
this.paymentShow = true;
},
//提交
cancelWriteOffClick(){
if(!this.paymentValue) return this.$message.warning(this.$t('请输入理由!'))
let resolve = ()=>{
this.getList();
this.paymentShow = false;
this.paymentValue = ''
this.$message.success(this.$t('操作成功!'));
}
let reject = ()=>{
this.paymentShow = false;
}
let p = {
"paymentId": this.paymentRow.id,
"paymentNo": this.paymentRow.paymentNo,
"remark":this.paymentValue,
}
switch (this.paymentIndex){
case 1:
commissionPaymentVerifyCancel(p).then(resolve, reject)
break;
case 2:
commissionPaymentVerification(p).then(resolve, reject)
break;
case 3:
commissionPaymentVerificationCancel(p).then(resolve, reject)
break;
case 4:
commissionPaymentCancelFinancePaymentApprovalNo(p).then(resolve, reject)
break;
case 5:
commissionPaymentCancelFinancePaymentWriteOff(p).then(resolve, reject)
break
case 6:
commissionPaymentCancelFinancePaymentWriteOffNo(p).then(resolve, reject)
break
case 7:
}
}
}
}
</script>
<style scoped>
</style>
<template>
<div style="padding: 20px">
<el-card class="box-card">
<div slot="header" class="clearfix" style="font-size: 20px;">
{{$t('应付款佣金')}}
</div>
<el-form label-width="80px" inline>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="$t('订单号')">
<el-input v-model="queryParams.orderNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('客户')">
<el-input v-model="queryParams.customerName"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('始发仓')">
<el-select
v-model="queryParams.startWarehouseId"
:placeholder="$t('请选择始发仓')"
clearable
>
<el-option
v-for="item in exportWarehouseList"
:label="$l(item, 'title')"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('目的仓')">
<el-select
v-model="queryParams.destWarehouseId"
:placeholder="$t('请选择目的仓')"
clearable
>
<el-option
v-for="item in importWarehouseList"
:label="$l(item, 'title')"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="$t('运输方式')">
<dict-selector
:type="DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model="queryParams.transportId"
formatter="number"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('佣金类型')">
<dict-selector
:type="DICT_TYPE.COMMISSION_TYPE"
v-model="queryParams.feeType"
formatter="number"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('状态')">
<el-select clearable v-model="queryParams.state">
<el-option v-for="(item) in STATE" :label="$t(item.title)" :value="item.value" :key="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" @click="getList">{{$t('查找')}}</el-button>
<el-button type="primary" @click="$router.push({path:'/financial/commission-requestFunds',query:{payableId:0}})" >{{$t('新增请款单')}}</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-table :data="list" style="margin-top: 30px">
<el-table-column :label="$t('订单编号')" prop="orderNo" ></el-table-column>
<el-table-column :label="$t('客户名称')" prop="customerName" ></el-table-column>
<el-table-column :label="$t('订单编号')" prop="payableNo" ></el-table-column>
<el-table-column :label="$t('佣金类型')">
<template v-slot="{row}">
<dict-tag
:type="DICT_TYPE.COMMISSION_TYPE"
:value="row.feeType"
></dict-tag>
</template>
</el-table-column>
<el-table-column :label="$t('金额')" prop="totalAmount">
</el-table-column>
<el-table-column :label="$t('应付生成时间')"></el-table-column>
<el-table-column :label="$t('状态')">
<template v-slot="{row}">
{{$t(STATE.find(r => r.value === row.state).title)}}
</template>
</el-table-column>
<el-table-column :label="$t('付款单号')" prop="paymentNo"></el-table-column>
<el-table-column :label="$t('备注')" prop="remark" ></el-table-column>
<el-table-column :label="$t('操作')">
<template v-slot="{row}">
<el-button type="text" @click="$router.push({path:'/financial/commission-requestFunds',query:{payableId:row.id}})" >{{$t('请款')}}</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
</div>
</template>
<script>
import {getWarehouseList} from "@/api/ecw/warehouse";
import item from "@/layout/components/Sidebar/Item.vue";
import {payablePage} from "@/api/ecw/financial";
import Template from "@/views/cms/template/index.vue";
export default {
// 应付款佣金
name: "commission-payable",
components: {Template},
created() {
getWarehouseList().then(res => this.warehouseList = res.data)
this.getList()
},
data(){
return {
STATE:[
{
value:0,
title:'未付款',
},
{
value:1,
title:'付款中',
},
{
value:2,
title:'已付款',
}
],
warehouseList:[],
queryParams:{
rows:10,
page:1,
orderNo:'',
customerName:'',
startWarehouseId:'',
destWarehouseId:'',
feeType:'',
state:''
},
list:[],
total:0
}
},
computed:{
exportWarehouseList(){
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3)
},
importWarehouseList(){
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3)
},
},
methods:{
getList(){
payablePage(this.queryParams).then(r =>{
this.list = r.data.list
this.total = r.data.total
})
}
},
}
</script>
<style scoped>
</style>
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment