Commit 5d508865 authored by lanbaoming's avatar lanbaoming

2024-06-10发布提交

parents 964c36e7 a79d96a7
...@@ -117,6 +117,8 @@ export function getLogList(params) { ...@@ -117,6 +117,8 @@ export function getLogList(params) {
} }
// 获得费用登记列表 // 获得费用登记列表
//先登记费用入表 ecw_box_cost 同时进应付款表,ecw_payable,
//用户在应收款列表中点击收款,生成付款单,入表 ecw_payment
export function getCostList(params) { export function getCostList(params) {
return request({ return request({
url: "/ecw/box-cost/list", url: "/ecw/box-cost/list",
...@@ -124,8 +126,8 @@ export function getCostList(params) { ...@@ -124,8 +126,8 @@ export function getCostList(params) {
params, params,
}); });
} }
// 付款单主表 SELECT * from ecw_payment // 收款单表 SELECT * from ecw_payment
// 付款单费用明细 SELECT * from ecw_payable // 应付款表 SELECT * from ecw_payable
// 根据明细获取主表ID // 根据明细获取主表ID
export function getPaymentId(id) { export function getPaymentId(id) {
return request({ return request({
...@@ -360,7 +362,7 @@ export function downloadPreloadGoodsList(params) { ...@@ -360,7 +362,7 @@ export function downloadPreloadGoodsList(params) {
}); });
} }
// 下载应收汇总 // 下载应收汇总 lanbm 2024-05-24 添加注释
export function downloadReceivableList(params) { export function downloadReceivableList(params) {
return request({ return request({
url: "/ecw/box-preload-goods/downloadReceivableList", url: "/ecw/box-preload-goods/downloadReceivableList",
......
...@@ -145,6 +145,7 @@ export function billCreate(data) { ...@@ -145,6 +145,7 @@ export function billCreate(data) {
/** /**
* 获得提单补料pdf * 获得提单补料pdf
* 空运提单补料 lanbm 2024-05-28 添加注释
*/ */
export function getBoxLadingBillPdf(params) { export function getBoxLadingBillPdf(params) {
return request({ return request({
......
...@@ -140,6 +140,14 @@ export function getReceivableItem(query) { ...@@ -140,6 +140,14 @@ export function getReceivableItem(query) {
}) })
} }
//lanbm 2024-06-05 add
export function getReceivableItem2(id) {
return request({
url: '/ecw/receipt-item/get?id=' + id,
method: 'get'
})
}
// 根据收款单ID获得收款账户细列表 // 根据收款单ID获得收款账户细列表
export function getReceiptAccountList(query) { export function getReceiptAccountList(query) {
return request({ return request({
...@@ -462,6 +470,15 @@ export function financeReceiptWriteOff(query) { ...@@ -462,6 +470,15 @@ export function financeReceiptWriteOff(query) {
}) })
} }
// lanbm 2024-05-29 add 批量收款单核销
export function financeReceiptWriteOff2(query) {
return request({
url: '/ecw/receipt/financeReceiptWriteOff2',
method: 'POST',
data: query
})
}
// 收款单银行明细核销 // 收款单银行明细核销
export function financeReceiptItemWriteOff(query) { export function financeReceiptItemWriteOff(query) {
return request({ return request({
...@@ -471,6 +488,15 @@ export function financeReceiptItemWriteOff(query) { ...@@ -471,6 +488,15 @@ export function financeReceiptItemWriteOff(query) {
}) })
} }
//批量 银行实收明细提交审核 lanbm 2024-05-30 add
export function financeReceiptItemWriteOff2(query) {
return request({
url: '/ecw/receipt-item/financeReceiptItemWriteOff2',
method: 'POST',
data: query
})
}
// 收款单银行明细核销反审核 // 收款单银行明细核销反审核
export function financeReceiptItemWriteOffNo(query) { export function financeReceiptItemWriteOffNo(query) {
...@@ -490,6 +516,16 @@ export function financeApproveNo(query) { ...@@ -490,6 +516,16 @@ export function financeApproveNo(query) {
}) })
} }
//lanbm 2024-05-29 添加的批量反审核功能
//参数query 为List
export function financeApproveNo2(query) {
return request({
url: '/ecw/receipt/financeApproveNo2',
method: 'POST',
data: query
})
}
// 收款单反核销 // 收款单反核销
export function financeReceiptWriteOffNo(query) { export function financeReceiptWriteOffNo(query) {
return request({ return request({
...@@ -499,7 +535,17 @@ export function financeReceiptWriteOffNo(query) { ...@@ -499,7 +535,17 @@ export function financeReceiptWriteOffNo(query) {
}) })
} }
// 收款单取消审核 //批量 收款单反核销 lanbm 2024-05-29 add
//query 为List
export function financeReceiptWriteOffNo2(query) {
return request({
url: '/ecw/receipt/financeReceiptWriteOffNo2',
method: 'POST',
data: query
})
}
//收款单取消审核
export function cancelFinanceReceiptApproval(query) { export function cancelFinanceReceiptApproval(query) {
return request({ return request({
url: '/ecw/receipt/cancelFinanceReceiptApproval', url: '/ecw/receipt/cancelFinanceReceiptApproval',
......
...@@ -159,6 +159,13 @@ export const constantRoutes = [ ...@@ -159,6 +159,13 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/bpm/processInstance/detail'], resolve), component: (resolve) => require(['@/views/bpm/processInstance/detail'], resolve),
name: 'Flow details', name: 'Flow details',
meta: {title: '流程详情',titleEn:'Flow details', activeMenu: '/bpm/task/my'} meta: {title: '流程详情',titleEn:'Flow details', activeMenu: '/bpm/task/my'}
},
{
//lanbm 2024-06-07 add
path: 'process-instance/detail2',
component: (resolve) => require(['@/views/bpm/processInstance/detail2'], resolve),
name: 'Flow details2',
meta: {title: '流程详情',titleEn:'Flow details', activeMenu: '/bpm/task/my'}
} }
] ]
}, },
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<el-form <el-form
:ref="'form' + index" :ref="'form' + index"
:model="auditForms[index]" :model="auditForms[index]"
:rules="auditRule" :rules="auditRule2"
label-width="100px" label-width="100px"
> >
<el-form-item <el-form-item
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
</div> </div>
</el-col> </el-col>
</el-card> </el-card>
<!-- 申请信息 --> <!-- 申请信息 -->
<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">
...@@ -295,6 +296,22 @@ export default { ...@@ -295,6 +296,22 @@ export default {
BoxSplitDetail, BoxSplitDetail,
}, },
computed: { computed: {
auditRule2() {
if (this.isMust == true) {
var obj = {
comment: [
{
required: true,
message: this.$t("审批建议不能为空"),
trigger: "blur",
},
],
};
return obj;
} else {
return {};
}
},
matterNum() { matterNum() {
return this.$store.state.user.matterNum; return this.$store.state.user.matterNum;
}, },
...@@ -663,30 +680,27 @@ export default { ...@@ -663,30 +680,27 @@ export default {
// 流程实例 // 流程实例
id: undefined, // 流程实例的编号 id: undefined, // 流程实例的编号
processInstance: {}, processInstance: {},
// 流程表单详情 // 流程表单详情
detailForm: { detailForm: {
fields: [], fields: [],
}, },
isMust: true,
// BPMN 数据 // BPMN 数据
bpmnXML: null, bpmnXML: null,
bpmnControlForm: { bpmnControlForm: {
prefix: "activiti", prefix: "activiti",
}, },
activityList: [], activityList: [],
// 审批记录 // 审批记录
tasksLoad: true, tasksLoad: true,
tasks: [], tasks: [],
// 审批表单 // 审批表单
runningTasks: [], runningTasks: [],
auditForms: [], auditForms: [],
auditRule: { auditRule: {
comment: [ comment: [
{ {
required: true, required: this.isMust,
message: this.$t("审批建议不能为空"), message: this.$t("审批建议不能为空"),
trigger: "blur", trigger: "blur",
}, },
...@@ -743,6 +757,26 @@ export default { ...@@ -743,6 +757,26 @@ export default {
this.processInstance = response.data; this.processInstance = response.data;
console.log(this.processInstance); console.log(this.processInstance);
//银行实收明细核销不限制必填 lanbm 2024-05-24 add
if (
this.processInstance.processDefinition.formCustomViewPath ==
undefined ||
this.processInstance.processDefinition.formCustomViewPath == null ||
this.processInstance.processDefinition.formCustomViewPath == ""
) {
this.isMust = true;
} else {
if (
this.processInstance.processDefinition.formCustomViewPath.trim() ==
"finance_receipt_item_write_off"
) {
this.isMust = false;
} else {
this.isMust = true;
}
}
//end 银行实收明细核销不限制必填 lanbm 2024-05-24 add
// 设置表单信息 // 设置表单信息
if (this.processInstance.processDefinition.formType === 10) { if (this.processInstance.processDefinition.formType === 10) {
this.detailForm = { this.detailForm = {
......
This diff is collapsed.
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item :label="$t('流程编号')" prop="processInstanceId"> <el-form-item :label="$t('流程编号')" prop="processInstanceId">
<el-input v-model="queryParams.processInstanceId" :placeholder="$t('流程编号')" clearable <el-input
@keyup.enter.native="handleQuery"/> v-model="queryParams.processInstanceId"
:placeholder="$t('流程编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('流程名称')" prop="name"> <el-form-item :label="$t('流程名称')" prop="name">
<el-input v-model="queryParams.name" :placeholder="$t('流程名称')" clearable @keyup.enter.native="handleQuery"/> <el-input
v-model="queryParams.name"
:placeholder="$t('流程名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('流程分类')" prop="category"> <el-form-item :label="$t('流程分类')" prop="category">
<el-select v-model="queryParams.category" :placeholder="$t('请选择流程分类')" clearable> <el-select
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)" v-model="queryParams.category"
:key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/> :placeholder="$t('请选择流程分类')"
clearable
>
<el-option
v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value"
:label="$l(dict, 'label')"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('提交时间')"> <el-form-item :label="$t('提交时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" v-model="dateRangeCreateTime"
:end-placeholder="$t('结束日期')"/> style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务编号')" prop="businessNo"> <el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable <el-input
@keyup.enter.native="handleQuery"/> v-model="queryParams.businessNo"
:placeholder="$t('请输入业务编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</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">{{
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t('重置') }}</el-button> $t("搜索")
}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{
$t("重置")
}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('流程编号')" align="center" prop="processInstance.id" width="320" fixed/> <el-table-column
<el-table-column :label="$t('流程名称')" align="center" prop="processInstance.name" width="200"/> :label="$t('流程编号')"
<el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/> align="center"
<el-table-column :label="$t('流程分类')" align="center" prop="category" width="200"> prop="processInstance.id"
width="320"
fixed
/>
<el-table-column
:label="$t('流程名称')"
align="center"
prop="processInstance.name"
width="200"
/>
<el-table-column
:label="$t('业务编号')"
align="center"
prop="businessNo"
/>
<el-table-column
:label="$t('流程分类')"
align="center"
prop="category"
width="200"
>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/> <dict-tag
:type="DICT_TYPE.BPM_MODEL_CATEGORY"
:value="scope.row.category"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('当前审批节点')" align="center" prop="name" width="200"/> <el-table-column
:label="$t('当前审批节点')"
align="center"
prop="name"
width="200"
/>
<!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" >{{ $t('缺少字段') }}</el-table-column> --> <!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" >{{ $t('缺少字段') }}</el-table-column> -->
<!-- <el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname" width="120"/>--> <!-- <el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname" width="120"/>-->
<el-table-column :label="$t('结果')" align="center" prop="result"> <el-table-column :label="$t('结果')" align="center" prop="result">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/> <dict-tag
:type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT"
:value="scope.row.result"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('提交时间')" align="center" prop="createTime" width="180"> <el-table-column
:label="$t('提交时间')"
align="center"
prop="createTime"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('结束时间')" align="center" prop="endTime" width="180"> <el-table-column
:label="$t('结束时间')"
align="center"
prop="endTime"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime) }}</span> <span>{{ parseTime(scope.row.endTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" fixed="right" class-name="small-padding fixed-width"> <el-table-column
:label="$t('操作')"
align="center"
fixed="right"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleAudit(scope.row)" <el-button
v-hasPermi="['bpm:task:query']">{{ $t('详情') }} size="mini"
type="text"
icon="el-icon-edit"
@click="handleAudit(scope.row)"
v-hasPermi="['bpm:task:query']"
>{{ $t("详情") }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" <pagination
@pagination="getList"/> v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div> </div>
</template> </template>
<script> <script>
import {getDoneTaskPage} from '@/api/bpm/task' import { getDoneTaskPage } from "@/api/bpm/task";
import {getDate} from "@/utils/dateUtils"; import { getDate } from "@/utils/dateUtils";
export default { export default {
//lanbm 2024-05-08 添加查询条件不清空优化 //lanbm 2024-05-08 添加查询条件不清空优化
...@@ -118,9 +210,9 @@ export default { ...@@ -118,9 +210,9 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = { ...this.queryParams };
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime");
getDoneTaskPage(params).then(response => { getDoneTaskPage(params).then((response) => {
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;
...@@ -142,8 +234,11 @@ export default { ...@@ -142,8 +234,11 @@ export default {
}, },
/** 处理审批按钮 */ /** 处理审批按钮 */
handleAudit(row) { handleAudit(row) {
this.$router.push({path: "/bpm/process-instance/detail", query: {id: row.processInstance.id}}); this.$router.push({
path: "/bpm/process-instance/detail",
query: { id: row.processInstance.id },
});
}, },
} },
}; };
</script> </script>
...@@ -290,7 +290,7 @@ export default { ...@@ -290,7 +290,7 @@ export default {
return; return;
} }
} }
this.form.comment=""; this.form.comment = "";
this.title = "批量通过"; this.title = "批量通过";
this.titleType = 1; this.titleType = 1;
this.open = true; this.open = true;
...@@ -309,11 +309,10 @@ export default { ...@@ -309,11 +309,10 @@ export default {
return; return;
} }
} }
this.form.comment=""; this.form.comment = "";
this.title = "批量不通过"; this.title = "批量不通过";
this.titleType = 2; this.titleType = 2;
this.open = true; this.open = true;
}, },
submitForm() { submitForm() {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
...@@ -380,10 +379,19 @@ export default { ...@@ -380,10 +379,19 @@ export default {
}, },
/** 处理审批按钮 */ /** 处理审批按钮 */
handleAudit(row) { handleAudit(row) {
this.$router.push({ //lanbm 2024-06-07 添加根据不同的业务打开不同的展示页面
path: "/bpm/process-instance/detail", let name1 = row.processInstance.name;
query: { id: row.processInstance.id }, if (name1.includes("银行实收明细核销审核")) {
}); this.$router.push({
path: "/bpm/process-instance/detail2",
query: { id: row.processInstance.id },
});
} else {
this.$router.push({
path: "/bpm/process-instance/detail",
query: { id: row.processInstance.id },
});
}
}, },
handleCancel(row) { handleCancel(row) {
const id = row.id; const id = row.id;
......
...@@ -628,6 +628,7 @@ export default { ...@@ -628,6 +628,7 @@ export default {
); );
break; break;
case "downloadReceivableList": case "downloadReceivableList":
//下载空运应收款汇总单 lanbm 2024-05-25 添加注释
this.exportExcel( this.exportExcel(
downloadAirReceivableList, downloadAirReceivableList,
{shipmentId: row.id} {shipmentId: row.id}
......
...@@ -149,6 +149,7 @@ ...@@ -149,6 +149,7 @@
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="downloadPreloadGoodsList" v-hasPermi="['shipment:box:download:downloadPreloadGoodsList']">{{$t('预装单')}}</el-dropdown-item> <el-dropdown-item command="downloadPreloadGoodsList" v-hasPermi="['shipment:box:download:downloadPreloadGoodsList']">{{$t('预装单')}}</el-dropdown-item>
<el-dropdown-item command="downloadLoadGoodsList" v-hasPermi="['shipment:box:download:downloadLoadGoodsList']">{{$t('已装单')}}</el-dropdown-item> <el-dropdown-item command="downloadLoadGoodsList" v-hasPermi="['shipment:box:download:downloadLoadGoodsList']">{{$t('已装单')}}</el-dropdown-item>
<!--应收汇总表,Manifest样式修改 lanbm 2024-05-24 -->
<el-dropdown-item command="downloadReceivableList" v-hasPermi="['shipment:box:download:downloadReceivableList']">{{$t('应收汇总表')}}</el-dropdown-item> <el-dropdown-item command="downloadReceivableList" v-hasPermi="['shipment:box:download:downloadReceivableList']">{{$t('应收汇总表')}}</el-dropdown-item>
<el-dropdown-item command="downloadAgentListFiles" v-hasPermi="['shipment:box:download:downloadAgentListFiles']">agent list</el-dropdown-item> <el-dropdown-item command="downloadAgentListFiles" v-hasPermi="['shipment:box:download:downloadAgentListFiles']">agent list</el-dropdown-item>
<el-dropdown-item command="downloadSoncapFiles" v-hasPermi="['shipment:box:download:downloadSoncapFiles']">soncap</el-dropdown-item> <el-dropdown-item command="downloadSoncapFiles" v-hasPermi="['shipment:box:download:downloadSoncapFiles']">soncap</el-dropdown-item>
......
...@@ -123,7 +123,9 @@ import { ...@@ -123,7 +123,9 @@ import {
getCapacity, getCapacity,
downloadFile, downloadFile,
} from "../shippingSea/utils"; } from "../shippingSea/utils";
//制作提单 lanbm 2024-05-24 添加注释
import makeLadingBill from "./makeLadingBill.vue"; import makeLadingBill from "./makeLadingBill.vue";
//预览提单
import previewBill from "./previewBill.vue"; import previewBill from "./previewBill.vue";
export default { export default {
......
<template> <template>
<el-row class="shipping-makeLadingBill"> <el-row class="shipping-makeLadingBill">
<el-row> <el-row>
<div class="title-orderNo">{{$t('订单号')}}{{orderNo}}</div> <div class="title-orderNo">{{ $t("订单号") }}{{ orderNo }}</div>
</el-row> </el-row>
<el-row class="ueditor-row"> <el-row class="ueditor-row">
<vue-ueditor-wrap v-model="billContent" :config="editorConfig" editor-id="billUeditor" /> <vue-ueditor-wrap
v-model="billContent"
:config="editorConfig"
editor-id="billUeditor"
/>
</el-row> </el-row>
<!-- 审核流程 --> <!-- 审核流程 -->
<el-row class="process-area"> <el-row class="process-area">
<div class="process"> <div class="process">
<div>{{$t('审批流程')}}</div> <div>{{ $t("审批流程") }}</div>
<work-flow xmlkey="bill_lading" v-model="selectedUsers"></work-flow> <work-flow xmlkey="bill_lading" v-model="selectedUsers"></work-flow>
</div> </div>
<div v-if="currRow.status === 1"> <div v-if="currRow.status === 1">
<el-button type="primary" @click="jumpReviewDetail">{{$t('审核中')}}</el-button> <el-button type="primary" @click="jumpReviewDetail">{{
<el-button plain type="primary" @click="canclAudit">{{$t('取消审核')}}</el-button> $t("审核中")
<el-button plain type="primary" @click="showLoaingTemplate">{{$t('提单预览')}}</el-button> }}</el-button>
<el-button plain type="primary" @click="canclAudit">{{
$t("取消审核")
}}</el-button>
<el-button plain type="primary" @click="showLoaingTemplate">{{
$t("提单预览")
}}</el-button>
</div> </div>
<div v-if="currRow.status !== 1"> <div v-if="currRow.status !== 1">
<el-button type="primary" @click="createPdf">{{
$t("提交完成")
}}</el-button>
<!--lanbm 2024-05-24 修改为提交完成,在后台不用审批直接,完成提单的制作
<el-button type="primary" @click="createPdf">{{$t('提交审核')}}</el-button> <el-button type="primary" @click="createPdf">{{$t('提交审核')}}</el-button>
<el-button type="primary" @click="showLoaingTemplate">{{$t('提单预览')}}</el-button> -->
<el-button type="primary" @click="showLoaingTemplate">{{
$t("提单预览")
}}</el-button>
</div> </div>
</el-row> </el-row>
<!-- htm2canvas 容器 --> <!-- htm2canvas 容器 -->
<div style="height:0; overflow: hidden;"> <div style="height: 0; overflow: hidden">
<div id="html2canvas-container" v-html="billContent"></div> <div id="html2canvas-container" v-html="billContent"></div>
</div> </div>
<el-dialog :title="dialogCfg.title" :visible.sync="visible" width="1000px" append-to-body class="shippingSea-dialog"> <el-dialog
<previewBill v-if="visible" :contentHtml="billContent" :currRow="currRow" :type="dialogCfg.type" /> :title="dialogCfg.title"
:visible.sync="visible"
width="1000px"
append-to-body
class="shippingSea-dialog"
>
<previewBill
v-if="visible"
:contentHtml="billContent"
:currRow="currRow"
:type="dialogCfg.type"
/>
</el-dialog> </el-dialog>
</el-row> </el-row>
</template> </template>
...@@ -46,12 +74,12 @@ import { ...@@ -46,12 +74,12 @@ import {
import { serviceMsg, toReviewDetail } from "../shippingSea/utils"; import { serviceMsg, toReviewDetail } from "../shippingSea/utils";
import previewBill from "./previewBill.vue"; import previewBill from "./previewBill.vue";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import html2canvas from 'html2canvas'; import html2canvas from "html2canvas";
import { jsPDF } from "jspdf"; import { jsPDF } from "jspdf";
import {uploadFile} from '@/api/infra/file' import { uploadFile } from "@/api/infra/file";
import FileSaver from 'file-saver' import FileSaver from "file-saver";
import {getOrder, getOrderDetail} from "@/api/ecw/order"; import { getOrder, getOrderDetail } from "@/api/ecw/order";
window.html2canvas = html2canvas window.html2canvas = html2canvas;
export default { export default {
name: "makeLadingBill", name: "makeLadingBill",
components: { components: {
...@@ -177,49 +205,69 @@ export default { ...@@ -177,49 +205,69 @@ export default {
this.visible = true; this.visible = true;
}, },
// 先获取订单信息,pdf用 订单号+唛头命名 // 先获取订单信息,pdf用 订单号+唛头命名
createPdf(){ createPdf() {
// 空运的由接口生成pdf,所以直接提交即可 // 空运的由接口生成pdf,所以直接提交即可
if(this.$route.fullPath.toLowerCase().indexOf('air') > -1){ if (this.$route.fullPath.toLowerCase().indexOf("air") > -1) {
return this.submit() return this.submit();
} }
getOrder(this.currRow.orderId).then(res => { // lanbm 2024-05-24 修改此后台接口
this.afterCreatePdf(res.data) getOrder(this.currRow.orderId).then((res) => {
}) this.afterCreatePdf(res.data);
});
}, },
afterCreatePdf(orderData){ afterCreatePdf(orderData) {
let loading = this.$loading() let loading = this.$loading();
html2canvas(document.querySelector("#html2canvas-container"), {dpi:144, useCORS: true}).then(canvas => { html2canvas(document.querySelector("#html2canvas-container"), {
const doc = new jsPDF('p','pt','a4',true); dpi: 144,
useCORS: true,
})
.then((canvas) => {
const doc = new jsPDF("p", "pt", "a4", true);
const imgWidth = canvas.width const imgWidth = canvas.width;
const imgHeight = canvas.height const imgHeight = canvas.height;
console.log(imgHeight, imgWidth) console.log(imgHeight, imgWidth);
let _w = 595.28; let _w = 595.28;
let _h = 595.28/imgWidth*imgHeight; let _h = (595.28 / imgWidth) * imgHeight;
if(_h>841.89){ if (_h > 841.89) {
_h = 841.89; _h = 841.89;
_w = _h/imgHeight*imgWidth _w = (_h / imgHeight) * imgWidth;
} }
const _left = (595.28-_w)/2; const _left = (595.28 - _w) / 2;
doc.addImage(canvas, 'PNG', _left, 0, _w,_h, '', 'FAST'); doc.addImage(canvas, "PNG", _left, 0, _w, _h, "", "FAST");
/* doc.save("a4.pdf"); /* doc.save("a4.pdf");
return Promise.reject() */ return Promise.reject() */
let form = new FormData() let form = new FormData();
const dst = this.$l(orderData.logisticsInfoDto, 'destTitle') const dst = this.$l(orderData.logisticsInfoDto, "destTitle");
let file = this.selfNo + "-" + this.currRow.tidanNo + ' ' + orderData.marks + '-' + dst + '.pdf' //this.selfNo + '-' + this.currRow.tidanNo + '.pdf' let file =
this.selfNo +
"-" +
this.currRow.tidanNo +
" " +
orderData.marks +
"-" +
dst +
".pdf"; //this.selfNo + '-' + this.currRow.tidanNo + '.pdf'
form.append('file', new File([doc.output('arraybuffer')], file, {type: 'application/pdf'})) form.append(
form.append('path', `admin/shipment/${this.selfNo}/pdf/${file}`) // 最前面不能有/,否则返回的url会有两个/ "file",
new File([doc.output("arraybuffer")], file, {
type: "application/pdf",
})
);
form.append("path", `admin/shipment/${this.selfNo}/pdf/${file}`); // 最前面不能有/,否则返回的url会有两个/
/* let blob = new Blob([doc.output('arraybuffer')], {type: "application/pdf"}) /* let blob = new Blob([doc.output('arraybuffer')], {type: "application/pdf"})
FileSaver.saveAs(blob, file); FileSaver.saveAs(blob, file);
return */ return */
return uploadFile(form) return uploadFile(form);
}).then(res => { })
return this.submit(res.data) .then((res) => {
}).finally(res => { return this.submit(res.data);
loading.close() })
}) .finally((res) => {
loading.close();
});
}, },
submit(imgUrl) { submit(imgUrl) {
let params = { let params = {
...@@ -228,10 +276,10 @@ export default { ...@@ -228,10 +276,10 @@ export default {
copyUserId: this.selectedUsers, copyUserId: this.selectedUsers,
}; };
// 有pdf地址则提交,没有则指定后端生成 // 有pdf地址则提交,没有则指定后端生成
if(imgUrl){ if (imgUrl) {
params.imgUrl = imgUrl params.imgUrl = imgUrl;
}else{ } else {
params.needBackend = true params.needBackend = true;
} }
if (["makeBill", "resetBill"].includes(this.dialogCfg.type)) { if (["makeBill", "resetBill"].includes(this.dialogCfg.type)) {
createBillService({ ...params, status: 1 }).then((res) => { createBillService({ ...params, status: 1 }).then((res) => {
...@@ -263,7 +311,7 @@ export default { ...@@ -263,7 +311,7 @@ export default {
this.$emit("closeDialog", type); this.$emit("closeDialog", type);
}, },
jumpReviewDetail() { jumpReviewDetail() {
this.close('close') this.close("close");
const { bpmProcessId } = this.currData; const { bpmProcessId } = this.currData;
toReviewDetail.apply(this, [bpmProcessId]); toReviewDetail.apply(this, [bpmProcessId]);
}, },
...@@ -281,14 +329,14 @@ export default { ...@@ -281,14 +329,14 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep #html2canvas-container{ ::v-deep #html2canvas-container {
padding: 3rem; padding: 3rem;
word-break:initial; word-break: initial;
p{ p {
margin: 0; margin: 0;
} }
td{ td {
word-break:initial; word-break: initial;
} }
} }
.shipping-makeLadingBill { .shipping-makeLadingBill {
...@@ -318,10 +366,9 @@ export default { ...@@ -318,10 +366,9 @@ export default {
justify-content: center; justify-content: center;
} }
} }
.shippingSea-dialog{ .shippingSea-dialog {
::v-deep .el-dialog__body{ ::v-deep .el-dialog__body {
padding-top: 0; padding-top: 0;
} }
} }
</style> </style>
...@@ -392,7 +392,7 @@ ...@@ -392,7 +392,7 @@
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
@click="editCostClick(scope.row)" @click="editCostClick(scope.row)"
style="marginright: 10px" style="marginright: 10px"
...@@ -404,7 +404,7 @@ ...@@ -404,7 +404,7 @@
@confirm="deleteCostClick(scope.row)" @confirm="deleteCostClick(scope.row)"
> >
<el-button <el-button
type="danger" type="danger" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
slot="reference" slot="reference"
v-hasPermi="['ecw:box-cost:delete']" v-hasPermi="['ecw:box-cost:delete']"
......
...@@ -456,7 +456,7 @@ ...@@ -456,7 +456,7 @@
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
@click="editCostClick(scope.row)" @click="editCostClick(scope.row)"
style="marginright: 10px" style="marginright: 10px"
...@@ -468,7 +468,7 @@ ...@@ -468,7 +468,7 @@
@confirm="deleteCostClick(scope.row)" @confirm="deleteCostClick(scope.row)"
> >
<el-button <el-button
type="danger" type="danger" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
slot="reference" slot="reference"
v-hasPermi="['ecw:box-cost:delete']" v-hasPermi="['ecw:box-cost:delete']"
......
This diff is collapsed.
...@@ -11,27 +11,30 @@ ...@@ -11,27 +11,30 @@
> >
<el-form-item :label="$t('客户编号')" prop="number"> <el-form-item :label="$t('客户编号')" prop="number">
<el-input <el-input
v-model="queryParams.number" v-model.trim="queryParams.number"
:placeholder="$t('请输入客户编号')" :placeholder="$t('请输入客户编号')"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户名称')" prop="name"> <el-form-item :label="$t('客户名称')" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model.trim="queryParams.name"
:placeholder="$t('请输入客户名称')" :placeholder="$t('请输入客户名称')"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"
/> />
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户等级')" prop="level"> <el-form-item :label="$t('客户等级')" prop="level">
<el-select <el-select
multiple
clearable clearable
v-model="queryParams.level" v-model="queryParams.level"
:placeholder="$t('请选择客户等级')" :placeholder="$t('请选择客户等级')"
clearable clearable
size="small" size="small"
@change="handleQuery"
> >
<el-option <el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
...@@ -44,23 +47,28 @@ ...@@ -44,23 +47,28 @@
<el-form-item :label="$t('联系方式')"> <el-form-item :label="$t('联系方式')">
<el-input <el-input
:placeholder="$t('请输入联系方式')" :placeholder="$t('请输入联系方式')"
v-model="queryParams.defaultContactPhone" v-model.trim="queryParams.defaultContactPhone"
onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector <dict-selector
multiple
clearable clearable
:type="DICT_TYPE.CUSTOMER_TYPE" :type="DICT_TYPE.CUSTOMER_TYPE"
v-model="queryParams.type" v-model="queryParams.type"
@change="handleQuery"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select <el-select
multiple
clearable clearable
v-model="queryParams.customerService" v-model="queryParams.customerService"
:placeholder="$t('请选择客户经理')" :placeholder="$t('请选择客户经理')"
clearable clearable
size="small" size="small"
@change="handleQuery"
> >
<el-option <el-option
v-for="dict in customerServiceList" v-for="dict in customerServiceList"
...@@ -72,10 +80,12 @@ ...@@ -72,10 +80,12 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select <el-select
multiple
clearable clearable
v-model="queryParams.source" v-model="queryParams.source"
:placeholder="$t('请选择客户来源')" :placeholder="$t('请选择客户来源')"
size="small" size="small"
@change="handleQuery"
> >
<el-option <el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
...@@ -87,9 +97,11 @@ ...@@ -87,9 +97,11 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('国家')" prop="source"> <el-form-item :label="$t('国家')" prop="source">
<el-select <el-select
multiple
clearable clearable
v-model="queryParams.country" v-model="queryParams.country"
:placeholder="$t('请选择国家')" :placeholder="$t('请选择国家')"
@change="handleQuery"
> >
<el-option <el-option
v-for="dict in countryList" v-for="dict in countryList"
...@@ -101,11 +113,13 @@ ...@@ -101,11 +113,13 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户状态')" prop="status"> <el-form-item :label="$t('客户状态')" prop="status">
<el-select <el-select
multiple
clearable clearable
v-model="queryParams.status" v-model="queryParams.status"
:placeholder="$t('请选择客户状态')" :placeholder="$t('请选择客户状态')"
clearable clearable
size="small" size="small"
@change="handleQuery"
> >
<el-option <el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
...@@ -125,24 +139,29 @@ ...@@ -125,24 +139,29 @@
range-separator="-" range-separator="-"
:start-placeholder="$t('开始日期')" :start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')" :end-placeholder="$t('结束日期')"
/> />
</el-form-item> </el-form-item>
<el-form-item :label="$t('信用等级')" prop="department"> <el-form-item :label="$t('信用等级')" prop="department">
<el-select clearable v-model="queryParams.creditLevel"> <el-select multiple clearable v-model="queryParams.creditLevel">
<el-option <el-option
v-for="(item, index) in creditList" v-for="(item, index) in creditList"
:label="isChinese ? item.nameZh : item.nameEn" :label="isChinese ? item.nameZh : item.nameEn"
:key="index" :key="index"
:value="item.id" :value="item.id"
@change="handleQuery"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('市场获客')" prop="department">
<dict-selector <dict-selector
multiple
clearable clearable
:type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
v-model="queryParams.resourceType" v-model="queryParams.resourceType"
formatter="number" formatter="number"
@change="handleQuery"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -349,8 +368,8 @@ ...@@ -349,8 +368,8 @@
:label="$t('客户经理ID')" :label="$t('客户经理ID')"
align="center" v-show="false" align="center" v-show="false"
prop="customerService" prop="customerService"
>--> >
</el-table-column> </el-table-column>-->
<el-table-column :label="$t('出货渠道')"> <el-table-column :label="$t('出货渠道')">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
{{ channel(row.transportType) }} {{ channel(row.transportType) }}
......
...@@ -4,19 +4,19 @@ ...@@ -4,19 +4,19 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('客户名称')" prop="name"> <el-form-item :label="$t('客户名称')" prop="name">
<el-input v-model="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model.trim="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('联系方式')"> <el-form-item :label="$t('联系方式')">
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input :placeholder="$t('请输入联系方式')" v-model.trim="queryParams.defaultContactPhone" @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select clearable v-model="queryParams.customerService" @change="handleQuery" :placeholder="$t('请选择客户经理')" clearable size="small">
<el-option v-for="dict in customerServiceList" <el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/> :key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select clearable v-model="queryParams.source" :placeholder="$t('请选择客户来源')" clearable size="small"> <el-select clearable v-model="queryParams.source" :placeholder="$t('请选择客户来源')" @change="handleQuery" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select> </el-select>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector> <dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number" @change="handleQuery"></dict-selector>
</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>
......
...@@ -4,43 +4,43 @@ ...@@ -4,43 +4,43 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('客户编号')" prop="number"> <el-form-item :label="$t('客户编号')" prop="number">
<el-input v-model="queryParams.number" :placeholder="$t('请输入客户编号')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model.trim="queryParams.number" :placeholder="$t('请输入客户编号')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户名称')" prop="name"> <el-form-item :label="$t('客户名称')" prop="name">
<el-input v-model="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model.trim="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户等级')" prop="level"> <el-form-item :label="$t('客户等级')" prop="level">
<el-select clearable v-model="queryParams.level" :placeholder="$t('请选择客户等级')" clearable size="small"> <el-select multiple v-model="queryParams.level" :placeholder="$t('请选择客户等级')" clearable size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('联系方式')"> <el-form-item :label="$t('联系方式')">
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input :placeholder="$t('请输入联系方式')" v-model.trim="queryParams.defaultContactPhone" onkeyup="this.value=this.value.replace(/(^\s*)|(\s*$)/g,'')"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type"></dict-selector> <dict-selector multiple :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type" clearable @change="handleQuery"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select multiple v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small" @change="handleQuery">
<el-option v-for="dict in customerServiceList" <el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/> :key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select clearable v-model="queryParams.source" :placeholder="$t('请选择客户来源')" clearable size="small"> <el-select v-model="queryParams.source" :placeholder="$t('请选择客户来源')" clearable size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国家')" prop="source"> <el-form-item :label="$t('国家')" prop="source">
<el-select clearable v-model="form.country" :placeholder="$t('请选择国家')"> <el-select multiple clearable v-model="form.country" :placeholder="$t('请选择国家')" @change="handleQuery">
<el-option v-for="dict in countryList" <el-option v-for="dict in countryList"
:key="dict.id" :label=" isChinese ? dict.nameZh : dict.nameEn" :value="parseInt(dict.id)" /> :key="dict.id" :label=" isChinese ? dict.nameZh : dict.nameEn" :value="parseInt(dict.id)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户状态')" prop="status"> <el-form-item :label="$t('客户状态')" prop="status">
<el-select clearable v-model="queryParams.status" :placeholder="$t('请选择客户状态')" clearable size="small"> <el-select multiple v-model="queryParams.status" :placeholder="$t('请选择客户状态')" clearable size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select> </el-select>
...@@ -50,12 +50,12 @@ ...@@ -50,12 +50,12 @@
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('信用等级')" prop="department"> <el-form-item :label="$t('信用等级')" prop="department">
<el-select clearable v-model="queryParams.creditLevel" > <el-select multiple clearable v-model="queryParams.creditLevel" @change="handleQuery">
<el-option v-for="(item,index) in creditList" :label=" isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label=" isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector> <dict-selector multiple clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number" @change="handleQuery"></dict-selector>
</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>
......
This diff is collapsed.
This diff is collapsed.
...@@ -343,6 +343,9 @@ import { getSupplierPage } from "@/api/ecw/supplier"; ...@@ -343,6 +343,9 @@ import { getSupplierPage } from "@/api/ecw/supplier";
import { getCurrencyPage } from "@/api/ecw/currency"; import { getCurrencyPage } from "@/api/ecw/currency";
import { getWarehouseList } from "@/api/ecw/warehouse"; import { getWarehouseList } from "@/api/ecw/warehouse";
/*
应付款
*/
export default { export default {
name: "EcwFinancialPayable", name: "EcwFinancialPayable",
components: {}, components: {},
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -6,8 +6,9 @@ ...@@ -6,8 +6,9 @@
<pdf-viewer id="pdfViewer" ref="viewer" v-if="pdfData" :url="pdfData" style="display:block; margin: 0 auto; max-height: 80vh; overflow:auto;" /> <pdf-viewer id="pdfViewer" ref="viewer" v-if="pdfData" :url="pdfData" style="display:block; margin: 0 auto; max-height: 80vh; overflow:auto;" />
<!-- <div v-if="detail" class="billcontent" v-html="detail.billContent"></div> --> <!-- <div v-if="detail" class="billcontent" v-html="detail.billContent"></div> -->
<p class="subs" style="text-align:center"> <p class="subs" style="text-align:center">
<el-button type="primary" @click="download" :disabled="!detail">{{$t('下载')}}</el-button> <!--lanbm 2024-06-04 添加审批状态控制逻辑-->
<el-button type="primary" @click="print" :disabled="!detail">{{$t('打印')}}</el-button> <el-button type="primary" @click="download" :disabled="detail.bpmStatus!='2'">{{$t('下载')}}</el-button>
<el-button type="primary" @click="print" :disabled="detail.bpmStatus!='2'">{{$t('打印')}}</el-button>
</p> </p>
</el-dialog> </el-dialog>
</template> </template>
......
...@@ -574,7 +574,9 @@ ...@@ -574,7 +574,9 @@
</el-card> </el-card>
<print-warehouse-receipt v-if="showWarehouseReceipt" :order-id="order.orderId" @close="showWarehouseReceipt=false" /> <print-warehouse-receipt v-if="showWarehouseReceipt" :order-id="order.orderId" @close="showWarehouseReceipt=false" />
<!--查看提货单 lanbm 2024-06-03-->
<print-lading-bill v-if="showLadingBill" :order-id="order.orderId" :transport-type="order.transportId" @close="showLadingBill=false" /> <print-lading-bill v-if="showLadingBill" :order-id="order.orderId" :transport-type="order.transportId" @close="showLadingBill=false" />
<!--入仓记录 lanbm 2024-06-10 add-->
<warehouse-detail :order="order" :orderItemId="showWarehouseInItemId" :type="type" @openPackHistory="openPackHistory" v-if="showWarehouseInItemId" @close="showWarehouseInItemId=null" /> <warehouse-detail :order="order" :orderItemId="showWarehouseInItemId" :type="type" @openPackHistory="openPackHistory" v-if="showWarehouseInItemId" @close="showWarehouseInItemId=null" />
<el-dialog :title="$t('付款人')" :visible.sync="showDarweeDialog" v-if="order && order.customDraweeVOList"> <el-dialog :title="$t('付款人')" :visible.sync="showDarweeDialog" v-if="order && order.customDraweeVOList">
<el-table :data="order.customDraweeVOList" v-if="order.drawee==3" > <el-table :data="order.customDraweeVOList" v-if="order.drawee==3" >
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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