Commit d78c98a8 authored by dragondean@qq.com's avatar dragondean@qq.com

完善批量加价及其审核

parent 59042b75
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</div> </div>
<el-form label-position="left" label-width="100px"> <el-form label-position="left" label-width="100px">
<el-form-item :label="$t('抄送')"> <el-form-item :label="$t('抄送')">
<el-select v-model="valueSync" multiple :placeholder="$t('请选择抄送人')" style="width:100%" filterable > <el-select v-model="valueSync" multiple :placeholder="$t('请选择抄送人')" style="width:100%" filterable :disabled="disabled" >
<el-option <el-option
v-for="item in users" v-for="item in users"
:key="item.id" :key="item.id"
...@@ -45,7 +45,8 @@ export default { ...@@ -45,7 +45,8 @@ export default {
taskData: { // 任务实例的数据。传递时,可展示 UserTask 审核相关的信息 taskData: { // 任务实例的数据。传递时,可展示 UserTask 审核相关的信息
type: Array, type: Array,
default: () => [], default: () => [],
} },
disabled: Boolean
}, },
data(){ data(){
return { return {
...@@ -87,4 +88,4 @@ export default { ...@@ -87,4 +88,4 @@ export default {
.workflow ::v-deep .my-process-designer{ .workflow ::v-deep .my-process-designer{
height: auto; height: auto;
} }
</style> </style>
\ No newline at end of file
...@@ -5,20 +5,20 @@ ...@@ -5,20 +5,20 @@
<div> <div>
{{$t('运费或全包加价')}} {{$t('运费或全包加价')}}
<!--货币--> <!--货币-->
<selector v-model="form.freightCurrencyId" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" /> <selector :disabled="approval" v-model="form.freightCurrencyId" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
<!--金额--> <!--金额-->
<el-input type="number" v-model="form.freightFee" @keyup.native="checkPositive(form, 'freightFee')" class="w-100 ml-10" /> <el-input :disabled="approval" type="number" v-model="form.freightFee" :min="1" @keyup.native="checkPositive(form, 'freightFee')" class="w-100 ml-10" />
<!--单位--> <!--单位-->
<selector v-model="form.freightUnitId" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" /> <selector :disabled="approval" v-model="form.freightUnitId" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
</div> </div>
<div class="mt-10"> <div class="mt-10">
{{$t('清关费加价价')}} {{$t('清关费加价价')}}
<!--货币--> <!--货币-->
<selector v-model="form.clearanceCurrencyId" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" /> <selector :disabled="approval" v-model="form.clearanceCurrencyId" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
<!--金额--> <!--金额-->
<el-input type="number" v-model="form.clearanceFee" @keyup.native="checkPositive(form, 'clearanceFee')" class="w-100 ml-10" /> <el-input :disabled="approval" type="number" v-model="form.clearanceFee" :min="1" @keyup.native="checkPositive(form, 'clearanceFee')" class="w-100 ml-10" />
<!--单位--> <!--单位-->
<selector v-model="form.clearanceUnitId" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" /> <selector :disabled="approval" v-model="form.clearanceUnitId" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
<span>*{{$t('若线路价格为全包价,输入清关费不生效')}}</span> <span>*{{$t('若线路价格为全包价,输入清关费不生效')}}</span>
</div> </div>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
</template> </template>
</div> </div>
</div> </div>
<el-table v-if="sectionObj" border :data="sectionObj.sectionOrderList || []" @selection-change="handleSelectionChange" class="mt-10"> <el-table v-if="sectionObj" ref="orderTable" border :data="sectionObj.sectionOrderList || []" @selection-change="handleSelectionChange" class="mt-10">
<el-table-column type="selection" width="50"></el-table-column>> <el-table-column type="selection" width="50"></el-table-column>>
<el-table-column align="center" :label="$t('序号')" width="50" prop="tidanNum" /> <el-table-column align="center" :label="$t('序号')" width="50" prop="tidanNum" />
<el-table-column prop="orderNo" :label="$t('订单号')" align="center"> <el-table-column prop="orderNo" :label="$t('订单号')" align="center">
...@@ -113,21 +113,24 @@ ...@@ -113,21 +113,24 @@
<div> <div>
{{$t('清关费')}}{{form.clearanceFee || 0}}{{ currencyMap[form.clearanceCurrencyId]}}/{{unitMap[form.clearanceUnitId]}} {{$t('清关费')}}{{form.clearanceFee || 0}}{{ currencyMap[form.clearanceCurrencyId]}}/{{unitMap[form.clearanceUnitId]}}
</div> </div>
<div>
{{$t('全包价')}}{{form.freightFee || 0}}{{ currencyMap[form.freightCurrencyId]}}/{{unitMap[form.freightUnitId]}}
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<el-card class="mt-20"> <el-card class="mt-20">
<work-flow xmlkey="shipment_batch_add_price" v-model="form.copyUserId"></work-flow> <work-flow xmlkey="shipment_batch_add_price" v-model="form.copyUserId" :disabled="approval"></work-flow>
</el-card> </el-card>
<div class="mt-20"> <div class="mt-20" v-if="shipmentObj">
<el-button type="primary" @click="submit">提交审核</el-button>
<el-button type="primary" @click="$alert('TODO')">审核中</el-button> <template v-if="approval">
<el-button type="default" @click="$alert('TODO')">取消审核</el-button> <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + shipmentObj.batchAddPriceApprovalInfo.bpmProcessId)">{{$t('加价申请审核中')}}</el-button>
<el-button type="default" @click="cancelAproval">{{$t('取消审核')}}</el-button>
</template>
<template v-else>
<el-button type="primary" @click="submit">{{$t('提交审核')}}</el-button>
</template>
<el-button type="default" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
</div> </div>
</div> </div>
</template> </template>
...@@ -140,14 +143,15 @@ import {getChannelList} from "@/api/ecw/channel"; ...@@ -140,14 +143,15 @@ import {getChannelList} from "@/api/ecw/channel";
import {getCabinetPage} from "@/api/ecw/cabinet"; import {getCabinetPage} from "@/api/ecw/cabinet";
import {getWarehouseList} from "@/api/ecw/warehouse"; import {getWarehouseList} from "@/api/ecw/warehouse";
import {getSupplierPage} from "@/api/ecw/supplier"; import {getSupplierPage} from "@/api/ecw/supplier";
import {boxGoodsDetail, createApproval, getSectionList, loadSecGoodsList} from "@/api/ecw/boxSea"; import {approvalCancel, boxGoodsDetail, createApproval, getSectionList, loadSecGoodsList} from "@/api/ecw/boxSea";
import {getAbnormalList, getbox, getLogList} from "@/api/ecw/box"; import {getAbnormalList, getbox, getLogList} from "@/api/ecw/box";
import {getTotlContent} from "@/views/ecw/box/shippingSea/utils"; import {getTotlContent} from "@/views/ecw/box/shippingSea/utils";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
import Template from "@/views/cms/template/index.vue";
export default { export default {
name: "batchMarkup", name: "batchMarkup",
components: {selector, WorkFlow}, components: {Template, selector, WorkFlow},
data(){ data(){
return { return {
unitList:[], unitList:[],
...@@ -186,23 +190,6 @@ export default { ...@@ -186,23 +190,6 @@ export default {
}) })
return map return map
}, },
// 订单
orderList(){
let arr = []
this.sectionObj?.sectionOrderList.forEach(item => {
if(!this.sectionId || this.sectionId == item.id){
arr = arr.concat(item.sectionOrderList)
}
})
return arr
},
// 提取部分
sectionNameList(){
let arr = this.sectionObj?.sectionOrderList.map(item => {
return item.sectionName
})
return Array.from(new Set(arr))
},
/* 渠道 */ /* 渠道 */
getShipChannelName() { getShipChannelName() {
return (shippingChannelId) => { return (shippingChannelId) => {
...@@ -255,28 +242,40 @@ export default { ...@@ -255,28 +242,40 @@ export default {
return Array.from(new Set(customsTypes)); return Array.from(new Set(customsTypes));
}; };
}, },
// 是否审核中
approval(){
return this.shipmentObj?.batchAddPriceApprovalInfo?.approvalStatus === 1
}
}, },
created() { async created() {
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
this.shipmentId = this.$route.query.shipmentId this.shipmentId = this.$route.query.shipmentId
if(!this.shipmentId){ if(!this.shipmentId){
return this.$message.error('请求参数错误') return this.$message.error('请求参数错误')
} }
this.initData() await this.getBoxDetail()
this.getSectionList() await this.initData()
this.getBoxDetail() await this.getSectionList()
// 如果是审核中,则默认选中订单
this.$nextTick(() =>{
if(this.approval){
this.sectionObj.sectionOrderList.forEach(order => {
if(this.form.orderIds.indexOf(order.orderId) > -1){
this.$refs.orderTable.toggleRowSelection(order)
}
})
}
})
}, },
methods:{ methods:{
// 检查正数 // 检查正数
checkPositive(object, field){ checkPositive(object, field){
const lastChar = object[field].split('').pop() object[field] = parseInt(object[field])
object[field] = parseFloat(object[field])
if(isNaN(object[field]) || object[field] < 0) object[field] = '' if(isNaN(object[field]) || object[field] < 0) object[field] = ''
else object[field] = object[field].toString() else object[field] = object[field].toString()
// 如果最后一位是.且没有其他点则补上
if(object[field] != '' && object[field].indexOf('.') == -1 && lastChar == '.') object[field] += '.'
}, },
// 表格多选 // 表格多选
handleSelectionChange(selection) { handleSelectionChange(selection) {
...@@ -284,7 +283,7 @@ export default { ...@@ -284,7 +283,7 @@ export default {
this.ids = selection.map(item => item.orderId) this.ids = selection.map(item => item.orderId)
}, },
// 初始化字典数据 // 初始化字典数据
initData() { async initData() {
// 查询渠道 // 查询渠道
getChannelList().then((res) => (this.channelList = res.data)); getChannelList().then((res) => (this.channelList = res.data));
// 查询柜型 // 查询柜型
...@@ -303,20 +302,25 @@ export default { ...@@ -303,20 +302,25 @@ export default {
/*loadSecGoodsList({shipmentId: this.shipmentId}).then(res => { /*loadSecGoodsList({shipmentId: this.shipmentId}).then(res => {
this.sectionList = res.data this.sectionList = res.data
})*/ })*/
this.getBoxGoodsDetail() await this.getBoxGoodsDetail()
}, },
// 出货信息 // 出货信息
getBoxDetail() { getBoxDetail() {
getbox(this.shipmentId).then((res) => { getbox(this.shipmentId).then((res) => {
const { data } = res; const { data } = res;
this.shipmentObj = data ?? {}; this.shipmentObj = data ?? {};
// 如果是审核中则表单给默认值
if(this.shipmentObj.batchAddPriceApprovalInfo && this.approval){
let details = JSON.parse(this.shipmentObj.batchAddPriceApprovalInfo.details)
this.$set(this, 'form', details)
}
}); });
}, },
// 查询详情页所有数据 // 查询详情页所有数据
getSectionList() { getSectionList() {
let param = { shipmentId: this.shipmentId }; let param = { shipmentId: this.shipmentId };
// 部分 // 部分
getSectionList(param).then((res) => { return getSectionList(param).then((res) => {
this.sectionList = res.data.map((item, index) => { this.sectionList = res.data.map((item, index) => {
return { return {
...item, ...item,
...@@ -338,7 +342,7 @@ export default { ...@@ -338,7 +342,7 @@ export default {
}, },
// 获取部分详情以及物品 // 获取部分详情以及物品
getBoxGoodsDetail() { getBoxGoodsDetail() {
boxGoodsDetail({ return boxGoodsDetail({
shipmentId: this.shipmentId, shipmentId: this.shipmentId,
secId: this.sectionId, secId: this.sectionId,
}).then((res) => { }).then((res) => {
...@@ -350,17 +354,34 @@ export default { ...@@ -350,17 +354,34 @@ export default {
if(!this.form.freightFee && !this.form.clearanceFee){ if(!this.form.freightFee && !this.form.clearanceFee){
return this.$message.error(this.$t('运费和清关费不能同时为空')) return this.$message.error(this.$t('运费和清关费不能同时为空'))
} }
let form = {...this.form, orderIds: this.ids}
let data = { let data = {
approvalType: 18, // 批量加价 approvalType: 18, // 批量加价
copyUserId: this.form.copyUserId, copyUserId: this.form.copyUserId,
details: JSON.stringify(this.form), details: JSON.stringify(form),
shipmentId: this.shipmentId, shipmentId: this.shipmentId
orderIds: this.ids
} }
createApproval(data).then(() => { createApproval(data).then(() => {
this.$message.success(this.$t('提交成功')) this.$message.success(this.$t('提交成功'))
this.$store.dispatch('tagsView/delCurrentView') this.$store.dispatch('tagsView/delCurrentView')
}) })
},
// 取消审核
cancelAproval(){
this.$prompt(this.$t('请输入取消原因'), this.$t('取消审核'), {
inputPattern: /\S/,
inputErrorMessage: this.$t('请输入取消原因')
}).then(({value}) => {
console.log('cancelApproval', value)
return approvalCancel({
applyReason: value,
id: this.shipmentObj.batchAddPriceApprovalInfo.id,
shipmentId: this.shipmentId
})
}).then(res => {
this.$message.success('已取消审核')
this.getBoxDetail()
})
} }
} }
} }
......
...@@ -36,23 +36,22 @@ ...@@ -36,23 +36,22 @@
<template v-slot="{row}"> <template v-slot="{row}">
<section> <section>
<div v-for="(item, index) in row.goodsList" :key="index"> <div v-for="(item, index) in row.goodsList" :key="index">
<div>{{index+1}}{{item.prodTitleZh}}</div> <div>{{index+1}}{{$l(item, 'prodTitle')}}</div>
<div>{{index+1}}{{item.prodTitleEn}}</div>
</div> </div>
</section> </section>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收费箱数')" align="center" prop="num"></el-table-column> <el-table-column :label="$t('收费箱数')" align="center" prop="num"></el-table-column>
<el-table-colume :label="$t('收费体积')" align="center" prop="chargeVolume"></el-table-colume> <el-table-column :label="$t('收费体积')" align="center" prop="chargeVolume"></el-table-column>
<el-table-column :label="$t('收费重量')" align="center" prop="chargeWeight"></el-table-column> <el-table-column :label="$t('收费重量')" align="center" prop="chargeWeight"></el-table-column>
<el-table-column :label="$t('原成交单价')" align="center"> <el-table-column :label="$t('加价金额')" align="center">
<template> <template slot-scope="{row}" v-if="details">
// TODO <div>
</template> {{$t('运费')}}{{details.freightFee || 0}}{{ currencyMap[details.freightCurrencyId]}}/{{unitMap[details.freightUnitId]}}
</el-table-column> </div>
<el-table-column :label="$t('新成交单价')" align="center"> <div>
<template> {{$t('清关费')}}{{details.clearanceFee || 0}}{{ currencyMap[details.clearanceCurrencyId]}}/{{unitMap[details.clearanceUnitId]}}
// TODO </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -66,6 +65,8 @@ import { getCabinetPage } from "@/api/ecw/cabinet"; ...@@ -66,6 +65,8 @@ import { getCabinetPage } from "@/api/ecw/cabinet";
import { getChannelList } from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel";
import Decimal from "decimal.js"; import Decimal from "decimal.js";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import {getUnitList} from "@/api/ecw/unit";
import {getCurrencyList} from "@/api/ecw/currency";
/** /**
* 批量加价审核详情 * 批量加价审核详情
...@@ -81,6 +82,8 @@ export default { ...@@ -81,6 +82,8 @@ export default {
}, },
data() { data() {
return { return {
unitList:[],
currencyList:[],
approvalInfo: {}, approvalInfo: {},
boxBackVO: {}, boxBackVO: {},
loadDetail: {}, loadDetail: {},
...@@ -97,6 +100,8 @@ export default { ...@@ -97,6 +100,8 @@ export default {
}; };
}, },
created() { created() {
getUnitList().then(res => this.unitList = res.data)
getCurrencyList().then(res => this.currencyList = res.data)
getChannelList().then((res) => (this.channelList = res.data)); getChannelList().then((res) => (this.channelList = res.data));
}, },
methods: { methods: {
...@@ -169,6 +174,24 @@ export default { ...@@ -169,6 +174,24 @@ export default {
return getSeaStatus(shippingVO) >= 182 ? true : false; return getSeaStatus(shippingVO) >= 182 ? true : false;
}; };
}, },
details(){
if(!this.approvalInfo) return null
return JSON.parse(this.approvalInfo?.details)
},
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
}, },
}; };
</script> </script>
......
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