修改问题

master
sunzehua 1 year ago
parent cc1932607f
commit 2bbfce71ad

@ -402,13 +402,57 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row style="display: flex;" v-if="details.cargoid == 'D'">
<a-row style="display: flex;">
<div style="display: flex;flex-wrap: wrap;">
<div v-for="(item, index) in fileList" class="fileList" :key="index">
<span @click="handleDownFile(item)">{{ item.name }}</span>
</div>
</div>
</a-row>
<a-row v-if="details.cargoid == 'O'">
<a-col :span="6">
<a-form-model-item
class="from-label"
label="长"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="dunno">
<div class="line-box">
{{ details.dunno }}
<span class="unit">CM</span>
</div>
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item
class="from-label"
label="宽"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="dclass">
<div class="line-box">
{{ details.dclass }}
<span class="unit">CM</span>
</div>
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item
class="from-label"
label="高"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="linkman">
<div class="line-box">
{{ details.linkman }}
<span class="unit">CM</span>
</div>
</a-form-model-item>
</a-col>
</a-row>
</a-col>
</a-row>
</a-form-model>

@ -1371,10 +1371,6 @@ export default {
const arr = this.searchData.MBLNO.split(/|,/)
query.MBLNO = arr.toString()
}
const firstFlag = JSON.parse(localStorage.getItem('pro__FIRSTFLAG')).value
if (firstFlag) {
query.firstFlag = true
}
if ((!queryParam.multisort || queryParam.multisort.length === 0) && this.tableOrderLabel && this.tableOrderType) {
query.multisort = [{
sortField: this.tableOrderLabel,

@ -95,7 +95,8 @@
</a-popconfirm>
<div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div>
<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" @click="openTraceModel"><i class="iconfont icon-yunshu1"></i>运踪订阅</div>
<div class="nav">
@ -140,9 +141,9 @@
v-bind="gridOptions"
row-class-name="line-box"
:height="tableHeight"
:row-config="{isHover: true}"
:checkbox_config="{ checkField: 'checked'}"
:checkbox-config="{highlight: true }"
:row-config="{ isHover: true }"
:checkbox_config="{ checkField: 'checked' }"
:checkbox-config="{ highlight: true }"
:scroll-x="{ gt: 10, oSize: 10, enabled: false }"
:scroll-y="{ gt: 20, oSize: 20, enabled: true }"
@page-change="handlePageChange"
@ -165,7 +166,7 @@
</template>
<template #IsVGM="{ row }">
<div v-if="row.isVGM" style="text-align: center;">
<a-popover placement="topLeft" >
<a-popover placement="topLeft">
<div slot="content">{{ row.isVGM }}</div>
<i class="iconfont icon-chenggong flag-icon"></i>
</a-popover>
@ -173,7 +174,7 @@
</template>
<template #IsZZFX="{ row }">
<div v-if="row.isZZFX" style="text-align: center;">
<a-popover placement="topLeft" >
<a-popover placement="topLeft">
<div slot="content">{{ row.isZZFX }}</div>
<i class="iconfont icon-chenggong flag-icon"></i>
</a-popover>
@ -181,7 +182,7 @@
</template>
<template #IsCanDan="{ row }">
<div v-if="row.isCanDan" style="text-align: center;">
<a-popover placement="topLeft" >
<a-popover placement="topLeft">
<div slot="content">{{ row.isCanDan }}</div>
<i class="iconfont icon-chenggong flag-icon"></i>
</a-popover>
@ -209,10 +210,10 @@
<template #ygtETD="{ row }">
<div class="etd" v-if="row.ygtETD">{{ row.ygtETD.substring(0, 10) }}</div>
</template>
<template #atd="{ row }">
<template #atd="{ row, rowIndex }">
<div class="atd" v-if="row.atd">
<a-spin :spinning="row.atdLoading">
<a-icon style="cursor: pointer;" @click="handleRefshAtd(row)" type="reload" />
<a-icon style="cursor: pointer;" @click="handleRefshAtd(row, rowIndex)" type="reload" />
{{ row.atd.substring(0, 10) }}
</a-spin>
</div>
@ -237,18 +238,24 @@
<!-- <template #bookstatus="{ row }">
<span class="book-btn" v-for="(btn,bindex) in row.bookstatus" :class="btn.staCode" :key="bindex"> {{ enmuBookingBtn(btn.staCode) }}<i>/</i></span>
</template> -->
<template #bookstatus="{ row, column }">
<template #bookstatus="{ row, column, rowIndex }">
<div style="display: flex;align-items: center;">
<a-icon style="cursor: pointer;" @click="handleRefshYZOnce(row)" type="reload" />
<a-icon style="cursor: pointer;" @click="handleRefshYZOnce(row, rowIndex)" type="reload" />
<a-spin :spinning="row.refshYzitemLoad">
<div 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
class="billtrace-btn"
v-for="(btn, bindex) in row.bookstatus"
:class="btn.staCode"
:key="bindex">
<a-popover placement="topLeft" v-if="btn.staTime">
<div slot="content">{{ btn.staTime }}</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>
<i
class="iconfont icon-xiaoyoujiantou"
:class="{ hide: bindex === row.bookstatus.length - 1 }"></i>
</div>
</div>
</a-spin>
@ -256,17 +263,16 @@
</template>
<template #statuslogs="{ row, column }">
<div v-if="row.statuslogs1">
<div
v-if="row.statuslogs1.length > 0">
<div class="billtrace-btn1" >
<a-popover placement="topLeft" >
<div v-if="row.statuslogs1.length > 0">
<div class="billtrace-btn1">
<a-popover placement="topLeft">
<div slot="content">
<div>
<span class="txfcSpan" style="width: 120px;">箱号</span>
<span class="txfcSpan">提箱</span>
<span class="txfcSpan">返场</span>
</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">{{ item.txopTime }}</span>
<span class="txfcSpan">{{ item.fcopTime }}</span>
@ -934,63 +940,13 @@ export default {
handler(nD, oD) {
if (nD.name === 'booking_ledger') {
if (this.saveNeedNumber !== null) {
PageDataByBooking({ id: this.saveNeedNumber }).then(res => {
let index = 0
const item = res.data.items[0]
this.gridOptions.data.forEach((ite, inde) => {
if (ite.id === this.saveNeedNumber) {
index = inde
}
})
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.atdLoading = false
let hasGoods = 0
item.goodsStatusList.map((gitem, gindex) => {
if (gitem.finishTime || gitem.remark) {
hasGoods++
}
})
item.hasGoods = hasGoods
this.$set(this.gridOptions.data, index, item)
this.$refs.xGrid.reloadData(this.gridOptions.data)
})
this.getListByone(this.saveNeedNumber, index)
}
if (this.firstFlag && this.saveNeedNumber === null) {
this.getList(this.searchData)
@ -1018,6 +974,59 @@ export default {
bcClose() {
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.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)
})
},
handleSubmitCopyMore(e) {
e.preventDefault();
this.copyMoreForm.validateFields((err, values) => {
@ -1036,7 +1045,6 @@ export default {
const pkIdArr = select.map((item, index) => {
return item.id
})
console.log(pkIdArr)
const formData = new FormData()
formData.append('file', file)
formData.append('bookingOrderId', pkIdArr[0])
@ -1346,23 +1354,42 @@ export default {
})
}
},
handleRefshYZOnce(row) {
handleRefshYZOnce(row, rowIndex) {
const data = {
ids: row.id
ids: row.id
}
row.refshYzitemLoad = true
this.$forceUpdate()
RefreshBillTrace(data).then(res => {
if (res.success) {
if (res.success) {
PageDataByBooking({ id: row.id }).then(ress => {
const item = ress.data.items[0]
row.refshYzitemLoad = false
this.$forceUpdate()
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
this.$message.success('操作成功')
} else {
row.refshYzitemLoad = false
this.$forceUpdate()
this.$message.error(res.message)
}
})
})
} else {
row.refshYzitemLoad = false
this.$message.error(res.message)
}
})
},
setSort(item) {
if (Array.isArray(JSON.parse(item.configJson))) {
@ -1374,13 +1401,13 @@ export default {
this.tableOrderType = sort ? 'desc' : 'asc'
const newArr = []
this.sortLabelList.forEach(item => {
newArr.push({
sortField: item.sortField,
descSort: item.descSort
newArr.push({
sortField: item.sortField,
descSort: item.descSort
})
})
})
this.searchData.multisort = newArr
this.$refs.xGrid.sort(key, sort)
this.searchData.multisort = newArr
this.$refs.xGrid.sort(key, sort)
} else {
this.tableOrderLabel = ''
this.tableOrderType = ''
@ -1538,6 +1565,18 @@ export default {
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
}
})
const nowTableArr = this.formTableData.map((item, index) => {
if (item.field === 'operate') {
@ -1764,12 +1803,12 @@ export default {
this.init()
})
},
handleRefshAtd(row) {
handleRefshAtd(row, index) {
row.atdLoading = true
this.$forceUpdate()
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
@ -1873,8 +1912,8 @@ export default {
}
if ((!this.searchData.multisort || this.searchData.multisort.length === 0) &&
(!queryParam.multisort || queryParam.multisort.length === 0) &&
this.tableOrderLabel && this.tableOrderType) {
(!queryParam.multisort || queryParam.multisort.length === 0) &&
this.tableOrderLabel && this.tableOrderType) {
query.multisort = [{
sortField: this.tableOrderLabel,
descSort: this.tableOrderType === 'desc'
@ -2409,16 +2448,24 @@ export default {
ExcuteShippingOrderCompareBatch(arr)
.then((res) => {
if (res.success) {
this.spinning = false
if (!res.data.succ) {
this.spinning = false
this.$message.success(res.data.msg)
} else {
if (res.data.extra) {
this.TaskShippingOrderCompareData = res.data.extra
this.TaskShippingOrderCompareData.total = res.data.total
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 {
this.$message.success(res.data.msg)
this.spinning = false
}
}
} else {
@ -2909,51 +2956,54 @@ export default {
text-align: center;
justify-content: center;
}
.billtrace-btn {
font-size: 12px;
height: 16px;
width: 30%;
display: flex;
font-size: 12px;
height: 16px;
width: 30%;
display: flex;
span {
flex: 1;
text-align: right;
color: #999;
}
span {
flex: 1;
text-align: right;
color: #999;
}
i {
font-size: 12px;
color: #ccc;
flex: 1;
text-align: center;
i {
font-size: 12px;
color: #ccc;
flex: 1;
text-align: center;
&.hide {
opacity: 0;
}
&.hide {
opacity: 0;
}
}
.active {
cursor: pointer;
// color: @primary-color;
color: #ff9702;
font-weight: bold;
}
.active {
cursor: pointer;
// color: @primary-color;
color: #ff9702;
font-weight: bold;
}
&:nth-of-type(3) {
i {
opacity: 0;
}
&:nth-of-type(3) {
i {
opacity: 0;
}
}
.billtrace-btn1{
}
.billtrace-btn1 {
font-size: 12px;
.active {
cursor: pointer;
// color: @primary-color;
color: #ff9702 !important;
font-weight: bold;
font-size: 12px;
}
cursor: pointer;
// color: @primary-color;
color: #ff9702 !important;
font-weight: bold;
font-size: 12px;
}
}
/deep/ .ant-form-item {
@ -3421,17 +3471,19 @@ export default {
justify-content: space-between;
}
}
.txfcSpan{
.txfcSpan {
width: 140px;
display: inline-block;
}
.flag-icon{
.flag-icon {
color: #1d8aff;
cursor: pointer;
font-size: 20px;
}
/deep/ .vxe-table--render-default .vxe-body--row.row--checked{
/deep/ .vxe-table--render-default .vxe-body--row.row--checked {
background: #fff3e0 !important;
}
</style>

@ -470,24 +470,24 @@ export default {
{
field: 'isVGM',
label: 'isVGM',
width: 100,
title: '提交VGM',
width: 60,
title: 'VGM',
showHeaderOverflow: true,
slots: { default: 'IsVGM' }
},
{
field: 'isCanDan',
label: 'IsCanDan',
width: 80,
title: '提单舱单',
width: 50,
title: '舱单',
showHeaderOverflow: true,
slots: { default: 'IsCanDan' }
},
{
field: 'isZZFX',
label: 'IsZZFX',
width: 80,
title: '装载放行',
width: 50,
title: '装载',
showHeaderOverflow: true,
slots: { default: 'IsZZFX' }
},

@ -148,8 +148,8 @@
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item class="from-label" label="单证人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList">
<a-form-item class="from-label" label="单证人员" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-select allowClear :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList">
<a-select-option v-for="item in saleUserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
@ -157,9 +157,10 @@
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item class="from-label" label="客服人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-form-item class="from-label" label="客服人员" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-select
:showSearch="true"
allowClear
:filterOption="filterOption"
v-decorator="['custserviceid']"
@focus="getUserList"

@ -321,8 +321,12 @@
@change="ChangeFactory"
:default-active-first-option="false"
:show-arrow="false"
@search="getFactoryData"
@blur="getFactoryData"
:filter-option="filterOption"
:not-found-content="null"
:filterOption="filterOption"
allowClear
>
<a-select-option v-for="item in inFactory" :key="item.id" :value="item.shortName">
{{ item.shortName }}
@ -1280,6 +1284,11 @@ export default {
this.truckIdData = res.data
})
},
getFactoryData(name, type) {
DjyCustomerQuerytDjyCustomerInfo({ queryType: 'factory', queryItem: name }).then((res) => {
this.inFactory = res.data
})
},
filterOption(value, option) {
return option.componentOptions.children[0].text.indexOf(value) >= 0
},

@ -143,7 +143,7 @@
</a-col>
<a-col :span="6">
<a-form-item class="from-label" label="单证人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList">
<a-select allowClear :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList">
<a-select-option v-for="item in saleUserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
@ -154,6 +154,7 @@
<a-form-item class="from-label" label="客服人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select
:showSearch="true"
allowClear
:filterOption="filterOption"
v-decorator="['custserviceid']"
@focus="getUserList"

Loading…
Cancel
Save