修改问题

master
sunzehua 1 year ago
parent 8b1023912d
commit bd656fb63d

@ -1082,3 +1082,50 @@ export function yardLetterYardHis (parameter) {
params: parameter params: parameter
}) })
} }
export function GetSeryiceProjectList (parameter) {
return axios({
url: '/BookingValueAdded/GetServiceProjectList',
method: 'post',
data: parameter
})
}
export function SaveServiceProject (parameter) {
return axios({
url: '/BookingValueAdded/SaveServiceProject',
method: 'post',
data: parameter
})
}
export function CancelSeryiceProject (parameter) {
return axios({
url: '/BookingValueAdded/CancelServiceProject',
method: 'post',
data: parameter
})
}
export function GetServiceStatusList (parameter) {
return axios({
url: '/BookingValueAdded/GetServiceStatusList',
method: 'post',
data: parameter
})
}
export function SaveServiceStatus (parameter) {
return axios({
url: '/BookingValueAdded/SaveServiceStatus',
method: 'post',
data: parameter
})
}
export function CancelServiceStatus (parameter) {
return axios({
url: '/BookingValueAdded/CancelServiceStatus',
method: 'post',
data: parameter
})
}

@ -48,7 +48,7 @@ export default {
onEdit(targetKey, action) { onEdit(targetKey, action) {
const _that = this const _that = this
if (targetKey.includes('BookingDetail')) { if (targetKey.includes('BookingDetail')) {
console.log(Object.keys(this.needSavePages).includes(targetKey), this.needSavePages[targetKey].details, this.needSavePages[targetKey].hbList) console.log(Object.keys(this.needSavePages).includes(targetKey), this.needSavePages[targetKey], this.needSavePages[targetKey])
if ( if (
Object.keys(this.needSavePages).includes(targetKey) && Object.keys(this.needSavePages).includes(targetKey) &&
(this.needSavePages[targetKey].details || this.needSavePages[targetKey].hbList) (this.needSavePages[targetKey].details || this.needSavePages[targetKey].hbList)

@ -37,6 +37,7 @@ const constantRouterComponents = {
TaskOriginalLost: () => import('@/views/main/Taskmanage/TaskOriginalLost'), TaskOriginalLost: () => import('@/views/main/Taskmanage/TaskOriginalLost'),
TaskChangeShip: () => import('@/views/main/Taskmanage/TaskChangeShip'), TaskChangeShip: () => import('@/views/main/Taskmanage/TaskChangeShip'),
BcFileDetail: () => import('@/views/main/Taskmanage/BcFileDetail'), BcFileDetail: () => import('@/views/main/Taskmanage/BcFileDetail'),
BookingDetailTest: () => import('@/views/main/BookingLedger/detail/BookingDetailTest'),
BookingCustomerDetail: () => import('@/views/main/BookingCustomerLedger/detail') BookingCustomerDetail: () => import('@/views/main/BookingCustomerLedger/detail')
} }

@ -28,6 +28,7 @@ const getters = {
ctnallList: state => state.booking.ctnallList, ctnallList: state => state.booking.ctnallList,
copyPages: state => state.booking.copyPages, copyPages: state => state.booking.copyPages,
saveNeedNumber: state => state.booking.saveNeedNumber, saveNeedNumber: state => state.booking.saveNeedNumber,
deleteId: state => state.booking.deleteId,
saveNeedCar: state => state.booking.saveNeedCar, saveNeedCar: state => state.booking.saveNeedCar,
lineList: state => state.booking.lineList, lineList: state => state.booking.lineList,
bookingInitData: state => state.booking.bookingInitData, bookingInitData: state => state.booking.bookingInitData,

@ -20,6 +20,7 @@ const booking = {
copyPages: { number: 0, path: '' }, copyPages: { number: 0, path: '' },
yardList: [], yardList: [],
saveNeedNumber: '', saveNeedNumber: '',
deleteId:'',
saveFlag: false, saveFlag: false,
packageList: [], packageList: [],
issuetypeList: [], issuetypeList: [],
@ -109,6 +110,9 @@ const booking = {
SET_SAVENEEDNUMBER: (state, id) => { SET_SAVENEEDNUMBER: (state, id) => {
state.saveNeedNumber = id state.saveNeedNumber = id
}, },
SET_DELETEID: (state, id) => {
state.deleteId = id
},
SET_SAVENEEDCar: (state, id) => { SET_SAVENEEDCar: (state, id) => {
state.saveNeedCar = id state.saveNeedCar = id
} }

File diff suppressed because it is too large Load Diff

@ -1190,9 +1190,6 @@ export default {
}) })
.then(res => { .then(res => {
if (res.success) { if (res.success) {
if (res.data.statuslog) {
res.data.statuslog = res.data.statuslog.reverse()
}
this.$set(this, 'bookingDetails', { ...this.bookingDetails, ...res.data }) this.$set(this, 'bookingDetails', { ...this.bookingDetails, ...res.data })
setTimeout(() => { setTimeout(() => {
this.checkSaveFun({ type: 'details', hasChange: false }) this.checkSaveFun({ type: 'details', hasChange: false })
@ -1800,6 +1797,7 @@ export default {
const removeIcon = document.getElementsByClassName('ant-tabs-tab-active')[0].getElementsByTagName('i')[0] const removeIcon = document.getElementsByClassName('ant-tabs-tab-active')[0].getElementsByTagName('i')[0]
removeIcon.click() removeIcon.click()
this.$forceUpdate() this.$forceUpdate()
this.$store.commit('SET_DELETEID', this.bookingDetails.id)
} else { } else {
this.$message.error(res.message) this.$message.error(res.message)
} }

@ -818,6 +818,11 @@ export default {
this.details.goodsname = res.goodsNameEN || '' this.details.goodsname = res.goodsNameEN || ''
} else if (type === 'cargoid') { } else if (type === 'cargoid') {
this.details.cargoid = res.code || '' this.details.cargoid = res.code || ''
if (res.code == 'R') {
this.rules['description'][0].required = true
} else {
this.rules['description'][0].required = false
}
} else if (['kindpkgs'].includes(type)) { } else if (['kindpkgs'].includes(type)) {
this.details.kindpkgs = res['name'] || '' this.details.kindpkgs = res['name'] || ''
const enCapitalRes = this.SetTOTALNO(this.details.pkgs) const enCapitalRes = this.SetTOTALNO(this.details.pkgs)

@ -114,6 +114,7 @@
:details="editDetails" :details="editDetails"
:rules="tableRules" :rules="tableRules"
isParent="parent" isParent="parent"
@changectnall="changectnall"
@changeDetail="changeDetailFun" @changeDetail="changeDetailFun"
@changeTotal="changeTotalFun" @changeTotal="changeTotalFun"
@changeCtnInfo="changeCtnInfoFun"> @changeCtnInfo="changeCtnInfoFun">
@ -583,7 +584,7 @@ export default {
var o2keys = Object.keys(object2) var o2keys = Object.keys(object2)
if (o2keys.length !== o1keys.length) return false if (o2keys.length !== o1keys.length) return false
for (let i = 0; i <= o1keys.length - 1; i++) { for (let i = 0; i <= o1keys.length - 1; i++) {
let key = o1keys[i] const key = o1keys[i]
if (!o2keys.includes(key)) return false if (!o2keys.includes(key)) return false
if (object2[key] !== object1[key]) return false if (object2[key] !== object1[key]) return false
} }
@ -598,13 +599,27 @@ export default {
this.editDetails.kgs = val || this.editDetails.kgs this.editDetails.kgs = val || this.editDetails.kgs
} else if (type === 'totalPkgs') { } else if (type === 'totalPkgs') {
this.editDetails.pkgs = val || this.editDetails.pkgs this.editDetails.pkgs = val || this.editDetails.pkgs
const enCapitalRes = this.$refs.cargoInfo.SetTOTALNO(this.editDetails.pkgs)
this.editDetails.totalno = enCapitalRes
} else if (type === 'totalCbm') { } else if (type === 'totalCbm') {
this.editDetails.cbm = val || this.editDetails.cbm this.editDetails.cbm = val || this.editDetails.cbm
} }
}, },
changectnall(arr) {
let str = ''
arr.forEach((item, index) => {
str += item.ctnall + '*' + item.ctnnum
if (index != arr.length - 1) {
str += '/'
}
})
this.editDetails.cntrtotal = str
},
changeCtnInfoFun({ type, val }) { changeCtnInfoFun({ type, val }) {
if (type === 'kindpkgs') { if (type === 'kindpkgs') {
this.editDetails.kindpkgs = val this.editDetails.kindpkgs = val
const enCapitalRes = this.$refs.cargoInfo.SetTOTALNO(this.editDetails.pkgs)
this.editDetails.totalno = enCapitalRes
} }
}, },
bookingOrderSave() { bookingOrderSave() {

@ -145,6 +145,15 @@
color: #fff; color: #fff;
} }
} }
.items1{
border: 0px ;
padding:0px ;
margin: 0px ;
margin-right: 5px;
&.active {
padding: 0 8px;
}
}
.remark { .remark {
padding-bottom: 8px; padding-bottom: 8px;
display: flex; display: flex;

@ -11,7 +11,7 @@
<a-col <a-col
:md="6" :md="6"
:lg="6" :lg="6"
:xl="!advanced?3:4" :xl="!advanced ? 3 : 4"
:key="findex" :key="findex"
v-show="(findex < 6 && !advanced) || advanced" v-show="(findex < 6 && !advanced) || advanced"
class="from-label"> class="from-label">
@ -29,7 +29,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
</template> </template>
<a-col style="padding: 0px;" :xl="!advanced?6:8" :lg="24" :md="24" :sm="24"> <a-col style="padding: 0px;" :xl="!advanced ? 6 : 8" :lg="24" :md="24" :sm="24">
<span <span
class="table-page-search-submitButtons" class="table-page-search-submitButtons"
:style="(advanced && { float: 'right', overflow: 'hidden' }) || {}"> :style="(advanced && { float: 'right', overflow: 'hidden' }) || {}">
@ -94,9 +94,9 @@
<div class="nav"><i class="iconfont icon-shanchu2"></i>删除</div> <div class="nav"><i class="iconfont icon-shanchu2"></i>删除</div>
</a-popconfirm> </a-popconfirm>
<div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div> <div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div>
<div class="nav" @click="handleRefshYZ"> <!-- <div class="nav" @click="handleRefshYZ">
<a-spin :spinning="refshYZloading"><i class="iconfont icon-shishijifei"></i>刷新运踪</a-spin> <a-spin :spinning="refshYZloading"><i class="iconfont icon-shishijifei"></i>刷新运踪</a-spin>
</div> </div> -->
<div class="nav"><i class="iconfont icon-xiaopiaodayin"></i>小票状态</div> <div class="nav"><i class="iconfont icon-xiaopiaodayin"></i>小票状态</div>
<div class="nav" @click="openTraceModel"><i class="iconfont icon-yunshu1"></i>运踪订阅</div> <div class="nav" @click="openTraceModel"><i class="iconfont icon-yunshu1"></i>运踪订阅</div>
<div class="nav"> <div class="nav">
@ -141,7 +141,7 @@
v-bind="gridOptions" v-bind="gridOptions"
row-class-name="line-box" row-class-name="line-box"
:height="tableHeight" :height="tableHeight"
:row-config="{ isHover: true,isCurrent: true }" :row-config="{ isHover: true, isCurrent: true }"
:checkbox_config="{ checkField: 'checked' }" :checkbox_config="{ checkField: 'checked' }"
:checkbox-config="{ highlight: true }" :checkbox-config="{ highlight: true }"
:scroll-x="{ gt: 10, oSize: 10, enabled: false }" :scroll-x="{ gt: 10, oSize: 10, enabled: false }"
@ -206,7 +206,11 @@
</template> </template>
<template #atd="{ row, rowIndex }"> <template #atd="{ row, rowIndex }">
<a-spin :spinning="row.atdLoading"> <a-spin :spinning="row.atdLoading">
<a-icon v-if="!row.atd" style="cursor: pointer;" @click="handleRefshAtd(row, rowIndex)" type="reload" /> <a-icon
v-if="!row.atd"
style="cursor: pointer;"
@click="handleRefshAtd(row, rowIndex)"
type="reload" />
<span v-if="row.atd"> {{ row.atd.substring(0, 10) }}</span> <span v-if="row.atd"> {{ row.atd.substring(0, 10) }}</span>
</a-spin> </a-spin>
</template> </template>
@ -229,9 +233,16 @@
</template> </template>
<template #bookstatus="{ row, column, rowIndex }"> <template #bookstatus="{ row, column, rowIndex }">
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-icon v-if="row.isBookingYZ!=0" style="cursor: pointer;color: rgb(7, 231, 56);" @click="handleRefshYZOnce(row, rowIndex)" type="reload" /> <a-icon
v-if="row.isBookingYZ != 0"
style="cursor: pointer;color: rgb(7, 231, 56);"
@click="handleRefshYZOnce(row, rowIndex)"
type="reload" />
<a-spin :spinning="row.refshYzitemLoad"> <a-spin :spinning="row.refshYzitemLoad">
<div :style="row.isBookingYZ==0?'padding-left:14px':''" class="billtrace-box" :class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'"> <div
:style="row.isBookingYZ == 0 ? 'padding-left:14px' : ''"
class="billtrace-box"
:class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'">
<div <div
class="billtrace-btn" class="billtrace-btn"
v-for="(btn, bindex) in row.bookstatus" v-for="(btn, bindex) in row.bookstatus"
@ -348,25 +359,43 @@
{{ row.dzRemark }} {{ row.dzRemark }}
</template> </template>
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowDzMark')" @focus="getFocusMark(row,'rowDzMark')" style="margin-top: 0px;" v-model="row.dzRemark"> <a-input
@blur="getBlurMark(row, 'rowDzMark')"
@focus="getFocusMark(row, 'rowDzMark')"
style="margin-top: 0px;"
v-model="row.dzRemark">
</a-input> </a-input>
<a-icon v-show="row.rowDzMark" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,1)" type="check-circle" theme="filled" /> <a-icon
v-show="row.rowDzMark"
style="cursor: pointer;margin-left: 5px;color:#36cfc9;"
@mousedown.native="handleSaveMark(row, 1)"
type="check-circle"
theme="filled" />
</div> </div>
</a-popover> </a-popover>
</a-spin> </a-spin>
</template> </template>
<template #czRemark="{ row }"> <template #czRemark="{ row }">
<div > <div>
<a-spin :spinning="row.czmarkLoading"> <a-spin :spinning="row.czmarkLoading">
<a-popover placement="topLeft"> <a-popover placement="topLeft">
<template slot="content"> <template slot="content">
{{ row.czRemark }} {{ row.czRemark }}
</template> </template>
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowCzMark')" @focus="getFocusMark(row,'rowCzMark')" style="margin-top: 0px;" v-model="row.czRemark"> <a-input
@blur="getBlurMark(row, 'rowCzMark')"
@focus="getFocusMark(row, 'rowCzMark')"
style="margin-top: 0px;"
v-model="row.czRemark">
</a-input> </a-input>
<a-icon v-show="row.rowCzMark" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,2)" type="check-circle" theme="filled" /> <a-icon
v-show="row.rowCzMark"
style="cursor: pointer;margin-left: 5px;color:#36cfc9;"
@mousedown.native="handleSaveMark(row, 2)"
type="check-circle"
theme="filled" />
</div> </div>
</a-popover> </a-popover>
</a-spin> </a-spin>
@ -374,16 +403,25 @@
</template> </template>
<template #shenQingXiangShi="{ row }"> <template #shenQingXiangShi="{ row }">
<div > <div>
<a-spin :spinning="row.sqxsLoading"> <a-spin :spinning="row.sqxsLoading">
<a-popover placement="topLeft"> <a-popover placement="topLeft">
<template slot="content"> <template slot="content">
{{ row.shenQingXiangShi }} {{ row.shenQingXiangShi }}
</template> </template>
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowSqxs')" @focus="getFocusMark(row,'rowSqxs')" style="margin-top: 0px;" v-model="row.shenQingXiangShi"> <a-input
@blur="getBlurMark(row, 'rowSqxs')"
@focus="getFocusMark(row, 'rowSqxs')"
style="margin-top: 0px;"
v-model="row.shenQingXiangShi">
</a-input> </a-input>
<a-icon v-show="row.rowSqxs" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,4)" type="check-circle" theme="filled" /> <a-icon
v-show="row.rowSqxs"
style="cursor: pointer;margin-left: 5px;color:#36cfc9;"
@mousedown.native="handleSaveMark(row, 4)"
type="check-circle"
theme="filled" />
</div> </div>
</a-popover> </a-popover>
</a-spin> </a-spin>
@ -391,16 +429,25 @@
</template> </template>
<template #pono="{ row }"> <template #pono="{ row }">
<div > <div>
<a-spin :spinning="row.ponoLoading"> <a-spin :spinning="row.ponoLoading">
<a-popover placement="topLeft"> <a-popover placement="topLeft">
<template slot="content"> <template slot="content">
{{ row.pono }} {{ row.pono }}
</template> </template>
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowPono')" @focus="getFocusMark(row,'rowPono')" style="margin-top: 0px;" v-model="row.pono"> <a-input
@blur="getBlurMark(row, 'rowPono')"
@focus="getFocusMark(row, 'rowPono')"
style="margin-top: 0px;"
v-model="row.pono">
</a-input> </a-input>
<a-icon v-show="row.rowPono" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,5)" type="check-circle" theme="filled" /> <a-icon
v-show="row.rowPono"
style="cursor: pointer;margin-left: 5px;color:#36cfc9;"
@mousedown.native="handleSaveMark(row, 5)"
type="check-circle"
theme="filled" />
</div> </div>
</a-popover> </a-popover>
</a-spin> </a-spin>
@ -414,9 +461,18 @@
{{ row.custno }} {{ row.custno }}
</template> </template>
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowCustno')" @focus="getFocusMark(row,'rowCustno')" style="margin-top: 0px;" v-model="row.custno"> <a-input
@blur="getBlurMark(row, 'rowCustno')"
@focus="getFocusMark(row, 'rowCustno')"
style="margin-top: 0px;"
v-model="row.custno">
</a-input> </a-input>
<a-icon v-show="row.rowCustno" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,3)" type="check-circle" theme="filled" /> <a-icon
v-show="row.rowCustno"
style="cursor: pointer;margin-left: 5px;color:#36cfc9;"
@mousedown.native="handleSaveMark(row, 3)"
type="check-circle"
theme="filled" />
</div> </div>
</a-popover> </a-popover>
</a-spin> </a-spin>
@ -982,7 +1038,7 @@ export default {
} }
}, },
computed: { computed: {
...mapGetters(['bookingList', 'bookingGridOptions', 'firstFlag', 'saveNeedNumber']) ...mapGetters(['bookingList', 'bookingGridOptions', 'firstFlag', 'saveNeedNumber', 'deleteId'])
}, },
beforeRouteLeave(to, from, next) { beforeRouteLeave(to, from, next) {
this.setBookingGridOptions(this.gridOptions) this.setBookingGridOptions(this.gridOptions)
@ -1000,17 +1056,31 @@ export default {
handler(nD, oD) { handler(nD, oD) {
if (nD.name === 'booking_ledger') { if (nD.name === 'booking_ledger') {
if (this.saveNeedNumber !== null) { if (this.saveNeedNumber !== null) {
let index = 0 let index = -1
this.gridOptions.data.forEach((ite, inde) => { this.gridOptions.data.forEach((ite, inde) => {
if (ite.id === this.saveNeedNumber) { if (ite.id === this.saveNeedNumber) {
index = inde index = inde
} }
}) })
this.getListByone(this.saveNeedNumber, index) if (index !== -1) {
this.getListByone(this.saveNeedNumber, index)
}
} }
if (this.firstFlag && this.saveNeedNumber === null) { if (this.firstFlag && this.saveNeedNumber === null && !this.deleteId) {
this.getList(this.searchData) this.getList(this.searchData)
} }
if (this.deleteId !== null) {
let index = -1
this.gridOptions.data.forEach((ite, inde) => {
if (ite.id === this.deleteId) {
index = inde
}
})
console.log(index)
if (index !== -1) {
this.gridOptions.data.splice(index, 1)
}
}
this.setInBookingDetailsSave(false) this.setInBookingDetailsSave(false)
} }
} }
@ -3643,10 +3713,11 @@ export default {
} }
</style> </style>
<style lang="less"> <style lang="less">
.vxe-table--render-default .vxe-body--row.row--current{ .vxe-table--render-default .vxe-body--row.row--current {
background: #9be945!important; background: #9be945 !important;
} }
.vxe-table--render-default{
.vxe-table--render-default {
color: black; color: black;
} }
</style> </style>

@ -11,9 +11,9 @@
<a-col <a-col
:md="6" :md="6"
:lg="6" :lg="6"
:xl="4" :xl="!advanced?3:4"
:key="findex" :key="findex"
v-show="(findex < 4 && !advanced) || advanced" v-show="(findex < 6 && !advanced) || advanced"
class="from-label"> class="from-label">
<a-form-item style="padding-left: 10px; padding-right: 10px" :label="formLabel.title"> <a-form-item style="padding-left: 10px; padding-right: 10px" :label="formLabel.title">
<formLabel <formLabel
@ -29,7 +29,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
</template> </template>
<a-col :xl="formBtnCol || (!advanced && 8)" :lg="24" :md="24" :sm="24"> <a-col style="padding: 0px;" :xl="!advanced?6:8" :lg="24" :md="24" :sm="24">
<span <span
class="table-page-search-submitButtons" class="table-page-search-submitButtons"
:style="(advanced && { float: 'right', overflow: 'hidden' }) || {}"> :style="(advanced && { float: 'right', overflow: 'hidden' }) || {}">
@ -95,7 +95,8 @@
</a-popconfirm> </a-popconfirm>
<div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div> <div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div>
<div class="nav" @click="handleRefshYZ"> <div class="nav" @click="handleRefshYZ">
<a-spin :spinning="refshYZloading"><i class="iconfont icon-shishijifei"></i>刷新运踪</a-spin></div> <a-spin :spinning="refshYZloading"><i class="iconfont icon-shishijifei"></i>刷新运踪</a-spin>
</div>
<div class="nav"><i class="iconfont icon-xiaopiaodayin"></i>小票状态</div> <div class="nav"><i class="iconfont icon-xiaopiaodayin"></i>小票状态</div>
<div class="nav" @click="openTraceModel"><i class="iconfont icon-yunshu1"></i>运踪订阅</div> <div class="nav" @click="openTraceModel"><i class="iconfont icon-yunshu1"></i>运踪订阅</div>
<div class="nav"> <div class="nav">
@ -126,7 +127,7 @@
</template> </template>
<template #tools> <template #tools>
<div class="right BookTopButton"> <div class="right BookTopButton">
<span class="tab-btn" @click="tableRefresh"> <span class="tab-btn" @click="tableRefreshFirst">
<a-icon type="redo" :style="{ fontSize: '14px', transform: 'rotate(278deg)' }" /> <a-icon type="redo" :style="{ fontSize: '14px', transform: 'rotate(278deg)' }" />
</span> </span>
<span class="tab-btn" @click="tableHeaderEdit"> <span class="tab-btn" @click="tableHeaderEdit">
@ -140,9 +141,11 @@
v-bind="gridOptions" v-bind="gridOptions"
row-class-name="line-box" row-class-name="line-box"
:height="tableHeight" :height="tableHeight"
:row-config="{ isHover: true,isCurrent: true }"
:checkbox_config="{ checkField: 'checked' }" :checkbox_config="{ checkField: 'checked' }"
:checkbox-config="{ highlight: true }"
:scroll-x="{ gt: 10, oSize: 10, enabled: false }" :scroll-x="{ gt: 10, oSize: 10, enabled: false }"
:scroll-y="{ gt: 20, oSize: 20, enabled: true }" :scroll-y="{ gt: 10, oSize: 1, enabled: true }"
@page-change="handlePageChange" @page-change="handlePageChange"
@cell-dblclick="handledbclick" @cell-dblclick="handledbclick"
:sort-config="{ sortMethod: customSortMethod }" :sort-config="{ sortMethod: customSortMethod }"
@ -156,14 +159,9 @@
<a-icon class="CSMblnoCopy" type="copy" @click="FnCopy(row.mblno)" /> <a-icon class="CSMblnoCopy" type="copy" @click="FnCopy(row.mblno)" />
</div> </div>
</template> </template>
<template #pono="{ row }">
<div class="pono">
{{ row.pono }}
</div>
</template>
<template #IsVGM="{ row }"> <template #IsVGM="{ row }">
<div v-if="row.isVGM" style="text-align: center;"> <div v-if="row.isVGM" style="text-align: center;">
<a-popover placement="topLeft" > <a-popover placement="topLeft">
<div slot="content">{{ row.isVGM }}</div> <div slot="content">{{ row.isVGM }}</div>
<i class="iconfont icon-chenggong flag-icon"></i> <i class="iconfont icon-chenggong flag-icon"></i>
</a-popover> </a-popover>
@ -171,7 +169,7 @@
</template> </template>
<template #IsZZFX="{ row }"> <template #IsZZFX="{ row }">
<div v-if="row.isZZFX" style="text-align: center;"> <div v-if="row.isZZFX" style="text-align: center;">
<a-popover placement="topLeft" > <a-popover placement="topLeft">
<div slot="content">{{ row.isZZFX }}</div> <div slot="content">{{ row.isZZFX }}</div>
<i class="iconfont icon-chenggong flag-icon"></i> <i class="iconfont icon-chenggong flag-icon"></i>
</a-popover> </a-popover>
@ -179,7 +177,7 @@
</template> </template>
<template #IsCanDan="{ row }"> <template #IsCanDan="{ row }">
<div v-if="row.isCanDan" style="text-align: center;"> <div v-if="row.isCanDan" style="text-align: center;">
<a-popover placement="topLeft" > <a-popover placement="topLeft">
<div slot="content">{{ row.isCanDan }}</div> <div slot="content">{{ row.isCanDan }}</div>
<i class="iconfont icon-chenggong flag-icon"></i> <i class="iconfont icon-chenggong flag-icon"></i>
</a-popover> </a-popover>
@ -187,7 +185,6 @@
</template> </template>
<template #bsstatusname="{ row }"> <template #bsstatusname="{ row }">
<div :style="{ backgroundColor: row.bsstatusnameColor }"> {{ row.bsstatusname }}</div> <div :style="{ backgroundColor: row.bsstatusnameColor }"> {{ row.bsstatusname }}</div>
<!-- <div>{{ row.bsstatusname }}</div> -->
</template> </template>
<template #vessel="{ row }"> <template #vessel="{ row }">
<div class="vessel">{{ row.vessel }}</div> <div class="vessel">{{ row.vessel }}</div>
@ -207,8 +204,11 @@
<template #ygtETD="{ row }"> <template #ygtETD="{ row }">
<div class="etd" v-if="row.ygtETD">{{ row.ygtETD.substring(0, 10) }}</div> <div class="etd" v-if="row.ygtETD">{{ row.ygtETD.substring(0, 10) }}</div>
</template> </template>
<template #atd="{ row }"> <template #atd="{ row, rowIndex }">
<div class="atd" v-if="row.atd">{{ row.atd.substring(0, 10) }}</div> <a-spin :spinning="row.atdLoading">
<a-icon v-if="!row.atd" style="cursor: pointer;" @click="handleRefshAtd(row, rowIndex)" type="reload" />
<span v-if="row.atd"> {{ row.atd.substring(0, 10) }}</span>
</a-spin>
</template> </template>
<template #issuedate="{ row }"> <template #issuedate="{ row }">
<div class="atd" v-if="row.issuedate">{{ row.issuedate.substring(0, 10) }}</div> <div class="atd" v-if="row.issuedate">{{ row.issuedate.substring(0, 10) }}</div>
@ -227,34 +227,41 @@
<vxe-button class="operate-btn" type="text" icon="vxe-icon-delete"></vxe-button> <vxe-button class="operate-btn" type="text" icon="vxe-icon-delete"></vxe-button>
</a-popconfirm> </a-popconfirm>
</template> </template>
<!-- <template #bookstatus="{ row }"> <template #bookstatus="{ row, column, rowIndex }">
<span class="book-btn" v-for="(btn,bindex) in row.bookstatus" :class="btn.staCode" :key="bindex"> {{ enmuBookingBtn(btn.staCode) }}<i>/</i></span> <div style="display: flex;align-items: center;">
</template> --> <a-icon v-if="row.isBookingYZ!=0" style="cursor: pointer;color: rgb(7, 231, 56);" @click="handleRefshYZOnce(row, rowIndex)" type="reload" />
<template #bookstatus="{ row, column }"> <a-spin :spinning="row.refshYzitemLoad">
<div class="billtrace-box" :class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'"> <div :style="row.isBookingYZ==0?'padding-left:14px':''" class="billtrace-box" :class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'">
<div class="billtrace-btn" v-for="(btn, bindex) in row.bookstatus" :class="btn.staCode" :key="bindex"> <div
<a-popover placement="topLeft" v-if="btn.staTime"> class="billtrace-btn"
<div slot="content">{{ btn.staTime }}</div> v-for="(btn, bindex) in row.bookstatus"
<span :class="{ active: btn.isChecked }">{{ enmuBookingBtn(btn.staCode) }}</span> :class="btn.staCode"
</a-popover> :key="bindex">
<span :class="{ active: btn.isChecked }" v-else>{{ enmuBookingBtn(btn.staCode) }}</span> <a-popover placement="topLeft" v-if="btn.staTime">
<i class="iconfont icon-xiaoyoujiantou" :class="{ hide: bindex === row.bookstatus.length - 1 }"></i> <div slot="content">{{ btn.staTime }}</div>
</div> <span :class="{ active: btn.isChecked }">{{ enmuBookingBtn(btn.staCode) }}</span>
</a-popover>
<span :class="{ active: btn.isChecked }" v-else>{{ enmuBookingBtn(btn.staCode) }}</span>
<i
class="iconfont icon-xiaoyoujiantou"
:class="{ hide: bindex === row.bookstatus.length - 1 }"></i>
</div>
</div>
</a-spin>
</div> </div>
</template> </template>
<template #statuslogs="{ row, column }"> <template #statuslogs="{ row, column }">
<div v-if="row.statuslogs1"> <div v-if="row.statuslogs1">
<div <div v-if="row.statuslogs1.length > 0">
v-if="row.statuslogs1.length > 0"> <div class="billtrace-btn1">
<div class="billtrace-btn1" > <a-popover placement="topLeft">
<a-popover placement="topLeft" >
<div slot="content"> <div slot="content">
<div> <div>
<span class="txfcSpan" style="width: 120px;">箱号</span> <span class="txfcSpan" style="width: 120px;">箱号</span>
<span class="txfcSpan">提箱</span> <span class="txfcSpan">提箱</span>
<span class="txfcSpan">返场</span> <span class="txfcSpan">返场</span>
</div> </div>
<div v-for="(item,index) in row.statuslogs1" :key="index"> <div v-for="(item, index) in row.statuslogs1" :key="index">
<span class="txfcSpan" style="width: 120px;">{{ item.cntrno }}</span> <span class="txfcSpan" style="width: 120px;">{{ item.cntrno }}</span>
<span class="txfcSpan">{{ item.txopTime }}</span> <span class="txfcSpan">{{ item.txopTime }}</span>
<span class="txfcSpan">{{ item.fcopTime }}</span> <span class="txfcSpan">{{ item.fcopTime }}</span>
@ -268,7 +275,6 @@
</div> </div>
</template> </template>
<template #bookremark="{ row }"> <template #bookremark="{ row }">
<!-- @mouseover="remarkhover($event, row)" -->
<div class="bookremark" @mouseover="remarkhover($event, row)" @mouseleave="remarkLeave($event, row)"> <div class="bookremark" @mouseover="remarkhover($event, row)" @mouseleave="remarkLeave($event, row)">
<span class="reamrk-label"> <span class="reamrk-label">
<template v-for="remark in row.bookremark"> <template v-for="remark in row.bookremark">
@ -336,21 +342,86 @@
</template> </template>
<template #dzRemark="{ row }"> <template #dzRemark="{ row }">
<div v-if="row.dzRemark"> <a-spin :spinning="row.dzmarkLoading">
<a-popover placement="topLeft" :content="row.dzRemark"> <a-popover placement="topLeft">
<span class="dzRemark">{{ row.dzRemark }}</span> <template slot="content">
{{ row.dzRemark }}
</template>
<div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowDzMark')" @focus="getFocusMark(row,'rowDzMark')" style="margin-top: 0px;" v-model="row.dzRemark">
</a-input>
<a-icon v-show="row.rowDzMark" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,1)" type="check-circle" theme="filled" />
</div>
</a-popover> </a-popover>
</div> </a-spin>
</template> </template>
<template #czRemark="{ row }"> <template #czRemark="{ row }">
<div v-if="row.czRemark"> <div >
<a-popover placement="topLeft" :content="row.czRemark"> <a-spin :spinning="row.czmarkLoading">
<span class="czRemark">{{ row.czRemark }}</span> <a-popover placement="topLeft">
</a-popover> <template slot="content">
{{ row.czRemark }}
</template>
<div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowCzMark')" @focus="getFocusMark(row,'rowCzMark')" style="margin-top: 0px;" v-model="row.czRemark">
</a-input>
<a-icon v-show="row.rowCzMark" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,2)" type="check-circle" theme="filled" />
</div>
</a-popover>
</a-spin>
</div>
</template>
<template #shenQingXiangShi="{ row }">
<div >
<a-spin :spinning="row.sqxsLoading">
<a-popover placement="topLeft">
<template slot="content">
{{ row.shenQingXiangShi }}
</template>
<div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowSqxs')" @focus="getFocusMark(row,'rowSqxs')" style="margin-top: 0px;" v-model="row.shenQingXiangShi">
</a-input>
<a-icon v-show="row.rowSqxs" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,4)" type="check-circle" theme="filled" />
</div>
</a-popover>
</a-spin>
</div>
</template>
<template #pono="{ row }">
<div >
<a-spin :spinning="row.ponoLoading">
<a-popover placement="topLeft">
<template slot="content">
{{ row.pono }}
</template>
<div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowPono')" @focus="getFocusMark(row,'rowPono')" style="margin-top: 0px;" v-model="row.pono">
</a-input>
<a-icon v-show="row.rowPono" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,5)" type="check-circle" theme="filled" />
</div>
</a-popover>
</a-spin>
</div> </div>
</template> </template>
<template #custno="{ row }">
<a-spin :spinning="row.custnoLoading">
<a-popover placement="topLeft">
<template slot="content">
{{ row.custno }}
</template>
<div style="display: flex;align-items: center;">
<a-input @blur="getBlurMark(row,'rowCustno')" @focus="getFocusMark(row,'rowCustno')" style="margin-top: 0px;" v-model="row.custno">
</a-input>
<a-icon v-show="row.rowCustno" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,3)" type="check-circle" theme="filled" />
</div>
</a-popover>
</a-spin>
</template>
<template #empty> <template #empty>
<span class="no-data"> <span class="no-data">
<i class="iconfont icon-queshengye_zanwushuju"></i> <i class="iconfont icon-queshengye_zanwushuju"></i>
@ -487,7 +558,7 @@
:formAllData="formMoreTableData" :formAllData="formMoreTableData"
:sortLabelList="sortLabelList" :sortLabelList="sortLabelList"
:firstSort="{ 'label': tableOrderLabel, 'type': tableOrderType }" :firstSort="{ 'label': tableOrderLabel, 'type': tableOrderType }"
:maxNum="30" :maxNum="999"
type="table" type="table"
@ok="submitTableForm" @ok="submitTableForm"
@sortList="submitSort" @sortList="submitSort"
@ -748,6 +819,7 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
</a-modal> </a-modal>
</a-spin> </a-spin>
</div> </div>
</template> </template>
@ -760,7 +832,7 @@ import importBcMore from './modules/importBcMore'
import { import {
PageDataByBooking, PageDataByBooking,
SendTrace, SendTrace,
GetVessellist, getVesselInfoService,
GetPortlist, GetPortlist,
GetPortloadlist, GetPortloadlist,
BookingOrderBachUpdate, BookingOrderBachUpdate,
@ -783,8 +855,9 @@ import {
downloadDraft, downloadDraft,
checkUpdateManifestNo, checkUpdateManifestNo,
singleBCFileRead, singleBCFileRead,
GetToDoBCList, refreshSailingDate,
RefreshBillTrace RefreshBillTrace,
SaveDataInList
} from '@/api/modular/main/BookingLedger' } from '@/api/modular/main/BookingLedger'
import initData from './modules/initData' import initData from './modules/initData'
@ -813,10 +886,14 @@ export default {
return { return {
spinning: false, spinning: false,
isUpload: false, isUpload: false,
markFlag: false,
marktitle: '',
refshYZloading: false, refshYZloading: false,
nowFirst: false,
copyMoreForm: this.$form.createForm(this, { number: '' }), copyMoreForm: this.$form.createForm(this, { number: '' }),
copyMoreFlag: false, copyMoreFlag: false,
percent: 0, percent: 0,
refshYzOnce: false,
TaskShippingOrderCompareVisible: false, TaskShippingOrderCompareVisible: false,
TaskShippingOrderCompareData: { TaskShippingOrderCompareData: {
showDetailList: '' showDetailList: ''
@ -832,6 +909,8 @@ export default {
formBtnCol: 8, formBtnCol: 8,
formBtnLoading: false, formBtnLoading: false,
setVisible: false, setVisible: false,
editRow: {},
editRowData: {},
showColumns: null, showColumns: null,
importBcData: {}, importBcData: {},
gridOptions: { gridOptions: {
@ -855,11 +934,6 @@ export default {
}, },
columns: JSON.parse(JSON.stringify(initData.columns)), columns: JSON.parse(JSON.stringify(initData.columns)),
data: [] data: []
// treeConfig: {
// transform: true,
// rowField: 'index',
// parentField: 'parentId',
// },
}, },
formTableData: JSON.parse(JSON.stringify(initData.columns)), formTableData: JSON.parse(JSON.stringify(initData.columns)),
fromTableAllData: null, fromTableAllData: null,
@ -908,33 +982,11 @@ export default {
} }
}, },
computed: { computed: {
...mapGetters(['bookingList', 'bookingGridOptions']) ...mapGetters(['bookingList', 'bookingGridOptions', 'firstFlag', 'saveNeedNumber'])
}, },
beforeRouteLeave(to, from, next) { beforeRouteLeave(to, from, next) {
// const copyArr = JSON.parse(JSON.stringify(this.gridOptions.data))
// const first = copyArr.splice(0, 20)
this.setBookingGridOptions(this.gridOptions) this.setBookingGridOptions(this.gridOptions)
// this.gridOptions = { this.$store.commit('SET_SAVENEEDNUMBER', null)
// border: false,
// resizable: true,
// showOverflow: true,
// loading: false,
// stripe: true,
// round: true,
// autoResize: true,
// align: 'left',
// columnConfig: { resizable: true },
// importConfig: {},
// exportConfig: {},
// pagerConfig: {
// total: 0,
// currentPage: 1,
// pageSize: 10,
// pageSizes: [10, 20, 50, 100, 200, 500]
// },
// columns: this.gridOptions.columns,
// data: first
// }
next() next()
}, },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
@ -942,6 +994,28 @@ export default {
vm.upDate() vm.upDate()
}) })
}, },
watch: {
'$route': {
deep: true,
handler(nD, oD) {
if (nD.name === 'booking_ledger') {
if (this.saveNeedNumber !== null) {
let index = 0
this.gridOptions.data.forEach((ite, inde) => {
if (ite.id === this.saveNeedNumber) {
index = inde
}
})
this.getListByone(this.saveNeedNumber, index)
}
if (this.firstFlag && this.saveNeedNumber === null) {
this.getList(this.searchData)
}
this.setInBookingDetailsSave(false)
}
}
}
},
created() { created() {
this.createdInit() this.createdInit()
}, },
@ -949,7 +1023,7 @@ export default {
this.onresize() this.onresize()
}, },
methods: { methods: {
...mapActions(['setBookingList', 'setBookingGridOptions']), ...mapActions(['setBookingList', 'setBookingGridOptions', 'setInBookingDetailsSave']),
createdInit() { createdInit() {
this.showColumns = JSON.parse(JSON.stringify(initData.columns)) this.showColumns = JSON.parse(JSON.stringify(initData.columns))
this.formAllData = JSON.parse(JSON.stringify(initData.condAllData)) this.formAllData = JSON.parse(JSON.stringify(initData.condAllData))
@ -961,6 +1035,70 @@ export default {
bcClose() { bcClose() {
this.bcObj = {} this.bcObj = {}
}, },
getListByone(listId, listIndex) {
PageDataByBooking({ id: listId }).then(res => {
const item = res.data.items[0]
const bookstatus = [
{ staCode: 'sta_cangdan', isChecked: false },
{ staCode: 'sta_haifang', isChecked: false },
{ staCode: 'sta_zhuangzai', isChecked: false },
{ staCode: 'sta_mafang', isChecked: false },
{ staCode: 'sta_zhuangchuan', isChecked: false },
{ staCode: 'sta_atd', isChecked: false }
]
if (item.bookstatus.length > 0) {
bookstatus.map((book, bindex) => {
item.bookstatus.map((ite, index) => {
if (ite.staCode === book.staCode) {
bookstatus[bindex] = ite
bookstatus[bindex].isChecked = true
}
})
})
}
if (item.bsstatusname) {
const arr = JSON.parse(localStorage.getItem('pro__DICT_TYPE_TREE_DATA'))
if (arr) {
let arrColor = ''
arr.value.forEach(ite => {
if (ite.code == 'booking_goods_status') {
arrColor = ite
}
})
if (arrColor) {
arrColor.children.forEach(ite => {
if (ite.name == item.bsstatusname) {
item.bsstatusnameColor = ite.remark
}
})
}
}
}
item.bookstatus = bookstatus
item.refshYzitemLoad = false
item.dzmarkLoading = false
item.czmarkLoading = false
item.custnoLoading = false
item.sqxsLoading = false
item.ponoLoading = false
item.rowCzMark = false
item.rowSqxs = false
item.rowPono = false
item.rowCustno = false
item.rowDzMark = false
item.atdLoading = false
let hasGoods = 0
item.goodsStatusList.map((gitem, gindex) => {
if (gitem.finishTime || gitem.remark) {
hasGoods++
}
})
item.hasGoods = hasGoods
this.$set(this.gridOptions.data, listIndex, item)
this.$refs.xGrid.reloadData(this.gridOptions.data)
this.$refs.xGrid.setCurrentRow(this.gridOptions.data[listIndex])
})
},
handleSubmitCopyMore(e) { handleSubmitCopyMore(e) {
e.preventDefault(); e.preventDefault();
this.copyMoreForm.validateFields((err, values) => { this.copyMoreForm.validateFields((err, values) => {
@ -979,7 +1117,6 @@ export default {
const pkIdArr = select.map((item, index) => { const pkIdArr = select.map((item, index) => {
return item.id return item.id
}) })
console.log(pkIdArr)
const formData = new FormData() const formData = new FormData()
formData.append('file', file) formData.append('file', file)
formData.append('bookingOrderId', pkIdArr[0]) formData.append('bookingOrderId', pkIdArr[0])
@ -1160,7 +1297,7 @@ export default {
this.WebVessel = data this.WebVessel = data
} }
GetVessellist({ KeyWord: data }).then((res) => { getVesselInfoService({ KeyWord: data }).then((res) => {
this.vesselData = res.data this.vesselData = res.data
}) })
}, },
@ -1274,11 +1411,15 @@ export default {
this.$message.warning('请先选择') this.$message.warning('请先选择')
return false return false
} else { } else {
const data = { let str = ''
ids: arr.join(',') arr.forEach((item, index) => {
} str += 'Ids=' + item
if (index != arr.length - 1) {
str += '&'
}
})
this.refshYZloading = true this.refshYZloading = true
RefreshBillTrace(data).then(res => { RefreshBillTrace(str).then(res => {
if (res.success) { if (res.success) {
this.refshYZloading = false this.refshYZloading = false
this.$message.success('操作成功') this.$message.success('操作成功')
@ -1289,6 +1430,41 @@ export default {
}) })
} }
}, },
handleRefshYZOnce(row, rowIndex) {
row.refshYzitemLoad = true
RefreshBillTrace('ids=' + row.id).then(res => {
if (res.success) {
PageDataByBooking({ id: row.id }).then(ress => {
const item = ress.data.items[0]
row.refshYzitemLoad = false
const bookstatus = [
{ staCode: 'sta_cangdan', isChecked: false },
{ staCode: 'sta_haifang', isChecked: false },
{ staCode: 'sta_zhuangzai', isChecked: false },
{ staCode: 'sta_mafang', isChecked: false },
{ staCode: 'sta_zhuangchuan', isChecked: false },
{ staCode: 'sta_atd', isChecked: false }
]
if (item.bookstatus.length > 0) {
bookstatus.map((book, bindex) => {
item.bookstatus.map((ite, index) => {
if (ite.staCode === book.staCode) {
bookstatus[bindex] = ite
bookstatus[bindex].isChecked = true
}
})
})
}
row.bookstatus = bookstatus
row.statuslogs1 = item.statuslogs1
this.$message.success('操作成功')
})
} else {
row.refshYzitemLoad = false
this.$message.error(res.message)
}
})
},
setSort(item) { setSort(item) {
if (Array.isArray(JSON.parse(item.configJson))) { if (Array.isArray(JSON.parse(item.configJson))) {
this.sortLabelList = JSON.parse(item.configJson) this.sortLabelList = JSON.parse(item.configJson)
@ -1297,6 +1473,14 @@ export default {
const sort = JSON.parse(item.configJson)[0].descSort const sort = JSON.parse(item.configJson)[0].descSort
this.tableOrderLabel = key || '' this.tableOrderLabel = key || ''
this.tableOrderType = sort ? 'desc' : 'asc' this.tableOrderType = sort ? 'desc' : 'asc'
const newArr = []
this.sortLabelList.forEach(item => {
newArr.push({
sortField: item.sortField,
descSort: item.descSort
})
})
this.searchData.multisort = newArr
this.$refs.xGrid.sort(key, sort) this.$refs.xGrid.sort(key, sort)
} else { } else {
this.tableOrderLabel = '' this.tableOrderLabel = ''
@ -1446,11 +1630,40 @@ export default {
if (!item.slots && item.field === 'bsstatusname') { if (!item.slots && item.field === 'bsstatusname') {
item.slots = { 'default': 'bsstatusname' } item.slots = { 'default': 'bsstatusname' }
} }
if (item.field === 'zhanCangFlag') {
item.width = 35
}
if (item.field === 'custno') {
item.slots = { 'default': 'custno' }
}
if (item.field === 'shenQingXiangShi') {
item.slots = { 'default': 'shenQingXiangShi' }
}
if (item.field === 'pono') {
item.slots = { 'default': 'pono' }
}
if (item.label === 'LINENAME') {
item.field = 'lineName'
}
if (item.label === 'ETA') {
item.title = '目的港ETA'
}
if (item.label === 'isVGM') {
item.title = 'VGM'
item.width = 60
}
if (item.label === 'IsZZFX') {
item.title = '装载'
item.width = 50
}
if (item.label === 'IsCanDan') {
item.title = '舱单'
item.width = 50
}
}) })
console.log(this.formTableData, 123123)
const nowTableArr = this.formTableData.map((item, index) => { const nowTableArr = this.formTableData.map((item, index) => {
if (item.field === 'operate') { if (item.field === 'operate') {
item.width = 110 item.width = 60
} }
return item.field return item.field
}) })
@ -1519,6 +1732,16 @@ export default {
}) })
}) })
}, },
handleOpenMark(row, type) {
if (type === 1) {
this.marktitle = '单证备注'
} else {
this.marktitle = '操作备注'
}
this.editRow = row
this.editRowData = JSON.parse(JSON.stringify(row))
this.markFlag = true
},
handlePageChange({ currentPage, pageSize }) { handlePageChange({ currentPage, pageSize }) {
if (this.gridOptions.pagerConfig.pageSize !== pageSize) { if (this.gridOptions.pagerConfig.pageSize !== pageSize) {
this.editPageSizeSave(pageSize) this.editPageSizeSave(pageSize)
@ -1561,6 +1784,15 @@ export default {
}, },
tableRefresh() { tableRefresh() {
const data = { ...this.formRes } const data = { ...this.formRes }
this.nowFirst = false
data.multisort = this.searchData.multisort
this.searchData = JSON.parse(JSON.stringify(data))
this.init(this.searchData)
this.formRes = data
},
tableRefreshFirst() {
const data = { ...this.formRes }
this.nowFirst = true
data.multisort = this.searchData.multisort data.multisort = this.searchData.multisort
this.searchData = JSON.parse(JSON.stringify(data)) this.searchData = JSON.parse(JSON.stringify(data))
this.init(this.searchData) this.init(this.searchData)
@ -1673,7 +1905,18 @@ export default {
this.init() this.init()
}) })
}, },
handleRefshAtd(row, index) {
row.atdLoading = true
refreshSailingDate({ id: row.id }).then(res => {
if (res.success) {
row.atdLoading = false
row.atd = res.data.atd
} else {
this.$message.error(res.message)
row.atdLoading = false
}
})
},
formChange(data) { formChange(data) {
const { form, value } = data const { form, value } = data
if (form.type === 'input') { if (form.type === 'input') {
@ -1765,16 +2008,22 @@ export default {
const arr = this.searchData.MBLNO.split(/|,/) const arr = this.searchData.MBLNO.split(/|,/)
query.MBLNO = arr.toString() query.MBLNO = arr.toString()
} }
const firstFlag = JSON.parse(localStorage.getItem('pro__FIRSTFLAG')).value const firstFlag = this.firstFlag
if (firstFlag) { if (firstFlag || this.nowFirst) {
query.firstFlag = true query.firstFlag = true
} }
if ((!queryParam.multisort || queryParam.multisort.length === 0) && this.tableOrderLabel && this.tableOrderType) {
if ((!this.searchData.multisort || this.searchData.multisort.length === 0) &&
(!queryParam.multisort || queryParam.multisort.length === 0) &&
this.tableOrderLabel && this.tableOrderType) {
query.multisort = [{ query.multisort = [{
sortField: this.tableOrderLabel, sortField: this.tableOrderLabel,
descSort: this.tableOrderType === 'desc' descSort: this.tableOrderType === 'desc'
}] }]
} }
if (this.searchData.multisort && this.searchData.multisort.length > 0) {
query.multisort = this.searchData.multisort
}
PageDataByBooking(query) PageDataByBooking(query)
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
@ -1783,7 +2032,6 @@ export default {
newBookingList = this.bookingList newBookingList = this.bookingList
} }
const _data = res.data.items.map((item, index) => { const _data = res.data.items.map((item, index) => {
this.$set(newBookingList, item.id, item)
item.index = (currentPage - 1) * pageSize + index item.index = (currentPage - 1) * pageSize + index
const bookstatus = [ const bookstatus = [
{ staCode: 'sta_cangdan', isChecked: false }, { staCode: 'sta_cangdan', isChecked: false },
@ -1822,6 +2070,18 @@ export default {
} }
} }
item.bookstatus = bookstatus item.bookstatus = bookstatus
item.refshYzitemLoad = false
item.atdLoading = false
item.rowDzMark = false
item.rowCzMark = false
item.rowCustno = false
item.rowSqxs = false
item.rowPono = false
item.czmarkLoading = false
item.custnoLoading = false
item.dzmarkLoading = false
item.sqxsLoading = false
item.ponoLoading = false
let hasGoods = 0 let hasGoods = 0
item.goodsStatusList.map((gitem, gindex) => { item.goodsStatusList.map((gitem, gindex) => {
if (gitem.finishTime || gitem.remark) { if (gitem.finishTime || gitem.remark) {
@ -1829,11 +2089,12 @@ export default {
} }
}) })
item.hasGoods = hasGoods item.hasGoods = hasGoods
this.$set(newBookingList, item.id, item)
return item return item
}) })
this.$set(this.gridOptions.pagerConfig, 'columns', JSON.parse(JSON.stringify(initData.columns))) this.$set(this.gridOptions.pagerConfig, 'columns', JSON.parse(JSON.stringify(initData.columns)))
this.$set(this.gridOptions, 'data', [..._data]) this.$set(this.gridOptions, 'data', [..._data])
const startTime = Date.now()
this.$refs.xGrid.reloadData(_data).then(() => { this.$refs.xGrid.reloadData(_data).then(() => {
this.$set(this.gridOptions, 'loading', false) this.$set(this.gridOptions, 'loading', false)
}) })
@ -1852,7 +2113,7 @@ export default {
this.$forceUpdate() this.$forceUpdate()
} }
this.ResetType = true this.ResetType = true
localStorage.setItem('pro__FIRSTFLAG', false) this.$store.commit('SET_FIRSTFLAG', false)
}) })
.catch((err) => { .catch((err) => {
console.log(err) console.log(err)
@ -1914,6 +2175,43 @@ export default {
addCancel() { addCancel() {
this.addVisible = false this.addVisible = false
}, },
handleSaveMark(row, type, file) {
const data = {
Id: row.id
}
if (type === 1) {
row.dzmarkLoading = true
data.dzRemark = row.dzRemark
}
if (type === 2) {
row.czmarkLoading = true
data.czRemark = row.czRemark
}
if (type === 3) {
row.custnoLoading = true
data.custno = row.custno
}
if (type === 4) {
row.sqxsLoading = true
data.shenQingXiangShi = row.shenQingXiangShi
}
if (type === 5) {
row.ponoLoading = true
data.pono = row.pono
}
SaveDataInList(data).then(res => {
if (res.success) {
this.$message.success('修改成功')
} else {
this.$message.error(res.message)
}
row.dzmarkLoading = false
row.czmarkLoading = false
row.custnoLoading = false
row.sqxsLoading = false
row.ponoLoading = false
})
},
// //
formSetting() { formSetting() {
@ -1990,6 +2288,12 @@ export default {
pressEnterFun() { pressEnterFun() {
this.tableRefresh() this.tableRefresh()
}, },
getFocusMark(row, file) {
row[file] = true
},
getBlurMark(row, file) {
row[file] = false
},
remarkhover(e, data) { remarkhover(e, data) {
if (data.bookremark.length > 0) { if (data.bookremark.length > 0) {
const maxWidth = window.innerWidth const maxWidth = window.innerWidth
@ -2183,7 +2487,7 @@ export default {
emnuCompleteApi(type) { emnuCompleteApi(type) {
switch (type) { switch (type) {
case 'VESSEL': case 'VESSEL':
return GetVessellist return getVesselInfoService
case 'CUSTOMERNAME': case 'CUSTOMERNAME':
return DjyCustomerSuggest return DjyCustomerSuggest
case 'FORWARDER': case 'FORWARDER':
@ -2299,16 +2603,24 @@ export default {
ExcuteShippingOrderCompareBatch(arr) ExcuteShippingOrderCompareBatch(arr)
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.spinning = false
if (!res.data.succ) { if (!res.data.succ) {
this.spinning = false
this.$message.success(res.data.msg) this.$message.success(res.data.msg)
} else { } else {
if (res.data.extra) { if (res.data.extra) {
this.TaskShippingOrderCompareData = res.data.extra this.TaskShippingOrderCompareData = res.data.extra
this.TaskShippingOrderCompareData.total = res.data.total this.TaskShippingOrderCompareData.total = res.data.total
this.TaskShippingOrderCompareVisible = true this.TaskShippingOrderCompareVisible = true
PageDataByBooking({ id: data.id }).then(ress => {
const itme = ress.data.items[0]
this.spinning = false
data.lstShipOrderCompareRlt = itme.lstShipOrderCompareRlt
data.lstShipOrderCompareMode = itme.lstShipOrderCompareMode
data.lstShipOrderCompareDate = itme.lstShipOrderCompareDate
})
} else { } else {
this.$message.success(res.data.msg) this.$message.success(res.data.msg)
this.spinning = false
} }
} }
} else { } else {
@ -2700,6 +3012,8 @@ export default {
/*列表操作按钮颜色 */ /*列表操作按钮颜色 */
/deep/ .operate-btn { /deep/ .operate-btn {
color: @primary-color; color: @primary-color;
width: 19px;
margin: 0 !important;
} }
/deep/ .operate-btn:hover { /deep/ .operate-btn:hover {
@ -2760,7 +3074,7 @@ export default {
span { span {
// flex: 1; // flex: 1;
text-align: right; text-align: right;
color: #999; color: black;
} }
i { i {
@ -2797,51 +3111,54 @@ export default {
text-align: center; text-align: center;
justify-content: center; justify-content: center;
} }
.billtrace-btn { .billtrace-btn {
font-size: 12px; font-size: 12px;
height: 16px; height: 16px;
width: 30%; width: 30%;
display: flex; display: flex;
span { span {
flex: 1; flex: 1;
text-align: right; text-align: right;
color: #999; color: #999;
} }
i { i {
font-size: 12px; font-size: 12px;
color: #ccc; color: #ccc;
flex: 1; flex: 1;
text-align: center; text-align: center;
&.hide { &.hide {
opacity: 0; opacity: 0;
}
} }
}
.active { .active {
cursor: pointer; cursor: pointer;
// color: @primary-color; // color: @primary-color;
color: #ff9702; color: #ff9702;
font-weight: bold; font-weight: bold;
} }
&:nth-of-type(3) { &:nth-of-type(3) {
i { i {
opacity: 0; opacity: 0;
}
} }
} }
.billtrace-btn1{ }
.billtrace-btn1 {
font-size: 12px; font-size: 12px;
.active { .active {
cursor: pointer; cursor: pointer;
// color: @primary-color; // color: @primary-color;
color: #ff9702 !important; color: #ff9702 !important;
font-weight: bold; font-weight: bold;
font-size: 12px; font-size: 12px;
} }
} }
/deep/ .ant-form-item { /deep/ .ant-form-item {
@ -3274,22 +3591,6 @@ export default {
flex: 1; flex: 1;
} }
// &:nth-child(3) {
// flex: 2;
// margin: 0 1rem;
// padding-left: 0.5rem;
// &.TaskShippingOrderCompareMainThird {
// background: #facd91;
// border: 1px solid red;
// }
// }
// &.TaskShippingOrderCompareMainThird {
// flex: 2;
// background: #facd91;
// border: 1px solid red;
// margin: 0 1rem;
// padding-left: 0.5rem;
// }
} }
&.BoxNo { &.BoxNo {
@ -3305,24 +3606,6 @@ export default {
} }
} }
// .form-box{
// .form-main{
// float: left;
// margin-right: 10px;
// display: flex;
// width: 16%;
// overflow: hidden;
// .form-label{
// display: inline-block;
// margin-right: 10px;
// }
// .form-content{
// flex: 1;
// }
// }
// .more-btn{
// }
// }
.bcfile-title { .bcfile-title {
border-bottom: 1px dashed black; border-bottom: 1px dashed black;
padding-bottom: 5px; padding-bottom: 5px;
@ -3343,13 +3626,27 @@ export default {
justify-content: space-between; justify-content: space-between;
} }
} }
.txfcSpan{
.txfcSpan {
width: 140px; width: 140px;
display: inline-block; display: inline-block;
} }
.flag-icon{
.flag-icon {
color: #1d8aff; color: #1d8aff;
cursor: pointer; cursor: pointer;
font-size: 20px; font-size: 20px;
} }
/deep/ .vxe-table--render-default .vxe-body--row.row--checked {
background: #fff3e0 !important;
}
</style>
<style lang="less">
.vxe-table--render-default .vxe-body--row.row--current{
background: #9be945!important;
}
.vxe-table--render-default{
color: black;
}
</style> </style>

Loading…
Cancel
Save