liuxiaoxue 2 years ago
commit 71e1523e3e

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

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

@ -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()
})
},
}
}

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

@ -34,12 +34,12 @@
>
<a-button type="primary" @click="tableRefresh"></a-button>
<a-button class="reset" @click="tableReset"></a-button>
<a-button class="more-search" @click="tableMoreRefresh"
>多提单号查询<a-icon type="search"
/></a-button>
<span class="tab-btn" @click="formSetting"
><a-icon type="setting" :style="{ marginLeft: '0px' }"
/></span>
<a-button class="more-search" @click="tableMoreRefresh">
多提单号查询<a-icon type="search" />
</a-button>
<span class="tab-btn" @click="formSetting">
<a-icon type="setting" :style="{ marginLeft: '0px' }" />
</span>
<a class="senior-search" @click="toggleAdvanced">
{{ advanced ? '收起查询' : '更多查询' }}
<!-- <a-icon :type="advanced ? 'up' : 'down'" /> -->
@ -138,6 +138,7 @@
ref="setForm"
:formData="formData"
:formAllData="formMoreData"
type="from"
@ok="submitForm"
v-if="formMoreData"
></setFormModel>
@ -146,6 +147,7 @@
ref="setTableForm"
:formData="formTableData"
:formAllData="formMoreTableData"
type="table"
@ok="submitTableForm"
v-if="formMoreTableData"
></setFormModel>
@ -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('==== 列宽拖动 =====')
}
}
}

@ -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' }
// 此处省略部分数据
]
}

Loading…
Cancel
Save