sunzehua 11 months ago
commit 974f860403

@ -291,3 +291,38 @@ export function DownloadFileByBC(parameter) {
responseType: 'blob'
})
}
export function GetProjectList(parameter) {
return axios({
url: '/TaskManageBC/GetProjectList',
method: 'get',
params: parameter
})
}
export function CancelTaskBC(parameter) {
return axios({
url: '/TaskManageBC/CancelTask',
method: 'get',
params: parameter
})
}
export function DownloadFile(parameter) {
return axios({
url: '/TaskManageBC/DownloadFile',
method: 'get',
params: parameter
})
}
export function TransferTask(parameter) {
return axios({
url: '/TaskManageBC/TransferTask',
method: 'get',
params: parameter
})
}
export function CreateBookingAndSlot(parameter) {
return axios({
url: '/TaskManageBC/CreateBookingAndSlot',
method: 'post',
data: parameter
})
}

@ -39,6 +39,7 @@ const constantRouterComponents = {
TaskOriginalLost: () => import('@/views/main/Taskmanage/TaskOriginalLost'),
TaskChangeShip: () => import('@/views/main/Taskmanage/TaskChangeShip'),
BcFileDetail: () => import('@/views/main/Taskmanage/BcFileDetail'),
BcEditing: () => import('@/views/main/Taskmanage/BcFileDetail/Editing'),
BookingDetailTest: () => import('@/views/main/BookingLedger/detail/BookingDetailTest'),
BookingCustomerDetail: () => import('@/views/main/BookingCustomerLedger/detail')
}
@ -165,6 +166,17 @@ const userAccount = [
},
component: 'BcFileDetail'
},
{
name: 'BcEditing',
path: '/commontaskmanage/BcEditing',
pid: 0,
id: 183183,
meta: {
title: 'BC编辑',
show: false
},
component: 'BcEditing'
},
{
name: 'TaskmanageDetail',
path: '/commontaskmanage/TaskmanageDetail',

@ -0,0 +1,855 @@
<template>
<div class="Main">
<a-spin :spinning="spinning">
<a-row :gutter="16">
<a-col :span="14">
<div class="LeftHead">
<p>Booking Confirmation{{ form.carrierId }}</p>
<p>订舱时间{{ form.bookingConfirmDate }}</p>
</div>
<a-form class="Editing">
<a-row>
<a-col :span="14">
<a-form-item
label="提单号:"
:label-col="formItemLayout.labelCol1"
:wrapper-col="formItemLayout.wrapperCol1"
>{{ form.mblNo }}
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item
label="船名/航次:"
:label-col="formItemLayout.labelCol2"
:wrapper-col="formItemLayout.wrapperCol2"
>
{{ form.vessel }}/{{ form.voyNo }}
</a-form-item>
</a-col>
<a-col :span="14">
<a-form-item
label="收货地:"
:label-col="formItemLayout.labelCol1"
:wrapper-col="formItemLayout.wrapperCol1"
>
{{ form.placeReceipt }}
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item
label="ETD"
:label-col="formItemLayout.labelCol2"
:wrapper-col="formItemLayout.wrapperCol2"
>
{{ form.etd }}
</a-form-item>
</a-col>
<a-col :span="14">
<a-form-item
label="交货地:"
:label-col="formItemLayout.labelCol1"
:wrapper-col="formItemLayout.wrapperCol1"
>
{{ form.placeDelivery }}
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item
label="ETA"
:label-col="formItemLayout.labelCol2"
:wrapper-col="formItemLayout.wrapperCol2"
>
{{ form.eta }}
</a-form-item>
</a-col>
<a-col :span="14">
<a-form-item
label="订舱人:"
:label-col="formItemLayout.labelCol1"
:wrapper-col="formItemLayout.wrapperCol1"
>
{{ form.bookingParty }}
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item
label="合约号:"
:label-col="formItemLayout.labelCol2"
:wrapper-col="formItemLayout.wrapperCol2"
>
{{ form.contractNo }}
</a-form-item>
</a-col>
<a-col :span="14">
<a-form-item
label="样单截止时间:"
:label-col="formItemLayout.labelCol1"
:wrapper-col="formItemLayout.wrapperCol1"
>
{{ form.sICutDate }}
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item
label="箱使天数:"
:label-col="formItemLayout.labelCol2"
:wrapper-col="formItemLayout.wrapperCol2"
>
{{ form.detensionFreeDays }}
</a-form-item>
</a-col>
<a-col :span="14">
<a-form-item
label="舱单截止时间:"
:label-col="formItemLayout.labelCol1"
:wrapper-col="formItemLayout.wrapperCol1"
>
{{ form.manifestCutDate }}
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item
label="截港时间:"
:label-col="formItemLayout.labelCol2"
:wrapper-col="formItemLayout.wrapperCol2"
>
{{ form.cyCutoffTime }}
</a-form-item>
</a-col>
<a-col :span="14">
<a-form-item
label="箱型箱量:"
:label-col="formItemLayout.labelCol1"
:wrapper-col="formItemLayout.wrapperCol1"
>
{{ form.ctnStat }}
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item
label="VGM截止时间"
:label-col="formItemLayout.labelCol2"
:wrapper-col="formItemLayout.wrapperCol2"
>
{{ formext2.VGMCutoffTime }}
</a-form-item>
</a-col>
<a-col :span="24">
<p class="title"><i class="iconfont icon-chuanfanguanli-chuanfanshenqing"></i>一程</p>
</a-col>
<a-col :span="16">
<a-form-item
label="船名/航次:"
:label-col="formItemLayout.labelCol3"
:wrapper-col="formItemLayout.wrapperCol3"
>
{{ form.vessel }}/{{ form.voyNo }}
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item
label="ETD"
:label-col="formItemLayout.labelCol4"
:wrapper-col="formItemLayout.wrapperCol4"
>
{{ form.etd }}
</a-form-item>
</a-col>
<a-col :span="16">
<a-form-item
label="装货港:"
:label-col="formItemLayout.labelCol3"
:wrapper-col="formItemLayout.wrapperCol3"
>
{{ form.portload }}
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item
label="ETA"
:label-col="formItemLayout.labelCol4"
:wrapper-col="formItemLayout.wrapperCol4"
>
{{ form.eta }}
</a-form-item>
</a-col>
<a-col :span="16">
<a-form-item
label="卸货港:"
:label-col="formItemLayout.labelCol3"
:wrapper-col="formItemLayout.wrapperCol3"
>
{{ form.portDischarge }}
</a-form-item>
</a-col>
<div v-if="form.carriageType == 'TRANSFER_SHIP'">
<a-col :span="24">
<p class="title"><i class="iconfont icon-chuanfanguanli-chuanfanshenqing"></i>二程</p>
</a-col>
<a-col :span="16">
<a-form-item
label="船名/航次:"
:label-col="formItemLayout.labelCol3"
:wrapper-col="formItemLayout.wrapperCol3"
>
{{ form.secondVessel }}/{{ form.secondVoyno }}
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item
label="ETD"
:label-col="formItemLayout.labelCol4"
:wrapper-col="formItemLayout.wrapperCol4"
>
{{ form.secondETD }}
</a-form-item>
</a-col>
<a-col :span="16">
<a-form-item
label="装货港:"
:label-col="formItemLayout.labelCol3"
:wrapper-col="formItemLayout.wrapperCol3"
>
{{ form.transferPort1 }}
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item
label="ETA"
:label-col="formItemLayout.labelCol4"
:wrapper-col="formItemLayout.wrapperCol4"
>
{{ form.secondETA }}
</a-form-item>
</a-col>
<a-col :span="16">
<a-form-item
label="卸货港:"
:label-col="formItemLayout.labelCol3"
:wrapper-col="formItemLayout.wrapperCol3"
>
{{ form.portDischarge }}
</a-form-item>
</a-col>
</div>
</a-row>
<a-row>
<a-col :span="24">
<p class="title">关联详情</p>
</a-col>
<a-col :span="5">
<a-form-item
label="已生成舱位:"
:label-col="formItemLayout.labelCol5"
:wrapper-col="formItemLayout.wrapperCol5"
>
{{ form.bookingSlotId ? '是' : '否' }}
</a-form-item>
</a-col>
<!-- <a-col :span="5">
<a-form-item
label="时间:"
:label-col="formItemLayout.labelCol6"
:wrapper-col="formItemLayout.wrapperCol6"
>
2023-11-24
</a-form-item>
</a-col> -->
<a-col :span="3" v-if="form.bookingSlotId">
<span class="CsSee" @click="FnSee"></span>
</a-col>
</a-row>
<a-row>
<a-col :span="5">
<a-form-item
label="已生成订舱:"
:label-col="formItemLayout.labelCol5"
:wrapper-col="formItemLayout.wrapperCol5"
>
{{ form.bookingOrderId ? '是' : '否' }}
</a-form-item>
</a-col>
<a-col :span="3">
<span class="CsSee" v-if="form.bookingOrderId"></span>
</a-col>
</a-row>
<a-row>
<a-col :span="5">
<a-form-item
label="任务状态:"
:label-col="formItemLayout.labelCol5"
:wrapper-col="formItemLayout.wrapperCol5"
>
{{ form.taskStatus == 'Complete' ? '已完成' : '-' }}
</a-form-item>
</a-col>
</a-row>
<a-row class="LeftBottomBox" type="flex" justify="space-around" align="middle">
<a-col :span="24">
<p class="title">关键信息</p>
</a-col>
<div class="unitBox">
<p
v-for="(item, index) in form.keywords"
:key="index"
class="unit"
:style="{
background: item.background,
color: Rcolor(item.background),
border: `1px solid ${Rcolor(item.background)}`
}"
>
<i :class="item.icon" class="iconfont"></i>{{ item.name }}
</p>
</div>
<!-- <a-col :span="5">
<p class="unit"><a-icon type="bold" />承运模式中转</p>
</a-col>
<a-col :span="5">
<p class="unit"><a-icon type="bold" />订舱方式合约订舱</p>
</a-col>
<a-col :span="5">
<p class="unit"><a-icon type="bold" />订舱方式SPOT订舱</p>
</a-col> -->
</a-row>
<a-row 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="primary" @click="OpenModal">
</a-button>
</a-col>
<a-col>
<a-button type="danger" @click="FnCancelTask">
取消任务
</a-button>
</a-col>
</a-row>
</a-form>
</a-col>
<a-col :span="10" class="rightBox">
<iframe width="100%" height="720" frameborder="0" scrolling="auto" :src="pdfUrl"></iframe>
</a-col>
</a-row>
</a-spin>
<a-modal v-model="visible" title="生成方式选择" @ok="handleOk" width="40%">
<a-radio-group 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.codeName">
{{ item.shortName }}
</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 v-model="UserId" style="width: 120px">
<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>
</div>
</template>
<script>
import {
GetInfoByTaskId,
GetProjectList,
CancelTaskBC,
DownloadFile,
TransferTask,
CreateBookingAndSlot
} from '@/api/modular/main/TaskmanageList'
import { CompleteTask } from '@/api/modular/main/TaskmanageList'
import { DjyCustomerSuggest, GetSysUserPage } from '@/api/modular/main/BookingLedger'
export default {
data() {
return {
CustomerList: [],
CreateData: {},
UserId: '',
value: '',
formItemLayout: {
labelCol1: { span: 5 },
wrapperCol1: { span: 19 },
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: '',
form: {
ctnList: [],
fileList: []
},
formext2: {
ctnList: []
},
href: '',
spinning: false,
bookingServiceItem: [],
pdfUrl: '',
UserList: []
}
},
computed: {},
mounted() {
this.getList()
},
methods: {
SearchCustomer(e) {
console.log(e)
// consignor
// booking_agent
DjyCustomerSuggest({ keyword: e, type: 'consignor' }).then(res => {
this.CustomerList = res.data.rows
})
},
ChangeCustomer(e) {
this.CustomerList.forEach(item => {
if (item.codeName == e) {
this.CreateData.customerName = item.shortName
}
})
},
SearchUser(e) {
console.log(e)
// consignor
// booking_agent
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
}
})
},
FnSee() {
this.$router.push({ path: '/BookingDetail?id=' + this.form.bookingOrderId })
},
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)
}
})
},
FnCancelTask() {
CancelTaskBC().then(res => {
if (res.data.succ) {
this.$message.success(res.data.msg)
} else {
this.$message.error(res.data.msg)
}
})
},
saveService(data) {
data.isYield = !data.isYield
},
getList() {
this.spinning = true
const ApiData = {
taskPkId: this.$route.query.taskPKId
}
GetInfoByTaskId(ApiData).then(res => {
console.log(res.data)
if (res.data.succ) {
this.form = res.data.ext
if (this.form.fileList) {
this.isPdf = this.form.fileList[0].fileType
}
if (res.data.ext2) {
this.formext2 = res.data.ext2
} else {
this.formext2 = {}
}
this.$forceUpdate()
this.spinning = false
} else {
this.$message.error(res.data.msg)
this.form = {}
this.formext2 = {}
this.spinning = false
}
})
GetProjectList().then(res => {
res.data.forEach(item => {
item.isYield = false
})
this.bookingServiceItem = res.data
})
DownloadFile(ApiData).then(res => {
this.pdfUrl = window.URL.createObjectURL(new Blob([res], { type: 'application/pdf;charset=utf-8' }))
})
GetSysUserPage().then(res => {
this.UserList = res.data
})
DjyCustomerSuggest({ keyword: '', type: 'consignor' }).then(res => {
this.CustomerList = res.data.rows
})
},
OpenModal() {
this.visible = true
},
OpenUser() {
this.UserVisible = true
},
handleOk() {
let projectList = []
this.bookingServiceItem.forEach(item => {
if (item.isYield) {
projectList.push(item.serviceProjectCode)
}
})
let 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
},
Rcolor(hexColor) {
let hex = hexColor.replace('#', '').toLowerCase()
let red = parseInt(hex.substring(0, 2), 16) - 80
let green = parseInt(hex.substring(2, 4), 16) - 80
let blue = parseInt(hex.substring(4, 6), 16)
return `rgb(${red}, ${green}, ${blue})`
}
}
}
</script>
<style lang="less" scoped>
@import url('../../BookingLedger/detail/index.less');
@import url('../../BookingLedger/detail/style/rightContent.less');
.modaltitle {
border-bottom: 1px solid #000;
width: 5rem;
padding: 0.2rem 0.5rem;
margin-top: 1rem;
}
.icon-chuanfanguanli-chuanfanshenqing {
color: '#02A7F0';
}
.Main {
width: 80%;
margin: 0 auto;
.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: 14px;
}
.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;
// color: #62a10398;
margin: 0.5rem;
padding: 0 0.3rem;
.iconfont {
margin-right: 0.3rem;
}
}
}
}
.rightBox {
// margin-top: 37px;
}
/deep/.Editing {
.ant-form-item {
margin: 0 !important;
line-height: 1.6 !important;
.ant-form-item-label {
line-height: 1.6 !important;
}
.ant-form-item-control {
line-height: 1.6 !important;
}
}
}
}
</style>

@ -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>
@ -24,7 +26,8 @@
v-for="(threeLevel, tindex) in levelTree"
:key="`0-0-${tindex}`"
:title="`${threeLevel.name} (${threeLevel.total})`"
:show-icon="false" />
:show-icon="false"
/>
</a-tree-node>
</a-tree>
</a-tab-pane>
@ -36,7 +39,8 @@
class="icon"
:icon="levelreLoading ? 'loading' : 'reload'"
size="small"
@click="getCurrentTotalStat">
@click="getCurrentTotalStat"
>
点击重新加载
</a-button>
</div>
@ -55,7 +59,8 @@
:xl="5.5"
:key="findex"
v-show="(findex < 4 && !advanced) || advanced"
class="from-label">
class="from-label"
>
<a-form-item style="padding-left: 10px; padding-right: 10px" :label="formLabel.title">
<formLabel
:ref="`fromlabel-${formLabel.label}`"
@ -66,7 +71,8 @@
@change="formChange"
@pressEnter="pressEnterFun"
@getCompleteList="getCompleteListFun"
@selectFirst="getSelectFirst"></formLabel>
@selectFirst="getSelectFirst"
></formLabel>
</a-form-item>
</a-col>
</template>
@ -91,10 +97,22 @@
<div slot="content" class="table-page-search-wrapper" :style="{ marginTop: '-8px' }">
<vxe-toolbar>
<template #buttons>
<a-popconfirm title="是否取消当前选择项?" ok-text="" cancel-text="" @confirm="removeFun" @cancel="cancelFun">
<a-popconfirm
title="是否取消当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="removeFun"
@cancel="cancelFun"
>
<a-button class="list-btn" icon="close">取消</a-button>
</a-popconfirm>
<a-popconfirm title="确定完成当前选择项?" ok-text="" cancel-text="" @confirm="submitFun" @cancel="cancelFun">
<a-popconfirm
title="确定完成当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="submitFun"
@cancel="cancelFun"
>
<a-button class="list-btn" type="primary" icon="check">完成</a-button>
</a-popconfirm>
<a-button class="list-btn" type="primary" icon="check" @click="FnPrint"></a-button>
@ -106,7 +124,8 @@
ok-text="是"
cancel-text="否"
@confirm="downloadFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn" icon="download">批量下载</a-button>
</a-popconfirm>
<a-popconfirm
@ -114,7 +133,8 @@
ok-text="是"
cancel-text="否"
@confirm="reComparisonFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-duibi"></i>重新比对</a-button>
</a-popconfirm>
</template>
@ -124,7 +144,8 @@
ok-text="是"
cancel-text="否"
@confirm="SendEmailFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-31zhuanfa"></i>批量转发</a-button>
</a-popconfirm>
<a-popconfirm
@ -132,7 +153,8 @@
ok-text="是"
cancel-text="否"
@confirm="downloadFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn" icon="download">批量下载</a-button>
</a-popconfirm>
</template>
@ -142,7 +164,8 @@
ok-text="是"
cancel-text="否"
@confirm="laraPaperCalc"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-52"></i>页数计算</a-button>
</a-popconfirm>
</template>
@ -152,7 +175,8 @@
ok-text="是"
cancel-text="否"
@confirm="copyPrintFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-weibiaoti--"></i>COPY打印</a-button>
</a-popconfirm>
<a-popconfirm
@ -160,7 +184,8 @@
ok-text="是"
cancel-text="否"
@confirm="copyDownloadFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-xiazai-wenjianxiazai-13"></i>COPY下载</a-button>
</a-popconfirm>
<a-popconfirm
@ -168,7 +193,8 @@
ok-text="是"
cancel-text="否"
@confirm="printBatchFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-xiazai"></i>正本下载</a-button>
</a-popconfirm>
<a-popconfirm
@ -176,16 +202,24 @@
ok-text="是"
cancel-text="否"
@confirm="laraPaperRegistFun"
@cancel="cancelFun">
@cancel="cancelFun"
>
<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>
<div class="right">
<a-popconfirm title="确定刷新?" ok-text="" cancel-text="" @confirm="tableRefresh" @cancel="cancelFun">
<a-popconfirm
title="确定刷新?"
ok-text="是"
cancel-text="否"
@confirm="tableRefresh"
@cancel="cancelFun"
>
<span class="tab-btn"> <a-icon type="redo" :style="{ fontSize: '16px' }" /> 刷新 </span>
</a-popconfirm>
<span class="tab-btn" @click="tableHeaderEdit">
@ -200,7 +234,8 @@
row-class-name="line-box"
@page-change="handlePageChange"
style="margin-top: 6px"
:height="tableHeight">
:height="tableHeight"
>
<template #status="{ row }">
<span>{{ selectStatus(row.status) }}</span>
</template>
@ -225,11 +260,13 @@
ok-text="是"
cancel-text="否"
@confirm="taskDownloadFun(row)"
@cancel="cancelFun">
@cancel="cancelFun"
>
<a-tooltip>
<template slot="title"> 预览附件 </template>
<span
class="operate-btn iconfont icon-a-wendangcaozuoxiazaishangchuanshanchuxinzengfujianyasuochakan-01"></span>
class="operate-btn iconfont icon-a-wendangcaozuoxiazaishangchuanshanchuxinzengfujianyasuochakan-01"
></span>
</a-tooltip>
</a-popconfirm>
</template>
@ -246,7 +283,8 @@
:confirmLoading="sendEmailModelconfirm"
:maskClosable="false"
@ok="handleSendEmail"
@cancel="handleSendEmailCancel">
@cancel="handleSendEmailCancel"
>
<a-form-model ref="sendForm" :model="sendEmailForm" :rules="sendFormRules">
<a-form-model-item
label="发送邮箱"
@ -256,7 +294,8 @@
sm: { span: 4 },
md: { span: 5 }
}"
:wrapperCol="wrapperCol">
:wrapperCol="wrapperCol"
>
<a-input placeholder="请输入发送邮箱" v-model="sendEmailForm.email" />
</a-form-model-item>
</a-form-model>
@ -274,7 +313,8 @@
md: { span: 5 }
}"
:wrapperCol="wrapperCol"
@cancel="handlePaperCalcCancel">
@cancel="handlePaperCalcCancel"
>
<div class="paper-list">
<a-table :columns="paperCalcColumns" :data-source="paperCalcRes"></a-table>
<div class="extras" v-if="paperCalcExtras">
@ -310,7 +350,8 @@
@click="FnCilckTemplateType(item.id)"
class="items"
:span="11"
:offset="index % 2 == 0 ? 0 : 1">
:offset="index % 2 == 0 ? 0 : 1"
>
<span>·</span>{{ item.displayName }}
</a-col>
</a-row>
@ -323,7 +364,8 @@
:formAllData="formMoreData"
type="from"
@ok="submitForm"
v-if="formMoreData"></setFormModel>
v-if="formMoreData"
></setFormModel>
<setFormModel
ref="setTableForm"
@ -332,7 +374,8 @@
:maxNum="999"
type="table"
@ok="submitTableForm"
v-if="formMoreTableData"></setFormModel>
v-if="formMoreTableData"
></setFormModel>
<a-modal title="提示信息" width="900px" :visible="bcFileFlag" :footer="null" @cancel="bcFileFlag = false">
<div class="bcfile-title">
<div><a-icon style="margin-right: 10px;" @click="handleCopy" type="copy" />时间{{ bcFile.executeTime }}</div>
@ -360,7 +403,8 @@
style="width:450px"
:not-found-content="null"
show-search
@search="gettruckIdData">
@search="gettruckIdData"
>
<a-select-option v-for="item in truckIdData" :key="item.id" :value="item.id">
{{ item.shortName }}
</a-select-option>
@ -424,7 +468,7 @@ export default {
this.GetPrintData('truckBill', printType)
}
},
'$route': {
$route: {
deep: true,
handler(nD, oD) {
if (nD.name === 'Taskmanage_list') {
@ -436,7 +480,7 @@ export default {
}
})
GetTaskManagePage({ pkId: this.saveNeedCar })
.then((res) => {
.then(res => {
if (res.success) {
this.$set(this.gridOptions.data, index, res.data.items[0])
this.$forceUpdate()
@ -444,7 +488,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
}
@ -584,14 +628,14 @@ export default {
},
methods: {
handleCopy() {
this.$message.success('复制成功');
this.$message.success('复制成功')
const text = this.$refs.bcBox.innerText
var cInput = document.createElement('input');
cInput.value = text;
document.body.appendChild(cInput);
cInput.select(); //
document.execCommand('copy');
document.body.removeChild(cInput);
var cInput = document.createElement('input')
cInput.value = text
document.body.appendChild(cInput)
cInput.select() //
document.execCommand('copy')
document.body.removeChild(cInput)
},
Changeyardid(e) {
this.truckIdData.forEach(item => {
@ -653,7 +697,7 @@ export default {
return option.componentOptions.children[0].text.indexOf(value) >= 0
},
gettruckIdData(name, type) {
DjyCustomerQuerytDjyCustomerInfo({ queryType: 'fleet', queryItem: name }).then((res) => {
DjyCustomerQuerytDjyCustomerInfo({ queryType: 'fleet', queryItem: name }).then(res => {
this.truckIdData = res.data
})
},
@ -666,7 +710,7 @@ export default {
}
const fun = this.emnuCompleteApi(form.label)
if (fun) {
this.getFromSelectData(this.emnuCompleteApi(form.label), query).then((data) => {
this.getFromSelectData(this.emnuCompleteApi(form.label), query).then(data => {
if (['CUSTOMERNAME', 'FORWARDER', 'CUSTOMSER', 'AGENTID', 'TRUCKER'].includes(form.label)) {
this.$refs[`fromlabel-${form.label}`][0].$data.dataSourceList = data.rows
} else {
@ -709,7 +753,7 @@ export default {
},
getFromSelectData(func, ...args) {
return new Promise((resolve, reject) => {
func(...args).then((res) => {
func(...args).then(res => {
if (res.code === 200) {
resolve(res.data)
} else {
@ -754,7 +798,7 @@ export default {
DjyUserConfigAdd({
type: 'task_list_cond',
configJson: JSON.stringify(arr)
}).then((res) => {
}).then(res => {
this.$message.success('保存成功')
this.$refs.setForm.handleCancel()
Object.keys(this.$refs).map((label, index) => {
@ -767,7 +811,7 @@ export default {
})
},
getFormData(isReset = false) {
DjyUserConfigGet({ type: 'task_list_cond' }).then((res) => {
DjyUserConfigGet({ type: 'task_list_cond' }).then(res => {
this.setFormData(res.data)
})
},
@ -784,7 +828,7 @@ export default {
const query = {
typeArr: ['task_list_cond', 'task_list_column', 'task_list_page']
}
DjyUserConfigMulti(this.$qs.stringify(query, { arrayFormat: 'repeat' })).then((res) => {
DjyUserConfigMulti(this.$qs.stringify(query, { arrayFormat: 'repeat' })).then(res => {
const $data = {}
res.data.map((item, index) => {
switch (item.type) {
@ -855,7 +899,7 @@ export default {
} else {
this.formBtnCol = 24 - len * 4
}
this.formData.forEach((item) => {
this.formData.forEach(item => {
if (item.label === 'taskType') {
item.data = this.taskTypeList
}
@ -911,7 +955,7 @@ export default {
DjyUserConfigAdd({
type: 'task_list_column',
configJson: JSON.stringify(data)
}).then((res) => {
}).then(res => {
this.$refs.setForm.handleCancel()
})
},
@ -920,7 +964,7 @@ export default {
this.$message.success(`搜索文件中...`)
const printType = this.PrintType == 4 ? 20 : 10
TaskManageTruckGetInfoByTaskId({ taskPkId: this.pkIdArr[0] })
.then((res) => {
.then(res => {
if (res.data.succ) {
TaskManageTruckPrint({
taskPKId: res.data.ext.pK_ID,
@ -928,7 +972,7 @@ export default {
cateCode: 'truckBill',
type: this.PrintType,
printType
}).then((res) => {
}).then(res => {
if (!res.success) {
this.$message.error(res.message)
} else {
@ -959,7 +1003,7 @@ export default {
}
this.spinning = true
TaskManageTruckPrintTemplateWithHistoryList(Data).then((res) => {
TaskManageTruckPrintTemplateWithHistoryList(Data).then(res => {
console.log(res.data)
if (res.data.length == 1) {
this.FnCilckTemplateType(res.data[0].id)
@ -998,7 +1042,7 @@ export default {
this.$message.error('请选择数据')
return false
}
TaskManageTruckSendDispatchBatchByTask(pkIdArr).then((res) => {
TaskManageTruckSendDispatchBatchByTask(pkIdArr).then(res => {
if (res.data.succ) {
this.$message.success('派车成功')
} else {
@ -1039,7 +1083,7 @@ export default {
this.$message.error('请选择数据')
return false
}
TaskManageTruckCancelDispatchBatchByTask(pkIdArr).then((res) => {
TaskManageTruckCancelDispatchBatchByTask(pkIdArr).then(res => {
if (res.data.succ) {
this.$message.success('取消派车成功')
} else {
@ -1201,7 +1245,7 @@ export default {
GetParaInfo({
ParaType: typeString
})
.then((res) => {
.then(res => {
if (res.success) {
if (type === 'status') {
this.statusList = res.data.rows
@ -1216,7 +1260,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1234,7 +1278,7 @@ export default {
GetCurrentTotalStat({
isReCalc: false
})
.then((res) => {
.then(res => {
this.levelLoading = false
this.levelreLoading = false
if (res.success) {
@ -1260,7 +1304,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1331,7 +1375,7 @@ export default {
pageNo: currentPage,
pageSize: pageSize
})
.then((res) => {
.then(res => {
if (res.success) {
const _data = res.data.items.map((item, index) => {
item.row_id = (currentPage - 1) * pageSize + index
@ -1346,7 +1390,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1425,8 +1469,10 @@ export default {
}
})
} else if (data.taskType === 'BC') {
//
this.$router.push({ path: '/commontaskmanage/BcFileDetail', query: { taskPKId: data.pkId } })
// BC
// this.$router.push({ path: '/commontaskmanage/BcFileDetail', query: { taskPKId: data.pkId } })
// BC
this.$router.push({ path: '/commontaskmanage/BcEditing', query: { taskPKId: data.pkId } })
} else {
//
this.$router.push({ path: '/commontaskmanage/BookingDetails', query: { taskPKId: data.pkId } })
@ -1444,7 +1490,7 @@ export default {
})
return res[0].name
},
cancelFun() { },
cancelFun() {},
//
removeFun() {
const select = this.$refs.xGrid.getCheckboxRecords()
@ -1457,7 +1503,7 @@ export default {
return false
}
CancelTask(pkIdArr)
.then((res) => {
.then(res => {
if (res.success) {
this.$message.success('取消任务成功')
this.bcFileFlag = true
@ -1467,7 +1513,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1483,7 +1529,7 @@ export default {
return false
}
CompleteTask(pkIdArr)
.then((res) => {
.then(res => {
if (res.success) {
this.$message.success('已完成任务')
this.bcFileFlag = true
@ -1493,7 +1539,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1508,7 +1554,7 @@ export default {
this.$message.error('请选择数据')
return false
}
pkIdArr.map((item) => {
pkIdArr.map(item => {
const name = select[pkIdArr.indexOf(item)].taskTitle
this.DownloadTaskAttach(item, name)
})
@ -1517,7 +1563,7 @@ export default {
DownloadTaskAttach({
taskPKId: id
})
.then((res) => {
.then(res => {
if (res.message) {
// this.showdownLoadErr = true
this.downLoadErrTip = `${name}下载失败:${res.message}`
@ -1535,7 +1581,7 @@ export default {
URL.revokeObjectURL(link.href) // URL
document.body.removeChild(link)
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1552,14 +1598,14 @@ export default {
}
const query = this.$qs.stringify({ PKIds: pkIdArr }, { arrayFormat: 'repeat' })
ManualReCompareBC(query)
.then((res) => {
.then(res => {
if (res.success) {
this.$message.success('重新比对完成')
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1578,14 +1624,14 @@ export default {
this.sendEmailVisible = true
},
handleSendEmail() {
this.$refs.sendForm.validate((valid) => {
this.$refs.sendForm.validate(valid => {
if (valid) {
console.log(this.sendEmailForm.email)
SendTelexEmail({
taskPKId: this.sendEmailPkIds[0],
toMail: this.sendEmailForm.email
})
.then((res) => {
.then(res => {
if (res.success) {
this.$message.success('转发成功')
this.handleSendEmailCancel()
@ -1593,7 +1639,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
} else {
@ -1618,7 +1664,7 @@ export default {
}
const query = this.$qs.stringify({ PKIds: pkIdArr }, { arrayFormat: 'repeat' })
LaraPaperCalc(query)
.then((res) => {
.then(res => {
if (res.success) {
this.paperCalcRes = res.data
this.paperCalcExtras = res.extras || ''
@ -1627,7 +1673,7 @@ export default {
this.$message.error(res.message)
}
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1653,7 +1699,7 @@ export default {
PrintBatch({
PKIds: pkIdArr
})
.then((res) => {
.then(res => {
//
if (res.message) {
const downLoadErrTip = `COPY打印失败${res.message}`
@ -1670,7 +1716,7 @@ export default {
URL.revokeObjectURL(link.href) // URL
document.body.removeChild(link)
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1693,7 +1739,7 @@ export default {
DownloadAttach({
PKIds: pkIdArr
})
.then((res) => {
.then(res => {
// 404
if (res.message) {
const downLoadErrTip = `COPY下载失败${res.message}`
@ -1710,7 +1756,7 @@ export default {
URL.revokeObjectURL(link.href) // URL
document.body.removeChild(link)
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},
@ -1727,7 +1773,7 @@ export default {
DownloadOriginalTask({
PKIds: pkIdArr
})
.then((res) => {
.then(res => {
//
if (res.message) {
const downLoadErrTip = `正本下载失败:${res.message}`
@ -1744,7 +1790,7 @@ export default {
URL.revokeObjectURL(link.href) // URL
document.body.removeChild(link)
})
.catch((err) => {
.catch(err => {
console.log(err)
})
},

Loading…
Cancel
Save