diff --git a/src/components/CostEntry/feeTable.vue b/src/components/CostEntry/feeTable.vue index ae0b9b7f..d6cefb88 100644 --- a/src/components/CostEntry/feeTable.vue +++ b/src/components/CostEntry/feeTable.vue @@ -82,6 +82,8 @@ type: String, default: '', }, + // 业务数据 + details: { type: [Object, Array] } }) const emits = defineEmits(['broInsert']) // 费用名称字典 @@ -200,25 +202,19 @@ source: async (query, process) => { // 获取当前选中行 const rowIndex = hotTb.value.hotInstance.getActiveEditor().row - const code = list.value[rowIndex - 1].customerType - console.log(list.value[rowIndex - 1]) - if (code) { - 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) + 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 }) - } else { - createMessage.warning('请先选择客户类别!') - process([]) - } + companyDict.value = data + const dict = data.map((item) => { + return item.codeName + '-' + item.shortName + }) + process(dict) + }) }, }, { @@ -507,16 +503,36 @@ if (item) dict = item[0] list.value[changes[0][0]]['customerType'] = dict?.value list.value[changes[0][0]]['customerTypeText'] = changes[0][3].split('-')[1] + list.value[changes[0][0]]['customerCode'] = '' + list.value[changes[0][0]]['customerName'] = '' }) } // 修改单位 if (changes[0][1] === 'unitText') { const item = unitDict.value.filter((item) => { - return item.name === changes[0][3] + return changes[0][3].includes(item.name) }) if (item) dict = item[0] 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 + } } // 修改币别 if (changes[0][1] === 'currencyName') { @@ -769,13 +785,16 @@ // 结算完毕(STATUS=9) if (data[row]?.feeStatus != 1 && col != 0) { // 配置不同状态的行颜色 - if (data[row]?.feeStatus == 0) { + if (data[row]?.feeStatus == 0 && col == 3) { props['className'] = 'hot-green' } - if (data[row]?.feeStatus == 2) { + if (data[row]?.feeStatus == 2 && col == 3) { props['className'] = 'hot-yellow' } - if (data[row]?.feeStatus == 7) { + if (data[row]?.feeStatus == 7 && col == 3) { + props['className'] = 'hot-red' + } + if ((data[row]?.feeStatus == 4 || data[row]?.feeStatus == 3) && col == 3) { props['className'] = 'hot-red' } return props diff --git a/src/components/CostEntry/index.vue b/src/components/CostEntry/index.vue index 9254d152..a8922183 100644 --- a/src/components/CostEntry/index.vue +++ b/src/components/CostEntry/index.vue @@ -8,9 +8,9 @@ - + - + diff --git a/src/components/FlowChart/index.vue b/src/components/FlowChart/index.vue index fcc0305a..521a5692 100644 --- a/src/components/FlowChart/index.vue +++ b/src/components/FlowChart/index.vue @@ -13,7 +13,17 @@ > @@ -42,15 +45,22 @@ import { GetFlowContent } from './api' import { GetFlowInstanceHistoryList } from '/@/views/flowcenter/flowInstances/api' const visible = ref(false) - const process = ref({}) - const activeKey = ref('2') + const activeKey = ref('1') + const flowMapData = ref(null) + const active = ref(0) const init = (id, type, btype) => { visible.value = true - GetFlowInstanceHistoryList({ id }).then(res => { - console.log(res) - }) + GetFlowContent({ businessId: id, type, businessType: btype }).then(res => { - process.value = JSON.parse(res.data) + const { data } = res + data.forEach(item => { + item.content = JSON.parse(item.content) + }) + flowMapData.value = data + const id = data[data.length - 1].id + GetFlowInstanceHistoryList({ id }).then(res => { + console.log(res) + }) }) } defineExpose({ @@ -99,5 +109,10 @@ border: 1px solid red; } } + .flow-title { + position: absolute; + z-index: 10; + top: 100px; + } } diff --git a/src/views/approve/fee/columns.tsx b/src/views/approve/fee/columns.tsx index 92db2187..3054a4b8 100644 --- a/src/views/approve/fee/columns.tsx +++ b/src/views/approve/fee/columns.tsx @@ -258,7 +258,7 @@ export const columns: BasicColumn[] = [ dataIndex: 'etd', title: '开船日期', align: 'left', - width: 120 + width: 90 }, { dataIndex: 'businessStatus', @@ -272,6 +272,12 @@ export const columns: BasicColumn[] = [ align: 'left', width: 120 }, + { + dataIndex: 'customNo', + title: '报关单号', + align: 'left', + width: 120 + }, { dataIndex: 'isBusinessLocking', title: '业务锁定', @@ -284,4 +290,244 @@ export const columns: BasicColumn[] = [ align: 'left', width: 120 }, + { + dataIndex: 'saleName', + title: '揽货人', + align: 'left', + width: 100 + }, + { + dataIndex: 'customerServiceName', + title: '客服员', + align: 'left', + width: 100 + }, + { + dataIndex: 'cntrTotal', + title: '集装箱', + align: 'left', + width: 100 + }, + { + dataIndex: 'accountDate', + title: '会计期间', + align: 'left', + width: 100 + }, + { + dataIndex: 'sourceName', + title: '业务来源', + align: 'left', + width: 100 + }, + { + dataIndex: 'detailName', + title: '来源明细', + align: 'left', + width: 100 + }, + { + dataIndex: 'businessUnit', + title: '经营单位', + align: 'left', + width: 100 + }, + { + dataIndex: 'remark', + title: '备注', + align: 'left', + width: 100 + }, + { + dataIndex: 'note', + title: '其他备注', + align: 'left', + width: 100 + }, + { + dataIndex: 'tradeTerm', + title: '贸易条款', + align: 'left', + width: 100 + }, + { + dataIndex: 'changeReason', + title: '更改单更改原因', + align: 'left', + width: 140 + }, + { + dataIndex: 'operator', + title: '操作', + align: 'left', + width: 100 + }, + { + dataIndex: 'docName', + title: '单证', + align: 'left', + width: 100 + }, + { + dataIndex: 'createByName', + title: '录入人', + align: 'left', + width: 140 + }, + { + dataIndex: 'loadPort', + title: '起运港', + align: 'left', + width: 100 + }, + { + dataIndex: 'receiptPlace', + title: '收货地', + align: 'left', + width: 100 + }, + { + dataIndex: 'destination', + title: '目的地', + align: 'left', + width: 140 + }, + { + dataIndex: 'dischargePort', + title: '卸货港', + align: 'left', + width: 100 + }, + { + dataIndex: 'vessel', + title: '船名', + align: 'left', + width: 100 + }, + { + dataIndex: 'voyage', + title: '航次', + align: 'left', + width: 140 + }, + { + dataIndex: 'customsNum', + title: '报关项数', + align: 'left', + width: 100 + }, + { + dataIndex: 'pkgs', + title: '件数', + align: 'left', + width: 100 + }, + { + dataIndex: 'kgs', + title: '重量', + align: 'left', + width: 100 + }, + { + dataIndex: 'cbm', + title: '尺码', + align: 'left', + width: 100 + }, + { + dataIndex: 'invoiceNo', + title: '发票号', + align: 'left', + width: 120 + }, + { + dataIndex: 'orderNo', + title: '订单号', + align: 'left', + width: 120 + }, + { + dataIndex: 'freightRatio', + title: '运杂费比例', + align: 'left', + width: 100 + }, + { + dataIndex: 'goodsName', + title: '品名', + align: 'left', + width: 100 + }, + { + dataIndex: 'mblFrt', + title: '付费方式', + align: 'left', + width: 100 + }, + { + dataIndex: 'carrierName', + title: '船公司', + align: 'left', + width: 100 + }, + { + dataIndex: 'yard', + title: '场站', + align: 'left', + width: 100 + }, + { + dataIndex: 'forwarder', + title: '订舱公司', + align: 'left', + width: 100 + }, + { + dataIndex: 'issueType', + title: '签单方式', + align: 'left', + width: 100 + }, + { + dataIndex: 'contractNo', + title: '运费协议号', + align: 'left', + width: 100 + }, + { + dataIndex: 'transitTerms', + title: '运输条款', + align: 'left', + width: 100 + }, + { + dataIndex: 'saleDeptName', + title: '所属部门', + align: 'left', + width: 100 + }, + { + dataIndex: 'contractNo', + title: '所属分部', + align: 'left', + width: 100 + }, + { + dataIndex: 'blType', + title: '装运方式', + align: 'left', + width: 100 + }, + { + dataIndex: 'cargoId', + title: '货物标识', + align: 'left', + width: 100 + }, + { + dataIndex: 'dangerClass', + title: '危险品等级', + align: 'left', + width: 100 + } ] \ No newline at end of file diff --git a/src/views/approve/fee/components/feeTable.vue b/src/views/approve/fee/components/feeTable.vue index 8ec4faf5..a4c3f19c 100644 --- a/src/views/approve/fee/components/feeTable.vue +++ b/src/views/approve/fee/components/feeTable.vue @@ -35,6 +35,7 @@ import { useMessage } from '/@/hooks/web/useMessage' import { GetFees } from '../api' import FeeActionBar from './feeActionBar.vue' + import { formatTableData } from '/@/hooks/web/common' import emitter from '/@/utils/Bus' const { notification } = useMessage() const props = defineProps({ @@ -70,13 +71,7 @@ const res = await GetFees(p) return new Promise((resolve) => { res.data.forEach(item => { - // item.stlDate = formatTableData(item.stlDate) - // item.etd = formatTableData(item.etd) - // item.closingDate = formatTableData(item.closingDate) - // item.eta = formatTableData(item.eta) - // item.issueDate = formatTableData(item.issueDate) - // item.customDate = formatTableData(item.customDate) - // item.inspectionDate = formatTableData(item.inspectionDate) + item.createTime = formatTableData(item.createTime) }) data.value = res.data oldData.value = JSON.parse(JSON.stringify(res.data)) @@ -174,7 +169,175 @@ align: 'left', title: '币别', width: 120 - } + }, + { + dataIndex: 'exchangeRate', + align: 'left', + title: '汇率', + width: 120 + }, + { + dataIndex: 'accTaxRate', + align: 'left', + title: '销项税率', + width: 120 + }, + { + dataIndex: 'remark', + align: 'left', + title: '备注', + width: 120 + }, + { + dataIndex: 'isAdvancedPay', + align: 'left', + title: '是否垫付', + width: 120, + customRender: ({ text }) => { + if (text === true) { + return '是' + } else if (text === false) { + return '否' + } + return text + } + }, + { + dataIndex: 'isInvoice', + align: 'left', + title: '禁开发票', + width: 120, + customRender: ({ text }) => { + if (text === true) { + return '是' + } else if (text === false) { + return '否' + } + return text + } + }, + { + dataIndex: 'commissionRate', + align: 'left', + title: '佣金比率', + width: 120 + }, + { + dataIndex: 'createByName', + align: 'left', + title: '录入人', + width: 120 + }, + { + dataIndex: 'createTime', + align: 'left', + title: '录入日期', + width: 120 + }, + // { + // dataIndex: 'createByName', + // align: 'left', + // title: '审核人', + // width: 120 + // }, + // { + // dataIndex: 'createTime', + // align: 'left', + // title: '审核日期', + // width: 120 + // }, + { + dataIndex: 'settlementAmount', + align: 'left', + title: '结算金额', + width: 120 + }, + { + dataIndex: 'invoiceAmount', + align: 'left', + title: '已开票金额', + width: 120 + }, + { + dataIndex: 'orderAmount', + align: 'left', + title: '申请金额', + width: 120 + }, + { + dataIndex: 'invoiceNum', + align: 'left', + title: '发票号码', + width: 120 + }, + { + dataIndex: 'customerFullName', + align: 'left', + title: '结算对象全称', + width: 120 + }, + { + dataIndex: 'tax', + align: 'left', + title: '税额', + width: 120 + }, + { + dataIndex: 'accTax', + align: 'left', + title: '销项税额', + width: 120 + }, + { + dataIndex: 'accTaxValue', + align: 'left', + title: '销项金额', + width: 120 + }, + { + dataIndex: 'debitNo', + align: 'left', + title: '对账编号', + width: 120 + }, + { + dataIndex: 'saleOrg', + align: 'left', + title: '核算单位', + width: 120 + }, + { + dataIndex: 'reason', + align: 'left', + title: '驳回/删除原因', + width: 140 + }, + { + dataIndex: 'isOpen', + align: 'left', + title: '是否机密', + width: 120, + customRender: ({ text }) => { + if (text === true) { + return '是' + } else if (text === false) { + return '否' + } + return text + } + }, + // { + // dataIndex: 'reason', + // align: 'left', + // title: '录入方式', + // width: 140 + // } + // { + // dataIndex: 'remark', + // align: 'left', + // title: 'FRT', + // width: 120 + // } ], isTreeTable: false, pagination: false, diff --git a/src/views/approve/fee/index.vue b/src/views/approve/fee/index.vue index b3b1e555..e44a7612 100644 --- a/src/views/approve/fee/index.vue +++ b/src/views/approve/fee/index.vue @@ -72,6 +72,7 @@ import { useMessage } from '/@/hooks/web/useMessage' import FeeTable from './components/feeTable.vue' import MainActionBar from './components/mainActionBar.vue' + import { formatTableData } from '/@/hooks/web/common' const { notification } = useMessage() // 主窗口loading const loading = ref(false) @@ -86,13 +87,8 @@ const res = await GetList(p) return new Promise((resolve) => { res.data.forEach(item => { - // item.stlDate = formatTableData(item.stlDate) - // item.etd = formatTableData(item.etd) - // item.closingDate = formatTableData(item.closingDate) - // item.eta = formatTableData(item.eta) - // item.issueDate = formatTableData(item.issueDate) - // item.customDate = formatTableData(item.customDate) - // item.inspectionDate = formatTableData(item.inspectionDate) + item.etd = formatTableData(item.etd) + item.accountDate = formatTableData(item.accountDate) }) data.value = res.data resolve({ data: [...res.data], total: res.count }) @@ -110,13 +106,13 @@ }, } let condition: API.ConditionItem[] = [] - // if (!!data.mblno) { - // condition.push({ - // FieldName: 'mblno', - // FieldValue: data.mblno, - // ConditionalType: 1 - // }) - // } + if (!!data.businessType) { + condition.push({ + FieldName: 'businessType', + FieldValue: data.businessType, + ConditionalType: 1 + }) + } // if (!!data.hblno) { // condition.push({ // FieldName: 'hblno', diff --git a/src/views/flowcenter/flowInstances/Lowflow/nodes/Node/index.vue b/src/views/flowcenter/flowInstances/Lowflow/nodes/Node/index.vue index fc5f85f9..2b69ad00 100644 --- a/src/views/flowcenter/flowInstances/Lowflow/nodes/Node/index.vue +++ b/src/views/flowcenter/flowInstances/Lowflow/nodes/Node/index.vue @@ -129,8 +129,9 @@ if (previousId.value == node.value.id) { visible.value = true } + // 等着后台查了返回吧,前端查不可取 tooltiptext.value = ` -

处理人:${node.value.setInfo.userName}

+

处理人:${node.value.setInfo.userNamep}

结果:${Rdata(node.value.setInfo.taged)}

处理时间:${node.value.setInfo.tagedTime}

备注:${node.value.setInfo.description}