Commit e8be39d0 authored by 我在何方's avatar 我在何方

Merge branch 'release' of http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator into release

parents d6bfb347 33ad925e
...@@ -95,6 +95,8 @@ export default { ...@@ -95,6 +95,8 @@ export default {
this.$emit('input', val) this.$emit('input', val)
}, },
isAllProduct(isAllProduct){ isAllProduct(isAllProduct){
console.log('isAllProduct', isAllProduct)
this.choosedList = []
this.$emit('setall', isAllProduct) this.$emit('setall', isAllProduct)
}, },
defaultIds(newValue, oldValue){ defaultIds(newValue, oldValue){
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div> <div>
<div class="filters mb-10"> <div class="filters mb-10">
{{$t('运输方式')}} {{$t('运输方式')}}
<dict-selector :type='DICT_TYPE.ECW_TRANSPORT_TYPE' v-model="transportType" :placeholder="$t('请选择运输方式')" style="width:150px" /> <dict-selector :type='DICT_TYPE.ECW_TRANSPORT_TYPE' v-model="transportType" :placeholder="$t('请选择运输方式')" clearable style="width:150px" />
{{$t('始发地')}} {{$t('始发地')}}
<el-select :placeholder="$t('请选择始发地')" v-model="exportCity" clearable> <el-select :placeholder="$t('请选择始发地')" v-model="exportCity" clearable>
<el-option v-for="item in exportCityList" :key="item.id" :label="item.titleZh" :value="item.id" /> <el-option v-for="item in exportCityList" :key="item.id" :label="item.titleZh" :value="item.id" />
...@@ -19,11 +19,12 @@ ...@@ -19,11 +19,12 @@
<el-option v-for="item in channelList" :key="item.channelId" :label="item.nameZh" :value="item.channelId" /> <el-option v-for="item in channelList" :key="item.channelId" :label="item.nameZh" :value="item.channelId" />
</el-select> </el-select>
</div> </div>
<div class="mb-10"> <div class="mb-10 flex-row">
<el-radio-group v-model="checkAll"> <el-radio-group v-model="checkAll">
<el-radio :label="true">{{$t('全选')}}</el-radio> <el-radio :label="true">{{$t('全选')}}</el-radio>
<el-radio :label="false">{{$t('全不选')}}</el-radio> <el-radio :label="false">{{$t('全不选')}}</el-radio>
</el-radio-group> </el-radio-group>
<el-link class="ml-20" type="danger">{{$t('已选择{n}条路线', {n: selectedRoutes.length})}}</el-link>
</div> </div>
<el-row class="" :gutter="10"> <el-row class="" :gutter="10">
<template v-for="(item, index) in filteredRouterList"> <template v-for="(item, index) in filteredRouterList">
...@@ -90,7 +91,8 @@ export default { ...@@ -90,7 +91,8 @@ export default {
hideMap: {}, // 折叠状态 hideMap: {}, // 折叠状态
checkAll: null, checkAll: null,
groupChecker: {}, // 分组全选状态 groupChecker: {}, // 分组全选状态
inited: false
} }
}, },
computed:{ computed:{
...@@ -188,27 +190,25 @@ export default { ...@@ -188,27 +190,25 @@ export default {
if(option){ if(option){
this.changeOption() this.changeOption()
} }
},
} // 显示的路线发生变化之后,清空已勾选的路线
filteredRouterList(){
if(this.inited)this.selectedRoutes = []
}
}, },
created(){ async created(){
getChannelList().then(res => { this.channelList = (await getChannelList()).data
this.channelList = res.data this.tradeCityList = (await getTradeCityList()).data
}) // 路线需要过滤失效的进出口城市,所以在程序加载后再加载路线
getTradeCityList().then(res => { await this.getOpenedRouterList()
this.tradeCityList = res.data if(this.option){
// 路线需要过滤失效的进出口城市,所以在程序加载后再加载路线 this.changeOption()
this.getOpenedRouterList() }
})
if(this.value && this.value.length){
this.selectedRoutes = this.value
}
if(this.option){ await this.$nextTick()
this.changeOption() if(this.value && this.value.length){
} this.selectedRoutes = this.value
}
}, },
methods:{ methods:{
changeOption(){ changeOption(){
...@@ -226,7 +226,7 @@ export default { ...@@ -226,7 +226,7 @@ export default {
this.toggleChecker(router, selected) this.toggleChecker(router, selected)
}) })
}, },
getOpenedRouterList(){ async getOpenedRouterList(){
let params = {} let params = {}
if(this.exportCity){ if(this.exportCity){
params.startCityId = this.exportCity params.startCityId = this.exportCity
...@@ -234,9 +234,10 @@ export default { ...@@ -234,9 +234,10 @@ export default {
if(this.importCity){ if(this.importCity){
params.destCityId = this.importCity params.destCityId = this.importCity
} }
openedRouterList(params).then(res => this.openedRouterList = res.data.filter(item => { const res = await openedRouterList(params)
return this.exportCityIds.indexOf(item.startCityId) > -1 && this.importCityIds.indexOf(item.destCityId) > -1 this.openedRouterList = res.data.filter(item => {
})) return this.exportCityIds.indexOf(item.startCityId) > -1 && this.importCityIds.indexOf(item.destCityId) > -1
})
}, },
// 切换路线选择 // 切换路线选择
toggleChecker(router, selected){ toggleChecker(router, selected){
...@@ -258,7 +259,7 @@ export default { ...@@ -258,7 +259,7 @@ export default {
if(index > -1){ if(index > -1){
this.selectedRoutes.splice(index, 1) this.selectedRoutes.splice(index, 1)
} }
} }
}, },
getSelectedIndex(router){ getSelectedIndex(router){
...@@ -266,7 +267,7 @@ export default { ...@@ -266,7 +267,7 @@ export default {
return item.lineId == router.id && item.channelId == router.channel.channelId return item.lineId == router.id && item.channelId == router.channel.channelId
}) })
/* let index = null /* let index = null
this.selectedRoutes.forEach((item, i)=>{ this.selectedRoutes.forEach((item, i)=>{
if(item.lineId == router.id && item.shippingChannelId == router.channel.channelId){ if(item.lineId == router.id && item.shippingChannelId == router.channel.channelId){
index = i index = i
...@@ -298,4 +299,4 @@ export default { ...@@ -298,4 +299,4 @@ export default {
.mb-10{ .mb-10{
margin-bottom: 10px margin-bottom: 10px
} }
</style> </style>
\ No newline at end of file
...@@ -100,11 +100,11 @@ ...@@ -100,11 +100,11 @@
{{$t('操作')}}<i class="el-icon-arrow-down el-icon--right"></i> {{$t('操作')}}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="edit">{{$t('编辑')}}</el-dropdown-item> <el-dropdown-item command="edit" v-has-permi="['shipment:air:edit']">{{$t('编辑')}}</el-dropdown-item>
<el-dropdown-item command="air">{{$t('操作')}}-{{$t('空运')}}</el-dropdown-item> <el-dropdown-item command="air" v-has-permi="['shipment:air:action']">{{$t('操作')}}-{{$t('空运')}}</el-dropdown-item>
<el-dropdown-item command="error">{{$t('异常登记')}}</el-dropdown-item> <el-dropdown-item command="error" v-has-permi="['shipment:air:exception']">{{$t('异常登记')}}</el-dropdown-item>
<el-dropdown-item command="cost">{{$t('费用登记')}}</el-dropdown-item> <el-dropdown-item command="cost" v-has-permi="['shipment:air:fee']">{{$t('费用登记')}}</el-dropdown-item>
<el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item> <el-dropdown-item command="delete" v-has-permi="['shipment:air:delete']">{{$t('删除')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
......
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
<template v-if="form.type==7"> <template v-if="form.type==7">
> <el-input v-model="item.startAmount" @blur="checkPositive(item, 'startAmount')" style="width:100px" /> > <el-input v-model="item.startAmount" @blur="checkPositive(item, 'startAmount')" style="width:100px" />
<el-input v-model="item.endAmount" @blur="checkPositive(item, 'endAmount')" style="width:100px" /> <el-input v-model="item.endAmount" @blur="checkPositive(item, 'endAmount')" style="width:100px" />
<!-- <selector v-model="item.startAndEndCurrencyId" @input="checkReduceCurrency(item)" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <!-- <selector v-model="item.startAndEndCurrencyId" @input="checkReduceCurrency(item)" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
--> -->
<selector v-model="item.combUnit" @input="checkReduceCurrency(item)" :options="combUnitList" label-field="label" value-field="value" defaultable style="width:100px" /> <selector v-model="item.combUnit" @input="checkReduceCurrency(item)" :options="combUnitList" label-field="label" value-field="value" defaultable style="width:100px" />
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
/ /
<selector v-model="item.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <selector v-model="item.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
</template> </template>
<!-- 特价只有一行,不显示增删 --> <!-- 特价只有一行,不显示增删 -->
<template v-if="form.type != 6"> <template v-if="form.type != 6">
<el-button class="el-icon-plus" size="mini" type="primary" @click="fee[1].push({type:1})" /> <el-button class="el-icon-plus" size="mini" type="primary" @click="fee[1].push({type:1})" />
...@@ -198,7 +198,7 @@ ...@@ -198,7 +198,7 @@
> >
<!---第一个不是全部,所以不能使用defaultable--> <!---第一个不是全部,所以不能使用defaultable-->
<dict-selector :type="DICT_TYPE.ECW_SUITABLE_LINE_TYPE" v-model="form.suitableLineType" formatter="number" defaultable /> <dict-selector :type="DICT_TYPE.ECW_SUITABLE_LINE_TYPE" v-model="form.suitableLineType" formatter="number" defaultable />
<routers-selector v-if="showRouterSelector" v-model="form.lineIds" style="margin-top:5px" /> <routers-selector v-if="showRouterSelector" v-model="form.lineIds" :lineIds="form.lineIds" style="margin-top:5px" />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('适用商品')" :label="$t('适用商品')"
...@@ -372,7 +372,7 @@ export default { ...@@ -372,7 +372,7 @@ export default {
}) })
}) })
} }
this.unitList.forEach(item => { this.unitList.forEach(item => {
arr.push({ arr.push({
...@@ -388,7 +388,7 @@ export default { ...@@ -388,7 +388,7 @@ export default {
// 非优惠券则查询优惠券列表 // 非优惠券则查询优惠券列表
if(val && val != 1){ if(val && val != 1){
this.getCouponSelect() this.getCouponSelect()
if(!this.initing){ if(!this.initing){
// 非优惠券给默认数据 // 非优惠券给默认数据
this.$set(this.form, 'documentDeclarationArr', ["1", "2", "3"]) this.$set(this.form, 'documentDeclarationArr', ["1", "2", "3"])
...@@ -441,15 +441,16 @@ export default { ...@@ -441,15 +441,16 @@ export default {
this.readonly = true this.readonly = true
} }
this.getUnitList() this.getUnitList()
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
if (this.$route.query.id) { if (this.$route.query.id) {
this.initing = true this.initing = true
getCoupon(this.$route.query.id).then((res) => { getCoupon(this.$route.query.id).then((res) => {
this.form = res.data; this.form = res.data;
['orderAttr', 'isCargoControl', 'brand', 'documentDeclaration'].forEach(field => { ['orderAttr', 'isCargoControl', 'brand', 'documentDeclaration'].forEach(field => {
this.$set(this.form, field + 'Arr', str2arr(res.data[field])) this.$set(this.form, field + 'Arr', str2arr(res.data[field]))
}) })
// 没有商品则表示全部 // 没有商品则表示全部
if(!this.form.prodIds || !this.form.prodIds.length){ if(!this.form.prodIds || !this.form.prodIds.length){
this.isAllProduct = true this.isAllProduct = true
...@@ -461,7 +462,7 @@ export default { ...@@ -461,7 +462,7 @@ export default {
this.couponIds = couponIds.map(item => parseInt(item)) this.couponIds = couponIds.map(item => parseInt(item))
}) })
} }
console.log('lineIds', this.form.lineIds)
if(this.form.discountDetailedVOs){ if(this.form.discountDetailedVOs){
/* this[['clearanceFeeList', 'freightFeeList', 'discountList'][]] */ /* this[['clearanceFeeList', 'freightFeeList', 'discountList'][]] */
// this.fee[this.form.costType] = this.form.discountDetailedVOs.filter(item => item.type == this.form.costType) // this.fee[this.form.costType] = this.form.discountDetailedVOs.filter(item => item.type == this.form.costType)
...@@ -477,7 +478,6 @@ export default { ...@@ -477,7 +478,6 @@ export default {
this.fee[item.type].push({...item}) this.fee[item.type].push({...item})
}) })
console.log(JSON.stringify(this.fee, null, 4))
/* if(this.costType != this.form.costType){ /* if(this.costType != this.form.costType){
console.error(`费用类型冲突,计算出来的类型为${this.costType},接口费用类型为${res.data.costType},类型为${res.data.type}`) console.error(`费用类型冲突,计算出来的类型为${this.costType},接口费用类型为${res.data.costType},类型为${res.data.type}`)
this.$alert(this.$t('费用类型冲突')) this.$alert(this.$t('费用类型冲突'))
...@@ -512,7 +512,7 @@ export default { ...@@ -512,7 +512,7 @@ export default {
3: [{}] // 优惠券专用 3: [{}] // 优惠券专用
} }
} }
this.reset() this.reset()
}, },
methods: { methods: {
// 满减清关费修改满的货币后需要同步减的货币 // 满减清关费修改满的货币后需要同步减的货币
...@@ -545,7 +545,7 @@ export default { ...@@ -545,7 +545,7 @@ export default {
this.$set(item, 'netReceiptsCurrencyId', currencyId) this.$set(item, 'netReceiptsCurrencyId', currencyId)
} }
}else this.$set(item, 'reduceCurrencyDisabled', false) }else this.$set(item, 'reduceCurrencyDisabled', false)
return return
} }
...@@ -573,7 +573,7 @@ export default { ...@@ -573,7 +573,7 @@ export default {
if(item.reduceCurrencyDisabled){ if(item.reduceCurrencyDisabled){
this.$set(item, 'reduceCurrencyDisabled', false) this.$set(item, 'reduceCurrencyDisabled', false)
} }
}, },
getCouponSelect(){ getCouponSelect(){
getCouponSelect({overdueStatus: 1, status: 1, pageSize: 100}).then(res => { getCouponSelect({overdueStatus: 1, status: 1, pageSize: 100}).then(res => {
...@@ -652,10 +652,10 @@ export default { ...@@ -652,10 +652,10 @@ export default {
let tmp = item.combUnit.split('_') let tmp = item.combUnit.split('_')
/* if(this.form.type == 5){ /* if(this.form.type == 5){
item['fullCurrencyId'] = item['fullCurrencyId'] =
} */ } */
/* if(this.form.type == 7){ /* if(this.form.type == 7){
item.startAndEndCurrencyId = item.startAndEndCurrencyId =
} */ } */
// 这里目前只能是满减,优惠会提示 “优惠劵满减货币不能为空” // 这里目前只能是满减,优惠会提示 “优惠劵满减货币不能为空”
item[tmp[0]] = tmp[1] item[tmp[0]] = tmp[1]
......
...@@ -54,6 +54,9 @@ ...@@ -54,6 +54,9 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item :label="$t('图片')" prop="picture">
<upload v-model="form.picture" :limit="1"></upload>
</el-form-item>
<el-form-item :label="$t('询盘信息')" > <el-form-item :label="$t('询盘信息')" >
<el-input <el-input
v-model="form.inquiry" v-model="form.inquiry"
...@@ -78,7 +81,7 @@ import {listServiceUser} from "@/api/system/user"; ...@@ -78,7 +81,7 @@ import {listServiceUser} from "@/api/system/user";
import {getProductTypeList} from "@/api/ecw/productType"; import {getProductTypeList} from "@/api/ecw/productType";
import {getProductList} from "@/api/ecw/product"; import {getProductList} from "@/api/ecw/product";
import {createPotential} from "@/api/ecw/customer"; import {createPotential} from "@/api/ecw/customer";
import upload from '@/components/ImageUpload'
export default { export default {
name: "addPotentialCustom", name: "addPotentialCustom",
methods: { methods: {
...@@ -100,6 +103,7 @@ export default { ...@@ -100,6 +103,7 @@ export default {
inquiry:undefined, inquiry:undefined,
productType:undefined, productType:undefined,
productId:undefined, productId:undefined,
picture:undefined
} }
}, },
submit(){ submit(){
...@@ -122,7 +126,7 @@ export default { ...@@ -122,7 +126,7 @@ export default {
}, },
}, },
components: {AreaCodeSelector}, components: {AreaCodeSelector,upload},
created() { created() {
this.reset() this.reset()
listServiceUser().then(r => { listServiceUser().then(r => {
......
...@@ -92,11 +92,11 @@ ...@@ -92,11 +92,11 @@
<el-button v-hasPermi="['ecw:customer:fcl']" :disabled="!selectCustomerList.length" @click="setFullContainerLoad(true)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading">{{$t('设置海运整柜客户')}}</el-button> <el-button v-hasPermi="['ecw:customer:fcl']" :disabled="!selectCustomerList.length" @click="setFullContainerLoad(true)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading">{{$t('设置海运整柜客户')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button v-hasPermi="['ecw:customer:create-potential']" :disabled="!selectCustomerList.length" @click="setFullContainerLoad(false)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading" <el-button v-hasPermi="['ecw:customer:fcl-mistake']" :disabled="!selectCustomerList.length" @click="setFullContainerLoad(false)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading"
>{{$t('设置海运非整柜客户')}}</el-button> >{{$t('设置海运非整柜客户')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button v-has-permi="['ecw:customer:fcl-mistake']" v-if="path === '/customer/customer'" type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddPotential">{{$t('新增潜在客户')}}</el-button> <el-button v-has-permi="['ecw:customer:create-potential']" v-if="path === '/customer/customer'" type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddPotential">{{$t('新增潜在客户')}}</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
......
...@@ -47,9 +47,9 @@ ...@@ -47,9 +47,9 @@
<el-descriptions-item :label="$t('主营类别')">{{ $l(customer,'productTypeName') }}</el-descriptions-item> <el-descriptions-item :label="$t('主营类别')">{{ $l(customer,'productTypeName') }}</el-descriptions-item>
<el-descriptions-item :label="$t('常提货网点')">{{ $l(customer,'pickupPointName') }}</el-descriptions-item> <el-descriptions-item :label="$t('常提货网点')">{{ $l(customer,'pickupPointName') }}</el-descriptions-item>
<el-descriptions-item :label="$t('图片')"> <el-descriptions-item :label="$t('图片')">
<el-image v-if="customer.picture" :src="customer.picture" style="width: 100px;height: 100px"> <image-display :picture-urls="customer.picture ? customer.picture.split(',') : []" >
<span slot="error">加载失败</span> <el-button type="text" > 查看图片</el-button>
</el-image> </image-display>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item> <el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item>
<el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ?$t('新客户') : $t('老客户') }}</el-descriptions-item> <el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ?$t('新客户') : $t('老客户') }}</el-descriptions-item>
...@@ -513,10 +513,12 @@ import {getCountry} from "@/api/ecw/country" ...@@ -513,10 +513,12 @@ import {getCountry} from "@/api/ecw/country"
import {getCurrencyList} from "@/api/ecw/currency"; import {getCurrencyList} from "@/api/ecw/currency";
import customerLog from "@/views/ecw/customer/customerLog.vue"; import customerLog from "@/views/ecw/customer/customerLog.vue";
import {checkPermi} from "@/utils/permission"; import {checkPermi} from "@/utils/permission";
import ImageDisplay from "@/views/ecw/order/components/imageDisplay.vue";
export default { export default {
name: 'query', name: 'query',
components: { components: {
ImageDisplay,
Template, Template,
CustomerFollow, CustomerFollow,
CustomerComplaint, CustomerComplaint,
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-dialog <el-dialog
append-to-body append-to-body
title="提示" :title="$t('图片')"
:visible.sync="visible" :visible.sync="visible"
width="80%"> width="80%">
<div style="display: flex;flex-wrap: wrap;"> <div style="display: flex;flex-wrap: wrap;">
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<video controls width="148px" height="148px" slot="error" :src="bizId ? item.url : item" ></video> <video controls width="148px" height="148px" slot="error" :src="bizId ? item.url : item" ></video>
</el-image> </el-image>
</div> </div>
<el-empty v-if="!list.length" description="暂无图片"></el-empty>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
......
...@@ -142,6 +142,9 @@ ...@@ -142,6 +142,9 @@
<el-descriptions-item :label="$t('创建时间')"> <el-descriptions-item :label="$t('创建时间')">
{{order.createTime|parseTime}} {{order.createTime|parseTime}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('客户经理')">
{{order.salesmanName}}
</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -203,10 +206,10 @@ ...@@ -203,10 +206,10 @@
<template slot-scope="{row}"> <template slot-scope="{row}">
<template v-if="row.charging ==1"> <template v-if="row.charging ==1">
<template v-if="!row.oneSeaFreight">{{ $t('未报价') }}</template> <template v-if="!row.originalSeaFreight">{{ $t('未报价') }}</template>
<el-link type="primary" @click="showFeeDetail(row, 'clearance')" v-else>{{$t('全包价')}} {{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</el-link> <el-link type="primary" @click="showFeeDetail(row, 'clearance')" v-else>{{$t('全包价')}} {{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</el-link>
</template> </template>
<template v-else-if="!row.oneSeaFreight && !row.oneClearanceFreight">{{ $t('未报价') }}</template> <template v-else-if="!row.originalSeaFreight && !row.originalClearanceFreight">{{ $t('未报价') }}</template>
<template v-else> <template v-else>
<el-link type="primary" @click="showFeeDetail(row, 'freight')"> <el-link type="primary" @click="showFeeDetail(row, 'freight')">
{{$t('运费')}}{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}} {{$t('运费')}}{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
......
...@@ -243,7 +243,8 @@ ...@@ -243,7 +243,8 @@
]" ]"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<el-input v-model.number="scope.row.worth" :disabled="!canAddProduct" @input="calculationPrice" type="number" /> <!--input事件在快速输入的时候,可能最后拿到的结果不是最后输入的参数,所以改成在blur的时候计算-->
<el-input v-model.number="scope.row.worth" :disabled="!canAddProduct" @blur="calculationPrice" type="number" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -12,35 +12,35 @@ ...@@ -12,35 +12,35 @@
</div></el-form-item> </div></el-form-item>
<el-form-item :label="$t('发货人')+':'"><div class="content">{{orderDetails.consignorVO ? orderDetails.consignorVO.name :''}}</div></el-form-item> <el-form-item :label="$t('发货人')+':'"><div class="content">{{orderDetails.consignorVO ? orderDetails.consignorVO.name :''}}</div></el-form-item>
<el-form-item :label="$t('唛头')"><div class="content">{{orderDetails.marks}}</div></el-form-item> <el-form-item :label="$t('唛头')"><div class="content">{{orderDetails.marks}}</div></el-form-item>
<el-form-item> <el-button :disabled="!!processInstanceId" @click="addCost">{{$t('添加申请')}}</el-button></el-form-item> <el-form-item> <el-button :disabled="!!processInstanceId || editMode" @click="addCost">{{$t('添加申请')}}</el-button></el-form-item>
</el-form> </el-form>
<el-table :data="list"> <el-table :data="list">
<el-table-column :label="$t('序号')" type="index"></el-table-column> <el-table-column :label="$t('序号')" type="index"></el-table-column>
<el-table-column :label="$t('费用类型')"> <el-table-column :label="$t('费用类型')">
<template v-slot:default = "scope"> <template v-slot:default = "scope">
<dict-selector :disabled="!!scope.row.status" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" /> <dict-selector :disabled="!scope.row.editMode && !!scope.row.status" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('金额')"> <el-table-column :label="$t('金额')">
<template v-slot:default = 'scope'> <template v-slot:default = 'scope'>
<el-input :disabled="!!scope.row.status" v-model.number="scope.row.applicationFee" ></el-input> <el-input :disabled="!scope.row.editMode && !!scope.row.status" v-model.number="scope.row.applicationFee" ></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('货币类型')"> <el-table-column :label="$t('货币类型')">
<template v-slot:default = 'scope'> <template v-slot:default = 'scope'>
<el-select :disabled="!!scope.row.status" v-model="scope.row.applicationFeeCurrency"> <el-select :disabled="!scope.row.editMode && !!scope.row.status" v-model="scope.row.applicationFeeCurrency">
<el-option v-for="item in JSON.parse(currencys)" :key="item.id" :label="item.titleZh" :value="item.id" /> <el-option v-for="item in JSON.parse(currencys)" :key="item.id" :label="item.titleZh" :value="item.id" />
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('付款类型')"> <el-table-column :label="$t('付款类型')">
<template v-slot = {row}> <template v-slot = {row}>
<dict-selector :disabled="row.status" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" /> <dict-selector :disabled="!row.editMode && !!row.status" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('备注')"> <el-table-column :label="$t('备注')">
<template v-slot:default="scope"> <template v-slot:default="scope">
<el-input :disabled="!!scope.row.status" v-model="scope.row.remarks" type="textarea"></el-input> <el-input :disabled="!scope.row.editMode && !!scope.row.status" v-model="scope.row.remarks" type="textarea"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('确认收款')"> <el-table-column :label="$t('确认收款')">
...@@ -55,9 +55,9 @@ ...@@ -55,9 +55,9 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')"> <el-table-column :label="$t('操作')">
<template v-slot:default = 'scope'> <template v-slot:default = 'scope'>
<el-button type="text" v-if="scope.row.status !== 0&&scope.row.status !== 1">{{STATUS[scope.row.status]}}</el-button> <el-tag v-if="scope.row.status !== 0 && !scope.row.editMode">{{STATUS[scope.row.status]}}</el-tag>
<!--el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button> <!--el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button-->
<el-button type="text" v-if="scope.row.status === 2" @click="modify(scope.row)">{{$t('修改')}}</el-button>--> <el-button type="text" v-if="modifable(scope.$index)" @click="modify(scope.row)">{{$t('修改')}}</el-button>
<el-button type="text" v-if="scope.row.status === 0" @click="del(scope.$index)">删除</el-button> <el-button type="text" v-if="scope.row.status === 0" @click="del(scope.$index)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<work-flow xmlkey="free_apply" v-model="selectedUsers" /> <work-flow xmlkey="free_apply" v-model="selectedUsers" />
</div> </div>
<div style="text-align: center;margin-top: 20px;"> <div style="text-align: center;margin-top: 20px;">
<el-button type="primary" v-if="!processInstanceId" style="margin-right: 30px;" :disabled="!feeList.length" @click="submit">{{$t('提交')}}</el-button> <el-button type="primary" v-if="!processInstanceId" style="margin-right: 30px;" :disabled="!feeList.length && !editMode" @click="submit">{{$t('提交')}}</el-button>
<el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="goProcessDetail">{{$t('审核中')}}</el-button> <el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="goProcessDetail">{{$t('审核中')}}</el-button>
<el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="cancel">{{$t('取消审核')}}</el-button> <el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="cancel">{{$t('取消审核')}}</el-button>
<el-button @click="$emit('update:dialogVisible',false)">{{$t('返回')}}</el-button> <el-button @click="$emit('update:dialogVisible',false)">{{$t('返回')}}</el-button>
...@@ -112,14 +112,31 @@ export default { ...@@ -112,14 +112,31 @@ export default {
DICT_TYPE, DICT_TYPE,
getDictDatas, getDictDatas,
STATUS:{}, STATUS:{},
isModify:[],
isModifyIf:false,
selectedUsers:[] selectedUsers:[]
} }
}, },
computed:{ computed:{
feeList(){ feeList(){
return this.list.filter(item => item.status === 0) return this.list.filter(item => item.status === 0)
},
// 正在编辑的费用申请
currentItem(){
return this.list.find(item => item.editMode)
},
// 是否修改模式
editMode(){
return !!this.currentItem
},
modifable(){
return (index) => {
// 审核中不允许修改
if(this.processInstanceId) return false
// 有未提交的不允许修改
if(this.feeList.length) return false
// 有修改中的不允许修改
if(this.list.findIndex(item => item.editMode) > -1) return false
return true
}
} }
}, },
created() { created() {
...@@ -152,6 +169,10 @@ export default { ...@@ -152,6 +169,10 @@ export default {
this.list.splice(index, 1) this.list.splice(index, 1)
}) })
}, },
// 修改
modify(item){
this.$set(item, 'editMode', true)
},
addCost(){ addCost(){
this.list.push({ this.list.push({
orderId:this.orderId, orderId:this.orderId,
...@@ -172,17 +193,26 @@ export default { ...@@ -172,17 +193,26 @@ export default {
if(errList.length){ if(errList.length){
return this.$message.error('请填写完整费用申请信息') return this.$message.error('请填写完整费用申请信息')
} }
feeApplicationCreateBatch( { if(this.editMode){
orderFeeApplicationCreateReqVOList: this.feeList, // 要提交status=1,否则保持原状态
copyUserId:this.selectedUsers, const data = {...this.currentItem,status:1, copyUserId:this.selectedUsers}
orderId: this.orderId return applicationUpdate(data).then(r => {
}).then(r=>{ this.$message.success(this.$t('修改成功'));
if(r.code === 0){ this.$emit('update:dialogVisible',false)
this.$emit('update:dialogVisible',false) })
this.$message.success(this.$t('添加成功'));
this.selectedUsers = [];
} }
})
feeApplicationCreateBatch( {
orderFeeApplicationCreateReqVOList: this.feeList,
copyUserId:this.selectedUsers,
orderId: this.orderId
}).then(r=>{
if(r.code === 0){
this.$emit('update:dialogVisible',false)
this.$message.success(this.$t('添加成功'));
this.selectedUsers = [];
}
})
}, },
goProcessDetail(){ goProcessDetail(){
this.$emit('update:dialogVisible',false) this.$emit('update:dialogVisible',false)
...@@ -208,7 +238,6 @@ export default { ...@@ -208,7 +238,6 @@ export default {
watch:{ watch:{
dialogVisible(val){ dialogVisible(val){
if(val){ if(val){
this.isModify = []
this.getOrderList() this.getOrderList()
getOrder(this.orderId).then(r =>{ getOrder(this.orderId).then(r =>{
if(r.code === 0){ if(r.code === 0){
......
...@@ -454,7 +454,6 @@ ...@@ -454,7 +454,6 @@
<!-- 打印入仓单 --> <!-- 打印入仓单 -->
<template v-if=" <template v-if="
exclude(scope.row.status, [0, 2]) && exclude(scope.row.status, [0, 2]) &&
exclude(scope.row.shipmentState, [320,322,323]) &&
exclude(scope.row.abnormalState, [5,6,7,8]) exclude(scope.row.abnormalState, [5,6,7,8])
"> ">
<el-dropdown-item @click.native="printWarehouseReceiptOrderId=scope.row.orderId" v-hasPermi="['ecw:order:warehouse_receipt']">{{$t('打印入仓单')}}</el-dropdown-item> <el-dropdown-item @click.native="printWarehouseReceiptOrderId=scope.row.orderId" v-hasPermi="['ecw:order:warehouse_receipt']">{{$t('打印入仓单')}}</el-dropdown-item>
......
...@@ -390,7 +390,8 @@ ...@@ -390,7 +390,8 @@
<el-table-column :label="$t('快递单号')" prop="expressNo"></el-table-column> <el-table-column :label="$t('快递单号')" prop="expressNo"></el-table-column>
<el-table-column :label="$t('储位')" prop="orderLocationBackVOList"> <el-table-column :label="$t('储位')" prop="orderLocationBackVOList">
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
{{getLocationName(row.orderLocationList)}} <warehouse-area-select :value="row.orderLocationList" :warehouse-id="currentWarehouseId" readonly></warehouse-area-select>
<!--{{getLocationName(row.orderLocationList)}}-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')"> <el-table-column :label="$t('操作')">
...@@ -583,7 +584,7 @@ export default { ...@@ -583,7 +584,7 @@ export default {
Promise.all([this.getList(), this.getOrder()]).then(res => { Promise.all([this.getList(), this.getOrder()]).then(res => {
console.log("拆单数据", this.splitData, this.splitData.length) console.log("拆单数据", this.splitData, this.splitData.length)
if(this.orderData.inWarehouseState != 207 && this.splitData.length){ if(this.orderData.inWarehouseState != 207 && this.splitData.length){
this.reset() // TODO this.reset()
} }
}) })
// 获取入仓记录 // 获取入仓记录
......
...@@ -241,6 +241,9 @@ export default { ...@@ -241,6 +241,9 @@ export default {
list1: [], list1: [],
list2: [], list2: [],
feeType:[{ feeType:[{
label:this.$t('无牌价'),
value:0
},{
label:this.$t('有牌价'), label:this.$t('有牌价'),
value:1 value:1
},{ },{
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-form ref="form" :model="form" :rules="rules" label-width="150px">
<products-selector v-model="form.productIdList" show-all @setall="isAllProduct=$event" class="mb-20" /> <products-selector ref="productSelector" v-model="form.productIdList" show-all @setall="isAllProduct=$event" class="mb-20" />
<routers-selector v-model="selectedRoutes" /> <routers-selector v-model="selectedRoutes" />
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<el-form-item :label="$t('单价模式')" prop="priceType"> <el-form-item :label="$t('单价模式')" prop="priceType">
<dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" /> <dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" />
</el-form-item> </el-form-item>
<!--阶梯订单--> <!--阶梯订单-->
<template v-if="form.stepPrice==1" > <template v-if="form.stepPrice==1" >
<div v-for="(item, index) in form.priceStepList" :key="index"> <div v-for="(item, index) in form.priceStepList" :key="index">
...@@ -346,7 +346,7 @@ export default { ...@@ -346,7 +346,7 @@ export default {
this.$set(this.form, 'allVolumeUnit', unit) this.$set(this.form, 'allVolumeUnit', unit)
}, },
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(async (valid) => {
if (!valid) { if (!valid) {
return; return;
} }
...@@ -377,6 +377,10 @@ export default { ...@@ -377,6 +377,10 @@ export default {
if(data.lineChannelList.length < 1){ if(data.lineChannelList.length < 1){
return this.$message.error(this.$t('请选择需要修改的路线')) return this.$message.error(this.$t('请选择需要修改的路线'))
} }
await this.$confirm(this.$t('已选择{route}条路线,{product}个商品;确认提交修改?', {
route: data.lineChannelList.length,
product: this.isAllProduct ? this.$refs.productSelector.allTotal : this.form.productIdList.length
}))
this.loading = true this.loading = true
batchUpdateProductPrice(data).then(response => { batchUpdateProductPrice(data).then(response => {
this.$modal.msgSuccess(this.$t("修改成功")); this.$modal.msgSuccess(this.$t("修改成功"));
......
...@@ -702,7 +702,7 @@ export default { ...@@ -702,7 +702,7 @@ export default {
}, },
// force 为是否强制提交,在价格过期的时候需要确认后强制提交 // force 为是否强制提交,在价格过期的时候需要确认后强制提交
submitForm(force = false) { submitForm(force = false) {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(async (valid) => {
if (!valid) { if (!valid) {
return; return;
} }
...@@ -768,6 +768,8 @@ export default { ...@@ -768,6 +768,8 @@ export default {
} }
} }
// 修改单条路线 // 修改单条路线
if (this.$route.query.action == 'update') { if (this.$route.query.action == 'update') {
this.loading = true this.loading = true
...@@ -806,6 +808,7 @@ export default { ...@@ -806,6 +808,7 @@ export default {
if(data.lineChannelList.length < 1){ if(data.lineChannelList.length < 1){
return this.$message.error(this.$t('请选择需要修改的路线')) return this.$message.error(this.$t('请选择需要修改的路线'))
} }
await this.$confirm(this.t("已选择{route}条路线,确认提交?", {route: data.lineChannelList.length}))
data.productIdList = [this.form.productId] data.productIdList = [this.form.productId]
this.loading = true this.loading = true
batchUpdateProductPrice(data).then(response => { batchUpdateProductPrice(data).then(response => {
...@@ -815,9 +818,12 @@ export default { ...@@ -815,9 +818,12 @@ export default {
return; return;
} }
// 添加的提交 // 添加的提交
if(!this.product){
return this.$message.error(this.$t('请选择商品'))
}
data.productId = this.product.id; data.productId = this.product.id;
data.lineChannelList = this.lineList.length ? this.lineList : this.selectedRoutes data.lineChannelList = this.lineList.length ? this.lineList : this.selectedRoutes
await this.$confirm(this.$t("已选择{route}条路线,确认提交?", {route: data.lineChannelList.length}))
this.loading = true this.loading = true
createProductPrice(data).then(response => { createProductPrice(data).then(response => {
this.$modal.msgSuccess(this.$t("请求成功")); this.$modal.msgSuccess(this.$t("请求成功"));
......
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