diff --git a/src/components/setFormModel/index.vue b/src/components/setFormModel/index.vue index 4884e42..a857eb1 100644 --- a/src/components/setFormModel/index.vue +++ b/src/components/setFormModel/index.vue @@ -66,6 +66,10 @@ export default { default: () => { return [] } + }, + type: { + type: String, + default: '' } }, data() { @@ -102,9 +106,14 @@ export default { }, addFrom(item, index) { console.log(item) - item.field = item.label.toLowerCase() - this.fromLabel.push(item) - this.fromAllLabel.splice(index, 1) + if (this.type === 'from') { + item.field = item.label.toLowerCase() + this.fromLabel.push(item) + this.fromAllLabel.splice(index, 1) + } else if (this.type === 'table') { + this.fromLabel.push(item) + this.fromAllLabel.splice(index, 1) + } }, removeFrom(item, index) { this.fromAllLabel.push(item) diff --git a/src/store/getters.js b/src/store/getters.js index 4ad47e3..adf28aa 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -16,7 +16,8 @@ const getters = { addRouters: state => state.permission.addRouters, multiTab: state => state.app.multiTab, lang: state => state.i18n.lang, - bookingList: state => state.user.bookingList + bookingList: state => state.user.bookingList, + needSavePages: state => state.user.needSavePages } diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 731e528..bfa4751 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -23,7 +23,7 @@ import { unReadNotice } from '@/api/modular/system/noticeReceivedManage' import { - welcome,dateFormat + welcome, dateFormat } from '@/utils/util' import store from '../index' import router from '../../router' @@ -39,7 +39,8 @@ const user = { roles: [], info: {}, notices: [], // 接收的通知公告 - bookingList: {} // 订舱台账列表 + bookingList: {}, // 订舱台账列表 + needSavePages: [] // 需要保存的页面 }, mutations: { @@ -71,26 +72,29 @@ const user = { SET_NOTICES: (state, notices) => { state.notices = notices }, - APPEND_NOTICE:(state,notice)=>{ - notice.publicTime=dateFormat(notice.publicTime,'YYYY-mm-dd HH:MM:SS') - let notices=state.notices; - let temp=notices.rows.filter(m=>{return m.value==notice.type})[0] - let other=notices.rows.filter(m=>{return m.value!=notice.type}) + APPEND_NOTICE: (state, notice) => { + notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') + let notices = state.notices; + let temp = notices.rows.filter(m => { return m.value == notice.type })[0] + let other = notices.rows.filter(m => { return m.value != notice.type }) temp.noticeData.unshift(notice); notices.totalRows++; - if(temp.noticeData.length>6){ + if (temp.noticeData.length > 6) { temp.noticeData.pop(); } - notices.rows=[]; + notices.rows = []; notices.rows.push(temp); - notices.rows.push.apply(notices.rows,other); - notices.rows.sort((obj1,obj2)=>{ - return obj1.index-obj2.index + notices.rows.push.apply(notices.rows, other); + notices.rows.sort((obj1, obj2) => { + return obj1.index - obj2.index }) - state.notices=notices; + state.notices = notices; }, SET_BOOKINGLIST: (state, list) => { state.bookingList = list + }, + SET_NEEDSAVEPAGES: (state, list) => { + state.needSavePages = list } }, @@ -271,11 +275,20 @@ const user = { commit }, obj) { return new Promise((resolve) => { - console.log('设置订舱列表', obj) commit('SET_BOOKINGLIST', obj) resolve() }) }, + + // 设置需要保存页面 + setNeedSavePages({ + commit + }, obj) { + return new Promise((resolve) => { + commit('SET_NEEDSAVEPAGES', obj) + resolve() + }) + }, } } diff --git a/src/views/main/BookingLedger/detail/index.vue b/src/views/main/BookingLedger/detail/index.vue index c136c36..6cad7e3 100644 --- a/src/views/main/BookingLedger/detail/index.vue +++ b/src/views/main/BookingLedger/detail/index.vue @@ -106,7 +106,7 @@ import { BookingOrderAdd, BookingOrderAddOrUpdate } from '@/api/modular/main/BookingLedger' -import { mapGetters } from 'vuex' +import { mapActions, mapGetters } from 'vuex' export default { name: 'BookingDetail', inject: ['reload'], @@ -139,11 +139,11 @@ export default { isAdd: false, moreStr: '', tabActiveKey: '1', - historyData: {} + historyData: {}, } }, computed: { - ...mapGetters(['bookingList']), + ...mapGetters(['bookingList', 'needSavePages']), Showtabs() { let Rdata = true if (this.bookingDetails.hbList && this.bookingDetails.hbList.length) { @@ -207,6 +207,7 @@ export default { }) }, methods: { + ...mapActions(['setNeedSavePages']), getRouterHis() { const newId = this.$route.query.id if (Object.keys(this.historyData).includes(newId)) { diff --git a/src/views/main/BookingLedger/list/index.vue b/src/views/main/BookingLedger/list/index.vue index 2d7bf66..1d25bed 100644 --- a/src/views/main/BookingLedger/list/index.vue +++ b/src/views/main/BookingLedger/list/index.vue @@ -34,12 +34,12 @@ > 查询 重置 - 多提单号查询 - + + 多提单号查询 + + + + {{ advanced ? '收起查询' : '更多查询' }} @@ -138,6 +138,7 @@ ref="setForm" :formData="formData" :formAllData="formMoreData" + type="from" @ok="submitForm" v-if="formMoreData" > @@ -146,6 +147,7 @@ ref="setTableForm" :formData="formTableData" :formAllData="formMoreTableData" + type="table" @ok="submitTableForm" v-if="formMoreTableData" > @@ -219,6 +221,7 @@ export default { }, // 表格编辑 formTableData: JSON.parse(JSON.stringify(initData.columns)), + fromTableAllData: null, formMoreTableData: null, // 新增弹窗 addVisible: false, @@ -236,6 +239,7 @@ export default { created() { this.showColumns = JSON.parse(JSON.stringify(initData.columns)) this.formAllData = JSON.parse(JSON.stringify(initData.condAllData)) + this.fromTableAllData = JSON.parse(JSON.stringify(initData.columnsAllData)) this.getList() this.getFormData() this.getTableList() @@ -311,16 +315,38 @@ export default { }) }, getTableList() { - const nowTableArr = this.formTableData.map((item, index) => { - return item.field - }) - const moreTableArr = [] - this.formAllData.map((item, index) => { - if (!nowTableArr.includes(item.label.toLowerCase())) { - moreTableArr.push(item) + DjyUserConfigGet({ type: 'booking_list_column' }).then(res => { + if (res.data && JSON.parse(res.data.configJson).length) { + this.gridOptions.columns = JSON.parse(res.data.configJson) + this.formTableData = JSON.parse(res.data.configJson) + const nowTableArr = this.formTableData.map((item, index) => { + return item.field + }) + const moreTableArr = [] + this.fromTableAllData.map((item, index) => { + if (!nowTableArr.includes(item.field)) { + moreTableArr.push(item) + } + }) + this.formMoreTableData = moreTableArr + this.$forceUpdate() + console.log(this.gridOptions.columns) + } else { + const nowTableArr = this.formTableData.map((item, index) => { + return item.field + }) + const moreTableArr = [] + this.fromTableAllData.map((item, index) => { + if (!nowTableArr.includes(item.field)) { + moreTableArr.push(item) + } + }) + this.formMoreTableData = moreTableArr + this.$forceUpdate() } }) - this.formMoreTableData = moreTableArr + // === 历史内容 === + console.log('表格自定义数据 - 更多: ', this.formMoreTableData) }, handlePageChange({ currentPage, pageSize }) { this.gridOptions.pagerConfig.currentPage = currentPage @@ -413,16 +439,24 @@ export default { this.$refs.setTableForm.open() }, submitTableForm(data) { - const newColumns = [ - // ...[{ type: 'checkbox', width: 60, noDraggable: true }], - ...JSON.parse(JSON.stringify(data)) - // ...[{ title: '操作', width: 80, noDraggable: true, slots: { default: 'operate' }, fixed: 'right' }] - ] - this.gridOptions.columns = newColumns - const arr = data.map((item, index) => { - return item.label - }) + this.gridOptions.columns = JSON.parse(JSON.stringify(data)) this.$refs.setTableForm.handleCancel() + this.editColumnsSave(this.gridOptions.columns) + }, + + resizableChange(e) { + this.gridOptions.columns[e.columnIndex].width = e.resizeWidth + console.log('==== 列宽拖动 =====', e.resizeWidth, this.gridOptions.columns[e.columnIndex]) + this.editColumnsSave(this.gridOptions.columns) + }, + editColumnsSave(data = {}) { + DjyUserConfigAdd({ + type: 'booking_list_column', + configJson: JSON.stringify(data) + }).then(res => { + console.log('保存成功') + this.$refs.setForm.handleCancel() + }) }, columnChange(data) { @@ -529,17 +563,27 @@ export default { // 多表单 moreNumSubmit() { - this.formRes.MBLNO = this.moreNumVal.replace(/\n|\r/g, ',') + let data = '' + this.moreNumVal + .replace(/\n|\r/g, ',') + .split(',') + .forEach(item => { + if (item.replace(/\s*/g, '')) { + if (data) { + data = `${data},${item}` + } else { + data = item + } + } + }) + + this.formRes.MBLNO = data this.$refs['fromlabel-MBLNO'][0].$data.value = this.formRes.MBLNO this.$forceUpdate() this.moreNumCancel() }, moreNumCancel() { this.moreNumVisible = false - }, - - resizableChange() { - console.log('==== 列宽拖动 =====') } } } diff --git a/src/views/main/BookingLedger/list/modules/initData.js b/src/views/main/BookingLedger/list/modules/initData.js index 121cc41..b4e46e4 100644 --- a/src/views/main/BookingLedger/list/modules/initData.js +++ b/src/views/main/BookingLedger/list/modules/initData.js @@ -1,61 +1,133 @@ export default { columns: [ { type: 'checkbox', width: 60, noDraggable: true }, - { field: 'carrier', title: '船公司', showHeaderOverflow: true, sortable: true }, - { field: 'yard', title: '场站', showHeaderOverflow: true, sortable: true }, - { title: '提单号', showHeaderOverflow: true, showOverflow: false, sortable: true, slots: { default: 'mblno' } }, - { title: '船名航次', showHeaderOverflow: true, sortable: true, slots: { default: 'vessel' } }, - { field: 'etd', title: '开船日期', showHeaderOverflow: true, sortable: true }, - { field: 'voyno', title: '海关航次', showHeaderOverflow: true }, - { field: 'bookingStatus', title: '定舱状态', showHeaderOverflow: true }, - { field: 'vgm', title: 'VGM', showHeaderOverflow: true }, - { field: 'billStatus', title: '提单状态', showHeaderOverflow: true }, - { field: 'portdischarge', title: '卸货港', showHeaderOverflow: true, sortable: true }, - { field: 'createdUserName', title: '创建人', showHeaderOverflow: true, sortable: true }, - { field: 'createdTime', title: '创建时间', showHeaderOverflow: true, sortable: true }, - { field: 'cntrtotal', title: '箱型箱量', showHeaderOverflow: true, sortable: true }, - { title: '操作', width: 80, noDraggable: true, slots: { default: 'operate' }, fixed: 'right' } + { field: 'carrier', width: 120, title: '船公司', showHeaderOverflow: true, sortable: true }, + { field: 'yard', width: 120, title: '场站', showHeaderOverflow: true, sortable: true }, + { + field: 'mblno', + width: 160, + title: '主提单号', + showHeaderOverflow: true, + showOverflow: false, + sortable: true, + slots: { default: 'mblno' } + }, + { + field: 'vessel', + width: 120, + title: '船名航次', + showHeaderOverflow: true, + sortable: true, + slots: { default: 'vessel' } + }, + { field: 'etd', width: 160, title: '开船日期', showHeaderOverflow: true, sortable: true }, + { field: 'voyno', width: 120, title: '海关航次', showHeaderOverflow: true }, + { field: 'bookingStatus', width: 120, title: '订舱状态', showHeaderOverflow: true }, + { field: 'vgm', width: 120, title: 'VGM', showHeaderOverflow: true }, + { field: 'billStatus', width: 120, title: '提单状态', showHeaderOverflow: true }, + { field: 'portdischarge', width: 120, title: '卸货港', showHeaderOverflow: true, sortable: true }, + { field: 'createdUserName', width: 120, title: '创建人', showHeaderOverflow: true, sortable: true }, + { field: 'createdTime', width: 160, title: '创建时间', showHeaderOverflow: true, sortable: true }, + { field: 'cntrtotal', width: 120, title: '箱型箱量', showHeaderOverflow: true, sortable: true }, + { field: 'operate', title: '操作', width: 80, noDraggable: true, slots: { default: 'operate' }, fixed: 'right' } + ], + columnsAllData: [ + { field: 'carrier', width: 120, title: '船公司', showHeaderOverflow: true, sortable: true }, + { field: 'yard', width: 120, title: '场站', showHeaderOverflow: true, sortable: true }, + { + field: 'mblno', + width: 160, + title: '主提单号', + showHeaderOverflow: true, + showOverflow: false, + sortable: true, + slots: { default: 'mblno' } + }, + { + field: 'vessel', + width: 120, + title: '船名航次', + showHeaderOverflow: true, + sortable: true, + slots: { default: 'vessel' } + }, + { field: 'etd', width: 160, title: '开船日期', showHeaderOverflow: true, sortable: true }, + { field: 'voyno', width: 120, title: '海关航次', showHeaderOverflow: true }, + { field: 'bookingStatus', width: 120, title: '订舱状态', showHeaderOverflow: true }, + { field: 'vgm', width: 120, title: 'VGM', showHeaderOverflow: true }, + { field: 'billStatus', width: 120, title: '提单状态', showHeaderOverflow: true }, + { field: 'portdischarge', width: 120, title: '卸货港', showHeaderOverflow: true, sortable: true }, + { field: 'createdUserName', width: 120, title: '创建人', showHeaderOverflow: true, sortable: true }, + { field: 'createdTime', width: 160, title: '创建时间', showHeaderOverflow: true, sortable: true }, + { field: 'cntrtotal', width: 120, title: '箱型箱量', showHeaderOverflow: true, sortable: true }, + { field: 'atd', width: 160, title: '实际开船日期', showHeaderOverflow: true, sortable: true }, + { field: 'blfrt', width: 120, title: '付费方式', showHeaderOverflow: true, sortable: true }, + { field: 'cargoid', width: 120, title: '货物标识', showHeaderOverflow: true, sortable: true }, + { field: 'cbm', width: 90, title: '尺码', showHeaderOverflow: true, sortable: true }, + { field: 'consignee', width: 120, title: '收货人', showHeaderOverflow: true, sortable: true }, + { field: 'contractno', width: 120, title: '合约号', showHeaderOverflow: true, sortable: true }, + { field: 'customername', width: 120, title: '客户', showHeaderOverflow: true, sortable: true }, + { field: 'customser', width: 120, title: '报关行', showHeaderOverflow: true, sortable: true }, + { field: 'custservice', width: 120, title: '客服', showHeaderOverflow: true, sortable: true }, + { field: 'doc', width: 120, title: '单证', showHeaderOverflow: true, sortable: true }, + { field: 'dunno', width: 120, title: '危险品编号', showHeaderOverflow: true, sortable: true }, + { field: 'forwarder', width: 120, title: '订舱代理', showHeaderOverflow: true, sortable: true }, + { field: 'freightpayer', width: 120, title: '付款方', showHeaderOverflow: true, sortable: true }, + { field: 'hblno', width: 120, title: '分提单号', showHeaderOverflow: true, sortable: true }, + { field: 'hscode', width: 120, title: 'HS代码', showHeaderOverflow: true, sortable: true }, + { field: 'issueplace', width: 120, title: '签单地点', showHeaderOverflow: true, sortable: true }, + { field: 'issueplace', width: 120, title: '签单地点', showHeaderOverflow: true, sortable: true }, + { field: 'issuetype', width: 120, title: '签单方式', showHeaderOverflow: true, sortable: true }, + { field: 'kgs', width: 120, title: '毛重', showHeaderOverflow: true, sortable: true }, + { field: 'kindpkgs', width: 120, title: '包装', showHeaderOverflow: true, sortable: true }, + { field: 'pkgs', width: 120, title: '件数', showHeaderOverflow: true, sortable: true }, + { field: 'marks', width: 120, title: '唛头', showHeaderOverflow: true, sortable: true }, + { field: 'nobill', width: 120, title: '提单分数', showHeaderOverflow: true, sortable: true }, + { field: 'notifyparty', width: 120, title: '通知人', showHeaderOverflow: true, sortable: true }, + { field: 'op', width: 120, title: '操作人', showHeaderOverflow: true, sortable: true }, + { field: 'payableat', width: 120, title: '到付地点', showHeaderOverflow: true, sortable: true }, + { field: 'placedelivery', width: 120, title: '交货地', showHeaderOverflow: true, sortable: true } ], condAllData: [ - { title: '业务编号', align: 'center', width: '90', label: 'BSNO', type: 'input' }, - { title: '船公司', align: 'center', width: '90', label: 'CARRIER', type: 'input' }, - { title: '业务状态', align: 'center', width: '90', label: 'BSSTATUS', type: 'input' }, - { title: '业务状态名称', align: 'center', width: '90', label: 'BSSTATUSNAME', type: 'input' }, - { title: '业务日期', align: 'center', width: '90', label: 'BSDATE', type: 'date' }, - { title: '主提单号', align: 'center', width: '90', label: 'MBLNO', type: 'input' }, - { title: '分提单号', align: 'center', width: '90', label: 'HBLNO', type: 'input' }, - { title: '订舱编号', align: 'center', width: '90', label: 'BOOKINGNO', type: 'input' }, - { title: '合约号', align: 'center', width: '90', label: 'CONTRACTNO', type: 'input' }, - { title: '客户合同号', align: 'center', width: '90', label: 'SERVICECONTRACTNO', type: 'input' }, - { title: '发货人代码', align: 'center', width: '90', label: 'SHIPPERID', type: 'input' }, - { title: '收货人代码', align: 'center', width: '90', label: 'CONSIGNEEID', type: 'input' }, - { title: '通知人代码', align: 'center', width: '90', label: 'NOTIFYPARTYID', type: 'input' }, - { title: '发货人', align: 'center', width: '90', label: 'SHIPPER', type: 'input' }, - { title: '收货人', align: 'center', width: '90', label: 'CONSIGNEE', type: 'input' }, - { title: '通知人', align: 'center', width: '90', label: 'NOTIFYPARTY', type: 'input' }, - { title: '第二通知人', align: 'center', width: '90', label: 'NOTIFYPARTY2', type: 'input' }, - { title: '场站代码', align: 'center', width: '90', label: 'YARDID', type: 'input' }, - { title: '场站', align: 'center', width: '90', label: 'YARD', type: 'input' }, - { title: '船舶呼号', align: 'center', width: '90', label: 'VESSELID', type: 'input' }, - { title: '船名', align: 'center', width: '90', label: 'VESSEL', type: 'input' }, - { title: '海关航次', align: 'center', width: '90', label: 'VOYNO', type: 'input' }, - { title: '内部航次', align: 'center', width: '90', label: 'VOYNOINNER', type: 'input' }, - { title: '开船日期', align: 'center', width: '90', label: 'ETD', type: 'dateRange' }, - { title: '实际开船日期', align: 'center', width: '90', label: 'ATD', type: 'date' }, - { title: '截港日期', align: 'center', width: '90', label: 'CLOSINGDATE', type: 'date' }, - { title: '截单日期', align: 'center', width: '90', label: 'CLOSEDOCDATE', type: 'date' }, - { title: '截VGM时间', align: 'center', width: '90', label: 'CLOSEVGMDATE', type: 'date' }, - { title: '预计到港日期', align: 'center', width: '90', label: 'ETA', type: 'date' }, - { title: '收货地代码', align: 'center', width: '90', label: 'PLACERECEIPTID', type: 'input' }, - { title: '收货地', align: 'center', width: '90', label: 'PLACERECEIPT', type: 'input' }, - { title: '起运港代码', align: 'center', width: '90', label: 'PORTLOADID', type: 'input' }, - { title: '起运港', align: 'center', width: '90', label: 'PORTLOAD', type: 'input' }, - { title: '卸货港代码', align: 'center', width: '90', label: 'PORTDISCHARGEID', type: 'input' }, - { title: '卸货港', align: 'center', width: '90', label: 'PORTDISCHARGE', type: 'input' }, - { title: '交货地代码', align: 'center', width: '90', label: 'PLACEDELIVERYID', type: 'input' }, - { title: '交货地', align: 'center', width: '90', label: 'PLACEDELIVERY', type: 'input' }, - { title: '目的地代码', align: 'center', width: '90', label: 'DESTINATIONID', type: 'input' }, - { title: '目的地', align: 'center', width: '90', label: 'DESTINATION', type: 'input' } + { title: '业务编号', align: 'center', width: 120, label: 'BSNO', type: 'input' }, + { title: '船公司', align: 'center', width: 120, label: 'CARRIER', type: 'input' }, + { title: '业务状态', align: 'center', width: 120, label: 'BSSTATUS', type: 'input' }, + { title: '业务状态名称', align: 'center', width: 120, label: 'BSSTATUSNAME', type: 'input' }, + { title: '业务日期', align: 'center', width: 120, label: 'BSDATE', type: 'date' }, + { title: '主提单号', align: 'center', width: 160, label: 'MBLNO', type: 'input' }, + { title: '分提单号', align: 'center', width: 160, label: 'HBLNO', type: 'input' }, + { title: '订舱编号', align: 'center', width: 120, label: 'BOOKINGNO', type: 'input' }, + { title: '合约号', align: 'center', width: 120, label: 'CONTRACTNO', type: 'input' }, + { title: '客户合同号', align: 'center', width: 120, label: 'SERVICECONTRACTNO', type: 'input' }, + { title: '发货人代码', align: 'center', width: 120, label: 'SHIPPERID', type: 'input' }, + { title: '收货人代码', align: 'center', width: 120, label: 'CONSIGNEEID', type: 'input' }, + { title: '通知人代码', align: 'center', width: 120, label: 'NOTIFYPARTYID', type: 'input' }, + { title: '发货人', align: 'center', width: 120, label: 'SHIPPER', type: 'input' }, + { title: '收货人', align: 'center', width: 120, label: 'CONSIGNEE', type: 'input' }, + { title: '通知人', align: 'center', width: 120, label: 'NOTIFYPARTY', type: 'input' }, + { title: '第二通知人', align: 'center', width: 120, label: 'NOTIFYPARTY2', type: 'input' }, + { title: '场站代码', align: 'center', width: 120, label: 'YARDID', type: 'input' }, + { title: '场站', align: 'center', width: 120, label: 'YARD', type: 'input' }, + { title: '船舶呼号', align: 'center', width: 120, label: 'VESSELID', type: 'input' }, + { title: '船名', align: 'center', width: 120, label: 'VESSEL', type: 'input' }, + { title: '海关航次', align: 'center', width: 120, label: 'VOYNO', type: 'input' }, + { title: '内部航次', align: 'center', width: 120, label: 'VOYNOINNER', type: 'input' }, + { title: '开船日期', align: 'center', width: 160, label: 'ETD', type: 'dateRange' }, + { title: '实际开船日期', align: 'center', width: 160, label: 'ATD', type: 'date' }, + { title: '截港日期', align: 'center', width: 160, label: 'CLOSINGDATE', type: 'date' }, + { title: '截单日期', align: 'center', width: 160, label: 'CLOSEDOCDATE', type: 'date' }, + { title: '截VGM时间', align: 'center', width: 160, label: 'CLOSEVGMDATE', type: 'date' }, + { title: '预计到港日期', align: 'center', width: 160, label: 'ETA', type: 'date' }, + { title: '收货地代码', align: 'center', width: 120, label: 'PLACERECEIPTID', type: 'input' }, + { title: '收货地', align: 'center', width: 120, label: 'PLACERECEIPT', type: 'input' }, + { title: '起运港代码', align: 'center', width: 120, label: 'PORTLOADID', type: 'input' }, + { title: '起运港', align: 'center', width: 120, label: 'PORTLOAD', type: 'input' }, + { title: '卸货港代码', align: 'center', width: 120, label: 'PORTDISCHARGEID', type: 'input' }, + { title: '卸货港', align: 'center', width: 120, label: 'PORTDISCHARGE', type: 'input' }, + { title: '交货地代码', align: 'center', width: 120, label: 'PLACEDELIVERYID', type: 'input' }, + { title: '交货地', align: 'center', width: 120, label: 'PLACEDELIVERY', type: 'input' }, + { title: '目的地代码', align: 'center', width: 120, label: 'DESTINATIONID', type: 'input' }, + { title: '目的地', align: 'center', width: 120, label: 'DESTINATION', type: 'input' } // 此处省略部分数据 ] }