<template> <el-dialog visible :close-on-click-modal="false" width="80%" :before-close="closeDialog" :title="applyType == 32 ? $t('管理折扣') : $t('优惠申请')"> <el-form ref="form" :model="order" label-width="80px"> <el-form-item :label="$t('订单号')"> <span>{{ order.orderNo }}</span> </el-form-item> <el-form-item :label="$t('线路')">{{ $t('【') }}<dict-tag :type="DICT_TYPE.TRANSPORT_TYPE" :value="order.transportId" />】 {{ order.channelName }} {{$t("从【{departureName}】发往【{objectiveName}】", {departureName: $l(order.logisticsInfoDto, 'startTitle'), objectiveName: $l(order.logisticsInfoDto, 'destTitle')})}} </el-form-item> </el-form> <el-table border :data="form.batchApplyOrderItemDetailVOList"> <el-table-column :label="$t('品名')" align="center"> <template v-slot="{row}"> {{row.prodTitleZh+'/'+row.prodTitleEn}} </template> </el-table-column> <el-table-column :label="$t('填单货物属性')" align="center"> <template v-slot="{row}"> {{$t('品牌')}}:<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" /><br> {{$t('箱数')}}:{{ row.num }}<br> {{$t('体积')}}:{{ row.volume }}m³<br> {{$t('重量')}}:{{ row.weight }}Kg </template> </el-table-column> <el-table-column prop="address" :label="$t('入库货物属性')"> <template v-slot="{row}"> <template v-if="row.warehouseInInfoVO"> {{$t('品牌')}}: <template v-if="row.brandName">{{row.brandName}}</template> <dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="row.feeType" /><br> {{$t('箱数')}}:{{ row.warehouseInInfoVO.cartonsNum }}<br> {{$t('体积')}}:{{ row.warehouseInInfoVO.volume }}m³<br> {{$t('重量')}}:{{ row.warehouseInInfoVO.weight }}Kg </template> <span v-else>{{$t('暂时没有入库信息')}}</span> </template> </el-table-column> <el-table-column :label="$t('旧费用')" align="center"> <template v-slot="{row}"> <div v-if="!row.charging"> <div>{{$t('旧运费')}}:{{row.orgFreight}} {{ currentMap[row.freightCurrency] }} / {{ unitMap[row.freightVolume] }}</div> <div>{{$t('旧清关费')}}:{{row.orgClearanceFreight}} {{ currentMap[row.clearanceFreightCurrency] }} / {{ unitMap[row.clearanceFreightVolume] }}</div> </div> <div v-else> {{$t('旧全包价')}}:{{row.orgFreight}} {{ currentMap[row.freightCurrency] }} / {{ unitMap[row.freightVolume] }} </div> </template> </el-table-column> <el-table-column :label="$t('新费用')" align="center" width="300px"> <template v-slot="{row}"> <div v-if="!row.charging"> <div>{{$t('新运费')}}: <el-input v-model="row.freight" type="number" class="w-100" /> {{ currentMap[row.freightCurrency] }} / {{ unitMap[row.freightVolume] }}</div> <div>{{$t('新清关费')}}: <el-input v-model="row.clearanceFreight" type="number" class="w-100" /> {{ currentMap[row.clearanceFreightCurrency] }} / {{ unitMap[row.clearanceFreightVolume] }}</div> </div> <div v-else> {{$t('新全包价')}}: <el-input v-model="row.freight" type="number" class="w-100" />{{ currentMap[row.freightCurrency] }} / {{ unitMap[row.freightVolume] }} </div> </template> </el-table-column> </el-table> <div class="page-title">{{ $t('审批流程') }}</div> <work-flow xmlkey="special_apply" v-model="ccIdArr" /> <div v-if="form.applyStatus != 1"> <el-button type="primary" @click="handleSubmit" >{{ $t('提交') }}</el-button> </div> <div v-else> <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)"> <dict-tag :type="DICT_TYPE.APPLY_STATUS" :value="form.applyStatus" /> </el-button> <el-button type="primary" @click="cancelAudit">{{ $t('取消审核') }}</el-button> <el-button type="default" @click="closeDialog">{{ $t('返回') }}</el-button> </div> </el-dialog> </template> <script> import {createOrderSpecialBatch, getOrderSpecialBatch} from "@/api/ecw/order" import {getUnitList} from "@/api/ecw/unit" import {getChannel, getChannelList} from "@/api/ecw/channel" import { getCurrencyList } from '@/api/ecw/currency' import { getProductType } from '@/api/ecw/productType' import {cancelProcessInstance} from '@/api/bpm/processInstance' import WorkFlow from '@/components/WorkFlow' export default { name: "OrderSpecialDiscount", props: { order: Object, ids:Array, applyType:{ // // 31是优惠申请32是管理折扣 type: Number, default: 31 } }, components: { WorkFlow }, created() { // 查看详情,列表进来的 this.getOrderSpecial() getUnitList().then(res => this.unitList = res.data) getCurrencyList().then(res => this.currencyList = res.data) // getProductType(this.orderItem.prodType).then(res => { // this.productType = res.data // }) /*if(this.order.channelId){ getChannel(this.order.channelId).then(res => { this.channel = res.data }) }*/ }, data() { return { // applyType: 1, // 1是优惠申请2是管理折扣3是佣金设置4是重货优惠5是泡货优惠 unitList:[], // channelList:[], currencyList:[], // productTypeList:[], ccIdArr: [], form: { }, productType: null, // channel: null } }, watch:{ ccIdArr(){ this.$set(this.form, 'ccIds', this.ccIdArr.join(',')) } }, methods: { handleSubmit(){ var fee = false var msg = '' this.form.batchApplyOrderItemDetailVOList.map(v=>{ if(v.charging){ if(!v.freight){ fee = true msg = this.$t('新全包价不能为空') }else if(v.freight==v.orgFreight){ fee = true msg = this.$t('新全包价不能与旧全包价一致') } }else{ if(!v.clearanceFreight){ fee = true msg = this.$t('新清关费不能为空') } if(!v.freight){ fee = true msg = this.$t('新运费不能为空') } if(v.freight&&v.clearanceFreight){ if(v.freight==v.orgFreight&&v.clearanceFreight==v.orgClearanceFreight){ fee = true msg = this.$t('新费用不能与旧费用一致') } } } }) if(fee){ this.$message.error(msg) return } createOrderSpecialBatch(Object.assign({}, this.form, {orderId:this.order.orderId,orderNo:this.order.orderNo},{applyType: this.applyType})).then(res => { this.$message.success(this.$t('提交成功')) this.$emit('success') }) }, getOrderSpecial(){ getOrderSpecialBatch(this.order.orderId, this.applyType).then(r => { this.form = r.data var volist = r.data.batchApplyOrderItemDetailVOList if(this.form.applyStatus==1){ this.form.batchApplyOrderItemDetailVOList.map(v=>{ var item = this.order.orderItemVOList.find(vs=>vs.orderItemId==v.orderItemId) if(item){ v.brandType = item.brandType v.num = item.num v.volume = item.volume v.weight = item.weight v.brandName = item.brandName v.warehouseInInfoVO = item.warehouseInInfoVO } }) }else{ this.form.batchApplyOrderItemDetailVOList = [] var list = [] console.log(this.ids) volist.map(v=>{ console.log(v.orderItemId) if(this.ids.indexOf(v.orderItemId)>-1){ var item = this.order.orderItemVOList.find(vs=>vs.orderItemId==v.orderItemId) if(item){ v.brandType = item.brandType v.num = item.num v.volume = item.volume v.weight = item.weight v.brandName = item.brandName v.warehouseInInfoVO = item.warehouseInInfoVO } list.push(v) } }) console.log(list) this.$set(this.form,'batchApplyOrderItemDetailVOList',list) } }) }, /* getProductTypeNameById(id){ return this.$l(this.productTypeList.find(e => e.id === id), 'title') }, */ cancelAudit(){ this.$prompt(this.$t('请输入取消原因?'), this.$t("取消审批"), { type: 'warning', confirmButtonText: this.$t("确定"), cancelButtonText: this.$t("取消"), inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格 inputErrorMessage: this.$t("取消原因不能为空"), }).then(({ value }) => { return cancelProcessInstance(this.form.formId, value); }).then(() => { this.$modal.msgSuccess(this.$t("取消成功")); this.closeDialog() }) }, closeDialog(){ this.$emit('close') } }, computed: { // 是否可以提交 submitable(){ let submitable = false; if(!this.form.freight || (!this.form.clearanceFreight && !this.form.charging)){ return false } [ ['orgClearanceFreight', 'clearanceFreight'], ['orgFreight', 'freight'] ].forEach(item => { if(this.form[item[0]] != this.form[item[1]]){ submitable = true } }) return submitable }, // 根据渠道id显示渠道名 getChannelNameById(){ return channelId => { const s = this.channelList.find(item => item.channelId == channelId) ?. nameZh return s ? this.$t('【') + s + this.$t('】') : '' } }, currentMap(){ 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>