Commit 60ece7c1 authored by 我在何方's avatar 我在何方

应收款查询bug

parents e1c2fb3a 0f5df4c2
...@@ -10,7 +10,7 @@ tests/**/coverage/ ...@@ -10,7 +10,7 @@ tests/**/coverage/
tests/e2e/reports tests/e2e/reports
selenium-debug.log selenium-debug.log
# 提取的需要翻译的文件列表 # 提取的需要翻译的文件列表
messages.txt i18n-messages.txt
# Editor directories and files # Editor directories and files
.idea .idea
.vscode .vscode
......
...@@ -2,6 +2,7 @@ const fs = require('fs'); ...@@ -2,6 +2,7 @@ const fs = require('fs');
const root = "./src" const root = "./src"
let allFiles = [] let allFiles = []
function getFiles(dir){ function getFiles(dir){
let files = fs.readdirSync(dir) let files = fs.readdirSync(dir)
files.forEach(file => { files.forEach(file => {
...@@ -16,12 +17,12 @@ getFiles(root) ...@@ -16,12 +17,12 @@ getFiles(root)
let messages = new Set() let messages = new Set()
allFiles.forEach(file => { allFiles.forEach(file => {
let data = fs.readFileSync(file, {encoding: 'utf-8'}) let data = fs.readFileSync(file, {encoding: 'utf-8'})
let matched = data.matchAll(/\$t\([\'\"]{1}([^\"\']+)[\'\"]{1}\)/g) let matched = data.matchAll(/\$t\([\'\"]{1}([^\"\']+)[\'\"]{1}/g)
let i = 0 let i = 0
for(let item of matched){ for(let item of matched){
i ++ i ++
messages.add(item[1]) messages.add(item[1])
} }
}) })
fs.writeFileSync("./messages.txt", Array.from(messages).join("\n")) fs.writeFileSync("./i18n-messages.txt", Array.from(messages).join("\n"))
console.log("done!") console.log("done!")
\ No newline at end of file
...@@ -411,6 +411,21 @@ export function createSection(data) { ...@@ -411,6 +411,21 @@ export function createSection(data) {
}); });
} }
/**
* 创建预装部分
*
* @export
* @param {*} data
* @return {*}
*/
export function changeSection(data) {
return request({
url: "/ecw/box-preload-goods/changeSection",
method: "post",
data,
});
}
/** /**
* 查询出货单下的所有部分列表 * 查询出货单下的所有部分列表
* *
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="始发地">{{ order.logisticsInfoDto.startAddressZh || '' }}</el-descriptions-item> <el-descriptions-item label="始发地">{{ order.logisticsInfoDto.startTitleZh || '' }}<span v-if="order.isExternalWarehouse" style="color: red">(外部仓)</span></el-descriptions-item>
<el-descriptions-item label="目的地">{{ order.logisticsInfoDto.destTitleZh || '' }}</el-descriptions-item> <el-descriptions-item label="目的地">{{ order.logisticsInfoDto.destTitleZh || '' }}</el-descriptions-item>
<el-descriptions-item label="发货人姓名">{{ order.consignorVO && order.consignorVO.name || ''}}</el-descriptions-item> <el-descriptions-item label="发货人姓名">{{ order.consignorVO && order.consignorVO.name || ''}}</el-descriptions-item>
<el-descriptions-item label="发货人公司">{{ order.consignorVO && order.consignorVO.company || '' }}</el-descriptions-item> <el-descriptions-item label="发货人公司">{{ order.consignorVO && order.consignorVO.company || '' }}</el-descriptions-item>
......
...@@ -91,7 +91,7 @@ export default { ...@@ -91,7 +91,7 @@ export default {
if (val) { if (val) {
this.opened = true this.opened = true
getByWarehouseId({cityId: this.cityId,warehouseId: this.warehouseId }).then(r => { if (this.area.length === 0) getByWarehouseId({cityId: this.cityId,warehouseId: this.warehouseId }).then(r => {
const area = r.data const area = r.data
area.forEach(e => { area.forEach(e => {
// 仓库 // 仓库
......
...@@ -478,3 +478,8 @@ export default { ...@@ -478,3 +478,8 @@ export default {
} }
}; };
</script> </script>
<style scoped>
.my-process-designer{
height: calc(100vh - 84px - 40px);
}
</style>
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="流程名称" prop="processName"> <el-form-item label="任务名称" prop="processName">
<el-input v-model="queryParams.processName" placeholder="请输入流程名称" clearable/> <el-input v-model="queryParams.processName" placeholder="请输入任务名称" clearable/>
</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 v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.categoryId" /> <dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.categoryId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="流程名称" align="center" prop="processName"/> <el-table-column label="任务名称" align="center" prop="processName"/>
<el-table-column label="流程发起人" align="center" prop="originatorName"/> <el-table-column label="流程发起人" align="center" prop="originatorName"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -2,13 +2,27 @@ ...@@ -2,13 +2,27 @@
<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="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('创建时间')"> <el-form-item :label="$t('流程编号')" prop="name">
<!--// TODO 缺少查询字段-->
<!-- <el-input v-model="queryParams.no" :placeholder="$t('请输入流程编号')" clearable @keyup.enter.native="handleQuery"/>-->
缺少字段
</el-form-item>
<el-form-item :label="$t('流程分类')" prop="name">
<!--// TODO 缺少查询字段-->
<!-- <el-input v-model="queryParams.no" :placeholder="$t('请输入流程编号')" clearable @keyup.enter.native="handleQuery"/>-->
缺少字段
</el-form-item>
<el-form-item :label="$t('提交时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务编号')" prop="name">
缺少字段
</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 icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -18,30 +32,37 @@ ...@@ -18,30 +32,37 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('任务编号')" align="center" prop="id" width="320" fixed /> <el-table-column :label="$t('任务编号')" align="center" prop="id" width="320" fixed />
<el-table-column :label="$t('任务名称')" align="center" prop="name" width="200" /> <el-table-column :label="$t('任务名称')" align="center" prop="processInstance.name" width="200" />
<el-table-column :label="$t('所属流程')" align="center" prop="processInstance.name" width="200" /> <el-table-column :label="$t('业务编号')" align="center" prop="" width="200" >
缺少字段
</el-table-column>
<el-table-column :label="$t('流程分类')" align="center" prop="category" width="200" />
<el-table-column :label="$t('当前审批节点')" align="center" prop="name" width="200" />
<el-table-column :label="$t('状态')" align="center" prop="" width="200" >
缺少字段
</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="comment" width="200" /> <!-- <el-table-column :label="$t('审批意见')" align="center" prop="comment" width="200" />-->
<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" prop="durationInMillis" width="180"> <!-- <el-table-column :label="$t('耗时')" align="center" prop="durationInMillis" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ getDateStar(scope.row.durationInMillis) }}</span> <span>{{ getDateStar(scope.row.durationInMillis) }}</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 size="mini" type="text" icon="el-icon-edit" @click="handleAudit(scope.row)"
......
...@@ -2,37 +2,28 @@ ...@@ -2,37 +2,28 @@
<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="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>
<!-- // TODO 接口暂不支持 <el-form-item label="编号" prop="name">
<el-form-item label="流程编号" prop="name"> 缺少字段
<el-input v-model="queryParams.name" placeholder="请输入流程编号" 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 v-model="queryParams.category" :placeholder="$t('请选择流程分类')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="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 v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')"/> type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')"/>
</el-form-item> </el-form-item>
<!-- // TODO 接口暂不支持
<el-form-item label="状态" prop="name"> <el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="结果" prop="name">
</el-form-item>
-->
<el-form-item :label="$t('业务编码')" prop="businessNo">
<el-input 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">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -41,25 +32,34 @@ ...@@ -41,25 +32,34 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('任务编号')" align="center" prop="id" width="320"/> <el-table-column :label="$t('编号')" align="center" prop="id" width="320"/>
<el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/> <el-table-column :label="$t('流程名称')" align="center" prop="processInstance.name" width="320"/>
<el-table-column :label="$t('流程分类')" align="center" prop="category"> <el-table-column :label="$t('流程分类')" align="center" prop="category">
<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="processInstance.name"/> <el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/>
<el-table-column :label="$t('当前审批任务')" align="center" prop="name"/>
<el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname"/> <el-table-column :label="$t('当前审批节点')" align="center" prop="name"/>
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180"> <el-table-column :label="$t('状态')" align="center" prop="version" width="80">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.suspensionState === 1">{{$t('激活')}}</el-tag>
<el-tag type="warning" v-if="scope.row.suspensionState === 2">{{$t('挂起')}}</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('结果')" align="center" prop="processInstance.startUserNickname">
缺少字段
</el-table-column>
<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="version" width="80"> <el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="success" v-if="scope.row.suspensionState === 1">{{$t('激活')}}</el-tag> 缺少字段
<el-tag type="warning" v-if="scope.row.suspensionState === 2">{{$t('挂起')}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<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="运输方式" prop="transportType"> <el-form-item :label="$t('运输方式')" prop="transportType">
<el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small"> <el-select v-model="queryParams.transportType" :placeholder="$t('请选择运输方式')" clearable size="small">
<el-option v-for="dict in transportTypes" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in transportTypes" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -165,13 +165,13 @@ ...@@ -165,13 +165,13 @@
<div class="notice-dialog"> <div class="notice-dialog">
<div class="notice-title">您有{{noticeList.length}}个待处理出货操作,请尽快前往处理:</div> <div class="notice-title">您有{{noticeList.length}}个待处理出货操作,请尽快前往处理:</div>
<el-table :data="noticeList" height="500px" border> <el-table :data="noticeList" height="500px" border>
<el-table-column label="自编号" align="center" prop="selfNo" /> <el-table-column :label="$t('自编号')" align="center" prop="selfNo" />
<el-table-column label="类型" align="center"> <el-table-column label="类型" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_NOTICE_TYPE" :value="String(scope.row.noticeType)" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_NOTICE_TYPE" :value="String(scope.row.noticeType)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作时间" align="center"> <el-table-column label="预计时间" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{formatDate(scope.row.createTime)}} {{formatDate(scope.row.createTime)}}
</template> </template>
......
...@@ -169,7 +169,7 @@ export default { ...@@ -169,7 +169,7 @@ export default {
orderId: this.currRow.orderId, orderId: this.currRow.orderId,
copyUserId: this.selectedUsers, copyUserId: this.selectedUsers,
}; };
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) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.close("query"); this.close("query");
......
...@@ -164,7 +164,7 @@ export default { ...@@ -164,7 +164,7 @@ export default {
calcSum(goodsList) { calcSum(goodsList) {
let sum = 0; let sum = 0;
goodsList.forEach((element) => { goodsList.forEach((element) => {
sum = Decimal.add(sum, element.num); sum = Decimal.add(sum, element.num).toNumber();
}); });
return sum; return sum;
}, },
......
...@@ -312,7 +312,7 @@ export default { ...@@ -312,7 +312,7 @@ export default {
let _total = 0; let _total = 0;
const { orderSplitItemBackVOList = [] } = this.splitData; const { orderSplitItemBackVOList = [] } = this.splitData;
orderSplitItemBackVOList.forEach((v) => { orderSplitItemBackVOList.forEach((v) => {
_total = Decimal.add(_total, Number(v.num)); _total = Decimal.add(_total, Number(v.num)).toNumber();
}); });
return _total; return _total;
}, },
...@@ -382,15 +382,15 @@ export default { ...@@ -382,15 +382,15 @@ export default {
let leviteV = 0; let leviteV = 0;
let leviteW = 0; let leviteW = 0;
this.orderData.orderItemVOList.forEach((column, index) => { this.orderData.orderItemVOList.forEach((column, index) => {
orderSum = Decimal.add(orderSum, column.num ?? 0); orderSum = Decimal.add(orderSum, column.num ?? 0).toNumber();
orderV = Decimal.add(orderV, column.volume ?? 0); orderV = Decimal.add(orderV, column.volume ?? 0).toFixed(2);
orderW = Decimal.add(orderW, column.weight ?? 0); orderW = Decimal.add(orderW, column.weight ?? 0).toFixed(2);
leviteSum = Decimal.add( leviteSum = Decimal.add(
leviteSum, leviteSum,
column.warehouseInInfoVO?.cartonsNum ?? 0 column.warehouseInInfoVO?.cartonsNum ?? 0
); ).toNumber();
leviteV += Decimal.add(leviteV, column.warehouseInInfoVO?.volume ?? 0); leviteV += Decimal.add(leviteV, column.warehouseInInfoVO?.volume ?? 0).toFixed(2);
leviteW += Decimal.add(leviteW, column.warehouseInInfoVO?.weight ?? 0); leviteW += Decimal.add(leviteW, column.warehouseInInfoVO?.weight ?? 0).toFixed(2);
}); });
sums[1] = sums[1] =
"下单统计:" + "下单统计:" +
...@@ -460,8 +460,8 @@ export default { ...@@ -460,8 +460,8 @@ export default {
if (valid) { if (valid) {
// 输入箱数大于实装箱数 // 输入箱数大于实装箱数
const total = this.totalSplitNum(); const total = this.totalSplitNum();
const canSplitNum = Decimal.sub(this.currRow.num, this.currRow.installNum); const canSplitNum = Decimal.sub(this.currRow.num, this.currRow.installNum).toNumber();
const remain = Decimal.sub(canSplitNum, total); const remain = Decimal.sub(canSplitNum, total).toNumber();
if (this.shopForm.num > remain) { if (this.shopForm.num > remain) {
this.$message.error("放入箱数不能大于总箱数"); this.$message.error("放入箱数不能大于总箱数");
return; return;
......
...@@ -642,7 +642,7 @@ export default { ...@@ -642,7 +642,7 @@ export default {
this.listData.forEach((item) => { this.listData.forEach((item) => {
const { sectionOrderList = [] } = item; const { sectionOrderList = [] } = item;
sectionOrderList.forEach((item) => { sectionOrderList.forEach((item) => {
count = Decimal.add(count, item.installNum); count = Decimal.add(count, item.installNum).toNumber();
}); });
}); });
} }
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
<el-form ref="cusDeclarationForm" :rules="rules" :model="cusDeclarationObj" label-width="120px"> <el-form ref="cusDeclarationForm" :rules="rules" :model="cusDeclarationObj" label-width="120px">
<el-form-item label="单证要求"> <el-form-item label="单证要求">
<template v-for="(item, index) in cusDeclarationObj.documentInfo"> <template v-for="(item, index) in cusDeclarationObj.documentInfo">
{{
(index === 0 || index === cusDeclarationObj.documentInfo.length) ? "" :"/"
}}
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item" :key="index" /> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item" :key="index" />
</template> </template>
<el-button type="primary" style="margin-left:10px;" @click="downloadVGM">{{getButtonLabel(cusDeclarationObj.documentInfo)}}</el-button> <el-button type="primary" style="margin-left:10px;" @click="downloadVGM">{{getButtonLabel(cusDeclarationObj.documentInfo)}}</el-button>
...@@ -22,6 +25,9 @@ ...@@ -22,6 +25,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="正常报关订单"> <el-form-item label="正常报关订单">
<div v-for="item in shipmentObj.normalOrderList" :key="item.orderId">
<a href="javascript:void(0)" @click="jumpOrderDetail(item)">{{ item.orderNo }}</a>
</div>
</el-form-item> </el-form-item>
<el-form-item label="报关公司名称"> <el-form-item label="报关公司名称">
<supplierSelect v-model="cusDeclarationObj.dcCompanyId" :companyType="'2'" placeholder="请选择报关公司名称" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="cusDeclarationObj.dcCompanyId" :companyType="'2'" placeholder="请选择报关公司名称" :allSupplier="this.$attrs.allSupplier" />
...@@ -30,7 +36,7 @@ ...@@ -30,7 +36,7 @@
<el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcCutOffTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" placeholder="请选择日期" v-model="cusDeclarationObj.dcCutOffTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="dcCustomsStatus"> <el-form-item label="状态" prop="dcCustomsStatus">
<el-radio-group v-model="cusDeclarationObj.dcCustomsStatus" :disabled="inReview || isCheckDeal"> <el-radio-group v-model="cusDeclarationObj.dcCustomsStatus" :disabled="inReview || isCheckDeal('status')">
<el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_DCCUSTOMS_STATUS)" :key="item.value" :label="item.value">{{item.label}}</el-radio> <el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_DCCUSTOMS_STATUS)" :key="item.value" :label="item.value">{{item.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
...@@ -38,7 +44,7 @@ ...@@ -38,7 +44,7 @@
<!-- 查验 --> <!-- 查验 -->
<div v-show="cusDeclarationObj.dcCustomsStatus === '3'"> <div v-show="cusDeclarationObj.dcCustomsStatus === '3'">
<el-form-item label="查验"> <el-form-item label="查验">
<el-radio-group v-model="cusDeclarationObj.dcCheckStatus" :disabled="inReview || isCheckDeal"> <el-radio-group v-model="cusDeclarationObj.dcCheckStatus" :disabled="inReview || isCheckDeal('check')">
<el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CHECK_STATUS)" :key="item.value" :label="item.value" :disabled="disabledRadio(item)">{{item.label}}</el-radio> <el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CHECK_STATUS)" :key="item.value" :label="item.value" :disabled="disabledRadio(item)">{{item.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
...@@ -78,8 +84,8 @@ ...@@ -78,8 +84,8 @@
<el-button type="primary" plain @click="canclAudit">{{cusDeclarationObj.dcCheckStatus === '1' ? '取消全部退场审核' : '取消部分退场审核'}}</el-button> <el-button type="primary" plain @click="canclAudit">{{cusDeclarationObj.dcCheckStatus === '1' ? '取消全部退场审核' : '取消部分退场审核'}}</el-button>
</el-row> </el-row>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit(1)" :disabled="isCheckDeal">保存</el-button> <el-button type="primary" @click="onSubmit(1)" :disabled="isCheckDeal('submit')">保存</el-button>
<el-button type="success" v-if="!inReview" @click="onSubmit(2)" :disabled="isCheckDeal">提交</el-button> <el-button type="success" v-if="!inReview" @click="onSubmit(2)" :disabled="isCheckDeal('submit')">提交</el-button>
<el-button @click="cancel">关闭</el-button> <el-button @click="cancel">关闭</el-button>
<el-button type="primary" @click="extraCost" v-show="cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCustomsStatus === '3'">额外费用</el-button> <el-button type="primary" @click="extraCost" v-show="cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCustomsStatus === '3'">额外费用</el-button>
</el-row> </el-row>
...@@ -156,7 +162,7 @@ import { ...@@ -156,7 +162,7 @@ import {
downloadFile, downloadFile,
} from "../utils"; } from "../utils";
import ImageUpload from "@/components/ImageUpload"; import ImageUpload from "@/components/ImageUpload";
import Decimal from 'decimal.js' import Decimal from "decimal.js";
/** /**
* 报关 * 报关
...@@ -203,6 +209,13 @@ export default { ...@@ -203,6 +209,13 @@ export default {
...this.shipmentObj[voName], ...this.shipmentObj[voName],
documentInfo: this.shipmentObj.documentInfo?.split(",") ?? [], documentInfo: this.shipmentObj.documentInfo?.split(",") ?? [],
}; };
if (!this.shipmentObj[voName]) {
oldData.dcCustomsType = oldData.dcCustomsType
? oldData.dcCustomsType
: this.getDcCustomsType(oldData.documentInfo);
}
oldData = formatDateStr(oldData, [ oldData = formatDateStr(oldData, [
"dcCutOffTime", "dcCutOffTime",
"dcCheckTime", "dcCheckTime",
...@@ -216,9 +229,25 @@ export default { ...@@ -216,9 +229,25 @@ export default {
this.cusDeclarationObj = oldData; this.cusDeclarationObj = oldData;
}, },
methods: { methods: {
/* 跳转订单详情 */
jumpOrderDetail(row) {
this.$router.push({
path: "/order/detail",
query: { orderId: row.orderId },
});
},
getDcCustomsType(documentInfo = []) {
const newList = Array.from(new Set(documentInfo));
if (newList.length > 1) {
return "3";
}
if (newList.length === 1) {
return newList[0] === "1" ? "1" : "2";
}
},
getButtonLabel(documentInfo = []) { getButtonLabel(documentInfo = []) {
const newList = Array.from(new Set(documentInfo)); const newList = Array.from(new Set(documentInfo));
return newList.length > 2 ? "混合报关" : "VGM声明"; return newList.length >= 2 ? "混合报关" : "VGM声明";
}, },
submitCustomsCreate(operateType) { submitCustomsCreate(operateType) {
customsCreate({ customsCreate({
...@@ -404,7 +433,7 @@ export default { ...@@ -404,7 +433,7 @@ export default {
this.$set( this.$set(
this.cusDeclarationObj, this.cusDeclarationObj,
"dcVgmWgt", "dcVgmWgt",
Decimal.add(dcBoxWgtTmp, dcGoodsWgtTmp) Decimal.add(dcBoxWgtTmp, dcGoodsWgtTmp).toFixed(2)
); );
}, },
// 审核详情 // 审核详情
...@@ -439,6 +468,7 @@ export default { ...@@ -439,6 +468,7 @@ export default {
if ( if (
checkExamineStatus === 2 && checkExamineStatus === 2 &&
dcCheckStatus === 2 && dcCheckStatus === 2 &&
checkDealStatus === 0 &&
item.value === "1" item.value === "1"
) { ) {
return true; return true;
...@@ -491,12 +521,16 @@ export default { ...@@ -491,12 +521,16 @@ export default {
computed: { computed: {
/* 获取报关审核退场状态文字 */ /* 获取报关审核退场状态文字 */
getCheckExamineStatus() { getCheckExamineStatus() {
const { checkExamineStatus, customsInfo = {} } = this.shipmentObj; const {
checkExamineStatus,
checkDealStatus,
customsInfo = {},
} = this.shipmentObj;
const { dcCheckStatus } = customsInfo; const { dcCheckStatus } = customsInfo;
if (checkExamineStatus === 1) { if (checkExamineStatus === 1) {
return dcCheckStatus === 1 ? "退场审核中" : "部分退场审核中"; return dcCheckStatus === 1 ? "退场审核中" : "部分退场审核中";
} }
if (checkExamineStatus === 2) { if (checkExamineStatus === 2 && checkDealStatus === 0) {
return dcCheckStatus === 1 return dcCheckStatus === 1
? "审核通过,退场中" ? "审核通过,退场中"
: "审核通过,部分退场中"; : "审核通过,部分退场中";
...@@ -505,21 +539,57 @@ export default { ...@@ -505,21 +539,57 @@ export default {
}, },
/* 判断是否已处理 */ /* 判断是否已处理 */
isCheckDeal() { isCheckDeal() {
const { return (type) => {
checkExamineStatus, const {
checkDealStatus, checkExamineStatus,
customsInfo = {}, checkDealStatus,
} = this.shipmentObj; customsInfo = {},
const { dcCheckStatus } = customsInfo; } = this.shipmentObj;
// 退场未处理不能操作 const { dcCheckStatus } = customsInfo;
if (
checkExamineStatus === 2 && // 状态
dcCheckStatus === 1 && if (type === "status") {
checkDealStatus === 0 // 退场/部分退场 审核通过未处理,禁用
) { if (
return true; checkExamineStatus === 2 &&
} [1, 2].includes(dcCheckStatus) &&
return false; checkDealStatus === 0
) {
return true;
}
}
// 查验
if (type === "check") {
// 退场 审核通过未处理,禁用
// 部分退场 审核通过未处理,由 disabledRadio 方法判断
if (
checkExamineStatus === 2 &&
[1].includes(dcCheckStatus) &&
checkDealStatus === 0
) {
return true;
}
}
// 提交/保存
if (type === "submit") {
const { dcCheckStatus: newCheckStatus } = this.cusDeclarationObj;
// 退场/部分退场 审核通过未处理
if (checkExamineStatus === 2 && checkDealStatus === 0) {
// 退场,禁用
if (dcCheckStatus === 1) return true;
// 部分退场
if (dcCheckStatus === 2) {
// 修改为查验后放行,可用,其他禁用
if (newCheckStatus === "3") return false;
return true;
}
}
}
return false;
};
}, },
}, },
}; };
......
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
<p>{{preList.remainWeight}}kg</p> <p>{{preList.remainWeight}}kg</p>
</div> </div>
<div class="table-button"> <div class="table-button">
<el-button type="success" size="small" @click="addPart">增加</el-button> <el-button type="success" size="small" @click="addPart" :disabled="isAudit">增加</el-button>
</div> </div>
</el-row> </el-row>
<el-scrollbar style="height:calc(100% - 43px)"> <el-scrollbar style="height:calc(100% - 43px)">
...@@ -111,8 +111,8 @@ ...@@ -111,8 +111,8 @@
<p>{{getTotlContent(part.secStatistics)}}</p> <p>{{getTotlContent(part.secStatistics)}}</p>
</div> </div>
<div class="table-button"> <div class="table-button">
<el-button type="danger" size="small" @click="deletePart(part)">删除部分</el-button> <el-button type="danger" size="small" @click="deletePart(part)" :disabled="isAudit">删除部分</el-button>
<el-button type="danger" size="small" @click="deleteOrder('selected', part)">删除订单</el-button> <el-button type="danger" size="small" @click="deleteOrder('selected', part)" :disabled="isAudit">删除订单</el-button>
<el-button type="primary" size="small" @click="foldTable(index, part)">{{part.fold ? '展开' : '收起'}}</el-button> <el-button type="primary" size="small" @click="foldTable(index, part)">{{part.fold ? '展开' : '收起'}}</el-button>
</div> </div>
</el-row> </el-row>
...@@ -157,13 +157,13 @@ ...@@ -157,13 +157,13 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleGoods('singele',scope.row,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('single',scope.row,command)" :disabled="isAudit">
<el-button type="primary" size="small" icon="el-icon-edit-outline" circle></el-button> <el-button type="primary" size="small" icon="el-icon-edit-outline" circle :disabled="isAudit"></el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="bPart" v-for="(bPart, index) in preList.sectionGoodList" :key="bPart.id" v-show="bPart.id !== part.id">{{index+1}}部分</el-dropdown-item> <el-dropdown-item :command="bPart" v-for="(bPart, index) in preList.sectionGoodList" :key="bPart.id" v-show="bPart.id !== part.id">{{index+1}}部分</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-button type="danger" size="small" icon="el-icon-minus" circle style="margin-left:10px;" @click="deleteOrder('row',scope.row)"></el-button> <el-button type="danger" size="small" icon="el-icon-minus" circle style="margin-left:10px;" @click="deleteOrder('row',scope.row)" :disabled="isAudit"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -220,8 +220,8 @@ ...@@ -220,8 +220,8 @@
</div> </div>
<div class="table-button"> <div class="table-button">
<el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)">
<el-button type="success" size="small">预装全部</el-button> <el-button type="success" size="small" :disabled="isAudit">预装全部</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown" v-if="preList.sectionGoodList">
<el-dropdown-item :command="part" v-for="(part, index) in preList.sectionGoodList" :key="part.id">第{{index+1}}部分</el-dropdown-item> <el-dropdown-item :command="part" v-for="(part, index) in preList.sectionGoodList" :key="part.id">第{{index+1}}部分</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
</el-table-column> </el-table-column>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleGoods('singele',scope.row,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('single',scope.row,command)">
<el-button type="primary" size="small">预装</el-button> <el-button type="primary" size="small">预装</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="part" v-for="(part, index) in preList" :key="part.id">第{{index+1}}部分</el-dropdown-item> <el-dropdown-item :command="part" v-for="(part, index) in preList" :key="part.id">第{{index+1}}部分</el-dropdown-item>
...@@ -311,6 +311,7 @@ import { ...@@ -311,6 +311,7 @@ import {
deleteSection, deleteSection,
createGoods, createGoods,
deleteGoods, deleteGoods,
changeSection,
approvalCreate, approvalCreate,
approvalCancel, approvalCancel,
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
...@@ -494,18 +495,22 @@ export default { ...@@ -494,18 +495,22 @@ export default {
return; return;
} }
if (column.property === "num") { if (column.property === "num") {
sums[index] = this.calcSum(column.property, data) ?? 0; sums[index] = new Decimal(
this.calcSum(column.property, data)
).toNumber();
} }
if (column.property === "volumeWeight") { if (column.property === "volumeWeight") {
const volume = this.calcSum("volume", data); let volume = this.calcSum("volume", data);
const weight = this.calcSum("weight", data); let weight = this.calcSum("weight", data);
volume = volume === 0 ? volume : new Decimal(volume).toFixed(2);
weight = weight === 0 ? weight : new Decimal(weight).toFixed(2);
sums[index] = getTotlContent({ volume, weight }, [ sums[index] = getTotlContent({ volume, weight }, [
"volume", "volume",
"weight", "weight",
]); ]);
sums[index] = sums[index].replace(" ", "\n");
} }
}); });
return sums; return sums;
}, },
/* 计算总和 */ /* 计算总和 */
...@@ -515,12 +520,13 @@ export default { ...@@ -515,12 +520,13 @@ export default {
return values.reduce((prev, curr) => { return values.reduce((prev, curr) => {
const value = Number(curr); const value = Number(curr);
if (!isNaN(value)) { if (!isNaN(value)) {
return Decimal.add(prev, curr); return prev + curr;
} else { } else {
return prev; return prev;
} }
}, 0); }, 0);
} }
return 0;
}, },
/* 待预装订单分页 */ /* 待预装订单分页 */
pageChange(page) { pageChange(page) {
...@@ -558,23 +564,32 @@ export default { ...@@ -558,23 +564,32 @@ export default {
}, },
/** 预装 */ /** 预装 */
handleGoods(type, item, part) { handleGoods(type, item, part) {
let params = {
secId: part.id,
shipmentId: this.shipmentObj.id,
orderId: item.orderId,
};
if (type === "all") { if (type === "all") {
params.orderItemIdList = item.boxOrderItemList.map( let params = {
(data) => data.orderItemId secId: part.id,
); shipmentId: this.shipmentObj.id,
orderId: item.orderId,
orderItemIdList: item.boxOrderItemList.map(
(data) => data.orderItemId
),
};
createGoods(params).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
});
} else { } else {
params.orderItemIdList = [item.orderItemId]; let params = {
} secId: part.id,
createGoods(params).then((res) => { id: item.id,
serviceMsg(res, this).then(() => { };
this.queryAllData(); changeSection(params).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
});
}); });
}); }
}, },
/* 删除订单 */ /* 删除订单 */
deleteOrder(type, data) { deleteOrder(type, data) {
...@@ -735,6 +750,11 @@ export default { ...@@ -735,6 +750,11 @@ export default {
.tobePre-row { .tobePre-row {
margin-top: 10px; margin-top: 10px;
.el-table {
.cell {
white-space: pre-line;
}
}
} }
} }
} }
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="success" @click="onSubmit" :disabled="isReview">发起申请</el-button> <el-button type="success" @click="onSubmit" v-show="!isReview">发起申请</el-button>
<el-button type="primary" @click="jumpReviewDetail" :disabled="!isReview">审核中</el-button> <el-button type="primary" @click="jumpReviewDetail" v-show="isReview">审核中</el-button>
<el-button @click="cancel">关闭</el-button> <el-button @click="cancel">关闭</el-button>
</el-row> </el-row>
</div> </div>
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="箱数" align="center" prop="num" /> <el-table-column label="箱数" align="center" prop="num" />
<el-table-column label="纸箱尺寸" align="center" prop="boxGauge"> <el-table-column label="纸箱尺寸" align="center" prop="warehouseInInfo.boxGauge">
</el-table-column> </el-table-column>
<el-table-column label="体积" align="center" prop="volume"> <el-table-column label="体积" align="center" prop="volume">
</el-table-column> </el-table-column>
...@@ -130,8 +130,14 @@ export default { ...@@ -130,8 +130,14 @@ export default {
let list = []; let list = [];
res.data.forEach((item) => { res.data.forEach((item) => {
item.orderItemList.forEach((oItem) => { item.orderItemList.forEach((oItem) => {
let warehouseInInfo = {};
if (oItem.warehouseInInfo) {
warehouseInInfo = JSON.parse(oItem.warehouseInInfo ?? {});
}
list.push({ list.push({
...oItem, ...oItem,
warehouseInInfo,
positionNo: item.positionNo, positionNo: item.positionNo,
tallyStatus: item.tallyStatus, tallyStatus: item.tallyStatus,
tallyTime: item.tallyTime, tallyTime: item.tallyTime,
......
...@@ -329,7 +329,7 @@ export default { ...@@ -329,7 +329,7 @@ export default {
let count = 0; let count = 0;
if (this.pageData.sectionOrderList) { if (this.pageData.sectionOrderList) {
this.pageData.sectionOrderList.forEach((item) => { this.pageData.sectionOrderList.forEach((item) => {
count = Decimal.add(count, item.unloadNum); count = Decimal.add(count, item.unloadNum).toNumber();
}); });
} }
return count; return count;
......
<template> <template>
<div> <div>
<el-form ref="errorForm" :model="errorObj" label-width="100px"> <el-form ref="errorForm" :model="errorObj" label-width="100px" :rules="rules">
<el-form-item label="异常"> <el-form-item label="异常" prop="exceptionType">
<el-radio-group v-model="errorObj.exceptionType "> <el-radio-group v-model="errorObj.exceptionType">
<el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_UNLOADING_ERROR)" :key="item.value" :label="item.value">{{item.label}}</el-radio> <el-radio v-for="item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_UNLOADING_ERROR)" :key="item.value" :label="item.value">{{item.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<el-option v-for="(item, index) in goodsList" :key="index" :value="item.orderItemId" :label="item.prodTitleZh"></el-option> <el-option v-for="(item, index) in goodsList" :key="index" :value="item.orderItemId" :label="item.prodTitleZh"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="件数"> <el-form-item label="件数" prop="productNum">
<el-input-number v-model="errorObj.productNum" controls-position="right" :min="1"></el-input-number> <el-input-number v-model="errorObj.productNum" controls-position="right" :min="1"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="异常详情"> <el-form-item label="异常详情">
...@@ -39,6 +39,11 @@ export default { ...@@ -39,6 +39,11 @@ export default {
const { currRow } = this.$attrs; const { currRow } = this.$attrs;
return { return {
// 校验
rules: {
exceptionType: [{ required: true, message: "必填", trigger: "change" }],
productNum: [{ required: true, message: "必填", trigger: "change" }],
},
// 异常对象 // 异常对象
errorObj: { errorObj: {
productId: currRow.goodsList[0].orderItemId, productId: currRow.goodsList[0].orderItemId,
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
{{importCityName(shipmentObj.destWarehouseId)}} {{importCityName(shipmentObj.destWarehouseId)}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="状态"> <el-descriptions-item label="状态">
{{statusLabel}} {{shipmentObj.shipmentStatusText}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -117,7 +117,7 @@ export default { ...@@ -117,7 +117,7 @@ export default {
watch: { watch: {
/* 监听发货对象 */ /* 监听发货对象 */
shipmentObj(val) { shipmentObj(val) {
this.statusLabel = getStatusName(getSeaStatus(val)); // this.statusLabel = getStatusName(getSeaStatus(val));
}, },
}, },
}; };
......
...@@ -1415,10 +1415,14 @@ function getTotlContent(total, keys = ["num", "volume", "weight"]) { ...@@ -1415,10 +1415,14 @@ function getTotlContent(total, keys = ["num", "volume", "weight"]) {
content.push(`${total?.num ?? 0}`); content.push(`${total?.num ?? 0}`);
} }
if (key === "volume") { if (key === "volume") {
content.push(`${total?.volume ?? 0}m³`); let volume = total?.volume ?? 0;
volume = volume === 0 ? volume : new Decimal(volume).toFixed(2);
content.push(`${volume}m³`);
} }
if (key === "weight") { if (key === "weight") {
content.push(`${total?.weight ?? 0}kg`); let weight = total?.weight ?? 0;
weight = weight === 0 ? weight : new Decimal(weight).toFixed(2);
content.push(`${weight}kg`);
} }
} }
return content.join(" "); return content.join(" ");
...@@ -1437,13 +1441,22 @@ function sumStatistics(val) { ...@@ -1437,13 +1441,22 @@ function sumStatistics(val) {
const { secStatistics } = item; const { secStatistics } = item;
if (secStatistics) { if (secStatistics) {
if (!Number.isNaN(Number(secStatistics.num))) { if (!Number.isNaN(Number(secStatistics.num))) {
count.num = Decimal.add(count.num, Number(secStatistics.num)); count.num = Decimal.add(
count.num,
Number(secStatistics.num)
).toNumber();
} }
if (!Number.isNaN(Number(secStatistics.volume))) { if (!Number.isNaN(Number(secStatistics.volume))) {
count.volume = Decimal.add(count.volume, Number(secStatistics.volume)); count.volume = Decimal.add(
count.volume,
Number(secStatistics.volume)
);
} }
if (!Number.isNaN(Number(secStatistics.weight))) { if (!Number.isNaN(Number(secStatistics.weight))) {
count.weight = Decimal.add(count.weight, Number(secStatistics.weight)); count.weight = Decimal.add(
count.weight,
Number(secStatistics.weight)
);
} }
} }
}); });
......
This diff is collapsed.
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="customerId !== '0' && form.customerService"> <el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="!!(customerId !== '0' && form.customerService)">
<el-option v-for="item in serviceUserList" <el-option v-for="item in serviceUserList"
:key="item.id" :label="item.nickname" :value="item.id" /> :key="item.id" :label="item.nickname" :value="item.id" />
</el-select> </el-select>
...@@ -125,9 +125,9 @@ ...@@ -125,9 +125,9 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('推介人')" prop="promoter"> <el-form-item :label="$t('推介人')" prop="promoter">
<el-select v-model="form.promoter" :placeholder="$t('请输入推介人')" filterable> <el-select clearable remote :remote-method="remoteMethod" v-model="form.promoter" :placeholder="$t('请输入推介人')" filterable>
<el-option <el-option
v-for="item in customerSelect" v-for="item in customerSelectFn"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id"> :value="item.id">
...@@ -404,7 +404,14 @@ ...@@ -404,7 +404,14 @@
<script> <script>
import { getDictDatas, DICT_TYPE } from '@/utils/dict'; import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import upload from '@/components/ImageUpload' import upload from '@/components/ImageUpload'
import {createCustomer, getCustomer, updateCustomer, userMemberUserList,} from '@/api/ecw/customer' import {
createCustomer,
getCustomer,
getCustomerList,
getCustomerPage,
updateCustomer,
userMemberUserList,
} from '@/api/ecw/customer'
import {getNodeList} from "@/api/ecw/node" import {getNodeList} from "@/api/ecw/node"
import { getProductTypeList } from '@/api/ecw/productType' import { getProductTypeList } from '@/api/ecw/productType'
import { getProductList } from '@/api/ecw/product' import { getProductList } from '@/api/ecw/product'
...@@ -418,6 +425,7 @@ import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts' ...@@ -418,6 +425,7 @@ import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts'
import { getCountryListAll } from '@/api/ecw/country' import { getCountryListAll } from '@/api/ecw/country'
import Template from "@/views/cms/template"; import Template from "@/views/cms/template";
import {validatorMobile} from "@/api/ecw/validate" import {validatorMobile} from "@/api/ecw/validate"
import {customerDropDownList} from "@/api/ecw/customerCommissionInfo";
export default { export default {
name: "edit", name: "edit",
...@@ -430,6 +438,7 @@ export default { ...@@ -430,6 +438,7 @@ export default {
CustomerLineTable CustomerLineTable
}, },
created() { created() {
this.getCustomerSelect()
this.reset() this.reset()
if(this.customerId !== '0') { if(this.customerId !== '0') {
...@@ -437,6 +446,10 @@ export default { ...@@ -437,6 +446,10 @@ export default {
this.getCustomer(this.customerId).then(() => { this.getCustomer(this.customerId).then(() => {
getCustomerContactsListByCustomer({customerId: this.customerId}).then(r => { getCustomerContactsListByCustomer({customerId: this.customerId}).then(r => {
this.form.customerContacts = r.data this.form.customerContacts = r.data
getCustomerList({ids:this.form.promoter}).then(r => {
console.log(r,'r');
this.recommended = r.data;
})
}) })
}) })
} else { } else {
...@@ -459,9 +472,6 @@ export default { ...@@ -459,9 +472,6 @@ export default {
getWarehouseList().then(r => { getWarehouseList().then(r => {
this.warehouseList = r.data this.warehouseList = r.data
}) })
getCustomerSelect().then(r => {
this.customerSelect = r.data
})
listSimpleUsers().then(r => { listSimpleUsers().then(r => {
this.serviceUserList = r.data this.serviceUserList = r.data
}) })
...@@ -515,6 +525,7 @@ export default { ...@@ -515,6 +525,7 @@ export default {
warehouseList: [], // 仓库列表 warehouseList: [], // 仓库列表
importCityList: [], // 进口地址 importCityList: [], // 进口地址
customerSelect: [], customerSelect: [],
recommended:[],
serviceUserList: [], serviceUserList: [],
countryList: [], countryList: [],
...@@ -525,6 +536,14 @@ export default { ...@@ -525,6 +536,14 @@ export default {
}, },
methods: { methods: {
remoteMethod(val){
this.getCustomerSelect(val);
},
getCustomerSelect(val = ''){
getCustomerSelect({pageNo:1,pageSize:30,searchKey:val}).then(res => {
this.customerSelect = res.data.list
})
},
phoneValidator(rule, value, callback){ phoneValidator(rule, value, callback){
if (!value) { if (!value) {
return callback(new Error(this.$t('请输入联系方式'))); return callback(new Error(this.$t('请输入联系方式')));
...@@ -727,6 +746,17 @@ export default { ...@@ -727,6 +746,17 @@ export default {
productListFilter(){ productListFilter(){
return this.productList.filter((p) => p.typeId === this.form.productType) return this.productList.filter((p) => p.typeId === this.form.productType)
}, },
customerSelectFn(){
if(this.recommended.length > 0){
let i = this.customerSelect.find(item => item.id === this.recommended[0].id)
if(!i){
this.customerSelect.push(this.recommended[0])
}
return this.customerSelect
}else {
return this.customerSelect
}
}
}, },
watch: { watch: {
zhongLines() { zhongLines() {
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<el-descriptions-item :label="$t('国家')">{{ country }}</el-descriptions-item> <el-descriptions-item :label="$t('国家')">{{ country }}</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('业务员')">{{ customer }}</el-descriptions-item>--> <!-- <el-descriptions-item :label="$t('业务员')">{{ customer }}</el-descriptions-item>-->
<el-descriptions-item :label="$t('客户来源')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_SOURCE, customer.source) }}</el-descriptions-item> <el-descriptions-item :label="$t('客户来源')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_SOURCE, customer.source) }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户类别')">{{ getDictDatas2(DICT_TYPE.CUSTOMER_TYPE, customer.type.split(',')).map(e => e.label).join(', ') }}</el-descriptions-item> <el-descriptions-item :label="$t('客户类别')">{{ getDictDatas2(DICT_TYPE.CUSTOMER_TYPE, (customer.type||'').split(',')).map(e => e.label).join(', ') }}</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('联系方式')">{{ customer }}</el-descriptions-item>--> <!-- <el-descriptions-item :label="$t('联系方式')">{{ customer }}</el-descriptions-item>-->
<el-descriptions-item :label="$t('推介人')">{{ promoter }}</el-descriptions-item> <el-descriptions-item :label="$t('推介人')">{{ promoter }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户经理')">{{ customerService }}</el-descriptions-item> <el-descriptions-item :label="$t('客户经理')">{{ customerService }}</el-descriptions-item>
...@@ -293,7 +293,7 @@ ...@@ -293,7 +293,7 @@
<el-table-column :label="$t('授权证明')"> <el-table-column :label="$t('授权证明')">
<template v-slot="{row}"> <template v-slot="{row}">
<div v-if="!!row.fileUrl && row.fileUrl.length > 0"> <div v-if="!!row.fileUrl && row.fileUrl.length > 0">
<span v-for="(item, index) in row.fileUrl.split(',')"> <span v-for="(item, index) in (row.fileUrl||'').split(',')">
<a :href="item" target="_blank">{{$t('附件')}}{{ index + 1 }}</a>, <a :href="item" target="_blank">{{$t('附件')}}{{ index + 1 }}</a>,
</span> </span>
</div> </div>
...@@ -446,7 +446,7 @@ export default { ...@@ -446,7 +446,7 @@ export default {
this.customerContacts = r.data this.customerContacts = r.data
}) })
getCountry(this.customer.country).then(r => { getCountry(this.customer.country ? this.customer.country : 0 ).then(r => {
this.country = r.data.nameZh this.country = r.data.nameZh
}) })
}) })
...@@ -455,7 +455,7 @@ export default { ...@@ -455,7 +455,7 @@ export default {
}) })
getCustomerSelect().then(r => { getCustomerSelect().then(r => {
this.customerSelect = r.data this.customerSelect = r.data.list
}) })
listServiceUser().then(r => { listServiceUser().then(r => {
this.serviceUserList = r.data this.serviceUserList = r.data
...@@ -586,6 +586,7 @@ export default { ...@@ -586,6 +586,7 @@ export default {
return pickupPoint ? pickupPoint.titleZh : '' return pickupPoint ? pickupPoint.titleZh : ''
}, },
promoter() { promoter() {
console.log(this.customerSelect,'this.customerSelect.find');
return this.customerSelect.find(e => e.id === this.customer.promoter)?.name || '' return this.customerSelect.find(e => e.id === this.customer.promoter)?.name || ''
}, },
customerService() { customerService() {
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<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="客户名称" prop="customerId" > <el-form-item :label="$t('客户名称')" prop="customerId" >
<el-select <el-select
clearable clearable
filterable filterable
v-model="queryParams.customerId" v-model="queryParams.customerId"
placeholder="请输入关键词"> :placeholder="$t('请输入关键词')">
<el-option <el-option
v-for="(item, index) in customeList" v-for="(item, index) in customeList"
:key="index" :key="index"
...@@ -18,41 +18,41 @@ ...@@ -18,41 +18,41 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="type"> <el-form-item :label="$t('联系电话')" prop="type">
<el-input v-model="queryParams.defaultContactPhone" placeholder="请输入电话" clearable size="small"> <el-input v-model="queryParams.defaultContactPhone" :placeholder="$t('请输入电话')" clearable size="small">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="佣金类型" prop="transportId"> <el-form-item :label="$t('佣金类型')" prop="transportId">
<el-select v-model="queryParams.type" clearable size="small"> <el-select v-model="queryParams.type" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMISSION_TYPE)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMISSION_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="运输方式" prop="departureId"> <el-form-item :label="$t('运输方式')" prop="departureId">
<el-select v-model="queryParams.departureId" clearable size="small"> <el-select v-model="queryParams.departureId" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="始发地" prop="objectiveId"> <el-form-item :label="$t('始发地')" prop="objectiveId">
<el-select v-model="queryParams.objectiveId" clearable size="small"> <el-select v-model="queryParams.objectiveId" clearable size="small">
<el-option v-for="dict in exportCityList" <el-option v-for="dict in exportCityList"
:key="dict.id" :label="dict.titleZh" :value="dict.id"/> :key="dict.id" :label="dict.titleZh" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="目的地" prop="customsType"> <el-form-item :label="$t('目的地')" prop="customsType">
<el-select v-model="queryParams.customsType" clearable size="small"> <el-select v-model="queryParams.customsType" clearable size="small">
<el-option v-for="dict in importCityList" <el-option v-for="dict in importCityList"
:key="dict.id" :label="dict.titleZh" :value="dict.id"/> :key="dict.id" :label="dict.titleZh" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="报关方式" prop="approval"> <el-form-item :label="$t('报关方式')" prop="approval">
<el-select v-model="queryParams.approval" clearable size="small"> <el-select v-model="queryParams.approval" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SHIPPING_DECLARATION_TYPE)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.SHIPPING_DECLARATION_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备案" prop="darkReturnType"> <el-form-item :label="$t('备案')" prop="darkReturnType">
<el-select v-model="queryParams.darkReturnType" clearable size="small"> <el-select v-model="queryParams.darkReturnType" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMISSION_PRODUCT_APPROVAL)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMISSION_PRODUCT_APPROVAL)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
...@@ -60,11 +60,11 @@ ...@@ -60,11 +60,11 @@
</el-form-item> </el-form-item>
<div style="width:100%;display: flex;justify-content: space-between;margin-bottom: 50px;"> <div style="width:100%;display: flex;justify-content: space-between;margin-bottom: 50px;">
<div style="flex: 1"> <div style="flex: 1">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button></div> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button></div>
<div style="flex: 1; text-align: right;"> <div style="flex: 1; text-align: right;">
<router-link :to="'/customerCommissionInfo/'+ 0 "> <router-link :to="'/customerCommissionInfo/'+ 0 ">
<el-button type="primary">佣金设置</el-button> <el-button type="primary">{{$t('佣金设置')}}</el-button>
</router-link> </router-link>
</div> </div>
</div> </div>
...@@ -83,48 +83,48 @@ ...@@ -83,48 +83,48 @@
type="selection" type="selection"
width="55"> width="55">
</el-table-column> </el-table-column>
<el-table-column label="佣金编码" align="center" prop="customerId" /> <el-table-column :label="$t('佣金编码')" align="center" prop="customerId" />
<el-table-column label="客户名称" align="center" prop="customerName" show-overflow-tooltip > <el-table-column :label="$t('客户名称')" align="center" prop="customerName" show-overflow-tooltip >
</el-table-column> </el-table-column>
<el-table-column label="联系电话" align="center" prop="transportId" show-overflow-tooltip > <el-table-column :label="$t('联系电话')" align="center" prop="transportId" show-overflow-tooltip >
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{scope.row.defaultContactPhone}}</div> <div>{{scope.row.defaultContactPhone}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="佣金类型" type="" align="center" prop="type"> <el-table-column :label="$t('佣金类型')" type="" align="center" prop="type">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COMMISSION_TYPE" :value="scope.row.type" /> <dict-tag :type="DICT_TYPE.COMMISSION_TYPE" :value="scope.row.type" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="暗佣返佣类型" align="center" prop="darkReturnType"> <el-table-column :label="$t('暗佣返佣类型')" align="center" prop="darkReturnType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COMMISSION_DARK_TYPE" :value="scope.row.type" /> <dict-tag :type="DICT_TYPE.COMMISSION_DARK_TYPE" :value="scope.row.type" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="运输方式" align="center" prop="transportId"> <el-table-column :label="$t('运输方式')" align="center" prop="transportId">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag v-if="scope.row.transportId" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" /> <dict-tag v-if="scope.row.transportId" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
<div v-else>全部</div> <div v-else>{{$t('全部')}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="始发地/目的地 " align="center" prop="departureId" show-overflow-tooltip :formatter="originDestination"> <el-table-column :label="$t('始发地/目的地')" align="center" prop="departureId" show-overflow-tooltip :formatter="originDestination">
</el-table-column> </el-table-column>
<el-table-column label="报关方式" align="center" prop="customsType" show-overflow-tooltip> <el-table-column :label="$t('报关方式')" align="center" prop="customsType" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag v-if="scope.row.customsType" :type="DICT_TYPE.SHIPPING_DECLARATION_TYPE" :value="scope.row.customsType" /> <dict-tag v-if="scope.row.customsType" :type="DICT_TYPE.SHIPPING_DECLARATION_TYPE" :value="scope.row.customsType" />
<div v-else>全部</div> <div v-else>{{$t('全部')}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备案" align="center" prop="approval"> <el-table-column :label="$t('备案')" align="center" prop="approval">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag v-if="scope.row.approval" :type="DICT_TYPE.COMMISSION_PRODUCT_APPROVAL" :value="scope.row.approval" /> <dict-tag v-if="scope.row.approval" :type="DICT_TYPE.COMMISSION_PRODUCT_APPROVAL" :value="scope.row.approval" />
<div v-else>全部</div> <div v-else>{{$t('全部')}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200px"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button>--> <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button>-->
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">{{$t('删除')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -182,9 +182,9 @@ export default { ...@@ -182,9 +182,9 @@ export default {
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
customerId: [{ required: true, message: "客户id不能为空", trigger: "change" }], customerId: [{ required: true, message: this.$t('客户id不能为空'), trigger: "change" }],
type: [{ required: true, message: "佣金类型不能为空", trigger: "change" }], type: [{ required: true, message: this.$t('佣金类型不能为空'), trigger: "change" }],
darkReturnType: [{ required: true, message: "暗佣类型 1产品2达标不能为空", trigger: "change" }], darkReturnType: [{ required: true, message: this.$t('暗佣类型 1产品2达标不能为空'), trigger: "change" }],
}, },
customeList:[], customeList:[],
}; };
...@@ -245,7 +245,7 @@ export default { ...@@ -245,7 +245,7 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const id = row.id; const id = row.id;
this.$modal.confirm('是否确认删除客户佣金类型编号为"' + id + '"的数据项?').then(function() { this.$modal.confirm(this.$t('是否确认删除客户佣金类型编号为"') + id + this.$t('"的数据项?')).then(function() {
return deleteCustomerCommission(id); return deleteCustomerCommission(id);
}).then(() => { }).then(() => {
this.getList(); this.getList();
...@@ -256,7 +256,7 @@ export default { ...@@ -256,7 +256,7 @@ export default {
let index1 = this.exportCityList.findIndex(item =>item.id == row.departureId); let index1 = this.exportCityList.findIndex(item =>item.id == row.departureId);
let index2 = this.importCityList.findIndex(item => item.id == row.objectiveId); let index2 = this.importCityList.findIndex(item => item.id == row.objectiveId);
let flag = `${index1 === -1 ? '全部' : this.exportCityList[index1].titleZh}/${index2 === -1 ? '全部' : this.importCityList[index2].titleZh}`; let flag = `${index1 === -1 ? this.$t('全部') : this.exportCityList[index1].titleZh}/${index2 === -1 ? this.$t('全部') : this.importCityList[index2].titleZh}`;
return flag return flag
}, },
} }
......
<template> <template>
<el-select v-if="options" v-model="selectVal" placeholder="请选择"> <el-select v-if="options" v-model="selectVal" :placeholder="$t('请选择')">
<el-option v-if="allShow" label="全部" :value='0'></el-option> <el-option v-if="allShow" :label="$t('全部')" :value='0'></el-option>
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item[valueKey]" :key="item[valueKey]"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template> <template>
<div class="app-container"> <div class="app-container">
<div slot="header" class="card-title">开票</div> <div slot="header" class="card-title">{{ $t('开票') }}</div>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form <el-form
:model="invoiceData" :model="invoiceData"
...@@ -11,10 +11,10 @@ ...@@ -11,10 +11,10 @@
class="card" class="card"
> >
<el-card class="card"> <el-card class="card">
<el-form-item label="发票号码:" prop="invoiceNumber" :rules="{ required: true, trigger: ['blur'], message: '发票号码不能为空' }"> <el-form-item :label="$t('发票号码')" prop="invoiceNumber" :rules="{ required: true, trigger: ['blur'], message: $t('发票号码不能为空') }">
<el-input v-model="invoiceData.invoiceNumber"></el-input> <el-input v-model="invoiceData.invoiceNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="开票类型:" prop="invoicingTypeId" :rules="{ required: true, trigger: ['blur', 'change'], message: '开票类型不能为空' }"> <el-form-item :label="$t('开票类型')" prop="invoicingTypeId" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('开票类型不能为空') }">
<dict-selector <dict-selector
:type="DICT_TYPE.ECW_INVOICING_TYPE" :type="DICT_TYPE.ECW_INVOICING_TYPE"
v-model="invoiceData.invoicingTypeId" v-model="invoiceData.invoicingTypeId"
...@@ -22,18 +22,18 @@ ...@@ -22,18 +22,18 @@
</el-form-item> </el-form-item>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
<div slot="header" class="card-title">开票资料</div> <div slot="header" class="card-title">{{ $t('开票资料') }}</div>
<el-descriptions title="" direction="vertical" :column="6" border> <el-descriptions title="" direction="vertical" :column="6" border>
<el-descriptions-item label="发票抬头">{{ invoiceData.invoice }}</el-descriptions-item> <el-descriptions-item :label="$t('发票抬头')">{{ invoiceData.invoice }}</el-descriptions-item>
<el-descriptions-item label="纳税人识别号">{{ invoiceData.taxpayer }}</el-descriptions-item> <el-descriptions-item :label="$t('纳税人识别号')">{{ invoiceData.taxpayer }}</el-descriptions-item>
<el-descriptions-item label="地址">{{ invoiceData.addressPhone }}</el-descriptions-item> <el-descriptions-item :label="$t('地址')">{{ invoiceData.addressPhone }}</el-descriptions-item>
<el-descriptions-item label="开户行">{{ invoiceData.accountBank }}</el-descriptions-item> <el-descriptions-item :label="$t('开户行')">{{ invoiceData.accountBank }}</el-descriptions-item>
<el-descriptions-item label="税率%"> <el-descriptions-item :label="$t('税率%')">
<el-form-item label=""> <el-form-item label="">
<el-input v-model="invoiceData.taxRate"></el-input> <el-input v-model="invoiceData.taxRate"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="项目"> <el-descriptions-item :label="$t('项目')">
<el-form-item label=""> <el-form-item label="">
<el-input v-model="invoiceData.projectName"></el-input> <el-input v-model="invoiceData.projectName"></el-input>
</el-form-item> </el-form-item>
...@@ -49,15 +49,15 @@ ...@@ -49,15 +49,15 @@
show-summary show-summary
:summary-method="getSummaries" :summary-method="getSummaries"
> >
<el-table-column label="订单号" align="center" prop="orderNo" /> <el-table-column :label="$t('订单号')" align="center" prop="orderNo" />
<el-table-column label="品名" align="center" prop="titleZh"> <el-table-column :label="$t('品名')" align="center" prop="titleZh">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.titleZh || scope.row.titleEn ? scope.row.titleZh + "(" + scope.row.titleEn + ")" : '' }} {{ scope.row.titleZh || scope.row.titleEn ? scope.row.titleZh + "(" + scope.row.titleEn + ")" : '' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="箱数" align="center" prop="num" /> <el-table-column :label="$t('箱数')" align="center" prop="num" />
<el-table-column label="体积/重量" align="center" prop="weight"></el-table-column> <el-table-column :label="$t('体积/重量')" align="center" prop="weight"></el-table-column>
<el-table-column label="收入类型" align="center" prop="feeType"> <el-table-column :label="$t('收入类型')" align="center" prop="feeType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
:type="DICT_TYPE.FEE_TYPE" :type="DICT_TYPE.FEE_TYPE"
...@@ -65,25 +65,25 @@ ...@@ -65,25 +65,25 @@
></dict-tag> ></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单价金额" align="center" prop="unitPrice"> <el-table-column :label="$t('单价金额')" align="center" prop="unitPrice">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.unitPrice }}</span> <span>{{ scope.row.unitPrice }}</span>
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="总金额" align="center" prop="totalAmount"> <el-table-column :label="$t('总金额')" align="center" prop="totalAmount">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.totalAmount }}</span> <span>{{ scope.row.totalAmount }}</span>
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="税额" align="center" prop="tax"> <el-table-column :label="$t('税额')" align="center" prop="tax">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.tax }}</span> <span>{{ scope.row.tax }}</span>
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="价税合计" align="center" prop="taxAndTotalAmount"> <el-table-column :label="$t('价税合计')" align="center" prop="taxAndTotalAmount">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.taxAndTotalAmount }}</span> <span>{{ scope.row.taxAndTotalAmount }}</span>
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</el-table> </el-table>
</el-card> </el-card>
<el-descriptions class="card" style="width: 50%"> <el-descriptions class="card" style="width: 50%">
<el-descriptions-item label="备注"> <el-descriptions-item :label="$t('备注')">
<el-input <el-input
v-model="invoiceData.invoicingRemark" v-model="invoiceData.invoicingRemark"
type="text" type="text"
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
</el-descriptions> </el-descriptions>
</el-form> </el-form>
<div slot="footer" class="card"> <div slot="footer" class="card">
<el-button type="primary" @click="submitForm">确定</el-button> <el-button type="primary" @click="submitForm">{{ $t('确定') }}</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -147,7 +147,7 @@ export default { ...@@ -147,7 +147,7 @@ export default {
v.taxAndTotalAmount = NP.plus(v.totalAmount, NP.times(v.totalAmount, this.invoiceData.taxRate/100)) v.taxAndTotalAmount = NP.plus(v.totalAmount, NP.times(v.totalAmount, this.invoiceData.taxRate/100))
}) })
const t = { const t = {
orderNo: '合计', orderNo: this.$t('合计'),
totalAmount: res.data.reduce((total, curr) => NP.plus(total, curr.totalAmount), 0), totalAmount: res.data.reduce((total, curr) => NP.plus(total, curr.totalAmount), 0),
tax: res.data.reduce((total, curr) => NP.plus(total, curr.tax), 0), tax: res.data.reduce((total, curr) => NP.plus(total, curr.tax), 0),
taxAndTotalAmount: res.data.reduce((total, curr) => NP.plus(total, curr.taxAndTotalAmount), 0) taxAndTotalAmount: res.data.reduce((total, curr) => NP.plus(total, curr.taxAndTotalAmount), 0)
...@@ -160,7 +160,7 @@ export default { ...@@ -160,7 +160,7 @@ export default {
if (valid) { if (valid) {
updateReceiptInvoicing(this.invoiceData).then(res => { updateReceiptInvoicing(this.invoiceData).then(res => {
this.open = false; this.open = false;
this.$modal.msgSuccess("操作成功"); this.$modal.msgSuccess(this.$t('操作成功'));
this.$router.back(); this.$router.back();
}) })
} }
...@@ -168,7 +168,7 @@ export default { ...@@ -168,7 +168,7 @@ export default {
}, },
getSummaries(param) { getSummaries(param) {
const t = this.list[this.list.length - 1].taxAndTotalAmount const t = this.list[this.list.length - 1].taxAndTotalAmount
return ['收款人', this.invoiceData.payeeName, '核销人', this.invoiceData.writeOffName, '开票人', this.invoiceData.issuerName, '', '价税合计大写', this.convertCurrency(t)]; return [this.$t('收款人'), this.invoiceData.payeeName, this.$t('核销人'), this.invoiceData.writeOffName, this.$t('开票人'), this.invoiceData.issuerName, '', this.$t('价税合计大写'), this.convertCurrency(t)];
}, },
convertCurrency(money) { convertCurrency(money) {
//汉字的数字 //汉字的数字
......
This diff is collapsed.
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-card>
<div slot="header" class="card-title">付款单详情</div> <div slot="header" class="card-title">{{ $t('付款单详情') }}</div>
<el-form <el-form
ref="form" ref="form"
:model="form" :model="form"
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
label-position="left" label-position="left"
> >
<el-descriptions :column="3" class="card" border> <el-descriptions :column="3" class="card" border>
<el-descriptions-item label="供应商"> <el-descriptions-item :label="$t('供应商')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<!-- <customer-selector v-model="form.supplierId" @change="consignor = $event" /> --> <!-- <customer-selector v-model="form.supplierId" @change="consignor = $event" /> -->
<el-select <el-select
v-model="form.supplierId" v-model="form.supplierId"
placeholder="请选择供应商" :placeholder="$t('请选择供应商')"
disabled disabled
> >
<el-option <el-option
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="部门"> <el-descriptions-item :label="$t('部门')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="业务员"> <el-descriptions-item :label="$t('业务员')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="申请日期"> <el-descriptions-item :label="$t('申请日期')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
/> />
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="供应商银行账号" style="width: 50%"> <el-descriptions-item :label="$t('供应商银行账号')" style="width: 50%">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="3" class="card" border> <el-descriptions :column="3" class="card" border>
<el-descriptions-item label="最后付款日期"> <el-descriptions-item :label="$t('最后付款日期')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
/> />
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="结算方式"> <el-descriptions-item :label="$t('结算方式')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -139,10 +139,10 @@ ...@@ -139,10 +139,10 @@
</el-form> </el-form>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
<div slot="header" class="card-title">费用信息</div> <div slot="header" class="card-title">{{ $t('费用信息') }}</div>
<el-table v-loading="loadings" :data="list" border :show-summary="!!list.length" :summary-method="getSummaries"> <el-table v-loading="loadings" :data="list" border :show-summary="!!list.length" :summary-method="getSummaries">
<el-table-column label="自编号" align="center" prop="payableNo" /> <el-table-column :label="$t('自编号')" align="center" prop="payableNo" />
<el-table-column label="费用类型" align="center" prop="feeType"> <el-table-column :label="$t('费用类型')" align="center" prop="feeType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
:type="DICT_TYPE.FEE_TYPE" :type="DICT_TYPE.FEE_TYPE"
...@@ -150,16 +150,16 @@ ...@@ -150,16 +150,16 @@
></dict-tag> ></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="发票号码" align="center" prop="invoiceNumber" /> <el-table-column :label="$t('发票号码')" align="center" prop="invoiceNumber" />
<el-table-column label="应付金额" align="center" prop="totalAmount" /> <el-table-column :label="$t('应付金额')" align="center" prop="totalAmount" />
<el-table-column label="币种" align="center" prop="currencyId"> <el-table-column :label="$t('币种')" align="center" prop="currencyId">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="汇率" align="center" prop="exchangeRate" /> <el-table-column :label="$t('汇率')" align="center" prop="exchangeRate" />
<el-table-column label="税率%" align="center" prop="taxRate" /> <el-table-column :label="$t('税率%')" align="center" prop="taxRate" />
<el-table-column label="价税合计(RMB)" align="center" prop="total" > <el-table-column :label="$t('价税合计(RMB)')" align="center" prop="total" >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.total = ((scope.row.totalAmount * scope.row.exchangeRate) + (scope.row.totalAmount * scope.row.exchangeRate) * (scope.row.taxRate/100)).toFixed(6) }}</span> <span>{{ scope.row.total = ((scope.row.totalAmount * scope.row.exchangeRate) + (scope.row.totalAmount * scope.row.exchangeRate) * (scope.row.taxRate/100)).toFixed(6) }}</span>
</template> </template>
...@@ -174,13 +174,13 @@ ...@@ -174,13 +174,13 @@
style="width: 50%" style="width: 50%"
> >
<el-descriptions :column="1" class="card" border> <el-descriptions :column="1" class="card" border>
<el-descriptions-item label="账单号"> <el-descriptions-item :label="$t('账单号')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
style="margin-bottom: 0" style="margin-bottom: 0"
required required
error="账单号不能为空" :error="$t('账单号不能为空')"
prop="accountNumber" prop="accountNumber"
> >
<el-input <el-input
...@@ -188,7 +188,7 @@ ...@@ -188,7 +188,7 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="发票"> <el-descriptions-item :label="$t('发票')">
<el-form-item <el-form-item
label="" label=""
label-width="0" label-width="0"
...@@ -199,8 +199,8 @@ ...@@ -199,8 +199,8 @@
v-model="form.invoiceStatus" v-model="form.invoiceStatus"
disabled disabled
> >
<el-option label="未开票" value="0" /> <el-option :label="$t('未开票')" value="0" />
<el-option label="已开票" value="1" /> <el-option :label="$t('已开票')" value="1" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
...@@ -209,7 +209,7 @@ ...@@ -209,7 +209,7 @@
</el-card> </el-card>
<div slot="footer" style="margin: 20px 0"> <div slot="footer" style="margin: 20px 0">
<!-- <el-button type="primary" @click="submitDraft">保 存</el-button> --> <!-- <el-button type="primary" @click="submitDraft">保 存</el-button> -->
<el-button type="primary" @click="$store.dispatch('tagsView/delCurrentView')">返回</el-button> <el-button type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{ $t('返回') }}</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -348,7 +348,7 @@ export default { ...@@ -348,7 +348,7 @@ export default {
const { columns, data } = param; const { columns, data } = param;
const sums = new Array(columns.length).map(v => ''); const sums = new Array(columns.length).map(v => '');
const index = sums.length - 1 const index = sums.length - 1
sums[index - 1] = '价税合计大写' sums[index - 1] = this.$t('价税合计大写')
const t = data.map(v => v.total).reduce((prev, curr) => { const t = data.map(v => v.total).reduce((prev, curr) => {
return parseFloat(prev) + parseFloat(curr); return parseFloat(prev) + parseFloat(curr);
}, 0) }, 0)
...@@ -368,21 +368,21 @@ export default { ...@@ -368,21 +368,21 @@ export default {
if (this.list && this.list.length > 0) { if (this.list && this.list.length > 0) {
params.payableReqVOList = [...this.list] params.payableReqVOList = [...this.list]
}else{ }else{
this.$modal.msgError("请选择供应商未付款项"); this.$modal.msgError(this.$t('请选择供应商未付款项'));
return return
} }
if(!params.supplierBankAccount){ if(!params.supplierBankAccount){
this.$modal.msgError("请选择供应商银行账号"); this.$modal.msgError(this.$t('请选择供应商银行账号'));
return return
} }
if (this.id && this.id !== '0') { if (this.id && this.id !== '0') {
updatePayment(params).then(res => { updatePayment(params).then(res => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess(this.$t('修改成功'));
this.$router.back(); this.$router.back();
}) })
} else { } else {
createPayment(params).then(res => { createPayment(params).then(res => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess(this.$t('新增成功'));
this.$router.back(); this.$router.back();
}) })
} }
...@@ -398,21 +398,21 @@ export default { ...@@ -398,21 +398,21 @@ export default {
if (this.list && this.list.length > 0) { if (this.list && this.list.length > 0) {
params.payableReqVOList = [...this.list] params.payableReqVOList = [...this.list]
}else{ }else{
this.$modal.msgError("请选择供应商未付款项"); this.$modal.msgError(this.$t('请选择供应商未付款项'));
return return
} }
if(!params.supplierBankAccount){ if(!params.supplierBankAccount){
this.$modal.msgError("请选择供应商银行账号"); this.$modal.msgError(this.$t('请选择供应商银行账号'));
return return
} }
if (this.id && this.id !== '0') { if (this.id && this.id !== '0') {
updatePayment(params).then(res => { updatePayment(params).then(res => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess(this.$t('修改成功'));
this.$router.back(); this.$router.back();
}) })
} else { } else {
createPayment(params).then(res => { createPayment(params).then(res => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess(this.$t('新增成功'));
this.$router.back(); this.$router.back();
}) })
} }
......
<template> <template>
<div class="app-container examine-wrap"> <div class="app-container examine-wrap">
<el-card> <el-card>
<div slot="header" class="card-title">审核请款单</div> <div slot="header" class="card-title">{{ $t('审核请款单') }}</div>
<el-descriptions :column="3" class="card" border> <el-descriptions :column="3" class="card" border>
<el-descriptions-item label="供应商"> <el-descriptions-item :label="$t('供应商')">
{{ detail.supplierName }} {{ detail.supplierName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="部门"> <el-descriptions-item :label="$t('部门')">
{{ findDepartmentName(detail.departmentId) }} {{ findDepartmentName(detail.departmentId) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="业务员"> <el-descriptions-item :label="$t('业务员')">
{{ detail.salesmanName }} {{ detail.salesmanName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="申请日期"> <el-descriptions-item :label="$t('申请日期')">
{{ detail.applicationAt }} {{ detail.applicationAt }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="供应商银行账号" style="width: 50%"> <el-descriptions-item :label="$t('供应商银行账号')" style="width: 50%">
{{ findBank(detail.supplierBankAccount) }} {{ findBank(detail.supplierBankAccount) }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="3" class="card" border> <el-descriptions :column="3" class="card" border>
<el-descriptions-item label="最后付款日期"> <el-descriptions-item :label="$t('最后付款日期')">
{{ detail.latestPayAt }} {{ detail.latestPayAt }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="结算方式"> <el-descriptions-item :label="$t('结算方式')">
<!-- {{ detail.settlementType }} --> <!-- {{ detail.settlementType }} -->
<dict-tag :type="DICT_TYPE.CUSTOMER_BALANCE" :value="detail.settlementType"></dict-tag> <dict-tag :type="DICT_TYPE.CUSTOMER_BALANCE" :value="detail.settlementType"></dict-tag>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
<div slot="header" class="card-title">费用信息</div> <div slot="header" class="card-title">{{ $t('费用信息') }}</div>
<el-table v-loading="loadings" :data="list" border :show-summary="!!list.length" :summary-method="getSummaries"> <el-table v-loading="loadings" :data="list" border :show-summary="!!list.length" :summary-method="getSummaries">
<el-table-column label="自编号" align="center" prop="payableNo" /> <el-table-column :label="$t('自编号')" align="center" prop="payableNo" />
<el-table-column label="费用类型" align="center" prop="feeType"> <el-table-column :label="$t('费用类型')" align="center" prop="feeType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
:type="DICT_TYPE.FEE_TYPE" :type="DICT_TYPE.FEE_TYPE"
...@@ -41,46 +41,46 @@ ...@@ -41,46 +41,46 @@
></dict-tag> ></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="发票号码" align="center" prop="invoiceNumber"> <el-table-column :label="$t('发票号码')" align="center" prop="invoiceNumber">
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<el-input v-model="scope.row.invoiceNumber"></el-input> <el-input v-model="scope.row.invoiceNumber"></el-input>
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column label="应付金额" align="center" prop="totalAmount" /> <el-table-column :label="$t('应付金额')" align="center" prop="totalAmount" />
<el-table-column label="币种" align="center" prop="currencyId"> <el-table-column :label="$t('币种')" align="center" prop="currencyId">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="汇率" align="center" prop="exchangeRate"> <el-table-column :label="$t('汇率')" align="center" prop="exchangeRate">
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<el-input v-model="scope.row.exchangeRate"></el-input> <el-input v-model="scope.row.exchangeRate"></el-input>
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column label="税率" align="center" prop="taxRate" > <el-table-column :label="$t('税率%')" align="center" prop="taxRate" >
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<el-input v-model="scope.row.taxRate"></el-input> <el-input v-model="scope.row.taxRate"></el-input>
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column label="价税合计(RMB)" align="center" prop="total" /> <el-table-column :label="$t('价税合计(RMB)')" align="center" prop="total" />
</el-table> </el-table>
<el-descriptions :column="1" class="card" border> <el-descriptions :column="1" class="card" border>
<el-descriptions-item label="账单号"> <el-descriptions-item :label="$t('账单号')">
{{ detail.accountNumber }} {{ detail.accountNumber }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="发票"> <el-descriptions-item :label="$t('发票')">
{{ detail.invoiceStatus == 0 ? '未开票' : '已开票' }} {{ detail.invoiceStatus == 0 ? $t('未开票') : $t('已开票') }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="审核备注"> <el-descriptions-item :label="$t('审核备注')">
<el-input type="textarea" :rows="2" v-model="notes"> <el-input type="textarea" :rows="2" v-model="notes">
</el-input> </el-input>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<div slot="footer" style="margin: 20px 0"> <div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="examine('y')">审核通过</el-button> <el-button type="primary" @click="examine('y')">{{ $t('审核通过') }}</el-button>
<el-button type="danger" @click="examine('n')">审核驳回</el-button> <el-button type="danger" @click="examine('n')">{{ $t('审核驳回') }}</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -150,7 +150,7 @@ export default { ...@@ -150,7 +150,7 @@ export default {
const { columns, data } = param; const { columns, data } = param;
const sums = new Array(columns.length).map(v => ''); const sums = new Array(columns.length).map(v => '');
const index = sums.length - 1 const index = sums.length - 1
sums[index - 1] = '价税合计大写' sums[index - 1] = this.$t('价税合计大写')
const t = data.map(v => v.total).reduce((prev, curr) => { const t = data.map(v => v.total).reduce((prev, curr) => {
return prev + curr; return prev + curr;
}, 0) }, 0)
...@@ -164,7 +164,7 @@ export default { ...@@ -164,7 +164,7 @@ export default {
verifyStatus: status verifyStatus: status
} }
paymentVerify(params).then(res => { paymentVerify(params).then(res => {
this.$modal.msgSuccess("操作成功"); this.$modal.msgSuccess(this.$t('操作成功'));
this.$router.back(); this.$router.back();
}) })
}, },
......
This diff is collapsed.
<template> <template>
<div class="app-container" > <div class="app-container" >
<div id="print" style="font-size: 18px;"> <div id="print" style="font-size: 18px;">
<div style="text-align: center;font-weight: bold;font-size: 20px;">付款单</div> <div style="text-align: center;font-weight: bold;font-size: 20px;">{{ $t('付款单') }}</div>
<div style="margin-top: 20px;"> <div style="margin-top: 20px;">
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">付款单号:</div><span>{{ form.paymentNo || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('付款单号') }}</div><span>{{ form.paymentNo || '-' }}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">最后付款日:</div> <span>{{ form.latestPayAt || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('最后付款日') }}</div> <span>{{ form.latestPayAt || '-' }}</span></div>
</div> </div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">申请日期:</div> <span>{{ form.applicationAt || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('申请日期') }}</div> <span>{{ form.applicationAt || '-' }}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">结算方式:</div><span>{{ form.settlementType || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('结算方式') }}</div><span>{{ form.settlementType || '-' }}</span></div>
</div> </div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">付款公司:</div><span>{{ form.supplierName || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('付款公司') }}</div><span>{{ form.supplierName || '-' }}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">银行户名:</div><span>{{ findBank(form.supplierBankAccount).baAccountName || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行户名') }}</div><span>{{ findBank(form.supplierBankAccount).baAccountName || '-' }}</span></div>
</div> </div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">银行名称:</div><span>{{ findBank(form.supplierBankAccount).baBankName || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行名称') }}</div><span>{{ findBank(form.supplierBankAccount).baBankName || '-' }}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">银行账号:</div><span>{{ findBank(form.supplierBankAccount).baAccountNum || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行账号') }}</div><span>{{ findBank(form.supplierBankAccount).baAccountNum || '-' }}</span></div>
</div> </div>
<!-- <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <!-- <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;">水单号:</div><span>{{form?form.accountBank:''}}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;">水单号:</div><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;">手续费:</div><span>{{form?form.accountBank:''}}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;">手续费:</div><span>{{form?form.accountBank:''}}</span></div>
</div> --> </div> -->
<div style="display: flex;width: 80%;align-items: center;"> <div style="display: flex;width: 80%;align-items: center;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">备注:</div><span>{{ form.notes || '' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('备注') }}</div><span>{{ form.notes || '-' }}</span></div>
</div> </div>
</div> </div>
<table border="1" style="margin-top: 20px;width: 100%;text-align: center;border-collapse: collapse;line-height: 2 "> <table border="1" style="margin-top: 20px;width: 100%;text-align: center;border-collapse: collapse;line-height: 2 ">
<tr> <tr>
<th style="width: 6%;">序号</th> <th style="width: 6%;">{{ $t('序号') }}</th>
<th style="width: 15%;">自编号</th> <th style="width: 15%;">{{ $t('自编号') }}</th>
<th style="width: 15%;">费用类型</th> <th style="width: 15%;">{{ $t('费用类型') }}</th>
<th style="width: 15%;">币别</th> <th style="width: 15%;">{{ $t('币种') }}</th>
<th style="width: 10%;">汇率</th> <th style="width: 10%;">{{ $t('汇率') }}</th>
<th style="width: 15%;">发票号</th> <th style="width: 15%;">{{ $t('发票号') }}</th>
<th style="width: 12%;">应付金额</th> <th style="width: 12%;">{{ $t('应付金额') }}</th>
<th style="width: 12%;">申请金额</th> <th style="width: 12%;">{{ $t('申请金额') }}</th>
</tr> </tr>
<tr v-for="(item, index) in list" :key="index"> <tr v-for="(item, index) in list" :key="index">
<td>{{ index + 1 }}</td> <td>{{ index + 1 }}</td>
...@@ -56,23 +56,23 @@ ...@@ -56,23 +56,23 @@
<td>{{ item.total }}</td> <td>{{ item.total }}</td>
</tr> </tr>
<tr> <tr>
<td colspan="2">合计(大写)</td> <td colspan="2">{{ $t('合计(大写)') }}</td>
<td colspan="2">{{ convertCurrency(totalMoney()) }}</td> <td colspan="2">{{ convertCurrency(totalMoney()) }}</td>
<td colspan="2">合计付款</td> <td colspan="2">{{ $t('合计付款') }}</td>
<td>{{ totalMoney() }}</td> <td>{{ totalMoney() }}</td>
</tr> </tr>
</table> </table>
<div style="margin-top: 20px;"> <div style="margin-top: 20px;">
<div style="display: flex;width: 100%;align-items: center;"> <div style="display: flex;width: 100%;align-items: center;">
<div style="flex:1"><span style="width: 120px;">主管</span></div> <div style="flex:1"><span style="width: 120px;">{{ $t('主管') }}</span></div>
<div style="flex:1"><span style="width: 120px;">会计</span></div> <div style="flex:1"><span style="width: 120px;">{{ $t('会计') }}</span></div>
<div style="flex:1"><span style="width: 120px;">出纳</span></div> <div style="flex:1"><span style="width: 120px;">{{ $t('出纳') }}</span></div>
<div style="flex:1"><span style="width: 120px;">经手人</span></div> <div style="flex:1"><span style="width: 120px;">{{ $t('经手人') }}</span></div>
</div> </div>
</div> </div>
</div> </div>
<div slot="footer" class="card"> <div slot="footer" class="card">
<el-button type="primary" @click="print">确订打印</el-button> <el-button type="primary" @click="print">{{ $t('确订打印') }}</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -169,7 +169,7 @@ ...@@ -169,7 +169,7 @@
console.log('打印哦') console.log('打印哦')
}).catch(err => { }).catch(err => {
console.error('lodop异常', err) console.error('lodop异常', err)
alert('请检查LODOP打印控件是否安装并启动'); alert(this.$t('请检查LODOP打印控件是否安装并启动'));
}) })
}, },
findBank(val) { findBank(val) {
......
...@@ -43,9 +43,10 @@ ...@@ -43,9 +43,10 @@
<td>{{ item.actualAmount }}</td> <td>{{ item.actualAmount }}</td>
</tr> </tr>
<tr> <tr>
<td>人民币应收合计</td> <td colspan="2">{{ $t('合计(大写)') }}</td>
<td >{{ convertCurrency(totalMoney()) }}</td> <td colspan="2">{{ convertCurrency(totalMoney()) }}</td>
<td>汇率</td> <td colspan="2">{{ $t('合计实收') }}</td>
<td>{{ totalMoney() }}</td> <td>{{ totalMoney() }}</td>
<td>收款金额(人民币)</td> <td>收款金额(人民币)</td>
<td colspan="3">234</td> <td colspan="3">234</td>
...@@ -106,7 +107,7 @@ ...@@ -106,7 +107,7 @@
</div> </div>
</div> </div>
<div slot="footer" class="card"> <div slot="footer" class="card">
<el-button type="primary" @click="print">确订打印</el-button> <el-button type="primary" @click="print">{{ $t('确订打印') }}</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -200,7 +201,7 @@ ...@@ -200,7 +201,7 @@
console.log('打印哦') console.log('打印哦')
}).catch(err => { }).catch(err => {
console.error('lodop异常', err) console.error('lodop异常', err)
alert('请检查LODOP打印控件是否安装并启动'); alert(this.$t('请检查LODOP打印控件是否安装并启动'));
}) })
}, },
totalMoney() { totalMoney() {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -1021,6 +1021,7 @@ export default { ...@@ -1021,6 +1021,7 @@ export default {
console.log('产品未选择', item) console.log('产品未选择', item)
calcable = false calcable = false
} }
item.brandType = item.brand
}) })
if(this.calculating || !calcable) return false if(this.calculating || !calcable) return false
this.calculating = true this.calculating = true
......
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