|
|
|
@ -10,7 +10,9 @@
|
|
|
|
|
<div class="nav-title" v-if="levelTop.length > 0">
|
|
|
|
|
<a-radio-group v-model="activeTopKey" style="margin-bottom: 16px" @change="changeTopLevel">
|
|
|
|
|
<a-radio-button v-for="(item, index) in levelTop" :value="item.key" :key="index">
|
|
|
|
|
<span class="nav-top">{{ item.name }}<span class="nav-top-tip">({{ item.total }})</span></span>
|
|
|
|
|
<span class="nav-top"
|
|
|
|
|
>{{ item.name }}<span class="nav-top-tip">({{ item.total }})</span></span
|
|
|
|
|
>
|
|
|
|
|
</a-radio-button>
|
|
|
|
|
</a-radio-group>
|
|
|
|
|
</div>
|
|
|
|
@ -37,7 +39,8 @@
|
|
|
|
|
class="icon"
|
|
|
|
|
:icon="levelreLoading ? 'loading' : 'reload'"
|
|
|
|
|
size="small"
|
|
|
|
|
@click="getCurrentTotalStat">
|
|
|
|
|
@click="getCurrentTotalStat"
|
|
|
|
|
>
|
|
|
|
|
点击重新加载
|
|
|
|
|
</a-button>
|
|
|
|
|
</div>
|
|
|
|
@ -71,11 +74,7 @@
|
|
|
|
|
:dropdownMatchSelectWidth="false"
|
|
|
|
|
v-decorator="['taskType', { rules: [{ required: false, message: '请输入任务类型' }] }]"
|
|
|
|
|
>
|
|
|
|
|
<a-select-option
|
|
|
|
|
v-for="(taskItem, tindex) in taskTypeList"
|
|
|
|
|
:key="tindex"
|
|
|
|
|
:value="taskItem.code"
|
|
|
|
|
>
|
|
|
|
|
<a-select-option v-for="(taskItem, tindex) in taskTypeList" :key="tindex" :value="taskItem.code">
|
|
|
|
|
{{ taskItem.name }}
|
|
|
|
|
</a-select-option>
|
|
|
|
|
</a-select>
|
|
|
|
@ -272,7 +271,9 @@
|
|
|
|
|
>
|
|
|
|
|
<a-button class="list-btn"><i class="iconfont icon-dengjizongshu"></i>LARA登记</a-button>
|
|
|
|
|
</a-popconfirm>
|
|
|
|
|
<a-button class="list-btn" @click="laraRecordFun"><i class="iconfont icon-touzijilu"></i>LARA记录</a-button>
|
|
|
|
|
<a-button class="list-btn" @click="laraRecordFun"
|
|
|
|
|
><i class="iconfont icon-touzijilu"></i>LARA记录</a-button
|
|
|
|
|
>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
<template #tools>
|
|
|
|
@ -284,9 +285,7 @@
|
|
|
|
|
@confirm="tableRefresh"
|
|
|
|
|
@cancel="cancelFun"
|
|
|
|
|
>
|
|
|
|
|
<span class="tab-btn">
|
|
|
|
|
<a-icon type="redo" :style="{ fontSize: '16px' }" /> 刷新
|
|
|
|
|
</span>
|
|
|
|
|
<span class="tab-btn"> <a-icon type="redo" :style="{ fontSize: '16px' }" /> 刷新 </span>
|
|
|
|
|
</a-popconfirm>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
@ -352,7 +351,9 @@
|
|
|
|
|
<template slot="title">
|
|
|
|
|
预览附件
|
|
|
|
|
</template>
|
|
|
|
|
<span class="operate-btn iconfont icon-a-wendangcaozuoxiazaishangchuanshanchuxinzengfujianyasuochakan-01"></span>
|
|
|
|
|
<span
|
|
|
|
|
class="operate-btn iconfont icon-a-wendangcaozuoxiazaishangchuanshanchuxinzengfujianyasuochakan-01"
|
|
|
|
|
></span>
|
|
|
|
|
</a-tooltip>
|
|
|
|
|
</a-popconfirm>
|
|
|
|
|
</template>
|
|
|
|
@ -538,7 +539,7 @@ export default {
|
|
|
|
|
align: 'center'
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
paperCalcExtras: '',
|
|
|
|
|
paperCalcExtras: ''
|
|
|
|
|
// downLoadErrTip: '',
|
|
|
|
|
// showdownLoadErr: false
|
|
|
|
|
}
|
|
|
|
@ -729,32 +730,34 @@ export default {
|
|
|
|
|
this.activeTreeKey = ['0-0-0']
|
|
|
|
|
GetCurrentTotalStat({
|
|
|
|
|
isReCalc: false
|
|
|
|
|
}).then(res => {
|
|
|
|
|
this.levelLoading = false
|
|
|
|
|
this.levelreLoading = false
|
|
|
|
|
if (res.success) {
|
|
|
|
|
this.levelTop = res.data.levelTop
|
|
|
|
|
this.levelNextAll = res.data.levelNext
|
|
|
|
|
this.levelTreeAll = res.data.levelTree
|
|
|
|
|
if (this.levelTop.length > 0) {
|
|
|
|
|
this.activeTopKey = this.levelTop[0].key
|
|
|
|
|
this.levelNext = this.selectNextLevel(this.levelNextAll, this.activeTopKey)
|
|
|
|
|
if (this.levelNext.length > 0) {
|
|
|
|
|
this.activeNextKey = this.levelNext[0].key
|
|
|
|
|
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey, this.activeTopKey)
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
this.levelLoading = false
|
|
|
|
|
this.levelreLoading = false
|
|
|
|
|
if (res.success) {
|
|
|
|
|
this.levelTop = res.data.levelTop
|
|
|
|
|
this.levelNextAll = res.data.levelNext
|
|
|
|
|
this.levelTreeAll = res.data.levelTree
|
|
|
|
|
if (this.levelTop.length > 0) {
|
|
|
|
|
this.activeTopKey = this.levelTop[0].key
|
|
|
|
|
this.levelNext = this.selectNextLevel(this.levelNextAll, this.activeTopKey)
|
|
|
|
|
if (this.levelNext.length > 0) {
|
|
|
|
|
this.activeNextKey = this.levelNext[0].key
|
|
|
|
|
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey, this.activeTopKey)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.activeTreeKey = []
|
|
|
|
|
this.form.resetFields()
|
|
|
|
|
this.taskType = ''
|
|
|
|
|
this.init()
|
|
|
|
|
} else {
|
|
|
|
|
this.init()
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
}
|
|
|
|
|
this.activeTreeKey = []
|
|
|
|
|
this.form.resetFields()
|
|
|
|
|
this.taskType = ''
|
|
|
|
|
this.init()
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
selectNextLevel(list, key) {
|
|
|
|
|
const arr = []
|
|
|
|
@ -832,6 +835,7 @@ export default {
|
|
|
|
|
this.$set(this.gridOptions, 'loading', false)
|
|
|
|
|
this.$forceUpdate()
|
|
|
|
|
} else {
|
|
|
|
|
this.$set(this.gridOptions, 'loading', false)
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
@ -872,23 +876,49 @@ export default {
|
|
|
|
|
this.advanced = !this.advanced
|
|
|
|
|
},
|
|
|
|
|
changePage(data) {
|
|
|
|
|
if (data.taskType === 'VGM_COMPARE') { // VGM比对查看页面
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/TaskVgmContrast', query: { taskPKId: data.pkId, type: data.status } })
|
|
|
|
|
} else if (data.taskType === 'INVOICE_BILL_MAIL') { // 航次账单查看
|
|
|
|
|
console.log(data)
|
|
|
|
|
if (data.taskType === 'VGM_COMPARE') {
|
|
|
|
|
// VGM比对查看页面
|
|
|
|
|
this.$router.push({
|
|
|
|
|
path: '/commontaskmanage/TaskVgmContrast',
|
|
|
|
|
query: { taskPKId: data.pkId, type: data.status }
|
|
|
|
|
})
|
|
|
|
|
} else if (data.taskType === 'INVOICE_BILL_MAIL') {
|
|
|
|
|
// 航次账单查看
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/VoyageBill', query: { taskPKId: data.pkId } })
|
|
|
|
|
} else if (data.taskType === 'PER_BILL') { // 单票账单查看
|
|
|
|
|
} else if (data.taskType === 'PER_BILL') {
|
|
|
|
|
// 单票账单查看
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/singleTicket', query: { taskPKId: data.pkId } })
|
|
|
|
|
} else if (data.taskType === 'CHANGE_SHIP') { // 换船通知查看
|
|
|
|
|
} else if (data.taskType === 'CHANGE_SHIP') {
|
|
|
|
|
// 换船通知查看
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/TaskChangeShip', query: { taskPKId: data.pkId, type: 'change' } })
|
|
|
|
|
} else if (data.taskType === 'ABORT_CHANGE_SHIP') { // 取消换船通知查看
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/TaskChangeShip', query: { taskPKId: data.pkId, type: 'abortChange' } })
|
|
|
|
|
} else if (data.taskType === 'ORIGINAL_LOST') { // 正本缺失查看
|
|
|
|
|
} else if (data.taskType === 'ABORT_CHANGE_SHIP') {
|
|
|
|
|
// 取消换船通知查看
|
|
|
|
|
this.$router.push({
|
|
|
|
|
path: '/commontaskmanage/TaskChangeShip',
|
|
|
|
|
query: { taskPKId: data.pkId, type: 'abortChange' }
|
|
|
|
|
})
|
|
|
|
|
} else if (data.taskType === 'ORIGINAL_LOST') {
|
|
|
|
|
// 正本缺失查看
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/TaskOriginalLost', query: { taskPKId: data.pkId } })
|
|
|
|
|
} else if (data.taskType === 'SHIPPING_ORDER') { // 订舱详情查看
|
|
|
|
|
} else if (data.taskType === 'SHIPPING_ORDER') {
|
|
|
|
|
// 订舱详情查看
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/BookingDetails', query: { taskPKId: data.pkId } })
|
|
|
|
|
} else if (data.taskType === 'SI_FEEDBACK') { // 订舱详情编辑
|
|
|
|
|
} else if (data.taskType === 'SI_FEEDBACK') {
|
|
|
|
|
// 订舱详情编辑
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/TaskmanageDetail', query: { taskPKId: data.pkId } })
|
|
|
|
|
} else { // 订舱详情查看
|
|
|
|
|
} else if (data.taskType === 'TRUCK_DISPATCH') {
|
|
|
|
|
// 派车编辑
|
|
|
|
|
// this.$router.push({ path: '/commontaskmanage/TaskmanageDetail', query: { taskPKId: data.pkId } })
|
|
|
|
|
this.$router.push({
|
|
|
|
|
name: 'SendCarAdd',
|
|
|
|
|
query: {
|
|
|
|
|
type: 'Edit',
|
|
|
|
|
taskPKId: data.pkId
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
// 订舱详情查看
|
|
|
|
|
this.$router.push({ path: '/commontaskmanage/BookingDetails', query: { taskPKId: data.pkId } })
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@ -969,27 +999,27 @@ export default {
|
|
|
|
|
DownloadTaskAttach({
|
|
|
|
|
taskPKId: id
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
if (res.message) {
|
|
|
|
|
// this.showdownLoadErr = true
|
|
|
|
|
this.downLoadErrTip = `${name}下载失败:${res.message}`
|
|
|
|
|
.then(res => {
|
|
|
|
|
if (res.message) {
|
|
|
|
|
// this.showdownLoadErr = true
|
|
|
|
|
this.downLoadErrTip = `${name}下载失败:${res.message}`
|
|
|
|
|
|
|
|
|
|
message.error(`${name}下载失败:${res.message}`, 0)
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
const blob = new Blob([res], { type: `application/pdf;chartset=UTF-8` })
|
|
|
|
|
const link = document.createElement('a')
|
|
|
|
|
link.style.display = 'none'
|
|
|
|
|
link.href = URL.createObjectURL(blob)
|
|
|
|
|
link.download = name
|
|
|
|
|
document.body.appendChild(link)
|
|
|
|
|
link.click()
|
|
|
|
|
URL.revokeObjectURL(link.href) // 释放URL对象
|
|
|
|
|
document.body.removeChild(link)
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
message.error(`${name}下载失败:${res.message}`, 0)
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
const blob = new Blob([res], { type: `application/pdf;chartset=UTF-8` })
|
|
|
|
|
const link = document.createElement('a')
|
|
|
|
|
link.style.display = 'none'
|
|
|
|
|
link.href = URL.createObjectURL(blob)
|
|
|
|
|
link.download = name
|
|
|
|
|
document.body.appendChild(link)
|
|
|
|
|
link.click()
|
|
|
|
|
URL.revokeObjectURL(link.href) // 释放URL对象
|
|
|
|
|
document.body.removeChild(link)
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 重新比对
|
|
|
|
|
reComparisonFun() {
|
|
|
|
@ -1003,16 +1033,17 @@ export default {
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
const query = this.$qs.stringify({ PKIds: pkIdArr }, { arrayFormat: 'repeat' })
|
|
|
|
|
ManualReCompareBC(query).then(res => {
|
|
|
|
|
if (res.success) {
|
|
|
|
|
this.$message.success('重新比对完成')
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
ManualReCompareBC(query)
|
|
|
|
|
.then(res => {
|
|
|
|
|
if (res.success) {
|
|
|
|
|
this.$message.success('重新比对完成')
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 批量转发
|
|
|
|
|
SendEmailFun() {
|
|
|
|
@ -1105,7 +1136,7 @@ export default {
|
|
|
|
|
PKIds: pkIdArr
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
// 接口暂时报错
|
|
|
|
|
// 接口暂时报错
|
|
|
|
|
if (res.message) {
|
|
|
|
|
const downLoadErrTip = `COPY打印失败:${res.message}`
|
|
|
|
|
this.$message.error(downLoadErrTip)
|
|
|
|
@ -1220,7 +1251,7 @@ export default {
|
|
|
|
|
taskDownloadFun(data) {
|
|
|
|
|
// 非DRAFT 任务类型下,接口报错。
|
|
|
|
|
this.DownloadTaskAttach(data.pkId, data.taskTitle)
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
// onDownloadErrClose() {
|
|
|
|
|
// console.log('关闭')
|
|
|
|
|
// this.showdownLoadErr = false
|
|
|
|
@ -1285,21 +1316,21 @@ export default {
|
|
|
|
|
color: @primary-color;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.icon-tip{
|
|
|
|
|
.icon-tip {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: @primary-color;
|
|
|
|
|
}
|
|
|
|
|
.nav-title{
|
|
|
|
|
.ant-radio-button-wrapper{
|
|
|
|
|
.nav-title {
|
|
|
|
|
.ant-radio-button-wrapper {
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.nav-top{
|
|
|
|
|
width:100%;
|
|
|
|
|
.nav-top {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
// position: relative;
|
|
|
|
|
.nav-top-tip{
|
|
|
|
|
.nav-top-tip {
|
|
|
|
|
// position: absolute;
|
|
|
|
|
// top: 0;right: 10px;
|
|
|
|
|
// width: 20px;
|
|
|
|
@ -1314,29 +1345,29 @@ export default {
|
|
|
|
|
// border-radius: 50%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.nav-box{
|
|
|
|
|
padding:20px 14px;
|
|
|
|
|
.nav-box {
|
|
|
|
|
padding: 20px 14px;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
}
|
|
|
|
|
.nav-no-data{
|
|
|
|
|
.nav-no-data {
|
|
|
|
|
height: 84px;
|
|
|
|
|
line-height: 84px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
i{
|
|
|
|
|
i {
|
|
|
|
|
display: block;
|
|
|
|
|
line-height: 60px;
|
|
|
|
|
font-size: 32px;
|
|
|
|
|
color: #aaa;
|
|
|
|
|
}
|
|
|
|
|
span{
|
|
|
|
|
span {
|
|
|
|
|
display: block;
|
|
|
|
|
line-height: 24px;
|
|
|
|
|
color: #999;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.tab-btn{
|
|
|
|
|
.tab-btn {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
// .downLoad-err-alert{
|
|
|
|
|