张同海 3 months ago
commit ea55a3795e

@ -35,7 +35,7 @@
"dependencies": { "dependencies": {
"@ant-design/colors": "^6.0.0", "@ant-design/colors": "^6.0.0",
"@ant-design/icons-vue": "^6.1.0", "@ant-design/icons-vue": "^6.1.0",
"@handsontable/vue3": "^14.3.0", "@handsontable/vue3": "^14.5.0",
"@iconify/iconify": "^2.2.1", "@iconify/iconify": "^2.2.1",
"@logicflow/core": "^1.1.13", "@logicflow/core": "^1.1.13",
"@logicflow/extension": "^1.1.13", "@logicflow/extension": "^1.1.13",
@ -54,7 +54,7 @@
"echarts": "^5.3.2", "echarts": "^5.3.2",
"element-plus": "^2.3.12", "element-plus": "^2.3.12",
"exceljs": "^4.3.0", "exceljs": "^4.3.0",
"handsontable": "^14.3.0", "handsontable": "^14.5.0",
"intro.js": "^5.1.0", "intro.js": "^5.1.0",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"mitt": "^3.0.1", "mitt": "^3.0.1",

@ -133,10 +133,16 @@
tmp = tmp.replace(/\t/gi, ' ') tmp = tmp.replace(/\t/gi, ' ')
return tmp return tmp
} }
const removeTrailingSpaces = (text) => {
return text.replace(/ \s*$/gm, '')
}
// //
const textareaBlur = () => { const textareaBlur = () => {
if (cutList.length == 0 || !state.value) return if (cutList.length == 0 || !state.value) return
state.value = ToCDB(state.value).toUpperCase() state.value = ToCDB(state.value).toUpperCase()
//
state.value = removeTrailingSpaces(state.value)
} }
watch( watch(
() => state.value, () => state.value,

@ -180,13 +180,4 @@
.hot-red { .hot-red {
background-color: #f5222d; background-color: #f5222d;
} }
.handsontableInputHolder {
.autocompleteEditor {
.ht_master {
.wtHolder {
min-height: 200px!important;
}
}
}
}
} }

@ -157,14 +157,12 @@ export const formSchema: FormSchema[] = [
field: 'teu', field: 'teu',
label: 'TEU', label: 'TEU',
component: 'Input', component: 'Input',
colProps: { span: 12 }, colProps: { span: 12 },
}, },
{ {
field: 'cnExplain', field: 'cnExplain',
label: '中文说明', label: '中文说明',
component: 'InputTextArea', component: 'InputTextArea',
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: { componentProps: {
rows: 2, rows: 2,
@ -174,20 +172,16 @@ export const formSchema: FormSchema[] = [
field: 'enExplain', field: 'enExplain',
label: '英文说明', label: '英文说明',
component: 'InputTextArea', component: 'InputTextArea',
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: { componentProps: {
rows: 2, rows: 2,
}, },
}, },
{ {
field: 'note', field: 'orderNo',
label: '备注', label: '序号',
component: 'InputTextArea', component: 'Input',
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: {
rows: 2,
},
}, },
{ {
field: 'status', field: 'status',
@ -202,4 +196,13 @@ export const formSchema: FormSchema[] = [
], ],
}, },
}, },
{
field: 'note',
label: '备注',
component: 'InputTextArea',
colProps: { span: 24 },
componentProps: {
rows: 2,
},
},
] ]

@ -127,7 +127,7 @@
width: 60, width: 60,
}, },
canResize: true, canResize: true,
resizeHeightOffset: 35, resizeHeightOffset: 15,
immediate: true, immediate: true,
actionColumn: { actionColumn: {
width: 80, width: 80,

@ -59,7 +59,7 @@
<Divider type="horizontal" /> <Divider type="horizontal" />
<!-- 货物信息 --> <!-- 货物信息 -->
<div> <div>
<cargoInfo ref="RefcargoInfo"></cargoInfo> <cargoInfo ref="RefcargoInfo" :details="bookingDetails"></cargoInfo>
<div class="line"></div> <div class="line"></div>
<goodsTable <goodsTable
ref="RefgoodsTable" ref="RefgoodsTable"

@ -420,6 +420,12 @@ export const basicInfoFormSchema: FormSchema[] = [
// mailingInfo表单 // mailingInfo表单
export const mailingInfoFormSchemaL: FormSchema[] = [ export const mailingInfoFormSchemaL: FormSchema[] = [
{
label: '',
field: 'wtdwId',
component: 'Input',
show: false,
},
{ {
label: '', label: '',
field: 'shipperId', field: 'shipperId',
@ -437,7 +443,7 @@ export const mailingInfoFormSchemaL: FormSchema[] = [
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
api: GetShippingBillTemplateSelectList, api: GetShippingBillTemplateSelectList,
params: { type: 2 }, params: { type: 2, id: formModel.wtdwId },
labelField: 'templateName', labelField: 'templateName',
valueField: 'templateName', valueField: 'templateName',
immediate: false, immediate: false,
@ -477,7 +483,7 @@ export const mailingInfoFormSchemaL: FormSchema[] = [
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
api: GetShippingBillTemplateSelectList, api: GetShippingBillTemplateSelectList,
params: { type: 1 }, params: { type: 1, id: formModel.wtdwId },
labelField: 'templateName', labelField: 'templateName',
valueField: 'templateName', valueField: 'templateName',
resultField: 'data', resultField: 'data',
@ -518,11 +524,12 @@ export const mailingInfoFormSchemaL: FormSchema[] = [
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
api: GetShippingBillTemplateSelectList, api: GetShippingBillTemplateSelectList,
params: { type: 3 }, params: { type: 3, id: formModel.wtdwId },
labelField: 'templateName', labelField: 'templateName',
valueField: 'templateName', valueField: 'templateName',
resultField: 'data', resultField: 'data',
immediate: false, immediate: false,
alwaysLoad: false,
filterOption: (input: string, option: any) => { filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}, },
@ -2230,7 +2237,7 @@ export const otherInfoFormSchema: FormSchema[] = [
colProps: { span: 12 }, colProps: { span: 12 },
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
api: GetSaleList, api: GetCustomerServiceList,
labelField: 'pinYinCode', labelField: 'pinYinCode',
valueField: 'userName', valueField: 'userName',
showName: 'userName', showName: 'userName',

@ -73,7 +73,7 @@
<a-input-number v-model:value="item.floorPrice" size="small" :min="0" :max="999999999" placeholder="底价" /> <a-input-number v-model:value="item.floorPrice" size="small" :min="0" :max="999999999" placeholder="底价" />
</div> </div>
<span v-show="model.ctnPriceInfo.length > 1" @click="deleteCtnPrice(model.ctnPriceInfo, index, item)" class="iconfont icon-del"></span> <span v-show="model.ctnPriceInfo.length > 1" @click="deleteCtnPrice(model.ctnPriceInfo, index, item)" class="iconfont icon-del"></span>
<span v-show="model.ctnPriceInfo.length != 2" @click="model.ctnPriceInfo.push({})" class="iconfont icon-zengjiatianjiajiajian"></span> <span v-show="model.ctnPriceInfo.length != 3" @click="model.ctnPriceInfo.push({})" class="iconfont icon-zengjiatianjiajiajian"></span>
</div> </div>
</div> </div>
</a-form-item-rest> </a-form-item-rest>
@ -81,16 +81,17 @@
</BasicForm> </BasicForm>
</a-col> </a-col>
</a-row> </a-row>
<!-- <a-modal <a-modal
:visible="visible" :visible="visible"
:maskClosable="false" :maskClosable="false"
title="品名维护" title="品名维护"
width="80%" width="80%"
:closable="false" :closable="true"
@cancel="visible = false" @cancel="visible = false"
> >
<GoodsTable source="modal"></GoodsTable> <GoodsTable source="modal"></GoodsTable>
</a-modal> --> <template #footer></template>
</a-modal>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -141,7 +142,6 @@
} }
// //
const toggleCargo = (v) => { const toggleCargo = (v) => {
console.log(v)
cargoId.value = v cargoId.value = v
setFieldsValue3({ setFieldsValue3({
cargoId: v, cargoId: v,
@ -347,7 +347,6 @@
strKind = data.kindPkgsName ? data.kindPkgsName : '' strKind = data.kindPkgsName ? data.kindPkgsName : ''
enCapital = ToEn(num).toUpperCase() + ' ' + strKind + ' ONLY.' enCapital = ToEn(num).toUpperCase() + ' ' + strKind + ' ONLY.'
} }
console.log(strKind, 1)
} else { } else {
const strNum: any = GetStringNum(SS) const strNum: any = GetStringNum(SS)
strKind = SS.substring(strNum.length) ? SS.substring(strNum.length) : '' strKind = SS.substring(strNum.length) ? SS.substring(strNum.length) : ''
@ -357,7 +356,6 @@
strKind = data.kindPkgsName ? data.kindPkgsName : '' strKind = data.kindPkgsName ? data.kindPkgsName : ''
enCapital = 'SAY:' + ToEn(strNum).toUpperCase() + ' ' + strKind + ' ONLY.' enCapital = 'SAY:' + ToEn(strNum).toUpperCase() + ' ' + strKind + ' ONLY.'
} }
console.log(strKind, 2)
} }
setFieldsValue4({ totalNo: enCapital }) setFieldsValue4({ totalNo: enCapital })
} else { } else {
@ -383,7 +381,7 @@
}) })
watch( watch(
() => props.details, () => props.details,
async (nval) => { (nval) => {
if (Object.keys(nval).length) { if (Object.keys(nval).length) {
setFieldsValue1({ marks: nval.marks, description: nval.description }) setFieldsValue1({ marks: nval.marks, description: nval.description })
setFieldsValue2(nval) setFieldsValue2(nval)
@ -392,7 +390,7 @@
if (nval.cargoId) cargoId.value = nval.cargoId if (nval.cargoId) cargoId.value = nval.cargoId
} }
}, },
{ deep: true }, { deep: true }
) )
const id = ref() const id = ref()
watch( watch(
@ -463,6 +461,7 @@
} }
// //
const ctnChange = (v, item) => { const ctnChange = (v, item) => {
console.log(item)
optionsStore.getOptionsByCode('GetCtnSelectList').forEach(row => { optionsStore.getOptionsByCode('GetCtnSelectList').forEach(row => {
if (row.id == v) { if (row.id == v) {
item.ctn = row.ctnName item.ctn = row.ctnName

@ -2021,7 +2021,7 @@
.handsontable { .handsontable {
.wtHider { .wtHider {
max-height: 240px!important; max-height: 240px!important;
min-height: 130px; min-height: 160px;
} }
.htCheckboxRendererInput { .htCheckboxRendererInput {
position: relative; position: relative;

@ -6,17 +6,17 @@
<!-- 发货人 --> <!-- 发货人 -->
<template #shipper="{ model }"> <template #shipper="{ model }">
<span title="复制(copy)" class="iconfont icon-fuzhi3 copy-btn" style="font-size: 13px;" @click="copy(model.shipperContent, 'shipper')"></span> <span title="复制(copy)" class="iconfont icon-fuzhi3 copy-btn" style="font-size: 13px;" @click="copy(model.shipperContent, 'shipper')"></span>
<span title="保存到收发通模版(save)" class="iconfont icon-baocun save-btn" @click="save(model, 'shipper')"></span> <span title="保存到收发通模版(save)" class="iconfont icon-baocun save-btn" @click="save(model, '2')"></span>
</template> </template>
<!-- 收货人 --> <!-- 收货人 -->
<template #consignee="{ model }"> <template #consignee="{ model }">
<span title="复制(copy)" class="iconfont icon-fuzhi3 copy-btn" style="font-size: 13px;" @click="copy(model.consigneeContent, 'consignee')"></span> <span title="复制(copy)" class="iconfont icon-fuzhi3 copy-btn" style="font-size: 13px;" @click="copy(model.consigneeContent, 'consignee')"></span>
<span title="保存到收发通模版(save)" class="iconfont icon-baocun save-btn" @click="save(model, 'consignee')"></span> <span title="保存到收发通模版(save)" class="iconfont icon-baocun save-btn" @click="save(model, '1')"></span>
</template> </template>
<!-- 通知人 --> <!-- 通知人 -->
<template #notifyParty="{ model }"> <template #notifyParty="{ model }">
<span title="复制(copy)" class="iconfont icon-fuzhi3 copy-btn" style="font-size: 13px;" @click="copy(model.notifyPartyContent, 'notifyParty')"></span> <span title="复制(copy)" class="iconfont icon-fuzhi3 copy-btn" style="font-size: 13px;" @click="copy(model.notifyPartyContent, 'notifyParty')"></span>
<span title="保存到收发通模版(save)" class="iconfont icon-baocun save-btn" @click="save(model, 'notifyParty')"></span> <span title="保存到收发通模版(save)" class="iconfont icon-baocun save-btn" @click="save(model, '3')"></span>
<span title="第二通知人" class="iconfont icon-zengjia copy-btn" @click="openContactModal"></span> <span title="第二通知人" class="iconfont icon-zengjia copy-btn" @click="openContactModal"></span>
<a-modal <a-modal
class="ds-modal-small" class="ds-modal-small"
@ -236,6 +236,7 @@
}).then(res => { }).then(res => {
if (res.succeeded) { if (res.succeeded) {
createMessage.success('新增模版成功!') createMessage.success('新增模版成功!')
updateSchemaL()
temFlag.value = false temFlag.value = false
} }
}) })
@ -268,6 +269,7 @@
(nval) => { (nval) => {
if (nval) { if (nval) {
setFieldsValueL({ setFieldsValueL({
wtdwId: nval.customerId,
...nval ...nval
}) })
setFieldsValueR({ setFieldsValueR({

@ -1200,7 +1200,6 @@
// //
function traceSend() { function traceSend() {
traceRef.value.validate().then(() => { traceRef.value.validate().then(() => {
console.log(props.details.yardId)
if (traceForm.traceValue.includes('1') && !props.details.yardId) { if (traceForm.traceValue.includes('1') && !props.details.yardId) {
return createMessage.warning('请选择场站!') return createMessage.warning('请选择场站!')
} }
@ -1211,10 +1210,11 @@
businessId: props.id, businessId: props.id,
mblno: props.details.mblno, mblno: props.details.mblno,
yard: traceForm.traceValue.includes('1') ? props.details.yard : '', yard: traceForm.traceValue.includes('1') ? props.details.yard : '',
yardCode: traceForm.traceValue.includes('1') ? props.details.yardId : '', yardId: traceForm.traceValue.includes('1') ? props.details.yardId : '',
carrierId: traceForm.traceValue.includes('2') ? props.details.carrierId : '', carrierId: traceForm.traceValue.includes('2') ? props.details.carrierId : '',
carrier: traceForm.traceValue.includes('2') ? props.details.carrier : '', carrier: traceForm.traceValue.includes('2') ? props.details.carrier : '',
isBook: !!traceForm.traceValue.includes('2') isBook: !!traceForm.traceValue.includes('2'),
isFrontPort: !!traceForm.traceValue.includes('1')
} }
tloading.value = true tloading.value = true
SendTrace([query]).then((res) => { SendTrace([query]).then((res) => {

@ -138,6 +138,7 @@
} }
}) })
emitter.on('customerBack', (v) => { emitter.on('customerBack', (v) => {
console.log(v)
if (v.saleOrgIdList && v.saleOrgIdList.length) v['saleOrgId'] = v.saleOrgIdList[0] if (v.saleOrgIdList && v.saleOrgIdList.length) v['saleOrgId'] = v.saleOrgIdList[0]
setFieldsValue({ setFieldsValue({
...v ...v

19116
yarn.lock

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save