修改bug

master
sunzehua 8 months ago
parent 43fa56b9a9
commit 931271d2e5

12
.env

@ -1,14 +1,14 @@
NODE_ENV=production NODE_ENV=production
VUE_APP_PREVIEW=true VUE_APP_PREVIEW=true
VUE_APP_TYPE = 'customer' # VUE_APP_TYPE = 'customer'
# VUE_APP_TYPE = 'hechuan' VUE_APP_TYPE = 'hechuan'
# VUE_APP_TYPE = 'yunyingduan' # VUE_APP_TYPE = 'yunyingduan'
# VUE_APP_TYPE = 'gangjie' # VUE_APP_TYPE = 'gangjie'
# 打包部署的三个端 客户端customer 和川端hechuan 运营端djy # 打包部署的三个端 客户端customer 和川端hechuan 运营端djy
# 和川大简云正式 # 和川大简云正式
# VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api
# VUE_APP_SOCKET_BASE_URL=http://47.104.85.216:12345 VUE_APP_SOCKET_BASE_URL=http://47.104.85.216:12345
# 和川大简云测试 # 和川大简云测试
# VUE_APP_API_BASE_URL=http://60.209.125.238:35100 # VUE_APP_API_BASE_URL=http://60.209.125.238:35100
@ -27,8 +27,8 @@ VUE_APP_TYPE = 'customer'
# VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001 # VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001
# 客户端正式 # 客户端正式
VUE_APP_API_BASE_URL=http://118.190.144.189:6001 # VUE_APP_API_BASE_URL=http://118.190.144.189:6001
VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6001 # VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6001
# 运营端正式 # 运营端正式
# VUE_APP_API_BASE_URL=http://118.190.144.189:6002 # VUE_APP_API_BASE_URL=http://118.190.144.189:6002

@ -2,8 +2,8 @@ NODE_ENV=development
VUE_APP_PREVIEW=true VUE_APP_PREVIEW=true
# VUE_APP_TYPE = 'customer' # VUE_APP_TYPE = 'customer'
# VUE_APP_TYPE = 'hechuan' # VUE_APP_TYPE = 'hechuan'
VUE_APP_TYPE = 'yunyingduan' # VUE_APP_TYPE = 'yunyingduan'
# VUE_APP_TYPE = 'gangjie' VUE_APP_TYPE = 'gangjie'
# 打包部署的三个端 客户端customer 和川端hechuan 运营端yunyingduan # 打包部署的三个端 客户端customer 和川端hechuan 运营端yunyingduan
# 和川大简云正式 # 和川大简云正式
@ -23,12 +23,12 @@ VUE_APP_TYPE = 'yunyingduan'
# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30814 # VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30814
# 港捷 # 港捷
# VUE_APP_API_BASE_URL=http://118.190.144.189:5001 VUE_APP_API_BASE_URL=http://118.190.144.189:5001
# VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001 VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001
# 运营端正式 # 运营端正式
VUE_APP_API_BASE_URL=http://118.190.144.189:6002 # VUE_APP_API_BASE_URL=http://118.190.144.189:6002
VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6002 # VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6002
# 客户端正式 # 客户端正式
# VUE_APP_API_BASE_URL=http://118.190.144.189:6001 # VUE_APP_API_BASE_URL=http://118.190.144.189:6001

@ -470,3 +470,10 @@ export function GetVGMMissingInfoByTaskId(parameter) {
}) })
} }
export function CutDateGetInfoByTaskId(parameter) {
return axios({
url: '/TaskManageCutDate/GetInfoByTaskId',
method: 'get',
params: parameter
})
}

@ -0,0 +1,85 @@
export const tableSort = {
data() {
return {
message: 'Hello from Mixin!'
}
},
methods: {
getConfigStart() {
const arr = localStorage.getItem('vesselinfoSetting') ? JSON.parse(localStorage.getItem('vesselinfoSetting')) : []
if (arr.length === 0) {
this.columns = JSON.parse(JSON.stringify(this.columnsAll))
const data = [
{
type: 'vesselinfo_list_column',
configJson: JSON.stringify(this.columns)
},
{
type: 'vesselinfo_page',
configJson: JSON.stringify({ pageSize: 10 })
},
{
type: 'vesselinfo_sort',
configJson: JSON.stringify({ sortField: 'etd', descSort: true })
}
]
localStorage.setItem('vesselinfoSetting', JSON.stringify(data))
this.FnGetData()
} else {
const $data = {}
arr.map((item, index) => {
switch (item.type) {
case 'vesselinfo_list_column':
this.$set($data, 'vesselinfo_list_column', item)
break
case 'vesselinfo_page':
this.$set($data, 'vesselinfo_page', item)
break
case 'vesselinfo_sort':
this.$set($data, 'vesselinfo_sort', item)
break
}
})
console.log(JSON.parse($data.vesselinfo_list_column.configJson))
if (Object.keys($data).includes('vesselinfo_list_column')) {
this.columns = JSON.parse($data.vesselinfo_list_column.configJson)
} else {
arr.push({
type: 'vesselinfo_list_column',
configJson: JSON.stringify(this.columns)
})
localStorage.setItem('vesselinfoSetting', JSON.stringify(arr))
}
if (Object.keys($data).includes('vesselinfo_page')) {
this.queryParam.PageSize = JSON.parse($data.vesselinfo_page.configJson).pageSize
} else {
arr.push({
type: 'vesselinfo_page',
configJson: JSON.stringify({ pageSize: 10 })
})
localStorage.setItem('vesselinfoSetting', JSON.stringify(arr))
}
if (Object.keys($data).includes('vesselinfo_sort')) {
const data = $data.vesselinfo_sort.configJson ? JSON.parse($data.vesselinfo_sort.configJson) : null
if (data) {
setTimeout(() => {
this.$refs.table.sort(data.sortField, data.descSort ? 'desc' : 'asc')
}, 200);
this.queryParam.sortField = data.sortField
this.queryParam.descSort = data.descSort
}
} else {
arr.push({
type: 'vesselinfo_sort',
configJson: ''
})
localStorage.setItem('vesselinfoSetting', JSON.stringify(arr))
}
setTimeout(() => {
this.FnGetData()
}, 200);
}
},
}
}

@ -68,6 +68,7 @@ const constantRouterComponents = {
BcFileDetail: () => import('@/views/main/Taskmanage/BcFileDetail'), BcFileDetail: () => import('@/views/main/Taskmanage/BcFileDetail'),
BCModify: () => import('@/views/main/Taskmanage/BCModify/index'), BCModify: () => import('@/views/main/Taskmanage/BCModify/index'),
vgmDetail: () => import('@/views/main/Taskmanage/vgmDetail/index'), vgmDetail: () => import('@/views/main/Taskmanage/vgmDetail/index'),
cutTime: () => import('@/views/main/Taskmanage/cutTime/index'),
cancellation: () => import('@/views/main/Taskmanage/cancellation/index'), cancellation: () => import('@/views/main/Taskmanage/cancellation/index'),
rollingNomination: () => import('@/views/main/Taskmanage/rollingNomination/index'), rollingNomination: () => import('@/views/main/Taskmanage/rollingNomination/index'),
BcEditing: () => import('@/views/main/Taskmanage/BcFileDetail/Editing'), BcEditing: () => import('@/views/main/Taskmanage/BcFileDetail/Editing'),
@ -231,6 +232,17 @@ const userAccount = [
}, },
component: 'vgmDetail' component: 'vgmDetail'
}, },
{
name: 'cutTime',
path: '/commontaskmanage/cutTime',
pid: 0,
id: 183110,
meta: {
title: '截止时间变更',
show: false
},
component: 'cutTime'
},
{ {
name: 'Cancellation', name: 'Cancellation',
path: '/commontaskmanage/Cancellation', path: '/commontaskmanage/Cancellation',

@ -270,6 +270,7 @@ const user = {
} }
getVesselInfoService(query).then(res => { getVesselInfoService(query).then(res => {
if (res.success) { if (res.success) {
res.data = [...new Map(res.data.map(item => [item.vessel, item])).values()]
localStorage.setItem('vesselInfo', JSON.stringify(res.data)) localStorage.setItem('vesselInfo', JSON.stringify(res.data))
} }
}) })

@ -2940,6 +2940,7 @@ export default {
if (res.success) { if (res.success) {
this.$message.success('删除成功') this.$message.success('删除成功')
const _data = this.gridOptions.data.filter((item) => !arr.includes(item.id)) const _data = this.gridOptions.data.filter((item) => !arr.includes(item.id))
this.gridOptions.data = _data
this.$refs.xGrid.reloadData(_data).then(() => { this.$refs.xGrid.reloadData(_data).then(() => {
this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length
}) })

@ -3373,6 +3373,7 @@ export default {
if (res.success) { if (res.success) {
this.$message.success('删除成功') this.$message.success('删除成功')
const _data = this.gridOptions.data.filter(item => !arr.includes(item.id)) const _data = this.gridOptions.data.filter(item => !arr.includes(item.id))
this.gridOptions.data = _data
this.$refs.xGrid.reloadData(_data).then(() => { this.$refs.xGrid.reloadData(_data).then(() => {
this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length
}) })

@ -1185,9 +1185,6 @@ export default {
}) })
}, },
getFilter() { getFilter() {
// ListAgentByCarrier({ carrierCode: this.bookingDetails.carrierid }).then(res => {
// this.$store.commit('SET_AgentFilter', res.data)
// })
listYardBwCarrier({ carrierCode: this.bookingDetails.carrierid }).then(res => { listYardBwCarrier({ carrierCode: this.bookingDetails.carrierid }).then(res => {
this.$store.commit('SET_YardFilter', res.data) this.$store.commit('SET_YardFilter', res.data)
}) })
@ -1349,7 +1346,7 @@ export default {
} }
const $BookingEDIExt = { ...JSON.parse(JSON.stringify(bookingEDIExt)), ...res.data.bookingEDIExt } const $BookingEDIExt = { ...JSON.parse(JSON.stringify(bookingEDIExt)), ...res.data.bookingEDIExt }
this.$set(this, 'bookingDetails', { ...this.bookingDetails, ...newData, ...{ bookingEDIExt: $BookingEDIExt } }) this.$set(this, 'bookingDetails', { ...this.bookingDetails, ...newData, ...{ bookingEDIExt: $BookingEDIExt } })
this.getVGM() // this.getVGM()
this.oldBookingDetails = JSON.parse(JSON.stringify(this.bookingDetails)) this.oldBookingDetails = JSON.parse(JSON.stringify(this.bookingDetails))
this.sendMessageFY() this.sendMessageFY()
if (this.$route.query.isCopy && this.$route.query.copyId) { if (this.$route.query.isCopy && this.$route.query.copyId) {

@ -622,23 +622,6 @@ export default {
</span> </span>
) )
} }
},
{
field: 'vgm',
key: 'vgm',
title: 'VGM',
align: 'left',
width: 50,
edit: false,
renderBodyCell: ({ row, column, rowIndex }, h) => {
return (
<div>
<span title={'回执成功 ' + row.vgmWeight + ' ' + row.vgmWeightUnit + ' ' + row.vgmWeightMethod} v-show={row.vgm && !row.isMissing} style="color:green;cursor:pointer;font-weight:bold">VGM</span>
<span title={'回执未成功' + row.submissionDeadLine } v-show={row.vgm && row.isMissing} style="color:red;cursor:pointer;font-weight:bold">VGM</span>
<span v-show={!row.vgm}>VGM</span>
</div>
)
}
} }
], ],
modelColumns: [ modelColumns: [

@ -2080,12 +2080,14 @@ export default {
if ($data.portdischargeid && !isHBL) { if ($data.portdischargeid && !isHBL) {
GetPortlist({ KeyWord: $data.portdischargeid }).then((res) => { GetPortlist({ KeyWord: $data.portdischargeid }).then((res) => {
if (res.data) { if (res.data) {
if (res.data[0].countryCode && res.data[0].country) { res.data.forEach((item, index) => {
$data.consigneecountry = res.data[0].countryCode if (item.countryCode && item.country) {
$data.consigneecountryName = `${res.data[0].countryCode}/${res.data[0].country}` $data.consigneecountry = item.countryCode
$data.notifypartycountry = res.data[0].countryCode $data.consigneecountryName = `${item.countryCode}/${item.country}`
$data.notifypartycountryName = `${res.data[0].countryCode}/${res.data[0].country}` $data.notifypartycountry = item.countryCode
} $data.notifypartycountryName = `${item.countryCode}/${item.country}`
}
})
} }
}) })
} }

@ -3372,6 +3372,7 @@ export default {
if (res.success) { if (res.success) {
this.$message.success('删除成功') this.$message.success('删除成功')
const _data = this.gridOptions.data.filter(item => !arr.includes(item.id)) const _data = this.gridOptions.data.filter(item => !arr.includes(item.id))
this.gridOptions.data = _data
this.$refs.xGrid.reloadData(_data).then(() => { this.$refs.xGrid.reloadData(_data).then(() => {
this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length
}) })

@ -2705,6 +2705,7 @@ export default {
if (res.success) { if (res.success) {
this.$message.success('删除成功') this.$message.success('删除成功')
const _data = this.gridOptions.data.filter((item) => !arr.includes(item.id)) const _data = this.gridOptions.data.filter((item) => !arr.includes(item.id))
this.gridOptions.data = _data
this.$refs.xGrid.reloadData(_data).then(() => { this.$refs.xGrid.reloadData(_data).then(() => {
this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length
}) })

@ -1495,6 +1495,9 @@ export default {
} else if (data.taskType === 'VGM_MISSING') { } else if (data.taskType === 'VGM_MISSING') {
// ROLLING_NOMINATION // ROLLING_NOMINATION
this.$router.push({ path: '/commontaskmanage/vgmDetail', query: { taskPKId: data.pkId, type: 'VGM_MISSING' } }) this.$router.push({ path: '/commontaskmanage/vgmDetail', query: { taskPKId: data.pkId, type: 'VGM_MISSING' } })
} else if (data.taskType === 'CUT_MODIFY') {
// ROLLING_NOMINATION
this.$router.push({ path: '/commontaskmanage/cutTime', query: { taskPKId: data.pkId } })
} else { } else {
// //
this.$router.push({ path: '/commontaskmanage/BookingDetails', query: { taskPKId: data.pkId } }) this.$router.push({ path: '/commontaskmanage/BookingDetails', query: { taskPKId: data.pkId } })

@ -0,0 +1,648 @@
<template>
<div class="Main">
<a-spin :spinning="spinning">
<div class="LeftHead">
<p>截止时间变更通知
{{ carrier }} </p>
<p>时间{{ time }}</p>
</div>
<a-table :pagination="false" :columns="columns" :data-source="tableList">
<span slot="bookingId" slot-scope="text, record">
<div v-if="record.bookingId > 0" class="point"></div>
<div v-if="record.bookingId == 0">-</div>
</span>
<span slot="vessel" slot-scope="text, record">
{{ record.vessel }} / {{ record.voyNo }}
</span>
</a-table>
<a-row style="margin-top: 20px;" type="flex" justify="end" :gutter="16">
<a-col>
<a-button type="primary" @click="OpenUser">
转移任务
</a-button>
</a-col>
<a-col>
<a-button type="primary" @click="FnCompleteTask">
完成任务
</a-button>
</a-col>
<a-col>
<a-button type="danger" @click="FnCancelTask">
取消任务
</a-button>
</a-col>
<a-col>
<a-button type="primary" @click="handleSendMail">
发送邮件
</a-button>
</a-col>
</a-row>
</a-spin>
<a-modal v-model="visible" title="生成方式选择" @ok="handleOk" width="40%">
<a-radio-group default-value="GEN_BOOKING_SLOT" v-model="CreateData.generateMethod">
<a-radio value="GEN_BOOKING_SLOT">
直接生成舱位和订舱
</a-radio>
<a-radio value="GEN_BOOKING">
只生成订舱
</a-radio>
<a-radio value="GEN_SLOT">
只生成舱位
</a-radio>
<a-radio value="GEN_EXIST_BOOKING">
匹配已有订舱
</a-radio>
</a-radio-group>
<p class="modaltitle">订舱录入</p>
<a-form class="Editing">
<a-row>
<a-col :span="16">
<a-form-item label="委托单位:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
<a-select
show-search
v-model="CreateData.customerId"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchCustomer"
@change="ChangeCustomer">
<a-select-option v-for="(item, index) in CustomerList" :key="index" :value="item.id">
{{ item.shortName }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="联系人:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.customerContactId"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="ChangeCustomerList">
<a-select-option v-for="item in customerByList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-item label="销售:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.saleId"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="e => {
ChangeUser(e, 'saleName')
}
">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="操作:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.opId"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="e => {
ChangeUser(e, 'opName')
}
">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="单证:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.docId"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="e => {
ChangeUser(e, 'docName')
}
">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="8">
<a-form-item label="航线操作:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.routeID"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="e => {
ChangeUser(e, 'route')
}
">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="航线管理:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
<a-select
show-search
v-model="CreateData.lineManageID"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser"
@change="e => {
ChangeUser(e, 'lineManage')
}
">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="16">
<a-form-item label="操作备注:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
<a-input v-model="CreateData.czRemark" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="16">
<a-form-item label="申请箱使:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
<a-input v-model="CreateData.shenQingXiangShi" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="16">
<a-form-item label="服务项目:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
<div class="content">
<div
class="items"
v-for="(serive, sindex) in bookingServiceItem"
:key="sindex"
:class="{ active: serive.isYield }"
@click="saveService(serive)">
{{ serive.serviceProjectName }}
</div>
</div>
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
<a-modal v-model="UserVisible" title="转移任务" @ok="UserhandleOk">
<a-form>
<a-form-item label="接收人:" :label-col="formItemLayout.labelCol1" :wrapper-col="formItemLayout.wrapperCol1">
<a-select
show-search
v-model="UserId"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="SearchUser">
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-form>
</a-modal>
<a-modal v-model="compareResultFlag" :footer="null">
<div v-for="(item, index) in compareResultList" :key="index">
<span> {{ item.fieldName }}{{ item.reqVal }}</span>
<span style="margin: 0 10px;">变更为</span>
<span v-html="item.mergeHtml"></span>
</div>
</a-modal>
</div>
</template>
<script>
import {
CutDateGetInfoByTaskId,
TransferTask,
CreateBookingAndSlot,
TaskManageBCSendEmai1,
CompleteTask,
CancelTaskBC
} from '@/api/modular/main/TaskmanageList'
import { mapGetters } from 'vuex'
import { DjyCustomerSuggest, GetSysUserPage, DjyCustomerContacts } from '@/api/modular/main/BookingLedger'
export default {
data() {
return {
CustomerList: [],
CreateData: {},
UserId: '',
value: '',
type: '',
customerByList: [],
columns: [
{
dataIndex: 'mblNo',
title: '提单号',
key: 'mblNo',
align: 'center'
},
{
title: '船名/航次',
dataIndex: 'vessel',
key: 'vessel',
align: 'center',
scopedSlots: { customRender: 'vessel' }
},
{
title: '样单截止时间',
dataIndex: 'siCutDateTxt',
key: 'siCutDateTxt',
align: 'center'
},
{
title: '开港时间',
dataIndex: 'cyOpenDateTxt',
key: 'cyOpenDateTxt',
align: 'center'
},
{
title: '截港时间',
dataIndex: 'cyCutoffTimeTxt',
key: 'cyCutoffTimeTxt',
align: 'center'
},
{
title: '舱单-入港清单截止时间',
dataIndex: 'manifestCutDateTxt',
key: 'manifestCutDateTxt',
align: 'center'
},
{
title: 'MDGF提交截止时间',
dataIndex: 'mdgfCutDateTxt',
key: 'mdgfCutDateTxt',
align: 'center'
},
{
title: 'VGM截止时间',
dataIndex: 'vgmCutoffTimeTxt',
key: 'vgmCutoffTimeTxt',
align: 'center'
},
{
title: '海关放行截止时间',
dataIndex: 'closingDateTxt',
key: 'closingDateTxt',
align: 'center'
},
{
title: '已发通知',
dataIndex: 'bookingId',
key: 'bookingId',
align: 'center',
scopedSlots: { customRender: 'bookingId' }
},
{
title: '订舱',
dataIndex: 'bookingId1',
key: 'bookingId1',
align: 'center'
}
],
compareResultFlag: false,
formItemLayout: {
labelCol1: { span: 6 },
wrapperCol1: { span: 18 },
labelCol2: { span: 8 },
wrapperCol2: { span: 16 },
labelCol3: { span: 4 },
wrapperCol3: { span: 20 },
labelCol4: { span: 8 },
wrapperCol4: { span: 16 },
labelCol5: { span: 14 },
wrapperCol5: { span: 10 },
labelCol6: { span: 8 },
wrapperCol6: { span: 16 }
},
visible: false,
UserVisible: false,
isPdf: '',
compareResultList: [],
href: '',
carrier: '',
time: '',
spinning: false,
tableList: [],
bookingServiceItem: [],
pdfUrl: '',
UserList: [],
fileCategory: 'BC_MODIFY'
}
},
computed: {
...mapGetters([
'userInfo'
])
},
watch: {
'$route': {
immediate: true,
handler(newValue, oldValue) {
if (newValue.path === '/commontaskmanage/cutTime') {
this.getList()
}
}
}
},
mounted() {
this.getList()
},
methods: {
SearchCustomer(e) {
DjyCustomerSuggest({ keyword: e, type: 'consignor' }).then(res => {
this.CustomerList = res.data.rows
})
},
OpenUser() {
this.UserId = ''
this.UserVisible = true
},
ChangeCustomer(e) {
this.CustomerList.forEach(item => {
if (item.id == e) {
this.CreateData.customerName = item.shortName
}
})
DjyCustomerContacts({ customerId: e }).then(res => {
if (res.success) {
this.customerByList = res.data
} else {
this.$message.error(res.message)
}
})
},
ChangeCustomerList(e) {
this.customerByList.forEach(item => {
if (item.id == e) {
this.CreateData.customerContactName = item.name
}
})
},
handleSendMail() {
TaskManageBCSendEmai1({ taskPKId: this.$route.query.taskPKId }).then(res => {
if (res.data.succ) {
this.$message.success(res.data.msg)
} else {
this.$message.error(res.data.msg)
}
})
},
FnCancelTask() {
const ApiData = {
taskPKId: this.$route.query.taskPKId
}
CancelTaskBC(ApiData).then(res => {
if (res.data.succ) {
this.$message.success(res.data.msg)
} else {
this.$message.error(res.data.msg)
}
})
},
SearchUser(e) {
GetSysUserPage({ name: e }).then(res => {
this.UserList = res.data
})
},
ChangeUser(e, Tname) {
this.UserList.forEach(item => {
if (item.id == e) {
console.log(e)
this.CreateData[Tname] = item.name
}
})
},
saveService(data) {
data.isYield = !data.isYield
},
FnCompleteTask() {
const ApiData = [this.$route.query.taskPKId]
CompleteTask(ApiData).then(res => {
if (res.data.succ) {
this.$message.success(res.data.msg)
} else {
this.$message.error(res.data.msg)
}
})
},
handleSendMail() {
TaskManageBCSendEmai1({ taskPKId: this.$route.query.taskPKId }).then(res => {
if (res.data.succ) {
this.$message.success(res.data.msg)
} else {
this.$message.error(res.data.msg)
}
})
},
getList() {
this.spinning = true
const ApiData = {
taskPKId: this.$route.query.taskPKId
}
CutDateGetInfoByTaskId(ApiData).then(res => {
if (res.success) {
this.tableList = res.data
if (res.data.length > 0) {
this.time = res.data[0].noticeDate
this.carrier = res.data[0].carrier
}
this.$forceUpdate()
} else {
this.$message.error(res.success)
}
this.spinning = false
})
},
handleOk() {
const projectList = []
this.bookingServiceItem.forEach(item => {
if (item.isYield) {
projectList.push(item.serviceProjectCode)
}
})
const ApiData = {
bcTaskId: this.$route.query.taskPKId,
// bcPkId: '',
// slotId: '',
projectList,
...this.CreateData
}
console.log(ApiData)
CreateBookingAndSlot(ApiData).then(res => {
if (res.data.succ) {
this.visible = false
this.$message.success(res.data.msg)
} else {
this.$message.error(res.data.msg)
}
})
},
UserhandleOk() {
const ApiData = {
taskPKId: this.$route.query.taskPKId,
userId: this.UserId
}
TransferTask(ApiData).then(res => {
if (res.data.succ) {
this.UserVisible = false
this.$message.success(res.data.msg)
} else {
this.$message.error(res.data.msg)
}
})
this.UserVisible = false
}
}
}
</script>
<style lang="less" scoped>
@import url('../../BookingLedger/detail/style/rightContent.less');
.point {
height: 10px;
width: 10px;
border-radius: 50%;
margin: 0 auto;
background: green;
}
.modaltitle {
border-bottom: 1px solid #000;
width: 5rem;
padding: 0.2rem 0.5rem;
margin-top: 1rem;
}
.icon-chuanfanguanli-chuanfanshenqing {
color: '#02A7F0';
}
.Main {
width: 100%;
background: white;
height: 100vh;
padding: 0 20px;
.LeftHead {
width: 100%;
display: flex;
justify-content: space-between;
padding: 8px;
margin-bottom: 16px;
border-bottom: 1px solid #000;
p {
margin: 0;
&:nth-child(1) {
font-weight: bold;
}
}
}
.title {
margin-top: 10px;
}
.CsSee {
color: #02a7f3;
text-decoration: underline;
cursor: pointer;
}
.LeftBottomBox {
.unitBox {
width: 100%;
display: flex;
.unit {
text-align: center;
line-height: 30px;
height: 30px;
// background: rgba(255, 255, 128, 1);
// border: 1px solid rgba(170, 10, 0, 1);
border-radius: 3px;
box-shadow: none;
// font-weight: bold;
// color: #62a10398;
margin: 0.5rem;
padding: 0 0.3rem;
.iconfont {
margin-right: 0.3rem;
}
}
}
}
.rightBox {
// margin-top: 37px;
.rightBoxRadio {
margin-bottom: 15px;
}
}
/deep/.Editing {
.ant-form-item {
margin: 0 !important;
line-height: 1.5 !important;
.ant-form-item-label {
line-height: 1.5 !important;
}
.ant-form-item-control {
line-height: 1.5 !important;
}
}
}
}
</style>

@ -1544,6 +1544,7 @@ export default {
if (res.success) { if (res.success) {
this.$message.success('恢复成功') this.$message.success('恢复成功')
const _data = this.gridOptions.data.filter(item => !arr.includes(item.id)) const _data = this.gridOptions.data.filter(item => !arr.includes(item.id))
this.gridOptions.data = _data
this.$refs.xGrid.reloadData(_data).then(() => { this.$refs.xGrid.reloadData(_data).then(() => {
this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length this.gridOptions.pagerConfig.total = this.gridOptions.pagerConfig.total - arr.length
}) })

@ -129,9 +129,10 @@
<div> <div>
<a-button type="primary" @click="FnGetData"></a-button> <a-button type="primary" @click="FnGetData"></a-button>
<a-button style="margin-left: 8px" @click="init"></a-button> <a-button style="margin-left: 8px" @click="init"></a-button>
<tableSort style="margin-left: 10px;" @columnChange="handleColumnChange" :columns="columns" :columnsAll="columnsAll"></tableSort>
</div> </div>
</div> </div>
<vxe-table <!-- <vxe-table
:data="loadData" :data="loadData"
stripe stripe
resizable resizable
@ -142,49 +143,46 @@
<vxe-column type="checkbox" width="60"></vxe-column> <vxe-column type="checkbox" width="60"></vxe-column>
<vxe-column <vxe-column
v-for="item in columns" v-for="item in columns"
:key="`${item.dataIndex}3`" :key="`${item.field}3`"
:field="item.dataIndex" :field="item.field"
:min-width="item.width" :min-width="item.width"
:title="item.title" :title="item.title"
:fixed="item.fixed" :fixed="item.fixed"
:align="item.align"> :align="item.align">
<template #default="{ row }"> <template #default="{ row }">
<div v-if="item.dataIndex == 'vessel'"> <div v-if="item.field == 'vessel'">
<span>{{ row.vessel }} / {{ row.voyno }}</span> <span>{{ row.vessel }} / {{ row.voyno }}</span>
</div> </div>
<div v-else-if="item.dataIndex == 'isReefer'"> <div v-else-if="item.field == 'isReefer'">
<span v-if="row.isReefer"></span> <span v-if="row.isReefer"></span>
<span v-else></span> <span v-else></span>
</div> </div>
<div v-else-if="item.dataIndex == 'isJob'"> <div v-else-if="item.field == 'isJob'">
<span v-if="row.isJob"></span> <span v-if="row.isJob"></span>
<span v-else></span> <span v-else></span>
</div> </div>
<div v-else-if="item.dataIndex == 'isbookingPartOwnPrice'"> <div v-else-if="item.field == 'isbookingPartOwnPrice'">
<span v-if="row.isbookingPartOwnPrice"></span> <span v-if="row.isbookingPartOwnPrice"></span>
<span v-else></span> <span v-else></span>
</div> </div>
<div v-else-if="item.dataIndex == 'isImportReturned'"> <div v-else-if="item.field == 'isImportReturned'">
<span v-if="row.isImportReturned"></span> <span v-if="row.isImportReturned"></span>
<span v-else></span> <span v-else></span>
</div> </div>
<div v-else-if="item.dataIndex == 'isShipperOwned'"> <div v-else-if="item.field == 'isRecvBC'">
<span v-if="row.isShipperOwned"></span> <a-icon type="bulb" theme="filled" style="color: green;font-size: 16px;" :title="row.lstRecvBCDate" v-if="row.isRecvBC" />
<span v-else></span>
</div> </div>
<div v-else-if="item.dataIndex == 'isRecvBC'"> <div v-else-if="item.field == 'isRecvBKCancel'">
<span :title="row.lstRecvBCDate" v-if="row.isRecvBC" style="display: inline-block;width:15px;height: 15px;border-radius: 50%;background: green;cursor: pointer;"></span> <a-icon type="bulb" theme="filled" style="color: red;font-size: 16px;" :title="row.lstRecvBCDate" v-if="row.isRecvBKCancel" />
<span v-else style="display: inline-block;width:15px;height: 15px;border-radius: 50%;background: gray"></span>
</div> </div>
<div v-else-if="item.dataIndex == 'isRecvBKCancel'"> <div v-else-if="item.field == 'isShipperOwned'">
<span :title="row.lstRecvBKCancelDate" v-if="row.isRecvBKCancel" style="display: inline-block;width:15px;height: 15px;border-radius: 50%;background: green;cursor: pointer;"></span> <a-icon v-if="row.isShipperOwned" type="check-circle" style="color: green;font-size: 16px;" theme="filled" />
<span v-else style="display: inline-block;width:15px;height: 15px;border-radius: 50%;background: gray"></span>
</div> </div>
<span v-else>{{ row[item.dataIndex] }}</span> <span v-else>{{ row[item.field] }}</span>
</template> </template>
</vxe-column> </vxe-column>
<vxe-column title="操作" fixed="right" width="120" align="center"> <vxe-column title="操作" fixed="right" width="120" align="center">
<template #default="{ row }"> <template #default="{ row }">
<vxe-button type="text" @click="handleEdit(row.id)"> <vxe-button type="text" @click="handleEdit(row.id)">
<a-icon type="form" :style="{ color: '#13c2c2' }" /> <a-icon type="form" :style="{ color: '#13c2c2' }" />
</vxe-button> </vxe-button>
@ -201,412 +199,535 @@
</vxe-button> </vxe-button>
</a-popconfirm> </a-popconfirm>
</template> </template>
</vxe-column> </vxe-column>
</vxe-table> </vxe-table>
<vxe-pager <vxe-pager :loading="loading" :current-page="queryParam.pageNo" :page-size="queryParam.pageSize"
:total="queryParam.totalResult" :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
@page-change="handlePageChange">
</vxe-pager> -->
<vxe-grid
:data="loadData"
stripe
resizable
round
ref="table"
:columns="columns"
:loading="loading" :loading="loading"
:current-page="queryParam.pageNo" @cell-dblclick="handledbclick"
:page-size="queryParam.pageSize" @sort-change="tableSortChange"
:total="queryParam.totalResult" @resizable-change="resizableChange"
:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']" height="600px"
@page-change="handlePageChange"> empty-text="没有更多数据了!">
</vxe-pager> <template #caozuo="{ row }">
<vxe-button style="padding:0;margin:0;margin-right:5px;" type="text" @click="$refs.editForm.edit(row)">
<a-icon type="form" :style="{ color: '#13c2c2' }" />
</vxe-button>
<a-popconfirm title="是否确认删除?" ok-text="" cancel-text="" @confirm="confirm(row)">
<vxe-button style="padding:0;margin:0;" type="text">
<a-icon type="delete" :style="{ color: '#13c2c2' }" />
</vxe-button>
</a-popconfirm>
</template>
<template #pager>
<vxe-pager
:current-page="queryParam.PageNo"
:page-size="queryParam.PageSize"
:total="queryParam.totalCount"
:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
@page-change="handlePageChange">
</vxe-pager>
</template>
</vxe-grid>
</a-card> </a-card>
<mskBookingOrder @handleSuccess="handleSuccess" ref="mskBookingOrder"></mskBookingOrder> <mskBookingOrder @handleSuccess="handleSuccess" ref="mskBookingOrder"></mskBookingOrder>
</div> </div>
</template> </template>
<script> <script>
import { mskGetPage, mskDelete } from '@/api/modular/main/BookingLedger' import { mskGetPage, mskDelete } from '@/api/modular/main/BookingLedger'
import columnSetting from '@/components/tableColumnSetting' import columnSetting from '@/components/tableColumnSetting'
import mskBookingOrder from '@/components/mskBookingOrder' import tableSort from '@/components/tableSort'
export default { import mskBookingOrder from '@/components/mskBookingOrder'
components: { import { DjyUserConfigAdd } from '@/api/modular/main/DjyUserConfig'
columnSetting, mskBookingOrder export default {
}, components: {
data() { columnSetting, mskBookingOrder,tableSort
return { },
TypeData: [], data() {
// / return {
advanced: false, TypeData: [],
visible: false, // /
loading: false, advanced: false,
selectedRowKeys: [], visible: false,
addSearch: '', loading: false,
setVisible: false, selectedRowKeys: [],
setVisible1: false, addSearch: '',
addLoading: false, setVisible: false,
addSettingFlag: false, setVisible1: false,
formLoad: false, addLoading: false,
addForm: { addSettingFlag: false,
smtpSSL: false, formLoad: false,
receiveSSL: false, addForm: {
parserList: [] smtpSSL: false,
receiveSSL: false,
parserList: []
},
addData: [],
queryParam: {
pageNo: 1,
pageSize: 10,
totalResult: 1
},
form: {},
ColumnsQuery: [],
columns: [
{
title: '订舱号',
align: 'center',
width: '150',
field: 'bookingReference'
}, },
addData: [], {
queryParam: { title: '起运港',
pageNo: 1, align: 'center',
pageSize: 10, width: '100',
totalResult: 1 field: 'placeReceiptCity'
}, },
form: {}, {
ColumnsQuery: [], title: '目的港',
columns: [ align: 'center',
{ width: '100',
title: '订舱号', field: 'placeDeliveryCity'
align: 'center', },
width: '150', {
dataIndex: 'bookingReference' title: '箱型箱量',
}, align: 'center',
{ width: '150',
title: '合约号', field: 'ctnStat'
align: 'center', },
width: '200', {
dataIndex: 'priceReference' title: '船名/航次',
}, align: 'center',
{ width: '100',
title: '预计离港日期', field: 'vessel'
align: 'center', },
width: '130', {
dataIndex: 'earliestDepartureDate' title: 'ETD',
}, align: 'center',
{ width: '100',
title: '始发地', field: 'etd'
align: 'center', },
width: '100', {
dataIndex: 'placeReceiptCity' title: '总重KGS',
}, align: 'center',
{ width: '130',
title: '目的地', field: 'totalCargoWeight'
align: 'center', },
width: '100', {
dataIndex: 'placeDeliveryCity' title: '合约号',
}, align: 'center',
{ width: '160',
title: '船名/航次', field: 'priceReference'
align: 'center', },
width: '100', {
dataIndex: 'vessel' title: 'BC',
}, align: 'center',
{ width: '50',
title: 'ETD', field: 'isRecvBC'
align: 'center', },
width: '100', {
dataIndex: 'etd' title: 'BookingCancellation',
}, align: 'center',
{ width: '200',
title: 'ATD', field: 'isRecvBKCancel'
align: 'center', },
width: '100', {
dataIndex: 'atd' title: '状态',
}, align: 'center',
{ width: '130',
title: '货物标志', field: 'status'
align: 'center', },
width: '100', {
dataIndex: 'cargoType' title: 'soc',
}, align: 'center',
{ width: '50',
title: '总重KGS', field: 'isShipperOwned'
align: 'center', },
width: '130', {
dataIndex: 'totalCargoWeight' title: '订舱人',
}, align: 'center',
{ width: '130',
title: '是否冷冻处理', field: 'createdUserName'
align: 'center', },
width: '150', {
dataIndex: 'isReefer' title: '订舱日期',
}, align: 'center',
{ width: '150',
title: '温度', field: 'createdTime'
align: 'center', }
width: '100', ],
dataIndex: 'tempSet' columnsAll: [
}, {
{ title: '订舱号',
title: '通风', align: 'center',
align: 'center', width: '150',
width: '150', field: 'bookingReference'
dataIndex: 'vent' },
}, {
{ title: '起运港',
title: '湿度', align: 'center',
align: 'center', width: '100',
width: '130', field: 'placeReceiptCity'
dataIndex: 'humidity' },
}, {
{ title: '目的港',
title: '状态', align: 'center',
align: 'center', width: '100',
width: '130', field: 'placeDeliveryCity'
dataIndex: 'status' },
}, {
{ title: '箱型箱量',
title: '订舱公司', align: 'center',
align: 'center', width: '150',
width: '130', field: 'ctnStat'
dataIndex: 'bookedByCompanyName' },
}, {
{ title: '船名/航次',
title: '订舱公司代码', align: 'center',
align: 'center', width: '100',
width: '130', field: 'vessel'
dataIndex: 'bookedByCompanyPartyCode' },
}, {
{ title: 'ETD',
title: '是否持约方', align: 'center',
align: 'center', width: '100',
width: '100', field: 'etd'
dataIndex: 'isbookingPartOwnPrice' },
}, {
{ title: '总重KGS',
title: '持约方公司', align: 'center',
align: 'center', width: '130',
width: '130', field: 'totalCargoWeight'
dataIndex: 'priceOwnerCompanyName' },
}, {
{ title: '合约号',
title: '持约方公司代码', align: 'center',
align: 'center', width: '160',
width: '130', field: 'priceReference'
dataIndex: 'priceOwnerCompanyPartyCode' },
}, {
{ title: 'BC',
title: '箱型箱量', align: 'center',
align: 'center', width: '50',
width: '150', field: 'isRecvBC'
dataIndex: 'ctnStat' },
}, {
{ title: 'BookingCancellation',
title: 'soc', align: 'center',
align: 'center', width: '200',
width: '50', field: 'isRecvBKCancel'
dataIndex: 'isShipperOwned' },
}, {
{ title: '状态',
title: '进口退货集装箱', align: 'center',
align: 'center', width: '130',
width: '120', field: 'status'
dataIndex: 'isImportReturned' },
}, {
{ title: 'soc',
title: 'BC', align: 'center',
align: 'center', width: '50',
width: '50', field: 'isShipperOwned'
dataIndex: 'isRecvBC' },
}, {
{ title: '订舱人',
title: 'BookingCancellation', align: 'center',
align: 'center', width: '130',
width: '200', field: 'createdUserName'
dataIndex: 'isRecvBKCancel' },
}, {
{ title: '订舱日期',
title: '创建日期', align: 'center',
align: 'center', width: '150',
width: '150', field: 'createdTime'
dataIndex: 'createdTime' }
}, ],
{ tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
title: '创建人', loadData: []
align: 'center', }
width: '130', },
dataIndex: 'createdUserName' created() { },
}, mounted() {
{ this.getConfigStart()
title: '更新日期', },
align: 'center', methods: {
width: '150', toggleAdvanced() {
dataIndex: 'updatedTime' this.advanced = !this.advanced
}, },
{ onSelectChange(selectedRowKeys) {
title: '更新人', this.selectedRowKeys = selectedRowKeys;
align: 'center', },
width: '130', getConfigStart() {
dataIndex: 'updatedUserName' const arr = localStorage.getItem('mskOrderSetting') ? JSON.parse(localStorage.getItem('mskOrderSetting')) : []
}, if (arr.length === 0) {
{ this.columns = JSON.parse(JSON.stringify(this.columnsAll))
title: '是否定时任务', const data = [
align: 'center', {
width: '130', type: 'mskOrder_list_column',
dataIndex: 'isJob' configJson: JSON.stringify(this.columns)
}, },
{ {
title: '定时时间', type: 'mskOrder_page',
align: 'center', configJson: JSON.stringify({ pageSize: 10 })
width: '150',
dataIndex: 'jobTime'
}, },
{ {
title: '发送时间', type: 'mskOrder_sort',
align: 'center', configJson: JSON.stringify({ sortField: 'etd', descSort: true })
width: '130',
dataIndex: 'sendTime'
} }
], ]
tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, localStorage.setItem('mskOrderSetting', JSON.stringify(data))
loadData: [] this.FnGetData()
} } else {
}, const $data = {}
created() { }, arr.map((item, index) => {
mounted() { switch (item.type) {
this.FnGetData() case 'mskOrder_list_column':
}, this.$set($data, 'mskOrder_list_column', item)
methods: { break
toggleAdvanced() { case 'mskOrder_page':
this.advanced = !this.advanced this.$set($data, 'mskOrder_page', item)
}, break
onSelectChange(selectedRowKeys) { case 'mskOrder_sort':
this.selectedRowKeys = selectedRowKeys; this.$set($data, 'mskOrder_sort', item)
}, break
handleDeleteSelect() {
const records = this.$refs.xTable1.getCheckboxRecords()
if (records.length === 0) {
this.$message.warning('请先选择')
return false
}
const arr = []
records.forEach(item => {
arr.push(item.gid)
})
this.loading = true
EmailUserAccountDelete(arr).then(res => {
if (res.data.succ) {
this.$message.success('删除成功')
this.FnGetData()
} else {
this.$message.error(`删除失败,${res.data.msg}`)
} }
this.loading = false
}) })
}, console.log(JSON.parse($data.mskOrder_list_column.configJson))
handleEdit(id) { if (Object.keys($data).includes('mskOrder_list_column')) {
this.$refs.mskBookingOrder.init(id) this.columns = JSON.parse($data.mskOrder_list_column.configJson)
},
handleSave() {
this.$refs.addForm.validate(valid => {
if (valid) {
if (!this.addForm.receivePort) {
this.$message.warning('请输入收件服务器端口')
return false
}
if (!this.addForm.smtpPort) {
this.$message.warning('请输入发件服务器端口')
return false
}
this.formLoad = true
EmailUserAccountSave(this.addForm).then(res => {
if (res.data.succ) {
this.$message.success('保存成功')
this.FnGetData()
this.visible = false
} else {
this.$message.error(res.data.msg)
}
this.formLoad = false
})
} else {
return false;
}
});
},
handleSuccess() {
this.FnGetData()
},
init() {
this.form = {}
},
handlePageChange({ currentPage, pageSize }) {
this.queryParam.pageNo = currentPage
this.queryParam.pageSize = pageSize
this.FnGetData()
},
FnGetData() {
this.loading = true
this.form.pageNo = this.queryParam.pageNo
this.form.pageSize = this.queryParam.pageSize
console.log(this.form)
if (this.form.etd) {
this.form.etdBegin = this.form.etd[0]
this.form.etdEnd = this.form.etd[1]
} else { } else {
this.form.etdBegin = '' arr.push({
this.form.etdEnd = '' type: 'mskOrder_list_column',
configJson: JSON.stringify(this.columns)
})
localStorage.setItem('mskOrderSetting', JSON.stringify(arr))
} }
if (this.form.eta) { if (Object.keys($data).includes('mskOrder_page')) {
this.form.etaBegin = this.form.eta[0] this.queryParam.PageSize = JSON.parse($data.mskOrder_page.configJson).pageSize
this.form.etaEnd = this.form.eta[1]
} else { } else {
this.form.etaBegin = '' arr.push({
this.form.etaEnd = '' type: 'mskOrder_page',
configJson: JSON.stringify({ pageSize: 10 })
})
localStorage.setItem('mskOrderSetting', JSON.stringify(arr))
} }
if (this.form.job) { if (Object.keys($data).includes('mskOrder_sort')) {
this.form.jobBegin = this.form.job[0] const data = $data.mskOrder_sort.configJson ? JSON.parse($data.mskOrder_sort.configJson) : null
this.form.jobEnd = this.form.job[1] if (data) {
setTimeout(() => {
this.$refs.table.sort(data.sortField, data.descSort ? 'desc' : 'asc')
}, 200);
this.queryParam.sortField = data.sortField
this.queryParam.descSort = data.descSort
}
} else { } else {
this.form.jobBegin = '' arr.push({
this.form.jobEnd = '' type: 'mskOrder_sort',
configJson: ''
})
localStorage.setItem('mskOrderSetting', JSON.stringify(arr))
} }
if (this.form.eDeparture) { setTimeout(() => {
this.form.eDepartureBegin = this.form.eDeparture[0] this.FnGetData()
this.form.eDepartureEnd = this.form.eDeparture[1] }, 200);
} else { }
this.form.eDepartureBegin = '' },
this.form.eDepartureEnd = '' handlePageChange({ currentPage, pageSize }) {
if (this.queryParam.pageSize !== pageSize) {
this.editPageSizeSave(pageSize)
this.changeSetting('mskOrder_page', { pageSize: pageSize })
}
this.queryParam.PageNo = currentPage
this.queryParam.PageSize = pageSize
this.FnGetData()
},
changeSetting(key, value) {
const arr = localStorage.getItem('mskOrderSetting') ? JSON.parse(localStorage.getItem('mskOrderSetting')) : []
arr.forEach(item => {
if (item.type === key) {
item.configJson = JSON.stringify(value)
} }
mskGetPage(this.form).then(res => { })
this.loadData = res.data.items localStorage.setItem('mskOrderSetting', JSON.stringify(arr))
this.loading = false },
this.queryParam.totalResult = res.data.totalCount tableSortChange(e) {
}) const { property, order } = e
}, const data =
confirm(e, data) { {
this.handleDelete(data) sortField: property,
}, descSort: order === 'desc'
handleDelete(record) { }
mskDelete({ id: record }).then(res => { this.queryParam.sortField = data.sortField
if (res.success) { this.queryParam.descSort = data.descSort
this.$message.success('删除成功') this.changeSetting('mskOrder_sort', data)
this.FnGetData() this.FnGetData(this.queryParam)
} else { DjyUserConfigAdd({
this.$message.error(`删除失败,${res.message}`) type: 'mskOrder_sort',
configJson: JSON.stringify(data)
}).then(res => {
})
},
handleColumnChange(list) {
this.columns = JSON.parse(JSON.stringify(list))
this.columns.forEach((item, index) => {
this.$set(this.columns, index, item)
})
this.$forceUpdate()
this.editColumnsSave(this.columns)
this.changeSetting('mskOrder_list_column', this.columns)
},
editColumnsSave(data = {}) {
DjyUserConfigAdd({
type: 'mskOrder_list_column',
configJson: JSON.stringify(data)
}).then(res => {
})
},
handledbclick(row) {
this.$refs.editForm.edit(row.row)
},
resizableChange(e) {
this.columns[e.columnIndex].width = e.resizeWidth
this.editColumnsSave(this.columns)
this.changeSetting('mskOrder_list_column', this.columns)
},
handleEdit(id) {
this.$refs.mskBookingOrder.init(id)
},
handleSave() {
this.$refs.addForm.validate(valid => {
if (valid) {
if (!this.addForm.receivePort) {
this.$message.warning('请输入收件服务器端口')
return false
} }
}) if (!this.addForm.smtpPort) {
}, this.$message.warning('请输入发件服务器端口')
handleAdd() { return false
this.$refs.mskBookingOrder.init() }
this.formLoad = true
EmailUserAccountSave(this.addForm).then(res => {
if (res.data.succ) {
this.$message.success('保存成功')
this.FnGetData()
this.visible = false
} else {
this.$message.error(res.data.msg)
}
this.formLoad = false
})
} else {
return false;
}
});
},
handleSuccess() {
this.FnGetData()
},
init() {
this.form = {}
},
handlePageChange({ currentPage, pageSize }) {
this.queryParam.pageNo = currentPage
this.queryParam.pageSize = pageSize
this.FnGetData()
},
FnGetData() {
this.loading = true
this.form.pageNo = this.queryParam.pageNo
this.form.pageSize = this.queryParam.pageSize
console.log(this.form)
if (this.form.etd) {
this.form.etdBegin = this.form.etd[0]
this.form.etdEnd = this.form.etd[1]
} else {
this.form.etdBegin = ''
this.form.etdEnd = ''
}
if (this.form.eta) {
this.form.etaBegin = this.form.eta[0]
this.form.etaEnd = this.form.eta[1]
} else {
this.form.etaBegin = ''
this.form.etaEnd = ''
} }
if (this.form.job) {
this.form.jobBegin = this.form.job[0]
this.form.jobEnd = this.form.job[1]
} else {
this.form.jobBegin = ''
this.form.jobEnd = ''
}
if (this.form.eDeparture) {
this.form.eDepartureBegin = this.form.eDeparture[0]
this.form.eDepartureEnd = this.form.eDeparture[1]
} else {
this.form.eDepartureBegin = ''
this.form.eDepartureEnd = ''
}
mskGetPage(this.form).then(res => {
this.loadData = res.data.items
this.loading = false
this.queryParam.totalResult = res.data.totalCount
})
},
confirm(e, data) {
this.handleDelete(data)
},
handleDelete(record) {
mskDelete({ id: record }).then(res => {
if (res.success) {
this.$message.success('删除成功')
this.FnGetData()
} else {
this.$message.error(`删除失败,${res.message}`)
}
})
},
handleAdd() {
this.$refs.mskBookingOrder.init()
} }
} }
</script> }
<style lang="less" scoped> </script>
/deep/ .ant-form-item{ <style lang="less" scoped>
margin-bottom: 10px !important; /deep/ .ant-form-item {
} margin-bottom: 10px !important;
.table-operator { }
margin-bottom: 18px;
}
.Close { .table-operator {
height: 45px; margin-bottom: 18px;
overflow: hidden; }
}
.vxe-table--render-default .vxe-body--row.row--stripe { .Close {
background: #f5f9fe; height: 45px;
} overflow: hidden;
}
.ant-card-body { .vxe-table--render-default .vxe-body--row.row--stripe {
padding-top: 10px; background: #f5f9fe;
} }
.inline { .ant-card-body {
position: relative; padding-top: 10px;
} }
.inline-right { .inline {
position: absolute; position: relative;
top: 6px; }
right: 25px;
} .inline-right {
</style> position: absolute;
top: 6px;
right: 25px;
}
</style>

@ -361,38 +361,6 @@ export default {
handledbclick(row) { handledbclick(row) {
this.$refs.editForm.edit(row.row) this.$refs.editForm.edit(row.row)
}, },
getConfigUser(isInit = false) {
const query = {
typeArr: ['vesselinfo_sort', 'vesselinfo_list_column', 'vesselinfo_page']
}
this.loading = true
DjyUserConfigMulti(this.$qs.stringify(query, { arrayFormat: 'repeat' })).then(res => {
if (res.data.length === 0) {
this.columns = JSON.parse(JSON.stringify(this.columnsAll))
this.FnGetData()
} else {
res.data.forEach(item => {
if (item.type === 'vesselinfo_list_column') {
this.columns = JSON.parse(item.configJson)
}
if (item.type === 'vesselinfo_page') {
this.queryParam.PageSize = JSON.parse(item.configJson).pageSize
}
if (item.type === 'vesselinfo_sort') {
const data = JSON.parse(item.configJson)
setTimeout(() => {
this.$refs.table.sort(data.sortField, data.descSort ? 'desc' : 'asc')
}, 200);
this.queryParam.sortField = data.sortField
this.queryParam.descSort = data.descSort
}
})
setTimeout(() => {
this.FnGetData()
}, 200);
}
})
},
resizableChange(e) { resizableChange(e) {
this.columns[e.columnIndex].width = e.resizeWidth this.columns[e.columnIndex].width = e.resizeWidth
this.editColumnsSave(this.columns) this.editColumnsSave(this.columns)
@ -480,9 +448,6 @@ export default {
init() { init() {
Object.assign(this.$data, this.$options.data()) Object.assign(this.$data, this.$options.data())
this.ColumnsQuery = this.columns this.ColumnsQuery = this.columns
// GetCarrierlist().then(res => {
// this.carrierData = res.data
// })
this.getConfigStart() this.getConfigStart()
}, },
getConfigStart() { getConfigStart() {
@ -506,22 +471,6 @@ export default {
localStorage.setItem('vesselinfoSetting', JSON.stringify(data)) localStorage.setItem('vesselinfoSetting', JSON.stringify(data))
this.FnGetData() this.FnGetData()
} else { } else {
// arr.forEach(item => {
// if (item.type === 'vesselinfo_list_column') {
// this.columns = JSON.parse(item.configJson)
// }
// if (item.type === 'vesselinfo_page') {
// this.queryParam.PageSize = JSON.parse(item.configJson).pageSize
// }
// if (item.type === 'vesselinfo_sort') {
// const data = JSON.parse(item.configJson)
// setTimeout(() => {
// this.$refs.table.sort(data.sortField, data.descSort ? 'desc' : 'asc')
// }, 200);
// this.queryParam.sortField = data.sortField
// this.queryParam.descSort = data.descSort
// }
// })
const $data = {} const $data = {}
arr.map((item, index) => { arr.map((item, index) => {
switch (item.type) { switch (item.type) {

@ -351,7 +351,7 @@ export default {
typeArr: ['vesselinfo_sort', 'vesselinfo_list_column', 'vesselinfo_page', 'booking_list_column'] typeArr: ['vesselinfo_sort', 'vesselinfo_list_column', 'vesselinfo_page', 'booking_list_column']
} }
DjyUserConfigMulti(this.$qs.stringify(query)).then(res => { DjyUserConfigMulti(this.$qs.stringify(query)).then(res => {
const vessArr = [] let vessArr = []
let bookArr = [] let bookArr = []
res.data.forEach(item => { res.data.forEach(item => {
if (item.type.includes('vesselinfo')) { if (item.type.includes('vesselinfo')) {

@ -1,19 +1,19 @@
<template> <template>
<a-modal title="修改密码" @cancel="handleCancel" :visible="visible_updPwd" :confirm-loading="confirmLoading"> <a-modal title="修改密码" @cancel="handleCancel" :visible="visible_updPwd" :confirm-loading="confirmLoading">
<a-form :form="formUpdPwd"> <a-form :form="formUpdPwd">
<a-form-item label="原密码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item label="原密码" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-input <a-input
placeholder="请输入原密码" placeholder="请输入原密码"
type="password" type="password"
v-decorator="['password', { rules: [{ required: true, message: '请输入原密码!' }] }]" /> v-decorator="['password', { rules: [{ required: true, message: '请输入原密码!' }] }]" />
</a-form-item> </a-form-item>
<a-form-item label="新密码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item label="新密码" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-input <a-input
placeholder="请输入新密码" placeholder="请输入新密码"
type="password" type="password"
v-decorator="['newPassword', { rules: [{ required: true, message: '请输入新密码!' }, { validator: validateToNextPassword },] }]" /> v-decorator="['newPassword', { rules: [{ required: true, message: '请输入新密码!' }, { validator: validateToNextPassword },] }]" />
</a-form-item> </a-form-item>
<a-form-item label="重复新密码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item label="重复新密码" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-input <a-input
placeholder="请再次输入新密码" placeholder="请再次输入新密码"
type="password" type="password"
@ -68,9 +68,17 @@ export default {
this.visible_updPwd = true this.visible_updPwd = true
}, },
handleOkUpdPwd() { handleOkUpdPwd() {
const data = this.formUpdPwd.getFieldsValue()
if (!data.password) {
this.$message.error('请输入原密码')
return false
}
if (!data.newPassword) {
this.$message.error('请输入新密码')
return false
}
this.formUpdPwd.validateFields((errors, values) => { this.formUpdPwd.validateFields((errors, values) => {
if (!errors) { if (!errors) {
// this.confirmLoading = true
values.id = this.userId values.id = this.userId
sysUserUpdatePwd(values).then((res) => { sysUserUpdatePwd(values).then((res) => {
if (res.success) { if (res.success) {

Loading…
Cancel
Save