Commit c0213666 authored by Smile's avatar Smile

需求 127后台-集运-包裹列表

parent cc28e43b
......@@ -7,6 +7,13 @@ export function getMyProcessInstancePage(query) {
params: query
})
}
export function getProcessInstancePage(query) {
return request({
url: '/bpm/process-instance/page',
method: 'get',
params: query
})
}
export function createProcessInstance(data) {
return request({
......
......@@ -57,15 +57,92 @@
@showWarehouseLogs="showWarehouseLogs"
></detail-cons-prod>
</el-tab-pane>
<!-- <el-tab-pane :label="$t('订单动态')" name="second">-->
<!-- <el-timeline v-if="order.orderTimeVOList && order.orderTimeVOList.length" :reverse="true">-->
<!-- <el-timeline-item v-for="(activity, index) in order.orderTimeVOList" :key="index" :timestamp="parseTime(activity.businessTime)">-->
<!-- {{ $l(activity, "title") }}-->
<!-- <div :class="{ red: !!activity.mark }">{{ $l(activity, "remarks") }}</div>-->
<!-- </el-timeline-item>-->
<!-- </el-timeline>-->
<!-- <el-result v-else icon="info " :title="$t('暂无数据')" :subTitle="$t('暂无订单动态数据')" />-->
<!-- </el-tab-pane>-->
<el-tab-pane :label="$t('动态')" name="second">
<el-timeline v-if="cons.trackingRecord && cons.trackingRecord.length" :reverse="true">
<el-timeline-item v-for="(activity, index) in cons.trackingRecord" :key="index" :color="activity.color" v-show="activity.isShow!==1" :timestamp="parseTime(activity.trackingTime)">
<dict-tag :type="DICT_TYPE.CONS_BUSINESS_NODE" :value="$l(activity, 'businessNode')" /><el-button v-if="activity.businessNode===1" @click="showSignImage" style="margin-left: 5px" size="small" type="primary">签收图片</el-button>
<div :class="{ red: !!activity.businessDescription }">{{ $l(activity, "businessDescription") }}</div>
</el-timeline-item>
</el-timeline>
<el-result v-else icon="info " :title="$t('暂无数据')" :subTitle="$t('暂无订单动态数据')" />
</el-tab-pane>
<el-tab-pane :label="$t('费用明细')" name="three">
<el-table :data="cons.feeList">
<el-table-column :label="$t('费用类型')">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" />
</template>
</el-table-column>
<el-table-column :label="$t('金额')">
<template slot-scope="{ row }">
{{ row.fee }}
</template>
</el-table-column>
<el-table-column :label="$t('货币类型')">
<template slot-scope="{ row }">
{{ currencyMap[row.feeCurrency] }}
</template>
</el-table-column>
<el-table-column :label="$t('付款类型')">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.PAYMENT_TYPE" :value="row.payType" />
</template>
</el-table-column>
<el-table-column :label="$t('备注')">
<template slot-scope="{ row }">
{{ row.remarks }}
</template>
</el-table-column>
<el-table-column :label="$t('转运订单号')">
<template slot-scope="scope">
<a href="javascript:void(0);" @click="jumpOrderDetail()">{{ cons.orderNo }}</a>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane :label="$t('日志')" name="four">
</el-tab-pane>
<el-tab-pane :label="$t('审批列表')" name="five">
<el-table :data="taskList">
<el-table-column :label="$t('流程编号')" align="center" prop="id" width="320"/>
<el-table-column :label="$t('流程名称')" align="center" prop="name"/>
<el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/>
<el-table-column :label="$t('流程分类')" align="center" prop="category">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/>
</template>
</el-table-column>
<el-table-column :label="$t('当前审批节点')" align="center" prop="tasks">
<template slot-scope="scope">
<el-button v-for="(task, taskIndex) in scope.row.tasks" type="text" @click="handleFormDetail(task.id)"
:key="taskIndex">
<span>{{ task.name }}</span>
</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('状态')" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column :label="$t('结果')" align="center" prop="result">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/>
</template>
</el-table-column>
<el-table-column :label="$t('提交时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime) }}</span>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<!-- <el-tab-pane :label="$t('操作日志')" name="five" v-if="checkPermi(['ecw:order:logs'])">-->
<!-- <el-table :data="logs" v-loading="logsLoading">-->
<!-- <el-table-column :label="$t('时间')" width="150">-->
......@@ -103,31 +180,46 @@
<!-- </el-tab-pane>-->
</el-tabs>
</el-card>
<pack-detail ></pack-detail>
<el-dialog :title="$t('签收图片')" :visible.sync="mvShow" :before-close="closeMv" :close-on-click-modal="false">
<image-and-video-upload readonly :fileSize="50" :isShowTip="true" :value="cons.mediaUrl" ></image-and-video-upload>
</el-dialog>
<!-- <pack-detail ></pack-detail>-->
</div>
</template>
<script>
import {getCons} from "@/api/ecw/cons";
import { getDictDatas, DICT_TYPE, getDictData } from "@/utils/dict"
import CheckDetailProd from "@/views/ecw/order/components/CheckDetailProd.vue";
import DetailConsProd from "@/views/ecw/cons/DetailConsProd.vue";
import PackHistory from "@/views/ecw/order/components/PackHistory.vue";
import PackDetail from "@/views/ecw/cons/PackDetail.vue";
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index.vue";
import Template from "@/views/cms/template/index.vue";
import {getCurrencyList} from "@/api/ecw/currency";
import {getCopyTaskPage} from "@/api/bpm/task";
import {getProcessInstancePage} from "@/api/bpm/processInstance";
export default {
name: "EcwConsDetail",
props: {},
components: {PackDetail, PackHistory, DetailConsProd,CheckDetailProd},
components: {Template, ImageAndVideoUpload, DetailConsProd},
data() {
return {
cons:null,
type: 1,
activeName: "first",
mvShow:false,
taskList: [],
taskTotal: 0,
}
},
watch: {},
computed: {
currencyMap() {
let map = {}
this.currencyList.forEach((item) => {
map[item.id] = this.$l(item, "title")
})
return map
},
getDictData() {
return (type, value) => getDictData(type, value) || {}
},
......@@ -136,12 +228,20 @@ export default {
}
},
created() {
getCurrencyList().then((res) => (this.currencyList = res.data))
if (this.$route.query.consId) {
this.consId = this.$route.query.consId
this.getCons()
}
},
methods: {
/* 跳转订单详情 */
jumpOrderDetail() {
this.$router.push({
path: "/order/detail",
query: { orderId: this.cons.orderId },
});
},
// 显示入仓记录
showWarehouseLogs(row, type) {
this.type = type
......@@ -150,9 +250,25 @@ export default {
getCons() {
getCons(this.consId).then(res => {
this.cons = res.data
console.log(this.cons)
if (this.cons.trackingRecord && this.cons.trackingRecord.length){
this.cons.trackingRecord[this.cons.trackingRecord.length-1].color='#0bbd87';
}
this.getTaskList();
})
},
getTaskList(){
getProcessInstancePage({businessNo: this.cons.consNum}).then(response => {
this.taskList = response.data.list;
this.taskTotal = response.data.total;
this.loading = false;
});
},
closeMv(){
this.mvShow = false
},
showSignImage(){
this.mvShow = true
}
}
}
</script>
......
......@@ -136,20 +136,27 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"/>
</template>
</el-table-column>
<el-table-column :label="$t('在仓时长')" align="center" prop="inWarehouseDays"></el-table-column>
<el-table-column :label="$t('动态')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CONS_BUSINESS_NODE" :value="scope.row.businessNode"/>
</template>
</el-table-column>
<el-table-column :label="$t('最新跟进状态')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_CONS_FOLLOWUP_STATUS" :value="scope.row.followStatus"/>
</template>
</el-table-column>
<el-table-column label="最新跟进时间" align="center">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.trackingTime) }}</span>
<span>{{ parseTime(scope.row.followTime) }}</span>
</template>
</el-table-column>
<el-table-column label="最新跟进备注" align="center" prop="followContent"/>
<el-table-column label="箱数" align="center" prop="sumQuantity"/>
<el-table-column label="填单商品" align="center">
<template slot-scope="scope">
<span v-html="getGoodsName(scope.row.consItemList)"></span>
<span v-html="getGoodsName(scope.row.consItemVOList)"></span>
</template>
</el-table-column>
<el-table-column label="验货数据" align="center">
......@@ -193,7 +200,7 @@
</el-table-column>
<el-table-column :label="$t('验货')" align="center">
<template slot-scope="scope">
<template v-if="scope.row.needInspect==='0'">
<template v-if="scope.row.needInspect==='0'||scope.row.needInspect===null">
{{ $t('未申请') }}
</template>
<template v-else>
......@@ -233,58 +240,66 @@
<el-dropdown>
<el-button type="text">{{ $t("操作") }}</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="handleUpdate(scope.row)">修改
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="handleSign(scope.row)">签收
<el-dropdown-item @click.native="handleUpdate(scope.row)">修改
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-delete" @click.native="handleDelete(scope.row)"
v-hasPermi="['ecw:cons:delete']">删除
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="transmutation(scope.row)">{{ $t('转异') }}
<el-dropdown-item @click.native="handleInspect(scope.row)">
{{ $t('验货') }}
</el-dropdown-item>
<el-dropdown-item @click.native="transmutation(scope.row)">{{ $t('转异') }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="specialNeedsCons(scope.row)">{{ $t('特需') }}
<el-dropdown-item @click.native="specialNeedsCons(scope.row)">{{ $t('特需') }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="specialNeedsConsLook(scope.row)">
<el-dropdown-item @click.native="specialNeedsConsLook(scope.row)">
{{ $t('特需查看') }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="feeApplication(scope.row)">
<el-dropdown-item @click.native="feeApplication(scope.row)">
{{ $t('费用申请') }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="consFollowup(scope.row)">{{ $t('跟进') }}
<el-dropdown-item @click.native="consFollowup(scope.row)">{{ $t('跟进') }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit" @click.native="exceptionHandling(scope.row)">{{$t('处理异常')}}</el-dropdown-item>
<!-- 退仓 -->
<el-dropdown-item size="mini" type="text" icon="el-icon-edit"
<el-dropdown-item @click.native="exceptionHandling(scope.row)">{{$t('处理异常')}}</el-dropdown-item>
<el-dropdown-item
@click.native="
show = true
showExit = true
consId = scope.row.id
"
v-hasPermi="['ecw:order:warehouse_exit']"
>{{ $t("退仓") }}
>{{ $t("撤出包裹") }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit"
<el-dropdown-item
@click.native="
showReturnWarehouse = true
showAdd = true
consId = scope.row.id
"
v-hasPermi="['ecw:order:warehouse_exit']"
>{{ $t("处理退仓") }}
>{{ $t("追加包裹") }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit"
@click.native="
showExit = true
</el-dropdown-menu>
</el-dropdown>
<el-dropdown>
<el-button type="text">{{ $t("仓库") }}</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="handleSign(scope.row)">签收
</el-dropdown-item>
<!-- 退仓 -->
<el-dropdown-item
@click.native="
show = true
consId = scope.row.id
"
v-hasPermi="['ecw:order:warehouse_exit']"
>{{ $t("撤出包裹") }}
v-hasPermi="['ecw:order:warehouse_exit']"
>{{ $t("退仓") }}
</el-dropdown-item>
<el-dropdown-item size="mini" type="text" icon="el-icon-edit"
@click.native="
showAdd = true
<el-dropdown-item
@click.native="
showReturnWarehouse = true
consId = scope.row.id
"
v-hasPermi="['ecw:order:warehouse_exit']"
>{{ $t("追加包裹") }}
v-hasPermi="['ecw:order:warehouse_exit']"
>{{ $t("处理退仓") }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
......@@ -295,8 +310,13 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.row"
@pagination="getList"/>
<el-dialog :title="inspectTitle" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="inspectTitle" :visible.sync="openInspect" width="500px" append-to-body>
<div style="margin-bottom: 5px">{{ $t('备注:') }}</div>
<el-input v-model="this.inspectRemark" type="textarea" :rows="3" placeholder="请输入"/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleInspectSubmit">确 定</el-button>
<el-button @click="openInspect = false">取 消</el-button>
</div>
</el-dialog>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
......@@ -417,10 +437,12 @@ import ConsWithdrawalDeal from "@/views/ecw/cons/consWithdrawalDeal.vue";
import {DICT_TYPE} from "@/utils/dict";
import {arrryToKeyedObjectBy} from "@/utils";
import Selector from "@/components/Selector/index.vue";
import Label from "@/views/cms/label/index.vue";
export default {
name: "Cons",
components: {
Label,
Selector,
ConsWithdrawal,
ConsWithdrawalExit,
......@@ -468,6 +490,8 @@ export default {
},
consIds: [],
inspectTitle:null,
inspectRemark:null,
openInspect:false,
consList: [],
dateRangeWatEtime: [],
warehouseList: [],
......@@ -600,7 +624,7 @@ export default {
obj[field] = obj[field].replace(/\s+/g, "")
},
getGoodsName(val) {
if (!val || val.length === 0) {
if (val==null || val.length === 0) {
return null
} else {
return val.map((item, index) => `${index + 1}.${item.prodName}*${item.quantity}`).join('<br>');
......@@ -787,6 +811,12 @@ export default {
}
});
},
/** 修改按钮操作 */
handleInspect(row) {
const id = row.id;
this.inspectTitle=row.consNum+"-"+row.customerNumber+"-"+this.$t("包裹详情")
this.openInspect=true
},
/** 签收按钮操作 */
handleSign(row) {
debugger
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment