Commit c6e2b092 authored by houjn@hikoon.cn's avatar houjn@hikoon.cn
parents e186131d f1bc7a8a
......@@ -117,7 +117,7 @@ export default {
if (this.fileType) {
let fileExtension = "";
if (file.name.lastIndexOf(".") > -1) {
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1).toLowerCase();
}
const isTypeOk = this.fileType.some((type) => {
if (file.type.indexOf(type) > -1) return true;
......
......@@ -213,10 +213,10 @@ export default {
methods:{
changeOption(){
if(!this.option) return
this.importCity = +this.option.importCity
this.exportCity = +this.option.exportCity
this.transportType = this.option.transportId
this.channelId = +this.option.channelId
this.importCity = +this.option.importCity || null
this.exportCity = +this.option.exportCity || null
this.transportType = this.option.transportId || null
this.channelId = +this.option.channelId || null
},
// 全选、全不选 某个运输方式所有线路
toggleGroupChecker(index, selected){
......
......@@ -4,7 +4,7 @@
id="editor"
v-model="valueSync"
:config="ueditorConfig"
style="line-height: 20px; max-width: 600px;"
style="line-height: 20px;"
></vue-ueditor-wrap>
</div>
</template>
......
......@@ -43,10 +43,10 @@
<!--1:优惠卷 2:金额-满减 3:方数-满减 4 折扣 5优惠 6 特价 7区间价-->
<el-form-item :label="$t('优惠券金额')" v-if="form.type == 1">
<div class="fee-item">
<el-input v-model="form.reduceAmount" style="width:100px" />
<el-input v-model="form.reduceAmount" @keyup.native="checkPositive(form, 'reduceAmount')" style="width:100px" />
<selector v-model="form.reduceCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<span>{{$t('')}}</span>
<el-input type="number" v-model="form.cashCondition" style="width:100px" />
<el-input type="number" v-model="form.cashCondition" @keyup.native="checkPositive(form, 'cashCondition')" style="width:100px" />
<span>{{$t('使用')}}</span>
<span style="color:red">{{$t('注意:留空则表示不受满金额限制')}}</span>
</div>
......@@ -57,31 +57,31 @@
<div class="fee-item" v-for="(item, index) in fee[1]" :key="index">
<template v-if="[1,2,3,4,5].indexOf(form.type) > -1">
{{$t('')}}
<el-input v-model="item.fullAmount" type="number" style="width:100px" />
<el-input v-model="item.fullAmount" @keyup.native="checkPositive(item, 'fullAmount')" style="width:100px" />
<!-- <el-select v-model="item.fullCurrencyId" style="width:100px" >
<el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
</el-select> -->
<selector v-if="[4,5].indexOf(form.type) > -1" v-model="item.fullCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<selector v-if="form.type == 2" v-model="item.combUnit" :options="combUnitList" label-field="label" value-field="value" defaultable style="width:100px" />
<selector v-if="form.type == 2" v-model="item.combUnit" @input="checkReduceCurrency(item)" :options="combUnitList" label-field="label" value-field="value" defaultable style="width:100px" />
<span v-if="[2].indexOf(form.type) > -1">{{$t('')}}</span>
<span v-if="[4].indexOf(form.type) > -1">{{$t('折扣率')}}</span>
<span v-if="[5].indexOf(form.type) > -1">{{$t('')}}</span>
<el-input v-if="[2,3,4].indexOf(form.type) > -1" type="number" v-model="item.reduceAmount" style="width:100px" />
<el-input v-if="[2,3,4].indexOf(form.type) > -1" v-model="item.reduceAmount" @keyup.native="checkPositive(item, 'reduceAmount')" style="width:100px" />
<selector v-if="[2,3].indexOf(form.type) > -1" v-model="item.reduceCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<selector v-if="[2,3].indexOf(form.type) > -1" v-model="item.reduceCurrencyId" :disabled="!!item.reduceCurrencyDisabled" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<span v-if="[4].indexOf(form.type) > -1">%</span>
</template>
<template v-if="form.type==7">
> <el-input v-model="item.startAmount" type="number" style="width:100px" />
<el-input v-model="item.endAmount" type="number" style="width:100px" />
> <el-input v-model="item.startAmount" @keyup.native="checkPositive(item, 'startAmount')" style="width:100px" />
<el-input v-model="item.endAmount" @keyup.native="checkPositive(item, 'endAmount')" style="width:100px" />
<selector v-model="item.startAndEndCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
{{$t('价格')}}
</template>
<el-input v-if="[5,6,7].indexOf(form.type) > -1" type="number" v-model="item.netReceiptsAmount" style="width:100px" />
<el-input v-if="[5,6,7].indexOf(form.type) > -1" @keyup.native="checkPositive(item, 'netReceiptsAmount')" v-model="item.netReceiptsAmount" style="width:100px" />
<selector v-if="[5,6,7].indexOf(form.type) > -1" v-model="item.netReceiptsCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<template v-if="form.type == 6">
......@@ -91,6 +91,7 @@
<el-button class="el-icon-plus" size="mini" type="primary" @click="fee[1].push({type:1})" />
<el-button v-if="fee[1].length > 1" class="el-icon-minus" size="mini" type="danger" @click="fee[1].splice(index,1)" />
<div class="red-tips" v-if="errTips[1] && errTips[1][index]">{{errTips[1][index]}}</div>
</div>
</el-form-item>
......@@ -98,8 +99,8 @@
<div class="fee-item" v-for="(item, index) in fee[2]" :key="index">
<template v-if="[1,2,3,4,5].indexOf(form.type) > -1">
{{$t('')}}
<el-input v-model="item.fullAmount" type="number" style="width:100px" />
<selector v-if="[2,4,5].indexOf(form.type) > -1" v-model="item.fullCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<el-input v-model="item.fullAmount" @keyup.native="checkPositive(item, 'fullAmount')" style="width:100px" />
<selector v-if="[2,4,5].indexOf(form.type) > -1" v-model="item.fullCurrencyId" @input="syncClearanceCurrency(item)" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<selector v-if="form.type == 3" v-model="item.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<span v-if="[2].indexOf(form.type) > -1">{{$t('')}}</span>
......@@ -107,19 +108,19 @@
<span v-if="[5].indexOf(form.type) > -1">{{$t('')}}</span>
<el-input v-if="[2,3,4].indexOf(form.type) > -1" type="number" v-model="item.reduceAmount" style="width:100px" />
<el-input v-if="[2,3,4].indexOf(form.type) > -1" @keyup.native="checkPositive(item, 'reduceAmount')" v-model="item.reduceAmount" style="width:100px" />
<selector v-if="[2,3].indexOf(form.type) > -1" v-model="item.reduceCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<selector v-if="[2,3].indexOf(form.type) > -1" v-model="item.reduceCurrencyId" :disabled="form.type==2" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<span v-if="[4].indexOf(form.type) > -1">%</span>
</template>
<template v-if="form.type==7">
> <el-input v-model="item.startAmount" type="number" style="width:100px" />
<el-input v-model="item.endAmount" type="number" style="width:100px" />
> <el-input v-model="item.startAmount" @keyup.native="checkPositive(item, 'startAmount')" style="width:100px" />
<el-input v-model="item.endAmount" @keyup.native="checkPositive(item, 'endAmount')" style="width:100px" />
<Selector v-model="item.startAndEndCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
{{$t('价格')}}
</template>
<el-input v-if="[5,6,7].indexOf(form.type) > -1" type="number" v-model="item.netReceiptsAmount" style="width:100px" />
<el-input v-if="[5,6,7].indexOf(form.type) > -1" @keyup.native="checkPositive(item, 'netReceiptsAmount')" v-model="item.netReceiptsAmount" style="width:100px" />
<selector v-if="[5,6,7].indexOf(form.type) > -1" v-model="item.netReceiptsCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<template v-if="form.type == 6">
......@@ -129,6 +130,7 @@
<el-button class="el-icon-plus" size="mini" type="primary" @click="fee[2].push({type:2})" />
<el-button v-if="fee[2].length > 1" class="el-icon-minus" size="mini" type="danger" @click="fee[2].splice(index,1)" />
<div class="red-tips" v-if="errTips[2] && errTips[1][index]">{{errTips[2][index]}}</div>
</div>
</el-form-item>
......@@ -257,11 +259,21 @@ import RoutersSelector from '@/components/RoutersSelector'
import ProductsSelector from '@/components/ProductsSelector'
import Editor from '@/components/Editor'
import Selector from '@/components/Selector/index'
export default {
name: "CouponEdit",
components: {CustomerContactsSelector, RoutersSelector, ProductsSelector, Editor, Selector},
data() {
let validatorPositiveNumber = (rule, value, callback) => {
if(!value || value == '')return callback();
if (!Number(value)) return callback(new Error('请输入有效数字'))
let reg = /((^[1-9]\d*)|^0)(\.\d*){0,1}$/;
if (!reg.test(value)) return callback(new Error('请输入有效数字'));
callback();
}
return {
validatorPositiveNumber,
// 遮罩层
loading: true,
readonly: false,
......@@ -288,6 +300,7 @@ export default {
2: [],
3: []
},
errTips: {}, // 跟fee对应的错误提示
isAllProduct: false, // 是否全部商品
};
},
......@@ -414,7 +427,13 @@ export default {
// this.fee[this.form.costType] = this.form.discountDetailedVOs.filter(item => item.type == this.form.costType)
}
this.form.discountDetailedVOs.forEach(item => {
this.fee[item.type].push(item)
if(item.prodUnit){
item.combUnit = 'prodUnit_' + item.prodUnit
}else if(item.fullCurrencyId){
item.combUnit = 'fullCurrencyId_' + item.fullCurrencyId
}
this.fee[item.type].push({...item})
})
/* if(this.costType != this.form.costType){
console.error(`费用类型冲突,计算出来的类型为${this.costType},接口费用类型为${res.data.costType},类型为${res.data.type}`)
......@@ -449,6 +468,24 @@ export default {
this.reset()
},
methods: {
// 满减清关费修改满的货币后需要同步减的货币
syncClearanceCurrency(item){
if(this.form.type != 2) return
item.reduceCurrencyId = item.fullCurrencyId
},
// 满减活动如果选择的满多少金额减,则在选择满货币后需要同步减的货币,且禁用减的货币修改
checkReduceCurrency(item){
if(this.form.type == 2 && item.combUnit.split('_')[0] == 'fullCurrencyId'){
this.$set(item, 'reduceCurrencyDisabled', true)
this.$set(item, 'reduceCurrencyId', +item.combUnit.split('_')[1])
return
}
if(item.reduceCurrencyDisabled){
this.$set(item, 'reduceCurrencyDisabled', false)
}
},
getCouponSelect(){
getCouponSelect().then(res => {
this.couponList = res.data
......@@ -493,6 +530,17 @@ export default {
this.resetForm("form");
},
// 检查正数
checkPositive(object, field){
const lastChar = object[field].split('').pop()
object[field] = parseFloat(object[field])
if(!object[field] || object[field] < 0) object[field] = ''
else object[field] = object[field].toString()
// 如果最后一位是.且没有其他点则补上
if(object[field] != '' && object[field].indexOf('.') == -1 && lastChar == '.') object[field] += '.'
},
/** 提交按钮 */
submitForm(status = 0) {
this.$refs["form"].validate((valid) => {
......@@ -503,13 +551,46 @@ export default {
return this.$message(this.$t('暂无费用设置'))
}
// 非有优惠券需要把运费和清关费一起提交
this.errTips = {}
let discountDetailedVOs = this.costType == 3 ? this.fee[3] : this.fee[1].concat(this.fee[2]).filter(item => item.netReceiptsAmount || item.fullAmount)
discountDetailedVOs.map(item => {
if(item.combUnit){
// 满减需要 先删除单位,防止编辑的时候切换单位导致两个同时存在
if(this.form.type == 2){
delete item.fullCurrencyId
delete item.prodUnit
}
let tmp = item.combUnit.split('_')
item[tmp[0]] = tmp[1]
}
/* // 满减,折扣 则需要填写 满多少(fullAmount)减多少(reduceAmount)
// 优惠,满多少(fullAmount)收多少(netReceiptsAmount)
// 特价 netReceiptsAmount
// 区间价 startAmount 到 endAmount
const fields = {
2: ['fullAmount', 'reduceAmount'],
3: ['fullAmount', 'netReceiptsAmount'],
4: ['netReceiptsAmount'],
5: ['startAmount', 'endAmount', 'netReceiptsAmount']
}[this.form.type];
let err = false
if(fields){
fields.forEach(field => {
if(!item[field] || +item[field] <= 0){
err = true
this.$message.error((item.type == 1 ? '运费' : '清关费') + '不能为空且大于0')
this.errTips[item.type]
}
})
}
if(err) return false */
})
let data = Object.assign({}, this.form, {discountDetailedVOs})
// 开始时间必填
if(!data.startTime)data.startTime = '2022-01-01 00:00:00'
......
......@@ -41,7 +41,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('已核销预付金额占总金额比例')+':'" label-width="200px">
<el-form-item :label="$t('已核销预付金额占总金额比例')+':'" label-width="320px">
{{orderFee.writeOffAmountScale}}%
</el-form-item>
</el-col>
......@@ -53,24 +53,31 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('预付商品货值占佣金额比例')+':'" label-width="200px">
<el-form-item :label="$t('预付商品货值占总货值比例')+':'" label-width="320px">
{{orderFee.paymentGoodsWorthScale}}%
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item :label="$t('预付商品方数')+':'">
{{orderFee.paymentGoodsVolume}} {{$t('立方米')}}
</el-form-item>
</el-row>
<el-row>
<el-row>
<el-col :span="6">
<el-form-item :label="$t('预付商品方数')+':'">
{{orderFee.paymentGoodsVolume}} {{$t('立方米')}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('预付商品货值占订单总运费+清关费比例')+':'" label-width="320px">
{{orderFee.needWorthScale}}%
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item :label="$t('订单总方数')+':'">
{{orderFee.totalVolume}} {{$t('立方米')}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('预付商品方数占总方数比例')+':'" label-width="200px">
<el-form-item :label="$t('预付商品方数占总方数比例')+':'" label-width="320px">
{{orderFee.paymentGoodsVolumeScale}}%
</el-form-item>
</el-col>
......@@ -116,7 +123,7 @@ export default {
}
},
orderFee(){
}
},
computed:{
......@@ -175,4 +182,4 @@ export default {
::v-deep .prepay_exception_detail .el-form-item{
margin-bottom: 0;
}
</style>
\ No newline at end of file
</style>
......@@ -3,7 +3,8 @@
<el-card class="card">
<div slot="header" class="card-title">
{{$t('订单编号')}}{{order.orderNo}}
<template v-if="order.containerNumber"> - {{order.containerNumber}}</template>
<template v-if="order.tidanNo"> - {{order.tidanNo}}</template>
<template v-else-if="order.containerNumber"> - {{order.containerNumber}}</template>
</div>
<el-row :gutter="20">
<el-col :span="8" v-if="order.consignorVO">
......@@ -40,6 +41,13 @@
</el-descriptions>
</el-col>
</el-row>
<el-descriptions class="margin-top" border :column="1" :labelStyle="{width:'150px'}">
<el-descriptions-item :label="$t('付款人')">
<el-link v-if="order.drawee == 3" @click.native="showDarweeDialog=true" type="primary">自定义</el-link>
<dict-tag v-else :type="DICT_TYPE.DRAWEE" :value="order.drawee"></dict-tag>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="card">
<el-descriptions border :title="$t('物流信息')" :column="2">
......@@ -244,6 +252,20 @@
<print-warehouse-receipt v-if="showWarehouseReceipt" :order-id="order.orderId" @close="showWarehouseReceipt=false" />
<print-lading-bill v-if="showLadingBill" :order-id="order.orderId" :transport-type="order.transportId" @close="showLadingBill=false" />
<warehouse-detail :order="order" :orderItemId="showWarehouseInItemId" v-if="showWarehouseInItemId" @close="showWarehouseInItemId=null" />
<el-dialog title="付款人" :visible.sync="showDarweeDialog" v-if="order && order.customDraweeVOList">
<el-table :data="order.customDraweeVOList" v-if="order.drawee==3" >
<el-table-column label="费用类型" prop="label" width="200px">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_CUSTOM_DRAWEE" :value="row.name"/>
</template>
</el-table-column>
<el-table-column label="付款人" width="300px">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.DRAWEE" :value="row.value" />
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
......@@ -274,6 +296,7 @@ export default {
},
data() {
return {
showDarweeDialog: false,
// 遮罩层
loading: false,
order: null,
......
......@@ -881,6 +881,10 @@ export default {
this.$set(this.form, 'consigneePhone', res.data.consigneeVO.phone)
}
if(this.form.channelId == 0){
delete this.form.channelId
}
if(res.data.ccIds){
this.ccIdArr = res.data.ccIds.split(",").filter(item => item && item != '')
}
......
......@@ -205,7 +205,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('已核销预付金额占总金额比例')+':'" label-width="200px">
<el-form-item :label="$t('已核销预付金额占总金额比例')+':'" label-width="320px">
{{orderFee.writeOffAmountScale}}%
</el-form-item>
</el-col>
......@@ -217,15 +217,23 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('预付商品货值占总货值比例')+':'" label-width="200px">
<el-form-item :label="$t('预付商品货值占总货值比例')+':'" label-width="320px">
{{orderFee.paymentGoodsWorthScale}}%
</el-form-item>
</el-col>
</el-row>
<el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'">
<el-form-item :label="$t('预付商品方数')+':'">
{{orderFee.paymentGoodsVolume}} {{$t('立方米')}}
<el-col :span="6">
<el-form-item :label="$t('预付商品方数')+':'">
{{orderFee.paymentGoodsVolume}} {{$t('立方米')}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('预付商品货值占订单总运费+清关费比例')+':'" label-width="320px">
{{orderFee.needWorthScale}}%
</el-form-item>
</el-col>
</el-row>
<el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'">
<el-col :span="6">
......@@ -234,7 +242,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('预付商品方数占总方数比例')+':'" label-width="200px">
<el-form-item :label="$t('预付商品方数占总方数比例')+':'" label-width="320px">
{{orderFee.paymentGoodsVolumeScale}}%
</el-form-item>
</el-col>
......
......@@ -82,7 +82,7 @@
{{ currencyMap[form.freightCurrency] }} / {{ unitMap[form.freightVolume] }}</div>
<div v-if="form.commissionType == 3">
{{$t('实际佣金返点')}}
{{form.shadeCommissionAmount + form.lightCommissionAmount }}
{{totalCommision }}
{{ currencyMap[form.freightCurrency] }} / {{ unitMap[form.freightVolume] }}
</div>
</div>
......@@ -200,6 +200,9 @@ export default {
salePrice(){
if(!this.originPrice) return 0
return Decimal(this.originPrice).plus(parseFloat(this.form.lightCommissionAmount) || 0)
},
totalCommision(){
return Decimal(this.form.lightCommissionAmount || 0).plus(this.form.shadeCommissionAmount || 0)
}
},
......
......@@ -307,13 +307,13 @@
</el-dialog>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="$t('设置路线提单模板')" :visible.sync="templateOpen" width="1000px" @close="ladingFormClose()" append-to-body>
<el-dialog :title="$t('设置路线提单模板')" :visible.sync="templateOpen" width="1100px" @close="ladingFormClose()" append-to-body>
<el-form ref="form" :model="ladingform" :rules="rules" label-width="80px">
<el-form-item :label="$t('货柜前缀')" prop="prefixCounter">
<el-input v-model="ladingform.prefixCounter" :placeholder="$t('请输入货柜前缀')" />
</el-form-item>
<el-form-item :label="$t('抬头')" prop="titleZh">
<ueditor v-model="ladingform.titleZh" :min-height="192"/>
<ueditor v-model="ladingform.titleZh" :min-height="192" style="width:960px"/>
</el-form-item>
<el-card class="box-card">
......@@ -363,7 +363,7 @@
</el-card>
<el-form-item :label="$t('条款')" prop="contentZh">
<ueditor v-model="ladingform.contentZh" :min-height="192"/>
<ueditor v-model="ladingform.contentZh" :min-height="192" style="width:960px"/>
</el-form-item>
<el-form-item v-if="showFlag">
......
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