szh-new
张同海 4 months ago
commit 5b53cb2d77

@ -387,7 +387,7 @@
},
{
title: '对账编号',
width: 100,
width: 140,
data: 'debitNo',
readOnly: true,
},
@ -412,7 +412,7 @@
{
title: '未开票金额',
width: 100,
data: 'debitNo',
data: 'invoiceAmountRest',
readOnly: true,
},
{

@ -27,7 +27,7 @@
const list = ref([
{ label: '委托编号', field: 'customerNo', span: 4, value: '' },
{ label: '主题单号', field: 'mblno', span: 4, value: '' },
{ label: '箱型箱量', field: 'packingType', span: 4, value: '' },
{ label: '箱型箱量', field: 'cntrTotal', span: 4, value: '' },
{ label: '件数', field: 'pkgs', span: 4, value: '' },
{ label: '毛重', field: 'kgs', span: 4, value: '' },
{ label: '尺码', field: 'cbm', span: 4, value: '' },
@ -71,8 +71,12 @@
.ant-form-item-label {
label {
font-size: 12px;
height: 24px;
}
}
.ant-form-item-control-input {
min-height: 24px;
}
.ant-form-item-control-input-content {
font-size: 12px;
font-weight: 600;

@ -128,7 +128,7 @@
}
//
const previewFile = (item) => {
let fileURL = `http://118.190.144.189:3008//${item.filePath}`
let fileURL = `http://118.190.144.189:3008/LinkAttach/${item.filePath}`
window.open(fileURL)
}
const showIcon = (v) => {

@ -28,3 +28,11 @@
width: 100% !important;
max-width: 100%;
}
.ant-input[disabled], .ant-input-affix-wrapper-disabled, .ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector, .ant-picker.ant-picker-disabled, .ant-input-number-disabled {
background-color: #F5F9FC!important;
color: #7A8798!important;
input {
color: #7A8798!important;
}
}

@ -76,6 +76,13 @@ getDictOption('seaexport_ctn_map').then((res) => {
})
export const searchFormSchema: FormSchema[] = [
{
field: 'customerNo',
label: '委托编号',
component: 'Input',
// defaultValue: '',
colProps: { span: 4 },
},
{
field: 'mblno',
label: '主提单号',
@ -1173,63 +1180,58 @@ export const columns: BasicColumn[] = [
sorter: true,
width: 150,
},
{
title: '报关单号',
dataIndex: 'customNo',
sorter: true,
width: 150,
},
{
dataIndex: 'customDate',
title: '报关日期',
sorter: true,
width: 150,
},
{
title: '商检单号',
dataIndex: 'inspectionNo',
sorter: true,
width: 150,
},
{
dataIndex: 'inspectionDate',
title: '商检日期',
sorter: true,
width: 150,
},
// { 先去掉,别删,后期可能要
// title: '报关单号',
// dataIndex: 'customNo',
// sorter: true,
// width: 150,
// },
// {
// dataIndex: 'customDate',
// title: '报关日期',
// sorter: true,
// width: 150,
// },
// {
// title: '商检单号',
// dataIndex: 'inspectionNo',
// sorter: true,
// width: 150,
// },
// {
// dataIndex: 'inspectionDate',
// title: '商检日期',
// sorter: true,
// width: 150,
// },
{
title: 'EDI备注',
dataIndex: 'ediRemark',
sorter: true,
width: 150,
},
{
dataIndex: 'enterprise',
title: '单位',
sorter: true,
width: 150,
customRender: ({ record }) => {
let RData = ''
// ListData.enterprise.forEach((item) => {
// if (item.value == record.enterprise) {
// RData = item.label
// }
// })
return RData
},
},
{
title: '单位编码',
dataIndex: 'enterpriseId',
sorter: true,
width: 150,
},
{
title: '报关票数',
sorter: true,
dataIndex: 'customsNum',
width: 150,
},
// { 先去掉,别删,后期可能要
// dataIndex: 'enterprise',
// title: '单位',
// sorter: true,
// width: 150,
// customRender: ({ record }) => {
// let RData = ''
// return RData
// },
// },
// {
// title: '单位编码',
// dataIndex: 'enterpriseId',
// sorter: true,
// width: 150,
// },
// {
// title: '报关票数',
// sorter: true,
// dataIndex: 'customsNum',
// width: 150,
// },
{
title: '预录',
sorter: true,
@ -1319,36 +1321,36 @@ export const columns: BasicColumn[] = [
width: 150,
sorter: true,
},
{
title: 'AMS收货人',
dataIndex: 'amsConsignee',
width: 150,
sorter: true,
},
{
title: 'AMS通知人',
dataIndex: 'amsNotifyParty',
width: 150,
sorter: true,
},
{
title: '操作英文名称',
sorter: true,
dataIndex: 'opEName',
width: 150,
},
{
title: '操作电话',
dataIndex: 'opTel',
sorter: true,
width: 150,
},
{
title: '操作邮箱',
sorter: true,
dataIndex: 'opEmail',
width: 150,
},
// {
// title: 'AMS收货人',
// dataIndex: 'amsConsignee',
// width: 150,
// sorter: true,
// },
// {
// title: 'AMS通知人',
// dataIndex: 'amsNotifyParty',
// width: 150,
// sorter: true,
// },
// {
// title: '操作英文名称',
// sorter: true,
// dataIndex: 'opEName',
// width: 150,
// },
// {
// title: '操作电话',
// dataIndex: 'opTel',
// sorter: true,
// width: 150,
// },
// {
// title: '操作邮箱',
// sorter: true,
// dataIndex: 'opEmail',
// width: 150,
// },
{
title: '商品名称',
sorter: true,

@ -11,12 +11,14 @@
v-if="visible"
:visible="visible"
width="80%"
:loading="loading"
:confirmLoading="loading"
>
<a-spin :spinning="loading">
<BasicTable
class="ds-table-detail"
@register="registerTable"
/>
</a-spin>
</a-modal>
</template>
<script lang="ts" setup>
@ -81,16 +83,19 @@
const init = () => {
visible.value = true
}
const loading = true
const loading = ref(false)
const handleOk = () => {
const slots = getSelectRows()
if (!slots.length) return createMessage.warning('请选择舱位!')
loading.value = true
BringInBookingSlotToOrder({ seaExportId: props.id, slots }).then(res => {
// createMessage.success(res.data)
emit('createTask', 205)
emit('createTask', 'WAIT_BILL_CONFIRM')
visible.value = false
loading.value = false
}).catch(() => {
visible.value = false
loading.value = false
})
}
defineExpose({

@ -52,7 +52,6 @@
<cargoInfo ref="RefcargoInfo" :details="bookingDetails"></cargoInfo>
<div class="line"></div>
<goodsTable
v-if="source == 'edit'"
ref="RefgoodsTable"
:details="bookingDetails"
isParent="parent"
@ -968,7 +967,8 @@
const submit = async () => {
const postData = {
businessId: id.value,
businessType: '1'
businessType: '1',
taskTypeName: 'WAIT_ORDER_AUDIT'
}
loading.value = true
await CreateTask(postData)
@ -985,12 +985,15 @@
const postData = {
businessId: id.value,
businessType: '1',
taskTypeName: route.query.status
taskTypeName: type || route.query.status
}
loading.value = true
await CreateTask(postData).then(res => {
loading.value = false
createMessage.success(res.message)
//
const { fullPath } = route //
tabStore.closeTabByKey(fullPath, router)
}).catch(() => {
loading.value = false
})
@ -1467,7 +1470,7 @@
if (cvalue.value == 1) {
sspace.value.init()
} else {
createTask(202)
createTask('WAIT_BOOKING')
}
cvisible.value = false
}
@ -1486,6 +1489,10 @@
//
if (res.data.isCompleted && res.data.flowStatus == 3) {
cvisible.value = true
} else {
//
const { fullPath } = route //
tabStore.closeTabByKey(fullPath, router)
}
}).catch(() => {
loading.value = false

@ -199,6 +199,15 @@ export const basicInfoFormSchema: FormSchema[] = [
valueFormat: 'YYYY-MM',
},
},
{
field: 'isBusinessLocking',
label: '业务锁定',
component: 'Input',
required: false,
dynamicDisabled: true,
colProps: { span: 4 },
colSlot: 'isBusinessLocking'
},
{
field: 'blType',
label: '装运方式',
@ -227,15 +236,6 @@ export const basicInfoFormSchema: FormSchema[] = [
}
}
},
{
field: 'isBusinessLocking',
label: '业务锁定',
component: 'Input',
required: false,
dynamicDisabled: true,
colProps: { span: 4 },
colSlot: 'isBusinessLocking'
},
{
label: '业务来源',
field: 'sourceId',
@ -399,7 +399,8 @@ export const basicInfoFormSchema: FormSchema[] = [
option: optionsStore.getOptionsByCode('GetSaleList'),
allowClear: true,
showSearch: true,
labelField: 'userName',
labelField: 'pinYinCode',
showName: 'userName',
valueField: 'id',
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
@ -505,27 +506,16 @@ export const basicInfoFormSchema: FormSchema[] = [
colProps: { span: 4 },
componentProps: ({ formModel }) => {
return {
api: () => {
return new Promise((resolve) => {
const data = JSON.parse(
JSON.stringify(optionsStore.getOptionsByCode('GetCustomerServiceList')),
)
data.forEach((e) => {
e.userName = `${e.userCode}/${e.userName}`
})
resolve({ data })
})
},
labelField: 'userName',
option: optionsStore.getOptionsByCode('GetCustomerServiceList'),
labelField: 'pinYinCode',
valueField: 'id',
showName: 'userName',
resultField: 'data',
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
if (obj) {
formModel.operatorName = obj.label
formModel.operatorName = obj.userName
} else {
formModel.operatorName = ''
}
@ -549,18 +539,9 @@ export const basicInfoFormSchema: FormSchema[] = [
colProps: { span: 4 },
componentProps: ({ formModel }) => {
return {
api: () => {
return new Promise((resolve) => {
const data = JSON.parse(
JSON.stringify(optionsStore.getOptionsByCode('GetCustomerServiceList')),
)
data.forEach((e) => {
e.userName = `${e.userCode}/${e.userName}`
})
resolve({ data })
})
},
labelField: 'userName',
option: optionsStore.getOptionsByCode('GetCustomerServiceList'),
labelField: 'pinYinCode',
showName: 'userName',
valueField: 'id',
resultField: 'data',
filterOption: (input: string, option: any) => {
@ -568,7 +549,7 @@ export const basicInfoFormSchema: FormSchema[] = [
},
onChange: (e, obj) => {
if (obj) {
formModel.customerServiceName = obj.label
formModel.customerServiceName = obj.userName
} else {
formModel.customerServiceName = ''
}
@ -592,24 +573,16 @@ export const basicInfoFormSchema: FormSchema[] = [
colProps: { span: 4 },
componentProps: ({ formModel }) => {
return {
api: () => {
return new Promise((resolve) => {
const data = optionsStore.getOptionsByCode('GetVouchingClerkList')
data.forEach((e) => {
e.userName = `${e.userCode}/${e.userName}`
})
resolve({ data })
})
},
labelField: 'userName',
option: optionsStore.getOptionsByCode('GetVouchingClerkList'),
labelField: 'pinYinCode',
showName: 'userName',
valueField: 'id',
resultField: 'data',
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
if (obj) {
formModel.docName = obj.label
formModel.docName = obj.userName
} else {
formModel.docName = ''
}
@ -636,14 +609,15 @@ export const basicInfoFormSchema: FormSchema[] = [
option: optionsStore.getOptionsByCode('GetSaleList'),
allowClear: true,
showSearch: true,
labelField: 'userName',
labelField: 'pinYinCode',
showName: 'userName',
valueField: 'id',
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
if (obj) {
formModel.foreignCustomerServiceName = obj.label
formModel.foreignCustomerServiceName = obj.userName
} else {
formModel.foreignCustomerServiceName = ''
}
@ -1375,7 +1349,7 @@ export const mailingInfoFormSchemaR: FormSchema[] = [
JSON.stringify(optionsStore.getOptionsByCode('GetClientPortSelectList')),
)
data.forEach((e) => {
e.portName = `${e.portName}/${e.ediCode}`
e.portName = `${e.portName}(${e.ediCode})`
})
resolve({ data })
})

@ -6,6 +6,7 @@
<template>
<div class="ds-sea-basic-info ds-card">
<ConfigForm
v-if="source == 'edit'"
@TransferData="TransferData"
:form-schema="basicInfoFormSchema"
:isTransfer="true"
@ -55,13 +56,13 @@
<template #isBusinessLocking="item">
<span class="lock-box" style="margin-right: 15px;">
业务锁定
<div>
<div :class="{ 'locksuo': item.values.isBusinessLocking, 'openkaisuo': !item.values.isBusinessLocking }">
<span class="iconfont" :class="{ 'icon-locksuo': item.values.isBusinessLocking, 'icon-lock-openkaisuo': !item.values.isBusinessLocking }"></span>
</div>
</span>
<span class="lock-box">
费用锁定
<div>
<div :class="{ 'locksuo': item.values.isFeeLocking, 'openkaisuo': !item.values.isFeeLocking }">
<span class="iconfont" :class="{ 'icon-locksuo': item.values.isFeeLocking, 'icon-lock-openkaisuo': !item.values.isFeeLocking }"></span>
</div>
</span>
@ -304,8 +305,15 @@
width: calc(50% - 7.5px);
padding-top: 3px;
font-size: 12px;
.openkaisuo {
background: #F5F5F5;
color: #7A8798;
}
.locksuo {
background: #257AFA;
color: #ffffff;
}
div {
border: 1px solid #d9d9d9;
border-radius: 2px;
height: 26px;
line-height: 26px;

@ -3,6 +3,7 @@
<div class="flex" style="justify-content: space-between;">
<h4>货物信息</h4>
<ConfigForm
v-if="source == 'edit'"
@TransferData="TransferData"
:form-schema="cargoInfoFormSchema2"
:isTransfer="true"
@ -766,10 +767,4 @@
height: 77px;
}
}
.form4 {
.ant-input {
position: relative;
top: -4px;
}
}
</style>

@ -2,7 +2,7 @@
<div class="goods-table" style="width: 100%; overflow: auto">
<a-spin :spinning="loadingTable">
<div>
<div class="flex" v-if="!isLockBooking" style="justify-content: space-between">
<div class="flex" v-if="!isLockBooking && source == 'edit'" style="justify-content: space-between">
<div>
<a-button type="link" v-repeat size="mini" @click="openDialog">
<span class="iconfont icon-liebiao1"></span>
@ -239,12 +239,13 @@
import { GetPackageSelectList } from '/@/views/operation/seaexport/api/BookingLedger'
registerAllModules()
import * as XLSX from 'xlsx'
// import printJS from 'print-js'
const route = useRoute()
const props = defineProps({
details: { type: Object, default: {} },
isLockBooking: { type: Boolean, default: false },
})
//
const source = route.query.source || 'edit'
const emit = defineEmits([
'changectnall',
'changeDetail',
@ -931,6 +932,16 @@
})
list.value.push(item)
})
//
if (source != 'edit') {
hotTb.value.hotInstance.updateSettings({
cells: function (row, col) {
//
const props = { readOnly: true }
return props
}
})
}
})
}
const moreSelectLoad = ref(true)
@ -1625,7 +1636,7 @@
//
if (source === 'edit' || source === 'Autofill.fill' || source === 'CopyPaste.paste') {
let dict: any = {}
//
if (changes[0][1] === 'ctn') {
const res = ctnDict.value.length ? ctnDict.value : (await GetCtnSelectList())?.data
if (!ctnDict.value.length) ctnDict.value = res
@ -1633,7 +1644,7 @@
return item.ctnName === changes[0][3]
})
if (item) dict = item[0]
console.log(dict)
list.value[changes[0][0]]['ctn'] = dict?.ctnName
list.value[changes[0][0]]['ctnCode'] = dict?.edicode
list.value[changes[0][0]]['size'] = dict?.ctnSize
@ -1643,6 +1654,7 @@
OTeu.value = dict.teu
}
list.value[changes[0][0]]['tareWeight'] = dict?.ctnWeight
console.log(list.value)
}
if (changes[0][1] === 'kindPkgsName') {
const res = kindPkgsDict.value.length

@ -8,6 +8,7 @@
<div class="flex" style="justify-content: space-between;">
<h4>运输信息</h4>
<ConfigForm
v-if="source == 'edit'"
@TransferData="TransferData"
:form-schema="mailingInfoFormSchemaR"
:isTransfer="true"

@ -9,11 +9,11 @@
<a-tabs @change="tabChange" v-model:activeKey="activeKey">
<a-tab-pane key="0" tab="机构信息">
<BasicForm @register="registerForm">
<template #isDepartment="item">
<a-switch @change="changeIsDepartment" v-model:checked="item.values.isDepartment" /> <span class="s-txt" :class="{ 's-active': item.values.isDepartment }">{{ item.values.isDepartment ? '是' : '否'}}</span>
<template #isDepartment="{ model }">
<a-switch @change="changeIsDepartment" v-model:checked="model.isDepartment" /> <span class="s-txt" :class="{ 's-active': model.isDepartment }">{{ model.isDepartment ? '是' : '否'}}</span>
</template>
<template #status="item">
<a-switch @change="changeStatus" v-model:checked="item.values.status" /> <span class="s-txt" :class="{ 's-active': item.values.status }">{{ item.values.status ? '启用' : '禁用'}}</span>
<template #status="{ model }">
<a-switch @change="changeStatus" v-model:checked="model.status" /> <span class="s-txt" :class="{ 's-active': model.status }">{{ model.status ? '启用' : '禁用'}}</span>
</template>
</BasicForm>
</a-tab-pane>

@ -400,12 +400,6 @@ export const formSchema: FormSchema[] = [
component: 'Switch',
label: '是否部门标识',
required: true,
componentProps: {
options: [
{ label: '是', value: true },
{ label: '否', value: false },
],
},
defaultValue: false,
colProps: {
span: 6,

@ -137,6 +137,7 @@
})
}
async function handleSelect(key: string, e) {
console.log(e)
if (e.selectedNodes[0]) {
ParentId.value = e.selectedNodes[0].value
} else {

@ -76,7 +76,7 @@
<span class="s-txt" :class="{ 's-active': model.isDispatcher }">{{ model.isDispatcher ? '是' : '否'}}</span>
</template>
<template #signatureUrl>
<DsFile ref="dsFile" :id="id" :show="false" height="300">
<DsFile v-if="id" :maxCount="1" ref="dsFile" :id="id" :show="false" height="300">
<a-button type="link" size="mini" style="padding-right: 3px!important;" @click="addFile">
<span class="iconfont icon-fujian1"></span>
点击上传图片

Loading…
Cancel
Save