|
@@ -1,22 +1,32 @@
|
|
|
<script setup>
|
|
|
import { Search } from '@element-plus/icons-vue'
|
|
|
import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
+import {getInvoicePaymentList,updatePayType,setServiceAmount} from '@/api/financialStatistics'
|
|
|
+import {getSellerGroupList} from '@/api/crm'
|
|
|
+import {getServiceList} from '@/api/financialMana'
|
|
|
+import {downloadByFlow} from '@/utils/common-methods'
|
|
|
|
|
|
- const groupList=[{id:1,group:'家人组'},{id:2,group:'联合组'},{id:3,group:'摆烂组'}]
|
|
|
- const serviceList=[{id:1,service:'大套餐'},{id:2,service:'小套餐'},{id:3,service:'策略'}]
|
|
|
+
|
|
|
const dateTypeList=[{id:1,type:'开票时间'},{id:2,type:'到款时间'}]
|
|
|
|
|
|
+ const groupList=ref([])
|
|
|
+ const serviceList=ref([])
|
|
|
+
|
|
|
const searchParams=reactive({
|
|
|
current:1,
|
|
|
page_size:10,
|
|
|
- keyWord:'',
|
|
|
- group:'',
|
|
|
- service:'',
|
|
|
+ keyword:'',
|
|
|
+ sell_group_id:'',
|
|
|
+ service_type:'',
|
|
|
start_date:'',
|
|
|
end_date:'',
|
|
|
- dateType:1,
|
|
|
- invoice:'',
|
|
|
- placement:''
|
|
|
+ // 1-开票时间 2-到款时间
|
|
|
+ time_type:1,
|
|
|
+ // 1-已开票
|
|
|
+ has_invoice:0,
|
|
|
+ // 1-已到款
|
|
|
+ has_payment:0,
|
|
|
+ is_export:0
|
|
|
})
|
|
|
const searchDate=ref(null)
|
|
|
watch(searchDate,(newVal)=>{
|
|
@@ -33,7 +43,11 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
const commodityPData=reactive({
|
|
|
tableData:[],
|
|
|
total:25,
|
|
|
- rowMergeArray:[]
|
|
|
+ rowMergeArray:[],
|
|
|
+ invoiceAmountTotal:0,
|
|
|
+ invoiceAmountList:[],
|
|
|
+ placementAmountTotal:0,
|
|
|
+ placementAmountList:[],
|
|
|
})
|
|
|
// 开票金额是否收起
|
|
|
let invoiceIsFold=ref(true)
|
|
@@ -42,8 +56,47 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
let placementIsFold=ref(true)
|
|
|
|
|
|
// method
|
|
|
+
|
|
|
+ //获取销售组别
|
|
|
+ const getSellerGroupListFun=()=>{
|
|
|
+ getSellerGroupList().then(res=>{
|
|
|
+ groupList.value=res.data || []
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 获取套餐列表
|
|
|
+ const getServiceListFun=()=>{
|
|
|
+ getServiceList().then(res=>{
|
|
|
+ serviceList.value=res.data || []
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
const commodityPList=()=>{
|
|
|
- console.log(searchParams);
|
|
|
+ // console.log(searchParams);
|
|
|
+ getInvoicePaymentList(searchParams).then(res=>{
|
|
|
+ // console.log(res);
|
|
|
+ commodityPData.tableData=[]
|
|
|
+ commodityPData.rowMergeArray=[]
|
|
|
+ let tempData = res.data.list.data_list || []
|
|
|
+ commodityPData.total = res.data.page.total
|
|
|
+ commodityPData.invoiceAmountTotal=res.data.list.invoice_total
|
|
|
+ commodityPData.invoiceAmountList = res.data.list.invoice_currency_total || []
|
|
|
+ commodityPData.placementAmountTotal=res.data.list.payment_total
|
|
|
+ commodityPData.placementAmountList = res.data.list.payment_currency_total || []
|
|
|
+ tempData.map((item,index) =>{
|
|
|
+ commodityPData.rowMergeArray.push(item.invoice_payment_list.length)
|
|
|
+ item.invoice_payment_list.map((it,ind) =>{
|
|
|
+ if(ind-1>=0){
|
|
|
+ commodityPData.rowMergeArray.push(0)
|
|
|
+ }
|
|
|
+ commodityPData.tableData.push({
|
|
|
+ serialNumber:searchParams.page_size*(searchParams.current-1)+index+1,
|
|
|
+ ...item,date:item.start_date+'至'+item.end_date,...it
|
|
|
+ })
|
|
|
+ })
|
|
|
+ })
|
|
|
+ // console.log(commodityPData.tableData);
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const searchCommodityP=()=>{
|
|
@@ -52,8 +105,8 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
}
|
|
|
|
|
|
const dateTypeCommand=(id)=>{
|
|
|
- if(id == searchParams.dateType) return
|
|
|
- searchParams.dateType=id
|
|
|
+ if(id == searchParams.time_type) return
|
|
|
+ searchParams.time_type=id
|
|
|
searchCommodityP()
|
|
|
// console.log(id);
|
|
|
}
|
|
@@ -67,33 +120,18 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
searchParams.current = pageNo
|
|
|
commodityPList()
|
|
|
}
|
|
|
- // 时间类型改变
|
|
|
- const dateTypeChange=()=>{
|
|
|
- if(!searchDate.value) return
|
|
|
- searchCommodityP()
|
|
|
- }
|
|
|
|
|
|
const dataExport=()=>{
|
|
|
- console.log('导出');
|
|
|
- }
|
|
|
-
|
|
|
- const getRowMergeArray=()=>{
|
|
|
- commodityPData.rowMergeArray=[]
|
|
|
- let flag=0
|
|
|
- commodityPData.tableData.map((item,index) =>{
|
|
|
- if(index==0){
|
|
|
- commodityPData.rowMergeArray.push(1)
|
|
|
- }else{
|
|
|
- if(item.companyName === commodityPData.tableData[index - 1].companyName){
|
|
|
- commodityPData.rowMergeArray[flag] ++; //项目名称相同,合并到同一个数组中
|
|
|
- commodityPData.rowMergeArray.push(0);
|
|
|
- }else {
|
|
|
- commodityPData.rowMergeArray.push(1);
|
|
|
- flag = index;
|
|
|
- }
|
|
|
- }
|
|
|
+ getInvoicePaymentList({...searchParams,is_export:1}).then(res=>{
|
|
|
+ downloadByFlow(res,'xlsx',`商品到款统计列表`)
|
|
|
})
|
|
|
}
|
|
|
+ // 是否已开票或已到款 改变
|
|
|
+ const haveIAndPChange=(value,prop)=>{
|
|
|
+ searchParams[prop]=value?1:0
|
|
|
+ searchCommodityP()
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// 单元格合并
|
|
|
const cellMerge=({ row,column,rowIndex,columnIndex})=>{
|
|
@@ -126,29 +164,38 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
|
|
|
// -----------------------------------------------------弹窗
|
|
|
// ---------------------------------编辑付款方式
|
|
|
- const payTypeArray=[{id:1,type:'年付'},{id:2,type:'半年付'},{id:3,type:'季付'},{id:4,type:'次付'}]
|
|
|
+ const payTypeArray=[{id:0,type:'无'},{id:1,type:'年付'},{id:2,type:'半年付'},{id:3,type:'季付'},{id:4,type:'次付'},{id:5,type:'异常'}]
|
|
|
+ // 可以选择的付款方式
|
|
|
+ const selectablePayTypeArray=[{id:1,type:'年付'},{id:2,type:'半年付'},{id:3,type:'季付'},{id:4,type:'次付'}]
|
|
|
+
|
|
|
const editPayTypeRef=ref(null)
|
|
|
const editPayTypeDia=reactive({
|
|
|
diaShow:false,
|
|
|
form:{
|
|
|
- payType:''
|
|
|
+ contract_payment_id:'',
|
|
|
+ pay_type:'',
|
|
|
+ index:0
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- const editPayType=(row)=>{
|
|
|
- editPayTypeDia.diaShow=true
|
|
|
- editPayTypeDia.form.payType=''
|
|
|
+ const editPayType=(row,index)=>{
|
|
|
+ editPayTypeDia.form.index=index
|
|
|
+ editPayTypeDia.form.pay_type=''
|
|
|
+ editPayTypeDia.form.contract_payment_id=row.payment_id
|
|
|
setTimeout(()=>{
|
|
|
editPayTypeRef.value && editPayTypeRef.value.clearValidate()
|
|
|
},0)
|
|
|
+ editPayTypeDia.diaShow=true
|
|
|
}
|
|
|
// 提交
|
|
|
const editPayTypeSubmit=()=>{
|
|
|
- console.log(editPayTypeDia.form);
|
|
|
editPayTypeRef.value.validate((valid)=>{
|
|
|
if(valid){
|
|
|
- ElMessage.success('编辑成功')
|
|
|
- editPayTypeDia.diaShow=false
|
|
|
+ updatePayType(editPayTypeDia.form).then(res=>{
|
|
|
+ ElMessage.success('编辑成功')
|
|
|
+ commodityPData.tableData[editPayTypeDia.form.index].pay_type=editPayTypeDia.form.pay_type
|
|
|
+ editPayTypeDia.diaShow=false
|
|
|
+ })
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -156,23 +203,23 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
// --------------------------------设置套餐信息
|
|
|
const setServiceInfoDia=reactive({
|
|
|
diaShow:false,
|
|
|
- dataFormList:[
|
|
|
- {serviceId:1,serviceTitle:'大套餐',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'小套餐',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'海外报告',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'策略报告',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'财富管理',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'会展',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'赞助',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'调研门票',amount:0},
|
|
|
- {serviceId:1,serviceTitle:'其他',amount:0}
|
|
|
- ]
|
|
|
+ dataForm:{
|
|
|
+ contract_register_id:'',
|
|
|
+ contract_payment_id:'',
|
|
|
+ list:[]
|
|
|
+ },
|
|
|
+ placementAmount:0
|
|
|
})
|
|
|
|
|
|
+ let rowItem={}
|
|
|
|
|
|
const setServiceInfo=(row)=>{
|
|
|
+ rowItem=row
|
|
|
+ setServiceInfoDia.dataForm.contract_register_id=row.contract_register_id
|
|
|
+ setServiceInfoDia.dataForm.contract_payment_id=row.payment_id
|
|
|
+ setServiceInfoDia.dataForm.list=row.service_amount_list?JSON.parse(JSON.stringify(row.service_amount_list)):[]
|
|
|
+ setServiceInfoDia.placementAmount=row.payment_amount
|
|
|
setServiceInfoDia.diaShow=true
|
|
|
- // setServiceInfoDia.form.payType=''
|
|
|
}
|
|
|
|
|
|
const serviceAmountChange=(item)=>{
|
|
@@ -189,14 +236,20 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
}
|
|
|
|
|
|
const setServiceInfoSubmit=()=>{
|
|
|
- console.log(setServiceInfoDia.dataFormList);
|
|
|
+ console.log(setServiceInfoDia.dataForm);
|
|
|
let totalAmout=0
|
|
|
- setServiceInfoDia.dataFormList.map(item =>{
|
|
|
+ setServiceInfoDia.dataForm.list.map(item =>{
|
|
|
totalAmout= Math.round(item.amount*100 + totalAmout*100)/100
|
|
|
})
|
|
|
- // console.log(totalAmout,'totalAmout');
|
|
|
- ElMessage.success('设置套餐信息成功')
|
|
|
- setServiceInfoDia.diaShow=false
|
|
|
+ if(totalAmout>setServiceInfoDia.placementAmount){
|
|
|
+ ElMessage.warning('套餐总金额大于到款金额,请检查')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ setServiceAmount(setServiceInfoDia.dataForm).then(res=>{
|
|
|
+ rowItem.service_amount_list=setServiceInfoDia.dataForm.list
|
|
|
+ ElMessage.success('设置套餐信息成功')
|
|
|
+ setServiceInfoDia.diaShow=false
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
// --------------------------------设置套餐信息
|
|
@@ -204,113 +257,30 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
|
|
|
|
|
|
// created
|
|
|
+ getSellerGroupListFun()
|
|
|
+ getServiceListFun()
|
|
|
commodityPList()
|
|
|
- // getRowMergeArray()
|
|
|
- const data=[{id:1,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'',
|
|
|
- placementAmount:'0',payType:'异常',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:2,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:3,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:4,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:5,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:6,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:7,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'',
|
|
|
- placementAmount:'0',payType:'异常',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:8,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:9,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:10,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]},
|
|
|
- {id:11,companyName:'哈哈',isNew:'是',date:'2022-01-01至2022-12-31',recordList:[
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'},
|
|
|
- {invoiceDate:'12月29日',invoiceAmount:'10000.00',placementDate:'12月30日',
|
|
|
- placementAmount:'3000.00',payType:'季付',seller:'张三',group:'销售组1',serviceInfo:'大套餐、小套餐、海外报告'}
|
|
|
- ]}]
|
|
|
|
|
|
- data.map((item,index) =>{
|
|
|
- commodityPData.rowMergeArray.push(item.recordList.length)
|
|
|
- item.recordList.map((it,ind) =>{
|
|
|
- if(ind-1>=0){
|
|
|
- commodityPData.rowMergeArray.push(0)
|
|
|
- }
|
|
|
- commodityPData.tableData.push({
|
|
|
- serialNumber:searchParams.page_size*(searchParams.current-1)+index+1,
|
|
|
- id:item.id,companyName:item.companyName,isNew:item.isNew,date:item.date,
|
|
|
- invoiceDate:it.invoiceDate,invoiceAmount:it.invoiceAmount,placementDate:it.placementDate,
|
|
|
- placementAmount:it.placementAmount,payType:it.payType,seller:it.seller,
|
|
|
- group:it.group,serviceInfo:it.serviceInfo
|
|
|
- })
|
|
|
- })
|
|
|
- })
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<div id="commodity-payment-container" class="commodity-payment-container">
|
|
|
<div class="search-zone">
|
|
|
- <el-input v-model="searchParams.keyWord" placeholder="请输入客户名称/销售"
|
|
|
+ <el-input v-model="searchParams.keyword" placeholder="请输入客户名称/销售" clearable
|
|
|
@input="searchCommodityP" :prefix-icon="Search" style="width: 286px;margin: 0 30px 10px 0;" ></el-input>
|
|
|
- <el-select v-model="searchParams.group" placeholder="请选择销售组别" clearable style="width: 240px;margin: 0 30px 10px 0;"
|
|
|
+ <el-select v-model="searchParams.sell_group_id" placeholder="请选择销售组别" clearable style="width: 240px;margin: 0 30px 10px 0;"
|
|
|
@change="searchCommodityP">
|
|
|
- <el-option :label="item.group" :value="item.id" v-for="item in groupList"></el-option>
|
|
|
+ <el-option :label="item.group_name" :value="item.group_id" v-for="item in groupList"></el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-model="searchParams.service" placeholder="请选择套餐信息" clearable style="width: 240px;margin: 0 30px 10px 0;"
|
|
|
+ <el-select v-model="searchParams.service_type" placeholder="请选择套餐信息" clearable style="width: 240px;margin: 0 30px 10px 0;"
|
|
|
@change="searchCommodityP">
|
|
|
- <el-option :label="item.service" :value="item.id" v-for="item in serviceList"></el-option>
|
|
|
+ <el-option :label="item.title" :value="item.service_template_id" v-for="item in serviceList"></el-option>
|
|
|
</el-select>
|
|
|
<el-date-picker v-model="searchDate" type="daterange" style="max-width: 240px;margin: 0 20px 10px 0;"
|
|
|
value-format="YYYY-MM-DD" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
|
|
- <!-- <el-select v-model="searchParams.dateType" placeholder="请选择日期类型" @change="dateTypeChange">
|
|
|
- <el-option :label="item.type" :value="item.id" v-for="item in dateTypeList"></el-option>
|
|
|
- </el-select> -->
|
|
|
<el-dropdown size="large" trigger="click" style="margin:0 60px 10px 0;" @command="dateTypeCommand">
|
|
|
<dropdownText>
|
|
|
- {{dateTypeList.find(it => it.id==searchParams.dateType).type}}
|
|
|
+ {{dateTypeList.find(it => it.id==searchParams.time_type).type}}
|
|
|
</dropdownText>
|
|
|
<template #dropdown>
|
|
|
<el-dropdown-menu>
|
|
@@ -319,8 +289,8 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
</template>
|
|
|
</el-dropdown>
|
|
|
<div class="search-checkbox" >
|
|
|
- <el-checkbox label="已开票" v-model="searchParams.invoice" @change="searchCommodityP"></el-checkbox>
|
|
|
- <el-checkbox el-checkbox label="已到款" v-model="searchParams.placement" @change="searchCommodityP"></el-checkbox>
|
|
|
+ <el-checkbox label="已开票" @change="(value)=>haveIAndPChange(value,'has_invoice')"></el-checkbox>
|
|
|
+ <el-checkbox el-checkbox label="已到款" @change="(value)=>haveIAndPChange(value,'has_payment')"></el-checkbox>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="operation-zone">
|
|
@@ -328,7 +298,7 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
<div class="amount-show-item">
|
|
|
<div class="amount-item-head" @click="foldOrUnfold(0)">
|
|
|
<div class="amount-item-head-title">
|
|
|
- 已开票合计金额(换算后):80000.00(元)
|
|
|
+ 已开票合计金额(换算后):{{ commodityPData.invoiceAmountTotal }}(元)
|
|
|
</div>
|
|
|
<span class="amount-item-head-icon">
|
|
|
{{ invoiceIsFold?'展开':'收起' }}
|
|
@@ -336,25 +306,11 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
</div>
|
|
|
<div class="amount-item-body-package" :style="{height:invoiceIsFold?'0':'66px'}">
|
|
|
<div class="amount-item-body">
|
|
|
- <div class="amount-item-body-box">
|
|
|
- <svg-Icon name="svgIcon-country-China" style="margin-right: 20px;" size="40" />
|
|
|
- <div class="amount-item-body-info">
|
|
|
- <span>人民币</span>
|
|
|
- <span>5000.00(元)</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="amount-item-body-box">
|
|
|
- <svg-Icon name="svgIcon-country-Singapore" style="margin-right: 20px;" size="40" />
|
|
|
+ <div class="amount-item-body-box" v-for="item in commodityPData.invoiceAmountList" :key="item.code">
|
|
|
+ <img :src="item.flag_img" style="height: 40px;width: 40px;margin-right: 20px;" />
|
|
|
<div class="amount-item-body-info">
|
|
|
- <span>新加坡币</span>
|
|
|
- <span>5000.00(新元)</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="amount-item-body-box">
|
|
|
- <svg-Icon name="svgIcon-country-America" style="margin-right: 20px;" size="40" />
|
|
|
- <div class="amount-item-body-info">
|
|
|
- <span>美元</span>
|
|
|
- <span>5000.00(美元)</span>
|
|
|
+ <span>{{ item.name }}</span>
|
|
|
+ <span>{{ item.amount }}({{ item.unit_name }})</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -363,7 +319,7 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
<div class="amount-show-item">
|
|
|
<div class="amount-item-head" @click="foldOrUnfold(1)">
|
|
|
<div class="amount-item-head-title">
|
|
|
- 已到款合计金额(换算后):80000.00(元)
|
|
|
+ 已到款合计金额(换算后):{{ commodityPData.placementAmountTotal }}(元)
|
|
|
</div>
|
|
|
<span class="amount-item-head-icon">
|
|
|
{{ placementIsFold?'展开':'收起' }}
|
|
@@ -371,25 +327,11 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
</div>
|
|
|
<div class="amount-item-body-package" :style="{height:placementIsFold?'0':'66px'}">
|
|
|
<div class="amount-item-body">
|
|
|
- <div class="amount-item-body-box">
|
|
|
- <svg-Icon name="svgIcon-country-China" style="margin-right: 20px;" size="40" />
|
|
|
- <div class="amount-item-body-info">
|
|
|
- <span>人民币</span>
|
|
|
- <span>5000.00(元)</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="amount-item-body-box">
|
|
|
- <svg-Icon name="svgIcon-country-Singapore" style="margin-right: 20px;" size="40" />
|
|
|
+ <div class="amount-item-body-box" v-for="item in commodityPData.placementAmountList" :key="item.code">
|
|
|
+ <img :src="item.flag_img" style="height: 40px;width: 40px;margin-right: 20px;" />
|
|
|
<div class="amount-item-body-info">
|
|
|
- <span>新加坡币</span>
|
|
|
- <span>5000.00(新元)</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="amount-item-body-box">
|
|
|
- <svg-Icon name="svgIcon-country-America" style="margin-right: 20px;" size="40" />
|
|
|
- <div class="amount-item-body-info">
|
|
|
- <span>美元</span>
|
|
|
- <span>5000.00(美元)</span>
|
|
|
+ <span>{{ item.name }}</span>
|
|
|
+ <span>{{ item.amount }}({{ item.unit_name }})</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -403,31 +345,35 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
max-height="600" :row-class-name="tableRowClassName" :span-method="cellMerge">
|
|
|
<el-table-column label="序号" align="center" prop="serialNumber" >
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="客户名称" prop="companyName" align="center" show-overflow-tooltip ></el-table-column>
|
|
|
- <el-table-column label="是否新客户" prop="isNew" align="center"></el-table-column>
|
|
|
- <el-table-column label="合同有效期" prop="date" align="center" show-overflow-tooltip ></el-table-column>
|
|
|
- <el-table-column label="开票日" prop="invoiceDate" align="center" id="spc-column"></el-table-column>
|
|
|
- <el-table-column label="开票金额" prop="invoiceAmount" align="center"></el-table-column>
|
|
|
- <el-table-column label="到款日" prop="placementDate" align="center"></el-table-column>
|
|
|
- <el-table-column label="到款金额" prop="placementAmount" align="center"></el-table-column>
|
|
|
- <el-table-column label="付款方式" prop="payType" align="center">
|
|
|
+ <el-table-column label="客户名称" prop="company_name" align="center" show-overflow-tooltip ></el-table-column>
|
|
|
+ <el-table-column label="是否新客户" prop="new_company" align="center">
|
|
|
<template #default="{row}">
|
|
|
- <span v-if="row.payType!='异常'">{{ row.payType }}</span>
|
|
|
- <span v-else @click="editPayType(row)"
|
|
|
+ {{ row.new_company==1?'是':'否' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="合同有效期" prop="date" align="center" show-overflow-tooltip ></el-table-column>
|
|
|
+ <el-table-column label="开票日" show-overflow-tooltip prop="invoice_time" align="center" id="spc-column"></el-table-column>
|
|
|
+ <el-table-column label="开票金额" prop="invoice_amount" align="center"></el-table-column>
|
|
|
+ <el-table-column label="到款日" show-overflow-tooltip prop="payment_date" align="center"></el-table-column>
|
|
|
+ <el-table-column label="到款金额" prop="payment_amount" align="center"></el-table-column>
|
|
|
+ <el-table-column label="付款方式" prop="pay_type" align="center">
|
|
|
+ <template #default="{row,$index}">
|
|
|
+ <span v-if="row.pay_type!='5'">{{ row.pay_type!=0?payTypeArray[row.pay_type].type:'' }}</span>
|
|
|
+ <span v-else @click="editPayType(row,$index)"
|
|
|
style="cursor: pointer;display: flex;align-items: center;justify-content: center;">
|
|
|
- <span style="color: var(--dangerColor);">{{ row.payType }}</span>
|
|
|
- <el-icon :size="20"
|
|
|
- style="position: absolute;right: 0;top: 50%;transform: translateX(-50%) translateY(-50%);"><Edit /></el-icon>
|
|
|
+ <span style="color: var(--dangerColor);">{{ payTypeArray[row.pay_type].type }}</span>
|
|
|
+ <svg-Icon name="svgIcon-common-edit" size="13"
|
|
|
+ style="position: absolute;right: 4px;top: 50%;transform: translateX(-50%) translateY(-50%);" ></svg-Icon>
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="销售" prop="seller" align="center"></el-table-column>
|
|
|
- <el-table-column label="组别" prop="group" align="center"></el-table-column>
|
|
|
- <el-table-column label="套餐信息" prop="serviceInfo" align="center">
|
|
|
+ <el-table-column label="销售" prop="seller_name" align="center"></el-table-column>
|
|
|
+ <el-table-column label="组别" prop="seller_group_name" align="center"></el-table-column>
|
|
|
+ <el-table-column label="套餐信息" prop="services_name" align="center">
|
|
|
<template #default="{row}">
|
|
|
- <span v-if="row.placementAmount&&row.placementAmount!=0" @click="setServiceInfo"
|
|
|
- style="cursor: pointer;color: var(--themeColor);">{{ row.serviceInfo }}</span>
|
|
|
- <span v-else style="color: #666;">{{ row.serviceInfo }}</span>
|
|
|
+ <span v-if="row.payment_amount&&row.payment_amount!=0" @click="setServiceInfo(row)"
|
|
|
+ style="cursor: pointer;color: var(--themeColor);">{{ row.services_name }}</span>
|
|
|
+ <span v-else style="color: #666;">{{ row.services_name }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<template #empty>
|
|
@@ -445,13 +391,15 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
<!-- 编辑付款方式弹窗 -->
|
|
|
<el-dialog title="编辑付款方式" v-model="editPayTypeDia.diaShow" width="492"
|
|
|
:close-on-click-modal="false">
|
|
|
+ <div style="display: flex;justify-content: center;">
|
|
|
<el-form :model="editPayTypeDia.form" ref="editPayTypeRef" style="display: flex;justify-self: center">
|
|
|
- <el-form-item label="付款方式" prop="payType" :rules="{required:true,message:'请选择付款方式',trigger:'change'}">
|
|
|
- <el-select v-model="editPayTypeDia.form.payType" placeholder="请选择付款方式" style="width: 286px;">
|
|
|
- <el-option :label="item.type" :value="item.id" v-for="item in payTypeArray" :key="item.id"></el-option>
|
|
|
+ <el-form-item label="付款方式" prop="pay_type" :rules="{required:true,message:'请选择付款方式',trigger:'change'}">
|
|
|
+ <el-select v-model="editPayTypeDia.form.pay_type" placeholder="请选择付款方式" style="width: 286px;">
|
|
|
+ <el-option :label="item.type" :value="item.id" v-for="item in selectablePayTypeArray" :key="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
+ </div>
|
|
|
<template #footer>
|
|
|
<div style="padding: 10px 0;">
|
|
|
<el-button @click="editPayTypeDia.diaShow = false">取消</el-button>
|
|
@@ -465,14 +413,14 @@ import dropdownText from '@/components/dropdown-text/index.vue'
|
|
|
<!-- 设置套餐信息弹窗 -->
|
|
|
<el-dialog title="套餐信息" v-model="setServiceInfoDia.diaShow" width="774"
|
|
|
:close-on-click-modal="false">
|
|
|
- <div class="serviceInf-table" :style="{'height':Math.ceil(setServiceInfoDia.dataFormList.length/2)*50+'px'}">
|
|
|
- <div class="serviceInf-table-item" v-for="item in setServiceInfoDia.dataFormList" :key="item.serviceId">
|
|
|
- <div class="serviceInfo-label">{{ item.serviceTitle }}</div>
|
|
|
+ <div class="serviceInf-table" :style="{'height':Math.ceil(setServiceInfoDia.dataForm.list.length/2)*50+'px'}">
|
|
|
+ <div class="serviceInf-table-item" v-for="item in setServiceInfoDia.dataForm.list" :key="item.serviceId">
|
|
|
+ <div class="serviceInfo-label">{{ item.service_template_name }}</div>
|
|
|
<div class=" serviceInfo-label serviceInfo-input" id="serviceInfo-input">
|
|
|
<el-input v-model="item.amount" placeholder="请输入金额" style="width: 124px;height: 28px;" @input="serviceAmountChange(item)"></el-input>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="serviceInf-table-item" v-show="setServiceInfoDia.dataFormList.length%2!=0">
|
|
|
+ <div class="serviceInf-table-item" v-show="setServiceInfoDia.dataForm.list.length%2!=0">
|
|
|
<div class="serviceInfo-label"></div>
|
|
|
<div class=" serviceInfo-label serviceInfo-input" id="serviceInfo-input">
|
|
|
</div>
|