Merge branch 'master' into 2023年7月变更

# Conflicts:
#	src/views/projectManagement/WorkingGroupMemberUnitMaintenance.vue
This commit is contained in:
fengchenchen
2023-07-20 18:05:53 +08:00
34 changed files with 159 additions and 174 deletions
+1 -1
View File
@@ -15,7 +15,7 @@
<span><j-ellipsis :value="basicInfo.principalName" :length="20"></j-ellipsis></span> <span><j-ellipsis :value="basicInfo.principalName" :length="20"></j-ellipsis></span>
</a-col> </a-col>
<a-col :span="12" class="detail-item"> <a-col :span="12" class="detail-item">
<label>收金额</label> <label>待确收金额</label>
<span><j-ellipsis :value="`${basicInfo.receivableAmount ? basicInfo.receivableAmount : '0.00'}元`" <span><j-ellipsis :value="`${basicInfo.receivableAmount ? basicInfo.receivableAmount : '0.00'}元`"
:length="20"></j-ellipsis></span> :length="20"></j-ellipsis></span>
</a-col> </a-col>
+3 -3
View File
@@ -76,10 +76,10 @@ export default {
status() { status() {
if (this.statuObj.amountReceivable === '0.00' || this.statuObj.receivableAmount === '0.00') { if (this.statuObj.amountReceivable === '0.00' || this.statuObj.receivableAmount === '0.00') {
if (this.statusType) { if (this.statusType) {
// 收金额为0 未到账 未邮寄 未开票的状态 // 待确收金额为0 未到账 未邮寄 未开票的状态
return zero return zero
} else { } else {
// 收金额为0 打包 与需要开票的状态 打包与需要开票 只有√和×的状态 // 待确收金额为0 打包 与需要开票的状态 打包与需要开票 只有√和×的状态
if (this.statusNo === 0) { if (this.statusNo === 0) {
return error return error
} else if (this.statusNo === 1 || this.statusNo === 2) { } else if (this.statusNo === 1 || this.statusNo === 2) {
@@ -89,7 +89,7 @@ export default {
} }
} else { } else {
// 收金额不为0 都正常判断 // 待确收金额不为0 都正常判断
if (this.statusNo === 0) { if (this.statusNo === 0) {
// 开票或邮寄时,不需要发票 // 开票或邮寄时,不需要发票
if ((this.statusKey === 'bill' || this.statusKey === 'mail') && this.statuObj.needInvoice === 0) { if ((this.statusKey === 'bill' || this.statusKey === 'mail') && this.statuObj.needInvoice === 0) {
+7 -7
View File
@@ -6,12 +6,12 @@
export const CalcAmountMixin = { export const CalcAmountMixin = {
data() { data() {
return { return {
ysjeKey:'receivableAmount',// 收金额的表单key值 ysjeKey:'receivableAmount',// 待确收金额的表单key值
} }
}, },
methods:{ methods:{
/** /**
* 改变收金额 计算税额 未税金额 * 改变待确收金额 计算税额 未税金额
* */ * */
changeReceivableAmount(e){ changeReceivableAmount(e){
e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim() e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()
@@ -20,7 +20,7 @@ export const CalcAmountMixin = {
}) })
}, },
/** /**
* 改变税率计算税额 收金额 * 改变税率计算税额 待确收金额
* */ * */
changeRate(){ changeRate(){
this.$nextTick(() => { this.$nextTick(() => {
@@ -28,16 +28,16 @@ export const CalcAmountMixin = {
}) })
}, },
/** /**
* 根据收金额、税率计算税额 、未税金额 * 根据待确收金额、税率计算税额 、未税金额
* */ * */
calcAmount(){ calcAmount(){
// 获取收金额 // 获取待确收金额
let ysje = Number(this.form.getFieldValue(this.ysjeKey)) let ysje = Number(this.form.getFieldValue(this.ysjeKey))
// 获取税率 // 获取税率
let rate = this.form.getFieldValue('taxRate') * 1 let rate = this.form.getFieldValue('taxRate') * 1
// 计算未税金额 未税金额 = 收金额 * (税率 + 1) // 计算未税金额 未税金额 = 待确收金额 * (税率 + 1)
let wsje = (ysje / (rate + 1)).toFixed(2) let wsje = (ysje / (rate + 1)).toFixed(2)
// 计算税额 税额 = 收金额 - 未税金额 保留两位小数 // 计算税额 税额 = 待确收金额 - 未税金额 保留两位小数
let se = (ysje - Number(wsje)).toFixed(2) let se = (ysje - Number(wsje)).toFixed(2)
// 表单赋值 // 表单赋值
this.form.setFieldsValue({ this.form.setFieldsValue({
@@ -329,7 +329,7 @@ export default {
contractAmountNum: null, // 合同总金额 contractAmountNum: null, // 合同总金额
inputNoTaxAmount: null, // 未税金额 inputNoTaxAmount: null, // 未税金额
amountReceivedNum: null, // 已收金额 amountReceivedNum: null, // 已收金额
accountsReceivableNum: null, // 收金额 accountsReceivableNum: null, // 待确收金额
isPackage: false, isPackage: false,
labelCol: { labelCol: {
xs: { span: 24 }, xs: { span: 24 },
@@ -727,7 +727,7 @@ export default {
this.form.setFieldsValue({ contractAmount: contractNum }) this.form.setFieldsValue({ contractAmount: contractNum })
}, },
/** /**
* 收金额输入 * 待确收金额输入
* @param value * @param value
*/ */
accountsReceivableChange(e) { accountsReceivableChange(e) {
@@ -50,8 +50,8 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="12" :sm="24"> <a-col :xl="12" :sm="24">
<a-form-item label="收金额" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="待确收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入收金额" v-decorator="['amountReceivable',validatorRules.amountReceivable]" <a-input placeholder="请输入待确收金额" v-decorator="['amountReceivable',validatorRules.amountReceivable]"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}" @blur="addZero"> </a-input> @change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}" @blur="addZero"> </a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -265,16 +265,16 @@ export default {
this.close() this.close()
}, },
/* /*
* 校验收金额 * 校验待确收金额
* */ * */
validateMoney(rule,value,callback){ validateMoney(rule,value,callback){
if(value === '' || value === undefined || value === null){ if(value === '' || value === undefined || value === null){
callback('请输入收金额') callback('请输入待确收金额')
} }
if(value && money(value)){ if(value && money(value)){
callback() callback()
}else { }else {
callback('收金额格式错误') callback('待确收金额格式错误')
} }
}, },
@@ -77,7 +77,7 @@ export default {
width: 280, width: 280,
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
dataIndex: 'receivableAmount', dataIndex: 'receivableAmount',
width: 250, width: 250,
@@ -268,7 +268,7 @@ export default {
accountInfoList: [ accountInfoList: [
{ {
fieldName: 'accountsReceivableAmount', fieldName: 'accountsReceivableAmount',
title: '收金额' title: '待确收金额'
}, { }, {
fieldName: 'amountReceived', fieldName: 'amountReceived',
title: '已收金额' title: '已收金额'
@@ -166,8 +166,8 @@
<div> <div>
<a-row> <a-row>
<a-col :xxl="6" :xl="8" :sm="12"> <a-col :xxl="6" :xl="8" :sm="12">
<a-form-item label="收金额" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="待确收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入收金额" <a-input placeholder="请输入待确收金额"
v-decorator="['accountsReceivableAmount',validatorRules.accountsReceivableAmount]" v-decorator="['accountsReceivableAmount',validatorRules.accountsReceivableAmount]"
:maxLength='50' :maxLength='50'
@blur="addZero" @blur="addZero"
@@ -444,7 +444,7 @@ export default {
installmentList: [], installmentList: [],
isSaved: false, // 是否保存上方数据 isSaved: false, // 是否保存上方数据
isPackage: false, // 是否打包,控制打包年份显隐 isPackage: false, // 是否打包,控制打包年份显隐
accountsReceivableNum: null, // 输入的收金额 accountsReceivableNum: null, // 输入的待确收金额
amountReceivedNum: null, // 输入的未收金额 amountReceivedNum: null, // 输入的未收金额
contractAmountNum: null, // 输入的签订合同总金额 contractAmountNum: null, // 输入的签订合同总金额
rateNum: null, // 输入的税率 rateNum: null, // 输入的税率
@@ -542,7 +542,7 @@ export default {
this.isPackage = Number(record.pack) === 1 this.isPackage = Number(record.pack) === 1
// 处理分期信息回显 // 处理分期信息回显
this.$refs.installmentForm.initInstallmentList(record.listInstallment) this.$refs.installmentForm.initInstallmentList(record.listInstallment)
// 获取收金额和已收金额 // 获取待确收金额和已收金额
this.accountsReceivableNum = record.accountsReceivableAmount this.accountsReceivableNum = record.accountsReceivableAmount
this.amountReceivedNum = record.amountReceived this.amountReceivedNum = record.amountReceived
this.model = Object.assign({}, record) this.model = Object.assign({}, record)
@@ -726,7 +726,7 @@ export default {
this.form.setFieldsValue({ contractAmount: contractNum }) this.form.setFieldsValue({ contractAmount: contractNum })
}, },
/** /**
* 收金额输入 * 待确收金额输入
* @param value * @param value
*/ */
accountsReceivableChange(e) { accountsReceivableChange(e) {
@@ -753,10 +753,10 @@ export default {
// 未收金额 === 0,已付全款状态 // 未收金额 === 0,已付全款状态
if (Number(this.model.outstandingAmount) <= 0) { if (Number(this.model.outstandingAmount) <= 0) {
this.model.accountStatus = '3' this.model.accountStatus = '3'
// 未收金额 > 0 且 未收金额 < 收金额,部分付款状态 // 未收金额 > 0 且 未收金额 < 待确收金额,部分付款状态
} else if (Number(this.model.outstandingAmount) > 0 && Number(this.model.outstandingAmount) < Number(this.accountsReceivableNum)) { } else if (Number(this.model.outstandingAmount) > 0 && Number(this.model.outstandingAmount) < Number(this.accountsReceivableNum)) {
this.model.accountStatus = '2' this.model.accountStatus = '2'
// 未收金额 === 收金额,未付款状态 // 未收金额 === 待确收金额,未付款状态
} else if (Number(this.model.outstandingAmount) === Number(this.accountsReceivableNum)) { } else if (Number(this.model.outstandingAmount) === Number(this.accountsReceivableNum)) {
this.model.accountStatus = '1' this.model.accountStatus = '1'
} }
@@ -838,7 +838,7 @@ export default {
callback('请输入签订合同总金额') callback('请输入签订合同总金额')
break break
case 'accountsReceivableAmount': case 'accountsReceivableAmount':
callback('请输入收金额') callback('请输入待确收金额')
break break
case 'noTaxAmount': case 'noTaxAmount':
callback('请输入未税金额') callback('请输入未税金额')
@@ -170,7 +170,7 @@ export default {
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
dataIndex: 'amountReceivable', dataIndex: 'amountReceivable',
width: 200, width: 200,
@@ -205,7 +205,7 @@ export default {
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'receivableAmount' dataIndex: 'receivableAmount'
+2 -2
View File
@@ -110,7 +110,7 @@ export default {
this.initEcharts(res.result) this.initEcharts(res.result)
// 将接口数据 转化成表格数据形式 // 将接口数据 转化成表格数据形式
let tableData = [ let tableData = [
{indexName: '收金额'}, {indexName: '待确收金额'},
] ]
dataSource.map((item, index) => { dataSource.map((item, index) => {
let dataIndex = 'key' + index let dataIndex = 'key' + index
@@ -265,7 +265,7 @@ export default {
}, },
series: [ series: [
{ {
name: '收金额', name: '待确收金额',
data: this.echartsData.allMoney, data: this.echartsData.allMoney,
type: 'bar', type: 'bar',
barMaxWidth: 60, barMaxWidth: 60,
+31 -37
View File
@@ -60,14 +60,17 @@ export default {
*/ */
initChart(data) { initChart(data) {
let xData = data[0].xAxis let xData = data[0].xAxis
let xDataName = data[0]? data[0].departNameCn : []
let tooltipTitle = new Date().getFullYear() + '年' let tooltipTitle = new Date().getFullYear() + '年'
let option = { let option = {
color: ['#069F99', '#18E0AB'], color: ['#069F99', '#18E0AB'],
tooltip: { tooltip: {
formatter: params => { formatter: params => {
let index = params[0].dataIndex
const showLabelName = xDataName[index]
// 获取xAxis data中的数据 // 获取xAxis data中的数据
let dataStr = `<div style="color:#333;margin-left: 8px;font-size: 14px;">${tooltipTitle}</div>` let dataStr = `<div style="color:#333;margin-left: 8px;font-size: 14px;">${tooltipTitle}</div>`
dataStr += `<div style="color:#333;margin-left: 8px;font-size: 14px;margin-bottom: 10px;">${params[0].name}</div>` dataStr += `<div style="color:#333;margin-left: 8px;font-size: 14px;margin-bottom: 10px;">${showLabelName}</div>`
params.forEach(item => { params.forEach(item => {
let color = '' let color = ''
if(typeof item.color === 'string') { if(typeof item.color === 'string') {
@@ -103,45 +106,36 @@ export default {
}, },
xAxis: { xAxis: {
axisLabel: { axisLabel: {
rotate: -10,
align: 'center',
verticalAlign : 'top',
margin: 12,
formatter: function(params) { formatter: function(params) {
if (params.length > 8) { let newParamsName = '' // 最终拼接成的字符串
return `${params.slice(0, 8)}...` let paramsNameNumber = params.length // 实际标签的个数
let provideNumber = 6 // 每行能显示的字的个数
let rowNumber = Math.ceil(paramsNameNumber / provideNumber) // 换行的话,需要显示几行,向上取整
/**
* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
*/
// 条件等同于rowNumber>1
if (paramsNameNumber > provideNumber) {
/** 循环每一行,p表示行 */
for (let p = 0; p < rowNumber; p++) {
let tempStr = ''// 表示每一次截取的字符串
let start = p * provideNumber // 开始截取的位置
let end = start + provideNumber // 结束截取的位置
// 此处特殊处理最后一行的索引值
if (p === rowNumber - 1) {
// 最后一次不换行
tempStr = params.substring(start, paramsNameNumber)
} else {
// 每一次拼接字符串并换行
tempStr = params.substring(start, end) + '\n'
}
newParamsName += tempStr // 最终拼成的字符串
}
} else { } else {
return params // 将旧标签的值赋给新标签
newParamsName = params
} }
// let newParamsName = '' // 最终拼接成的字符串 return newParamsName
// let paramsNameNumber = params.length // 实际标签的个数
// let provideNumber = 6 // 每行能显示的字的个数
// let rowNumber = Math.ceil(paramsNameNumber / provideNumber) // 换行的话,需要显示几行,向上取整
// /**
// * 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
// */
// // 条件等同于rowNumber>1
// if (paramsNameNumber > provideNumber) {
// /** 循环每一行,p表示行 */
// for (let p = 0; p < rowNumber; p++) {
// let tempStr = ''// 表示每一次截取的字符串
// let start = p * provideNumber // 开始截取的位置
// let end = start + provideNumber // 结束截取的位置
// // 此处特殊处理最后一行的索引值
// if (p === rowNumber - 1) {
// // 最后一次不换行
// tempStr = params.substring(start, paramsNameNumber)
// } else {
// // 每一次拼接字符串并换行
// tempStr = params.substring(start, end) + '\n'
// }
// newParamsName += tempStr // 最终拼成的字符串
// }
// } else {
// // 将旧标签的值赋给新标签
// newParamsName = params
// }
// return newParamsName
} }
}, },
data: xData, data: xData,
@@ -72,19 +72,6 @@ export default {
top : '20' top : '20'
}, },
xAxis: { xAxis: {
axisLabel: {
rotate: -10,
align: 'center',
verticalAlign : 'top',
margin: 12,
formatter: (params) => {
if (params.length > 8) {
return `${params.slice(0, 8)}...`
} else {
return params
}
}
},
data: xData data: xData
}, },
series: [ series: [
@@ -223,6 +223,7 @@ export default {
*/ */
initChart(data) { initChart(data) {
let xData = data[0]? data[0].xAxis : [] let xData = data[0]? data[0].xAxis : []
let xDataName = data[0]? data[0].departNameCn : []
let yData = [] let yData = []
data.map(tt => { data.map(tt => {
yData.push(tt.data || []) yData.push(tt.data || [])
@@ -232,9 +233,11 @@ export default {
color: ['#97E3E0', '#069F99', '#18E0AB'], color: ['#97E3E0', '#069F99', '#18E0AB'],
tooltip: { tooltip: {
formatter: params => { formatter: params => {
let index = params[0].dataIndex
const showLabelName = xDataName[index]
// 获取xAxis data中的数据 // 获取xAxis data中的数据
let dataStr = `<div style="color:#333;margin-left: 8px;font-size: 14px;">${tooltipTitle}</div> let dataStr = `<div style="color:#333;margin-left: 8px;font-size: 14px;">${tooltipTitle}</div>
<div style="color:#333;margin-left: 8px;font-size: 14px;margin-bottom: 10px;">${params[0].name}</div>` <div style="color:#333;margin-left: 8px;font-size: 14px;margin-bottom: 10px;">${showLabelName}</div>`
params.forEach(item => { params.forEach(item => {
let color = '' let color = ''
if(typeof item.color === 'string') { if(typeof item.color === 'string') {
@@ -269,19 +272,6 @@ export default {
} }
}, },
xAxis: { xAxis: {
axisLabel: {
rotate: -10,
align: 'center',
verticalAlign : 'top',
margin: 12,
formatter: (params) => {
if (params.length > 8) {
return `${params.slice(0, 8)}...`
} else {
return params
}
}
},
data: xData data: xData
}, },
series: [ series: [
@@ -31,6 +31,11 @@ export default {
GetExpertQuantityData().then(res => { GetExpertQuantityData().then(res => {
if(res.success) { if(res.success) {
let result = res.result || { } let result = res.result || { }
// TODO 客户要求先写死
result.count = [14, 20, 15, 11, 10, 12]
result.departName = ['GRBP', 'GRVA', 'GRSP', 'GRSG', 'GRE', 'GRPE']
result.departNameCn = ['噪声与轮胎工作组', '自动驾驶与网联车辆工作组', '被动安全工作组', '一般安全工作组', '灯光与光信号工作组', '污染与能源工作组']
result.total = result.count.reduce((pre, val) => pre = pre + val)
this.totalAll = result.total this.totalAll = result.total
this.$nextTick(() => { this.$nextTick(() => {
this.initChart(result) this.initChart(result)
@@ -44,7 +49,8 @@ export default {
*/ */
initChart(data) { initChart(data) {
const yData = data.count const yData = data.count
const xAxisData = data.departNameCn const xAxisData = data.departName
const xAxisDataName = data.departNameCn
let option = { let option = {
legend: { legend: {
show: false show: false
@@ -57,6 +63,9 @@ export default {
formatter: params => { formatter: params => {
// 获取xAxis data中的数据 // 获取xAxis data中的数据
let dataStr = '' let dataStr = ''
let index = params[0].dataIndex
const showLabelName = xAxisDataName[index]
params.forEach(item => { params.forEach(item => {
let color = '' let color = ''
if(typeof item.color === 'string') { if(typeof item.color === 'string') {
@@ -67,7 +76,7 @@ export default {
dataStr += `<div> dataStr += `<div>
<div style="margin: 0 8px;"> <div style="margin: 0 8px;">
<span style="display:inline-block;margin-right:5px;width:15px;height:10px;background-color:${color};border-radius: 3px"></span> <span style="display:inline-block;margin-right:5px;width:15px;height:10px;background-color:${color};border-radius: 3px"></span>
<span style="color:#666;white-space: pre-wrap;word-break: break-all">${item.name}</span> <span style="color:#666;white-space: pre-wrap;word-break: break-all">${showLabelName}</span>
<span style="color:#333;">${item.value}</span> <span style="color:#333;">${item.value}</span>
</div> </div>
</div>` </div>`
@@ -77,19 +86,6 @@ export default {
extraCssText:'max-width:400px;' extraCssText:'max-width:400px;'
}, },
xAxis: { xAxis: {
axisLabel: {
rotate: -10,
align: 'center',
verticalAlign : 'top',
margin: 12,
formatter: (params) => {
if (params.length > 8) {
return `${params.slice(0, 8)}...`
} else {
return params
}
}
},
data: xAxisData data: xAxisData
}, },
series: [ series: [
@@ -247,6 +247,7 @@ export default {
*/ */
initChart(data) { initChart(data) {
let xData = data[0]? data[0].xAxis : [] let xData = data[0]? data[0].xAxis : []
let xDataName = data[0]? data[0].departNameCn : []
let yData = [] let yData = []
data.map(tt => { data.map(tt => {
yData.push(tt.data || []) yData.push(tt.data || [])
@@ -256,9 +257,12 @@ export default {
color: [ '#97E3E0', '#069F99','#18E0AB'], color: [ '#97E3E0', '#069F99','#18E0AB'],
tooltip: { tooltip: {
formatter: params => { formatter: params => {
let index = params[0].dataIndex
const showLabelName = xDataName[index]
// 获取xAxis data中的数据 // 获取xAxis data中的数据
let dataStr = `<div style="color:#333;margin-left: 8px;font-size: 14px;">${tooltipTitle}</div>` let dataStr = `<div style="color:#333;margin-left: 8px;font-size: 14px;">${tooltipTitle}</div>`
dataStr += `<div style="color:#333;margin-left: 8px;font-size: 14px;margin-bottom: 10px;">${params[0].name}</div>` dataStr += `<div style="color:#333;margin-left: 8px;font-size: 14px;margin-bottom: 10px;">${showLabelName}</div>`
params.forEach(item => { params.forEach(item => {
let color = '' let color = ''
if(typeof item.color === 'string') { if(typeof item.color === 'string') {
@@ -294,16 +298,39 @@ export default {
}, },
xAxis: { xAxis: {
axisLabel: { axisLabel: {
rotate: -10, show: true,
align: 'center', color: '#8E8E95',
verticalAlign : 'top', interval: 0,
margin: 12, formatter: function(params) {
formatter: (params) => { let newParamsName = '' // 最终拼接成的字符串
if (params.length > 8) { let paramsNameNumber = params.length // 实际标签的个数
return `${params.slice(0, 8)}...` let provideNumber = 10 // 每行能显示的字的个数
let rowNumber = Math.ceil(paramsNameNumber / provideNumber) // 换行的话,需要显示几行,向上取整
/**
* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
*/
// 条件等同于rowNumber>1
if (paramsNameNumber > provideNumber) {
/** 循环每一行,p表示行 */
for (let p = 0; p < rowNumber; p++) {
let tempStr = ''// 表示每一次截取的字符串
let start = p * provideNumber // 开始截取的位置
let end = start + provideNumber // 结束截取的位置
// 此处特殊处理最后一行的索引值
if (p === rowNumber - 1) {
// 最后一次不换行
tempStr = params.substring(start, paramsNameNumber)
} else {
// 每一次拼接字符串并换行
tempStr = params.substring(start, end) + '\n'
}
newParamsName += tempStr // 最终拼成的字符串
}
} else { } else {
return params // 将旧标签的值赋给新标签
newParamsName = params
} }
return newParamsName
} }
}, },
data: xData data: xData
@@ -45,6 +45,7 @@ export default {
initData(arr) { initData(arr) {
this.totalAll = arr[0].totalAll this.totalAll = arr[0].totalAll
this.xAxisData = arr[0].xaxis this.xAxisData = arr[0].xaxis
this.xAxisDataName = arr[0].departNameCnList
this.yData = [] this.yData = []
this.legendData = [] this.legendData = []
arr.map(tt => { arr.map(tt => {
@@ -66,13 +67,16 @@ export default {
}, },
tooltip: { tooltip: {
formatter: params => { formatter: params => {
console.log("---params---------", params)
// 获取xAxis data中的数据 // 获取xAxis data中的数据
let dataStr = '' let dataStr = ''
let total = 0 let total = 0
for (let i = 0; i < params.length; i++) { for (let i = 0; i < params.length; i++) {
total += parseInt(params[i].data) total += parseInt(params[i].data)
} }
dataStr += ` <div style="color:#333;margin-left: 8px;font-size: 14px">${params[0].name} 总数: ${total}</div>` let index = params[0].dataIndex
const showLabelName = this.xAxisDataName[index]
dataStr += ` <div style="color:#333;margin-left: 8px;font-size: 14px">${showLabelName} 总数: ${total}</div>`
// params.forEach(item => { // params.forEach(item => {
// let color = '' // let color = ''
@@ -93,19 +97,6 @@ export default {
} }
}, },
xAxis: { xAxis: {
axisLabel: {
rotate: -10,
align: 'center',
verticalAlign : 'top',
margin: 12,
formatter: function(params) {
if (params.length > 8) {
return `${params.slice(0, 8)}...`
} else {
return params
}
}
},
data: this.xAxisData data: this.xAxisData
}, },
series: [ series: [
@@ -326,7 +326,7 @@ export default {
dataIndex: 'contactsTemporaryName', dataIndex: 'contactsTemporaryName',
scopedSlots: {customRender: 'contact'} scopedSlots: {customRender: 'contact'}
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'receivableAmount', dataIndex: 'receivableAmount',
@@ -504,9 +504,9 @@ export default {
} }
// 来款 // 来款
if (operateType === 'incomePayment') { if (operateType === 'incomePayment') {
// 是否存在收金额为0的项目 // 是否存在待确收金额为0的项目
if (arr.some(item => Number(item.receivableAmount) === 0)) { if (arr.some(item => Number(item.receivableAmount) === 0)) {
reject('存在收金额为0的项目!') reject('存在待确收金额为0的项目!')
} }
} }
resolve(arr) resolve(arr)
@@ -139,7 +139,7 @@ export default {
dataIndex: 'contactsTemporaryName', dataIndex: 'contactsTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'receivableAmount' dataIndex: 'receivableAmount'
@@ -398,7 +398,7 @@ export default {
scopedSlots: { customRender: 'person' } scopedSlots: { customRender: 'person' }
}, },
{ {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
dataIndex: 'amountReceivable', dataIndex: 'amountReceivable',
width: 100 width: 100
@@ -794,7 +794,7 @@ export default {
this.$message.warn('请选择一条记录') this.$message.warn('请选择一条记录')
return return
} }
// 收金额为0 不需要发票 打包 都不可以开发票 // 待确收金额为0 不需要发票 打包 都不可以开发票
console.log(this.selectionRows) console.log(this.selectionRows)
// 只能选择相同的单位进行合并开票 // 只能选择相同的单位进行合并开票
if (this.selectionRows.length > 0) { if (this.selectionRows.length > 0) {
@@ -53,14 +53,14 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<!-- 只有编辑的时候显示 收金额 税率 税额 等信息 --> <!-- 只有编辑的时候显示 待确收金额 税率 税额 等信息 -->
<template v-if="!!$route.query.id && identifyType === 2"> <template v-if="!!$route.query.id && identifyType === 2">
<!-- 到账后 收金额 税率不能编辑 --> <!-- 到账后 待确收金额 税率不能编辑 -->
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :xxl="8" :xl="12" :sm="24"> <a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="收金额" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="待确收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入收金额" <a-input placeholder="请输入待确收金额"
v-decorator="['amountReceivable', validatorRules.amountReceivable]" v-decorator="['amountReceivable', validatorRules.amountReceivable]"
:maxLength='50' :maxLength='50'
@blur="addZero" @blur="addZero"
@@ -308,7 +308,7 @@ export default {
}, },
// 校验金额格式 // 校验金额格式
checkMoney(rules, value, callback) { checkMoney(rules, value, callback) {
this.checkMoneyTemplate(rules, value, callback, '收金额') this.checkMoneyTemplate(rules, value, callback, '待确收金额')
}, },
checkNoTaxMoney(rules, value, callback) { checkNoTaxMoney(rules, value, callback) {
this.checkMoneyTemplate(rules, value, callback, '未税金额') this.checkMoneyTemplate(rules, value, callback, '未税金额')
@@ -194,7 +194,7 @@ export default {
dataIndex: 'paymentStatus_dictText' dataIndex: 'paymentStatus_dictText'
}, },
{ {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
dataIndex: 'amountReceivable', dataIndex: 'amountReceivable',
scopedSlots: { customRender: 'text' }, scopedSlots: { customRender: 'text' },
@@ -178,7 +178,7 @@ export default {
dataIndex: 'companyContactName', dataIndex: 'companyContactName',
}, },
{ {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
dataIndex: 'amountReceivable', dataIndex: 'amountReceivable',
}, },
@@ -193,7 +193,7 @@ export default {
scopedSlots: { customRender: 'text' }, scopedSlots: { customRender: 'text' },
}, },
{ {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
dataIndex: 'amountReceivable', dataIndex: 'amountReceivable',
scopedSlots: { customRender: 'text' }, scopedSlots: { customRender: 'text' },
@@ -72,12 +72,12 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :xl="12" :sm="24"> <a-col :xl="12" :sm="24">
<a-form-item <a-form-item
label="收金额" label="待确收金额"
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
> >
<a-input <a-input
placeholder="请输入收金额" placeholder="请输入待确收金额"
:maxLength="50" :maxLength="50"
@change="changeReceivableAmount" @change="changeReceivableAmount"
v-decorator="[ v-decorator="[
@@ -379,7 +379,7 @@ export default {
}, },
validateMoney(rule, value, callback) { validateMoney(rule, value, callback) {
if (value === undefined || value === '' || value === null) { if (value === undefined || value === '' || value === null) {
callback('请输入收金额') callback('请输入待确收金额')
} }
if (value && money(value)) { if (value && money(value)) {
callback() callback()
@@ -307,7 +307,7 @@ export default {
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 120, width: 120,
dataIndex: 'receivableAmount' dataIndex: 'receivableAmount'
@@ -589,9 +589,9 @@ export default {
} }
// 来款 // 来款
if (operateType === 'incomePayment') { if (operateType === 'incomePayment') {
// 是否存在收金额为0的项目 // 是否存在待确收金额为0的项目
if (arr.some(item => Number(item.receivableAmount) === 0)) { if (arr.some(item => Number(item.receivableAmount) === 0)) {
reject('存在收金额为0的项目!') reject('存在待确收金额为0的项目!')
} }
// if (arr.some(item => item.inAccount === 1)) { // if (arr.some(item => item.inAccount === 1)) {
// reject('不可选择已付全款的项目!') // reject('不可选择已付全款的项目!')
@@ -142,7 +142,7 @@ export default {
dataIndex: 'chargeProject', dataIndex: 'chargeProject',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'receivableAmount' dataIndex: 'receivableAmount'
@@ -191,7 +191,7 @@ export default {
dataIndex: 'chargeProject', dataIndex: 'chargeProject',
scopedSlots: {customRender: 'text'} scopedSlots: {customRender: 'text'}
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'receivableAmount' dataIndex: 'receivableAmount'
@@ -165,7 +165,7 @@ export default {
dataIndex: 'contactsTemporaryName', dataIndex: 'contactsTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 120, width: 120,
dataIndex: 'receivableAmount' dataIndex: 'receivableAmount'
@@ -176,7 +176,7 @@ export default {
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
width: 150, width: 150,
dataIndex: 'receivableAmount', dataIndex: 'receivableAmount',
@@ -299,7 +299,7 @@ export default {
dataIndex: 'contactsTemporaryNameOne', dataIndex: 'contactsTemporaryNameOne',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '收金额', title: '待确收金额',
align: 'center', align: 'center',
dataIndex: 'receivableAmount', dataIndex: 'receivableAmount',
width: 180, width: 180,
@@ -83,10 +83,10 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :xl="12" :sm="24"> <a-col :xl="12" :sm="24">
<a-form-item label="收金额" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="待确收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row :gutter="10"> <a-row :gutter="10">
<a-col :span="20"> <a-col :span="20">
<a-input placeholder="请输入收金额" <a-input placeholder="请输入待确收金额"
v-decorator="['receivableAmount',validatorRules.receivableAmount]" v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50' :maxLength='50'
@blur="addZero" @blur="addZero"
@@ -526,7 +526,7 @@ export default {
this.close() this.close()
}, },
/** /**
* 改变收金额 计算税额 未税金额 * 改变待确收金额 计算税额 未税金额
* */ * */
changeReceivableAmount(e){ changeReceivableAmount(e){
e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim() e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()
@@ -535,7 +535,7 @@ export default {
}) })
}, },
/** /**
* 改变税率计算税额 收金额 * 改变税率计算税额 待确收金额
* */ * */
changeRate(){ changeRate(){
this.$nextTick(() => { this.$nextTick(() => {
@@ -543,16 +543,16 @@ export default {
}) })
}, },
/** /**
* 根据收金额、税率计算税额 、未税金额 * 根据待确收金额、税率计算税额 、未税金额
* */ * */
calcAmount(){ calcAmount(){
// 获取收金额 // 获取待确收金额
let ysje = Number(this.form.getFieldValue('receivableAmount')) let ysje = Number(this.form.getFieldValue('receivableAmount'))
// 获取税率 // 获取税率
let rate = this.form.getFieldValue('taxRate') * 1 let rate = this.form.getFieldValue('taxRate') * 1
// 计算未税金额 未税金额 = 收金额 * (税率 + 1) // 计算未税金额 未税金额 = 待确收金额 * (税率 + 1)
let wsje = (ysje / (rate + 1)).toFixed(2) let wsje = (ysje / (rate + 1)).toFixed(2)
// 计算税额 税额 = 收金额 - 未税金额 保留两位小数 // 计算税额 税额 = 待确收金额 - 未税金额 保留两位小数
let se = (ysje - Number(wsje)).toFixed(2) let se = (ysje - Number(wsje)).toFixed(2)
// 表单赋值 // 表单赋值
this.form.setFieldsValue({ this.form.setFieldsValue({
@@ -630,7 +630,7 @@ export default {
} }
callback('请输入合法的金额数字,最多2位小数,10位整数') callback('请输入合法的金额数字,最多2位小数,10位整数')
} }
callback('请输入收金额') callback('请输入待确收金额')
}, },
/** /**
* 校验税额金额格式 * 校验税额金额格式
@@ -184,10 +184,10 @@
<template v-if="chargeWayType === 1 || chargeWayType === 2"> <template v-if="chargeWayType === 1 || chargeWayType === 2">
<a-row> <a-row>
<a-col :xl="12" :sm="24"> <a-col :xl="12" :sm="24">
<a-form-item label="收金额" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="待确收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row :gutter="10"> <a-row :gutter="10">
<a-col :span="20"> <a-col :span="20">
<a-input placeholder="请输入收金额" <a-input placeholder="请输入待确收金额"
v-decorator="['receivableAmount',validatorRules.receivableAmount]" v-decorator="['receivableAmount',validatorRules.receivableAmount]"
:maxLength='50' :maxLength='50'
@blur="addZero" @blur="addZero"
@@ -749,7 +749,7 @@ export default {
} else { } else {
// 清空之前选中的收费通知号 // 清空之前选中的收费通知号
this.selectedChargeNotice = null this.selectedChargeNotice = null
// 清空未税金额 收金额 税额 // 清空未税金额 待确收金额 税额
this.form.resetFields(['tax', 'noTaxAmount', 'receivableAmount']) this.form.resetFields(['tax', 'noTaxAmount', 'receivableAmount'])
} }
this.chargeWayType = e.target.value this.chargeWayType = e.target.value
@@ -840,7 +840,7 @@ export default {
} }
callback('请输入合法的金额数字,最多2位小数,10位整数') callback('请输入合法的金额数字,最多2位小数,10位整数')
} }
callback('请输入收金额') callback('请输入待确收金额')
}, },
/** /**
* 在新增成功后重新获取联系人列表 * 在新增成功后重新获取联系人列表
@@ -84,7 +84,7 @@ export default {
this.initEcharts(res.result) this.initEcharts(res.result)
// 将接口数据 转化成表格数据形式 // 将接口数据 转化成表格数据形式
let tableData = [ let tableData = [
{indexName: '收金额'}, {indexName: '待确收金额'},
] ]
dataSource.map((item, index) => { dataSource.map((item, index) => {
let dataIndex = 'key' + index let dataIndex = 'key' + index
@@ -140,7 +140,7 @@ export default {
}, },
series: [ series: [
{ {
name: '收金额', name: '待确收金额',
data: this.echartsData.allMoney, data: this.echartsData.allMoney,
type: 'bar', type: 'bar',
barMaxWidth: 60, barMaxWidth: 60,