我的任务模块

dev
lilu 2 years ago
parent 1ad1e983fd
commit 0662331260

@ -95,7 +95,7 @@
<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %>
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" />
<% } %>
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_3756681_v18rtd38mv.css" />
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_3756681_4cwmrpk5p89.css" />
<!-- 1.8K仔百度收录 -->
<meta name="baidu-site-verification" content="code-QVfBYJ5laQ" />
</head>

@ -32,4 +32,112 @@ export function GetParaInfo (parameter) {
method: 'get',
params: parameter
})
}
}
/**
* 取消任务
*/
export function CancelTask (parameter) {
return axios({
url: '/TaskManage/CancelTask',
method: 'post',
data: parameter
})
}
/**
* 完成任务
*/
export function CompleteTask (parameter) {
return axios({
url: '/TaskManage/CompleteTask',
method: 'post',
data: parameter
})
}
/**
* 下载
*/
export function DownloadTaskAttach (parameter) {
return axios({
url: '/TaskManage/DownloadTaskAttach',
method: 'get',
params: parameter
})
}
/**
* 转发电子邮件
*/
export function SendTelexEmail (parameter) {
return axios({
url: '/TaskManage/SendTelexEmail',
method: 'get',
params: parameter
})
}
/**
* 页数计算
*/
export function LaraPaperCalc (parameter) {
return axios({
url: '/TaskManage/LaraPaperCalc?' + parameter,
method: 'post'
})
}
/**
* LARA提单纸登记
*/
export function LaraPaperRegist (parameter) {
return axios({
url: '/TaskManage/LaraPaperRegist',
method: 'post',
data: parameter
})
}
/**
* 下载正本提单(可批量)
*/
export function DownloadOriginalTask (parameter) {
return axios({
url: '/TaskManage/DownloadOriginalTask',
method: 'post',
data: parameter
})
}
/**
* copy 打印
*/
export function PrintBatch (parameter) {
return axios({
url: '/TaskManage/PrintBatch',
method: 'post',
data: parameter
})
}
/**
* copy 下载
*/
export function DownloadAttach (parameter) {
return axios({
url: '/TaskManage/DownloadAttach',
method: 'post',
data: parameter
})
}
/**
* 获取详情
*/
export function GetBookingOrderInfo (parameter) {
return axios({
url: '/TaskManage/GetBookingOrderInfo',
method: 'get',
params: parameter
})
}

@ -28,7 +28,8 @@ const constantRouterComponents = {
BookingDetail: () => import('@/views/main/BookingLedger/detail'),
BookingDetailNew: () => import('@/views/main/BookingLedgerNew/detail'),
CustomerInformationManagementAdd: () => import('@/views/main/Customer/addForm'),
CustomerInformationManagementEdit: () => import('@/views/main/Customer/editForm')
CustomerInformationManagementEdit: () => import('@/views/main/Customer/editForm'),
TaskmanageDetail: () => import('@/views/main/Taskmanage/TaskmanageDetail')
}
// 前端未找到页面路由(固定不用改)、原来为 /404
@ -143,15 +144,15 @@ const userAccount = [
component: 'Console'
},
{
name: 'TableDemo',
path: '/tableDemo',
name: 'TaskmanageDetail',
path: '/commontaskmanage/TaskmanageDetail',
pid: 0,
id: 183183,
meta: {
title: '表格示例',
title: '订舱详情',
show: false
},
component: 'TableDemo'
component: 'TaskmanageDetail'
}
]

@ -0,0 +1,748 @@
<template>
<div class="task-detail">
<div class="nav-btn">
<a-button type="primary">完成任务</a-button>
<a-button type="primary">保存</a-button>
<a-button type="primary">发送SI</a-button>
<a-button type="primary">提单确认</a-button>
<a-button type="primary">取消完成任务</a-button>
<a-button type="primary">关闭</a-button>
</div>
<x-card>
<div slot="content" style="padding-top:0;" class="mail-info">
<div class="task-basic-box">
<div class="label">
<div class="title">提单号</div>
<div class="msg">123456</div>
</div>
<div class="label">
<div class="title">开船日期</div>
<div class="msg">123456</div>
</div>
<div class="label">
<div class="title">船名/航次</div>
<div class="msg">123456</div>
</div>
</div>
</div>
</x-card>
<div class="mailing-info">
<x-card>
<div slot="content" style="margin-top: -5px;" class="mail-info">
<a-form-model :selfUpdate="true" ref="mailingFrom" :model="taskDetail">
<a-row :gutter="10">
<a-col :xs="24" :sm="24" :md="24" :lg="10" :xl="12">
<a-form-model-item has-feedback prop="shipper" class="sender-label">
<div class="sender">
<div class="top"><div class="name"><span class="iconfont icon-bianji"></span>发货人</div></div>
<div class="bottom">
<a-textarea
id="shipper-scroll"
:defaultValue="taskDetail.shipper"
v-model="showShipper"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
@blur="textareaChange($event, 'shipper')"
/>
<div
class="line-count"
id="shipper-scroll-right"
v-if="Object.keys(taskDetail).length > 1 && taskDetail.shipper.length > 1"
>
<div v-for="(num, index) in taskDetail.shipper.split('\n')" :key="index">{{ num.length }}</div>
</div>
</div>
</div>
</a-form-model-item>
<a-form-model-item has-feedback prop="consignee" class="sender-label">
<div class="consignee">
<div class="top"><div class="name"><span class="iconfont icon-bianji"></span>收货人</div></div>
<div class="bottom">
<a-textarea
id="consignee-scroll"
:defaultValue="taskDetail.consignee"
v-model="showConsignee"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
@blur="textareaChange($event, 'consignee')"
/>
<div
class="line-count"
id="consignee-scroll-right"
v-if="Object.keys(taskDetail).length > 1 && taskDetail.consignee.length > 1"
>
<div v-for="(num, index) in taskDetail.consignee.split('\n')" :key="index">{{ num.length }}</div>
</div>
</div>
</div>
</a-form-model-item>
<a-form-model-item has-feedback prop="notifyparty" class="sender-label">
<div class="notifier">
<div class="top"><div class="name"><span class="iconfont icon-bianji"></span>通知人</div></div>
<div class="bottom">
<a-textarea
id="notifyparty-scroll"
:defaultValue="taskDetail.notifyparty"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
v-model="showNotifier"
@blur="textareaChange($event, 'notifyparty')"
/>
<div
class="line-count"
id="notifyparty-scroll-right"
v-if="Object.keys(taskDetail).length > 1 && taskDetail.notifyparty.length > 1"
>
<div v-for="(num, index) in taskDetail.notifyparty.split('\n')" :key="index">{{ num.length }}</div>
</div>
</div>
</div>
</a-form-model-item>
</a-col>
<a-col class="right-content" :xs="24" :sm="24" :md="24" :lg="14" :xl="12">
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item
class="from-label"
label="装货港代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portloadid"
>
<auto-complete
:allowClear="true"
v-model="taskDetail.portloadid"
class="customer-input"
:data-source="portloadDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '300px' }"
@select="portloadSelect"
@change="portloadChange"
@focus="portloadChange"
></auto-complete>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="装货港"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portload"
>
<a-input :allowClear="true" v-model="taskDetail.portload" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="中转港代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="transportid"
>
<auto-complete
:allowClear="true"
v-model="taskDetail.transportid"
class="customer-input"
:data-source="transportDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '300px' }"
@select="transportSelect"
@change="transportChange"
@focus="transportChange"
/>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="中转港"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="transport"
>
<a-input :allowClear="true" v-model="taskDetail.transport" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="卸货港代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portdischargeid"
>
<auto-complete
:allowClear="true"
v-model="taskDetail.portdischargeid"
class="customer-input"
:data-source="portdischargeDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '300px' }"
@select="portdischargeSelect"
@change="portdischargeChange"
@focus="portdischargeChange"
/>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="卸货港"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portdischarge"
>
<a-input :allowClear="true" v-model="taskDetail.portdischarge" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="目的代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="destinationid"
>
<auto-complete
:allowClear="true"
v-model="taskDetail.destinationid"
class="customer-input"
:data-source="destinationDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '300px' }"
@select="destinationSelect"
@change="destinationChange"
@focus="destinationChange"
/>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="目的地"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="destination"
>
<a-input :allowClear="true" v-model="taskDetail.destination" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="件数"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="pkgs"
>
<a-input :allowClear="true" v-model="taskDetail.pkgs" type="number"/>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="包装"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="kindpkgs"
>
<auto-complete
:allowClear="true"
v-model="taskDetail.kindpkgs"
class="customer-input"
:data-source="kindpkgsDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
@select="kindpkgsSelect"
@change="kindpkgsChange"
@focus="kindpkgsChange"
/>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="毛重"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="kgs"
>
<div class="line-box">
<a-input :allowClear="true" v-model="taskDetail.kgs" /><span class="unit">KGS</span>
</div>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
class="from-label"
label="尺寸"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="cbm"
>
<div class="line-box">
<a-input :allowClear="true" v-model="taskDetail.cbm" /><span class="unit">CBM</span>
</div>
</a-form-model-item>
</a-col>
</a-row>
</a-col>
</a-row>
</a-form-model>
</div>
</x-card>
</div>
</div>
</template>
<script>
import { XCard } from '@/components'
import { AutoComplete } from 'ant-design-vue'
import {
GetBookingOrderInfo
} from '@/api/modular/main/TaskmanageList'
import {
GetPortloadlist,
GetPortlist,
GetPackage
} from '@/api/modular/main/BookingLedger'
export default {
name: 'TaskmanageDetail',
components: {
XCard,
AutoComplete
},
data() {
return {
taskPKId: this.$route.query.pkId,
taskDetail: {},
labelCol: {
xs: { span: 24 },
sm: { span: 8 },
md: { span: 10 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 15 },
md: { span: 13 }
},
YardlabelCol: {
xs: { span: 24 },
sm: { span: 1 },
md: { span: 4 }
},
YardwrapperCol: {
xs: { span: 24 },
sm: { span: 1 },
md: { span: 20 }
},
portloadData: [], //
transportData: [], //
portdischargeData: [], //
destinationData: [], //
kindpkgsData: [],
showShipper: '',
showConsignee: '',
showNotifier: ''
}
},
computed: {
portloadDataArr() {
if (this.portloadData) {
const arr = []
this.portloadData.map((item, index) => {
if (!arr.includes(item.enName)) {
arr.push(`(${item.ediCode})${item.enName}`)
// arr.push(item.enName)
}
})
return arr
} else {
return []
}
},
transportDataArr() {
if (this.transportData) {
const arr = []
this.transportData.map((item, index) => {
if (!arr.includes(item.enName)) {
arr.push(`(${item.ediCode})${item.enName}`)
// arr.push(item.enName)
}
})
return arr
} else {
return []
}
},
portdischargeDataArr() {
if (this.portdischargeData) {
const arr = []
this.portdischargeData.map((item, index) => {
if (!arr.includes(item.enName)) {
arr.push(`(${item.ediCode})${item.enName}`)
// arr.push(item.enName)
}
})
return arr
} else {
return []
}
},
destinationDataArr() {
if (this.destinationData) {
const arr = []
this.destinationData.map((item, index) => {
if (!arr.includes(item.enName)) {
arr.push(`(${item.ediCode})${item.enName}`)
// arr.push(item.enName)
}
})
return arr
} else {
return []
}
},
kindpkgsDataArr() {
if (this.kindpkgsData) {
const arr = []
this.kindpkgsData.map((item, index) => {
if (!arr.includes(item.name)) {
arr.push(item.name)
}
})
return arr
} else {
return []
}
},
},
created() {
},
mounted() {
const shipperScroll = document.getElementById('shipper-scroll')
if (shipperScroll) {
shipperScroll.addEventListener('scroll', () => {
document.getElementById('shipper-scroll-right').scrollTop = shipperScroll.scrollTop
})
}
const consigneeScroll = document.getElementById('consignee-scroll')
consigneeScroll.addEventListener('scroll', () => {
document.getElementById('consignee-scroll-right').scrollTop = consigneeScroll.scrollTop
})
const notifypartyScroll = document.getElementById('notifyparty-scroll')
notifypartyScroll.addEventListener('scroll', () => {
document.getElementById('notifyparty-scroll-right').scrollTop = notifypartyScroll.scrollTop
})
},
methods: {
getBookingOrderInfo () {
GetBookingOrderInfo({
taskPKId: this.taskPKId
}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
},
// ( / ) - start
getPortloadlist(name = '', type) {
GetPortloadlist({
KeyWord: name
})
.then(res => {
if (res.code === 200) {
this[`${type}Data`] = res.data
this.$forceUpdate()
}
})
.catch(err => {
console.log(err)
})
},
portloadSelect(value) {
const index = this.portloadDataArr.indexOf(value)
this.taskDetail.portloadid = this.portloadData[index].ediCode
this.taskDetail.portload = this.portloadData[index].enName
this.taskDetail.issueplace = this.portloadData[index].enName
if (!this.taskDetail.prepardat) {
this.taskDetail.prepardat = this.portloadData[index].enName
}
},
portloadChange(value) {
if (!value) {
this.taskDetail.portloadid = this.taskDetail.portloadid ? this.taskDetail.portloadid : ''
}
this.getPortloadlist(value, 'portload')
},
// ( / ) - end
// ( / / / ) - start
getPortlist(name = '', type) {
GetPortlist({
KeyWord: name
})
.then(res => {
if (res.code === 200) {
this[`${type}Data`] = res.data.splice(0, 50)
this.$forceUpdate()
}
})
.catch(err => {
console.log(err)
})
},
//
portdischargeSelect(value) {
const index = this.portdischargeDataArr.indexOf(value)
this.taskDetail.portdischargeid = this.portdischargeData[index].ediCode
this.taskDetail.portdischarge = this.portdischargeData[index].enName
if (!this.taskDetail.payableat) {
this.taskDetail.payableat = this.portdischargeData[index].enName
}
},
portdischargeChange(value) {
if (!value) {
this.taskDetail.portdischargeid = this.taskDetail.portdischargeid ? this.taskDetail.portdischargeid : ''
}
this.getPortlist(value, 'portdischarge')
},
//
destinationSelect(value) {
const index = this.destinationDataArr.indexOf(value)
this.taskDetail.destinationid = this.destinationData[index].ediCode
this.taskDetail.destination = this.destinationData[index].enName
},
destinationChange(value) {
if (!value) {
this.taskDetail.destinationid = this.taskDetail.destinationid ? this.taskDetail.destinationid : ''
}
this.getPortlist(value, 'destination')
},
//
transportSelect(value) {
const index = this.transportDataArr.indexOf(value)
this.taskDetail.transportid = this.transportData[index].ediCode
this.taskDetail.transport = this.transportData[index].enName
},
transportChange(value) {
if (!value) {
this.taskDetail.transportid = this.taskDetail.transportid ? this.taskDetail.transportid : ''
}
this.getPortlist(value, 'transport')
},
// ( / / / ) - end
// - start
getPackage(name = '') {
GetPackage({
KeyWord: name
})
.then(res => {
if (res.code === 200) {
this.kindpkgsData = res.data
this.$forceUpdate()
}
})
.catch(err => {
console.log(err)
})
},
kindpkgsSelect(value) {
this.taskDetail.kindpkgs = value
},
kindpkgsChange(value) {
if (!value) {
this.taskDetail.kindpkgs = this.taskDetail.kindpkgs ? this.taskDetail.kindpkgs : ''
}
this.getPackage(value)
},
// - end
textareaChange(e, type) {
this.taskDetail[type] = e.target.value
},
},
}
</script>
<style lang="less" scoped>
.task-basic-box{
display: flex;
width: 500px;
margin-top: 10px;
padding: 10px;
background: #fff;
margin-bottom: 10px;
.label{
flex: 1;
.title{
height: 50px;
line-height: 50px;
font-size: 16px;
font-weight: 600;
border-bottom: 1px solid #eee;
color:#333;
}
.msg{
height: 40px;
line-height: 40px;
font-size: 14px;
font-weight:500;
color: #666;
}
}
}
.line-box {
display: flex;
margin-top: 6px;
span.unit {
font-size: 12px;
color: #999;
display: inline-block;
text-align: center;
line-height: 28px;
padding-left: 5px;
}
}
.sender,
.consignee,
.notifier {
margin-bottom: 20px;
.top {
margin-bottom: 15px;
min-height: 32px;
line-height: 32px;
overflow: hidden;
display: flex;
.name {
display: inline-block;
font-size: 13px;
margin-right: 10px;
color: #666;
.iconfont {
margin-right: 4px;
font-weight: 600;
}
}
.save-btn {
height: 32px;
margin-left: 10px;
margin-right: 10px;
span{
margin-left: 4px !important;
}
}
.right {
float: right;
margin-top: 5px;
margin-right: 25px;
}
.customer-input{
flex: 1;
}
.btn {
width: 20px;
height: 20px;
display: inline-block;
// background: #c1e0ff;
color: @primary-color;
text-align: center;
line-height: 20px;
font-size: 12px;
margin-left: 4px;
cursor: pointer;
position: relative;
vertical-align: top;
margin-top: 0;
&::before {
content: '';
width: 100%;
height: 100%;
display: block;
position: absolute;
top: 0;
left: 0;
background: @primary-color;
opacity: 0.2;
z-index: 0;
}
}
.btn-circle {
border-radius: 50%;
width: 20px;
height: 20px;
display: inline-block;
// background: #c1e0ff;
color: @primary-color;
text-align: center;
line-height: 24px;
font-size: 12px;
margin-right: 4px;
cursor: pointer;
margin-top: 2px;
position: relative;
vertical-align: top;
margin-top: 0;
border-radius: 50%;
&::before {
content: '';
width: 100%;
height: 100%;
display: block;
position: absolute;
top: 0;
left: 0;
background: @primary-color;
opacity: 0.2;
z-index: 0;
border-radius: 50%;
}
}
}
.bottom {
display: flex;
.input-box {
margin-top: 10px;
flex: 1;
font-size: 12px;
line-height: 20px;
}
textarea{
line-height: 22px;
}
.line-count {
width: 24px;
padding-top: 3px;
height: 130px;
overflow: auto;
&::-webkit-scrollbar {
display: none;
}
// max-height: 192px;
// overflow-y: auto;
div {
text-align: right;
height: 22px;
line-height: 22px;
font-size: 12px;
color: #999;
}
}
}
}
</style>

@ -4,30 +4,37 @@
<a-col :md="5" :sm="24">
<x-card style="padding-bottom: 20px">
<div slot="content">
<div class="nav-title">
<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">
{{ item.name }}
</a-radio-button>
</a-radio-group>
</div>
<a-tabs v-model="activeNextKey" hide-add size="small" @change="changeNextLevel">
<a-tab-pane v-for="level in levelNext" :key="level.key" :tab="level.name" style="margin-right: 6px">
<a-tree show-line :default-expanded-keys="['0-0-0']" @select="onSelect">
<a-icon slot="switcherIcon" type="down" />
<a-tree-node key="0-0" title="我的任务">
<a-tree-node
v-for="(threeLevel, tindex) in levelTree"
:key="`0-0-${tindex}`"
:title="threeLevel.name"
:show-icon="false"
/>
</a-tree-node>
</a-tree>
</a-tab-pane>
</a-tabs>
<template v-if="levelLoading">
<div class="nav-loading">
<a-icon type="loading" /><span class="tip">加载中...</span>
</div>
</template>
<template v-else>
<div class="nav-title">
<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">
{{ item.name }}
</a-radio-button>
</a-radio-group>
</div>
<a-tabs v-model="activeNextKey" hide-add size="small" @change="changeNextLevel">
<a-tab-pane v-for="level in levelNext" :key="level.key" :tab="level.name" style="margin-right: 6px">
<a-tree show-line :default-expanded-keys="['0-0-0']" value="activeTreeKey" @select="onSelect">
<a-icon slot="switcherIcon" type="down" />
<a-tree-node key="0-0" title="我的任务">
<a-tree-node
v-for="(threeLevel, tindex) in levelTree"
:key="`0-0-${tindex}`"
:title="threeLevel.name"
:show-icon="false"
/>
</a-tree-node>
</a-tree>
</a-tab-pane>
</a-tabs>
</template>
<div class="nav-bottom">
<a-button type="link" class="icon" icon="reload" size="small">点击重新加载</a-button>
<a-button type="link" class="icon" :icon="levelreLoading ? 'loading' : 'reload'" size="small" @click="getCurrentTotalStat"></a-button>
</div>
</div>
</x-card>
@ -39,7 +46,7 @@
<a-form layout="inline" :form="form">
<a-row :gutter="48">
<a-col :md="5" :sm="24">
<a-form-item label="提单号" :labelCol="labelCol">
<a-form-item label="提单号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
placeholder="请输入提单号"
v-decorator="['mBlNo', { rules: [{ required: false, message: '请输入提单号' }] }]"
@ -47,15 +54,14 @@
</a-form-item>
</a-col>
<a-col :md="7" :sm="24">
<a-form-item label="开船日期" :labelCol="labelCol">
<a-form-item label="开船日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker format="YYYY-MM-DD" v-decorator="['etd', { rules: [{ required: false, message: '' }] }]"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="24">
<a-form-item label="任务来源" :labelCol="labelCol">
<a-form-item label="任务来源" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
default-value="邮件"
style="width: 120px"
:dropdownMatchSelectWidth="false"
v-decorator="['taskSource', { rules: [{ required: false, message: '请输入任务来源' }] }]"
>
<a-select-option
@ -68,36 +74,73 @@
</a-select>
</a-form-item>
</a-col>
<a-col :md="7" :sm="24">
<a-form-item label="任务日期" :labelCol="labelCol">
<a-range-picker format="YYYY-MM-DD" v-decorator="['taskDate', { rules: [{ required: false, message: '' }] }]"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="24">
<a-form-item label="任务类型" :labelCol="labelCol">
<a-select
default-value="下货纸"
style="width: 120px"
v-decorator="['taskType', { rules: [{ required: false, message: '请输入任务类型' }] }]"
>
<a-select-option v-for="(taskItem, tindex) in taskTypeList" :key="tindex" :value="taskItem.name">
{{ taskItem.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="接收人" :labelCol="labelCol">
<a-input
placeholder="请输入接收人"
v-decorator="['goodsCode', { rules: [{ required: false, message: '请输入接收人' }] }]"
/>
</a-form-item>
</a-col>
<a-col :md="12" :sm="24" :labelCol="{ span: 2, offset: 12 }">
<template v-if="advanced">
<a-col :md="6" :sm="24">
<a-form-item label="任务分类" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
:dropdownMatchSelectWidth="false"
v-decorator="['taskCategoryList', { rules: [{ required: false, message: '请输入任务分类' }] }]"
>
<a-select-option
v-for="(taskCategory, cindex) in taskCategoryList"
:key="cindex"
:value="taskCategory.name"
>
{{ taskCategory.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="5" :sm="24">
<a-form-item label="接收人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
placeholder="请输入接收人"
v-decorator="['goodsCode', { rules: [{ required: false, message: '请输入接收人' }] }]"
/>
</a-form-item>
</a-col>
<a-col :md="7" :sm="24">
<a-form-item label="任务日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker format="YYYY-MM-DD" v-decorator="['taskDate', { rules: [{ required: false, message: '' }] }]"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="24">
<a-form-item label="任务状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
:dropdownMatchSelectWidth="false"
v-decorator="['status', { rules: [{ required: false, message: '请输入任务状态' }] }]"
>
<a-select-option
v-for="(status, stindex) in statusList"
:key="stindex"
:value="status.code"
>
{{ status.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
<a-form-item label="任务类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
:dropdownMatchSelectWidth="false"
v-decorator="['taskType', { rules: [{ required: false, message: '请输入任务类型' }] }]"
>
<a-select-option v-for="(taskItem, tindex) in taskTypeList" :key="tindex" :value="taskItem.code">
{{ taskItem.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</template>
<a-col :md="(!advanced && 7) || 24" :sm="24" :labelCol="{ span: 2, offset: 12 }" :wrapperCol="wrapperCol">
<span class="table-page-search-submitButtons">
<a-button type="primary" @click="tableRefresh"></a-button>
<a-button style="margin-left: 8px" @click="tableReset"></a-button>
<a @click="toggleAdvanced" style="margin-left: 8px">
{{ advanced ? '收起' : '展开' }}
<a-icon :type="advanced ? 'up' : 'down'" />
</a>
</span>
</a-col>
</a-row>
@ -108,25 +151,121 @@
<div slot="content" class="table-page-search-wrapper" :style="{ marginTop: '-8px' }">
<vxe-toolbar>
<template #buttons>
<a-button class="list-btn" type="primary" icon="edit">取消</a-button>
<a-button class="list-btn" type="primary" icon="edit">完成</a-button>
<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-button class="list-btn" type="primary" icon="check">完成</a-button>
</a-popconfirm>
<template v-if="taskType === 'BC'">
<a-button class="list-btn" type="primary" icon="edit">批量下载</a-button>
<a-button class="list-btn" type="primary" icon="edit">重新比对</a-button>
<a-popconfirm
title="确定批量下载当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="downloadFun"
@cancel="cancelFun"
>
<a-button class="list-btn" icon="download">批量下载</a-button>
</a-popconfirm>
<a-popconfirm
title="确定重新比对当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="reComparisonFun"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-duibi"></i>重新比对</a-button>
</a-popconfirm>
</template>
<template v-if="taskType === 'DRAFT' || taskType === 'SEAWAY BILL' ">
<a-button class="list-btn" type="primary" icon="edit">批量转发</a-button>
<a-button class="list-btn" type="primary" icon="edit">批量下载</a-button>
<a-popconfirm
title="确定批量转发当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="SendEmailFun"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-31zhuanfa"></i>批量转发</a-button>
</a-popconfirm>
<a-popconfirm
title="确定批量下载当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="downloadFun"
@cancel="cancelFun"
>
<a-button class="list-btn" icon="download">批量下载</a-button>
</a-popconfirm>
</template>
<template v-if="taskType === 'DRAFT'">
<a-button class="list-btn" type="primary" icon="edit">页数计算</a-button>
<a-popconfirm
title="确定计算当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="laraPaperCalc"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-52"></i>页数计算</a-button>
</a-popconfirm>
</template>
<template v-if="taskType === 'ORIGINAL_DOWN'">
<a-button class="list-btn" type="primary" icon="edit">COPY打印</a-button>
<a-button class="list-btn" type="primary" icon="edit">COPY下载</a-button>
<a-button class="list-btn" type="primary" icon="edit">正本下载</a-button>
<a-button class="list-btn" type="primary" icon="edit">LARA登记</a-button>
<a-button class="list-btn" type="primary" icon="edit">LARA记录</a-button>
<a-popconfirm
title="确定COPY打印当前选择项"
ok-text="是"
cancel-text="否"
@confirm="copyPrintFun"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-weibiaoti--"></i>COPY打印</a-button>
</a-popconfirm>
<a-popconfirm
title="确定COPY打印当前选择项"
ok-text="是"
cancel-text="否"
@confirm="copyDownloadFun"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-xiazai-wenjianxiazai-13"></i>COPY下载</a-button>
</a-popconfirm>
<a-popconfirm
title="确定正本下载当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="printBatchFun"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-xiazai"></i>正本下载</a-button>
</a-popconfirm>
<a-popconfirm
title="确定登记当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="laraPaperRegistFun"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-dengjizongshu"></i>LARA登记</a-button>
</a-popconfirm>
<a-popconfirm
title="确定记录当前选择项?"
ok-text="是"
cancel-text="否"
@confirm="laraRecordFun"
@cancel="cancelFun"
>
<a-button class="list-btn"><i class="iconfont icon-touzijilu"></i>LARA记录</a-button>
</a-popconfirm>
</template>
</template>
<template #tools>
@ -147,21 +286,90 @@
<template #status="{ row }">
<span>{{ selectStatus(row.status) }}</span>
</template>
<template #taskTitle="{ row }">
<span class="task-tit" @click="changePage(row)">{{ row.taskTitle }}</span>
</template>
<template #operate="{ row }">
<vxe-button type="text" icon="vxe-icon-edit">预览附件</vxe-button>
<a-button type="text" icon="vxe-icon-edit">预览附件</a-button>
</template>
</vxe-grid>
</div>
</x-card>
</a-col>
</a-row>
<a-modal
title="转发"
:width="500"
:visible="sendEmailVisible"
:confirmLoading="sendEmailModelconfirm"
:maskClosable="false"
@ok="handleSendEmail"
@cancel="handleSendEmailCancel"
>
<a-form-model ref="sendForm" :model="sendEmailForm" :rules="sendFormRules">
<a-form-model-item
label="发送邮箱"
prop="email"
:labelCol="{
xs: { span: 24 },
sm: { span: 4 },
md: { span: 5 }
}"
:wrapperCol="wrapperCol"
>
<a-input
placeholder="请输入发送邮箱"
v-model="sendEmailForm.email"
/>
</a-form-model-item>
</a-form-model>
</a-modal>
<!-- 页数计算 -->
<a-modal
title="页数计算"
:width="600"
:visible="paperCalcVisible"
:maskClosable="false"
:align="'center'"
:labelCol="{
xs: { span: 24 },
sm: { span: 4 },
md: { span: 5 }
}"
:wrapperCol="wrapperCol"
@cancel="handlePaperCalcCancel"
>
<div class="paper-list">
<a-table :columns="paperCalcColumns" :data-source="paperCalcRes"></a-table>
<div class="extras" v-if="paperCalcExtras">
<span>附加数据</span>
<span>{{ paperCalcExtras }}</span>
</div>
</div>
<template slot="footer">
<a-button @click="handlePaperCalcCancel"></a-button>
</template>
</a-modal>
</div>
</template>
<script>
import { XCard } from '@/components'
import initData from './modules/initData'
import { GetTaskManagePage, GetCurrentTotalStat, GetParaInfo } from '@/api/modular/main/TaskmanageList'
import {
GetTaskManagePage,
GetCurrentTotalStat,
GetParaInfo,
CancelTask,
CompleteTask,
DownloadTaskAttach,
SendTelexEmail,
LaraPaperCalc,
PrintBatch,
DownloadAttach,
DownloadOriginalTask,
LaraPaperRegist
} from '@/api/modular/main/TaskmanageList'
export default {
name: 'TaskmanageList',
components: {
@ -169,29 +377,17 @@ export default {
},
data() {
return {
levelTop: [
{ name: '异常', key: '1' },
{ name: '个人', key: '2' },
{ name: '公共', key: '3' }
],
activeTopKey: '1',
levelTop: [],
activeTopKey: '',
levelNextAll: [],
levelNext: [
{ name: '已处理', key: '1' },
{ name: '已完成', key: '2' },
{ name: '已取消', key: '3' },
{ name: '已挂起', key: '4' }
],
activeNextKey: '1',
levelNext: [],
activeNextKey: '',
levelTreeAll: [],
levelTree: [
{ name: 'BC', key: '1' },
{ name: '下货纸', key: '2' },
{ name: '航次账单 ', key: '3' },
{ name: '单票账单', key: '4' },
{ name: '单票账单', key: '5' },
{ name: '单票账单', key: '6' }
],
levelTree: [],
activeTreeKey: ['0-0-0'],
levelLoading: false,
levelreLoading: false,
advanced: false,
//
form: this.$form.createForm(this),
labelCol: {
@ -199,6 +395,11 @@ export default {
sm: { span: 8 },
md: { span: 9 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 15 },
md: { span: 15 }
},
gridOptions: {
border: false,
resizable: true,
@ -222,39 +423,88 @@ export default {
statusList: [],
taskTypeList: [],
sourceList: [],
taskType: ''
taskCategoryList: [],
taskType: '',
// ==== ====
//
sendEmailForm: {
email: ''
},
sendEmailPkIds: '',
sendEmailVisible: false,
sendEmailModelconfirm: false,
sendFormRules: {
email: [{ required: true, message: '请输入邮箱', trigger: 'blur' }, { type: 'email', message: '请输入有效的邮箱' }]
},
//
paperCalcVisible: false,
paperCalcRes: [],
paperCalcColumns: [
{
title: '主单号',
dataIndex: 'mblNo',
key: 'mblNo',
width: 140,
align: 'center'
},
{
title: 'DRAFT页数',
dataIndex: 'draftNum',
key: 'draftNum',
width: 70,
align: 'center'
},
{
title: '提单用纸数',
dataIndex: 'paperNum',
key: 'paperNum',
width: 70,
align: 'center'
}
],
paperCalcExtras: ''
}
},
created() {
this.levelLoading = true
this.getCurrentTotalStat()
this.getParaInfo('STATUS')
this.getParaInfo('TASK_TYPE')
this.getParaInfo('SOURCE')
this.getList()
this.getParaInfo('CATEGORY')
},
mounted() {},
methods: {
onSelect(selectedKeys, info) {
console.log('selected', selectedKeys, info)
if (selectedKeys.length === 0) {
this.init()
return false
}
const indexArr = selectedKeys[0].split('-')
if (indexArr.length > 2) {
const key = this.levelTree[indexArr[2]].key
const key = this.levelTree[indexArr[2]].actionKey
const action = key.split('#')
console.log('选择', indexArr[2], key)
this.taskType = key
this.taskType = action[2]
this.init({
taskType: key
taskCategory: action[0],
status: action[1],
taskType: action[2]
})
} else {
this.init()
// this.init()
}
},
changeTopLevel () {
this.levelNext = this.selectNextLevel(this.levelNextAll, this.activeTopKey)
this.activeNextKey = this.levelNext[0].key
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey)
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey, this.activeTopKey)
console.log('切换主菜单- 二级菜单', this.levelNext)
console.log('切换主菜单- 三级菜单', this.levelTree)
},
changeNextLevel () {
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey)
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey, this.activeTopKey)
},
tableRefresh() {
const {
@ -309,16 +559,23 @@ export default {
//
getParaInfo(type) {
GetParaInfo({
ParaType: type,
ParaType: type
})
.then((res) => {
if (type === 'STATUS') {
this.statusList = res.data.rows
} else if (type === 'TASK_TYPE') {
this.taskTypeList = res.data.rows
} else if (type === 'SOURCE') {
this.sourceList = res.data.rows
console.log('sourceList', this.sourceList)
if (res.success) {
if (type === 'STATUS') {
this.statusList = res.data.rows
} else if (type === 'TASK_TYPE') {
this.taskTypeList = res.data.rows
} else if (type === 'SOURCE') {
this.sourceList = res.data.rows
console.log('sourceList', this.sourceList)
} else if (type === 'CATEGORY') {
this.taskCategoryList = res.data.rows
console.log('taskCategoryList', this.taskCategoryList)
}
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
@ -326,19 +583,26 @@ export default {
})
},
getCurrentTotalStat() {
this.levelreLoading = true
GetCurrentTotalStat({
isReCalc: false,
isReCalc: false
})
.then((res) => {
this.levelTop = res.data.levelTop
this.activeTopKey = this.levelTop[0].key
this.levelNextAll = res.data.levelNext
this.levelNext = this.selectNextLevel(this.levelNextAll, this.activeTopKey)
this.activeNextKey = this.levelNext[0].key
this.levelTreeAll = res.data.levelTree
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey)
this.levelLoading = false
this.levelreLoading = false
if (res.success) {
this.levelTop = res.data.levelTop
this.activeTopKey = this.levelTop[0].key
this.levelNextAll = res.data.levelNext
this.levelNext = this.selectNextLevel(this.levelNextAll, this.activeTopKey)
this.activeNextKey = this.levelNext[0].key
this.levelTreeAll = res.data.levelTree
this.levelTree = this.selectTreeLevel(this.levelTreeAll, this.activeNextKey, this.activeTopKey)
this.activeTreeKey = []
this.init()
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
console.log(err)
@ -353,10 +617,10 @@ export default {
})
return arr
},
selectTreeLevel (list, key) {
selectTreeLevel (list, key, topKey) {
const arr = []
list.map((item, index) => {
if (item.nextKey === key) {
if (item.nextKey === key && item.topKey === topKey) {
arr.push(item)
}
})
@ -404,18 +668,24 @@ export default {
taskType: queryParam.taskType,
taskSource: queryParam.taskSource,
taskRecvName: queryParam.taskRecvName,
taskCategory: queryParam.taskCategory,
status: queryParam.status,
pageNo: currentPage,
pageSize: pageSize
})
.then((res) => {
const _data = res.data.items.map((item, index) => {
item.row_id = (currentPage - 1) * pageSize + index
return item
})
this.$set(this.gridOptions.pagerConfig, 'total', res.data.totalCount)
this.$set(this.gridOptions, 'data', JSON.parse(JSON.stringify(_data)))
this.$set(this.gridOptions, 'loading', false)
this.$forceUpdate()
if (res.success) {
const _data = res.data.items.map((item, index) => {
item.row_id = (currentPage - 1) * pageSize + index
return item
})
this.$set(this.gridOptions.pagerConfig, 'total', res.data.totalCount)
this.$set(this.gridOptions, 'data', JSON.parse(JSON.stringify(_data)))
this.$set(this.gridOptions, 'loading', false)
this.$forceUpdate()
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
console.log(err)
@ -450,6 +720,276 @@ export default {
})
return str
},
toggleAdvanced () {
this.advanced = !this.advanced
},
changePage (data) {
//
console.log('跳转页面', data)
this.$router.push({ name: 'TaskmanageDetail', query: { taskPKId: data.pkId } })
},
cancelFun () {
},
//
removeFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
console.log('当前选中', pkIdArr)
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
CancelTask({
PKIds: pkIdArr
}).then((res) => {
if (res.success) {
this.$message.success('取消任务成功')
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
//
submitFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
console.log('当前选中', pkIdArr)
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
CompleteTask({
PKIds: pkIdArr
}).then((res) => {
if (res.success) {
this.$message.success('已完成任务')
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
//
downloadFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
console.log('当前选中', pkIdArr)
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
pkIdArr.map(item => {
this.DownloadTaskAttach(item)
})
},
DownloadTaskAttach (id) {
DownloadTaskAttach({
taskPKId: id
}).then((res) => {
if (res.success) {
debugger
//
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
//
reComparisonFun () {
//
},
//
SendEmailFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
console.log('当前选中', pkIdArr)
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
this.sendEmailPkIds = pkIdArr
this.sendEmailVisible = true
},
handleSendEmail () {
this.$refs.sendForm.validate(valid => {
if (valid) {
console.log(this.sendEmailForm.email)
SendTelexEmail({
taskPKId: this.sendEmailPkIds[0],
toMail: this.sendEmailForm.email
}).then((res) => {
if (res.success) {
this.$message.success('转发成功')
this.handleSendEmailCancel()
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
} else {
return false;
}
});
},
handleSendEmailCancel () {
this.sendEmailPkIds = []
this.sendEmailVisible = false
this.$refs.sendForm.resetFields();
},
//
laraPaperCalc () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
let query = ''
pkIdArr.map((item, index) => {
query += `PKIds=${item}&`
})
query = query.substring(0, query.length - 1)
console.log(query)
debugger
LaraPaperCalc(query).then((res) => {
if (res.success) {
this.paperCalcRes = res.data
this.paperCalcExtras = res.extras || ''
this.paperCalcVisible = true
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
handlePaperCalcCancel () {
this.paperCalcVisible = false
},
// COPY
copyPrintFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
// let query = ''
// pkIdArr.map((item, index) => {
// query += `PKIds=${item}&`
// })
// query = query.substring(0, query.length - 1)
// console.log(query)
PrintBatch({
PKIds: pkIdArr
}).then((res) => {
if (res.success) {
debugger
//
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
// COPY
copyDownloadFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
// let query = ''
// pkIdArr.map((item, index) => {
// query += `PKIds=${item}&`
// })
// query = query.substring(0, query.length - 1)
// console.log(query)
DownloadAttach({
PKIds: pkIdArr
}).then((res) => {
if (res.success) {
debugger
// 404
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
//
printBatchFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
DownloadOriginalTask({
PKIds: pkIdArr
}).then((res) => {
if (res.success) {
debugger
//
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
// LARA
laraPaperRegistFun () {
const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => {
return item.pkId
})
if (pkIdArr.length === 0) {
this.$message.error('请选择数据')
return false
}
LaraPaperRegist({
PKIds: pkIdArr
}).then((res) => {
if (res.success) {
this.$message.success('登记成功')
} else {
this.$message.error(res.message)
}
}).catch((err) => {
console.log(err)
})
},
// LARA
laraRecordFun () {
},
},
}
</script>
@ -485,5 +1025,21 @@ export default {
}
.list-btn{
margin-right: 10px;
.iconfont{
margin-right: 8px;
}
}
.task-tit{
color: @primary-color;
cursor: pointer;
}
.nav-loading{
width:100%;
height: 100px;
line-height: 100px;
text-align: center;
.tip{
margin-left: 10px;
}
}
</style>

@ -1,10 +1,10 @@
export default {
columns: [
{ type: 'seq', width: 60, noDraggable: true },
{ type: 'checkbox', width: 60, noDraggable: true },
{ field: 'taskType', width: 150, title: '任务类型', showHeaderOverflow: true, sortable: true },
{ field: 'taskSource', width: 150, title: '任务来源', showHeaderOverflow: true, sortable: true },
{ field: 'status', width: 150, title: '任务状态', showHeaderOverflow: true, sortable: true, slots: { default: 'status' } },
{ field: 'taskTitle', width: 300, title: '任务标题', showHeaderOverflow: true, sortable: true },
{ field: 'taskTitle', width: 300, title: '任务标题', showHeaderOverflow: true, sortable: true, slots: { default: 'taskTitle' } },
{ field: 'createdUserName', width: 150, title: '接收人', showHeaderOverflow: true, sortable: true },
{ field: 'createdTime', width: 180, title: '接收时间', showHeaderOverflow: true, sortable: true },
{ field: 'mBlNo', width: 200, title: '提单号', showHeaderOverflow: true, sortable: true },

Loading…
Cancel
Save