|
|
|
@ -11,10 +11,14 @@
|
|
|
|
|
<span class="iconfont icon-new_document"></span>
|
|
|
|
|
添加
|
|
|
|
|
</a-button>
|
|
|
|
|
<a-button type="link" @click="BulkEdit">
|
|
|
|
|
<a-button type="link" @click="copyRow">
|
|
|
|
|
<span class="iconfont icon-fuzhi"></span>
|
|
|
|
|
复制
|
|
|
|
|
</a-button>
|
|
|
|
|
<!-- <a-button type="link" @click="BulkEdit">
|
|
|
|
|
<span class="iconfont icon-dengjizongshu"></span>
|
|
|
|
|
批量编辑
|
|
|
|
|
</a-button>
|
|
|
|
|
</a-button> -->
|
|
|
|
|
<a-popconfirm
|
|
|
|
|
title="确定删除当前选中数据?"
|
|
|
|
|
ok-text="是"
|
|
|
|
@ -204,7 +208,7 @@
|
|
|
|
|
// 标准字典
|
|
|
|
|
let unitDict = []
|
|
|
|
|
// 表格数据
|
|
|
|
|
const list = ref([])
|
|
|
|
|
const list = ref<any>([])
|
|
|
|
|
// 费用名称字典
|
|
|
|
|
const feeDict = ref([])
|
|
|
|
|
// 结算对象下拉数据
|
|
|
|
@ -302,29 +306,6 @@
|
|
|
|
|
className: 'htCenter',
|
|
|
|
|
readOnly: false,
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// title: '结算对象',
|
|
|
|
|
// width: 130,
|
|
|
|
|
// data: 'customerName',
|
|
|
|
|
// type: 'dropdown',
|
|
|
|
|
// source: async (query, process) => {
|
|
|
|
|
// // 获取当前选中行
|
|
|
|
|
// const rowIndex = hotTb.value.hotInstance.getActiveEditor().row
|
|
|
|
|
// const code = list.value[rowIndex]?.customerType || null
|
|
|
|
|
// GetClientListByCode({ code }).then((res) => {
|
|
|
|
|
// const { data } = res
|
|
|
|
|
// data.forEach((item) => {
|
|
|
|
|
// item['label'] = item.shortName
|
|
|
|
|
// item['value'] = item.codeName
|
|
|
|
|
// })
|
|
|
|
|
// companyDict.value = data
|
|
|
|
|
// const dict = data.map((item) => {
|
|
|
|
|
// return item.codeName + '-' + item.shortName
|
|
|
|
|
// })
|
|
|
|
|
// process(dict)
|
|
|
|
|
// })
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
{
|
|
|
|
|
title: '费用名称',
|
|
|
|
|
width: 130,
|
|
|
|
@ -357,7 +338,7 @@
|
|
|
|
|
{
|
|
|
|
|
title: '单位标准',
|
|
|
|
|
width: 130,
|
|
|
|
|
data: 'unit',
|
|
|
|
|
data: 'unitText',
|
|
|
|
|
type: 'dropdown',
|
|
|
|
|
source: async (query, process) => {
|
|
|
|
|
if (unitDict.value && unitDict.value.length) {
|
|
|
|
@ -425,6 +406,7 @@
|
|
|
|
|
data: 'unitPrice',
|
|
|
|
|
type: 'numeric',
|
|
|
|
|
format: '0.00',
|
|
|
|
|
readOnly: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '汇率',
|
|
|
|
@ -468,161 +450,6 @@
|
|
|
|
|
data: 'isAdvancedPay',
|
|
|
|
|
type: 'checkbox',
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// title: '费用英文名称',
|
|
|
|
|
// width: 130,
|
|
|
|
|
// data: 'feeEnName',
|
|
|
|
|
// type: 'dropdown',
|
|
|
|
|
// source: async (query, process) => {
|
|
|
|
|
// const res = feeDict.value.length ? feeDict.value : (await GetFeeCodeSelectList())?.data
|
|
|
|
|
// if (!feeDict.value.length) feeDict.value = res
|
|
|
|
|
// const dict = res.map((res) => {
|
|
|
|
|
// return res.enName
|
|
|
|
|
// })
|
|
|
|
|
// process(dict)
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '客户类别',
|
|
|
|
|
// width: 130,
|
|
|
|
|
// data: 'customerTypeText',
|
|
|
|
|
// type: 'dropdown',
|
|
|
|
|
// source: async (query, process) => {
|
|
|
|
|
// const results = await getDictOption('djy_cust_prop')
|
|
|
|
|
// const dict = results.map((item) => {
|
|
|
|
|
// return item.value + '-' + item.name
|
|
|
|
|
// })
|
|
|
|
|
// process(dict)
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// title: '数量',
|
|
|
|
|
// width: 120,
|
|
|
|
|
// data: 'quantity',
|
|
|
|
|
// type: 'numeric',
|
|
|
|
|
// format: '0',
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '不含税单价',
|
|
|
|
|
// width: 120,
|
|
|
|
|
// data: 'noTaxPrice',
|
|
|
|
|
// type: 'numeric',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '不含税金额',
|
|
|
|
|
// width: 120,
|
|
|
|
|
// data: 'noTaxAmount',
|
|
|
|
|
// type: 'numeric',
|
|
|
|
|
// format: '0.00',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '金额',
|
|
|
|
|
// width: 120,
|
|
|
|
|
// data: 'amount',
|
|
|
|
|
// type: 'numeric',
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// title: '备注',
|
|
|
|
|
// width: 120,
|
|
|
|
|
// data: 'note',
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// title: '销项税额',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'accTaxAmount',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '销项金额',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'accAmount',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '是否机密',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'isOpen',
|
|
|
|
|
// type: 'checkbox',
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// title: 'FRT',
|
|
|
|
|
// width: 120,
|
|
|
|
|
// data: 'feeFrt',
|
|
|
|
|
// type: 'dropdown',
|
|
|
|
|
// source: ['PP', 'CC'],
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '录入人',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'createByName',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '录入日期',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'createTime',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '结算金额',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'settlementAmount',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '已开票金额',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'invoiceAmount',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '对账编号',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'debitNo',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '修改人',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'updateByName',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '修改日期',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'updateTime',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '发票申请金额',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'orderInvoiceAmount',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '未开票金额',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'debitNo',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '审核人',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'auditOperator',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// title: '审核日期',
|
|
|
|
|
// width: 100,
|
|
|
|
|
// data: 'auditDate',
|
|
|
|
|
// readOnly: true,
|
|
|
|
|
// },
|
|
|
|
|
]
|
|
|
|
|
// 表格配置项
|
|
|
|
|
const settings = {
|
|
|
|
@ -659,21 +486,8 @@
|
|
|
|
|
afterChange(changes, source) {
|
|
|
|
|
// 这里定义了编辑,自动填充和拷贝数据的处理逻辑
|
|
|
|
|
if (source === 'edit' || source === 'Autofill.fill' || source === 'CopyPaste.paste') {
|
|
|
|
|
let dict = {}
|
|
|
|
|
let dict: any = {}
|
|
|
|
|
changes.forEach((res) => {
|
|
|
|
|
// // 费用类型
|
|
|
|
|
// if (changes[0][1] === 'feeTypeName') {
|
|
|
|
|
// const res = [
|
|
|
|
|
// { label: '应收', value: 1 },
|
|
|
|
|
// { label: '应付', value: 2 },
|
|
|
|
|
// ]
|
|
|
|
|
// const item = res.filter((item) => {
|
|
|
|
|
// return item.label === changes[0][3]
|
|
|
|
|
// })
|
|
|
|
|
// if (item) dict = item[0]
|
|
|
|
|
// list.value[changes[0][0]]['feeType'] = dict?.value
|
|
|
|
|
// list.value[changes[0][0]]['feeTypeName'] = dict?.label
|
|
|
|
|
// }
|
|
|
|
|
// 修改费用对象
|
|
|
|
|
if (changes[0][1] === 'customerName') {
|
|
|
|
|
const item = companyDict.value.filter((item) => {
|
|
|
|
@ -691,61 +505,43 @@
|
|
|
|
|
})
|
|
|
|
|
if (item) dict = item[0]
|
|
|
|
|
// feeType
|
|
|
|
|
console.log(dict)
|
|
|
|
|
list.value[res[0]]['feeName'] = changes[0][3].split('-')[1]
|
|
|
|
|
list.value[res[0]]['feeCode'] = dict['code']
|
|
|
|
|
list.value[res[0]]['feeId'] = dict['id']
|
|
|
|
|
list.value[res[0]]['unit'] = dict['defaultUnit']
|
|
|
|
|
list.value[res[0]]['unitText'] = dict['defaultUnitName']
|
|
|
|
|
list.value[res[0]]['currency'] = dict['defaultCurrency']
|
|
|
|
|
if (dict['defaultCurrency'] == 'RMB') {
|
|
|
|
|
list.value[res[0]]['exchangeRate'] = 1
|
|
|
|
|
} else {
|
|
|
|
|
list.value[res[0]]['exchangeRate'] = '【根据设置汇率生成】'
|
|
|
|
|
}
|
|
|
|
|
list.value[res[0]]['taxRate'] = dict['taxRate']
|
|
|
|
|
list.value[res[0]]['isInvoice'] = dict['isInvoice']
|
|
|
|
|
list.value[res[0]]['isAdvancedPay'] = dict['isAdvancedPay']
|
|
|
|
|
// list.value[res[0]]['feeEnName'] = dict['enName']
|
|
|
|
|
// list.value[res[0]]['unitText'] = dict['defaultUnitName']
|
|
|
|
|
// list.value[res[0]]['customerTypeText'] = dict['defaultDebitName']
|
|
|
|
|
// list.value[res[0]]['customerType'] = dict['defaultDebit']
|
|
|
|
|
// list.value[res[0]]['isOpen'] = dict['isOpen']
|
|
|
|
|
|
|
|
|
|
// list.value[res[0]]['feeFrt'] = dict['feeFrt']
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
// 修改币别
|
|
|
|
|
if (changes[0][1] === 'currency') {
|
|
|
|
|
if (changes[0][3] == 'RMB') {
|
|
|
|
|
list.value[changes[0][0]]['exchangeRate'] = 1
|
|
|
|
|
} else {
|
|
|
|
|
list.value[changes[0][0]]['exchangeRate'] = '【根据设置汇率生成】'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 修改单位
|
|
|
|
|
if (changes[0][1] === 'unit') {
|
|
|
|
|
if (changes[0][1] === 'unitText') {
|
|
|
|
|
const item = unitDict.value.filter((item) => {
|
|
|
|
|
return changes[0][3].includes(item.name)
|
|
|
|
|
})
|
|
|
|
|
if (item) dict = item[0]
|
|
|
|
|
if (!/^[\u3400-\u9FBF]+$/.test(dict.label)) {
|
|
|
|
|
list.value[changes[0][0]]['isCtn'] = true
|
|
|
|
|
}
|
|
|
|
|
list.value[changes[0][0]]['unit'] = dict?.value
|
|
|
|
|
// list.value[changes[0][0]]['unitText'] = changes[0][3].split('-')[1]
|
|
|
|
|
// 业务数据有件数,修改单位,带出件数
|
|
|
|
|
// const text = list.value[changes[0][0]]['unitText']
|
|
|
|
|
// if (text == '单票') {
|
|
|
|
|
// list.value[changes[0][0]]['quantity'] = 1
|
|
|
|
|
// } else if (text == '件数') {
|
|
|
|
|
// list.value[changes[0][0]]['quantity'] = props.details.pkgs
|
|
|
|
|
// } else if (text == '重量') {
|
|
|
|
|
// list.value[changes[0][0]]['quantity'] = props.details.kgs
|
|
|
|
|
// } else if (text == '尺码') {
|
|
|
|
|
// list.value[changes[0][0]]['quantity'] = props.details.cbm
|
|
|
|
|
// } else if (text == '计费吨') {
|
|
|
|
|
// let r = props.details.kgs
|
|
|
|
|
// const k = (props.details.pkgs || 0) / 1000
|
|
|
|
|
// if (k > r) {
|
|
|
|
|
// r = k
|
|
|
|
|
// }
|
|
|
|
|
// list.value[changes[0][0]]['quantity'] = r
|
|
|
|
|
list.value[changes[0][0]]['unitText'] = dict?.label
|
|
|
|
|
}
|
|
|
|
|
// // 修改币别
|
|
|
|
|
// if (changes[0][1] === 'currencyName') {
|
|
|
|
|
// const item = currencyDict.value.filter((item) => {
|
|
|
|
|
// return item.name === changes[0][3]
|
|
|
|
|
// })
|
|
|
|
|
// if (item) dict = item[0]
|
|
|
|
|
// list.value[changes[0][0]]['currency'] = dict?.codeName
|
|
|
|
|
// }
|
|
|
|
|
// ============================
|
|
|
|
|
// // 修改费用英文名称
|
|
|
|
|
// if (changes[0][1] === 'feeEnName') {
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 修改客户类别
|
|
|
|
|
if (changes[0][1] === 'customerTypeText') {
|
|
|
|
@ -758,61 +554,6 @@
|
|
|
|
|
list.value[changes[0][0]]['customerTypeText'] = changes[0][3].split('-')[1]
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// // 当前操作的行
|
|
|
|
|
// const index = changes[0][0]
|
|
|
|
|
// // 修改不含税单价计算
|
|
|
|
|
// if (changes[0][1] === 'noTaxPrice') {
|
|
|
|
|
// // 单价
|
|
|
|
|
// list.value[index].unitPrice = Number(
|
|
|
|
|
// (changes[0][3] || 0) * ((list.value[index].taxRate || 0) / 100 + 1),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// // 金额
|
|
|
|
|
// list.value[index].amount = Number(
|
|
|
|
|
// (list.value[index].unitPrice || 0) * (list.value[index].quantity || 0),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// // 不含税金额
|
|
|
|
|
// list.value[index].noTaxAmount = Number(
|
|
|
|
|
// (changes[0][3] || 0) * (list.value[index].quantity || 0),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// }
|
|
|
|
|
// // 修改单价计算
|
|
|
|
|
// if (changes[0][1] === 'unitPrice') {
|
|
|
|
|
// // 不含税单价
|
|
|
|
|
// list.value[index].noTaxPrice = Number(
|
|
|
|
|
// (changes[0][3] || 0) / ((list.value[index].taxRate || 0) / 100 + 1),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// // 金额
|
|
|
|
|
// list.value[index].amount = Number(
|
|
|
|
|
// (changes[0][3] || 0) * (list.value[index].quantity || 0),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// // 不含税金额
|
|
|
|
|
// list.value[index].noTaxAmount = Number(
|
|
|
|
|
// (list.value[index].noTaxPrice || 0) * (list.value[index].quantity || 0),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// }
|
|
|
|
|
// // 修改数量
|
|
|
|
|
// if (changes[0][1] === 'quantity') {
|
|
|
|
|
// // 金额
|
|
|
|
|
// list.value[index].amount = Number(
|
|
|
|
|
// (changes[0][3] || 0) * (list.value[index].unitPrice || 0),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// // 不含税金额
|
|
|
|
|
// list.value[index].noTaxAmount = Number(
|
|
|
|
|
// (changes[0][3] || 0) * (list.value[index].noTaxPrice || 0),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// }
|
|
|
|
|
// // 修改税率
|
|
|
|
|
// if (changes[0][1] === 'taxRate') {
|
|
|
|
|
// // 不含税单价
|
|
|
|
|
// list.value[index].noTaxPrice = Number(
|
|
|
|
|
// (list.value[index].unitPrice || 0) / ((changes[0][3] || 0) / 100 + 1),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// // 不含税金额
|
|
|
|
|
// list.value[index].noTaxAmount = Number(
|
|
|
|
|
// (list.value[index].noTaxPrice || 0) * (list.value[index].quantity || 0),
|
|
|
|
|
// ).toFixed(6)
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
@ -889,6 +630,13 @@
|
|
|
|
|
deep: true,
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
const copyRow = () => {
|
|
|
|
|
list.value.forEach((item: any) => {
|
|
|
|
|
if (item.selected) {
|
|
|
|
|
list.value.push({ ...item, id: '' })
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// 删除行
|
|
|
|
|
const deleteRow = async () => {
|
|
|
|
|
// list.value.forEach((item: any, index) => {
|
|
|
|
|