|
|
|
@ -41,6 +41,41 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a-card>
|
|
|
|
|
<a-card :bodyStyle="tstyle" :bordered="false">
|
|
|
|
|
<div class="title"><i class="iconfont icon-fuwu"></i><span>货物状态</span></div>
|
|
|
|
|
<div class="content">
|
|
|
|
|
<div
|
|
|
|
|
class="items"
|
|
|
|
|
v-for="serive in booGoodsStatusItem"
|
|
|
|
|
:key="serive.systemCode"
|
|
|
|
|
:class="{ active: locaGoodsStatus.includes(serive.systemCode) }"
|
|
|
|
|
@click="saveGoodsStatus(serive)"
|
|
|
|
|
>
|
|
|
|
|
{{ serive.statusName }}
|
|
|
|
|
<div class="edit" @click.stop="FnOpenEdit(serive)"><a-icon type="edit" /></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a-card>
|
|
|
|
|
<a-modal v-model="GoodsStatusVisible" width="600px" title="编辑" @ok="GoodsStatusHandleOk">
|
|
|
|
|
<a-form :form="StatusVisibleForm">
|
|
|
|
|
<a-row>
|
|
|
|
|
<a-col :span="12">
|
|
|
|
|
<a-form-item label="完成时间" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
|
|
|
|
|
<a-date-picker
|
|
|
|
|
show-time
|
|
|
|
|
placeholder="完成时间"
|
|
|
|
|
v-decorator="['finishTime', { rules: [{ required: true, message: '请选择完成时间!' }] }]"
|
|
|
|
|
/>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="12">
|
|
|
|
|
<a-form-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
|
|
|
|
|
<a-input placeholder="请输入备注" v-decorator="['remark']" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</a-form>
|
|
|
|
|
</a-modal>
|
|
|
|
|
<a-card :bodyStyle="tstyle" :bordered="false">
|
|
|
|
|
<div class="title">
|
|
|
|
|
<i class="iconfont icon-beizhu1"></i><span>备注</span>
|
|
|
|
@ -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)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|