审批字段补充】

szh-new
lijingjia 5 months ago
parent 01179d05ec
commit 1c048a2678

@ -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

@ -8,9 +8,9 @@
<!-- 主单信息组件 -->
<MainInfo :data="details"></MainInfo>
<!-- 应收表格 -->
<FeeTable tbType="receive" :broData="broPayData" :id="data.id" @broInsert="broReceive"></FeeTable>
<FeeTable tbType="receive" :broData="broPayData" :id="data.id" :details="details" @broInsert="broReceive"></FeeTable>
<!-- 应付表格 -->
<FeeTable tbType="pay" :broData="broReceiveData" :id="data.id" @broInsert="broPay"></FeeTable>
<FeeTable tbType="pay" :broData="broReceiveData" :id="data.id" :details="details" @broInsert="broPay"></FeeTable>
<FeeStatistic :id="data.id" />
</div>
</template>

@ -13,7 +13,17 @@
>
<template #title>
<a-tabs v-model:activeKey="activeKey">
<a-tab-pane key="1" tab="审批历史">
<a-tab-pane key="1" tab="流程图" force-render>
<div class="ds-flow-status">
<span></span> 已通过
<span class="ml10"></span> 已驳回
</div>
<div v-for="(item, key) in flowMapData" :key="item.id">
<span class="flow-title">{{ item.auditTypeName }}</span>
<FlowDesign v-show="active == key" :process="item.content" :fields="[]" :readonly="true" />
</div>
</a-tab-pane>
<a-tab-pane key="2" tab="审批历史">
<el-timeline>
<el-timeline-item
placement="top"
@ -24,13 +34,6 @@
</el-timeline-item>
</el-timeline>
</a-tab-pane>
<a-tab-pane key="2" tab="流程图" force-render>
<div class="ds-flow-status">
<span></span> 已通过
<span class="ml10"></span> 已驳回
</div>
<FlowDesign :process="process" :fields="[]" :readonly="true" />
</a-tab-pane>
</a-tabs>
</template>
</a-modal>
@ -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;
}
}
</style>

@ -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
}
]

@ -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,

@ -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',

@ -129,8 +129,9 @@
if (previousId.value == node.value.id) {
visible.value = true
}
//
tooltiptext.value = `
<p>处理人${node.value.setInfo.userName}</p>
<p>处理人${node.value.setInfo.userNamep}</p>
<p>结果${Rdata(node.value.setInfo.taged)}</p>
<p>处理时间${node.value.setInfo.tagedTime}</p>
<p>备注${node.value.setInfo.description}</p>

Loading…
Cancel
Save