From 8374150b800cfa4671fd0c3116e84f04fd2b76e9 Mon Sep 17 00:00:00 2001 From: sunzehua Date: Tue, 21 May 2024 14:07:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 8 +- src/api/modular/main/CompanySiteaccount.js | 45 +- src/api/modular/main/TaskmanageList.js | 27 +- src/components/generation/index.vue | 30 +- src/mixin/index.js | 8 +- src/store/modules/booking.js | 2 + src/views/flowList/index.vue | 31 +- .../detail/modules/basicInfo.vue | 27 +- .../detail/modules/operationArea.vue | 60 +- .../BookingLedger/detail/modules/sedOrder.vue | 4 + src/views/main/CabinInventory/index.vue | 19 +- src/views/main/CabinManagement/details.vue | 6 +- src/views/main/CabinManagement/index.vue | 129 +++- .../main/CabinManagement/labelSetting.vue | 566 ++++++++++++++++++ .../Taskmanage/rollingNomination/index.vue | 215 ++++++- src/views/main/vesselinfo/addForm.vue | 99 ++- 16 files changed, 1191 insertions(+), 85 deletions(-) create mode 100644 src/views/main/CabinManagement/labelSetting.vue diff --git a/.env b/.env index c84d1c6..99f2e07 100644 --- a/.env +++ b/.env @@ -7,12 +7,12 @@ VUE_APP_TYPE = 'hechuan' # 打包部署的三个端 客户端customer 和川端hechuan 运营端djy # 和川大简云正式 -# 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_API_BASE_URL=http://47.104.85.216:12345/api +VUE_APP_SOCKET_BASE_URL=http://47.104.85.216:12345 # 和川大简云测试 -VUE_APP_API_BASE_URL=http://60.209.125.238:35100 -VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:35100 +# VUE_APP_API_BASE_URL=http://60.209.125.238:35100 +# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:35100 # 客户端测试 # VUE_APP_API_BASE_URL=http://60.209.125.238:30813 diff --git a/src/api/modular/main/CompanySiteaccount.js b/src/api/modular/main/CompanySiteaccount.js index 171bb11..7ddc6ba 100644 --- a/src/api/modular/main/CompanySiteaccount.js +++ b/src/api/modular/main/CompanySiteaccount.js @@ -131,7 +131,13 @@ export function ValidateCreateBookingOrder(parameter) { params: parameter }) } - +export function getAvailableCtnsBySlot(parameter) { + return axios({ + url: '/BookingSlot/getAvailableCtnsBySlot', + method: 'get', + params: parameter + }) +} export function slotSendEmail(parameter) { return axios({ url: '/BookingSlot/SendEmail', @@ -140,5 +146,42 @@ export function slotSendEmail(parameter) { }) } +export function BookingLabelSave(parameter) { + return axios({ + url: 'BookingLabel/Save', + method: 'post', + data: parameter + }) +} +export function BookingLabelPageList(parameter) { + return axios({ + url: 'BookingLabel/PageList', + method: 'post', + data: parameter + }) +} +export function BookingLabelDelete(parameter) { + return axios({ + url: 'BookingLabel/Delete', + method: 'post', + data: parameter + }) +} + +export function BookingLabelList(parameter) { + return axios({ + url: 'BookingLabel/List', + method: 'get', + params: parameter + }) +} + +export function BookingLabelBind(parameter) { + return axios({ + url: 'BookingLabel/Bind', + method: 'post', + data: parameter + }) +} diff --git a/src/api/modular/main/TaskmanageList.js b/src/api/modular/main/TaskmanageList.js index 58d7a39..3f244a1 100644 --- a/src/api/modular/main/TaskmanageList.js +++ b/src/api/modular/main/TaskmanageList.js @@ -557,4 +557,29 @@ export function GetBookingOrder(parameter) { method: 'get', params: parameter }) -} \ No newline at end of file +} + +export function GetToShipSelect(parameter) { + return axios({ + url: '/TaskManageRollingNomination/GetToShipSelect', + method: 'get', + params: parameter + }) +} + +export function GetRollingNominationNoticeReview(parameter) { + return axios({ + url: '/TaskManageRollingNomination/GetRollingNominationNoticeReview', + method: 'post', + data: parameter + }) +} + +export function SendRollingNominationNotice(parameter) { + return axios({ + url: '/TaskManageRollingNomination/SendRollingNominationNotice', + method: 'post', + data: parameter + }) +} + diff --git a/src/components/generation/index.vue b/src/components/generation/index.vue index bdb45c6..3f8fa22 100644 --- a/src/components/generation/index.vue +++ b/src/components/generation/index.vue @@ -134,6 +134,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -238,7 +262,8 @@ import { DjyCustomerSuggest, GetSysUserPage, DjyCustomerContacts, DjyCustomerdetail } from '@/api/modular/main/BookingLedger' import { GetProjectList, CreateBookingAndSlot, GetBookingOrder } from '@/api/modular/main/TaskmanageList' import { mapGetters } from 'vuex' -import { ValidateCreateBookingOrder, CreateBooking0rder } from '@/api/modular/main/CompanySiteaccount' +import moment from 'moment' +import { getAvailableCtnsBySlot, CreateBooking0rder } from '@/api/modular/main/CompanySiteaccount' let timer export default { components: { @@ -365,9 +390,10 @@ export default { this.userInfoList = [] this.$forceUpdate() this.CreateData = {} + this.CreateData.SALE_TIME = moment().format('YYYY-MM-DD HH:mm:ss') this.SlotVisible = true this.spinning = true - ValidateCreateBookingOrder({ id: row.id }).then(res => { + getAvailableCtnsBySlot({ slotId: row.id }).then(res => { if (res.success) { this.slotEdit = row } else { diff --git a/src/mixin/index.js b/src/mixin/index.js index 91adb57..7d45de0 100644 --- a/src/mixin/index.js +++ b/src/mixin/index.js @@ -24,9 +24,15 @@ export const sortMixin = { let itemToMove = list.splice(indexToMove, 1)[0]; list.unshift(itemToMove); } + const arr = JSON.parse(JSON.stringify(this.columns)) this.columns = JSON.parse(JSON.stringify(list)) this.columns.forEach((item, index) => { - this.$set(this.columns, index, item) + arr.forEach(ite => { + if (item.field === ite.field) { + item.width = ite.width + this.$set(this.columns, index, item) + } + }) }) this.$forceUpdate() this.editColumnsSave(this.columns) diff --git a/src/store/modules/booking.js b/src/store/modules/booking.js index 80da7d6..5589d27 100644 --- a/src/store/modules/booking.js +++ b/src/store/modules/booking.js @@ -44,6 +44,7 @@ const booking = { shipagencyInitList: [], saleInitList: [], opInitList: [], + subOpInitList: [], docInitList: [], custserviceInitList: [], routeInitList: [], @@ -446,6 +447,7 @@ const booking = { case 'user': allData['saleInitList'] = $data allData['opInitList'] = $data + allData['subOpInitList'] = $data allData['docInitList'] = $data allData['custserviceInitList'] = $data allData['routeInitList'] = $data diff --git a/src/views/flowList/index.vue b/src/views/flowList/index.vue index 7f11a87..126a9b7 100644 --- a/src/views/flowList/index.vue +++ b/src/views/flowList/index.vue @@ -3,17 +3,17 @@
- 提单号:{{ flowData.blNo }} -
{{ flowData.carrier }}
+ 提单号:{{ flowData.blNo }} +
{{ flowData.carrier }}
起运港:{{ flowData.routingInfoList ? flowData.routingInfoList[0].loading : '-' }} - 目的港:{{ flowData.routingInfoList ? flowData.routingInfoList[0].discharging : + 目的港:{{ flowData.routingInfoList ? flowData.routingInfoList[0].discharging : '-' }} -
船名:{{ flowData.vslNameEn }}
-
航次:{{ flowData.voy }}
- 详情船名:{{ flowData.vslNameEn }}
+
航次:{{ flowData.voy }}
+ 详情
@@ -73,9 +73,9 @@ -->
- 动态 + 动态 时间 - 地点 + 地点 船名航次
-
{{ item.statusCnName }}
+
{{ item.statusCnName }}
{{ item.statusTime }}
{{ item.statusTime }}
-
{{ item.statusPlace }}
+
{{ item.statusPlace }}
{{ item.vslName }} / {{ item.voy }}
-
@@ -476,11 +476,13 @@ export default { padding-top: 10px; min-height: 100vh; padding-left: 15px; + min-width: 100vw; + padding-bottom: 200px; } .list-box { background: white; - width: 950px; + // width: 950px; color: #17181a; font-weight: 400; @@ -490,7 +492,6 @@ export default { border-bottom: 1px solid rgb(168, 177, 192); display: flex; align-items: center; - justify-content: space-between; img { margin-right: 5px; @@ -508,7 +509,7 @@ export default { overflow-x: auto; align-content: center; padding-bottom: 70px; - padding-left: 50px; + padding-left: 20px; width: 100%; .cont-box { display: flex; @@ -607,7 +608,7 @@ export default { .main-box { background: white; - width: 950px; + // width: 950px; margin-top: 50px; display: flex; @@ -631,7 +632,7 @@ export default { .box-right { padding-top: 20px; - margin-left: 30px; + margin-left: 15px; width: 80%; padding-right: 10px; color: #17181a; diff --git a/src/views/main/BookingLedger/detail/modules/basicInfo.vue b/src/views/main/BookingLedger/detail/modules/basicInfo.vue index 5780bb4..90b9143 100644 --- a/src/views/main/BookingLedger/detail/modules/basicInfo.vue +++ b/src/views/main/BookingLedger/detail/modules/basicInfo.vue @@ -558,7 +558,26 @@
- + + + + + + + - + - + - + - + - + - + - + + + + + + - + @@ -1088,7 +1093,7 @@ - + @@ -1100,7 +1105,7 @@ - + - +
查询 重置 @@ -1125,7 +1130,9 @@ :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: 'radio', }" :scroll="{ x: 1200, y: 500 }" size="small" - :pagination="false" + :pagination="paginationCab" + :loading="cabLoad" + @change="tablePaginationChangeCab" :columns="cabinColums" :data-source="cabinList">
{{ record.vessel }}/{{ record.voyno }}
@@ -1225,6 +1232,7 @@ export default { cabinLoad: false, cabinShow: true, boxRemaining: '', + cabLoad: false, boxTotal: '', selectedRowKeys: [], tearFlag: false, @@ -1408,6 +1416,13 @@ export default { pageSizeOptions: ['1', '10', '20', '40', '80', '100'], pageSize: 10 }, + paginationCab: { + current: 1, + total: 0, // 总数 + showSizeChanger: true, + pageSizeOptions: ['1', '10', '20', '40', '80', '100'], + pageSize: 20 + }, hisColums: [ { title: '创建人', @@ -1847,9 +1862,12 @@ export default { if (this.cabinQueryForm.ctN_STAT) { this.cabinQueryForm.ctN_STAT = this.cabinQueryForm.ctN_STAT.join(',') } + this.cabLoad = true + this.cabinQueryForm.PageSize = this.paginationCab.PageSize + this.cabinQueryForm.PageNo = this.paginationCab.current BookingSlotGetAvailableSlots(this.cabinQueryForm).then(res => { if (res.success) { - res.data.forEach(item => { + res.data.items.forEach(item => { item.ctN_STAT = '' if (item.ctnList) { item.ctnListCopy = JSON.parse(JSON.stringify(item.ctnList)) @@ -1859,10 +1877,12 @@ export default { ite.maxNum = JSON.parse(JSON.stringify(ite.ctnnum)) }) }) - this.cabinList = res.data + this.cabinList = res.data.items + this.paginationCab.total = res.data.totalCount } else { this.$message.error(res.message) } + this.cabLoad = false }) }, onSelectChange(selectedRowKeys) { @@ -1980,6 +2000,11 @@ export default { this.pagination.pageSize = pagination.pageSize this.getList() }, + tablePaginationChangeCab(pagination) { + this.paginationCab.current = pagination.current + this.paginationCab.pageSize = pagination.pageSize + this.getCabinList() + }, handleSearch() { this.getList() }, @@ -2413,6 +2438,7 @@ export default { this.getVgmLink() } else if (type === 'cabinSpace') { this.cabinSpaceFlag = true + this.cabinList = [] this.getCabinList() } }, @@ -2881,7 +2907,15 @@ export default { this.$emit('copy') }, addChild() { - this.$emit('addSedList') + if (process.env.VUE_APP_TYPE === 'hechuan') { + if (!this.details.hblno) { + this.$message.error('请输入分提单号') + } else { + this.$emit('addSedList') + } + } else { + this.$emit('addSedList') + } }, downLoadFile(type, type2) { if (!this.id || !this.initCabinFrom.id) { diff --git a/src/views/main/BookingLedger/detail/modules/sedOrder.vue b/src/views/main/BookingLedger/detail/modules/sedOrder.vue index db19323..58c0a5f 100644 --- a/src/views/main/BookingLedger/detail/modules/sedOrder.vue +++ b/src/views/main/BookingLedger/detail/modules/sedOrder.vue @@ -657,6 +657,10 @@ export default { this.$message.error('请输入分提单号') return false } + if (!this.editDetails.foreignAgent) { + this.$message.error('请输入境外代理') + return false + } let basicFrom = true this.$refs.basicInfo.$refs.basicFrom.validate((valid, err) => { console.log(err) diff --git a/src/views/main/CabinInventory/index.vue b/src/views/main/CabinInventory/index.vue index 2023c4f..2576769 100644 --- a/src/views/main/CabinInventory/index.vue +++ b/src/views/main/CabinInventory/index.vue @@ -194,7 +194,7 @@ export default { }, form: {}, firstFlag: false, - country:[], + country: [], sortMixinForm: { column: 'CabinInventory_list_column', setting: 'CabinInventorySetting', @@ -248,7 +248,7 @@ export default { title: '取消库存', align: 'center', width: '100', - field: 'portdischarge' + field: 'canceL_NUM' }, { title: '收货地', @@ -274,6 +274,12 @@ export default { width: '100', field: 'placedelivery' }, + { + title: '卸货港国家', + align: 'center', + width: '100', + field: 'portdischargE_COUNTRY' + }, { title: 'WEEK', align: 'center', @@ -370,7 +376,7 @@ export default { title: '取消库存', align: 'center', width: '100', - field: 'portdischarge' + field: 'canceL_NUM' }, { title: '收货地', @@ -396,6 +402,12 @@ export default { width: '100', field: 'placedelivery' }, + { + title: '卸货港国家', + align: 'center', + width: '100', + field: 'portdischargE_COUNTRY' + }, { title: 'WEEK', align: 'center', @@ -549,7 +561,6 @@ export default { contracT_NO: row.contracT_NO, portloadid: row.portloadid, portdischargeid: row.portdischargeid, - placedelivery: row.placedelivery, bookinG_SLOT_TYPE: row.bookinG_SLOT_TYPE, carrierid: row.carrierid } diff --git a/src/views/main/CabinManagement/details.vue b/src/views/main/CabinManagement/details.vue index b096aca..f10fde2 100644 --- a/src/views/main/CabinManagement/details.vue +++ b/src/views/main/CabinManagement/details.vue @@ -94,7 +94,7 @@ - + @@ -261,7 +261,7 @@ - + @@ -271,7 +271,7 @@ - + diff --git a/src/views/main/CabinManagement/index.vue b/src/views/main/CabinManagement/index.vue index a7d800a..8927edb 100644 --- a/src/views/main/CabinManagement/index.vue +++ b/src/views/main/CabinManagement/index.vue @@ -162,6 +162,20 @@ + + + + + {{ item.name }} + + + +
@@ -179,6 +193,7 @@ 导入 作废 + 分配标签
@@ -240,6 +255,9 @@ + @@ -261,7 +293,9 @@ import { BookingSlotDelete, ImportSlotFromFile, CreateBooking0rder, - slotSendEmail + slotSendEmail, + BookingLabelList, + BookingLabelBind } from '@/api/modular/main/CompanySiteaccount' import { mapGetters } from 'vuex' import { @@ -292,12 +326,15 @@ export default { labelField: 'sloT_BOOKING_NO' }, loading: false, + labelList: [], setVisible: false, + labelIdArray: [], CreateData: { customerContactId: [] }, UserList: [], customerByList: [], + visible: false, CustomerList: [], SlotVisible: false, userInfoList: [], @@ -327,6 +364,7 @@ export default { STATUS: '1' }, slotEdit: {}, + labelLoad: false, ColumnsQuery: [], columns: [ { @@ -334,6 +372,13 @@ export default { width: 60, noDraggable: true }, + { + title: '标签', + align: 'center', + width: '100', + field: 'labelList', + slots: { default: 'labelList' } + }, { title: '订舱编号', align: 'center', @@ -448,6 +493,18 @@ export default { width: '180', field: 'placedelivery' }, + { + title: '装货港', + align: 'center', + width: '180', + field: 'portload' + }, + { + title: '卸货港', + align: 'center', + width: '180', + field: 'portdischarge' + }, { title: '箱型箱量', align: 'center', @@ -502,7 +559,7 @@ export default { { title: '重量(KGS)', align: 'center', - width: '100', + width: '120', sortable: true, field: 'WEIGHKGS' }, @@ -614,12 +671,19 @@ export default { } ], - columnsAll: [ + columnsAll: [ { type: 'checkbox', width: 60, noDraggable: true }, + { + title: '标签', + align: 'center', + width: '100', + field: 'labelList', + slots: { default: 'labelList' } + }, { title: '订舱编号', align: 'center', @@ -734,6 +798,18 @@ export default { width: '180', field: 'placedelivery' }, + { + title: '装货港', + align: 'center', + width: '180', + field: 'portload' + }, + { + title: '卸货港', + align: 'center', + width: '180', + field: 'portdischarge' + }, { title: '箱型箱量', align: 'center', @@ -788,7 +864,7 @@ export default { { title: '重量(KGS)', align: 'center', - width: '100', + width: '120', sortable: true, field: 'WEIGHKGS' }, @@ -918,6 +994,9 @@ export default { }, mounted() { this.getConfigStart() + BookingLabelList({ scope: 1 }).then(res => { + this.labelList = res.data + }) }, methods: { FnTurnD(data) { @@ -936,6 +1015,25 @@ export default { return false } }, + handleSubmitLabel() { + const select = this.$refs.table.getCheckboxRecords() + const pkIdArr = select.map((item, index) => { + return item.id + }) + const data = { + labelIdArray: this.labelIdArray, + businessIdArray: pkIdArr + } + BookingLabelBind(data).then(res => { + if (res.success) { + this.$message.success('分配成功') + this.visible = false + this.getList() + } else { + this.$message.error(res.message) + } + }) + }, customRequest(data) { this.isUpload = true; this.percent = 0; @@ -981,7 +1079,7 @@ export default { const arr = ['salE_TIME', 'sellinG_PRICE', 'goodsname', 'shipper', 'sale', 'custservice', 'customername'] const fields = []; const cellValue = row[column.property]; - if ((cellValue && !arr.includes(column.property)) || column.type === 'checkbox' || column.field === 'caozuo') { + if ((!arr.includes(column.property)) || column.type === 'checkbox' || column.field === 'caozuo') { const prevRow = visibleData[_rowIndex - 1]; let nextRow = visibleData[_rowIndex + 1]; if (prevRow && prevRow.id === row.id) { @@ -1013,6 +1111,27 @@ export default { this.CustomerList = res.data.rows }) }, + handleLabel() { + const select = this.$refs.table.getCheckboxRecords() + const pkIdArr = select.map((item, index) => { + return item.id + }) + if (pkIdArr.length === 0) { + this.$message.error('请选择要分配的数据') + return false + } + this.visible = true + this.labelLoad = true + BookingLabelList({ scope: 1 }).then(res => { + this.labelList = res.data + this.labelLoad = false + }) + }, + filterOption(input, option) { + return ( + option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + ); + }, ChangeCustomer(e) { this.customerByList = [] this.CreateData.customerContactId = [] diff --git a/src/views/main/CabinManagement/labelSetting.vue b/src/views/main/CabinManagement/labelSetting.vue new file mode 100644 index 0000000..fd0d307 --- /dev/null +++ b/src/views/main/CabinManagement/labelSetting.vue @@ -0,0 +1,566 @@ + + + diff --git a/src/views/main/Taskmanage/rollingNomination/index.vue b/src/views/main/Taskmanage/rollingNomination/index.vue index 1fd0e9a..6917a11 100644 --- a/src/views/main/Taskmanage/rollingNomination/index.vue +++ b/src/views/main/Taskmanage/rollingNomination/index.vue @@ -16,11 +16,13 @@
- 船名/航次:{{ item.fromShip.vessel }} / {{ item.fromShip.voyNo }} + 船名/航次:{{ item.fromShip.vessel }} / {{ + item.fromShip.voyNo }}
{{ item.fromShip.port }} - ETD:{{ item.fromShip.etd }} + ETD:{{ item.fromShip.etd + }}
{{ item.fromShip.terminal }} @@ -391,6 +393,51 @@ + + +
+
+ +
+ + {{ item.displayName }} + +
+
+
+
+
+ 原船 + 船名/航次:{{ sendShip.fromShip.vessel }} / {{ sendShip.fromShip.voyNo }} + ETD:{{ sendShip.fromShip.etd ? sendShip.fromShip.etd.substring(0, 10) : '' + }} + {{ sendShip.fromShip.terminal }} +
+ + +
新船:{{ index + 1 }}VslCode:{{ toData.vslCode }} String:{{ + toData.shipString }}
+
船名/航次:{{ toData.vessel }} / {{ toData.voyNo }}
+
{{ toData.terminal }}
+
ETD:{{ toData.etd ? toData.etd.substring(0, 10) : '' }} +
+
+
+
+ 预甩通知
+
+
+
+
+ +