diff --git a/src/api/modular/main/BookingLedger.js b/src/api/modular/main/BookingLedger.js index 9d7227b..0cec8db 100644 --- a/src/api/modular/main/BookingLedger.js +++ b/src/api/modular/main/BookingLedger.js @@ -771,3 +771,19 @@ export function DeleteBookingOrder(parameter) { method: 'post' }) } +// 获取货物状态 +export function BookingOrderGetGoodsStatusList(parameter) { + return axios({ + url: '/BookingOrder/GetGoodsStatusList', + method: 'get', + params: parameter + }) +} +// 增加货物状态 +export function BookingOrderSaveGoodsStatus(parameter) { + return axios({ + url: '/BookingOrder/SaveGoodsStatus', + method: 'post', + data: parameter + }) +} diff --git a/src/views/main/BookingLedger/detail/index.vue b/src/views/main/BookingLedger/detail/index.vue index 0fdda0a..07d3676 100644 --- a/src/views/main/BookingLedger/detail/index.vue +++ b/src/views/main/BookingLedger/detail/index.vue @@ -327,39 +327,39 @@ const initDetail = { } const bookingEDIExt = { weiTuoFang: '', - ediAttn: '', - ediAttnTel: '', - ediAttnMail: '', - sendCode: '', - receiveCode: '', - amsConsignee: '', - amsNotifyParty: '', - opEName: '', - opTel: '', - opEmail: '', - goodsName: '', - orderRemark: '', - kingTareweight: '', - exRemark1: '', - exRemark2: '', - exRemark3: '', - exRemark4: '', - // == 以下为太平 == - consigneeEdiCode: '', - shipperEdiCode: '', - notifyCdoe: '', - salerCode: '', - emanifestHbl: '', - masterBolIndicator: '', - s0CC0C: '', - ckhi: '', - cncm: '', - wncm: '', - acihbl: '' + ediAttn: '', + ediAttnTel: '', + ediAttnMail: '', + sendCode: '', + receiveCode: '', + amsConsignee: '', + amsNotifyParty: '', + opEName: '', + opTel: '', + opEmail: '', + goodsName: '', + orderRemark: '', + kingTareweight: '', + exRemark1: '', + exRemark2: '', + exRemark3: '', + exRemark4: '', + // == 以下为太平 == + consigneeEdiCode: '', + shipperEdiCode: '', + notifyCdoe: '', + salerCode: '', + emanifestHbl: '', + masterBolIndicator: '', + s0CC0C: '', + ckhi: '', + cncm: '', + wncm: '', + acihbl: '' } export default { name: 'BookingDetail', - activated: function() { }, // 当页面被激活时触发 仅限首次加载 + activated: function() {}, // 当页面被激活时触发 仅限首次加载 inject: ['reload'], components: { operationArea, @@ -413,7 +413,18 @@ export default { } }, computed: { - ...mapGetters(['bookingList', 'needSavePages', 'hasbookingDetail', 'bookingList', 'bookingGridOptions', 'carrierList', 'yardList', 'packageList', 'issuetypeList', 'blfrtList']) + ...mapGetters([ + 'bookingList', + 'needSavePages', + 'hasbookingDetail', + 'bookingList', + 'bookingGridOptions', + 'carrierList', + 'yardList', + 'packageList', + 'issuetypeList', + 'blfrtList' + ]) }, created() { this.init() @@ -860,23 +871,23 @@ export default { this.$forceUpdate() }, - getRightAll () { + getRightAll() { GetAllData({ bookingId: this.id }) - .then(res => { - if (res.success) { - this.$set(this, 'bookingDetails', { ...this.bookingDetails, ...res.data }) - } else { - console.log(res.message) - } - }) - .catch(err => { - console.log(err) - }) + .then(res => { + if (res.success) { + this.$set(this, 'bookingDetails', { ...this.bookingDetails, ...res.data }) + } else { + console.log(res.message) + } + }) + .catch(err => { + console.log(err) + }) }, - upDateRightFun () { + upDateRightFun() { this.getRightAll() }, @@ -1384,9 +1395,8 @@ export default { diff --git a/src/views/main/BookingLedger/detail/modules/rightContent.vue b/src/views/main/BookingLedger/detail/modules/rightContent.vue index 9ceb781..af829e1 100644 --- a/src/views/main/BookingLedger/detail/modules/rightContent.vue +++ b/src/views/main/BookingLedger/detail/modules/rightContent.vue @@ -41,6 +41,41 @@ + +
货物状态
+
+
+ {{ serive.statusName }} +
+
+
+
+ + + + + + + + + + + + + + + +
备注 @@ -230,7 +265,9 @@ import { ExcuteRulesOceanBooking, BookingOrderDownload, BookingOrderDeleteRemark, - SaveServiceItem + SaveServiceItem, + BookingOrderGetGoodsStatusList, + BookingOrderSaveGoodsStatus } from '@/api/modular/main/BookingLedger' export default { @@ -275,11 +312,22 @@ export default { uploading: false, realTimePercent: null, bookingServiceItem: [], + booGoodsStatusItem: [], bookingAttachType: [], attachName: '', attachCode: '', - editRemarkVal: null - // locaService: [], + editRemarkVal: null, + GoodsStatusVisible: false, + GoodsStatusEditData: {}, + StatusVisibleForm: this.$form.createForm(this), + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + } // serviceData: [] } }, @@ -291,6 +339,25 @@ export default { return this.details.item.map((item, index) => { return item.code }) + }, + locaGoodsStatus() { + if (!this.details) { + return [] + } + if (this.details.goodsStatus) { + // return this.details.goodsStatus.map((item, index) => { + // return item.systemCode + // }) + let data = [] + this.details.goodsStatus.forEach(item => { + if (item.finishTime) { + data.push(item.systemCode) + } + }) + return data + } else { + return [] + } } }, created() { @@ -316,6 +383,9 @@ export default { init() { this.bookingAttachType = this.$options.filters['dictData']('booking_attach_type') this.bookingServiceItem = this.$options.filters['dictData']('booking_service_item') + BookingOrderGetGoodsStatusList({ bookingId: this.id }).then(res => { + this.booGoodsStatusItem = res.data + }) }, // 校验 checkFun() { @@ -490,6 +560,7 @@ export default { this.details.log[index].showMore = !this.details.log[index].showMore this.$forceUpdate() }, + saveService(data) { if (!this.id) { this.$message.error('请先保存主单') @@ -522,6 +593,163 @@ export default { .catch(err => { console.log(err) }) + }, + GoodsStatusHandleOk() { + const { + StatusVisibleForm: { validateFields } + } = this + this.GoodsStatusVisible = true + validateFields((errors, values) => { + if (!errors) { + for (const key in values) { + console.log(key, 1) + if (typeof values[key] === 'object' && !(values[key] === null)) { + values[key] = JSON.stringify(values[key]) + } + } + console.log('计算时间') + console.log(values.finishTime) + let date = '' + if (values.finishTime._d) { + date = new Date(+new Date(values.finishTime._d) + 8 * 3600 * 1000) + } else { + console.log(values.finishTime.split('"')) + if (values.finishTime.split('"').length == 3) { + date = new Date(+new Date(values.finishTime.split('"')[1])) + } else { + date = new Date(+new Date(values.finishTime) + 8 * 3600 * 1000) + } + } + console.log(date) + let data = { + finishTime: date.toISOString(), + remark: values.remark + } + console.log(this.GoodsStatusEditData, data) + let AData = { ...this.GoodsStatusEditData, ...data } + console.log(AData) + + console.log('改变样式及数据') + if (!this.id) { + this.$message.error('请先保存主单') + return false + } + if (!this.locaGoodsStatus.includes(this.GoodsStatusEditData.systemCode)) { + this.locaGoodsStatus.push(this.GoodsStatusEditData.systemCode) + this.details.goodsStatus.push({ ...this.GoodsStatusEditData }) + } + console.log('编辑请求数据') + let ApiData = { + bookingId: this.id, + item: [] + } + this.details.goodsStatus.forEach(item => { + if (item.systemCode == AData.systemCode) { + console.log(true) + ApiData.item.push(AData) + } else { + console.log(false) + ApiData.item.push(item) + } + }) + console.log('走接口') + BookingOrderSaveGoodsStatus(ApiData) + .then(res => { + if (res.success) { + this.booGoodsStatusItem = ApiData.item + // this.$emit('upDateRight') + console.log('== 货物状态设置成功 ==') + this.$message.success('货物状态设置成功') + this.GoodsStatusVisible = false + } + }) + .catch(err => { + console.log(err) + }) + } else { + // this.GoodsStatusVisible = false + } + }) + // this.GoodsStatusVisible = false + }, + FnOpenEdit(data) { + console.log(data) + setTimeout(() => { + console.log(data) + this.StatusVisibleForm.setFieldsValue({ + finishTime: data.finishTime ? data.finishTime : '', + remark: data.remark ? data.remark : '' + }) + this.GoodsStatusEditData = data + this.GoodsStatusVisible = true + }, 100) + }, + saveGoodsStatus(data) { + console.log(data) + if (!this.id) { + this.$message.error('请先保存主单') + return false + } + if (!this.locaGoodsStatus.includes(data.systemCode)) { + this.locaGoodsStatus.push(data.systemCode) + this.details.goodsStatus.push({ ...data }) + this.savegoodsStatusItem(data, 'push') + } else { + let that = this + this.$confirm({ + title: '是否取消', + okText: '是', + okType: 'danger', + cancelText: '否', + onOk() { + const index = that.locaGoodsStatus.indexOf(data.systemCode) + that.locaGoodsStatus.splice(index, 1) + that.details.goodsStatus.splice(index, 1) + that.savegoodsStatusItem(data, 'splice') + }, + onCancel() { + console.log('Cancel') + return false + } + }) + // this.$Modal.confirm({ + // title: () => '是否取消?', + // icon: () => createVNode(ExclamationCircleOutlined), + // okText: () => '是', + // okType: 'danger', + // cancelText: () => '否', + // onOk() { + + // }, + // onCancel() { + // console.log('Cancel') + // return false + // } + // }) + } + console.log('== 修改货物状态 ==', this.locaGoodsStatus, this.details.goodsStatus) + }, + savegoodsStatusItem(data, type) { + let ApiData = { + bookingId: this.id, + item: this.details.goodsStatus + } + if (type == 'push') { + let date = new Date(+new Date() + 8 * 3600 * 1000) + ApiData.item[ApiData.item.length - 1].finishTime = date.toISOString() + } + console.log(ApiData) + BookingOrderSaveGoodsStatus(ApiData) + .then(res => { + if (res.success) { + // this.booGoodsStatusItem = ApiData.item + // this.$emit('upDateRight') + console.log('== 货物状态设置成功 ==') + } + }) + .catch(err => { + console.log(err) + }) } } } diff --git a/src/views/main/BookingLedger/detail/style/rightContent.less b/src/views/main/BookingLedger/detail/style/rightContent.less index 3c7f3b1..6fcaddd 100644 --- a/src/views/main/BookingLedger/detail/style/rightContent.less +++ b/src/views/main/BookingLedger/detail/style/rightContent.less @@ -107,7 +107,21 @@ margin-right: 10px; font-size: 13px; cursor: pointer; + position: relative; + .edit{ + width: 17px; + height: 17px; + border-radius: 0 3px 0 0; + background: #c9c9c9; + display: none; + position: absolute; + right: -1px; + top: -1px; + text-align: center; + line-height: 17px; + } &:hover { + border: 1px dashed @primary-color; position: relative; &::before { @@ -121,6 +135,9 @@ left: 0; border-radius: 4px; } + .edit{ + display: block; + } } &.active { background: @primary-color; diff --git a/src/views/main/DjyTenantConfig/index.vue b/src/views/main/DjyTenantConfig/index.vue index 2d63a3c..3efafcb 100644 --- a/src/views/main/DjyTenantConfig/index.vue +++ b/src/views/main/DjyTenantConfig/index.vue @@ -1,6 +1,6 @@