Commit 6e8983d1 authored by dragondean@qq.com's avatar dragondean@qq.com

bugs

parent f3c57db7
...@@ -5,7 +5,7 @@ npm-debug.log* ...@@ -5,7 +5,7 @@ npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*
**/*.log **/*.log
*.stackdump
tests/**/coverage/ tests/**/coverage/
tests/e2e/reports tests/e2e/reports
selenium-debug.log selenium-debug.log
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
"clipboard": "2.0.8", "clipboard": "2.0.8",
"core-js": "^3.21.1", "core-js": "^3.21.1",
"dayjs": "^1.11.4", "dayjs": "^1.11.4",
"decimal.js": "^10.4.1",
"echarts": "4.9.0", "echarts": "4.9.0",
"element-ui": "^2.15.6", "element-ui": "^2.15.6",
"file-saver": "2.0.5", "file-saver": "2.0.5",
......
...@@ -29,3 +29,12 @@ export function exportCustomerCommissionExcel(query) { ...@@ -29,3 +29,12 @@ export function exportCustomerCommissionExcel(query) {
}) })
} }
//
export function getDarkReturnCommission(data){
return request({
url: '/ecw/customer-commission/get-dark-return-commission',
method: 'post',
data
})
}
\ No newline at end of file
...@@ -116,3 +116,19 @@ export function seasoningCondimentsSelect(params){ ...@@ -116,3 +116,19 @@ export function seasoningCondimentsSelect(params){
}) })
} }
// 根据放货ID查询控货订单放货修改审核详情
export function getPpickUpdateInfo(id){
return request({
url: '/ecw/order-cargo-control-pick/update/info/{id}/' + id,
method: 'get'
})
}
// 获得控货订单放货修改申请详情 {approveId: 1}
export function getPickUpdateApproveInfo(params){
return request({
url: '/ecw/order-cargo-control-pick/update/info',
method: 'get',
params
})
}
\ No newline at end of file
...@@ -36,7 +36,7 @@ $base-sub-menu-background:#000c17; ...@@ -36,7 +36,7 @@ $base-sub-menu-background:#000c17;
$base-sub-menu-hover:#001528; $base-sub-menu-hover:#001528;
*/ */
$base-sidebar-width: 200px; $base-sidebar-width: 250px;
// the :export directive is the magic sauce for webpack // the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
......
<template> <template>
<selector v-model="valueSync" :options="countryList" value-field="tel" key-field="id" :label-field="item => item.nameZh + item.tel" filterable clearable :disabled="disabled"></selector> <selector v-model="valueSync" :options="countryList" value-field="tel" key-field="id" :label-field="item => $l(item, 'name') + ' +' + item.tel" filterable clearable :disabled="disabled"></selector>
</template> </template>
<script> <script>
import {getCountryListAll} from '@/api/ecw/country' import {getCountryListAll} from '@/api/ecw/country'
...@@ -18,7 +18,7 @@ export default { ...@@ -18,7 +18,7 @@ export default {
}, },
watch:{ watch:{
valueSync(){ valueSync(){
this.$emit('input', this.valueSync) this.$emit('input', this.valueSync.replace('+', ''))
}, },
value(){ value(){
if(this.value)this.valueSync = this.value if(this.value)this.valueSync = this.value
...@@ -29,7 +29,10 @@ export default { ...@@ -29,7 +29,10 @@ export default {
this.valueSync = this.value this.valueSync = this.value
} }
getCountryListAll().then(res => { getCountryListAll().then(res => {
this.countryList = res.data this.countryList = res.data.map(item => {
item.tel = item.tel.replace('+', '')
return item
})
}) })
}, },
methods:{ methods:{
......
...@@ -187,9 +187,10 @@ export default { ...@@ -187,9 +187,10 @@ export default {
}) })
getTradeCityList().then(res => { getTradeCityList().then(res => {
this.tradeCityList = res.data this.tradeCityList = res.data
// 路线需要过滤失效的进出口城市,所以在程序加载后再加载路线
this.getOpenedRouterList()
}) })
this.getOpenedRouterList()
if(this.value && this.value.length){ if(this.value && this.value.length){
this.selectedRoutes = this.value this.selectedRoutes = this.value
} }
......
...@@ -136,7 +136,7 @@ import warehouseDetails from "@/views/ecw/order/components/warehouseDetails"; ...@@ -136,7 +136,7 @@ import warehouseDetails from "@/views/ecw/order/components/warehouseDetails";
import shippingDetail from '@/views/ecw/box/shippingDetail' import shippingDetail from '@/views/ecw/box/shippingDetail'
import SplitDetail from '@/views/ecw/order/components/SplitDetail' import SplitDetail from '@/views/ecw/order/components/SplitDetail'
import MergeDetail from '@/views/ecw/order/components/MergeDetail' import MergeDetail from '@/views/ecw/order/components/MergeDetail'
import CargoControlDetail from '@/views/ecw/order/components/CargoControlDetail'
// 流程实例的详情页,可用于审批 // 流程实例的详情页,可用于审批
export default { export default {
name: "ProcessInstanceDetail", name: "ProcessInstanceDetail",
...@@ -146,7 +146,8 @@ export default { ...@@ -146,7 +146,8 @@ export default {
warehouseDetails, warehouseDetails,
shippingDetail, shippingDetail,
SplitDetail, SplitDetail,
MergeDetail MergeDetail,
CargoControlDetail
}, },
computed:{ computed:{
matterNum(){ matterNum(){
...@@ -253,9 +254,33 @@ export default { ...@@ -253,9 +254,33 @@ export default {
merge_detail: { merge_detail: {
component: "MergeDetail", component: "MergeDetail",
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
},
// 放货修改
order_update_release: {
component: 'CargoControlDetail',
id: this.processInstance.businessKey,
applyType: 7
},
// 反复核
order_fallback: {
component: 'CargoControlDetail',
id: this.processInstance.businessKey,
applyType: 8
},
// 调货审核
order_cargo_transfer: {
component: 'CargoControlDetail',
id: this.processInstance.businessKey,
applyType: 9
},
// 取消放货审核 // TODO 接口待完善,applyType待完善
order_cancel_release: {
component: 'CargoControlDetail',
id: this.processInstance.businessKey,
applyType: 10
} }
} }
return map[this.processInstance.processDefinition.formCustomViewPath] return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
} }
}, },
data() { data() {
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
<span>{{ form.prodTitleEn }}</span> <span>{{ form.prodTitleEn }}</span>
</el-form-item> </el-form-item>
<el-form-item :label="$t('线路')"> <el-form-item :label="$t('线路')">
{{ `【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)}】${ getChannelNameById(form.channelId) }从【${form.departureName}】发往【${form.objectiveName}】`}} {{ `【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)}】${ getChannelNameById(form.channelId) }`}}
{{$t("从【{departureName}】发往【{objectiveName}", {departureName: form.departureName, objectiveName: form.objectiveName})}}
</el-form-item> </el-form-item>
<el-row v-if="!form.charging"> <el-row v-if="!form.charging">
...@@ -50,10 +51,15 @@ ...@@ -50,10 +51,15 @@
<div>{{$l(form, 'prodTitle')}}</div> <div>{{$l(form, 'prodTitle')}}</div>
<!-- 明佣+暗佣显示 --> <!-- 明佣+暗佣显示 -->
<div v-if="form.commissionType == 3">成本价:{{form.orgSeaFreight}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}</div> <div v-if="form.commissionType == 3">
成本价:{{form.orgSeaFreight}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}
</div>
<!-- 暗佣显示 --> <!-- 暗佣显示 -->
<div v-if="form.commissionType == 2"> <div v-if="form.commissionType == 2">
暗佣:// TODO {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }} {{$l(form, 'prodTitle')}}
<template v-if="darkCommission">
{{$t('暗佣')}}{{darkCommission}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}
</template>
<el-link type="primary" @click.native="$router.push('/customer/customerCommission?customerId=' + customerId)">去设置</el-link> <el-link type="primary" @click.native="$router.push('/customer/customerCommission?customerId=' + customerId)">去设置</el-link>
</div> </div>
...@@ -84,20 +90,21 @@ import {getChannelList} from "@/api/ecw/channel" ...@@ -84,20 +90,21 @@ import {getChannelList} from "@/api/ecw/channel"
import { getCurrencyList } from '@/api/ecw/currency' import { getCurrencyList } from '@/api/ecw/currency'
import { getProductAttrList } from '@/api/ecw/productAttr' import { getProductAttrList } from '@/api/ecw/productAttr'
import WorkFlow from '@/components/WorkFlow' import WorkFlow from '@/components/WorkFlow'
import {getDarkReturnCommission} from '@/api/ecw/customerCommission'
export default { export default {
name: "Commossion", name: "Commossion",
props: { props: {
offer: Object,
offerProd: Object,
/*
offerProdId: Number, offerProdId: Number,
customerId: Number customerId: Number */
}, },
components: { components: {
DictSelector, WorkFlow DictSelector, WorkFlow
}, },
created() { created() {
// 查看详情,列表进来的 this.getOfferSpecial()
if(this.offerProdId){
this.getOfferSpecial()
}
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
getChannelList().then(res => this.channelList = res.data) getChannelList().then(res => this.channelList = res.data)
...@@ -119,7 +126,8 @@ export default { ...@@ -119,7 +126,8 @@ export default {
}, },
rules:{ rules:{
commissionType : {required: true, message: '请选择佣金类型'}, commissionType : {required: true, message: '请选择佣金类型'},
} },
darkCommission: null, // 暗佣佣金
} }
}, },
computed: { computed: {
...@@ -152,6 +160,11 @@ export default { ...@@ -152,6 +160,11 @@ export default {
'form.commissionType'(val){ 'form.commissionType'(val){
this.$set(this.form, 'lightCommissionAmount', 0) this.$set(this.form, 'lightCommissionAmount', 0)
this.$set(this.form, 'shadeCommissionAmount', 0) this.$set(this.form, 'shadeCommissionAmount', 0)
// 暗佣需要查询暗佣设置
if(val == 2){
this.getCommission()
}
} }
}, },
methods: { methods: {
...@@ -168,7 +181,7 @@ export default { ...@@ -168,7 +181,7 @@ export default {
}) })
}, },
getOfferSpecial(){ getOfferSpecial(){
getOfferSpecial(this.offerProdId, {type: 2}).then(r => { getOfferSpecial(this.offerProd.offerProdId, {type: 2}).then(r => {
this.form = r.data this.form = r.data
}) })
}, },
...@@ -177,6 +190,22 @@ export default { ...@@ -177,6 +190,22 @@ export default {
}, },
closeDialog(){ closeDialog(){
this.$emit('close') this.$emit('close')
},
getCommission(){
getDarkReturnCommission({
customerId: this.offer.relationId,
customsType: this.offer.customsType,
darkCurrency: this.form.orgSeaFreightCurrency,
darkUnit: this.form.orgSeaFreightVolume,
departureId: this.offer.departureId,
objectiveId: this.offer.objectiveId,
productAttr: 3, //this.offerProd.prodAttrIds,
productType: this.offerProd.productType,
transportId: this.offer.transportId,
type: 2, // 暗佣
}).then(res => {
this.darkCommission = res.data?.darkCommission
})
} }
} }
} }
......
...@@ -135,7 +135,7 @@ ...@@ -135,7 +135,7 @@
<el-card class="mt-10"> <el-card class="mt-10">
<div slot="header" class="card-title"> <div slot="header" class="card-title">
<div class="card-name">{{$t('商品信息')}}</div> <div class="card-name">{{$t('商品信息')}}</div>
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addProduct()" :disabled="!form.lineId"></el-button> <el-button type="primary" size="mini" icon="el-icon-plus" @click="addProduct()" :disabled="!canAddProduct"></el-button>
</div> </div>
<el-table :data="form.prodCreateReqVOList" border class="product-list"> <el-table :data="form.prodCreateReqVOList" border class="product-list">
<el-table-column :label="$t('序号')" width="60px" fixed> <el-table-column :label="$t('序号')" width="60px" fixed>
...@@ -152,13 +152,13 @@ ...@@ -152,13 +152,13 @@
}" }"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<product-selector v-model="scope.row.prodId" @change="onProductChange(scope.row, $event)" /> <product-selector v-model="scope.row.prodId" @change="onProductChange(scope.row, $event)" :disabled="!canAddProduct" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('英文品名')" width="160px"> <el-table-column :label="$t('英文品名')" width="160px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<product-selector lang="En" v-model="row.prodId" @change="onProductChange(row, $event)" /> <product-selector lang="En" v-model="row.prodId" @change="onProductChange(row, $event)" :disabled="!canAddProduct" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('品牌')" width="100px"> <el-table-column :label="$t('品牌')" width="100px">
...@@ -170,34 +170,34 @@ ...@@ -170,34 +170,34 @@
}" }"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<dict-selector v-model="scope.row.brand" :type="DICT_TYPE.ECW_IS_BRAND" defaultable @input="calculationPrice" /> <dict-selector v-model="scope.row.brand" :type="DICT_TYPE.ECW_IS_BRAND" defaultable @input="calculationPrice" :disabled="!canAddProduct" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('件数')" width="90px"> <el-table-column :label="$t('件数')" width="90px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model.number="row.num" @input="calculationPrice" /> <el-input v-model.number="row.num" @input="calculationPrice" :disabled="!canAddProduct" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('包装单位')"> <el-table-column :label="$t('包装单位')">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" defaultable @input="calculationPrice" /> <dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" defaultable @input="calculationPrice" :disabled="!canAddProduct" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('数量') + '(个)'"> <el-table-column :label="$t('数量') + '(个)'">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model.number="row.quantity" @input="calculationPrice" /> <el-input v-model.number="row.quantity" @input="calculationPrice" :disabled="!canAddProduct" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('总体积') + '(m³)'" width="100px"> <el-table-column :label="$t('总体积') + '(m³)'" width="100px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model="row.volume" @input="calculationPrice"/> <el-input v-model="row.volume" @input="calculationPrice" :disabled="!canAddProduct"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('总重量') + '(kg)'" width="100px"> <el-table-column :label="$t('总重量') + '(kg)'" width="100px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model="row.weight" @input="calculationPrice" /> <el-input v-model="row.weight" @input="calculationPrice" :disabled="!canAddProduct" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('总货值') + '(RMB)'" width="100px"> <el-table-column :label="$t('总货值') + '(RMB)'" width="100px">
...@@ -209,13 +209,13 @@ ...@@ -209,13 +209,13 @@
}" }"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<el-input v-model="scope.row.worth" @input="calculationPrice" /> <el-input v-model="scope.row.worth" @input="calculationPrice" :disabled="!canAddProduct" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('商品特性')" width="250px"> <el-table-column :label="$t('商品特性')" width="250px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-checkbox-group v-model="row.prodAttrArr" @change="onProductAttrChange(row, $event)"> <el-checkbox-group v-model="row.prodAttrArr" @change="onProductAttrChange(row, $event)" :disabled="!canAddProduct">
<el-checkbox v-for="item in productAttrList" :label="item.id" :key="item.id">{{item.attrName}}</el-checkbox> <el-checkbox v-for="item in productAttrList" :label="item.id" :key="item.id">{{item.attrName}}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</template> </template>
...@@ -247,14 +247,14 @@ ...@@ -247,14 +247,14 @@
<el-table-column :label="$t('商品链接')" width="200px" align="center"> <el-table-column :label="$t('商品链接')" width="200px" align="center">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-link type="primary" :href="row.link" target="_blank" style="display:block">{{row.link}}</el-link> <el-link type="primary" :href="row.link" target="_blank" style="display:block">{{row.link}}</el-link>
<el-button type="primary" size="mini" @click="setLink(row)"> <el-button type="primary" size="mini" @click="setLink(row)" :disabled="!canAddProduct">
{{row.link ? $t('编辑商品链接') : $t('添加商品链接')}} {{row.link ? $t('编辑商品链接') : $t('添加商品链接')}}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('快递单号')" width="100px"> <el-table-column :label="$t('快递单号')" width="100px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model="row.expressNo" placeholder="" /> <el-input v-model="row.expressNo" placeholder="" :disabled="!canAddProduct" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" width="180px" fixed="right"> <el-table-column :label="$t('操作')" width="180px" fixed="right">
...@@ -269,20 +269,20 @@ ...@@ -269,20 +269,20 @@
<div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div> <div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div>
<el-descriptions :column="4" border> <el-descriptions :column="4" border>
<el-descriptions-item :label="$t('总件数')"> <el-descriptions-item :label="$t('总件数')">
{{sum.totalNum || 0}} {{sum.totalNum.toFixed() || 0}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="总体积"> <el-descriptions-item label="总体积">
{{sum.totalVolume || 0}}m³ {{sum.totalVolume.toFixed() || 0}}m³
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="总重量"> <el-descriptions-item label="总重量">
{{sum.totalWeight || 0}}kg {{sum.totalWeight.toFixed() || 0}}kg
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="总数量"> <el-descriptions-item label="总数量">
{{sum.totalQuatity || 0}} {{sum.totalQuatity.toFixed() || 0}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总货值') + '(RMB)'"> <el-descriptions-item :label="$t('总货值') + '(RMB)'">
{{sum.totalWorth || 0}}{{$t('元')}} {{sum.totalWorth.toFixed() || 0}}{{$t('元')}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -498,6 +498,7 @@ import SupplierSelector from '@/components/SupplierSelector' ...@@ -498,6 +498,7 @@ import SupplierSelector from '@/components/SupplierSelector'
import ChooseContactDialog from '@/components/ChooseContactDialog' import ChooseContactDialog from '@/components/ChooseContactDialog'
import QuickCreateCustomer from '@/components/QuickCreateCustomer' import QuickCreateCustomer from '@/components/QuickCreateCustomer'
import {getCustomerContactsSelect} from '@/api/ecw/customerContacts' import {getCustomerContactsSelect} from '@/api/ecw/customerContacts'
import Decimal from 'decimal.js'
export default { export default {
name: "EcwOfferEdit", name: "EcwOfferEdit",
...@@ -605,17 +606,18 @@ export default { ...@@ -605,17 +606,18 @@ export default {
}, },
sum(){ sum(){
let sum = { let sum = {
totalNum: 0, totalNum: new Decimal(0),
totalVolume: 0, totalVolume: new Decimal(0),
totalWeight: 0, totalWeight: new Decimal(0),
totalWorth: 0, totalWorth: new Decimal(0),
totalQuatity: new Decimal(0)
} }
this.form.prodCreateReqVOList.forEach(item => { this.form.prodCreateReqVOList.forEach(item => {
sum.totalNum += parseInt(item.num) || 0 sum.totalNum = sum.totalNum.plus(item.num || 0)
sum.totalVolume += parseFloat(item.volume) || 0 sum.totalVolume = sum.totalVolume.plus(item.volume || 0)
sum.totalWeight += parseFloat(item.weight) || 0 sum.totalWeight = sum.totalWeight.plus(item.weight || 0)
sum.totalWorth += parseFloat(item.worth) || 0 sum.totaltotalWorthNum = sum.totalWorth.plus(item.worth || 0)
sum.totalQuatity = sum.totalQuatity.plus(item.quantity || 0)
}) })
return sum return sum
}, },
...@@ -681,6 +683,17 @@ export default { ...@@ -681,6 +683,17 @@ export default {
routeOtherServices(){ routeOtherServices(){
if(!this.selectedRouter || !this.selectedRouter.otherService) return [] if(!this.selectedRouter || !this.selectedRouter.otherService) return []
return this.selectedRouter.otherService.split(',') return this.selectedRouter.otherService.split(',')
},
// 是否可以添加商品
canAddProduct(){
if(!this.form.lineId){
return false
}
// 如果是海空联运或者空运专线则必须选择渠道
if(this.transport && this.transport.cssClass == 'channel' && !this.form.channelId ){
return false
}
return true
} }
}, },
watch:{ watch:{
......
...@@ -129,47 +129,9 @@ ...@@ -129,47 +129,9 @@
<el-dropdown-item @click.native="$router.push('/offer/special?offerId=' + scope.row.offerId)" v-if="[3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('特价')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('/offer/special?offerId=' + scope.row.offerId)" v-if="[3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('特价')}}</el-dropdown-item>
<el-dropdown-item @click.native="cancel(scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-dropdown-item> <el-dropdown-item @click.native="cancel(scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-dropdown-item>
<el-dropdown-item @click.native="recovery(scope.row.offerId)" v-if="[0].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-dropdown-item> <el-dropdown-item @click.native="recovery(scope.row.offerId)" v-if="[0].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-dropdown-item>
<el-dropdown-item @click.native="deleteOffer(scope.row.offerId)" v-if="[1,2,3,4,5,6,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-dropdown-item> <el-dropdown-item @click.native="deleteOffer(scope.row.offerId)" v-if="[0,1,2,3,4,5,6,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<!-- <el-popover
style="margin-left: 10px;"
placement="bottom"
width="100"
trigger="hover">
<el-button slot="reference" icon="el-icon-plus" circle type="primary"></el-button>
<div style=" display:flex; flex-direction:column">
<template v-if="[1,2].indexOf(scope.row.status) > -1">
<el-link type="primary" @click.native="$router.push('detail?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:detail']">{{$t('详情')}}</el-link>
<el-link type="primary" @click="$router.push('edit?id=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-link>
<el-link type="primary" @click="$router.push('logList?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('跟进')}}</el-link>
</template>
<template v-if="scope.row.status == 2">
<el-button size="mini" type="text" @click="$router.push('detail?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('详情')}}</el-button>
<el-button size="mini" type="text" @click="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)"
v-hasPermi="['ecw:offer:update']">{{$t('结果')}}</el-button>
<el-button size="mini" type="text" @click="$router.push('/offer/special/' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('特价')}}</el-button>
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-button>
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-button>
</template>
<el-button size="mini" type="text" @click="$router.push('detail?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('详情')}}</el-button>
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-button>
</div>
</el-popover> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
:label="$t('操作')"> :label="$t('操作')">
<template v-slot="{row}"> <template v-slot="{row}">
<el-button size="mini" type="text" @click="showOfferProdId=row.offerProdId">{{$t('优惠申请')}}</el-button> <el-button size="mini" type="text" @click="showOfferProdId=row.offerProdId">{{$t('优惠申请')}}</el-button>
<el-button size="mini" type="text" @click="showCommissionProdId=row.offerProdId">{{$t('佣金规则')}}</el-button> <el-button size="mini" type="text" @click="showCommissionProd=row">{{$t('佣金规则')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
<el-button type="primary">关闭窗口</el-button> <el-button type="primary">关闭窗口</el-button>
</div> --> </div> -->
<special-discount v-if="showOfferProdId" :offerProdId="showOfferProdId" @close="showOfferProdId=null" @success="onSuccess" /> <special-discount v-if="showOfferProdId" :offerProdId="showOfferProdId" @close="showOfferProdId=null" @success="onSuccess" />
<commossion v-if="showCommissionProdId" :offerProdId="showCommissionProdId" :customer-id="offer.relationId" @close="showCommissionProdId=null" @success="onSuccess" /> <commossion v-if="showCommissionProd" :offer="offer" :offerProd="showCommissionProd" @close="showCommissionProd=null" @success="onSuccess" />
</el-card> </el-card>
</div> </div>
</template> </template>
...@@ -137,7 +137,7 @@ export default { ...@@ -137,7 +137,7 @@ export default {
departure: null, departure: null,
channel: null, // 渠道信息 channel: null, // 渠道信息
showOfferProdId: null, // 显示申请优惠的产品id showOfferProdId: null, // 显示申请优惠的产品id
showCommissionProdId: null, // 修改佣金规则的产品ID showCommissionProd: null, // 修改佣金规则的产品ID
}; };
}, },
watch:{ watch:{
...@@ -185,6 +185,7 @@ export default { ...@@ -185,6 +185,7 @@ export default {
}, },
onSuccess(){ onSuccess(){
this.showOfferProdId = null this.showOfferProdId = null
this.showCommissionProd = null
} }
}, },
computed: { computed: {
......
...@@ -153,7 +153,7 @@ import { getTradeCityList } from '@/api/ecw/region' ...@@ -153,7 +153,7 @@ import { getTradeCityList } from '@/api/ecw/region'
import Transfer from '@/views/ecw/order/components/Transfer' import Transfer from '@/views/ecw/order/components/Transfer'
import Release from './components/Release' import Release from './components/Release'
import CargoControlEdit from './components/CargoControlEdit' import CargoControlEdit from './components/CargoControlEdit'
import { getCargoControlOrderPage, batchReview } from "@/api/ecw/orderCargoControl" import { getCargoControlOrderPage, batchReview, orderReview } from "@/api/ecw/orderCargoControl"
import TransferCargo from '@/views/ecw/order/components/TransferCargo' import TransferCargo from '@/views/ecw/order/components/TransferCargo'
import Fallback from './components/Fallback' import Fallback from './components/Fallback'
......
<!--拆单审核中的申请信息部分-->
<template>
<div v-if="order">
<el-descriptions :column="3">
<el-descriptions-item label="订单号">{{detail.orderNo}}</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item>
<el-descriptions-item label="出货方式">
{{channelName}}
</el-descriptions-item>
<el-descriptions-item label="订单状态">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" />
</el-descriptions-item>
<el-descriptions-item label="唛头">{{order.marks}}</el-descriptions-item>
<el-descriptions-item label="始发仓">{{$l(order.logisticsInfoDto, 'startTitle')}}</el-descriptions-item>
<el-descriptions-item label="目的仓">{{$l(order.logisticsInfoDto, 'destTitle')}}</el-descriptions-item>
<!-- 放货修改 -->
<el-descriptions-item label="放货件数" v-if="applyType == 7">
{{detail.pickNum}}{{$t('')}} {{detail.currentPickNum}}
</el-descriptions-item>
<!-- 反复核 -->
<el-descriptions-item label="申请原因" v-if="applyType == 8">
<dict-tag :type="DICT_TYPE.ECW_PICK_RECURRENT_NUCLEAR_TYPE" :value="detail.recurrentNuclearType" />
</el-descriptions-item>
<!-- 调货 -->
<el-descriptions-item label="申请原因" v-if="applyType == 9">
EC0063600N调为EC0063094N进行放货,放货箱数为:6,EC0063095N进行放货,放货箱数为:4,EC0063096N进行放货,放货箱数为:2,备注:123123
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
import {getPickUpdateApproveInfo} from '@/api/ecw/orderCargoControl'
import {getOrder} from '@/api/ecw/order'
import {getChannelListByIds} from '@/api/ecw/channel'
import {parseTime} from '@/utils/ruoyi'
export default {
filters: {parseTime},
props:{
id: [String, Number],
applyType: Number, // 申请类型 7 放货修改申请 8 放货反复核申 9 调货审核
},
data(){
return {
detail: null,
order: null,
channels: [],
channelName: '/'
}
},
watch:{
id(){
this.getData()
}
},
computed:{
jsonParse(){
return d => {
return JSON.parse(d)
}
},
getChannelName(){
return id => {
let channel = this.channels.find(item => item.channelId == id)
return channel ? channel.nameZh : '/'
}
}
},
created(){
if(this.id){
this.getData()
}
},
methods:{
getData(){
getPickUpdateApproveInfo({approveId: this.id}).then(res => {
this.detail = res.data
return getOrder(this.detail.orderId)
}).then(res => {
this.order = res.data
this.getChannel()
})
},
getChannel(){
if(!this.order || !this.order.channelId) return
getChannel(this.order.channelId).then(res => {
this.channelName = this.$l(res.data, 'name')
})
},
}
}
</script>
<style scoped lang="scss">
.title{
padding: 10px 0;
span{
font-size: 14px;
font-weight: bold;
}
}
</style>
\ No newline at end of file
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('收货人电话')"> <el-form-item :label="$t('收货人电话')">
+{{info.consigneeCountryCode}} {{info.consigneePhone}} +{{info.consigneeCountryCode.replace(/\+/g, '')}} {{info.consigneePhone}}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
......
...@@ -76,6 +76,9 @@ ...@@ -76,6 +76,9 @@
<el-descriptions-item :label="$t('单证报关')"> <el-descriptions-item :label="$t('单证报关')">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" /> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('出单方式')">
<dict-tag :type="DICT_TYPE.ECW_SUING_METHOD" :value="order.issuingMethod" />
</el-descriptions-item>
<el-descriptions-item :label="$t('代收货款')"> <el-descriptions-item :label="$t('代收货款')">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCollection" /> <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCollection" />
</el-descriptions-item> </el-descriptions-item>
......
...@@ -216,19 +216,19 @@ ...@@ -216,19 +216,19 @@
<div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div> <div class="card-title" style="padding:20px 0;">{{$t('合计')}}</div>
<el-descriptions :column="6" border> <el-descriptions :column="6" border>
<el-descriptions-item :label="$t('总件数')"> <el-descriptions-item :label="$t('总件数')">
{{sum.totalNum || 0}} {{sum.totalNum.toFixed()}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总体积')"> <el-descriptions-item :label="$t('总体积')">
{{sum.totalVolume || 0}}m³ {{sum.totalVolume.toFixed()}}m³
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总重量')"> <el-descriptions-item :label="$t('总重量')">
{{sum.totalWeight || 0}}kg {{sum.totalWeight.toFixed()}}kg
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总数量')"> <el-descriptions-item :label="$t('总数量')">
{{sum.totalQuatity || 0}} {{sum.totalQuatity.toFixed() || 0}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总货值') + '(RMB)'"> <el-descriptions-item :label="$t('总货值') + '(RMB)'">
{{sum.totalWorth || 0}}元 {{sum.totalWorth.toFixed() || 0}}元
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('保价费')"> <el-descriptions-item :label="$t('保价费')">
{{fee.insuranceFee || 0}} {{$t('美元')}} {{fee.insuranceFee || 0}} {{$t('美元')}}
...@@ -518,6 +518,8 @@ import ChooseContactDialog from '@/components/ChooseContactDialog' ...@@ -518,6 +518,8 @@ import ChooseContactDialog from '@/components/ChooseContactDialog'
import QuickCreateCustomer from '@/components/QuickCreateCustomer' import QuickCreateCustomer from '@/components/QuickCreateCustomer'
import {calculationPrice} from '@/api/ecw/product' import {calculationPrice} from '@/api/ecw/product'
import SupplierSelector from '@/components/SupplierSelector' import SupplierSelector from '@/components/SupplierSelector'
import Decimal from 'decimal.js'
// 缓存默认的表单数据 // 缓存默认的表单数据
let defaultFormData = null let defaultFormData = null
...@@ -653,19 +655,18 @@ export default { ...@@ -653,19 +655,18 @@ export default {
}, },
sum(){ sum(){
let sum = { let sum = {
totalNum: 0, totalNum: new Decimal(0),
totalVolume: 0, totalVolume: new Decimal(0),
totalWeight: 0, totalWeight: new Decimal(0),
totalWorth: 0, totalWorth: new Decimal(0),
totalQuatity: 0 totalQuatity: new Decimal(0)
} }
this.form.orderItemVOList.forEach(item => { this.form.orderItemVOList.forEach(item => {
sum.totalNum += parseInt(item.num) || 0 sum.totalNum = sum.totalNum.plus(item.num || 0)
sum.totalVolume += (parseFloat(item.volume) || 0) // * (parseInt(item.num) || 0) sum.totalVolume = sum.totalVolume.plus(item.volume || 0)
sum.totalWeight += (parseFloat(item.weight) || 0) // * (parseInt(item.num) || 0) sum.totalWeight = sum.totalWeight.plus(item.weight || 0)
sum.totalWorth += parseFloat(item.worth) || 0 sum.totaltotalWorthNum = sum.totalWorth.plus(item.worth || 0)
sum.totalQuatity += parseInt(item.quantity) || 0 sum.totalQuatity = sum.totalQuatity.plus(item.quantity || 0)
}) })
return sum return sum
}, },
...@@ -769,7 +770,7 @@ export default { ...@@ -769,7 +770,7 @@ export default {
this.form.type = this.form.type ? this.form.type.split(',').filter(item => item != '') : [] this.form.type = this.form.type ? this.form.type.split(',').filter(item => item != '') : []
this.$set(this.form, 'consignorCompany', res.data.consignorVO.company) this.$set(this.form, 'consignorCompany', res.data.consignorVO.company)
this.$set(this.form, 'consignorContactsId', res.data.consignorVO.customerContactsId) this.$set(this.form, 'consignorContactsId', res.data.consignorVO.customerContactsId)
this.$set(this.form, 'consignorCountryCode', res.data.consignorVO.countryCode) this.$set(this.form, 'consignorCountryCode', res.data.consignorVO.countryCode.replace('+', ''))
this.$set(this.form, 'consignorEmail', res.data.consignorVO.email) this.$set(this.form, 'consignorEmail', res.data.consignorVO.email)
this.$set(this.form, 'consignorId', res.data.consignorVO.customerId) this.$set(this.form, 'consignorId', res.data.consignorVO.customerId)
this.$set(this.form, 'consignorName', res.data.consignorVO.name) this.$set(this.form, 'consignorName', res.data.consignorVO.name)
...@@ -777,7 +778,7 @@ export default { ...@@ -777,7 +778,7 @@ export default {
this.$set(this.form, 'consigneeCompany', res.data.consigneeVO.company) this.$set(this.form, 'consigneeCompany', res.data.consigneeVO.company)
this.$set(this.form, 'consigneeContactsId', res.data.consigneeVO.customerContactsId) this.$set(this.form, 'consigneeContactsId', res.data.consigneeVO.customerContactsId)
this.$set(this.form, 'consigneeCountryCode', res.data.consigneeVO.countryCode) this.$set(this.form, 'consigneeCountryCode', res.data.consigneeVO.countryCode.replace('+', ''))
this.$set(this.form, 'consigneeEmail', res.data.consigneeVO.email) this.$set(this.form, 'consigneeEmail', res.data.consigneeVO.email)
this.$set(this.form, 'consigneeId', res.data.consigneeVO.customerId) this.$set(this.form, 'consigneeId', res.data.consigneeVO.customerId)
this.$set(this.form, 'consigneeName', res.data.consigneeVO.name) this.$set(this.form, 'consigneeName', res.data.consigneeVO.name)
...@@ -792,7 +793,7 @@ export default { ...@@ -792,7 +793,7 @@ export default {
} }
this.$set(this.form, this.contactChooseType + 'Company', contact.company) this.$set(this.form, this.contactChooseType + 'Company', contact.company)
this.$set(this.form, this.contactChooseType + 'ContactsId', contact.customerContactsId) this.$set(this.form, this.contactChooseType + 'ContactsId', contact.customerContactsId)
this.$set(this.form, this.contactChooseType + 'CountryCode', contact.areaCode) this.$set(this.form, this.contactChooseType + 'CountryCode', contact.areaCode.replace('+', ''))
this.$set(this.form, this.contactChooseType + 'Email', contact.email) this.$set(this.form, this.contactChooseType + 'Email', contact.email)
this.$set(this.form, this.contactChooseType + 'Id', contact.customerId) this.$set(this.form, this.contactChooseType + 'Id', contact.customerId)
this.$set(this.form, this.contactChooseType + 'Name', contact.contactsName) this.$set(this.form, this.contactChooseType + 'Name', contact.contactsName)
......
This diff is collapsed.
...@@ -159,7 +159,7 @@ export default { ...@@ -159,7 +159,7 @@ export default {
handEdit(row){ handEdit(row){
if(row.orderExceptionType=='order_no_quote_exception'){ if(row.orderExceptionType=='order_no_quote_exception'){
let url = '../../lineProject/product-price/edit' let url = '../../lineProject/product-price/edit?product_id=' + row.orderItemId
if(row.orderItem){ if(row.orderItem){
getProduct(row.orderItemId).then(res=>{ getProduct(row.orderItemId).then(res=>{
......
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