修改bug

master
sunzehua 6 months ago
parent 943e1c306c
commit b37e3d0cde

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

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

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

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

@ -2,63 +2,107 @@
<div>
<a-card :bordered="false" :bodyStyle="tstyle">
<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-col :span="6">
<a-col :span="4">
<a-form-item label="船名">
<a-input v-model="form.vessel" allow-clear placeholder="请输入船名" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :span="4">
<a-form-item label="航次">
<a-input v-model="form.voyno" allow-clear placeholder="请输入航次" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :span="4">
<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-col>
<a-col :span="5">
<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-col>
<a-col :span="1">
<a @click="toggleAdvanced" style="margin-left: 8px;margin-top: 9px;display: inline-block;">
<a-col :span="4">
<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 ? '收起' : '展开' }}
<a-icon :type="advanced ? 'up' : 'down'" />
</a>
</a-col>
</a-row>
<a-row>
<a-col :span="6">
<a-col :span="4">
<a-form-item label="船公司">
<a-input v-model="form.carrier" allow-clear placeholder="请输入船公司" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :span="4">
<a-form-item label="箱型箱量">
<a-select
mode="multiple"
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 mode="multiple" 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-col>
<a-col :span="6">
<a-col :span="4">
<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-col>
<a-col :span="5">
<a-col :span="4">
<a-form-item label="ETA结束">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.etA_END" />
</a-form-item>
</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-form>
</div>
@ -118,6 +162,7 @@ import {
BookingSlotPageStock,
BookingSlotRefreshStock
} from '@/api/modular/main/CompanySiteaccount'
import { GetPortloadlist, GetPortlist, CodeCountryList } from '@/api/modular/main/BookingLedger'
import { mapGetters } from 'vuex'
import columnSetting from '@/components/tableColumnSetting'
import tableSort from '@/components/tableSort'
@ -129,12 +174,14 @@ export default {
mixins: [sortMixin],
computed: {
...mapGetters([
'ctnallList'
'ctnallList', 'bookingInitData', 'countryList'
])
},
data() {
return {
TypeData: [],
portdischargeidInitList: [],
portloadidInitList: [],
// /
advanced: false,
loading: false,
@ -146,6 +193,8 @@ export default {
totalCount: 1
},
form: {},
firstFlag: false,
country:[],
sortMixinForm: {
column: 'CabinInventory_list_column',
setting: 'CabinInventorySetting',
@ -154,6 +203,7 @@ export default {
type: 'CabinInventory',
sortField: 'etd'
},
fetching: false,
ColumnsQuery: [],
columns: [
{
@ -201,16 +251,28 @@ export default {
field: 'portdischarge'
},
{
title: '货地',
title: '货地',
align: 'center',
width: '100',
field: 'placedelivery'
field: 'placereceipt'
},
{
title: '货地',
title: '货地',
align: 'center',
width: '100',
field: 'placereceipt'
field: 'portload'
},
{
title: '装货港',
align: 'center',
width: '100',
field: 'portdischarge'
},
{
title: '卸货港',
align: 'center',
width: '100',
field: 'placedelivery'
},
{
title: 'WEEK',
@ -311,16 +373,28 @@ export default {
field: 'portdischarge'
},
{
title: '货地',
title: '货地',
align: 'center',
width: '100',
field: 'placedelivery'
field: 'placereceipt'
},
{
title: '货地',
title: '货地',
align: 'center',
width: '100',
field: 'placereceipt'
field: 'portload'
},
{
title: '装货港',
align: 'center',
width: '100',
field: 'portdischarge'
},
{
title: '卸货港',
align: 'center',
width: '100',
field: 'placedelivery'
},
{
title: 'WEEK',
@ -380,7 +454,8 @@ export default {
loadData: []
}
},
created() { },
created() {
},
mounted() {
this.getConfigStart()
},
@ -394,17 +469,53 @@ export default {
})
return Rdata
},
getSelectFirst() {
if (!this.firstFlag) {
this.portloadidInitList = this.bookingInitData.portloadidInitList
this.portdischargeidInitList = this.bookingInitData.portdischargeidInitList
this.country = this.countryList
this.firstFlag = true
}
},
toggleAdvanced() {
this.advanced = !this.advanced
},
init() {
this.form = {}
this.firstFlag = false
},
handlePageChange({ currentPage, pageSize }) {
this.queryParam.currentPage = currentPage
this.queryParam.pageSize = pageSize
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() {
this.loading = true
this.form.pageSize = this.queryParam.pageSize
@ -428,12 +539,16 @@ export default {
const obj = JSON.parse(JSON.stringify(this.queryParam))
return obj
},
filterOption(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
handleRefsh(row) {
const data = {
vessel: row.vessel,
voyno: row.voyno,
contracT_NO: row.contracT_NO,
placereceipt: row.placereceipt,
portloadid: row.portloadid,
portdischargeid: row.portdischargeid,
placedelivery: row.placedelivery,
bookinG_SLOT_TYPE: row.bookinG_SLOT_TYPE,
carrierid: row.carrierid

@ -2,7 +2,6 @@
<a-spin :spinning="loading">
<div class="main">
<div style="width: 80%;margin-right: 20px;background: white;padding: 10px;">
<div class="title">{{ type === 'Add' ? '舱位新增' : '舱位修改' }}</div>
<div style="margin-bottom: 20px;">
<a-button type="primary" @click="handleSave"></a-button>
<a-button v-if="type === 'Edit'" style="margin: 0 10px;" type="primary"></a-button>
@ -13,6 +12,97 @@
</a-popconfirm>
</div>
<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-col :span="6">
<a-form-model-item label="订舱编号">
@ -99,16 +189,6 @@
</a-col>
</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-form-model-item label="合约号">
<a-input v-model="form.contracT_NO" />
@ -122,6 +202,16 @@
</a-select>
</a-form-model-item>
</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-col :span="6">
@ -147,7 +237,8 @@
<a-col :span="6">
<a-form-model-item label="签单方式">
<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>
</a-form-model-item>
@ -161,18 +252,23 @@
</a-row>
<a-row>
<a-col :span="6">
<a-form-model-item label="中转港1">
<a-input v-model="form.transfeR_PORT_1" />
<a-form-model-item label="订舱抬头">
<a-input v-model="form.bookinG_PARTY" />
</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 label="weeKAT">
<a-input v-model="form.weeK_AT" />
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item label="订舱抬头">
<a-input v-model="form.bookinG_PARTY" />
<a-form-model-item label="备注">
<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-col>
</a-row>
@ -218,7 +314,8 @@
<div class="list">
<div class="item" v-for="item in form.ctnList" :key="item.gid">
<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 class="title">费用</div>
@ -365,7 +462,7 @@ import { mapGetters } from 'vuex'
import events from '@/components/MultiTab/events'
import { AutoComplete } from 'ant-design-vue'
import {
getVesselInfoService, BookingOrderDownload
getVesselInfoService, BookingOrderDownload, DjyCustomerSuggest, GetSysUserPage
} from '@/api/modular/main/BookingLedger'
import {
BookingSlotSave, BookingSlotDetail, BookingSlotDelete, BookingSlotGetFile
@ -400,7 +497,10 @@ export default {
portloadidInitList: [],
portdischargeidInitList: [],
boxList: [],
CustomerList: [],
type: '',
UserList1: [],
UserList: [],
id: 0,
dataSource: [],
columns: [
@ -590,6 +690,13 @@ export default {
created() {
this.type = this.$route.query.type
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') {
this.getDetail()
}
@ -602,6 +709,11 @@ export default {
return ''
}
},
SearchCustomer(e) {
DjyCustomerSuggest({ keyword: e }).then(res => {
this.CustomerList = res.data.rows
})
},
getFileList() {
BookingSlotGetFile({ id: this.id }).then(res => {
if (res.success) {
@ -676,6 +788,32 @@ export default {
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() {
console.log(this.form)
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.loading = true
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) {
item.flag = !item.flag
const arr = []
@ -752,6 +902,7 @@ export default {
/deep/ .ant-input-number-handler-wrap {
opacity: 1;
}
.main {
display: flex;
}
@ -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>

@ -9,6 +9,21 @@
<a-input v-model="form.SLOT_BOOKING_NO" allow-clear placeholder="请输入订单编号" />
</a-form-item>
</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-form-item label="船名">
<a-input v-model="form.VESSEL" allow-clear placeholder="请输入船名" />
@ -20,18 +35,13 @@
</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_START" />
</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 label="装货港">
<a-input v-model="form.PORTLOAD" allow-clear placeholder="请输入装货港" />
</a-form-item>
</a-col>
<a-col :span="3">
<a-form-item label="货港">
<a-input v-model="form.PORTLOAD" allow-clear placeholder="请输入装货港" />
<a-form-item label="卸货港">
<a-input v-model="form.PORTDISCHARGE" allow-clear placeholder="请输入卸货港" />
</a-form-item>
</a-col>
<a-col :span="1">
@ -43,18 +53,13 @@
</a-row>
<a-row>
<a-col :span="4">
<a-form-item label="创建人">
<a-input v-model="form.createdUserName" allow-clear placeholder="请输入创建人" />
</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 label="ETD开始">
<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.PORTDISCHARGE" allow-clear placeholder="请输入目的港" />
<a-form-item label="ETD结束">
<a-date-picker valueFormat="YYYY-MM-DD" v-model="form.ETD_END" />
</a-form-item>
</a-col>
<a-col :span="4">
@ -68,47 +73,25 @@
</a-form-item>
</a-col>
<a-col :span="4">
<a-form-item label="卸货港">
<a-input v-model="form.PORTDISCHARGE" allow-clear placeholder="请输入卸货港" />
<a-form-item label="创建人">
<a-input v-model="form.createdUserName" allow-clear placeholder="请输入创建人" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="4">
<a-col :span="3">
<a-form-item label="更新人">
<a-input v-model="form.updatedUserName" allow-clear placeholder="请输入更新人" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<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="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 label="船公司">
<a-input v-model="form.CARRIER" allow-clear placeholder="请输入船公司" />
</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 label="合约号">
<a-input v-model="form.CONTRACT_NO" allow-clear placeholder="请输入合约号" />
</a-form-item>
</a-col>
<a-col :span="4">
@ -135,11 +118,48 @@
</a-select>
</a-form-item>
</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-col :span="4">
<a-form-item label="船公司">
<a-input v-model="form.CARRIER" allow-clear placeholder="请输入船公司" />
<a-form-item label="航线名称">
<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-col>
</a-row>
@ -179,12 +199,32 @@
@cell-dblclick="handledbclick"
@sort-change="tableSortChange"
@resizable-change="resizableChange"
:expand-config="{visibleMethod: expandVisibleMethod}"
@checkbox-change="checkboxChangeEvent"
height="600px"
:height="tableHeight"
empty-text="没有更多数据了!">
<template #vessel="{ row }">
<span>{{ row.vessel }}/{{ row.voyno }}</span>
</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 }">
<a-icon type="form" style="cursor: pointer;" @click="handleEdit(row.id)" :style="{ color: '#13c2c2' }" />
<a-popconfirm
@ -252,7 +292,7 @@ import { sortMixin } from '@/mixin/index';
import generation from '@/components/generation'
export default {
components: {
columnSetting, tableSort,generation
columnSetting, tableSort, generation
},
mixins: [sortMixin],
computed: {
@ -265,6 +305,10 @@ export default {
TypeData: [],
// /
advanced: false,
tableHeight:0,
expandConfig: {
labelField: 'sloT_BOOKING_NO'
},
loading: false,
setVisible: false,
CreateData: {
@ -297,65 +341,61 @@ export default {
labelCol6: { span: 8 },
wrapperCol6: { span: 16 }
},
form: {},
form: {
STATUS: '1'
},
slotEdit: {},
ColumnsQuery: [],
columns: [
{
type: 'checkbox',
width: 60,
noDraggable: true,
fixed: 'left'
noDraggable: true
},
{
title: '订舱编号',
align: 'center',
width: '160',
type: 'expand',
field: 'sloT_BOOKING_NO',
fixed: 'left'
slots: { default: 'sloT_BOOKING_NO', content: 'slotcontent' }
},
{
title: '船名/航次',
align: 'center',
width: '100',
field: 'vessel',
fixed: 'left',
slots: { default: 'vessel' }
},
{
title: '船公司',
align: 'center',
width: '100',
field: 'carrier',
fixed: 'left'
field: 'carrier'
},
{
title: '合约号',
align: 'center',
width: '100',
field: 'contracT_NO',
fixed: 'left'
field: 'contracT_NO'
},
{
title: '承运模式',
align: 'center',
width: '100',
field: 'carriagE_TYPE_NAME',
fixed: 'left'
field: 'carriagE_TYPE_NAME'
},
{
title: '订舱方式',
align: 'center',
width: '100',
field: 'bookinG_SLOT_TYPE_NAME',
fixed: 'left'
field: 'bookinG_SLOT_TYPE_NAME'
},
{
title: 'ETD',
align: 'center',
width: '100',
field: 'etd',
fixed: 'left',
sortable: true,
slots: { default: 'etd' }
},
@ -365,7 +405,6 @@ export default {
width: '100',
field: 'eta',
sortable: true,
fixed: 'left',
slots: { default: 'eta' }
},
{
@ -399,18 +438,6 @@ export default {
width: '100',
field: 'weeK_AT'
},
{
title: '装货港名称',
align: 'center',
width: '100',
field: 'portload'
},
{
title: '卸货港名称',
align: 'center',
width: '100',
field: 'portdischarge'
},
{
title: '样单截止时间',
align: 'center',
@ -543,6 +570,18 @@ export default {
width: '100',
field: 'typeCode'
},
{
title: '备注',
align: 'center',
width: '100',
field: 'remark'
},
{
title: '计费时间',
align: 'center',
width: '100',
field: 'pricE_CALCULATION_DATE'
},
{
title: '操作',
align: 'center',
@ -557,58 +596,52 @@ export default {
{
type: 'checkbox',
width: 60,
noDraggable: true,
fixed: 'left'
noDraggable: true
},
{
title: '订舱编号',
align: 'center',
width: '160',
type: 'expand',
field: 'sloT_BOOKING_NO',
fixed: 'left'
slots: { default: 'sloT_BOOKING_NO', content: 'slotcontent' }
},
{
title: '船名/航次',
align: 'center',
width: '100',
field: 'vessel',
fixed: 'left',
slots: { default: 'vessel' }
},
{
title: '船公司',
align: 'center',
width: '100',
field: 'carrier',
fixed: 'left'
field: 'carrier'
},
{
title: '合约号',
align: 'center',
width: '100',
field: 'contracT_NO',
fixed: 'left'
field: 'contracT_NO'
},
{
title: '承运模式',
align: 'center',
width: '100',
field: 'carriagE_TYPE_NAME',
fixed: 'left'
field: 'carriagE_TYPE_NAME'
},
{
title: '订舱方式',
align: 'center',
width: '100',
field: 'bookinG_SLOT_TYPE_NAME',
fixed: 'left'
field: 'bookinG_SLOT_TYPE_NAME'
},
{
title: 'ETD',
align: 'center',
width: '100',
field: 'etd',
fixed: 'left',
sortable: true,
slots: { default: 'etd' }
},
@ -618,7 +651,6 @@ export default {
width: '100',
field: 'eta',
sortable: true,
fixed: 'left',
slots: { default: 'eta' }
},
{
@ -652,18 +684,6 @@ export default {
width: '100',
field: 'weeK_AT'
},
{
title: '装货港名称',
align: 'center',
width: '100',
field: 'portload'
},
{
title: '卸货港名称',
align: 'center',
width: '100',
field: 'portdischarge'
},
{
title: '样单截止时间',
align: 'center',
@ -796,6 +816,18 @@ export default {
width: '100',
field: 'typeCode'
},
{
title: '备注',
align: 'center',
width: '100',
field: 'remark'
},
{
title: '计费时间',
align: 'center',
width: '100',
field: 'pricE_CALCULATION_DATE'
},
{
title: '操作',
align: 'center',
@ -819,7 +851,9 @@ export default {
loadData: []
}
},
created() { },
created() {
this.tableHeight = document.body.clientHeight - 320
},
mounted() {
this.getConfigStart()
},
@ -833,6 +867,13 @@ export default {
})
return Rdata
},
expandVisibleMethod({ row }) {
if (row.bookingSlotSaleInfoList && row.bookingSlotSaleInfoList.length > 0) {
return true
} else {
return false
}
},
customRequest(data) {
this.isUpload = true;
this.percent = 0;
@ -912,6 +953,7 @@ export default {
this.loading = true
this.form.pageSize = this.queryParam.pageSize
this.form.PageNo = this.queryParam.PageNo
if (this.form.ctN_STAT) {
this.form.ctN_STAT = this.form.ctN_STAT.join(',')
}

@ -359,7 +359,10 @@
fileCategory: this.fileCategory
}
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.spinning = false
})
},

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

Loading…
Cancel
Save