修改bug

master
sunzehua 7 months ago
parent 943e1c306c
commit b37e3d0cde

@ -514,6 +514,7 @@ export function DraftDownloadFile(parameter) {
return axios({ return axios({
url: '/TaskManageDRAFT/DownloadFile', url: '/TaskManageDRAFT/DownloadFile',
method: 'get', method: 'get',
responseType: 'arraybuffer',
params: parameter params: parameter
}) })
} }

@ -49,8 +49,13 @@
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="false"
:not-found-content="null" :not-found-content="null"
@change="handleChangeUser" @change="handleChangeUser">
@search="SearchUser"> <div slot="dropdownRender" slot-scope="menu">
<div style="padding: 4px 8px; cursor: pointer;" @mousedown="(e) => e.preventDefault()">
<a-button size="small" type="primary" @click="handleAllSelect"></a-button>
<VNodes :vnodes="menu" />
</div>
</div>
<a-select-option v-for="item in customerByList" :key="item.id" :value="item.id"> <a-select-option v-for="item in customerByList" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
@ -74,9 +79,10 @@
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="false"
:not-found-content="null" :not-found-content="null"
@search="SearchUser" allowClear
@search="SearchUser($event, 0)"
@change="e => { @change="e => {
ChangeUser(e, 'saleName') ChangeUser(e, 'saleName', 0)
} }
"> ">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
@ -92,14 +98,15 @@
v-model="CreateData.opId" v-model="CreateData.opId"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
allowClear
:filter-option="false" :filter-option="false"
:not-found-content="null" :not-found-content="null"
@search="SearchUser" @search="SearchUser($event, 1)"
@change="e => { @change="e => {
ChangeUser(e, 'opName') ChangeUser(e, 'opName', 1)
} }
"> ">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in UserList1" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -110,16 +117,17 @@
<a-select <a-select
show-search show-search
v-model="CreateData.docId" v-model="CreateData.docId"
allowClear
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="false"
:not-found-content="null" :not-found-content="null"
@search="SearchUser" @search="SearchUser($event, 2)"
@change="e => { @change="e => {
ChangeUser(e, 'docName') ChangeUser(e, 'docName', 2)
} }
"> ">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in UserList2" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -136,12 +144,13 @@
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="false"
:not-found-content="null" :not-found-content="null"
@search="SearchUser" allowClear
@search="SearchUser($event, 3)"
@change="e => { @change="e => {
ChangeUser(e, 'custserviceName') ChangeUser(e, 'custserviceName', 3)
} }
"> ">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in UserList3" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -155,13 +164,14 @@
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="false"
allowClear
:not-found-content="null" :not-found-content="null"
@search="SearchUser" @search="SearchUser($event, 4)"
@change="e => { @change="e => {
ChangeUser(e, 'route') ChangeUser(e, 'route', 4)
} }
"> ">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in UserList4" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -174,14 +184,15 @@
v-model="CreateData.lineManageID" v-model="CreateData.lineManageID"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
allowClear
:filter-option="false" :filter-option="false"
:not-found-content="null" :not-found-content="null"
@search="SearchUser" @search="SearchUser($event, 5)"
@change="e => { @change="e => {
ChangeUser(e, 'lineManage') ChangeUser(e, 'lineManage', 5)
} }
"> ">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in UserList5" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
@ -228,7 +239,14 @@ import { DjyCustomerSuggest, GetSysUserPage, DjyCustomerContacts, DjyCustomerdet
import { GetProjectList, CreateBookingAndSlot, GetBookingOrder } from '@/api/modular/main/TaskmanageList' import { GetProjectList, CreateBookingAndSlot, GetBookingOrder } from '@/api/modular/main/TaskmanageList'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { ValidateCreateBookingOrder, CreateBooking0rder } from '@/api/modular/main/CompanySiteaccount' import { ValidateCreateBookingOrder, CreateBooking0rder } from '@/api/modular/main/CompanySiteaccount'
let timer
export default { export default {
components: {
VNodes: {
functional: true,
render: (h, ctx) => ctx.props.vnodes
}
},
data() { data() {
return { return {
SlotVisible: false, SlotVisible: false,
@ -254,10 +272,16 @@ export default {
}, },
CustomerList: [], CustomerList: [],
UserList: [], UserList: [],
UserList1: [],
UserList2: [],
UserList3: [],
UserList4: [],
UserList5: [],
fetching: false, fetching: false,
spinning: false, spinning: false,
customerByList: [], customerByList: [],
type: '', type: '',
UserListAll: [],
userInfoList: [], userInfoList: [],
slotEdit: {}, slotEdit: {},
bookingServiceItem: [] bookingServiceItem: []
@ -279,7 +303,12 @@ export default {
this.bookingServiceItem = res.data this.bookingServiceItem = res.data
}) })
GetSysUserPage().then(res => { GetSysUserPage().then(res => {
this.UserList = res.data this.UserList = JSON.parse(JSON.stringify(res.data))
this.UserList1 = JSON.parse(JSON.stringify(res.data))
this.UserList2 = JSON.parse(JSON.stringify(res.data))
this.UserList3 = JSON.parse(JSON.stringify(res.data))
this.UserList4 = JSON.parse(JSON.stringify(res.data))
this.UserListAll = JSON.parse(JSON.stringify(res.data))
}) })
}, },
methods: { methods: {
@ -293,12 +322,12 @@ export default {
projectList.push(item.serviceProjectCode) projectList.push(item.serviceProjectCode)
} }
}) })
const ApiData = { const ApiData = {
slotId: this.slotEdit.id, slotId: this.slotEdit.id,
projectList, projectList,
...this.CreateData ...this.CreateData
} }
ApiData.customerList = ApiData.customerContactId
this.spinning = true this.spinning = true
CreateBooking0rder(ApiData).then(res => { CreateBooking0rder(ApiData).then(res => {
if (res.success) { if (res.success) {
@ -347,6 +376,17 @@ export default {
this.spinning = false this.spinning = false
}) })
}, },
handleAllSelect() {
const arr = []
const arr1 = []
this.customerByList.forEach(item => {
arr.push(item.id)
arr1.push(item)
})
this.$set(this.CreateData, 'customerContactId', arr)
this.userInfoList = arr1
this.$forceUpdate()
},
init2() { init2() {
this.SlotVisible = true this.SlotVisible = true
this.spinning = true this.spinning = true
@ -384,6 +424,7 @@ export default {
projectList, projectList,
...this.CreateData ...this.CreateData
} }
ApiData.customerList = ApiData.customerContactId
if (this.CreateData.customerList.length > 0) { if (this.CreateData.customerList.length > 0) {
const arr = [] const arr = []
this.customerByList.forEach(item => { this.customerByList.forEach(item => {
@ -426,17 +467,101 @@ export default {
}) })
this.userInfoList = arr this.userInfoList = arr
}, },
SearchUser(e) { debounce(func, wait, ...args) {
GetSysUserPage({ name: e }).then(res => { if (timer) clearTimeout(timer)
this.UserList = res.data timer = setTimeout(() => {
}) func.apply(this, args)
}, wait)
}, },
ChangeUser(e, Tname) { SearchUser(e, type) {
this.UserList.forEach(item => { if (e) {
if (item.id == e) { GetSysUserPage({ name: e }).then(res => {
this.CreateData[Tname] = item.name if (type === 0) {
this.UserList = res.data
}
if (type === 1) {
this.UserList1 = res.data
}
if (type === 2) {
this.UserList2 = res.data
}
if (type === 3) {
this.UserList3 = res.data
}
if (type === 4) {
this.UserList4 = res.data
}
if (type === 5) {
this.UserList5 = res.data
}
})
}
},
ChangeUser(e, Tname, type) {
if (e) {
if (type === 0) {
this.UserList.forEach(item => {
if (item.id == e) {
this.CreateData[Tname] = item.name
}
})
} }
}) if (type === 1) {
this.UserList1.forEach(item => {
if (item.id == e) {
this.CreateData[Tname] = item.name
}
})
}
if (type === 2) {
this.UserList2.forEach(item => {
if (item.id == e) {
this.CreateData[Tname] = item.name
}
})
}
if (type === 3) {
this.UserList3.forEach(item => {
if (item.id == e) {
this.CreateData[Tname] = item.name
}
})
}
if (type === 4) {
this.UserList4.forEach(item => {
if (item.id == e) {
this.CreateData[Tname] = item.name
}
})
}
if (type === 5) {
this.UserList5.forEach(item => {
if (item.id == e) {
this.CreateData[Tname] = item.name
}
})
}
} else {
if (type === 0) {
this.UserList = JSON.parse(JSON.stringify(this.UserListAll))
}
if (type === 1) {
this.UserList1 = JSON.parse(JSON.stringify(this.UserListAll))
}
if (type === 2) {
this.UserList2 = JSON.parse(JSON.stringify(this.UserListAll))
}
if (type === 3) {
this.UserList3 = JSON.parse(JSON.stringify(this.UserListAll))
}
if (type === 4) {
this.UserList4 = JSON.parse(JSON.stringify(this.UserListAll))
}
if (type === 5) {
this.UserList5 = JSON.parse(JSON.stringify(this.UserListAll))
}
}
this.$forceUpdate()
}, },
ChangeCustomer(e) { ChangeCustomer(e) {
this.customerByList = [] this.customerByList = []
@ -462,29 +587,29 @@ export default {
this.CreateData.custserviceId = Number(res.data.custserviceid) this.CreateData.custserviceId = Number(res.data.custserviceid)
this.CreateData.custserviceName = res.data.doc this.CreateData.custserviceName = res.data.doc
} else { } else {
this.CreateData.custserviceId = '' this.$set(this.CreateData, 'custserviceId', '')
this.CreateData.custserviceName = '' this.$set(this.CreateData, 'custserviceName', '')
} }
if (res.data.docid) { if (res.data.docid) {
this.CreateData.docId = Number(res.data.docid) this.CreateData.docId = Number(res.data.docid)
this.CreateData.docName = res.data.custservice this.CreateData.docName = res.data.custservice
} else { } else {
this.CreateData.docId = '' this.$set(this.CreateData, 'docId', '')
this.CreateData.docName = '' this.$set(this.CreateData, 'docName', '')
} }
if (res.data.opid) { if (res.data.opid) {
this.CreateData.opId = Number(res.data.opid) this.CreateData.opId = Number(res.data.opid)
this.CreateData.opName = res.data.op this.CreateData.opName = res.data.op
} else { } else {
this.CreateData.opId = '' this.$set(this.CreateData, 'opId', '')
this.CreateData.opName = '' this.$set(this.CreateData, 'opName', '')
} }
if (res.data.saleid) { if (res.data.saleid) {
this.CreateData.saleId = Number(res.data.saleid) this.CreateData.saleId = Number(res.data.saleid)
this.CreateData.saleName = res.data.sale this.CreateData.saleName = res.data.sale
} else { } else {
this.CreateData.saleId = '' this.$set(this.CreateData, 'saleId', '')
this.CreateData.saleName = '' this.$set(this.CreateData, 'saleName', '')
} }
this.$forceUpdate() this.$forceUpdate()
} else { } else {

@ -231,6 +231,8 @@ const user = {
localStorage.removeItem('booking_form_yard'); localStorage.removeItem('booking_form_yard');
localStorage.removeItem('vesselinfoSetting'); localStorage.removeItem('vesselinfoSetting');
localStorage.removeItem('mskOrderSetting'); localStorage.removeItem('mskOrderSetting');
localStorage.removeItem('CabinSetting');
localStorage.removeItem('CabinInventorySetting');
}) })
}) })
}, },
@ -254,6 +256,8 @@ const user = {
localStorage.removeItem('booking_form_yard'); localStorage.removeItem('booking_form_yard');
localStorage.removeItem('vesselinfoSetting'); localStorage.removeItem('vesselinfoSetting');
localStorage.removeItem('mskOrderSetting'); localStorage.removeItem('mskOrderSetting');
localStorage.removeItem('CabinSetting');
localStorage.removeItem('CabinInventorySetting');
Vue.ls.set(ACCESS_TOKEN, token, 7 * 24 * 60 * 60 * 1000) Vue.ls.set(ACCESS_TOKEN, token, 7 * 24 * 60 * 60 * 1000)
commit('SET_TOKEN', token) commit('SET_TOKEN', token)
store.dispatch('dictTypeData') store.dispatch('dictTypeData')

@ -47,6 +47,9 @@
</div> </div>
</a-spin> </a-spin>
</a-card> </a-card>
<div>
</div>
<a-modal v-model="GoodsStatusVisible" width="600px" title="编辑" @ok="GoodsStatusHandleOk"> <a-modal v-model="GoodsStatusVisible" width="600px" title="编辑" @ok="GoodsStatusHandleOk">
<a-spin :spinning="goodStatusLoading"> <a-spin :spinning="goodStatusLoading">
<a-form :form="StatusVisibleForm"> <a-form :form="StatusVisibleForm">

@ -2,63 +2,107 @@
<div> <div>
<a-card :bordered="false" :bodyStyle="tstyle"> <a-card :bordered="false" :bodyStyle="tstyle">
<div class="table-page-search-wrapper" :class="advanced ? 'Open' : 'Close'"> <div class="table-page-search-wrapper" :class="advanced ? 'Open' : 'Close'">
<a-form :model="form" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }"> <a-form :model="form" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
<a-row> <a-row>
<a-col :span="6"> <a-col :span="4">
<a-form-item label="船名"> <a-form-item label="船名">
<a-input v-model="form.vessel" allow-clear placeholder="请输入船名" /> <a-input v-model="form.vessel" allow-clear placeholder="请输入船名" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="4">
<a-form-item label="航次"> <a-form-item label="航次">
<a-input v-model="form.voyno" allow-clear placeholder="请输入航次" /> <a-input v-model="form.voyno" allow-clear placeholder="请输入航次" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="4">
<a-form-item label="ETD开始"> <a-form-item label="ETD开始">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.etD_START" /> <a-date-picker style="width:100%" valueFormat="YYYY-MM-DD" v-model="form.etD_START" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="5"> <a-col :span="4">
<a-form-item label="ETD结束"> <a-form-item label="ETD结束">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.etD_END" /> <a-date-picker valueFormat="YYYY-MM-DD" v-model="form.etD_END" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="1"> <a-col :span="4">
<a @click="toggleAdvanced" style="margin-left: 8px;margin-top: 9px;display: inline-block;"> <a-form-item label="装货港">
<a-select
v-model="form.PORTLOADID"
show-search
:filter-option="false"
style="width: 100%"
@focus="getSelectFirst"
placeholder="请选择装货港"
@search="handleSearch">
<a-spin v-if="fetching" slot="notFoundContent" size="small" />
<a-select-option v-for="(item, index) in portloadidInitList" :key="index" :value="item.ediCode">{{
item.enName }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="4">
<a @click="toggleAdvanced" style="margin-left: 28px;margin-top: 9px;display: inline-block;">
{{ advanced ? '收起' : '展开' }} {{ advanced ? '收起' : '展开' }}
<a-icon :type="advanced ? 'up' : 'down'" /> <a-icon :type="advanced ? 'up' : 'down'" />
</a> </a>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="6"> <a-col :span="4">
<a-form-item label="船公司"> <a-form-item label="船公司">
<a-input v-model="form.carrier" allow-clear placeholder="请输入船公司" /> <a-input v-model="form.carrier" allow-clear placeholder="请输入船公司" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="4">
<a-form-item label="箱型箱量"> <a-form-item label="箱型箱量">
<a-select <a-select mode="multiple" v-model="form.ctN_STAT" style="width: 100%" placeholder="请选择箱型箱量">
mode="multiple" <a-select-option v-for="(item, index) in ctnallList" :key="index" :value="item.code">{{ item.name
v-model="form.ctN_STAT" }}</a-select-option>
style="width: 100%"
placeholder="请选择箱型箱量"
>
<a-select-option v-for="(item,index) in ctnallList" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="4">
<a-form-item label="ETA开始"> <a-form-item label="ETA开始">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.etA_START" /> <a-date-picker style="width:100%" valueFormat="YYYY-MM-DD" v-model="form.etA_START" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="5"> <a-col :span="4">
<a-form-item label="ETA结束"> <a-form-item label="ETA结束">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.etA_END" /> <a-date-picker valueFormat="YYYY-MM-DD" v-model="form.etA_END" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4">
<a-form-item label="卸货港">
<a-select
v-model="form.PORTDISCHARGEID"
show-search
:filter-option="false"
:not-found-content="fetching ? undefined : null"
style="width: 100%"
@focus="getSelectFirst"
placeholder="请选择卸货港"
@search="handleSearch1">
<a-spin v-if="fetching" slot="notFoundContent" size="small" />
<a-select-option v-for="(item, index) in portdischargeidInitList" :key="index" :value="item.ediCode">{{
item.enName }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="4">
<a-form-item label="国家">
<a-select
v-model="form.PORTDISCHARGE_COUNTRY_CODE"
show-search
:filter-option="filterOption"
style="width: 100%"
@focus="getSelectFirst"
placeholder="请选择国家">
<a-spin v-if="fetching" slot="notFoundContent" size="small" />
<a-select-option v-for="(item, index) in country" :key="index" :value="item.code">{{
item.cnName }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
@ -118,6 +162,7 @@ import {
BookingSlotPageStock, BookingSlotPageStock,
BookingSlotRefreshStock BookingSlotRefreshStock
} from '@/api/modular/main/CompanySiteaccount' } from '@/api/modular/main/CompanySiteaccount'
import { GetPortloadlist, GetPortlist, CodeCountryList } from '@/api/modular/main/BookingLedger'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import columnSetting from '@/components/tableColumnSetting' import columnSetting from '@/components/tableColumnSetting'
import tableSort from '@/components/tableSort' import tableSort from '@/components/tableSort'
@ -129,12 +174,14 @@ export default {
mixins: [sortMixin], mixins: [sortMixin],
computed: { computed: {
...mapGetters([ ...mapGetters([
'ctnallList' 'ctnallList', 'bookingInitData', 'countryList'
]) ])
}, },
data() { data() {
return { return {
TypeData: [], TypeData: [],
portdischargeidInitList: [],
portloadidInitList: [],
// / // /
advanced: false, advanced: false,
loading: false, loading: false,
@ -146,6 +193,8 @@ export default {
totalCount: 1 totalCount: 1
}, },
form: {}, form: {},
firstFlag: false,
country:[],
sortMixinForm: { sortMixinForm: {
column: 'CabinInventory_list_column', column: 'CabinInventory_list_column',
setting: 'CabinInventorySetting', setting: 'CabinInventorySetting',
@ -154,6 +203,7 @@ export default {
type: 'CabinInventory', type: 'CabinInventory',
sortField: 'etd' sortField: 'etd'
}, },
fetching: false,
ColumnsQuery: [], ColumnsQuery: [],
columns: [ columns: [
{ {
@ -201,16 +251,28 @@ export default {
field: 'portdischarge' field: 'portdischarge'
}, },
{ {
title: '货地', title: '货地',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'placedelivery' field: 'placereceipt'
}, },
{ {
title: '货地', title: '货地',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'placereceipt' field: 'portload'
},
{
title: '装货港',
align: 'center',
width: '100',
field: 'portdischarge'
},
{
title: '卸货港',
align: 'center',
width: '100',
field: 'placedelivery'
}, },
{ {
title: 'WEEK', title: 'WEEK',
@ -311,16 +373,28 @@ export default {
field: 'portdischarge' field: 'portdischarge'
}, },
{ {
title: '货地', title: '货地',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'placedelivery' field: 'placereceipt'
}, },
{ {
title: '货地', title: '货地',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'placereceipt' field: 'portload'
},
{
title: '装货港',
align: 'center',
width: '100',
field: 'portdischarge'
},
{
title: '卸货港',
align: 'center',
width: '100',
field: 'placedelivery'
}, },
{ {
title: 'WEEK', title: 'WEEK',
@ -380,7 +454,8 @@ export default {
loadData: [] loadData: []
} }
}, },
created() { }, created() {
},
mounted() { mounted() {
this.getConfigStart() this.getConfigStart()
}, },
@ -394,17 +469,53 @@ export default {
}) })
return Rdata return Rdata
}, },
getSelectFirst() {
if (!this.firstFlag) {
this.portloadidInitList = this.bookingInitData.portloadidInitList
this.portdischargeidInitList = this.bookingInitData.portdischargeidInitList
this.country = this.countryList
this.firstFlag = true
}
},
toggleAdvanced() { toggleAdvanced() {
this.advanced = !this.advanced this.advanced = !this.advanced
}, },
init() { init() {
this.form = {} this.form = {}
this.firstFlag = false
}, },
handlePageChange({ currentPage, pageSize }) { handlePageChange({ currentPage, pageSize }) {
this.queryParam.currentPage = currentPage this.queryParam.currentPage = currentPage
this.queryParam.pageSize = pageSize this.queryParam.pageSize = pageSize
this.getList() this.getList()
}, },
handleSearch(e) {
this.fetching = true
GetPortloadlist({ KeyWord: e }).then(res => {
this.portloadidInitList = res.data
this.fetching = false
})
},
handleSearch2(e) {
this.fetching = true
CodeCountryList({ Name: e }).then(res => {
this.country = res.data
this.fetching = false
})
},
handleSearch1(e) {
this.fetching = true
GetPortlist({ KeyWord: e }).then(res => {
const uniqueArray = res.data.reduce((accumulator, currentValue) => {
if (accumulator.findIndex(obj => obj.ediCode === currentValue.ediCode) === -1) {
accumulator.push(currentValue);
}
return accumulator;
}, []);
this.portdischargeidInitList = uniqueArray
this.fetching = false
})
},
getList() { getList() {
this.loading = true this.loading = true
this.form.pageSize = this.queryParam.pageSize this.form.pageSize = this.queryParam.pageSize
@ -428,12 +539,16 @@ export default {
const obj = JSON.parse(JSON.stringify(this.queryParam)) const obj = JSON.parse(JSON.stringify(this.queryParam))
return obj return obj
}, },
filterOption(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
handleRefsh(row) { handleRefsh(row) {
const data = { const data = {
vessel: row.vessel, vessel: row.vessel,
voyno: row.voyno, voyno: row.voyno,
contracT_NO: row.contracT_NO, contracT_NO: row.contracT_NO,
placereceipt: row.placereceipt, portloadid: row.portloadid,
portdischargeid: row.portdischargeid,
placedelivery: row.placedelivery, placedelivery: row.placedelivery,
bookinG_SLOT_TYPE: row.bookinG_SLOT_TYPE, bookinG_SLOT_TYPE: row.bookinG_SLOT_TYPE,
carrierid: row.carrierid carrierid: row.carrierid

@ -2,7 +2,6 @@
<a-spin :spinning="loading"> <a-spin :spinning="loading">
<div class="main"> <div class="main">
<div style="width: 80%;margin-right: 20px;background: white;padding: 10px;"> <div style="width: 80%;margin-right: 20px;background: white;padding: 10px;">
<div class="title">{{ type === 'Add' ? '舱位新增' : '舱位修改' }}</div>
<div style="margin-bottom: 20px;"> <div style="margin-bottom: 20px;">
<a-button type="primary" @click="handleSave"></a-button> <a-button type="primary" @click="handleSave"></a-button>
<a-button v-if="type === 'Edit'" style="margin: 0 10px;" type="primary"></a-button> <a-button v-if="type === 'Edit'" style="margin: 0 10px;" type="primary"></a-button>
@ -13,6 +12,97 @@
</a-popconfirm> </a-popconfirm>
</div> </div>
<a-form-model :model="form" :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form-model :model="form" :label-col="labelCol" :wrapper-col="wrapperCol">
<div class="title" v-if="type === 'Edit'"></div>
<div v-if="type === 'Edit'">
<div class="line-bootm" v-for="(item, index) in form.bookingSlotSaleInfoList" :key="index">
<a-row >
<a-col :span="6">
<a-form-model-item label="委托单位">
<a-select
show-search
v-model="item.customerid"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
size="small"
:not-found-content="null"
@search="SearchCustomer">
<a-select-option v-for="(item1, index1) in CustomerList" :key="index1" :value="item1.id">
{{ item1.shortName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="客服">
<a-select
show-search
v-model="item.custserviceid"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
allowClear
@search="SearchUser($event, 0)"
size="small"
@change="e => {
ChangeUser(e, 'custserviceName', 0,index)
}
">
<a-select-option v-for="item1 in UserList" :key="item1.id" :value="item1.id">
{{ item1.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="销售">
<a-select
show-search
v-model="item.saleid"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
allowClear
@search="SearchUser($event, 1)"
size="small"
@change="e => {
ChangeUser(e, 'sale', 1,index)
}
">
<a-select-option v-for="item1 in UserList1" :key="item1.id" :value="item1.id">
{{ item1.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row >
<a-col :span="6">
<a-form-model-item label="SHIPPER">
<a-input v-model="item.shipper" size="small" />
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="品名">
<a-input v-model="item.goodsname" size="small" />
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="卖价">
<a-input v-model="item.sellinG_PRICE" size="small" />
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="销售日期">
<a-date-picker size="small" v-model="item.salE_TIME" />
</a-form-model-item>
</a-col>
</a-row>
</div>
</div>
<div class="title">{{ type === 'Add' ? '舱位新增' : '舱位修改' }}</div>
<a-row> <a-row>
<a-col :span="6"> <a-col :span="6">
<a-form-model-item label="订舱编号"> <a-form-model-item label="订舱编号">
@ -99,16 +189,6 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="6">
<a-form-model-item label="装货港">
<a-input v-model="form.portload" />
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="卸货港">
<a-input v-model="form.portdischarge" />
</a-form-model-item>
</a-col>
<a-col :span="6"> <a-col :span="6">
<a-form-model-item label="合约号"> <a-form-model-item label="合约号">
<a-input v-model="form.contracT_NO" /> <a-input v-model="form.contracT_NO" />
@ -122,6 +202,16 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="6">
<a-form-model-item label="中转港1">
<a-input v-model="form.transfeR_PORT_1" />
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="中转港2">
<a-input v-model="form.transfeR_PORT_2" />
</a-form-model-item>
</a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="6"> <a-col :span="6">
@ -147,7 +237,8 @@
<a-col :span="6"> <a-col :span="6">
<a-form-model-item label="签单方式"> <a-form-model-item label="签单方式">
<a-select v-model="form.issuetype" show-search :filter-option="filterOption"> <a-select v-model="form.issuetype" show-search :filter-option="filterOption">
<a-select-option v-for="(item, index) in issuetypeList" :key="index" :value="item.enName">{{ item.cnName <a-select-option v-for="(item, index) in issuetypeList" :key="index" :value="item.enName">{{
item.cnName
}}</a-select-option> }}</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
@ -161,18 +252,23 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="6"> <a-col :span="6">
<a-form-model-item label="中转港1"> <a-form-model-item label="订舱抬头">
<a-input v-model="form.transfeR_PORT_1" /> <a-input v-model="form.bookinG_PARTY" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-form-model-item label="中转港2"> <a-form-model-item label="weeKAT">
<a-input v-model="form.transfeR_PORT_2" /> <a-input v-model="form.weeK_AT" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-form-model-item label="订舱抬头"> <a-form-model-item label="备注">
<a-input v-model="form.bookinG_PARTY" /> <a-input v-model="form.remark" />
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="计费时间">
<a-input v-model="form.pricE_CALCULATION_DATE" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
@ -218,7 +314,8 @@
<div class="list"> <div class="list">
<div class="item" v-for="item in form.ctnList" :key="item.gid"> <div class="item" v-for="item in form.ctnList" :key="item.gid">
<span class="item-left">{{ item.ctnall }}</span> <span class="item-left">{{ item.ctnall }}</span>
<a-input-number style="width: 56px;" size="small" v-model="item.ctnnum" :min="1" :max="100"> </a-input-number> <a-input-number style="width: 56px;" size="small" v-model="item.ctnnum" :min="1" :max="100">
</a-input-number>
</div> </div>
</div> </div>
<div class="title">费用</div> <div class="title">费用</div>
@ -365,7 +462,7 @@ import { mapGetters } from 'vuex'
import events from '@/components/MultiTab/events' import events from '@/components/MultiTab/events'
import { AutoComplete } from 'ant-design-vue' import { AutoComplete } from 'ant-design-vue'
import { import {
getVesselInfoService, BookingOrderDownload getVesselInfoService, BookingOrderDownload, DjyCustomerSuggest, GetSysUserPage
} from '@/api/modular/main/BookingLedger' } from '@/api/modular/main/BookingLedger'
import { import {
BookingSlotSave, BookingSlotDetail, BookingSlotDelete, BookingSlotGetFile BookingSlotSave, BookingSlotDetail, BookingSlotDelete, BookingSlotGetFile
@ -400,7 +497,10 @@ export default {
portloadidInitList: [], portloadidInitList: [],
portdischargeidInitList: [], portdischargeidInitList: [],
boxList: [], boxList: [],
CustomerList: [],
type: '', type: '',
UserList1: [],
UserList: [],
id: 0, id: 0,
dataSource: [], dataSource: [],
columns: [ columns: [
@ -590,6 +690,13 @@ export default {
created() { created() {
this.type = this.$route.query.type this.type = this.$route.query.type
this.id = this.$route.query.id ? this.$route.query.id : '' this.id = this.$route.query.id ? this.$route.query.id : ''
DjyCustomerSuggest({ keyword: '' }).then(res => {
this.CustomerList = res.data.rows
})
GetSysUserPage().then(res => {
this.UserList = JSON.parse(JSON.stringify(res.data))
this.UserList1 = JSON.parse(JSON.stringify(res.data))
})
if (this.type === 'Edit') { if (this.type === 'Edit') {
this.getDetail() this.getDetail()
} }
@ -602,6 +709,11 @@ export default {
return '' return ''
} }
}, },
SearchCustomer(e) {
DjyCustomerSuggest({ keyword: e }).then(res => {
this.CustomerList = res.data.rows
})
},
getFileList() { getFileList() {
BookingSlotGetFile({ id: this.id }).then(res => { BookingSlotGetFile({ id: this.id }).then(res => {
if (res.success) { if (res.success) {
@ -676,6 +788,32 @@ export default {
this.loading = false this.loading = false
}) })
}, },
ChangeUser(e, Tname, type, index) {
if (e) {
if (type === 0) {
this.UserList.forEach(item => {
if (item.id == e) {
this.form.bookingSlotSaleInfoList[index][Tname] = item.name
}
})
}
if (type === 1) {
this.UserList1.forEach(item => {
if (item.id == e) {
this.form.bookingSlotSaleInfoList[index][Tname] = item.name
}
})
}
} else {
if (type === 0) {
this.UserList = JSON.parse(JSON.stringify(this.UserListAll))
}
if (type === 1) {
this.UserList1 = JSON.parse(JSON.stringify(this.UserListAll))
}
}
this.$forceUpdate()
},
handleSave() { handleSave() {
console.log(this.form) console.log(this.form)
if (this.form.bookinG_SLOT_TYPE === 'CONTRACT_ORDER') { if (this.form.bookinG_SLOT_TYPE === 'CONTRACT_ORDER') {
@ -697,7 +835,7 @@ export default {
} }
}) })
} }
this.form.weeK_AT = 'W' + this.etdWeek // this.form.weeK_AT = 'W' + this.etdWeek
this.form.ctN_STAT = this.boxTotal this.form.ctN_STAT = this.boxTotal
this.loading = true this.loading = true
BookingSlotSave(this.form).then(res => { BookingSlotSave(this.form).then(res => {
@ -712,6 +850,18 @@ export default {
} }
}) })
}, },
SearchUser(e, type) {
if (e) {
GetSysUserPage({ name: e }).then(res => {
if (type === 0) {
this.UserList = res.data
}
if (type === 1) {
this.UserList1 = res.data
}
})
}
},
handleClick(item) { handleClick(item) {
item.flag = !item.flag item.flag = !item.flag
const arr = [] const arr = []
@ -752,6 +902,7 @@ export default {
/deep/ .ant-input-number-handler-wrap { /deep/ .ant-input-number-handler-wrap {
opacity: 1; opacity: 1;
} }
.main { .main {
display: flex; display: flex;
} }
@ -814,13 +965,13 @@ export default {
.item-left { .item-left {
background: #f59a23; background: #f59a23;
color: white; color: white;
text-align: center; text-align: center;
height: 24px; height: 24px;
line-height: 24px; line-height: 24px;
display: inline-block; display: inline-block;
padding: 0 5px; padding: 0 5px;
font-size: 12px; font-size: 12px;
} }
} }
} }
@ -1107,5 +1258,11 @@ export default {
} }
} }
} }
.line-bootm{
border-bottom: 1px dashed #696767;
margin-bottom: 10px;
}
/deep/ .ant-form-item{
margin-bottom: 10px !important;
}
</style> </style>

@ -9,6 +9,21 @@
<a-input v-model="form.SLOT_BOOKING_NO" allow-clear placeholder="请输入订单编号" /> <a-input v-model="form.SLOT_BOOKING_NO" allow-clear placeholder="请输入订单编号" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4">
<a-form-item label="舱位状态">
<a-select v-model="form.STATUS">
<a-select-option value="0">
全部
</a-select-option>
<a-select-option value="1">
未取消
</a-select-option>
<a-select-option value="2">
已取消
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="船名"> <a-form-item label="船名">
<a-input v-model="form.VESSEL" allow-clear placeholder="请输入船名" /> <a-input v-model="form.VESSEL" allow-clear placeholder="请输入船名" />
@ -20,18 +35,13 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="ETD开始"> <a-form-item label="装货港">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.ETD_START" /> <a-input v-model="form.PORTLOAD" allow-clear placeholder="请输入装货港" />
</a-form-item>
</a-col>
<a-col :span="4">
<a-form-item label="ETD结束">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.ETD_END" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="3"> <a-col :span="3">
<a-form-item label="货港"> <a-form-item label="卸货港">
<a-input v-model="form.PORTLOAD" allow-clear placeholder="请输入装货港" /> <a-input v-model="form.PORTDISCHARGE" allow-clear placeholder="请输入卸货港" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="1"> <a-col :span="1">
@ -43,18 +53,13 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="创建人"> <a-form-item label="ETD开始">
<a-input v-model="form.createdUserName" allow-clear placeholder="请输入创建人" /> <a-date-picker valueFormat="YYYY-MM-DD" v-model="form.ETD_START" />
</a-form-item>
</a-col>
<a-col :span="4">
<a-form-item label="装货港">
<a-input v-model="form.PORTLOAD" allow-clear placeholder="请输入装货港" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="目的港"> <a-form-item label="ETD结束">
<a-input v-model="form.PORTDISCHARGE" allow-clear placeholder="请输入目的港" /> <a-date-picker valueFormat="YYYY-MM-DD" v-model="form.ETD_END" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4"> <a-col :span="4">
@ -68,47 +73,25 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="卸货港"> <a-form-item label="创建人">
<a-input v-model="form.PORTDISCHARGE" allow-clear placeholder="请输入卸货港" /> <a-input v-model="form.createdUserName" allow-clear placeholder="请输入创建人" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> <a-col :span="3">
<a-row>
<a-col :span="4">
<a-form-item label="更新人"> <a-form-item label="更新人">
<a-input v-model="form.updatedUserName" allow-clear placeholder="请输入更新人" /> <a-input v-model="form.updatedUserName" allow-clear placeholder="请输入更新人" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="承运模式"> <a-form-item label="船公司">
<a-select v-model="form.CARRIAGE_TYPE"> <a-input v-model="form.CARRIER" allow-clear placeholder="请输入船公司" />
<a-select-option value="DIRECT_SHIP">
直达
</a-select-option>
<a-select-option value="TRANSFER_SHIP">
中转
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="4">
<a-form-item label="订舱方式">
<a-select v-model="form.BOOKING_SLOT_TYPE">
<a-select-option value="CONTRACT_ORDER">
合约订舱
</a-select-option>
<a-select-option value="SPOT_ORDER">
SPOT订舱
</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="箱型箱量"> <a-form-item label="合约号">
<a-select mode="multiple" allowClear v-model="form.ctN_STAT" style="width: 100%" placeholder="请选择箱型箱量"> <a-input v-model="form.CONTRACT_NO" allow-clear placeholder="请输入合约号" />
<a-select-option v-for="(item, index) in ctnallList" :key="index" :value="item.code">{{ item.name
}}</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4"> <a-col :span="4">
@ -135,11 +118,48 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="4">
<a-form-item label="承运模式">
<a-select v-model="form.CARRIAGE_TYPE">
<a-select-option value="DIRECT_SHIP">
直达
</a-select-option>
<a-select-option value="TRANSFER_SHIP">
中转
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="3">
<a-form-item label="订舱方式">
<a-select v-model="form.BOOKING_SLOT_TYPE">
<a-select-option value="CONTRACT_ORDER">
合约订舱
</a-select-option>
<a-select-option value="SPOT_ORDER">
SPOT订舱
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="4"> <a-col :span="4">
<a-form-item label="船公司"> <a-form-item label="航线名称">
<a-input v-model="form.CARRIER" allow-clear placeholder="请输入船公司" /> <a-input v-model="form.week_at" allow-clear placeholder="请输入航线名称" />
</a-form-item>
</a-col>
<a-col :span="4">
<a-form-item label="Week">
<a-input v-model="form.week_at" allow-clear placeholder="请输入Week" />
</a-form-item>
</a-col>
<a-col :span="4">
<a-form-item label="箱型箱量">
<a-select mode="multiple" allowClear v-model="form.ctN_STAT" style="width: 100%" placeholder="请选择箱型箱量">
<a-select-option v-for="(item, index) in ctnallList" :key="index" :value="item.code">{{ item.name
}}</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@ -179,12 +199,32 @@
@cell-dblclick="handledbclick" @cell-dblclick="handledbclick"
@sort-change="tableSortChange" @sort-change="tableSortChange"
@resizable-change="resizableChange" @resizable-change="resizableChange"
:expand-config="{visibleMethod: expandVisibleMethod}"
@checkbox-change="checkboxChangeEvent" @checkbox-change="checkboxChangeEvent"
height="600px" :height="tableHeight"
empty-text="没有更多数据了!"> empty-text="没有更多数据了!">
<template #vessel="{ row }"> <template #vessel="{ row }">
<span>{{ row.vessel }}/{{ row.voyno }}</span> <span>{{ row.vessel }}/{{ row.voyno }}</span>
</template> </template>
<template #sloT_BOOKING_NO="{ row }">
<span>{{ row.sloT_BOOKING_NO }}</span>
</template>
<template #slotcontent="{ row, rowIndex }">
<vxe-table
align="center"
border
size="small"
style="margin-left: 100px;"
:data="row.bookingSlotSaleInfoList">
<vxe-column width="100" field="customername" title="委托单位" ></vxe-column>
<vxe-column width="100" field="custservice" title="客服" ></vxe-column>
<vxe-column width="100" field="sale" title="销售" ></vxe-column>
<vxe-column width="100" field="shipper" title="SHIPPER" ></vxe-column>
<vxe-column width="100" field="goodsname" title="品名" ></vxe-column>
<vxe-column width="100" field="sellinG_PRICE" title="卖价" ></vxe-column>
<vxe-column width="100" field="salE_TIME" title="销售日期" ></vxe-column>
</vxe-table>
</template>
<template #caozuo="{ row }"> <template #caozuo="{ row }">
<a-icon type="form" style="cursor: pointer;" @click="handleEdit(row.id)" :style="{ color: '#13c2c2' }" /> <a-icon type="form" style="cursor: pointer;" @click="handleEdit(row.id)" :style="{ color: '#13c2c2' }" />
<a-popconfirm <a-popconfirm
@ -252,7 +292,7 @@ import { sortMixin } from '@/mixin/index';
import generation from '@/components/generation' import generation from '@/components/generation'
export default { export default {
components: { components: {
columnSetting, tableSort,generation columnSetting, tableSort, generation
}, },
mixins: [sortMixin], mixins: [sortMixin],
computed: { computed: {
@ -265,6 +305,10 @@ export default {
TypeData: [], TypeData: [],
// / // /
advanced: false, advanced: false,
tableHeight:0,
expandConfig: {
labelField: 'sloT_BOOKING_NO'
},
loading: false, loading: false,
setVisible: false, setVisible: false,
CreateData: { CreateData: {
@ -297,65 +341,61 @@ export default {
labelCol6: { span: 8 }, labelCol6: { span: 8 },
wrapperCol6: { span: 16 } wrapperCol6: { span: 16 }
}, },
form: {}, form: {
STATUS: '1'
},
slotEdit: {}, slotEdit: {},
ColumnsQuery: [], ColumnsQuery: [],
columns: [ columns: [
{ {
type: 'checkbox', type: 'checkbox',
width: 60, width: 60,
noDraggable: true, noDraggable: true
fixed: 'left'
}, },
{ {
title: '订舱编号', title: '订舱编号',
align: 'center', align: 'center',
width: '160', width: '160',
type: 'expand',
field: 'sloT_BOOKING_NO', field: 'sloT_BOOKING_NO',
fixed: 'left' slots: { default: 'sloT_BOOKING_NO', content: 'slotcontent' }
}, },
{ {
title: '船名/航次', title: '船名/航次',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'vessel', field: 'vessel',
fixed: 'left',
slots: { default: 'vessel' } slots: { default: 'vessel' }
}, },
{ {
title: '船公司', title: '船公司',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'carrier', field: 'carrier'
fixed: 'left'
}, },
{ {
title: '合约号', title: '合约号',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'contracT_NO', field: 'contracT_NO'
fixed: 'left'
}, },
{ {
title: '承运模式', title: '承运模式',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'carriagE_TYPE_NAME', field: 'carriagE_TYPE_NAME'
fixed: 'left'
}, },
{ {
title: '订舱方式', title: '订舱方式',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'bookinG_SLOT_TYPE_NAME', field: 'bookinG_SLOT_TYPE_NAME'
fixed: 'left'
}, },
{ {
title: 'ETD', title: 'ETD',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'etd', field: 'etd',
fixed: 'left',
sortable: true, sortable: true,
slots: { default: 'etd' } slots: { default: 'etd' }
}, },
@ -365,7 +405,6 @@ export default {
width: '100', width: '100',
field: 'eta', field: 'eta',
sortable: true, sortable: true,
fixed: 'left',
slots: { default: 'eta' } slots: { default: 'eta' }
}, },
{ {
@ -399,18 +438,6 @@ export default {
width: '100', width: '100',
field: 'weeK_AT' field: 'weeK_AT'
}, },
{
title: '装货港名称',
align: 'center',
width: '100',
field: 'portload'
},
{
title: '卸货港名称',
align: 'center',
width: '100',
field: 'portdischarge'
},
{ {
title: '样单截止时间', title: '样单截止时间',
align: 'center', align: 'center',
@ -543,6 +570,18 @@ export default {
width: '100', width: '100',
field: 'typeCode' field: 'typeCode'
}, },
{
title: '备注',
align: 'center',
width: '100',
field: 'remark'
},
{
title: '计费时间',
align: 'center',
width: '100',
field: 'pricE_CALCULATION_DATE'
},
{ {
title: '操作', title: '操作',
align: 'center', align: 'center',
@ -557,58 +596,52 @@ export default {
{ {
type: 'checkbox', type: 'checkbox',
width: 60, width: 60,
noDraggable: true, noDraggable: true
fixed: 'left'
}, },
{ {
title: '订舱编号', title: '订舱编号',
align: 'center', align: 'center',
width: '160', width: '160',
type: 'expand',
field: 'sloT_BOOKING_NO', field: 'sloT_BOOKING_NO',
fixed: 'left' slots: { default: 'sloT_BOOKING_NO', content: 'slotcontent' }
}, },
{ {
title: '船名/航次', title: '船名/航次',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'vessel', field: 'vessel',
fixed: 'left',
slots: { default: 'vessel' } slots: { default: 'vessel' }
}, },
{ {
title: '船公司', title: '船公司',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'carrier', field: 'carrier'
fixed: 'left'
}, },
{ {
title: '合约号', title: '合约号',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'contracT_NO', field: 'contracT_NO'
fixed: 'left'
}, },
{ {
title: '承运模式', title: '承运模式',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'carriagE_TYPE_NAME', field: 'carriagE_TYPE_NAME'
fixed: 'left'
}, },
{ {
title: '订舱方式', title: '订舱方式',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'bookinG_SLOT_TYPE_NAME', field: 'bookinG_SLOT_TYPE_NAME'
fixed: 'left'
}, },
{ {
title: 'ETD', title: 'ETD',
align: 'center', align: 'center',
width: '100', width: '100',
field: 'etd', field: 'etd',
fixed: 'left',
sortable: true, sortable: true,
slots: { default: 'etd' } slots: { default: 'etd' }
}, },
@ -618,7 +651,6 @@ export default {
width: '100', width: '100',
field: 'eta', field: 'eta',
sortable: true, sortable: true,
fixed: 'left',
slots: { default: 'eta' } slots: { default: 'eta' }
}, },
{ {
@ -652,18 +684,6 @@ export default {
width: '100', width: '100',
field: 'weeK_AT' field: 'weeK_AT'
}, },
{
title: '装货港名称',
align: 'center',
width: '100',
field: 'portload'
},
{
title: '卸货港名称',
align: 'center',
width: '100',
field: 'portdischarge'
},
{ {
title: '样单截止时间', title: '样单截止时间',
align: 'center', align: 'center',
@ -796,6 +816,18 @@ export default {
width: '100', width: '100',
field: 'typeCode' field: 'typeCode'
}, },
{
title: '备注',
align: 'center',
width: '100',
field: 'remark'
},
{
title: '计费时间',
align: 'center',
width: '100',
field: 'pricE_CALCULATION_DATE'
},
{ {
title: '操作', title: '操作',
align: 'center', align: 'center',
@ -819,7 +851,9 @@ export default {
loadData: [] loadData: []
} }
}, },
created() { }, created() {
this.tableHeight = document.body.clientHeight - 320
},
mounted() { mounted() {
this.getConfigStart() this.getConfigStart()
}, },
@ -833,6 +867,13 @@ export default {
}) })
return Rdata return Rdata
}, },
expandVisibleMethod({ row }) {
if (row.bookingSlotSaleInfoList && row.bookingSlotSaleInfoList.length > 0) {
return true
} else {
return false
}
},
customRequest(data) { customRequest(data) {
this.isUpload = true; this.isUpload = true;
this.percent = 0; this.percent = 0;
@ -912,6 +953,7 @@ export default {
this.loading = true this.loading = true
this.form.pageSize = this.queryParam.pageSize this.form.pageSize = this.queryParam.pageSize
this.form.PageNo = this.queryParam.PageNo this.form.PageNo = this.queryParam.PageNo
if (this.form.ctN_STAT) { if (this.form.ctN_STAT) {
this.form.ctN_STAT = this.form.ctN_STAT.join(',') this.form.ctN_STAT = this.form.ctN_STAT.join(',')
} }

@ -359,7 +359,10 @@
fileCategory: this.fileCategory fileCategory: this.fileCategory
} }
DraftDownloadFile(ApiData).then(res => { DraftDownloadFile(ApiData).then(res => {
console.log(res)
if (res.byteLength > 150) {
this.pdfUrl = window.URL.createObjectURL(new Blob([res], { type: 'application/pdf;charset=utf-8' })) this.pdfUrl = window.URL.createObjectURL(new Blob([res], { type: 'application/pdf;charset=utf-8' }))
}
this.spinning = false this.spinning = false
}) })
}, },

@ -591,6 +591,7 @@ export default {
this.copyflag = true this.copyflag = true
}, },
getConfigStart() { getConfigStart() {
this.loading = true
const arr = localStorage.getItem('mskOrderSetting') ? JSON.parse(localStorage.getItem('mskOrderSetting')) : [] const arr = localStorage.getItem('mskOrderSetting') ? JSON.parse(localStorage.getItem('mskOrderSetting')) : []
if (arr.length === 0) { if (arr.length === 0) {
this.getDict() this.getDict()
@ -716,6 +717,7 @@ export default {
localStorage.setItem('mskOrderSetting', JSON.stringify(data)) localStorage.setItem('mskOrderSetting', JSON.stringify(data))
this.FnGetData() this.FnGetData()
} }
this.loading = false
}) })
}, },
handleSubmitCopyMore(e) { handleSubmitCopyMore(e) {

Loading…
Cancel
Save