Commit d2886449 authored by yujinyao's avatar yujinyao

en_US.json文件冲突

parents f70a8bc1 1f2b8f6b
zall-sdk-javascript-master/
\ No newline at end of file
{
"printWidth": 800,
"semi": false,
"psingleQuote": true,
"trailingComma": "none"
}
\ No newline at end of file
import request from '@/utils/request' import request from "@/utils/request"
// 获得控货分页 // 获得控货分页
export function getCargoControlOrderPage(params){ export function getCargoControlOrderPage(params) {
return request({ return request({
url:'ecw/order-cargo-control/cargo/control/order', url: "ecw/order-cargo-control/cargo/control/order",
method:'get', method: "get",
params params
}) })
} }
export function getWarningCargoControlOrderPage(params){ export function getWarningCargoControlOrderPage(params) {
return request({ return request({
url:'ecw/order-cargo-control/warning/cargo/control/order', url: "ecw/order-cargo-control/warning/cargo/control/order",
method:'get', method: "get",
params params
}) })
} }
// 发送手机验证码 // 发送手机验证码
export function sendSmsCode(data){ export function sendSmsCode(data) {
return request({ return request({
url: '/ecw/order-cargo-control/send-sms-code', url: "/ecw/order-cargo-control/send-sms-code",
method: 'post', method: "post",
data data
}) })
} }
// 创建订单控货人信息 // 创建订单控货人信息
export function create(data){ export function create(data) {
return request({ return request({
url: '/ecw/order-cargo-control/create', url: "/ecw/order-cargo-control/create",
method: 'post', method: "post",
data data
}) })
} }
// 创建订单控货人放货记录 // 创建订单控货人放货记录
export function createPick(data){ export function createPick(data) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/create', url: "/ecw/order-cargo-control-pick/create",
method: 'post', method: "post",
data data
}) })
} }
//获得控货订单放货编辑详情 //获得控货订单放货编辑详情
export function getReleaseInfo(orderId){ export function getReleaseInfo(orderId) {
return request({ return request({
url:'/ecw/order-cargo-control/release/info/' + orderId, url: "/ecw/order-cargo-control/release/info/" + orderId,
method:'get' method: "get"
}) })
} }
// 获得控货订单放货详情 // 获得控货订单放货详情
export function getPickRleaseInfo(orderId){ export function getPickRleaseInfo(orderId) {
return request({ return request({
url:'/ecw/order-cargo-control-pick/release/info/' + orderId, url: "/ecw/order-cargo-control-pick/release/info/" + orderId,
method:'get' method: "get"
}) })
} }
// 放货修改与反复核申请 // 放货修改与反复核申请
export function updateApply(data){ export function updateApply(data) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/update/apply', url: "/ecw/order-cargo-control-pick/update/apply",
method: 'put', method: "put",
data data
}) })
} }
// 复核(放货复核) // 复核(放货复核)
export function review(id){ export function review(id) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/review/' + id, url: "/ecw/order-cargo-control-pick/review/" + id,
method: 'put' method: "put"
}) })
} }
// 取消放货 // 取消放货
export function cancel(id){ export function cancel(id) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/cancel/' + id, url: "/ecw/order-cargo-control-pick/cancel/" + id,
method: 'put' method: "put"
}) })
} }
// 取消审批 // 取消审批
export function cancelApproval(approvalId, params){ export function cancelApproval(approvalId, params) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/cancel/approval/' + approvalId, url: "/ecw/order-cargo-control-pick/cancel/approval/" + approvalId,
method: 'get', method: "get",
params params
}) })
} }
// 订单复核 // 订单复核
export function orderReview(orderId){ export function orderReview(orderId) {
return request({ return request({
url: '/ecw/order-cargo-control/review/' + orderId, url: "/ecw/order-cargo-control/review/" + orderId,
method: 'put' method: "put"
}) })
} }
// 根据订单id批量复合订单控货人放货 // 根据订单id批量复合订单控货人放货
export function batchReview(data){ export function batchReview(data) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/review/', url: "/ecw/order-cargo-control-pick/review/",
method: 'put', method: "put",
headers: { headers: {
'Content-Type': 'application/x-www-form-urlencoded' "Content-Type": "application/x-www-form-urlencoded"
}, },
data data
}) })
} }
// 获得可调货的控货订单列表 // 获得可调货的控货订单列表
export function seasoningCondimentsSelect(params){ export function seasoningCondimentsSelect(params) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/seasoning-condiments/cargo-control/order/select', url: "/ecw/order-cargo-control-pick/seasoning-condiments/cargo-control/order/select",
method: 'get', method: "get",
params params
}) })
} }
// 根据放货ID查询控货订单放货修改审核详情 // 根据放货ID查询控货订单放货修改审核详情
export function getPickUpdateInfo(id){ export function getPickUpdateInfo(id) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/update/info/' + id, url: "/ecw/order-cargo-control-pick/update/info/" + id,
method: 'get' method: "get"
}) })
} }
// 获得控货订单放货修改申请详情 {approveId: 1} // 获得控货订单放货修改申请详情 {approveId: 1}
export function getPickUpdateApproveInfo(params){ export function getPickUpdateApproveInfo(params) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/update/info', url: "/ecw/order-cargo-control-pick/update/info",
method: 'get', method: "get",
params params
}) })
} }
export function getCondimentsIno(cargoControlPickId){ export function getCondimentsIno(cargoControlPickId) {
return request({ return request({
url: '/ecw/order-cargo-control-pick/seasoning/condiments/info/' + cargoControlPickId, url: "/ecw/order-cargo-control-pick/seasoning/condiments/info/" + cargoControlPickId,
method: 'get' method: "get"
}) })
} }
// 参数搜索导出控货订单列表 // 参数搜索导出控货订单列表
export function exportCargoControl(params){ export function exportCargoControl(params) {
return request({ return request({
url: '/ecw/order/export/cargo/control/search', url: "/ecw/order/export/cargo/control/search",
method: 'get', method: "get",
responseType: 'arraybuffer', responseType: "arraybuffer",
params params
}) })
} }
// 控货日志 // 控货日志
export function getControlLogList(orderId){ export function getControlLogList(orderId) {
return request({ return request({
url: '/order/order-control-log/list/' + orderId, url: "/order/order-control-log/list/" + orderId,
method: 'get' method: "get"
}) })
} }
// 控货业务审批申请 // 控货业务审批申请
export function applyCargoControlApproval(data){ export function applyCargoControlApproval(data) {
return request({ return request({
url: 'ecw/order-cargo-control/update/apply', url: "ecw/order-cargo-control/update/apply",
method: 'put', method: "put",
data data
}) })
} }
//根据订单ID查询控货订单放货限制修改审核详情 //根据订单ID查询控货订单放货限制修改审核详情
export function getLimitUpdateInfo(orderId){ export function getLimitUpdateInfo(orderId) {
return request({
url: "/ecw/order-cargo-control/limit-update/info/" + orderId,
method: "get"
})
}
//根据订单ID查询海外仓模式修改审核详情
export function getReleaseTypeUpdateInfo(orderId) {
return request({ return request({
url: '/ecw/order-cargo-control/limit-update/info/' + orderId, url: "/ecw/order-cargo-control/overseas-warehouse-update/info/" + orderId,
method: 'get' method: "get"
}) })
} }
...@@ -4708,6 +4708,7 @@ ...@@ -4708,6 +4708,7 @@
"提交结果": "Submit result", "提交结果": "Submit result",
"增加计划": "add plan", "增加计划": "add plan",
"是否确认导出客户跟进记录数据项?": "Are you sure to export all customer follow-up record data items?", "是否确认导出客户跟进记录数据项?": "Are you sure to export all customer follow-up record data items?",
"海外仓模式修改": "Modify overseas warehouse mode",
"合并客户": "Merge customer", "合并客户": "Merge customer",
"保留客户": "Retained customer", "保留客户": "Retained customer",
"​被合并客户-非主客户": "Consolidated customer - Non-principal customer", "​被合并客户-非主客户": "Consolidated customer - Non-principal customer",
......
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 审批信息 --> <!-- 审批信息 -->
<el-card <el-card class="box-card" v-loading="processInstanceLoading" v-for="(item, index) in runningTasks" :key="index">
class="box-card"
v-loading="processInstanceLoading"
v-for="(item, index) in runningTasks"
:key="index"
>
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="el-icon-picture-outline" <span class="el-icon-picture-outline">{{ $t("审批任务") }}{{ item.name }}</span>
>{{ $t("审批任务") }}{{ item.name }}</span
>
</div> </div>
<el-col :span="16" :offset="6"> <el-col :span="16" :offset="6">
<el-form <el-form :ref="'form' + index" :model="auditForms[index]" :rules="auditRule2" label-width="100px">
:ref="'form' + index" <el-form-item :label="$t('流程名')" v-if="processInstance && processInstance.name">
:model="auditForms[index]"
:rules="auditRule2"
label-width="100px"
>
<el-form-item
:label="$t('流程名')"
v-if="processInstance && processInstance.name"
>
{{ processInstance.name }} {{ processInstance.name }}
</el-form-item> </el-form-item>
<el-form-item <el-form-item :label="$t('流程发起人')" v-if="processInstance && processInstance.startUser">
:label="$t('流程发起人')"
v-if="processInstance && processInstance.startUser"
>
{{ processInstance.startUser.nickname }} {{ processInstance.startUser.nickname }}
<el-tag type="info" size="mini">{{ <el-tag type="info" size="mini">{{ processInstance.startUser.deptName }}</el-tag>
processInstance.startUser.deptName
}}</el-tag>
</el-form-item> </el-form-item>
<el-form-item :label="$t('抄送人')" prop="copyUserIds"> <el-form-item :label="$t('抄送人')" prop="copyUserIds">
<el-select <el-select v-model="auditForms[index].copyUserIds" clearable multiple filterable style="width: 100%">
v-model="auditForms[index].copyUserIds" <el-option v-for="item in userOptions" :key="parseInt(item.id)" :label="item.nickname" :value="parseInt(item.id)" />
clearable
multiple
filterable
style="width: 100%"
>
<el-option
v-for="item in userOptions"
:key="parseInt(item.id)"
:label="item.nickname"
:value="parseInt(item.id)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('审批建议')" prop="comment"> <el-form-item :label="$t('审批建议')" prop="comment">
<el-input <el-input type="textarea" v-model="auditForms[index].comment" :placeholder="$t('请输入审批建议')" />
type="textarea"
v-model="auditForms[index].comment"
:placeholder="$t('请输入审批建议')"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px"> <div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px">
<el-button <el-button :loading="loading" icon="el-icon-edit-outline" type="success" size="mini" @click="handleAudit(item, true)">{{ $t("通过") }} </el-button>
:loading="loading" <el-button :loading="loading" icon="el-icon-circle-close" type="danger" size="mini" @click="handleAudit(item, false)">{{ $t("不通过") }} </el-button>
icon="el-icon-edit-outline" <el-button :loading="loading" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleUpdateAssignee(item)">{{ $t("转办") }} </el-button>
type="success"
size="mini"
@click="handleAudit(item, true)"
>{{ $t("通过") }}
</el-button>
<el-button
:loading="loading"
icon="el-icon-circle-close"
type="danger"
size="mini"
@click="handleAudit(item, false)"
>{{ $t("不通过") }}
</el-button>
<el-button
:loading="loading"
icon="el-icon-edit-outline"
type="primary"
size="mini"
@click="handleUpdateAssignee(item)"
>{{ $t("转办") }}
</el-button>
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate(item)">{{ $t('委派') }}</el-button>--> <!-- <el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate(item)">{{ $t('委派') }}</el-button>-->
<!-- <el-button icon="el-icon-refresh-left" type="warning" size="mini" @click="handleBack(item)">{{ $t('退回') }}</el-button>--> <!-- <el-button icon="el-icon-refresh-left" type="warning" size="mini" @click="handleBack(item)">{{ $t('退回') }}</el-button>-->
</div> </div>
...@@ -92,46 +36,18 @@ ...@@ -92,46 +36,18 @@
<!-- 申请信息 --> <!-- 申请信息 -->
<el-card class="box-card mt-10" v-loading="processInstanceLoading"> <el-card class="box-card mt-10" v-loading="processInstanceLoading">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="el-icon-document" <span class="el-icon-document">{{ $t("申请信息") }}{{ processInstance.name }}</span>
>{{ $t("申请信息") }}{{ processInstance.name }}</span
>
</div> </div>
<el-col <el-col v-if="this.processInstance.processDefinition && this.processInstance.processDefinition.formType === 10" :span="16" :offset="6">
v-if="
this.processInstance.processDefinition &&
this.processInstance.processDefinition.formType === 10
"
:span="16"
:offset="6"
>
<div> <div>
<parser <parser :key="new Date().getTime()" :form-conf="detailForm" @submit="submitForm" />
:key="new Date().getTime()"
:form-conf="detailForm"
@submit="submitForm"
/>
</div> </div>
</el-col> </el-col>
<div <div v-if="this.processInstance.processDefinition && this.processInstance.processDefinition.formType === 20">
v-if=" <component v-if="businessKeyToComponent" :is="businessKeyToComponent.component" v-bind="businessKeyToComponent" />
this.processInstance.processDefinition &&
this.processInstance.processDefinition.formType === 20
"
>
<component
v-if="businessKeyToComponent"
:is="businessKeyToComponent.component"
v-bind="businessKeyToComponent"
/>
<div v-else> <div v-else>
<router-link <router-link :to="this.processInstance.processDefinition.formCustomViewPath + '?id=' + this.processInstance.businessKey">
:to="
this.processInstance.processDefinition.formCustomViewPath +
'?id=' +
this.processInstance.businessKey
"
>
<el-button type="primary">{{ $t("点击查看") }}</el-button> <el-button type="primary">{{ $t("点击查看") }}</el-button>
</router-link> </router-link>
</div> </div>
...@@ -144,55 +60,23 @@ ...@@ -144,55 +60,23 @@
<el-col :span="16" :offset="4"> <el-col :span="16" :offset="4">
<div class="block"> <div class="block">
<el-timeline> <el-timeline>
<el-timeline-item <el-timeline-item v-for="(item, index) in tasks" :key="index" :icon="getTimelineItemIcon(item)" :type="getTimelineItemType(item)">
v-for="(item, index) in tasks"
:key="index"
:icon="getTimelineItemIcon(item)"
:type="getTimelineItemType(item)"
>
<p style="font-weight: 700">{{ $t("任务") }}{{ item.name }}</p> <p style="font-weight: 700">{{ $t("任务") }}{{ item.name }}</p>
<el-card :body-style="{ padding: '10px' }"> <el-card :body-style="{ padding: '10px' }">
<label <label v-if="item.assigneeUser" style="font-weight: normal; margin-right: 30px">
v-if="item.assigneeUser"
style="font-weight: normal; margin-right: 30px"
>
{{ $t("审批人") }}{{ item.assigneeUser.nickname }} {{ $t("审批人") }}{{ item.assigneeUser.nickname }}
<el-tag type="info" size="mini">{{ <el-tag type="info" size="mini">{{ item.assigneeUser.deptName }}</el-tag>
item.assigneeUser.deptName
}}</el-tag>
</label> </label>
<label style="font-weight: normal" <label style="font-weight: normal">{{ $t("创建时间") }}</label>
>{{ $t("创建时间") }}</label <label style="color: #8a909c; font-weight: normal">{{ parseTime(item.createTime) }}</label>
> <label v-if="item.endTime" style="margin-left: 30px; font-weight: normal">{{ $t("审批时间") }}</label>
<label style="color: #8a909c; font-weight: normal">{{ <label v-if="item.endTime" style="color: #8a909c; font-weight: normal"> {{ parseTime(item.endTime) }}</label>
parseTime(item.createTime) <label v-if="item.durationInMillis" style="margin-left: 30px; font-weight: normal">{{ $t("耗时") }}</label>
}}</label> <label v-if="item.durationInMillis" style="color: #8a909c; font-weight: normal">
<label
v-if="item.endTime"
style="margin-left: 30px; font-weight: normal"
>{{ $t("审批时间") }}</label
>
<label
v-if="item.endTime"
style="color: #8a909c; font-weight: normal"
>
{{ parseTime(item.endTime) }}</label
>
<label
v-if="item.durationInMillis"
style="margin-left: 30px; font-weight: normal"
>{{ $t("耗时") }}</label
>
<label
v-if="item.durationInMillis"
style="color: #8a909c; font-weight: normal"
>
{{ getDateStar(item.durationInMillis) }} {{ getDateStar(item.durationInMillis) }}
</label> </label>
<p v-if="item.comment"> <p v-if="item.comment">
<el-tag :type="getTimelineItemType(item)">{{ <el-tag :type="getTimelineItemType(item)">{{ item.comment }}</el-tag>
item.comment
}}</el-tag>
</p> </p>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
...@@ -206,82 +90,44 @@ ...@@ -206,82 +90,44 @@
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="el-icon-picture-outline">{{ $t("流程图") }}</span> <span class="el-icon-picture-outline">{{ $t("流程图") }}</span>
</div> </div>
<my-process-viewer <my-process-viewer key="designer" v-model="bpmnXML" v-bind="bpmnControlForm" :activityData="activityList" :processInstanceData="processInstance" :taskData="tasks" />
key="designer"
v-model="bpmnXML"
v-bind="bpmnControlForm"
:activityData="activityList"
:processInstanceData="processInstance"
:taskData="tasks"
/>
</el-card> </el-card>
<!-- 对话框(转派审批人) --> <!-- 对话框(转派审批人) -->
<el-dialog <el-dialog :title="$t('转派审批人')" :visible.sync="updateAssignee.open" width="500px" append-to-body>
:title="$t('转派审批人')" <el-form ref="updateAssigneeForm" :model="updateAssignee.form" :rules="updateAssignee.rules" label-width="110px">
:visible.sync="updateAssignee.open"
width="500px"
append-to-body
>
<el-form
ref="updateAssigneeForm"
:model="updateAssignee.form"
:rules="updateAssignee.rules"
label-width="110px"
>
<el-form-item :label="$t('新审批人')" prop="assigneeUserId"> <el-form-item :label="$t('新审批人')" prop="assigneeUserId">
<el-select <el-select v-model="updateAssignee.form.assigneeUserId" clearable style="width: 100%">
v-model="updateAssignee.form.assigneeUserId" <el-option v-for="item in userOptions" :key="parseInt(item.id)" :label="item.nickname" :value="parseInt(item.id)" />
clearable
style="width: 100%"
>
<el-option
v-for="item in userOptions"
:key="parseInt(item.id)"
:label="item.nickname"
:value="parseInt(item.id)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitUpdateAssigneeForm">{{ <el-button type="primary" @click="submitUpdateAssigneeForm">{{ $t("确定") }}</el-button>
$t("确定") <el-button @click="cancelUpdateAssigneeForm">{{ $t("取消") }}</el-button>
}}</el-button>
<el-button @click="cancelUpdateAssigneeForm">{{
$t("取消")
}}</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getProcessDefinitionBpmnXML } from "@/api/bpm/definition"; import { getProcessDefinitionBpmnXML } from "@/api/bpm/definition"
import { DICT_TYPE, getDictDatas } from "@/utils/dict"; import { DICT_TYPE, getDictDatas } from "@/utils/dict"
import store from "@/store"; import store from "@/store"
import { decodeFields } from "@/utils/formGenerator"; import { decodeFields } from "@/utils/formGenerator"
import Parser from "@/components/parser/Parser"; import Parser from "@/components/parser/Parser"
import { import { createProcessInstance, getProcessInstance } from "@/api/bpm/processInstance"
createProcessInstance, import { approveTask, getTaskListByProcessInstanceId, rejectTask, updateTaskAssignee } from "@/api/bpm/task"
getProcessInstance, import { getDate } from "@/utils/dateUtils"
} from "@/api/bpm/processInstance"; import { listSimpleUsers } from "@/api/system/user"
import { import { getActivityList } from "@/api/bpm/activity"
approveTask, import OfferSpecialDetail from "@/views/ecw/offer/components/SpecialDetail"
getTaskListByProcessInstanceId, import warehouseDetails from "@/views/ecw/order/components/warehouseDetails"
rejectTask, import shippingDetail from "@/views/ecw/box/shippingDetail"
updateTaskAssignee, import SplitDetail from "@/views/ecw/order/components/SplitDetail"
} from "@/api/bpm/task"; import MergeDetail from "@/views/ecw/order/components/MergeDetail"
import { getDate } from "@/utils/dateUtils"; import CargoControlDetail from "@/views/ecw/order/components/CargoControlDetail"
import { listSimpleUsers } from "@/api/system/user"; import BoxSplitDetail from "@/views/ecw/order/components/BoxSplitDetail"
import { getActivityList } from "@/api/bpm/activity";
import OfferSpecialDetail from "@/views/ecw/offer/components/SpecialDetail";
import warehouseDetails from "@/views/ecw/order/components/warehouseDetails";
import shippingDetail from "@/views/ecw/box/shippingDetail";
import SplitDetail from "@/views/ecw/order/components/SplitDetail";
import MergeDetail from "@/views/ecw/order/components/MergeDetail";
import CargoControlDetail from "@/views/ecw/order/components/CargoControlDetail";
import BoxSplitDetail from "@/views/ecw/order/components/BoxSplitDetail";
// 流程实例的详情页,可用于审批 // 流程实例的详情页,可用于审批
export default { export default {
name: "ProcessInstanceDetail", name: "ProcessInstanceDetail",
...@@ -293,7 +139,7 @@ export default { ...@@ -293,7 +139,7 @@ export default {
SplitDetail, SplitDetail,
MergeDetail, MergeDetail,
CargoControlDetail, CargoControlDetail,
BoxSplitDetail, BoxSplitDetail
}, },
computed: { computed: {
auditRule2() { auditRule2() {
...@@ -303,383 +149,349 @@ export default { ...@@ -303,383 +149,349 @@ export default {
{ {
required: true, required: true,
message: this.$t("审批建议不能为空"), message: this.$t("审批建议不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ]
}; }
return obj; return obj
} else { } else {
return {}; return {}
} }
}, },
matterNum() { matterNum() {
return this.$store.state.user.matterNum; return this.$store.state.user.matterNum
}, },
businessKeyToComponent() { businessKeyToComponent() {
if ( if (!this.processInstance.processDefinition || !this.processInstance.processDefinition.formCustomViewPath) {
!this.processInstance.processDefinition || return false
!this.processInstance.processDefinition.formCustomViewPath
) {
return false;
} }
const map = { const map = {
shippingDetail: { shippingDetail: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
// 报价单特价审核,原来配置的组件名 // 报价单特价审核,原来配置的组件名
"special-discount": { "special-discount": {
component: "OfferSpecialDetail", component: "OfferSpecialDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
type: 1, type: 1
}, },
// 报价单特价审核,符合命名规则的组件名 // 报价单特价审核,符合命名规则的组件名
offer_special: { offer_special: {
component: "OfferSpecialDetail", component: "OfferSpecialDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
type: 1, type: 1
}, },
offer_commission: { offer_commission: {
component: "OfferSpecialDetail", component: "OfferSpecialDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
type: 2, type: 2
}, },
// 原来的费用申请 // 原来的费用申请
free_apply: { free_apply: {
component: "warehouseDetails", component: "warehouseDetails",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: 2, type: 2
}, },
// 2.0空运加的批量申请 // 2.0空运加的批量申请
batch_free_apply: { batch_free_apply: {
component: () => component: () => import("@/views/ecw/order/components/BatchFeeApplication"),
import("@/views/ecw/order/components/BatchFeeApplication"),
businessId: this.processInstance.businessKey, businessId: this.processInstance.businessKey,
processInstanceId: this.$route.query.id, processInstanceId: this.$route.query.id
}, },
retired_warehouse: { retired_warehouse: {
component: "warehouseDetails", component: "warehouseDetails",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: 3, type: 3
}, },
warehouse_transfer: { warehouse_transfer: {
component: "warehouseDetails", component: "warehouseDetails",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: 1, type: 1
}, },
warehouse_update: { warehouse_update: {
component: "warehouseDetails", component: "warehouseDetails",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: 4, type: 4
}, },
container_modify: { container_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
trailer_modify: { trailer_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
ship_modify: { ship_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
customs_declare_modify: { customs_declare_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
arrival_modify: { arrival_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
customs_clearance_modify: { customs_clearance_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
customs_exit_part: { customs_exit_part: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
customs_exit_all: { customs_exit_all: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
start_port_modify: { start_port_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
book_space_modify: { book_space_modify: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
sorting_apply_no: { sorting_apply_no: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
sorting_apply: { sorting_apply: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
unload_container_no: { unload_container_no: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
unload_container: { unload_container: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: "unload_container", type: "unload_container"
}, },
close_container: { close_container: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: "close_container", type: "close_container"
}, },
shipment_preassemble: { shipment_preassemble: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
close_container_no: { close_container_no: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
// 拆单审核 // 拆单审核
split_detail: { split_detail: {
component: "SplitDetail", component: "SplitDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey
}, },
// 出货拆单审核 // 出货拆单审核
shipment_split_detail: { shipment_split_detail: {
component: "BoxSplitDetail", component: "BoxSplitDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey
}, },
// 退场拆单,跟出货装柜拆单一样 // 退场拆单,跟出货装柜拆单一样
exit_split: { exit_split: {
component: "BoxSplitDetail", component: "BoxSplitDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey
}, },
merge_detail: { merge_detail: {
component: "MergeDetail", component: "MergeDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey
}, },
// 放货修改 // 放货修改
order_update_release: { order_update_release: {
component: "CargoControlDetail", component: "CargoControlDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
applyType: 7, applyType: 7
}, },
// 反复核 // 反复核
order_fallback: { order_fallback: {
component: "CargoControlDetail", component: "CargoControlDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
applyType: 8, applyType: 8
}, },
// 调货审核 // 调货审核
order_transfer: { order_transfer: {
component: "CargoControlDetail", component: "CargoControlDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
applyType: 9, applyType: 9
}, },
// 取消放货审核 // 取消放货审核
order_cancel_release: { order_cancel_release: {
component: "CargoControlDetail", component: "CargoControlDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
applyType: 10, applyType: 10
}, },
// 提单审核 // 提单审核
order_landing_bill: { order_landing_bill: {
component: () => component: () => import("@/views/ecw/order/components/LandingBillDetail"),
import("@/views/ecw/order/components/LandingBillDetail"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 订单审核详情 // 订单审核详情
order_approval: { order_approval: {
component: () => component: () => import("@/views/ecw/order/components/ApprovalDetail"),
import("@/views/ecw/order/components/ApprovalDetail"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 订单修改审批 // 订单修改审批
order_update: { order_update: {
component: () => import("@/views/ecw/order/components/UpdateDetail"), component: () => import("@/views/ecw/order/components/UpdateDetail"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 预付异常审核 // 预付异常审核
prepay_excetion: { prepay_excetion: {
component: () => component: () => import("@/views/ecw/order/components/PrepayExceptionDetail"),
import("@/views/ecw/order/components/PrepayExceptionDetail"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 客户延期 // 客户延期
customer_delay: { customer_delay: {
component: () => import("@/views/ecw/customer/components/Delay"), component: () => import("@/views/ecw/customer/components/Delay"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//付款单审核-所有审核流程详情组件 //付款单审核-所有审核流程详情组件
finance_payment_approve: { finance_payment_approve: {
component: () => component: () => import("@/views/ecw/financial/components/PaymentApproval"),
import("@/views/ecw/financial/components/PaymentApproval"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//收款单审核 //收款单审核
finance_receipt_approve: { finance_receipt_approve: {
component: () => component: () => import("@/views/ecw/financial/components/CollectionApproval"),
import("@/views/ecw/financial/components/CollectionApproval"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//收款单核销 //收款单核销
finance_receipt_write_off: { finance_receipt_write_off: {
component: () => component: () => import("@/views/ecw/financial/components/CollectionWriteoff"),
import("@/views/ecw/financial/components/CollectionWriteoff"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//收款单反核销审核 //收款单反核销审核
finance_receipt_write_off_no: { finance_receipt_write_off_no: {
component: () => component: () => import("@/views/ecw/financial/components/CollectionApproval"),
import("@/views/ecw/financial/components/CollectionApproval"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//收款单核销反审核 //收款单核销反审核
finance_receipt_approve_no: { finance_receipt_approve_no: {
component: () => component: () => import("@/views/ecw/financial/components/CollectionApproval"),
import("@/views/ecw/financial/components/CollectionApproval"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//收款单银行实收明细核销 //收款单银行实收明细核销
finance_receipt_item_write_off: { finance_receipt_item_write_off: {
component: () => component: () => import("@/views/ecw/financial/components/CollectionBankDetail"),
import("@/views/ecw/financial/components/CollectionBankDetail"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//收款单银行实收反核销 //收款单银行实收反核销
finance_receipt_item_write_off_no: { finance_receipt_item_write_off_no: {
component: () => component: () => import("@/views/ecw/financial/components/CollectionBankDetail"),
import("@/views/ecw/financial/components/CollectionBankDetail"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//佣金付款单审核详情-关于佣金付款单所有审核详情 //佣金付款单审核详情-关于佣金付款单所有审核详情
commissionPaymentDetails: { commissionPaymentDetails: {
component: () => component: () => import("@/views/ecw/financial/components/commissionPaymentDetails.vue"),
import(
"@/views/ecw/financial/components/commissionPaymentDetails.vue"
),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
/*撤销拆单*/ /*撤销拆单*/
split_revoke: { split_revoke: {
component: () => component: () => import("@/views/ecw/order/components/SplitRevokeDetail"),
import("@/views/ecw/order/components/SplitRevokeDetail"), id: this.processInstance.businessKey
id: this.processInstance.businessKey,
}, },
// 不可出渠道异常审核 // 不可出渠道异常审核
not_shiping_channel: { not_shiping_channel: {
component: () => component: () => import("@/views/ecw/order/components/NotShipingChannel"),
import("@/views/ecw/order/components/NotShipingChannel"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 出货批量加价审核 // 出货批量加价审核
box_batch_markup: { box_batch_markup: {
component: () => component: () => import("@/views/ecw/box/components/batchMakeUpDetail.vue"),
import("@/views/ecw/box/components/batchMakeUpDetail.vue"),
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: this.processInstance.processDefinition?.formCustomViewPath, type: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 可获移交详情 // 可获移交详情
customer_handover_details: { customer_handover_details: {
component: () => component: () => import("@/views/ecw/customer/components/customer-handover-details.vue"),
import(
"@/views/ecw/customer/components/customer-handover-details.vue"
),
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: this.processInstance.processDefinition?.formCustomViewPath, type: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 出货审核 // 出货审核
air_shipment: { air_shipment: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: "shipment", type: "shipment"
}, },
//排单分拣审核 //排单分拣审核
shipment_order_sorting: { shipment_order_sorting: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
// 出货反审 // 出货反审
shipment_review: { shipment_review: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey
}, },
// 删单退场 // 删单退场
customs_declare_remove: { customs_declare_remove: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: "deleteExit", type: "deleteExit"
}, },
// 空运到仓审核 // 空运到仓审核
air_warehouse: { air_warehouse: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: "air_warehouse", type: "air_warehouse"
}, },
// 空运到仓审核 // 空运到仓审核
air_warehouse_no: { air_warehouse_no: {
component: "shippingDetail", component: "shippingDetail",
processId: this.processInstance.businessKey, processId: this.processInstance.businessKey,
type: "air_warehouse", type: "air_warehouse"
}, },
revoke_clear: { revoke_clear: {
component: () => import("@/views/ecw/box/components/RevokeClear"), component: () => import("@/views/ecw/box/components/RevokeClear"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey
}, },
// 重量超限 // 重量超限
over_weight_exception: { over_weight_exception: {
component: () => component: () => import("@/views/ecw/order/exception/components/overweightException"),
import(
"@/views/ecw/order/exception/components/overweightException"
),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 线路重量超限 // 线路重量超限
line_weight_exception: { line_weight_exception: {
component: () => component: () => import("@/views/ecw/order/exception/components/overweightException"),
import(
"@/views/ecw/order/exception/components/overweightException"
),
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath, path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 收货人限制修改申请 // 收货人限制修改申请
order_consignee_limit_change:{ order_consignee_limit_change: {
component: () => import("@/views/ecw/order/components/updateReleaseLimitApproval"), component: () => import("@/views/ecw/order/components/updateReleaseLimitApproval"),
id: this.processInstance.businessKey, id: this.processInstance.businessKey
}, },
// 海外仓修改申请,下面的组件待改 // 海外仓修改申请,下面的组件待改
order_overseas_warehouse_change:{ order_overseas_warehouse_change: {
component: () => import("@/views/ecw/order/components/updateReleaseLimitApproval"), component: () => import("@/views/ecw/order/components/updateReleaseTypeApproval"),
id: this.processInstance.businessKey, id: parseInt(this.processInstance.businessKey)
}
}
console.log("formCustomViewPath", this.processInstance.processDefinition.formCustomViewPath.trim())
return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
} }
};
console.log(
"formCustomViewPath",
this.processInstance.processDefinition.formCustomViewPath.trim()
);
return map[
this.processInstance.processDefinition.formCustomViewPath.trim()
];
},
}, },
data() { data() {
return { return {
...@@ -692,13 +504,13 @@ export default { ...@@ -692,13 +504,13 @@ export default {
processInstance: {}, processInstance: {},
// 流程表单详情 // 流程表单详情
detailForm: { detailForm: {
fields: [], fields: []
}, },
isMust: true, isMust: true,
// BPMN 数据 // BPMN 数据
bpmnXML: null, bpmnXML: null,
bpmnControlForm: { bpmnControlForm: {
prefix: "activiti", prefix: "activiti"
}, },
activityList: [], activityList: [],
// 审批记录 // 审批记录
...@@ -712,9 +524,9 @@ export default { ...@@ -712,9 +524,9 @@ export default {
{ {
required: this.isMust, required: this.isMust,
message: this.$t("审批建议不能为空"), message: this.$t("审批建议不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ]
}, },
// 转派审批人 // 转派审批人
...@@ -722,67 +534,59 @@ export default { ...@@ -722,67 +534,59 @@ export default {
updateAssignee: { updateAssignee: {
open: false, open: false,
form: { form: {
assigneeUserId: undefined, assigneeUserId: undefined
}, },
rules: { rules: {
assigneeUserId: [ assigneeUserId: [
{ {
required: true, required: true,
message: this.$t("新审批人不能为空"), message: this.$t("新审批人不能为空"),
trigger: "change", trigger: "change"
}, }
], ]
}, }
}, },
// 数据字典 // 数据字典
categoryDictDatas: getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY), categoryDictDatas: getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)
}; }
}, },
created() { created() {
this.id = this.$route.query.id; this.id = this.$route.query.id
if (!this.id) { if (!this.id) {
this.$message.error("未传递 id 参数,无法查看流程信息"); this.$message.error("未传递 id 参数,无法查看流程信息")
return; return
} }
this.getDetail(); this.getDetail()
// 获得用户列表 // 获得用户列表
this.userOptions = []; this.userOptions = []
listSimpleUsers().then((response) => { listSimpleUsers().then((response) => {
this.userOptions.push(...response.data); this.userOptions.push(...response.data)
}); })
}, },
methods: { methods: {
/** 获得流程实例 */ /** 获得流程实例 */
getDetail() { getDetail() {
// 获得流程实例相关 // 获得流程实例相关
this.processInstanceLoading = true; this.processInstanceLoading = true
getProcessInstance(this.id).then((response) => { getProcessInstance(this.id).then((response) => {
if (!response.data) { if (!response.data) {
this.$message.error("查询不到流程信息!"); this.$message.error("查询不到流程信息!")
return; return
} }
// 设置流程信息 // 设置流程信息
this.processInstance = response.data; this.processInstance = response.data
console.log(this.processInstance); console.log(this.processInstance)
//银行实收明细核销不限制必填 lanbm 2024-05-24 add //银行实收明细核销不限制必填 lanbm 2024-05-24 add
if ( if (this.processInstance.processDefinition.formCustomViewPath == undefined || this.processInstance.processDefinition.formCustomViewPath == null || this.processInstance.processDefinition.formCustomViewPath == "") {
this.processInstance.processDefinition.formCustomViewPath == this.isMust = true
undefined ||
this.processInstance.processDefinition.formCustomViewPath == null ||
this.processInstance.processDefinition.formCustomViewPath == ""
) {
this.isMust = true;
} else { } else {
if ( if (this.processInstance.processDefinition.formCustomViewPath.trim() == "finance_receipt_item_write_off") {
this.processInstance.processDefinition.formCustomViewPath.trim() == this.isMust = false
"finance_receipt_item_write_off"
) {
this.isMust = false;
} else { } else {
this.isMust = true; this.isMust = true
} }
} }
//end 银行实收明细核销不限制必填 lanbm 2024-05-24 add //end 银行实收明细核销不限制必填 lanbm 2024-05-24 add
...@@ -793,240 +597,236 @@ export default { ...@@ -793,240 +597,236 @@ export default {
...JSON.parse(this.processInstance.processDefinition.formConf), ...JSON.parse(this.processInstance.processDefinition.formConf),
disabled: true, // 表单禁用 disabled: true, // 表单禁用
formBtns: false, // 按钮隐藏 formBtns: false, // 按钮隐藏
fields: decodeFields( fields: decodeFields(this.processInstance.processDefinition.formFields)
this.processInstance.processDefinition.formFields }
),
};
// 设置表单的值 // 设置表单的值
this.detailForm.fields.forEach((item) => { this.detailForm.fields.forEach((item) => {
const val = this.processInstance.formVariables[item.__vModel__]; const val = this.processInstance.formVariables[item.__vModel__]
if (val) { if (val) {
item.__config__.defaultValue = val; item.__config__.defaultValue = val
} }
}); })
} }
// 加载流程图 // 加载流程图
getProcessDefinitionBpmnXML( getProcessDefinitionBpmnXML(this.processInstance.processDefinition.id).then((response) => {
this.processInstance.processDefinition.id this.bpmnXML = response.data
).then((response) => { })
this.bpmnXML = response.data;
});
// 加载活动列表 // 加载活动列表
getActivityList({ getActivityList({
processInstanceId: this.processInstance.id, processInstanceId: this.processInstance.id
}).then((response) => { }).then((response) => {
this.activityList = response.data; this.activityList = response.data
}); })
// 取消加载中 // 取消加载中
this.processInstanceLoading = false; this.processInstanceLoading = false
}); })
// 获得流程任务列表(审批记录) // 获得流程任务列表(审批记录)
this.tasksLoad = true; this.tasksLoad = true
this.runningTasks = []; this.runningTasks = []
this.auditForms = []; this.auditForms = []
getTaskListByProcessInstanceId(this.id).then((response) => { getTaskListByProcessInstanceId(this.id).then((response) => {
// 审批记录 // 审批记录
this.tasks = response.data; this.tasks = response.data
// 排序,将未完成的排在前面,已完成的排在后面; // 排序,将未完成的排在前面,已完成的排在后面;
this.tasks.sort((a, b) => { this.tasks.sort((a, b) => {
// 有已完成的情况,按照完成时间倒序 // 有已完成的情况,按照完成时间倒序
if (a.endTime && b.endTime) { if (a.endTime && b.endTime) {
return b.endTime - a.endTime; return b.endTime - a.endTime
} else if (a.endTime) { } else if (a.endTime) {
return 1; return 1
} else if (b.endTime) { } else if (b.endTime) {
return -1; return -1
// 都是未完成,按照创建时间倒序 // 都是未完成,按照创建时间倒序
} else { } else {
return b.createTime - a.createTime; return b.createTime - a.createTime
} }
}); })
// 需要审核的记录 // 需要审核的记录
const userId = store.getters.userId; const userId = store.getters.userId
this.tasks.forEach((task) => { this.tasks.forEach((task) => {
if (task.result !== 1) { if (task.result !== 1) {
// 只有待处理才需要 // 只有待处理才需要
return; return
} }
if (!task.assigneeUser || task.assigneeUser.id !== userId) { if (!task.assigneeUser || task.assigneeUser.id !== userId) {
// 自己不是处理人 // 自己不是处理人
return; return
} }
this.runningTasks.push({ ...task }); this.runningTasks.push({ ...task })
this.auditForms.push({ this.auditForms.push({
comment: "", comment: ""
}); })
}); })
// 取消加载中 // 取消加载中
this.tasksLoad = false; this.tasksLoad = false
}); })
}, },
/** 处理选择流程的按钮操作 **/ /** 处理选择流程的按钮操作 **/
handleSelect(row) { handleSelect(row) {
// 设置选择的流程 // 设置选择的流程
this.selectProcessInstance = row; this.selectProcessInstance = row
// 流程表单 // 流程表单
if (row.formId) { if (row.formId) {
// 设置对应的表单 // 设置对应的表单
this.detailForm = { this.detailForm = {
...JSON.parse(row.formConf), ...JSON.parse(row.formConf),
fields: decodeFields(row.formFields), fields: decodeFields(row.formFields)
}; }
} else if (row.formCustomCreatePath) { } else if (row.formCustomCreatePath) {
this.$router.push({ path: row.formCustomCreatePath }); this.$router.push({ path: row.formCustomCreatePath })
// 这里暂时无需加载流程图,因为跳出到另外个 Tab; // 这里暂时无需加载流程图,因为跳出到另外个 Tab;
} }
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm(params) { submitForm(params) {
if (!params) { if (!params) {
return; return
} }
// 设置表单禁用 // 设置表单禁用
const conf = params.conf; const conf = params.conf
conf.disabled = true; // 表单禁用 conf.disabled = true // 表单禁用
conf.formBtns = false; // 按钮隐藏 conf.formBtns = false // 按钮隐藏
// 提交表单,创建流程 // 提交表单,创建流程
const variables = params.values; const variables = params.values
createProcessInstance({ createProcessInstance({
processDefinitionId: this.selectProcessInstance.id, processDefinitionId: this.selectProcessInstance.id,
variables: variables, variables: variables
}) })
.then((response) => { .then((response) => {
this.$modal.msgSuccess("发起流程成功"); this.$modal.msgSuccess("发起流程成功")
// 关闭当前窗口 // 关闭当前窗口
this.$tab.closeOpenPage(); this.$tab.closeOpenPage()
this.$router.go(-1); this.$router.go(-1)
}) })
.catch(() => { .catch(() => {
conf.disabled = false; // 表单开启 conf.disabled = false // 表单开启
conf.formBtns = true; // 按钮展示 conf.formBtns = true // 按钮展示
}); })
}, },
getDateStar(ms) { getDateStar(ms) {
return getDate(ms); return getDate(ms)
}, },
getTimelineItemIcon(item) { getTimelineItemIcon(item) {
if (item.result === 1) { if (item.result === 1) {
return "el-icon-time"; return "el-icon-time"
} }
if (item.result === 2) { if (item.result === 2) {
return "el-icon-check"; return "el-icon-check"
} }
if (item.result === 3) { if (item.result === 3) {
return "el-icon-close"; return "el-icon-close"
} }
if (item.result === 4) { if (item.result === 4) {
return "el-icon-remove-outline"; return "el-icon-remove-outline"
} }
return ""; return ""
}, },
getTimelineItemType(item) { getTimelineItemType(item) {
if (item.result === 1) { if (item.result === 1) {
return "primary"; return "primary"
} }
if (item.result === 2) { if (item.result === 2) {
return "success"; return "success"
} }
if (item.result === 3) { if (item.result === 3) {
return "danger"; return "danger"
} }
if (item.result === 4) { if (item.result === 4) {
return "info"; return "info"
} }
return ""; return ""
}, },
/** 处理审批通过和不通过的操作 */ /** 处理审批通过和不通过的操作 */
handleAudit(task, pass) { handleAudit(task, pass) {
const index = this.runningTasks.indexOf(task); const index = this.runningTasks.indexOf(task)
this.$refs["form" + index][0].validate((valid) => { this.$refs["form" + index][0].validate((valid) => {
if (!valid) { if (!valid) {
return; return
} }
const data = { const data = {
id: task.id, id: task.id,
comment: this.auditForms[index].comment, comment: this.auditForms[index].comment,
copyUserIds: this.auditForms[index].copyUserIds, copyUserIds: this.auditForms[index].copyUserIds
}; }
this.loading = true; this.loading = true
if (pass) { if (pass) {
approveTask(data) approveTask(data)
.then((response) => { .then((response) => {
let p = this.matterNum; let p = this.matterNum
//this.$store.commit('GET_MAATER', --p) //this.$store.commit('GET_MAATER', --p)
this.$modal.msgSuccess("审批通过成功!"); this.$modal.msgSuccess("审批通过成功!")
this.getDetail(); // 获得最新详情 this.getDetail() // 获得最新详情
}) })
.finally(() => { .finally(() => {
this.loading = false; this.loading = false
}); })
} else { } else {
rejectTask(data) rejectTask(data)
.then((response) => { .then((response) => {
let p = this.matterNum; let p = this.matterNum
//this.$store.commit('GET_MAATER', --p) //this.$store.commit('GET_MAATER', --p)
this.$modal.msgSuccess("审批不通过成功!"); this.$modal.msgSuccess("审批不通过成功!")
this.getDetail(); // 获得最新详情 this.getDetail() // 获得最新详情
}) })
.finally(() => { .finally(() => {
this.loading = false; this.loading = false
}); })
} }
}); })
}, },
/** 处理转派审批人 */ /** 处理转派审批人 */
handleUpdateAssignee(task) { handleUpdateAssignee(task) {
// 设置表单 // 设置表单
this.resetUpdateAssigneeForm(); this.resetUpdateAssigneeForm()
this.updateAssignee.form.id = task.id; this.updateAssignee.form.id = task.id
// 设置为打开 // 设置为打开
this.updateAssignee.open = true; this.updateAssignee.open = true
}, },
/** 提交转派审批人 */ /** 提交转派审批人 */
submitUpdateAssigneeForm() { submitUpdateAssigneeForm() {
this.$refs["updateAssigneeForm"].validate((valid) => { this.$refs["updateAssigneeForm"].validate((valid) => {
if (!valid) { if (!valid) {
return; return
} }
updateTaskAssignee(this.updateAssignee.form).then((response) => { updateTaskAssignee(this.updateAssignee.form).then((response) => {
this.$modal.msgSuccess("转派任务成功!"); this.$modal.msgSuccess("转派任务成功!")
let p = this.matterNum; let p = this.matterNum
// this.$store.commit('GET_MAATER', --p) // this.$store.commit('GET_MAATER', --p)
this.updateAssignee.open = false; this.updateAssignee.open = false
this.getDetail(); // 获得最新详情 this.getDetail() // 获得最新详情
}); })
}); })
}, },
/** 取消转派审批人 */ /** 取消转派审批人 */
cancelUpdateAssigneeForm() { cancelUpdateAssigneeForm() {
this.updateAssignee.open = false; this.updateAssignee.open = false
this.resetUpdateAssigneeForm(); this.resetUpdateAssigneeForm()
}, },
/** 重置转派审批人 */ /** 重置转派审批人 */
resetUpdateAssigneeForm() { resetUpdateAssigneeForm() {
this.updateAssignee.form = { this.updateAssignee.form = {
id: undefined, id: undefined,
assigneeUserId: undefined, assigneeUserId: undefined
}; }
this.resetForm("updateAssigneeForm"); this.resetForm("updateAssigneeForm")
}, },
/** 处理审批退回的操作 */ /** 处理审批退回的操作 */
handleDelegate(task) { handleDelegate(task) {
this.$modal.msgError("暂不支持【委派】功能,可以使用【转派】替代!"); this.$modal.msgError("暂不支持【委派】功能,可以使用【转派】替代!")
}, },
/** 处理审批退回的操作 */ /** 处理审批退回的操作 */
handleBack(task) { handleBack(task) {
this.$modal.msgError("暂不支持【退回】功能!"); this.$modal.msgError("暂不支持【退回】功能!")
}, }
}, }
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -494,7 +494,7 @@ export default { ...@@ -494,7 +494,7 @@ export default {
}, },
handleExchange(row) { handleExchange(row) {
this.$router.push({ this.$router.push({
path: "/giftManagement/bulkExchange", path: "/member/giftManagement/bulkExchange",
query: { rewardsID: row.id }, query: { rewardsID: row.id },
}); });
}, },
......
...@@ -420,7 +420,7 @@ ...@@ -420,7 +420,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<el-date-picker <el-date-picker
type="date" type="datetime"
:placeholder="$t('选择创建时间')" :placeholder="$t('选择创建时间')"
v-model="queryParams.createTime" v-model="queryParams.createTime"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
...@@ -429,6 +429,7 @@ ...@@ -429,6 +429,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('最后更新人')"> <el-form-item :label="$t('最后更新人')">
<el-input <el-input
v-model.number="queryParams.updater" v-model.number="queryParams.updater"
:placeholder="$t('请输入最后更新人')" :placeholder="$t('请输入最后更新人')"
clearable clearable
...@@ -437,7 +438,7 @@ ...@@ -437,7 +438,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('最后更新时间')"> <el-form-item :label="$t('最后更新时间')">
<el-date-picker <el-date-picker
type="date" type="datetime"
:placeholder="$t('选择最后更新时间')" :placeholder="$t('选择最后更新时间')"
v-model="queryParams.updateTime" v-model="queryParams.updateTime"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
...@@ -1024,7 +1025,7 @@ export default { ...@@ -1024,7 +1025,7 @@ export default {
params.extraRegister.registerPlatform = params.extraRegister.registerPlatform =
this.queryParams.extraRegister.registerPlatform?.join(); this.queryParams.extraRegister.registerPlatform?.join();
if ( if (
(this.queryParams.type = (this.queryParams.type ==
1 && 1 &&
this.queryParams.extraOrderV.receiveAddrList?.[0]?.[0] == "000") this.queryParams.extraOrderV.receiveAddrList?.[0]?.[0] == "000")
) { ) {
...@@ -1053,8 +1054,8 @@ export default { ...@@ -1053,8 +1054,8 @@ export default {
} }
); );
params.createTime = parseTime(res.data.createTime); params.createTime = parseTime(res.data.createTime, '{y}-{m}-{d} {h}:{i}:{s}');
params.updateTime = parseTime(res.data.updateTime); params.updateTime = parseTime(res.data.updateTime, '{y}-{m}-{d} {h}:{i}:{s}');
if (isNumber(res.data.extraOrderV?.firstOrder)) { if (isNumber(res.data.extraOrderV?.firstOrder)) {
params.extraOrderV.firstOrder = params.extraOrderV.firstOrder =
......
...@@ -28,6 +28,16 @@ ...@@ -28,6 +28,16 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item :label="$t('会员编号')">
<el-input
v-model.trim="queryParams.memberCode"
style="width: 300px"
:placeholder="$t('请输入会员编号')"
clearable
onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('领取方式')"> <el-form-item :label="$t('领取方式')">
<dict-selector <dict-selector
v-model="queryParams.redeemType" v-model="queryParams.redeemType"
...@@ -179,8 +189,16 @@ ...@@ -179,8 +189,16 @@
width="140" width="140"
:label="$t('兑换记录ID')" :label="$t('兑换记录ID')"
align="center" align="center"
prop="redemptionNumber" >
/> <template #default="{ row }">
<el-button
size="mini"
type="text"
@click="handleViewRecord(row )"
>{{ row.redemptionNumber}}</el-button
>
</template>
</el-table-column>
<el-table-column <el-table-column
width="140" width="140"
:label="$t('礼品ID')" :label="$t('礼品ID')"
...@@ -297,14 +315,14 @@ ...@@ -297,14 +315,14 @@
@click="handleRewardEdit(scope.row)" @click="handleRewardEdit(scope.row)"
>{{ $t("编辑") }}</el-button >{{ $t("编辑") }}</el-button
> >
<el-button <!-- <el-button
v-hasPermi="['ecw:memberManagement:view']" v-hasPermi="['ecw:memberManagement:view']"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleViewRecord(scope.row)" @click="handleViewRecord(scope.row)"
>{{ $t("查看") }}</el-button >{{ $t("查看") }}</el-button
> > -->
<el-button <el-button
v-hasPermi="['ecw:memberManagement:verification']" v-hasPermi="['ecw:memberManagement:verification']"
size="mini" size="mini"
...@@ -494,6 +512,7 @@ export default { ...@@ -494,6 +512,7 @@ export default {
queryParams: { queryParams: {
rewardTitle: "", rewardTitle: "",
memberName: "", // 会员昵称 memberName: "", // 会员昵称
memberCode:"", //会员编号
redeemType: "", // 兑换方式 redeemType: "", // 兑换方式
status: "", status: "",
rewardCount: "", rewardCount: "",
...@@ -525,8 +544,17 @@ export default { ...@@ -525,8 +544,17 @@ export default {
}, },
immediate: true, immediate: true,
}, },
"$route.query.memberCode": {
handler(val) {
if (val) {
this.queryParams.memberCode= val;
}
},
immediate: true,
},
}, },
created() { created() {
this.getNodeListAPI(); this.getNodeListAPI();
this.handleQuery(); this.handleQuery();
}, },
...@@ -573,21 +601,21 @@ export default { ...@@ -573,21 +601,21 @@ export default {
// 核销 // 核销
handleVerify(row) { handleVerify(row) {
this.$router.push({ this.$router.push({
path: "/memberManagement/exchangeRecordOperation", path: "/member/memberManagement/exchangeRecordOperation",
query: { exchangeRewardID: row.id, pageStatus: "verify" }, query: { exchangeRewardID: row.id, pageStatus: "verify" },
}); });
}, },
// 查看按钮操作 // 查看按钮操作
handleViewRecord(row) { handleViewRecord(row) {
this.$router.push({ this.$router.push({
path: "/memberManagement/exchangeRecordOperation", path: "/member/memberManagement/exchangeRecordOperation",
query: { exchangeRewardID: row.id, pageStatus: "view" }, query: { exchangeRewardID: row.id, pageStatus: "view" },
}); });
}, },
// 兑换记录编辑操作 // 兑换记录编辑操作
handleRewardEdit(row) { handleRewardEdit(row) {
this.$router.push({ this.$router.push({
path: "/memberManagement/exchangeRecordOperation", path: "/member/memberManagement/exchangeRecordOperation",
query: { exchangeRewardID: row.id, pageStatus: "edit" }, query: { exchangeRewardID: row.id, pageStatus: "edit" },
}); });
}, },
...@@ -721,7 +749,7 @@ export default { ...@@ -721,7 +749,7 @@ export default {
// 新增兑换 // 新增兑换
handleNewExchange() { handleNewExchange() {
this.$router.push({ this.$router.push({
path: "/memberManagement/exchangeRecordOperation", path: "/member/memberManagement/exchangeRecordOperation",
}); });
}, },
getNodeListAPI() { getNodeListAPI() {
...@@ -766,6 +794,7 @@ export default { ...@@ -766,6 +794,7 @@ export default {
city: null, city: null,
endTime: null, endTime: null,
holdScore: null, holdScore: null,
memberCode:'',
holdScoreOperate: null, holdScoreOperate: null,
key: null, key: null,
redemptionNumber: null, redemptionNumber: null,
...@@ -808,6 +837,7 @@ export default { ...@@ -808,6 +837,7 @@ export default {
country: null, country: null,
city: null, city: null,
endTime: null, endTime: null,
memberCode:'',
holdScore: null, holdScore: null,
holdScoreOperate: null, holdScoreOperate: null,
key: null, key: null,
......
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
></el-table-column> ></el-table-column>
<el-table-column :label="$t('礼品名称')" align="center"> <el-table-column :label="$t('礼品名称')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="handleView(scope.row)">{{ <el-button type="text" >{{
isChinese ? scope.row.titleZh : scope.row.titleEn isChinese ? scope.row.titleZh : scope.row.titleEn
}}</el-button> }}</el-button>
</template> </template>
...@@ -415,7 +415,7 @@ export default { ...@@ -415,7 +415,7 @@ export default {
}, },
handleExchange(row) { handleExchange(row) {
this.$router.push({ this.$router.push({
path: "/giftManagement/bulkExchange", path: "/member/giftManagement/bulkExchange",
query: { rewardsID: row.id }, query: { rewardsID: row.id },
}); });
}, },
......
...@@ -360,7 +360,7 @@ import { ...@@ -360,7 +360,7 @@ import {
verifyRedeem, verifyRedeem,
} from "@/api/ecw/memberManagement"; } from "@/api/ecw/memberManagement";
import { memberUserGet } from "@/api/member/user"; import { memberUserGet } from "@/api/member/user";
import { getDictDatas, DICT_TYPE } from "@/utils/dict";
export default { export default {
name: "exchangeRecordOperation", name: "exchangeRecordOperation",
components: { components: {
...@@ -549,6 +549,7 @@ export default { ...@@ -549,6 +549,7 @@ export default {
getDetails() { getDetails() {
memberUserGet({ id: this.$route.query.memberId }).then((r) => { memberUserGet({ id: this.$route.query.memberId }).then((r) => {
// this.details = r.data; // this.details = r.data;
this.isChinese this.isChinese
? (this.queryParamsList[0].memberName = r.data.nickname) ? (this.queryParamsList[0].memberName = r.data.nickname)
: (this.queryParamsList[0].memberName = r.data.englishName); : (this.queryParamsList[0].memberName = r.data.englishName);
...@@ -571,6 +572,7 @@ export default { ...@@ -571,6 +572,7 @@ export default {
if (this.isChinese) { if (this.isChinese) {
this.queryParamsList[0].memberName = data.memberNameZh; this.queryParamsList[0].memberName = data.memberNameZh;
this.queryParamsList[0].rewardName = data.rewardTitleZh; this.queryParamsList[0].rewardName = data.rewardTitleZh;
} else { } else {
this.queryParamsList[0].memberName = data.memberNameEn; this.queryParamsList[0].memberName = data.memberNameEn;
this.queryParamsList[0].rewardName = data.rewardTitleEn; this.queryParamsList[0].rewardName = data.rewardTitleEn;
...@@ -666,7 +668,7 @@ export default { ...@@ -666,7 +668,7 @@ export default {
}, },
onGetSelectRewardsInfo(item) { onGetSelectRewardsInfo(item) {
this.queryParamsList[0].rewardId = item.id; this.queryParamsList[0].rewardId = item.id;
this.queryParamsList[0]; this.queryParamsList[0].redeemType = item.pickMethod.split(",")[0]
if (this.isChinese) { if (this.isChinese) {
this.queryParamsList[0].rewardName = item.titleZh; this.queryParamsList[0].rewardName = item.titleZh;
} else { } else {
......
...@@ -174,6 +174,12 @@ ...@@ -174,6 +174,12 @@
{{ parseTime(row.createTime) || "/" }}</template {{ parseTime(row.createTime) || "/" }}</template
> >
</el-table-column> </el-table-column>
<el-table-column :label="$t('积分到期时间')" align="center">
<template v-slot="{ row }">
{{ parseTime(row.expireTime) || "/" }}</template
>
</el-table-column>
<el-table-column width="300" :label="$t('详细信息')" align="center"> <el-table-column width="300" :label="$t('详细信息')" align="center">
<template v-slot="{ row }"> <template v-slot="{ row }">
<!-- 人工操作--> <!-- 人工操作-->
...@@ -186,7 +192,7 @@ ...@@ -186,7 +192,7 @@
type="text" type="text"
@click=" @click="
$router.push({ $router.push({
path: '/memberManagement/exchangeRecordOperation', path: '/member/memberManagement/exchangeRecordOperation',
query: { query: {
pageStatus: 'view', pageStatus: 'view',
exchangeRewardID: row.extParamJson.redeemId, exchangeRewardID: row.extParamJson.redeemId,
...@@ -230,7 +236,7 @@ ...@@ -230,7 +236,7 @@
type="text" type="text"
@click=" @click="
$router.push({ $router.push({
path: '/memberManagement/addIntegrationRuleOperation', path: '/member/memberManagement/addIntegrationRuleOperation',
query: { query: {
id: row.extParamJson.scoreRuleId, id: row.extParamJson.scoreRuleId,
pageStatus: 'view', pageStatus: 'view',
...@@ -258,6 +264,9 @@ import { queryMemberScoreRecord } from "@/api/ecw/memberManagement"; ...@@ -258,6 +264,9 @@ import { queryMemberScoreRecord } from "@/api/ecw/memberManagement";
export default { export default {
name: "EcwMembermanagementIntegralrecord", name: "EcwMembermanagementIntegralrecord",
props:{
memberCode:[String, Number],
},
data() { data() {
return { return {
dateRangeCreateTime: [], dateRangeCreateTime: [],
...@@ -285,7 +294,27 @@ export default { ...@@ -285,7 +294,27 @@ export default {
return this.$i18n.locale === "zh_CN"; return this.$i18n.locale === "zh_CN";
}, },
}, },
watch:{
memberCode:{
handler: function (newVal, oldVal) {
if(newVal){
this.queryParams.memberId= newVal
}
},
immediate: true,
},
$route: {
handler: function (route) {
const query = route.query;
if (query.memberCode) {
this.queryParams.key = this.$route.query.memberCode
}
},
immediate: true,
},
},
created() { created() {
this.handleQuery(); this.handleQuery();
}, },
activated() { activated() {
......
...@@ -385,14 +385,14 @@ export default { ...@@ -385,14 +385,14 @@ export default {
// 编辑操作按钮 // 编辑操作按钮
handleUpdate(row) { handleUpdate(row) {
this.$router.push({ this.$router.push({
path: "/memberManagement/addIntegrationRuleOperation", path: "/member/memberManagement/addIntegrationRuleOperation",
query: { id: row.id, pageStatus: "edit" }, query: { id: row.id, pageStatus: "edit" },
}); });
}, },
// 查看按钮操作 // 查看按钮操作
handleViewDetails(row) { handleViewDetails(row) {
this.$router.push({ this.$router.push({
path: "/memberManagement/addIntegrationRuleOperation", path: "/member/memberManagement/addIntegrationRuleOperation",
query: { id: row.id, pageStatus: "view" }, query: { id: row.id, pageStatus: "view" },
}); });
}, },
......
...@@ -149,7 +149,10 @@ ...@@ -149,7 +149,10 @@
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button
type="text" type="text"
@click="$router.push('/memberManagement/integralRecord')" @click="$router.push(
{path:'/member/memberManagement/integralRecord',
query: {memberCode:row.memberCode}
})"
>{{ row.holdScore }}</el-button >{{ row.holdScore }}</el-button
> >
</template> </template>
...@@ -158,7 +161,9 @@ ...@@ -158,7 +161,9 @@
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button
type="text" type="text"
@click="$router.push('/memberManagement/exchangeRecord')" @click="$router.push({path:'/member/giftManagement/exchangeRecord',
query: {memberCode:row.memberCode}
})"
>{{ row.usedScore }}</el-button >{{ row.usedScore }}</el-button
> >
</template> </template>
......
...@@ -197,7 +197,7 @@ export default { ...@@ -197,7 +197,7 @@ export default {
goShareDetails(row) { goShareDetails(row) {
if (row.triggerCount != "0") { if (row.triggerCount != "0") {
this.$router.push({ this.$router.push({
path: "/memberManagement/sharingStatisticalDetails", path: "/member/memberManagement/sharingStatisticalDetails",
query: { query: {
id: row.id, id: row.id,
}, },
......
...@@ -207,7 +207,7 @@ export default { ...@@ -207,7 +207,7 @@ export default {
goShareDetails(row) { goShareDetails(row) {
if (row.triggerCount != "0") { if (row.triggerCount != "0") {
this.$router.push({ this.$router.push({
path: "/memberManagement/sharingStatisticalDetails", path: "/member/memberManagement/sharingStatisticalDetails",
query: { query: {
id: row.id, id: row.id,
}, },
......
...@@ -3,20 +3,9 @@ ...@@ -3,20 +3,9 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item :label="$t('编号')" prop="orderNo"> <el-form-item :label="$t('编号')" prop="orderNo">
<el-input <el-input v-model.trim="noParam.value" :placeholder="$t('请输入订单号、唛头、提单号')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(noParam, 'value')">
v-model.trim="noParam.value"
:placeholder="$t('请输入订单号、唛头、提单号')"
clearable
@keyup.enter.native="handleQuery"
@input="replaceSpace(noParam, 'value')"
>
<template slot="prepend"> <template slot="prepend">
<dict-selector <dict-selector :type="DICT_TYPE.ORDER_QUERY_NO_FIELD" defaultable v-model="noParam.key" class="w-50" />
:type="DICT_TYPE.ORDER_QUERY_NO_FIELD"
defaultable
v-model="noParam.key"
class="w-50"
/>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -31,69 +20,26 @@ ...@@ -31,69 +20,26 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的国')" prop="destCountryId"> <el-form-item :label="$t('目的国')" prop="destCountryId">
<el-select <el-select v-model="destCountryId" multiple :label="destCountryId" :placeholder="$t('请选择目的国')" clearable @change="handleQuery">
v-model="destCountryId" <el-option v-for="item in AddressProvince" :key="item.guojia" :label="item.guojiaName" :value="item.guojia"></el-option>
multiple
:label="destCountryId"
:placeholder="$t('请选择目的国')"
clearable
@change="handleQuery"
>
<el-option
v-for="item in AddressProvince"
:key="item.guojia"
:label="item.guojiaName"
:value="item.guojia"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的城市')" prop="objectiveId"> <el-form-item :label="$t('目的城市')" prop="objectiveId">
<el-select <el-select v-model="objectiveId" multiple :placeholder="$t('请选择目的城市')" style="width: 200px" clearable @change="handleQuery">
v-model="objectiveId" <el-option v-for="item in AddressCity" :key="item.shi" :label="item.shiName" :value="item.shi"></el-option>
multiple
:placeholder="$t('请选择目的城市')"
style="width: 200px"
clearable
@change="handleQuery"
>
<el-option
v-for="item in AddressCity"
:key="item.shi"
:label="item.shiName"
:value="item.shi"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的仓')" prop="destWarehouseId"> <el-form-item :label="$t('目的仓')" prop="destWarehouseId">
<el-select <el-select v-model="destWarehouseId" multiple :placeholder="$t('请选择目的仓')" style="width: 200px" clearable @change="handleQuery">
v-model="destWarehouseId" <el-option v-for="item in AddressTown" :key="item.id" :label="item.titleZh" :value="item.id"></el-option>
multiple
:placeholder="$t('请选择目的仓')"
style="width: 200px"
clearable
@change="handleQuery"
>
<el-option
v-for="item in AddressTown"
:key="item.id"
:label="item.titleZh"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item :label="$t('客户经理')"> <el-form-item :label="$t('客户经理')">
<user-selector <user-selector manage v-model="queryParams.salesmanIds" multiple clearable @change="handleQuery" :prepend="{ id: 0, nickname: $t('未分配客户经理') }" />
manage
v-model="queryParams.salesmanIds"
multiple
clearable
@change="handleQuery"
:prepend="{ id: 0, nickname: $t('未分配客户经理') }"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch"> <el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model.number="queryParams.transportId" clearable @change="handleQuery"/> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model.number="queryParams.transportId" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="channelIds"> <el-form-item :label="$t('出货渠道')" prop="channelIds">
<selector clearable :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelIds" multiple></selector> <selector clearable :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelIds" multiple></selector>
...@@ -102,20 +48,9 @@ ...@@ -102,20 +48,9 @@
<el-input v-model="queryParams.orderNo" :placeholder="$t('订单编号')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/\s+/g, '')" /> <el-input v-model="queryParams.orderNo" :placeholder="$t('订单编号')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/\s+/g, '')" />
</el-form-item>--> </el-form-item>-->
<el-form-item :label="$t('商品') + ':'" v-show="showSearch"> <el-form-item :label="$t('商品') + ':'" v-show="showSearch">
<el-input <el-input v-model.trim="prodParam.value" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(prodParam, 'value')">
v-model.trim="prodParam.value"
:placeholder="$t('请输入商品类型、品名或品牌')"
clearable
@keyup.enter.native="handleQuery"
@input="replaceSpace(prodParam, 'value')"
>
<template slot="prepend"> <template slot="prepend">
<dict-selector <dict-selector :type="DICT_TYPE.ORDER_QUERY_PROD_FIELD" defaultable v-model="prodParam.key" class="w-50" />
:type="DICT_TYPE.ORDER_QUERY_PROD_FIELD"
defaultable
v-model="prodParam.key"
class="w-50"
/>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -123,8 +58,7 @@ ...@@ -123,8 +58,7 @@
<dict-selector v-model="queryParams.cargoControlStatusList" multiple :type="DICT_TYPE.CONTROL_GOODS_STATUS" clearable @change="handleQuery" /> <dict-selector v-model="queryParams.cargoControlStatusList" multiple :type="DICT_TYPE.CONTROL_GOODS_STATUS" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单状态')" prop="statusList" v-show="showSearch"> <el-form-item :label="$t('订单状态')" prop="statusList" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" multiple v-model="queryParams.statusList" <dict-selector :type="DICT_TYPE.ORDER_STATUS" multiple v-model="queryParams.statusList" @keyup.enter.native="handleQuery" clearable @change="handleQuery" />
@keyup.enter.native="handleQuery" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<!--<el-form-item :label="$t('提单号')" prop="tidanNo"> <!--<el-form-item :label="$t('提单号')" prop="tidanNo">
<el-input v-model.trim="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model.trim="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" />
...@@ -144,13 +78,7 @@ ...@@ -144,13 +78,7 @@
<el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>--> </el-form-item>-->
<el-form-item :label="$t('备案属性')" prop="productRecords" v-show="showSearch"> <el-form-item :label="$t('备案属性')" prop="productRecords" v-show="showSearch">
<dict-selector <dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" multiple v-model="queryParams.productRecords" clearable @change="handleQuery" />
:type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
multiple
v-model="queryParams.productRecords"
clearable
@change="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('外部仓')" prop="isExternalWarehouse" v-show="showSearch"> <el-form-item :label="$t('外部仓')" prop="isExternalWarehouse" v-show="showSearch">
<el-select v-model="queryParams.isExternalWarehouse" :placeholder="$t('请选择')" clearable @change="handleQuery"> <el-select v-model="queryParams.isExternalWarehouse" :placeholder="$t('请选择')" clearable @change="handleQuery">
...@@ -159,61 +87,32 @@ ...@@ -159,61 +87,32 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('增值服务')" prop="types" v-show="showSearch"> <el-form-item :label="$t('增值服务')" prop="types" v-show="showSearch">
<el-select v-model="queryParams.types" :placeholder="$t('请选择')" clearable multiple @change="handleQuery" > <el-select v-model="queryParams.types" :placeholder="$t('请选择')" clearable multiple @change="handleQuery">
<el-option :label="$t('普通订单')" :value="0"></el-option> <el-option :label="$t('普通订单')" :value="0"></el-option>
<el-option :label="$t('集运服务')" :value="1"></el-option> <el-option :label="$t('集运服务')" :value="1"></el-option>
<el-option :label="$t('海外仓')" :value="2"></el-option> <el-option :label="$t('海外仓')" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('商品类型')" prop="goodsTypes" v-show="showSearch"> <el-form-item :label="$t('商品类型')" prop="goodsTypes" v-show="showSearch">
<selector v-model="queryParams.goodsTypes" multiple :options="productAttrList" label-field="attrName" value-field="id"> <selector v-model="queryParams.goodsTypes" multiple :options="productAttrList" label-field="attrName" value-field="id"> </selector>
</selector>
</el-form-item> </el-form-item>
<!--<el-form-item :label="$t('订单放货锁定收货人到期时间')" prop="lockConsigneeTime"> <!--<el-form-item :label="$t('订单放货锁定收货人到期时间')" prop="lockConsigneeTime">
</el-form-item>--> </el-form-item>-->
<el-form-item :label="$t('提货状态')" v-show="showSearch"> <el-form-item :label="$t('提货状态')" v-show="showSearch">
<dict-selector <dict-selector :type="DICT_TYPE.PICK_STATE" multiple v-model="queryParams.pickStateList" clearable @change="handleQuery" />
:type="DICT_TYPE.PICK_STATE"
multiple
v-model="queryParams.pickStateList"
clearable
@change="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('放货率')" v-show="showSearch"> <el-form-item :label="$t('放货率')" v-show="showSearch">
<el-input <el-input type="number" v-model.trim="releaseRatio.value" :placeholder="$t('请输入数字')" clearable @keyup.enter.native="handleQuery">
type="number"
v-model.trim="releaseRatio.value"
:placeholder="$t('请输入数字')"
clearable
@keyup.enter.native="handleQuery"
>
<template slot="prepend"> <template slot="prepend">
<dict-selector <dict-selector :type="DICT_TYPE.RELEASE_RATIO_FIELD" defaultable v-model="releaseRatio.key" class="w-50" />
:type="DICT_TYPE.RELEASE_RATIO_FIELD"
defaultable
v-model="releaseRatio.key"
class="w-50"
/>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('提货率')" v-show="showSearch"> <el-form-item :label="$t('提货率')" v-show="showSearch">
<el-input <el-input type="number" v-model.trim="pickRatio.value" :placeholder="$t('请输入数字')" clearable @keyup.enter.native="handleQuery">
type="number"
v-model.trim="pickRatio.value"
:placeholder="$t('请输入数字')"
clearable
@keyup.enter.native="handleQuery"
>
<template slot="prepend"> <template slot="prepend">
<dict-selector <dict-selector :type="DICT_TYPE.PICK_RATIO_FIELD" defaultable v-model="pickRatio.key" class="w-50" />
:type="DICT_TYPE.PICK_RATIO_FIELD"
defaultable
v-model="pickRatio.key"
class="w-50"
/>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -224,31 +123,22 @@ ...@@ -224,31 +123,22 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('特需')" prop="packageTypeArr" v-show="showSearch"> <el-form-item :label="$t('特需')" prop="packageTypeArr" v-show="showSearch">
<el-select <el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable>
v-model="queryParams.packageTypeArr"
multiple
:placeholder="$t('请选择')"
clearable
>
<template v-for="item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)"> <template v-for="item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)">
<el-option <el-option :label="$l(item, 'label')" :value="item.value"></el-option>
:label="$l(item, 'label')"
:value="item.value"
></el-option>
</template> </template>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" v-hasPermi="['ecw:cargo:export:search']">{{ $t("导出") }}</el-button>
:loading="exportLoading" v-hasPermi="['ecw:cargo:export:search']">{{$t('导出')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="2"> <el-col :span="2">
<el-button v-hasPermi="['ecw:cargo_control:batch_review']" type="primary" plain icon="el-icon-setting" size="mini" :disabled="multiple" @click="batchReview">{{$t('批量复核')}}</el-button> <el-button v-hasPermi="['ecw:cargo_control:batch_review']" type="primary" plain icon="el-icon-setting" size="mini" :disabled="multiple" @click="batchReview">{{ $t("批量复核") }}</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
...@@ -257,48 +147,44 @@ ...@@ -257,48 +147,44 @@
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('订单编号')" width="120px" align="center" prop="orderNo" > <el-table-column :label="$t('订单编号')" width="120px" align="center" prop="orderNo">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="`detail?orderId=` + scope.row.orderId">{{ scope.row.orderNo }}</router-link> <router-link :to="`detail?orderId=` + scope.row.orderId">{{ scope.row.orderNo }}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('唛头')" align="center" prop="marks" /> <el-table-column :label="$t('唛头')" align="center" prop="marks" />
<el-table-column :label="$t('箱数')" align="center" prop="sumNum" > <el-table-column :label="$t('箱数')" align="center" prop="sumNum">
<template v-slot="{row}"> <template v-slot="{ row }">
{{row.sumNum > 0 ? row.sumNum : row.totalNum}} {{ row.sumNum > 0 ? row.sumNum : row.totalNum }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('已放箱数')" align="center" prop="sumWeight"> <el-table-column :label="$t('已放箱数')" align="center" prop="sumWeight">
<template slot-scope="{row}">{{row.releaseNum}}</template> <template slot-scope="{ row }">{{ row.releaseNum }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('放货率')" align="left" prop="status"> <el-table-column :label="$t('放货率')" align="left" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }"> {{ row.releaseRatio }}% </template>
{{row.releaseRatio}}%
</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('订单状态')" align="left" prop="status"> <el-table-column :label="$t('订单状态')" align="left" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }">
{{row.statusMsg}} {{ row.statusMsg }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('提货率')" align="left" prop="status"> <el-table-column :label="$t('提货率')" align="left" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }"> {{ row.pickRatio || 0 }}% </template>
{{row.pickRatio || 0}}%
</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('已卸柜/已到仓时间')" align="left" prop="status"> <el-table-column :label="$t('已卸柜/已到仓时间')" align="left" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }">
{{row.unloadTime}} {{ row.unloadTime }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('放货锁定收货人到期时间')" align="left" prop="status"> <el-table-column :label="$t('放货锁定收货人到期时间')" align="left" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }">
{{row.lockConsigneeTime}} {{ row.lockConsigneeTime }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('订单限制修改收货人')" align="left" prop="status"> <el-table-column :label="$t('订单限制修改收货人')" align="left" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }">
{{row.isLimitUpdateConsignee ? $t('') : $t('')}} {{ row.isLimitUpdateConsignee ? $t("") : $t("") }}
</template> </template>
</el-table-column> </el-table-column>
<!--<el-table-column :label="$t('提单号')" align="center" prop="status"> <!--<el-table-column :label="$t('提单号')" align="center" prop="status">
...@@ -307,11 +193,11 @@ ...@@ -307,11 +193,11 @@
</template> </template>
</el-table-column>--> </el-table-column>-->
<el-table-column :label="$t('放货人')" align="center" prop="sumWeight"> <el-table-column :label="$t('放货人')" align="center" prop="sumWeight">
<template slot-scope="{row}">{{row.cargoControlName}}</template> <template slot-scope="{ row }">{{ row.cargoControlName }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('控货状态')" align="center" prop="transportId"> <el-table-column :label="$t('控货状态')" align="center" prop="transportId">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<template v-if="row.cargoControlStatus == 1 && row.isToReview">{{$t('放货中')}}</template> <template v-if="row.cargoControlStatus == 1 && row.isToReview">{{ $t("放货中") }}</template>
<dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" /> <dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" />
</template> </template>
</el-table-column> </el-table-column>
...@@ -323,100 +209,89 @@ ...@@ -323,100 +209,89 @@
https://czxy.cpolar.cn/task-view-266.html https://czxy.cpolar.cn/task-view-266.html
--> -->
<!--修改放货限制--> <!--修改放货限制-->
<el-button <el-button type="text" size="mini" @click="showUpdateReleaseLimit = scope.row" v-hasPermi="['ecw:cargo_control:updateReleaseLimit']" :disabled="scope.row.cargoControlStatus == 1 && !scope.row.isToReview">{{ $t("修改放货限制") }}</el-button>
type="text"
size="mini"
@click="showUpdateReleaseLimit=scope.row"
v-hasPermi="['ecw:cargo_control:updateReleaseLimit']"
:disabled="scope.row.cargoControlStatus == 1 && !scope.row.isToReview"
>{{$t('修改放货限制')}}</el-button>
<!--控货中,已入仓--> <!--控货中,已入仓-->
<template v-if="[0,2].indexOf(scope.row.cargoControlStatus) > -1 && scope.row.sumNum > 0"> <template v-if="[0, 2].indexOf(scope.row.cargoControlStatus) > -1 && scope.row.sumNum > 0">
<!-- <!--
2408新需求,如果有修改放货限制审批 和 海外仓修改申请在途则置灰 2408新需求,如果有修改放货限制审批 和 海外仓修改申请在途则置灰
https://czxy.cpolar.cn/task-view-266.html https://czxy.cpolar.cn/task-view-266.html
--> -->
<el-button <el-button type="text" size="mini" @click="showReleaseOrderId = scope.row.orderId" v-hasPermi="['ecw:cargo_control:release']" :disabled="scope.row.auditType == 61 || scope.row.auditType == 62">{{ $t("放货") }}</el-button>
type="text" <el-button type="text" size="mini" @click="showTransferOrder = scope.row" v-hasPermi="['ecw:cargo_control:transfer']">{{ $t("控货权转移") }}</el-button>
size="mini"
@click="showReleaseOrderId=scope.row.orderId"
v-hasPermi="['ecw:cargo_control:release']"
:disabled="scope.row.auditType == 61 || scope.row.auditType == 62"
>{{$t('放货')}}</el-button>
<el-button type="text" size="mini" @click="showTransferOrder = scope.row" v-hasPermi="['ecw:cargo_control:transfer']">{{$t('控货权转移')}}</el-button>
</template> </template>
<!--部分控货--> <!--部分控货-->
<template v-if="scope.row.cargoControlStatus == 2"> <template v-if="scope.row.cargoControlStatus == 2">
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:update']">{{$t('修改')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:update']">{{ $t("修改") }}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:cancel']">{{$t('取消')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:cancel']">{{ $t("取消") }}</el-button>
<el-button type="text" size="mini" @click="review(scope.row)" v-if="scope.row.isToReview" v-hasPermi="['ecw:cargo_control:review']">{{$t('放货复核')}}</el-button> <el-button type="text" size="mini" @click="review(scope.row)" v-if="scope.row.isToReview" v-hasPermi="['ecw:cargo_control:review']">{{ $t("放货复核") }}</el-button>
</template> </template>
<!--已全部放货,但是未复核--> <!--已全部放货,但是未复核-->
<template v-if="scope.row.cargoControlStatus == 1 && scope.row.isToReview"> <template v-if="scope.row.cargoControlStatus == 1 && scope.row.isToReview">
<el-button type="text" size="mini" @click="review(scope.row)" v-hasPermi="['ecw:cargo_control:review']">{{$t('放货复核')}}</el-button> <el-button type="text" size="mini" @click="review(scope.row)" v-hasPermi="['ecw:cargo_control:review']">{{ $t("放货复核") }}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:update']">{{$t('修改')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:update']">{{ $t("修改") }}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:cancel']">{{$t('取消')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:cancel']">{{ $t("取消") }}</el-button>
</template> </template>
<!--已完成放货,且没有待复核;真正的放货完成--> <!--已完成放货,且没有待复核;真正的放货完成-->
<template v-if="scope.row.cargoControlStatus == 1 && !scope.row.isToReview"> <template v-if="scope.row.cargoControlStatus == 1 && !scope.row.isToReview">
<!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> --> <!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> -->
<el-button type="text" size="mini" @click="cargoTransfer(scope.row)" v-hasPermi="['ecw:cargo_control:cargo_transfer']">{{$t('调货')}}</el-button> <el-button type="text" size="mini" @click="cargoTransfer(scope.row)" v-hasPermi="['ecw:cargo_control:cargo_transfer']">{{ $t("调货") }}</el-button>
<el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods" v-hasPermi="['ecw:cargo_control:fallback']">{{$t('反复核')}}</el-button> <el-button type="text" size="mini" @click="showFallbackOrder = scope.row" v-if="scope.row.isReleaseAfterGoods" v-hasPermi="['ecw:cargo_control:fallback']">{{ $t("反复核") }}</el-button>
</template> </template>
<el-button type="text" size="mini" @click="showLogOrderId=scope.row.orderId" v-hasPermi="['ecw:cargo_control:log']">{{$t('控货日志')}}</el-button> <el-button type="text" size="mini" @click="showLogOrderId = scope.row.orderId" v-hasPermi="['ecw:cargo_control:log']">{{ $t("控货日志") }}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{$t('查看')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{ $t("查看") }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" @pagination="getList" />
@pagination="getList" />
<transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder=null" /> <transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder = null" />
<release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" /> <release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId = null" @success="onReleaseSuccess" />
<transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" @success="onTransferCargoSuccess" :cargoControlPickId="pickInfo ? pickInfo.id : 0" /> <transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId = null" @success="onTransferCargoSuccess" :cargoControlPickId="pickInfo ? pickInfo.id : 0" />
<fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder=null" @success="onFallbackSuccess" :index="null" /> <fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder = null" @success="onFallbackSuccess" :index="null" />
<!--控货日志--> <!--控货日志-->
<cargo-log-list v-if="showLogOrderId" :order-id="showLogOrderId" @close="showLogOrderId=null" /> <cargo-log-list v-if="showLogOrderId" :order-id="showLogOrderId" @close="showLogOrderId = null" />
<!--修改放货限制--> <!--修改放货限制-->
<update-release-limit <update-release-limit v-if="showUpdateReleaseLimit" :order="showUpdateReleaseLimit" @close="showUpdateReleaseLimit = null" @success="onUpdateReleaseLimitSuccess" />
v-if="showUpdateReleaseLimit"
:order="showUpdateReleaseLimit"
@close="showUpdateReleaseLimit=null"
@success="onUpdateReleaseLimitSuccess"
/>
</div> </div>
</template> </template>
<script> <script>
import Selector from '@/components/Selector' import Selector from "@/components/Selector"
import ProductSelector from '@/components/ProductSelector' import ProductSelector from "@/components/ProductSelector"
import { getProductAttrList } from '@/api/ecw/productAttr' import { getProductAttrList } from "@/api/ecw/productAttr"
import CustomerSelector from '@/components/CustomerSelector' import CustomerSelector from "@/components/CustomerSelector"
import UpdateReleaseLimit from '@/views/ecw/order/components/updateReleaseLimit.vue' import UpdateReleaseLimit from "@/views/ecw/order/components/updateReleaseLimit.vue"
/* import { getTradeCityList } from '@/api/ecw/region' */ /* import { getTradeCityList } from '@/api/ecw/region' */
import Transfer from '@/views/ecw/order/components/Transfer' import Transfer from "@/views/ecw/order/components/Transfer"
import Release from './components/Release' import Release from "./components/Release"
import CargoControlEdit from './components/CargoControlEdit' import CargoControlEdit from "./components/CargoControlEdit"
import { getCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo, exportCargoControl } from "@/api/ecw/orderCargoControl" import { getCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo, exportCargoControl } from "@/api/ecw/orderCargoControl"
import TransferCargo from '@/views/ecw/order/components/TransferCargo' import TransferCargo from "@/views/ecw/order/components/TransferCargo"
import Fallback from './components/Fallback' import Fallback from "./components/Fallback"
import {getWarehouseList} from '@/api/ecw/warehouse' import { getWarehouseList } from "@/api/ecw/warehouse"
import CargoLogList from "@/views/ecw/order/components/CargoLogList.vue"; import CargoLogList from "@/views/ecw/order/components/CargoLogList.vue"
import {getRegionList} from "@/api/ecw/order" import { getRegionList } from "@/api/ecw/order"
import UserSelector from "@/components/UserSelector"; import UserSelector from "@/components/UserSelector"
import {getChannelList} from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel"
export default { export default {
name: "EcwOrderCargocontrol", name: "EcwOrderCargocontrol",
components: { components: {
UpdateReleaseLimit, UpdateReleaseLimit,
CargoLogList, CargoLogList,
UserSelector, UserSelector,
CustomerSelector, ProductSelector, Selector, Transfer, Release,CargoControlEdit, TransferCargo, Fallback CustomerSelector,
ProductSelector,
Selector,
Transfer,
Release,
CargoControlEdit,
TransferCargo,
Fallback
}, },
data() { data() {
return { return {
...@@ -446,9 +321,9 @@ export default { ...@@ -446,9 +321,9 @@ export default {
tradeCityList: [], tradeCityList: [],
warehouseList: [], warehouseList: [],
productAttrList: [], // 商品属性 productAttrList: [], // 商品属性
molecule: '', //重货比分子 molecule: "", //重货比分子
denominator: '', //重货比分母 denominator: "", //重货比分母
dateFilterType: '', //日期筛选类别 dateFilterType: "", //日期筛选类别
dateFilter: [], //筛选日期 dateFilter: [], //筛选日期
showTransferOrder: null, // 控制权转移操作订单 showTransferOrder: null, // 控制权转移操作订单
showReleaseOrderId: null, // 放货ID showReleaseOrderId: null, // 放货ID
...@@ -460,17 +335,17 @@ export default { ...@@ -460,17 +335,17 @@ export default {
// 编号搜索条件 // 编号搜索条件
noParam: { noParam: {
key: "numberKey", key: "numberKey",
value: "", value: ""
}, },
// 商品搜索条件 // 商品搜索条件
prodParam: { prodParam: {
key: "prodKey", key: "prodKey",
value: "", value: ""
}, },
// 放货率 // 放货率
releaseRatio:{ releaseRatio: {
key: 'geReleaseRatio', key: "geReleaseRatio",
value: '' value: ""
}, },
channelList: [], channelList: [],
AddressProvince: [], AddressProvince: [],
...@@ -481,57 +356,57 @@ export default { ...@@ -481,57 +356,57 @@ export default {
destWarehouseId: null, destWarehouseId: null,
pickRatio: { pickRatio: {
key: "gePickRatio", key: "gePickRatio",
value: "", value: ""
}
} }
};
}, },
computed: { computed: {
expoerCityList() { expoerCityList() {
return this.tradeCityList.filter(item => item.type == 2) return this.tradeCityList.filter((item) => item.type == 2)
}, },
importCityList() { importCityList() {
return this.tradeCityList.filter(item => item.type == 1) return this.tradeCityList.filter((item) => item.type == 1)
}, },
exportWarehouseList(){ exportWarehouseList() {
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 2 || item.tradeType == 3)
}, },
importWarehouseList(){ importWarehouseList() {
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 1 || item.tradeType == 3)
}, },
combinedQueryParams(){ combinedQueryParams() {
let timeParams = {} let timeParams = {}
if(this.dateFilterType && this.dateFilter){ if (this.dateFilterType && this.dateFilter) {
timeParams['begin' + this.dateFilterType] = this.dateFilter[0] timeParams["begin" + this.dateFilterType] = this.dateFilter[0]
timeParams['end' + this.dateFilterType] = this.dateFilter[1] timeParams["end" + this.dateFilterType] = this.dateFilter[1]
} }
let queryParams = {...this.queryParams} let queryParams = { ...this.queryParams }
if (this.noParam.value) { if (this.noParam.value) {
queryParams[this.noParam.key] = this.noParam.value; queryParams[this.noParam.key] = this.noParam.value
} }
//目的国 //目的国
if (this.destCountryId != null && this.destCountryId != "") { if (this.destCountryId != null && this.destCountryId != "") {
queryParams.destCountryIds = this.destCountryId; queryParams.destCountryIds = this.destCountryId
} }
//目的城市 //目的城市
if (this.objectiveId != null && this.objectiveId != "") { if (this.objectiveId != null && this.objectiveId != "") {
queryParams.objectiveIds = this.objectiveId; queryParams.objectiveIds = this.objectiveId
} }
//目的仓 //目的仓
if (this.destWarehouseId != null && this.destWarehouseId != "") { if (this.destWarehouseId != null && this.destWarehouseId != "") {
queryParams.destWarehouseIds = this.destWarehouseId; queryParams.destWarehouseIds = this.destWarehouseId
} }
// 提货率 // 提货率
if (this.pickRatio.value) { if (this.pickRatio.value) {
queryParams[this.pickRatio.key] = this.pickRatio.value queryParams[this.pickRatio.key] = this.pickRatio.value
} }
// 放货率 // 放货率
if(this.releaseRatio.value){ if (this.releaseRatio.value) {
queryParams[this.releaseRatio.key] = this.releaseRatio.value queryParams[this.releaseRatio.key] = this.releaseRatio.value
} }
if(this.prodParam.value){ if (this.prodParam.value) {
queryParams[this.prodParam.key] = this.prodParam.value queryParams[this.prodParam.key] = this.prodParam.value
} }
if(queryParams.statusList?.length){ if (queryParams.statusList?.length) {
queryParams.statusString = queryParams.statusList.join(",") queryParams.statusString = queryParams.statusList.join(",")
delete queryParams.statusList delete queryParams.statusList
} }
...@@ -544,82 +419,58 @@ export default { ...@@ -544,82 +419,58 @@ export default {
deep: true, //深度监听 deep: true, //深度监听
handler() { handler() {
//每当值省份值改变时其下地区值进行清空 //每当值省份值改变时其下地区值进行清空
this.AddressCity = []; this.AddressCity = []
this.AddressTown = []; this.AddressTown = []
this.objectiveId = ""; this.objectiveId = ""
this.destWarehouseId = ""; this.destWarehouseId = ""
this.findByprovinceCode(); this.findByprovinceCode()
if (this.destCountryId == "") { if (this.destCountryId == "") {
this.getAddressCity() this.getAddressCity()
this.getAddressTown() this.getAddressTown()
} else if ( } else if (this.destCountryId != "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId != "" &&
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.getAddressTown() this.getAddressTown()
} }
}, }
}, },
objectiveId: { objectiveId: {
deep: true, //深度监听 deep: true, //深度监听
handler() { handler() {
this.AddressTown = []; this.AddressTown = []
this.destWarehouseId = ""; this.destWarehouseId = ""
this.findBycityCode(); this.findBycityCode()
if ( if (this.objectiveId != "" && this.destCountryId != "" && this.destWarehouseId == "") {
this.objectiveId != "" &&
this.destCountryId != "" &&
this.destWarehouseId == ""
) {
//获取当前城市值id,获取该城市下区域 //获取当前城市值id,获取该城市下区域
} else if ( } else if (this.destCountryId == "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId == "" &&
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.getAddressTown() this.getAddressTown()
} else if ( } else if (this.destCountryId != "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId != "" && this.findByprovinceCode()
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.findByprovinceCode();
this.getAddressTown() this.getAddressTown()
} }
}, }
}, },
destWarehouseId: { destWarehouseId: {
deep: true, //深度监听 deep: true, //深度监听
handler() { handler() {
if ( if (this.objectiveId != "" && this.destCountryId != "" && this.destWarehouseId == "") {
this.objectiveId != "" &&
this.destCountryId != "" &&
this.destWarehouseId == ""
) {
//获取当前城市值id,获取该城市下区域 //获取当前城市值id,获取该城市下区域
this.findBycityCode(); this.findBycityCode()
} else if ( } else if (this.destCountryId != "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId != "" &&
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.getAddressTown() this.getAddressTown()
} }
}
}
}, },
}, activated() {
},
activated(){
// 要求保留页码 https://zentao.test.jdshangmen.com/bug-view-3079.html // 要求保留页码 https://zentao.test.jdshangmen.com/bug-view-3079.html
this.getList() this.getList()
}, },
created() { created() {
this.getList(); this.getList()
getProductAttrList().then(res => this.productAttrList = res.data) getProductAttrList().then((res) => (this.productAttrList = res.data))
// getTradeCityList().then(res => this.tradeCityList = res.data) // getTradeCityList().then(res => this.tradeCityList = res.data)
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then((res) => (this.warehouseList = res.data))
getChannelList().then(res => this.channelList = res.data) getChannelList().then((res) => (this.channelList = res.data))
this.getAddressProvince() this.getAddressProvince()
this.getAddressCity() this.getAddressCity()
this.getAddressTown() this.getAddressTown()
...@@ -627,106 +478,112 @@ export default { ...@@ -627,106 +478,112 @@ export default {
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true
// 执行查询 // 执行查询
const query = { ...this.combinedQueryParams }; const query = { ...this.combinedQueryParams }
if (query.packageTypeArr && query.packageTypeArr.length) { if (query.packageTypeArr && query.packageTypeArr.length) {
query.packageType = query.packageTypeArr.join(","); query.packageType = query.packageTypeArr.join(",")
} }
getCargoControlOrderPage(query).then(response => { getCargoControlOrderPage(query).then((response) => {
this.list = [] this.list = []
// 直接更细数据,可能因为elTable的部分渲染产生bug,比如权限控制异常 // 直接更细数据,可能因为elTable的部分渲染产生bug,比如权限控制异常
this.$nextTick( () => { this.$nextTick(() => {
this.list = response.data.list; this.list = response.data.list
this.total = response.data.total; this.total = response.data.total
}) })
this.loading = false; this.loading = false
}); })
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.page = 1; this.queryParams.page = 1
this.$nextTick(this.getList) this.$nextTick(this.getList)
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.resetForm("queryForm")
this.prodParam.value = '' this.prodParam.value = ""
this.releaseRatio.value = '' this.releaseRatio.value = ""
this.pickRatio.value = '' this.pickRatio.value = ""
this.handleQuery(); this.handleQuery()
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
// 执行导出 // 执行导出
this.$modal.confirm('是否确认导出所有订单数据项?').then(() => { this.$modal
this.exportLoading = true; .confirm("是否确认导出所有订单数据项?")
return exportCargoControl(this.combinedQueryParams); .then(() => {
}).then(response => { this.exportLoading = true
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载')) return exportCargoControl(this.combinedQueryParams)
this.exportLoading = false; })
}).catch(() => { }); .then((response) => {
this.$message.success(this.$t("已加入导出队列,请稍后在下载日志中下载"))
this.exportLoading = false
})
.catch(() => {})
}, },
// 表格多选 // 表格多选
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.orderId) this.ids = selection.map((item) => item.orderId)
this.single = selection.length !== 1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
toDetail(row){ toDetail(row) {
this.$router.push('cargo_control/detail?id=' + row.orderId) this.$router.push("cargo_control/detail?id=" + row.orderId)
}, },
// 复核 // 复核
review(row){ review(row) {
// 未放货完成则打开详情,已完成放货则弹窗 // 未放货完成则打开详情,已完成放货则弹窗
if(row.releaseNum < row.sumNum){ if (row.releaseNum < row.sumNum) {
return this.toDetail(row) return this.toDetail(row)
} }
this.$confirm('已核实放货信息,确认放货?') this.$confirm("已核实放货信息,确认放货?")
.then(res => { .then((res) => {
return orderReview(row.orderId) return orderReview(row.orderId)
}) })
.then(res => { .then((res) => {
this.$message.success('操作成功') this.$message.success("操作成功")
this.getList() this.getList()
}) })
}, },
// 批量复核 // 批量复核
batchReview(){ batchReview() {
this.$confirm(this.$t('确定复核选中的订单么?')).then(() => { this.$confirm(this.$t("确定复核选中的订单么?"))
return batchReview("orderIds=" + this.ids.join(',')) .then(() => {
}).then(() => { return batchReview("orderIds=" + this.ids.join(","))
this.$message.success(this.$t('操作成功')) })
.then(() => {
this.$message.success(this.$t("操作成功"))
this.getList() this.getList()
}) })
}, },
cargoTransfer(row){ cargoTransfer(row) {
getPickRleaseInfo(row.orderId).then(res => { getPickRleaseInfo(row.orderId).then((res) => {
if(res.data.cargoControlPickBackVOList && res.data.cargoControlPickBackVOList.length > 1){ if (res.data.cargoControlPickBackVOList && res.data.cargoControlPickBackVOList.length > 1) {
this.toDetail(row) this.toDetail(row)
} }
this.pickInfo = res.data.cargoControlPickBackVOList[0] this.pickInfo = res.data.cargoControlPickBackVOList[0]
this.showTransferCargoOrderId=row.orderId this.showTransferCargoOrderId = row.orderId
}) })
}, },
onReleaseSuccess(){ onReleaseSuccess() {
this.showReleaseOrderId = null this.showReleaseOrderId = null
this.getList() this.getList()
}, },
onFallbackSuccess(){ onFallbackSuccess() {
this.showFallbackOrder = null this.showFallbackOrder = null
this.getList() this.getList()
}, },
onTransferCargoSuccess(){ onTransferCargoSuccess() {
this.showTransferCargoOrderId = null this.showTransferCargoOrderId = null
this.getList() this.getList()
}, },
// 修改放货审批限制成功 // 修改放货审批限制成功
onUpdateReleaseLimitSuccess(){ onUpdateReleaseLimitSuccess() {
this.showUpdateReleaseLimit = null this.showUpdateReleaseLimit = null
this.getList() this.getList()
}, },
...@@ -735,39 +592,39 @@ export default { ...@@ -735,39 +592,39 @@ export default {
this.countryList = response.data; this.countryList = response.data;
})*/ })*/
getRegionList(1, 1).then(({ data }) => { getRegionList(1, 1).then(({ data }) => {
this.AddressProvince = data; this.AddressProvince = data
}) })
}, },
getAddressCity() { getAddressCity() {
getRegionList(4, 4).then(({ data }) => { getRegionList(4, 4).then(({ data }) => {
this.AddressCity = data; this.AddressCity = data
}) })
}, },
getAddressTown() { getAddressTown() {
getRegionList(5, 5).then(({ data }) => { getRegionList(5, 5).then(({ data }) => {
this.AddressTown = data; this.AddressTown = data
}) })
}, },
findByprovinceCode() { findByprovinceCode() {
if (this.destCountryId != null && this.destCountryId != '') { if (this.destCountryId != null && this.destCountryId != "") {
//获取当前省份值id,获取该省份下城市 destCountryId provinceCode //获取当前省份值id,获取该省份下城市 destCountryId provinceCode
getRegionList(2, this.destCountryId).then(({ data }) => { getRegionList(2, this.destCountryId).then(({ data }) => {
this.AddressCity = data; this.AddressCity = data
}) })
} }
}, },
findBycityCode() { findBycityCode() {
if (this.objectiveId != null && this.objectiveId != '') { if (this.objectiveId != null && this.objectiveId != "") {
//获取当前城市值id,获取该城市下区域 //获取当前城市值id,获取该城市下区域
getRegionList(3, this.objectiveId).then(({ data }) => { getRegionList(3, this.objectiveId).then(({ data }) => {
this.AddressTown = data; this.AddressTown = data
}) })
} }
}, },
// 自动去除空格 // 自动去除空格
replaceSpace(obj, field){ replaceSpace(obj, field) {
obj[field] = obj[field].replace(/\s+/g, ''); obj[field] = obj[field].replace(/\s+/g, "")
} }
} }
}; }
</script> </script>
<template> <template>
<div class="app-container" v-if="detail"> <div class="app-container" v-if="detail">
<div class="page-title">{{$t('控货订单')}}</div> <div class="page-title">{{ $t("控货订单") }}</div>
<el-form ref="elForm" :model="formData" :rules="rules" size="small" label-width="100px" > <el-form ref="elForm" :model="formData" :rules="rules" size="small" label-width="100px">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item :label="$t('订单号')"> <el-form-item :label="$t('订单号')">
{{detail.orderNo}} {{ detail.orderNo }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item :label="$t('总控货数')"> <el-form-item :label="$t('总控货数')">
{{detail.sumNum}} {{ detail.sumNum }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item :label="$t('体积')"> <el-form-item :label="$t('体积')"> {{ detail.sumVolume }}</el-form-item>
{{detail.sumVolume}}
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item :label="$t('重量')"> <el-form-item :label="$t('重量')"> {{ detail.sumWeight }} kg </el-form-item>
{{detail.sumWeight}} kg
</el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item :label="$t('可放货箱数')"> <el-form-item :label="$t('可放货箱数')">
{{detail.sumNum - detail.releaseNum}} {{ detail.sumNum - detail.releaseNum }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item :label="$t('已放货箱数')"> <el-form-item :label="$t('已放货箱数')">
{{detail.releaseNum}} {{ detail.releaseNum }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div class="page-title">{{$t('放货详情')}}</div> <div class="page-title">{{ $t("放货详情") }}</div>
<el-table :data="detail.cargoControlPickBackVOList || []" border> <el-table :data="detail.cargoControlPickBackVOList || []" border>
<el-table-column :label="$t('序号')" width="50px"> <el-table-column :label="$t('序号')" width="50px">
<template slot-scope="scope">{{scope.$index + 1}}</template> <template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收货人')" prop="consigneeName" /> <el-table-column :label="$t('收货人')" prop="consigneeName" />
<el-table-column :label="$t('收货人电话')" prop="consigneePhone"> <el-table-column :label="$t('收货人电话')" prop="consigneePhone">
<template slot-scope="{row}"> <template slot-scope="{ row }"> +{{ row.consigneeCountryCode }} {{ row.consigneePhone }} </template>
+{{row.consigneeCountryCode}} {{row.consigneePhone}}
</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('控货箱数')" prop="controlNum"></el-table-column> <el-table-column :label="$t('控货箱数')" prop="controlNum"></el-table-column>
<el-table-column :label="$t('放货箱数')" prop="pickNum"></el-table-column> <el-table-column :label="$t('放货箱数')" prop="pickNum"></el-table-column>
...@@ -54,30 +48,30 @@ ...@@ -54,30 +48,30 @@
<el-table-column :label="$t('备注')" prop="remarks"></el-table-column> <el-table-column :label="$t('备注')" prop="remarks"></el-table-column>
<el-table-column :label="$t('操作人')" prop="operator"></el-table-column> <el-table-column :label="$t('操作人')" prop="operator"></el-table-column>
<el-table-column :label="$t('放货日期')" prop="createTime"> <el-table-column :label="$t('放货日期')" prop="createTime">
<template slot-scope="{row}"> <template slot-scope="{ row }">
{{row.createTime|parseTime}} {{ row.createTime | parseTime }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('复核日期')" prop="createTime"> <el-table-column :label="$t('复核日期')" prop="createTime">
<template slot-scope="{row}"> <template slot-scope="{ row }">
{{row.checkTime|parseTime}} {{ row.checkTime | parseTime }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('状态')" prop="status"> <el-table-column :label="$t('状态')" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_RELEASE_STATUS" :value="row.status" /> <dict-tag :type="DICT_TYPE.ECW_RELEASE_STATUS" :value="row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" width="300px"> <el-table-column :label="$t('操作')" width="300px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.status == 1" type="primary" size="mini" @click="editIndex=scope.$index">{{$t('修改')}}</el-button> <el-button v-if="scope.row.status == 1" type="primary" size="mini" @click="editIndex = scope.$index">{{ $t("修改") }}</el-button>
<el-button v-if="scope.row.status == 1" type="danger" size="mini" @click="cancelCargoPickId = scope.row.id">{{$t('取消')}}</el-button> <el-button v-if="scope.row.status == 1" type="danger" size="mini" @click="cancelCargoPickId = scope.row.id">{{ $t("取消") }}</el-button>
<el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">{{$t('放货复核')}}</el-button> <el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">{{ $t("放货复核") }}</el-button>
<el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button> <el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex = scope.$index">{{ $t("反复核") }}</el-button>
<el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button> <el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId = scope.row.id">{{ $t("调货") }}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.formId)">{{$t('审核详情')}}</el-button> <el-button v-if="[2, 4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.formId)">{{ $t("审核详情") }}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button> <el-button v-if="[2, 4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{ $t("取消审核") }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -112,117 +106,106 @@ ...@@ -112,117 +106,106 @@
<el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input> <el-input v-model="formData.field110" :placeholder="$t('请输入收货人邮箱')" clearable></el-input>
</el-table-column> </el-table-column>
</el-table> --> </el-table> -->
<fallback v-if="fallbackIndex !== null" :order="detail" :index="fallbackIndex" @close="fallbackIndex=null" @success="onFallbackSuccess" /> <fallback v-if="fallbackIndex !== null" :order="detail" :index="fallbackIndex" @close="fallbackIndex = null" @success="onFallbackSuccess" />
<edit v-if="editIndex !== null" @close="editIndex=null" :order="detail" :index="editIndex" @success="onEditSuccess" /> <edit v-if="editIndex !== null" @close="editIndex = null" :order="detail" :index="editIndex" @success="onEditSuccess" />
<transfer-cargo <transfer-cargo v-if="cargoControlPickId !== null" :order-id="detail.orderId" :cargo-control-pick-id="cargoControlPickId" @close="cargoControlPickId = null" @success="onTransferCargoSuccess" />
v-if="cargoControlPickId !== null" <cancel-cargo v-if="!!cancelCargoPickId" :order="detail" :cargo-control-pick-id="cancelCargoPickId" @close="cancelCargoPickId = null" @success="onCancelCargoSuccess" />
:order-id="detail.orderId"
:cargo-control-pick-id="cargoControlPickId"
@close="cargoControlPickId=null"
@success="onTransferCargoSuccess" />
<cancel-cargo v-if="!!cancelCargoPickId"
:order="detail"
:cargo-control-pick-id="cancelCargoPickId"
@close="cancelCargoPickId=null"
@success="onCancelCargoSuccess" />
</div> </div>
</template> </template>
<script> <script>
import edit from './components/CargoControlEdit.vue' import edit from "./components/CargoControlEdit.vue"
import {createPick, getPickRleaseInfo, review, cancel, cancelApproval} from '@/api/ecw/orderCargoControl' import { createPick, getPickRleaseInfo, review, cancel, cancelApproval } from "@/api/ecw/orderCargoControl"
import {parseTime} from '@/utils/ruoyi' import { parseTime } from "@/utils/ruoyi"
import Fallback from './components/Fallback' import Fallback from "./components/Fallback"
import TransferCargo from '@/views/ecw/order/components/TransferCargo' import TransferCargo from "@/views/ecw/order/components/TransferCargo"
import CancelCargo from './components/CancelCargo.vue' import CancelCargo from "./components/CancelCargo.vue"
export default { export default {
filters: {parseTime}, filters: { parseTime },
components: {edit, Fallback, TransferCargo, CancelCargo, CancelCargo}, components: { edit, Fallback, TransferCargo, CancelCargo, CancelCargo },
data(){ data() {
return { return {
detail: null, detail: null,
formData:{}, formData: {},
rules: {}, rules: {},
editIndex: null, // 修改索引 editIndex: null, // 修改索引
fallbackIndex: null, // 反复核索引 fallbackIndex: null, // 反复核索引
cargoControlPickId: null, // 调货ID cargoControlPickId: null, // 调货ID
cancelCargoPickId: null, // 取消返货ID cancelCargoPickId: null // 取消返货ID
} }
}, },
created(){ created() {
this.loadData() this.loadData()
}, },
methods:{ methods: {
loadData(){ loadData() {
console.log('loadData') console.log("loadData")
getPickRleaseInfo(this.$route.query.id).then(res => this.detail = res.data) getPickRleaseInfo(this.$route.query.id).then((res) => (this.detail = res.data))
}, },
review(id){ review(id) {
this.$confirm(this.$t('已核实放货信息,确认放货?')) this.$confirm(this.$t("已核实放货信息,确认放货?"))
.then(res => { .then((res) => {
return review(id) return review(id)
}) })
.then(res => { .then((res) => {
this.$message.success(this.$t('操作成功')) this.$message.success(this.$t("操作成功"))
this.loadData() this.loadData()
}) })
}, },
unReview(){ unReview() {},
cancel(id) {
}, this.$confirm(this.$t("确定取消这条放货么?"))
cancel(id){ .then((res) => {
this.$confirm(this.$t('确定取消这条放货么?'))
.then(res => {
return cancel(id) return cancel(id)
}) })
.then(res => { .then((res) => {
this.$message.success(this.$t('操作成功')) this.$message.success(this.$t("操作成功"))
this.loadData() this.loadData()
}) })
}, },
onEditSuccess(){ onEditSuccess() {
console.log('onEditSuccess') console.log("onEditSuccess")
this.loadData() this.loadData()
this.editIndex = null this.editIndex = null
}, },
onFallbackSuccess(){ onFallbackSuccess() {
this.fallbackIndex = null this.fallbackIndex = null
this.loadData() this.loadData()
}, },
// 查看审核详情 // 查看审核详情
showApprovalDetail(formId){ showApprovalDetail(formId) {
this.$router.push('/bpm/process-instance/detail?id=' + formId) this.$router.push("/bpm/process-instance/detail?id=" + formId)
}, },
// 取消审核 // 取消审核
cancelApproval(id){ cancelApproval(id) {
this.$confirm(this.$t('确定取消此申请么?')) this.$confirm(this.$t("确定取消此申请么?"))
.then(res => { .then((res) => {
let approvalId = this.getApproval(id) let approvalId = this.getApproval(id)
return cancelApproval(approvalId, {reason: this.$t('')}) return cancelApproval(approvalId, { reason: this.$t("") })
}) })
.then(res => { .then((res) => {
this.$message.success(this.$t('操作成功')) this.$message.success(this.$t("操作成功"))
this.loadData() this.loadData()
}) })
}, },
// 根据id查找审核id // 根据id查找审核id
getApproval(id, field = 'orderApprovalId'){ getApproval(id, field = "orderApprovalId") {
if(!this.detail.orderApprovalBackVOList || !this.detail.orderApprovalBackVOList.length){ if (!this.detail.orderApprovalBackVOList || !this.detail.orderApprovalBackVOList.length) {
this.$message.error(this.$t('未找到审批ID')) this.$message.error(this.$t("未找到审批ID"))
Promise.reject(this.$t('未找到审批ID')) Promise.reject(this.$t("未找到审批ID"))
} }
let item = this.detail.orderApprovalBackVOList.find(item => { let item = this.detail.orderApprovalBackVOList.find((item) => {
let details = JSON.parse(item.details) let details = JSON.parse(item.details)
return details.cargoControlPickId == id && details.applyStatus == 1 return details.cargoControlPickId == id && details.applyStatus == 1
}) })
console.log({item}) console.log({ item })
return item[field] return item[field]
}, },
onTransferCargoSuccess(){ onTransferCargoSuccess() {
this.cargoControlPickId = null this.cargoControlPickId = null
this.loadData() this.loadData()
}, },
onCancelCargoSuccess(){ onCancelCargoSuccess() {
this.cancelCargoPickId = null this.cancelCargoPickId = null
this.loadData() this.loadData()
} }
......
<template>
<el-dialog :visible="show" @close="handleClose" :title="$t('海外仓修改申请')" width="1000px">
<el-form label-position="left" label-width="150px" :model="form" :disabled="applyStatus === 1">
<el-row :gutter="20">
<!-- 订单号 -->
<el-col :span="8">
<el-form-item :label="$t('订单号')">
<span>{{ order.orderNo }}</span>
</el-form-item>
</el-col>
<!-- 总箱数 -->
<el-col :span="8">
<el-form-item :label="$t('总箱数')">
<span>{{ order.sumNum }}</span>
</el-form-item>
</el-col>
<!-- 体积 -->
<el-col :span="8">
<el-form-item :label="$t('体积')">
<span>{{ order.sumVolume }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<!-- 重量 -->
<el-col :span="8">
<el-form-item :label="$t('重量')">
<span>{{ order.sumWeight }}Kg</span>
</el-form-item>
</el-col>
<!-- 总控箱数 -->
<el-col :span="8">
<el-form-item :label="$t('总控货箱数')">
<span>{{ order.sumNum }}</span>
</el-form-item>
</el-col>
<!-- 剩余放货箱数 -->
<el-col :span="8">
<el-form-item :label="$t('剩余放货箱数')">
<span>{{ order.sumNum - order.releaseNum }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<!-- 邮库/到仓时间 -->
<el-col :span="8">
<el-form-item :label="$t('卸柜/到仓时间')">
<span>{{ order.unloadTime }}</span>
</el-form-item>
</el-col>
<!-- 订单限制修改收货人 -->
<el-col :span="8">
<el-form-item :label="$t('订单限制修改收货人')">
<span>{{ order.isLimitUpdateConsignee ? $t("") : $t("") }}</span>
</el-form-item>
</el-col>
<!-- 订单锁定收货人天数 -->
<el-col :span="8" v-if="order.isLimitUpdateConsignee">
<el-form-item :label="$t('订单锁定收货人天数')">
<span>{{ order.lockConsigneeDay }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('增值服务')">
<span>{{ order.orgIsOverseasWarehouse ? $t("海外仓") : $t("非海外仓") }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" v-if="order.isLimitUpdateConsignee">
<!-- 放货锁定收货人到期时间 -->
<el-col :span="12">
<el-form-item :label="$t('放货锁定收货人到期时间')" label-width="180px">
<span>{{ order.lockConsigneeTime }}</span>
</el-form-item>
</el-col>
</el-row>
<el-divider>{{ $t("修改信息") }}</el-divider>
<el-row :gutter="20">
<!-- 修改海外仓模式 -->
<el-col :span="24">
<el-form-item :label="$t('增值服务')">
<el-tag>{{ form.newIsOverseasWarehouse ? $t("海外仓") : $t("非海外仓") }}</el-tag>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<!-- 修改原因 -->
<el-col :span="24">
<el-form-item :label="$t('修改原因')">
<el-input type="textarea" v-model="form.reasonZh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<!-- 附件 -->
<el-col :span="24">
<el-form-item :label="$t('附件')">
<file-upload v-model="form.annex" :fileType="fileType"></file-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<work-flow xmlkey="order_consignee_limit_change" v-model="form.ccIds"></work-flow>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose">{{ $t("取消") }}</el-button>
<el-button v-if="applyStatus === 1" type="primary" @click="handleGoBpm">{{ $t("审批中") }}</el-button>
<el-button v-else type="primary" @click="handleSubmit" :loading="loading">{{ $t("确定") }}</el-button>
</span>
</el-dialog>
</template>
<script>
import WorkFlow from "@/components/WorkFlow/index.vue"
import FileUpload from "@/components/FileUpload/index.vue"
import { applyCargoControlApproval, getReleaseTypeUpdateInfo } from "@/api/ecw/orderCargoControl"
import dayjs from "dayjs"
import { getApproval } from "@/api/ecw/order"
export default {
components: {
FileUpload,
WorkFlow
},
props: {
order: Object
},
data() {
return {
// 是否显示弹窗
show: true,
fileType: ["doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "pdf", "jpg", "jpeg", "png", "mp4", "mov", "avi", "mp3"],
applyStatus: 0, // 审批状态: 1 处理中 2 通过 3 不通过 4 已取消
bpmId: null, // 审批流程ID
form: {
// 申请类型:此处应该是 61 放货限制修改申请 62 海外仓修改申请
applyType: 62,
newIsOverseasWarehouse: null,
// 修改原因
reasonZh: "",
// 附件
annex: "",
ccIds: []
},
// 审批信息
approvalDetail: null,
loading: false
}
},
mounted() {
// 根据订单获取审批详情
this.getApply()
},
methods: {
getApply() {
// 先重置
this.applyStatus = 0
getReleaseTypeUpdateInfo(this.order.orderId).then((res) => {
const data = res.data
console.log({ data })
this.form.applyType = 62
this.form.newIsOverseasWarehouse = data.newIsOverseasWarehouse
this.form.reasonZh = data.reasonZh
this.form.annex = data.annex
this.form.ccIds =
data.ccIds
?.split(",")
.filter((item) => !!item)
.map((item) => Number(item)) || []
this.applyStatus = data.applyStatus
this.bpmId = data.formId
})
},
/* getApproval(){
getApproval(this.id).then(res => {
this.approvalDetail = res.data
})
}, */
handleGoBpm() {
console.log("跳转审批页面,待完善")
this.handleClose()
this.$router.push({
path: "/bpm/process-instance/detail",
query: {
id: this.bpmId
}
})
},
handleClose() {
this.show = false
this.$emit("close")
},
handleSubmit() {
const data = {
...this.form,
ccIds: this.form.ccIds.join(","),
orderId: this.order.orderId
}
this.loading = true
applyCargoControlApproval(data)
.then((res) => {
this.$message.success(this.$t("操作成功"))
this.$emit("success")
this.handleClose()
})
.catch(() => {
this.loading = false
})
}
}
}
</script>
<script>
import { getApproval, getOrderDetail } from "@/api/ecw/order"
import { getPickRleaseInfo } from "@/api/ecw/orderCargoControl"
import Template from "@/views/cms/template/index.vue"
import dayjs from "dayjs"
export default {
name: "updateReleaseTypeApproval",
components: { Template },
props: {
// 审批ID
id: Number
},
data() {
return {
detail: null,
releaseInfo: null
}
},
mounted() {
this.getApprovalDetail()
},
computed: {
showExpireTime() {
return (days) => {
if (!this.releaseInfo?.unloadTime || !days) {
return "-"
}
return dayjs(this.releaseInfo.unloadTime).add(this.detail.newLockConsigneeDay, "day").format("YYYY-MM-DD HH:mm:ss")
}
}
},
methods: {
getApprovalDetail() {
getApproval(this.id).then((res) => {
try {
this.detail = JSON.parse(res.data?.details)
this.getPickRleaseInfo(this.detail.orderId)
} catch (e) {
console.error("审核详情解析失败", e)
this.$message.error("审核详情数据解析失败")
}
})
},
getPickRleaseInfo(orderId) {
getPickRleaseInfo(orderId).then((res) => {
this.releaseInfo = res.data
})
}
}
}
</script>
<template>
<div v-if="detail && releaseInfo">
<el-descriptions>
<el-descriptions-item :label="$t('订单号')">
{{ detail.orderNo }}
</el-descriptions-item>
<el-descriptions-item :label="$t('总箱数')">
{{ detail.sumNum }}
</el-descriptions-item>
<el-descriptions-item :label="$t('总体积')"> {{ detail.sumVolume }}</el-descriptions-item>
<el-descriptions-item :label="$t('总重量')"> {{ detail.sumWeight }}Kg </el-descriptions-item>
<el-descriptions-item :label="$t('总控货箱数')">
{{ detail.sumNum }}
</el-descriptions-item>
<el-descriptions-item :label="$t('剩余放货箱数')">
{{ detail.sumNum - detail.releaseNum }}
</el-descriptions-item>
<el-descriptions-item :label="$t('卸柜/到仓时间')">
{{ releaseInfo.unloadTime || "-" }}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单限制修改收货人')">
{{ releaseInfo.isLimitUpdateConsignee ? $t("") : $t("") }}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单锁定收货人天数')" v-if="releaseInfo.isLimitUpdateConsignee">
{{ releaseInfo.lockConsigneeDay }}
</el-descriptions-item>
<el-descriptions-item :label="$t('放货锁定收货人到期时间')" v-if="releaseInfo.isLimitUpdateConsignee">
{{ showExpireTime(releaseInfo.lockConsigneeDay) }}
</el-descriptions-item>
</el-descriptions>
<el-divider>{{ $t("修改内容") }}</el-divider>
<el-descriptions :column="3">
<el-descriptions-item :label="$t('增值服务')">
{{ detail.newIsLimitUpdateConsignee ? $t("海外仓") : $t("非海外仓") }}
</el-descriptions-item>
<el-descriptions-item :label="$t('修改原因')" :span="3">
{{ detail.reasonZh }}
</el-descriptions-item>
<el-descriptions-item :label="$t('附件')" :span="3">
<div v-if="detail.annex">
<div v-for="url in detail.annex.split(',').filter((item) => !!item)">
<el-link :href="url" target="_blank">{{ url.split("/").pop() }}</el-link>
</div>
</div>
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<style scoped lang="scss"></style>
...@@ -13,69 +13,26 @@ ...@@ -13,69 +13,26 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的国')" prop="destCountryId"> <el-form-item :label="$t('目的国')" prop="destCountryId">
<el-select <el-select v-model="destCountryId" multiple :label="destCountryId" :placeholder="$t('请选择目的国')" clearable @change="handleQuery">
v-model="destCountryId" <el-option v-for="item in AddressProvince" :key="item.guojia" :label="item.guojiaName" :value="item.guojia"></el-option>
multiple
:label="destCountryId"
:placeholder="$t('请选择目的国')"
clearable
@change="handleQuery"
>
<el-option
v-for="item in AddressProvince"
:key="item.guojia"
:label="item.guojiaName"
:value="item.guojia"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的城市')" prop="objectiveId"> <el-form-item :label="$t('目的城市')" prop="objectiveId">
<el-select <el-select v-model="objectiveId" multiple :placeholder="$t('请选择目的城市')" style="width: 200px" clearable @change="handleQuery">
v-model="objectiveId" <el-option v-for="item in AddressCity" :key="item.shi" :label="item.shiName" :value="item.shi"></el-option>
multiple
:placeholder="$t('请选择目的城市')"
style="width: 200px"
clearable
@change="handleQuery"
>
<el-option
v-for="item in AddressCity"
:key="item.shi"
:label="item.shiName"
:value="item.shi"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的仓')" prop="destWarehouseId"> <el-form-item :label="$t('目的仓')" prop="destWarehouseId">
<el-select <el-select v-model="destWarehouseId" multiple :placeholder="$t('请选择目的仓')" style="width: 200px" clearable @change="handleQuery">
v-model="destWarehouseId" <el-option v-for="item in AddressTown" :key="item.id" :label="item.titleZh" :value="item.id"></el-option>
multiple
:placeholder="$t('请选择目的仓')"
style="width: 200px"
clearable
@change="handleQuery"
>
<el-option
v-for="item in AddressTown"
:key="item.id"
:label="item.titleZh"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item :label="$t('客户经理')"> <el-form-item :label="$t('客户经理')">
<user-selector <user-selector manage v-model="queryParams.salesmanIds" multiple clearable @change="handleQuery" :prepend="{ id: 0, nickname: $t('未分配客户经理') }" />
manage
v-model="queryParams.salesmanIds"
multiple
clearable
@change="handleQuery"
:prepend="{ id: 0, nickname: $t('未分配客户经理') }"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch"> <el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model.number="queryParams.transportId" clearable @change="handleQuery"/> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model.number="queryParams.transportId" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="channelIds"> <el-form-item :label="$t('出货渠道')" prop="channelIds">
<selector clearable :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelIds" multiple></selector> <selector clearable :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelIds" multiple></selector>
...@@ -90,8 +47,7 @@ ...@@ -90,8 +47,7 @@
<dict-selector v-model="queryParams.cargoControlStatusList" multiple :type="DICT_TYPE.CONTROL_GOODS_STATUS" clearable @change="handleQuery" /> <dict-selector v-model="queryParams.cargoControlStatusList" multiple :type="DICT_TYPE.CONTROL_GOODS_STATUS" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单状态')" prop="statusList" v-show="showSearch"> <el-form-item :label="$t('订单状态')" prop="statusList" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" multiple v-model="queryParams.statusList" <dict-selector :type="DICT_TYPE.ORDER_STATUS" multiple v-model="queryParams.statusList" @keyup.enter.native="handleQuery" clearable @change="handleQuery" />
@keyup.enter.native="handleQuery" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('提单号')" prop="tidanNo"> <el-form-item :label="$t('提单号')" prop="tidanNo">
<el-input v-model="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/\s+/g, '')" /> <el-input v-model="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/\s+/g, '')" />
...@@ -112,13 +68,7 @@ ...@@ -112,13 +68,7 @@
<el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/\s+/g, '')" /> <el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/\s+/g, '')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('备案属性')" prop="productRecords" v-show="showSearch"> <el-form-item :label="$t('备案属性')" prop="productRecords" v-show="showSearch">
<dict-selector <dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" multiple v-model="queryParams.productRecords" clearable @change="handleQuery" />
:type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
multiple
v-model="queryParams.productRecords"
clearable
@change="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('外部仓')" prop="isExternalWarehouse" v-show="showSearch"> <el-form-item :label="$t('外部仓')" prop="isExternalWarehouse" v-show="showSearch">
<el-select v-model="queryParams.isExternalWarehouse" :placeholder="$t('请选择')" clearable @change="handleQuery"> <el-select v-model="queryParams.isExternalWarehouse" :placeholder="$t('请选择')" clearable @change="handleQuery">
...@@ -127,14 +77,14 @@ ...@@ -127,14 +77,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('增值服务')" prop="type" v-show="showSearch"> <el-form-item :label="$t('增值服务')" prop="type" v-show="showSearch">
<el-select v-model="queryParams.type" :placeholder="$t('请选择')" clearable @change="handleQuery" > <el-select v-model="queryParams.type" :placeholder="$t('请选择')" clearable @change="handleQuery">
<el-option :label="$t('普通订单')" :value="0"></el-option> <el-option :label="$t('普通订单')" :value="0"></el-option>
<el-option :label="$t('集运服务')" :value="1"></el-option> <el-option :label="$t('集运服务')" :value="1"></el-option>
<el-option :label="$t('海外仓')" :value="2"></el-option> <el-option :label="$t('海外仓')" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -147,84 +97,98 @@ ...@@ -147,84 +97,98 @@
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('订单编号')" width="120px" align="center" prop="orderNo" > <el-table-column :label="$t('订单编号')" width="120px" align="center" prop="orderNo">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="`detail?orderId=` + scope.row.orderId">{{ scope.row.orderNo }}</router-link> <router-link :to="`detail?orderId=` + scope.row.orderId">{{ scope.row.orderNo }}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('唛头')" align="center" prop="marks" /> <el-table-column :label="$t('唛头')" align="center" prop="marks" />
<el-table-column :label="$t('箱数')" align="center" prop="sumNum" > <el-table-column :label="$t('箱数')" align="center" prop="sumNum">
<template v-slot="{row}"> <template v-slot="{ row }">
{{row.sumNum > 0 ? row.sumNum : row.totalNum}} {{ row.sumNum > 0 ? row.sumNum : row.totalNum }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('已放箱数')" align="center" prop="sumWeight"> <el-table-column :label="$t('已放箱数')" align="center" prop="sumWeight">
<template slot-scope="{row}">{{row.releaseNum}}</template> <template slot-scope="{ row }">{{ row.releaseNum }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('订单状态')" align="left" prop="status"> <el-table-column :label="$t('订单状态')" align="left" prop="status">
<template slot-scope="{row}"> <template slot-scope="{ row }">
{{row.statusMsg}} {{ row.statusMsg }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('已卸柜/已到仓时间')" align="center" prop="unloadTime" /> <el-table-column :label="$t('已卸柜/已到仓时间')" align="center" prop="unloadTime" />
<el-table-column :label="$t('提单号')" align="center" prop="status"> <el-table-column :label="$t('提单号')" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.tidanNo}} {{ scope.row.tidanNo }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('放货人')" align="center" prop="sumWeight"> <el-table-column :label="$t('放货人')" align="center" prop="sumWeight">
<template slot-scope="{row}">{{row.cargoControlName}}</template> <template slot-scope="{ row }">{{ row.cargoControlName }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('控货状态')" align="center" prop="transportId"> <el-table-column :label="$t('控货状态')" align="center" prop="transportId">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<template v-if="row.cargoControlStatus == 1 && row.isToReview">{{$t('放货中')}}</template> <template v-if="row.cargoControlStatus == 1 && row.isToReview">{{ $t("放货中") }}</template>
<dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" /> <dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="150px"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{$t('查看')}}</el-button> <!--修改放货限制-->
<!-- <el-button type="text" size="mini" @click="showUpdateReleaseLimit = scope.row" v-hasPermi="['ecw:cargo_control:updateReleaseLimit']" :disabled="scope.row.cargoControlStatus == 1 && !scope.row.isToReview">{{ $t("修改海外仓") }}</el-button> -->
<el-button type="text" size="mini" @click="showUpdateReleaseType = scope.row">{{ $t("海外仓修改申请") }}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{ $t("查看") }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" @pagination="getList" />
@pagination="getList" />
<transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder=null" /> <transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder = null" />
<release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" /> <release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId = null" @success="onReleaseSuccess" />
<transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" @success="onTransferCargoSuccess" :cargoControlPickId="pickInfo ? pickInfo.id : 0" /> <transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId = null" @success="onTransferCargoSuccess" :cargoControlPickId="pickInfo ? pickInfo.id : 0" />
<fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder=null" @success="onFallbackSuccess" :index="null" /> <fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder = null" @success="onFallbackSuccess" :index="null" />
<!--控货日志--> <!--控货日志-->
<cargo-log-list v-if="showLogOrderId" :order-id="showLogOrderId" @close="showLogOrderId=null" /> <cargo-log-list v-if="showLogOrderId" :order-id="showLogOrderId" @close="showLogOrderId = null" />
<!--修改放货限制-->
<update-release-type v-if="showUpdateReleaseType" :order="showUpdateReleaseType" @close="showUpdateReleaseType = null" @success="getList" />
</div> </div>
</template> </template>
<script> <script>
import Selector from '@/components/Selector' import Selector from "@/components/Selector"
import ProductSelector from '@/components/ProductSelector' import ProductSelector from "@/components/ProductSelector"
import { getProductAttrList } from '@/api/ecw/productAttr' import { getProductAttrList } from "@/api/ecw/productAttr"
import CustomerSelector from '@/components/CustomerSelector' import CustomerSelector from "@/components/CustomerSelector"
/* import { getTradeCityList } from '@/api/ecw/region' */ /* import { getTradeCityList } from '@/api/ecw/region' */
import Transfer from '@/views/ecw/order/components/Transfer' import Transfer from "@/views/ecw/order/components/Transfer"
import Release from './components/Release' import Release from "./components/Release"
import CargoControlEdit from './components/CargoControlEdit' import CargoControlEdit from "./components/CargoControlEdit"
import { getWarningCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo, exportCargoControl } from "@/api/ecw/orderCargoControl" import { getWarningCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo, exportCargoControl } from "@/api/ecw/orderCargoControl"
import TransferCargo from '@/views/ecw/order/components/TransferCargo' import TransferCargo from "@/views/ecw/order/components/TransferCargo"
import Fallback from './components/Fallback' import Fallback from "./components/Fallback"
import {getWarehouseList} from '@/api/ecw/warehouse' import { getWarehouseList } from "@/api/ecw/warehouse"
import CargoLogList from "@/views/ecw/order/components/CargoLogList.vue"; import CargoLogList from "@/views/ecw/order/components/CargoLogList.vue"
import {getRegionList} from "@/api/ecw/order" import { getRegionList } from "@/api/ecw/order"
import UserSelector from "@/components/UserSelector"; import UserSelector from "@/components/UserSelector"
import {getChannelList} from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel"
export default { export default {
name: "EcwOrderWarningCargocontrol", name: "EcwOrderWarningCargocontrol",
components: { components: {
CargoLogList, CargoLogList,
UserSelector, UserSelector,
CustomerSelector, ProductSelector, Selector, Transfer, Release,CargoControlEdit, TransferCargo, Fallback CustomerSelector,
ProductSelector,
Selector,
Transfer,
Release,
CargoControlEdit,
TransferCargo,
Fallback,
updateReleaseType: () => import("@/views/ecw/order/components/updateReleaseType")
}, },
data() { data() {
return { return {
...@@ -254,9 +218,9 @@ export default { ...@@ -254,9 +218,9 @@ export default {
tradeCityList: [], tradeCityList: [],
warehouseList: [], warehouseList: [],
productAttrList: [], // 商品属性 productAttrList: [], // 商品属性
molecule: '', //重货比分子 molecule: "", //重货比分子
denominator: '', //重货比分母 denominator: "", //重货比分母
dateFilterType: '', //日期筛选类别 dateFilterType: "", //日期筛选类别
dateFilter: [], //筛选日期 dateFilter: [], //筛选日期
showTransferOrder: null, // 控制权转移操作订单 showTransferOrder: null, // 控制权转移操作订单
showReleaseOrderId: null, // 放货ID showReleaseOrderId: null, // 放货ID
...@@ -271,39 +235,40 @@ export default { ...@@ -271,39 +235,40 @@ export default {
destCountryId: null, destCountryId: null,
objectiveId: null, objectiveId: null,
destWarehouseId: null, destWarehouseId: null,
}; showUpdateReleaseType: null
}
}, },
computed: { computed: {
expoerCityList() { expoerCityList() {
return this.tradeCityList.filter(item => item.type == 2) return this.tradeCityList.filter((item) => item.type == 2)
}, },
importCityList() { importCityList() {
return this.tradeCityList.filter(item => item.type == 1) return this.tradeCityList.filter((item) => item.type == 1)
}, },
exportWarehouseList(){ exportWarehouseList() {
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 2 || item.tradeType == 3)
}, },
importWarehouseList(){ importWarehouseList() {
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3) return this.warehouseList.filter((item) => item.tradeType == 1 || item.tradeType == 3)
}, },
combinedQueryParams(){ combinedQueryParams() {
let timeParams = {} let timeParams = {}
if(this.dateFilterType && this.dateFilter){ if (this.dateFilterType && this.dateFilter) {
timeParams['begin' + this.dateFilterType] = this.dateFilter[0] timeParams["begin" + this.dateFilterType] = this.dateFilter[0]
timeParams['end' + this.dateFilterType] = this.dateFilter[1] timeParams["end" + this.dateFilterType] = this.dateFilter[1]
} }
let queryParams = {} let queryParams = {}
//目的国 //目的国
if (this.destCountryId != null && this.destCountryId != "") { if (this.destCountryId != null && this.destCountryId != "") {
queryParams.destCountryIds = this.destCountryId; queryParams.destCountryIds = this.destCountryId
} }
//目的城市 //目的城市
if (this.objectiveId != null && this.objectiveId != "") { if (this.objectiveId != null && this.objectiveId != "") {
queryParams.objectiveIds = this.objectiveId; queryParams.objectiveIds = this.objectiveId
} }
//目的仓 //目的仓
if (this.destWarehouseId != null && this.destWarehouseId != "") { if (this.destWarehouseId != null && this.destWarehouseId != "") {
queryParams.destWarehouseIds = this.destWarehouseId; queryParams.destWarehouseIds = this.destWarehouseId
} }
return Object.assign({}, this.queryParams, timeParams, queryParams) return Object.assign({}, this.queryParams, timeParams, queryParams)
} }
...@@ -314,82 +279,58 @@ export default { ...@@ -314,82 +279,58 @@ export default {
deep: true, //深度监听 deep: true, //深度监听
handler() { handler() {
//每当值省份值改变时其下地区值进行清空 //每当值省份值改变时其下地区值进行清空
this.AddressCity = []; this.AddressCity = []
this.AddressTown = []; this.AddressTown = []
this.objectiveId = ""; this.objectiveId = ""
this.destWarehouseId = ""; this.destWarehouseId = ""
this.findByprovinceCode(); this.findByprovinceCode()
if (this.destCountryId == "") { if (this.destCountryId == "") {
this.getAddressCity() this.getAddressCity()
this.getAddressTown() this.getAddressTown()
} else if ( } else if (this.destCountryId != "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId != "" &&
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.getAddressTown() this.getAddressTown()
} }
}, }
}, },
objectiveId: { objectiveId: {
deep: true, //深度监听 deep: true, //深度监听
handler() { handler() {
this.AddressTown = []; this.AddressTown = []
this.destWarehouseId = ""; this.destWarehouseId = ""
this.findBycityCode(); this.findBycityCode()
if ( if (this.objectiveId != "" && this.destCountryId != "" && this.destWarehouseId == "") {
this.objectiveId != "" &&
this.destCountryId != "" &&
this.destWarehouseId == ""
) {
//获取当前城市值id,获取该城市下区域 //获取当前城市值id,获取该城市下区域
} else if ( } else if (this.destCountryId == "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId == "" &&
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.getAddressTown() this.getAddressTown()
} else if ( } else if (this.destCountryId != "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId != "" && this.findByprovinceCode()
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.findByprovinceCode();
this.getAddressTown() this.getAddressTown()
} }
}, }
}, },
destWarehouseId: { destWarehouseId: {
deep: true, //深度监听 deep: true, //深度监听
handler() { handler() {
if ( if (this.objectiveId != "" && this.destCountryId != "" && this.destWarehouseId == "") {
this.objectiveId != "" &&
this.destCountryId != "" &&
this.destWarehouseId == ""
) {
//获取当前城市值id,获取该城市下区域 //获取当前城市值id,获取该城市下区域
this.findBycityCode(); this.findBycityCode()
} else if ( } else if (this.destCountryId != "" && this.objectiveId == "" && this.destWarehouseId == "") {
this.destCountryId != "" &&
this.objectiveId == "" &&
this.destWarehouseId == ""
) {
this.getAddressTown() this.getAddressTown()
} }
}
}
}, },
}, activated() {
},
activated(){
// 要求保留页码 https://zentao.test.jdshangmen.com/bug-view-3079.html // 要求保留页码 https://zentao.test.jdshangmen.com/bug-view-3079.html
this.getList() this.getList()
}, },
created() { created() {
this.getList(); this.getList()
getProductAttrList().then(res => this.productAttrList = res.data) getProductAttrList().then((res) => (this.productAttrList = res.data))
// getTradeCityList().then(res => this.tradeCityList = res.data) // getTradeCityList().then(res => this.tradeCityList = res.data)
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then((res) => (this.warehouseList = res.data))
getChannelList().then(res => this.channelList = res.data) getChannelList().then((res) => (this.channelList = res.data))
this.getAddressProvince() this.getAddressProvince()
this.getAddressCity() this.getAddressCity()
this.getAddressTown() this.getAddressTown()
...@@ -397,128 +338,134 @@ export default { ...@@ -397,128 +338,134 @@ export default {
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true
// 执行查询 // 执行查询
getWarningCargoControlOrderPage(this.combinedQueryParams).then(response => { getWarningCargoControlOrderPage(this.combinedQueryParams).then((response) => {
this.list = [] this.list = []
// 直接更细数据,可能因为elTable的部分渲染产生bug,比如权限控制异常 // 直接更细数据,可能因为elTable的部分渲染产生bug,比如权限控制异常
this.$nextTick( () => { this.$nextTick(() => {
this.list = response.data.list; this.list = response.data.list
this.total = response.data.total; this.total = response.data.total
}) })
this.loading = false; this.loading = false
}); })
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.page = 1; this.queryParams.page = 1
this.$nextTick(this.getList) this.$nextTick(this.getList)
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.resetForm("queryForm")
this.handleQuery(); this.handleQuery()
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
// 执行导出 // 执行导出
this.$modal.confirm('是否确认导出所有订单数据项?').then(() => { this.$modal
this.exportLoading = true; .confirm("是否确认导出所有订单数据项?")
return exportCargoControl(this.combinedQueryParams); .then(() => {
}).then(response => { this.exportLoading = true
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载')) return exportCargoControl(this.combinedQueryParams)
this.exportLoading = false; })
}).catch(() => { }); .then((response) => {
this.$message.success(this.$t("已加入导出队列,请稍后在下载日志中下载"))
this.exportLoading = false
})
.catch(() => {})
}, },
// 表格多选 // 表格多选
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.orderId) this.ids = selection.map((item) => item.orderId)
this.single = selection.length !== 1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
toDetail(row){ toDetail(row) {
this.$router.push('cargo_control/detail?id=' + row.orderId) this.$router.push("cargo_control/detail?id=" + row.orderId)
}, },
// 复核 // 复核
review(row){ review(row) {
// 未放货完成则打开详情,已完成放货则弹窗 // 未放货完成则打开详情,已完成放货则弹窗
if(row.releaseNum < row.sumNum){ if (row.releaseNum < row.sumNum) {
return this.toDetail(row) return this.toDetail(row)
} }
this.$confirm('已核实放货信息,确认放货?') this.$confirm("已核实放货信息,确认放货?")
.then(res => { .then((res) => {
return orderReview(row.orderId) return orderReview(row.orderId)
}) })
.then(res => { .then((res) => {
this.$message.success('操作成功') this.$message.success("操作成功")
this.getList() this.getList()
}) })
}, },
// 批量复核 // 批量复核
batchReview(){ batchReview() {
this.$confirm(this.$t('确定复核选中的订单么?')).then(() => { this.$confirm(this.$t("确定复核选中的订单么?"))
return batchReview("orderIds=" + this.ids.join(',')) .then(() => {
}).then(() => { return batchReview("orderIds=" + this.ids.join(","))
this.$message.success(this.$t('操作成功')) })
.then(() => {
this.$message.success(this.$t("操作成功"))
this.getList() this.getList()
}) })
}, },
cargoTransfer(row){ cargoTransfer(row) {
getPickRleaseInfo(row.orderId).then(res => { getPickRleaseInfo(row.orderId).then((res) => {
if(res.data.cargoControlPickBackVOList && res.data.cargoControlPickBackVOList.length > 1){ if (res.data.cargoControlPickBackVOList && res.data.cargoControlPickBackVOList.length > 1) {
this.toDetail(row) this.toDetail(row)
} }
this.pickInfo = res.data.cargoControlPickBackVOList[0] this.pickInfo = res.data.cargoControlPickBackVOList[0]
this.showTransferCargoOrderId=row.orderId this.showTransferCargoOrderId = row.orderId
}) })
}, },
onReleaseSuccess(){ onReleaseSuccess() {
this.showReleaseOrderId = null this.showReleaseOrderId = null
this.getList() this.getList()
}, },
onFallbackSuccess(){ onFallbackSuccess() {
this.showFallbackOrder = null this.showFallbackOrder = null
this.getList() this.getList()
}, },
onTransferCargoSuccess(){ onTransferCargoSuccess() {
this.showTransferCargoOrderId = null this.showTransferCargoOrderId = null
this.getList() this.getList()
}, },
getAddressProvince() { getAddressProvince() {
getRegionList(1, 1).then(({ data }) => { getRegionList(1, 1).then(({ data }) => {
this.AddressProvince = data; this.AddressProvince = data
}) })
}, },
getAddressCity() { getAddressCity() {
getRegionList(4, 4).then(({ data }) => { getRegionList(4, 4).then(({ data }) => {
this.AddressCity = data; this.AddressCity = data
}) })
}, },
getAddressTown() { getAddressTown() {
getRegionList(5, 5).then(({ data }) => { getRegionList(5, 5).then(({ data }) => {
this.AddressTown = data; this.AddressTown = data
}) })
}, },
findByprovinceCode() { findByprovinceCode() {
if (this.destCountryId != null && this.destCountryId != '') { if (this.destCountryId != null && this.destCountryId != "") {
//获取当前省份值id,获取该省份下城市 destCountryId provinceCode //获取当前省份值id,获取该省份下城市 destCountryId provinceCode
getRegionList(2, this.destCountryId).then(({ data }) => { getRegionList(2, this.destCountryId).then(({ data }) => {
this.AddressCity = data; this.AddressCity = data
}) })
} }
}, },
findBycityCode() { findBycityCode() {
if (this.objectiveId != null && this.objectiveId != '') { if (this.objectiveId != null && this.objectiveId != "") {
//获取当前城市值id,获取该城市下区域 //获取当前城市值id,获取该城市下区域
getRegionList(3, this.objectiveId).then(({ data }) => { getRegionList(3, this.objectiveId).then(({ data }) => {
this.AddressTown = data; this.AddressTown = data
}) })
} }
} }
} }
}; }
</script> </script>
...@@ -43,6 +43,11 @@ ...@@ -43,6 +43,11 @@
<el-table-column prop="titleZh" :label="$t('中文名称')" width="200"></el-table-column> <el-table-column prop="titleZh" :label="$t('中文名称')" width="200"></el-table-column>
<el-table-column prop="titleEn" :label="$t('英文名称')" width="200"></el-table-column> <el-table-column prop="titleEn" :label="$t('英文名称')" width="200"></el-table-column>
<el-table-column prop="shortName" :label="$t('简称')" width="120"/> <el-table-column prop="shortName" :label="$t('简称')" width="120"/>
<el-table-column prop="areaCode" :label="$t('区号')" width="120">
<template slot-scope="scope" v-if="scope.row.areaCode">
<span>+{{ scope.row.areaCode }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('语言')" width="120" align="center" prop="language" /> <el-table-column :label="$t('语言')" width="120" align="center" prop="language" />
<el-table-column prop="sort" :label="$t('排序')" width="50"></el-table-column> <el-table-column prop="sort" :label="$t('排序')" width="50"></el-table-column>
<el-table-column prop="type" :label="$t('类型')" width="120"> <el-table-column prop="type" :label="$t('类型')" width="120">
...@@ -77,7 +82,7 @@ ...@@ -77,7 +82,7 @@
</el-table> </el-table>
<!-- 添加或修改部门对话框 --> <!-- 添加或修改部门对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="876px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="160px"> <el-form ref="form" :model="form" :rules="rules" label-width="160px">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
...@@ -162,6 +167,10 @@ ...@@ -162,6 +167,10 @@
:key="dict.id" :label="dict.titleZh" :value="dict.id.toString()"/> :key="dict.id" :label="dict.titleZh" :value="dict.id.toString()"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('区号')" prop="areaCode">
<area-code-selector v-model="form.areaCode" />
</el-form-item>
</div> </div>
<!-- <el-col :span="12">--> <!-- <el-col :span="12">-->
<!-- <el-form-item :label="$t('部门状态')" prop="status">--> <!-- <el-form-item :label="$t('部门状态')" prop="status">-->
...@@ -201,10 +210,11 @@ import { ...@@ -201,10 +210,11 @@ import {
import {changeUserStatus} from "@/api/system/user"; import {changeUserStatus} from "@/api/system/user";
import {updateBankAccount} from "@/api/ecw/bankAccount"; import {updateBankAccount} from "@/api/ecw/bankAccount";
import { getCurrencyList } from '@/api/ecw/currency' import { getCurrencyList } from '@/api/ecw/currency'
import AreaCodeSelector from '@/components/AreaCodeSelector'
export default { export default {
name: "Region", name: "Region",
components: { Treeselect }, components: { Treeselect, AreaCodeSelector },
data() { data() {
return { return {
// 遮罩层 // 遮罩层
......
...@@ -237,7 +237,10 @@ ...@@ -237,7 +237,10 @@
</el-menu> </el-menu>
<div class="table-container"> <div class="table-container">
<div class="reward" v-show="activeIndex == 'reward'"> <div class="reward" v-show="activeIndex == 'reward'">
<el-form <!-- 积分记录 -->
<IntegralRecord :memberCode="$route.params.id"></IntegralRecord>
<!-- <el-form
:model="queryParams" :model="queryParams"
ref="queryForm" ref="queryForm"
size="small" size="small"
...@@ -334,7 +337,7 @@ ...@@ -334,7 +337,7 @@
:page.sync="queryParams.pageNo" :page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="handleQueryPagination" @pagination="handleQueryPagination"
/> /> -->
</div> </div>
<div class="exchange" v-show="activeIndex != 'reward'"> <div class="exchange" v-show="activeIndex != 'reward'">
<el-form <el-form
...@@ -868,9 +871,10 @@ import { ...@@ -868,9 +871,10 @@ import {
} from "@/api/ecw/memberManagement"; } from "@/api/ecw/memberManagement";
import { getNodeList, getRewardsDetails } from '@/api/ecw/giftManagement' import { getNodeList, getRewardsDetails } from '@/api/ecw/giftManagement'
import OperatingGift from '@/views/ecw/giftManagement/components/operatingGift.vue' import OperatingGift from '@/views/ecw/giftManagement/components/operatingGift.vue'
import IntegralRecord from "@/views/ecw/memberManagement/integralRecord"
export default { export default {
name: "memberDetails", name: "memberDetails",
components: { ImageUpload, FileUpload, OperatingGift }, components: { ImageUpload, FileUpload, OperatingGift, IntegralRecord },
data() { data() {
return { return {
// 网点 // 网点
...@@ -1070,7 +1074,7 @@ export default { ...@@ -1070,7 +1074,7 @@ export default {
methods: { methods: {
handleViewRecord(row) { handleViewRecord(row) {
this.$router.push({ this.$router.push({
path: '/memberManagement/exchangeRecordOperation', path: '/member/memberManagement/exchangeRecordOperation',
query: { exchangeRewardID: row.id, pageStatus: 'view' } query: { exchangeRewardID: row.id, pageStatus: 'view' }
}) })
}, },
...@@ -1214,7 +1218,7 @@ export default { ...@@ -1214,7 +1218,7 @@ export default {
}, },
handleExchangeRewards(details) { handleExchangeRewards(details) {
this.$router.push({ this.$router.push({
path: "/memberManagement/exchangeRecordOperation", path: "/member/memberManagement/exchangeRecordOperation",
query: { query: {
memberId: details.userScoreLevelInfo.memberId, memberId: details.userScoreLevelInfo.memberId,
pageStatus: "add", pageStatus: "add",
......
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