Commit ff8e0474 authored by 我在何方's avatar 我在何方
parents 1d29e338 dd8f3692
Stack trace:
Frame Function Args
00800000010 0018006401E (001802839A0, 0018026EFD1, 00000000059, 000FFFFB700)
00800000010 0018004973A (00800000010, 00100000000, 00000000000, 00000000001)
00800000010 00180049772 (00000000000, 00000000000, 00000000059, 00180354100)
00800000010 00180070FE9 (00000000000, 000FFFFC7D0, 0000000000B, 00000000000)
00800000010 001800712A0 (00000000003, 000FFFFC8F0, 00180045BCF, 000FFFFC8F0)
00800000010 00180072AB9 (000FFFFC8F0, 00180271795, 001801004A7, 0000000000D)
00800000010 0018005B2A3 (7FF8018B1490, 00000000000, 00000000000, 000FFFFFFFF)
00800000010 0018005C655 (00800029390, 1D400000000, 00000000000, 00000000008)
00800000010 0018005CB3F (000FFFFCCE0, 000FFFFCC45, 00000000000, 205C745C615C635C)
000FFFFCBBC 0018005CF2F (635C655C205C265C, 3E5C205C6F5C685C, 765C655C645C2F5C, 795C745C745C2F5C)
000FFFFCCE0 00180049EE8 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 00180048846 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 001800488F4 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
Stack trace:
Frame Function Args
00800000010 0018006401E (001802839A0, 0018026EFD1, 00000000059, 000FFFFB710)
00800000010 0018004973A (00800000010, 00100000000, 00000000000, 00000000001)
00800000010 00180049772 (00000000000, 00000000000, 00000000059, 00180353FD0)
00800000010 00180070FE9 (00000000002, 000FFFFC7E0, 0000000000B, 00000000000)
00800000010 001800712A0 (000FFFFCBC0, 00800000010, 00180045B55, 000FFFFC900)
00800000010 00180072AB9 (000FFFFC900, 00180271795, 001801004A7, 0000000000D)
00800000010 0018005B2A3 (7FF8018B1490, 00000000000, 00000000000, 040FFFFFFFF)
00800000010 0018005C655 (00000000002, 00180350D08, 00000000002, 00000000008)
00800000010 0018005CB3F (000FFFFCC9C, 000FFFFCCE0, 000FFFFCC9D, 000FFFFCC00)
000FFFFCBCC 0018005CF2F (6D5C2D5C6C5C615C, 675C615C6E5C615C, 635C2D5C725C655C, 205C655C725C6F5C)
000FFFFCCE0 00180049EE8 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 00180048846 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 001800488F4 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
...@@ -52,3 +52,28 @@ export function exportFutureBoxExcel(query) { ...@@ -52,3 +52,28 @@ export function exportFutureBoxExcel(query) {
responseType: 'blob' responseType: 'blob'
}) })
} }
// 根据运输方式ID得到已封柜方数
export function getBoxedVolume(params){
return request({
url: '/ecw/future-box/getBoxedVolume',
method: 'get',
params
})
}
// 根据运输方式ID得到待入仓方数
export function getToBeWareHousedVolume(params){
return request({
url: '/ecw/future-box/getToBeWareHousedVolume',
method: 'get',
params
})
}
// 根据运输方式ID得到已入仓方数
export function getWareHousedVolume(params){
return request({
url: '/ecw/future-box/getWareHousedVolume',
method: 'get',
params
})
}
\ No newline at end of file
...@@ -106,3 +106,21 @@ export function getOfferSpecialByApproveId(approveId) { ...@@ -106,3 +106,21 @@ export function getOfferSpecialByApproveId(approveId) {
}) })
} }
// 取消报价管理
export function cancel(id) {
return request({
url: '/ecw/offer/cancel',
method: 'delete',
params: {id}
})
}
// 恢复取消的报价管理
export function recovery(id) {
return request({
url: '/ecw/offer/recovery',
method: 'delete',
params: {id}
})
}
\ No newline at end of file
...@@ -55,7 +55,7 @@ export default { ...@@ -55,7 +55,7 @@ export default {
}, },
methods:{ methods:{
handleQuery(){ handleQuery(){
// this.form.pageNo = 1 this.form.pageNo = 1
this.loadList() this.loadList()
}, },
loadList(){ loadList(){
......
...@@ -57,7 +57,8 @@ export default { ...@@ -57,7 +57,8 @@ export default {
}, },
remoteMethod(keyword){ remoteMethod(keyword){
let params = { let params = {
pageSize: 100 pageSize: 500,
companyType: this.companyType
} }
params.keyword = keyword params.keyword = keyword
this.loading = true this.loading = true
......
...@@ -12,10 +12,20 @@ const i18n = new VueI18n({ ...@@ -12,10 +12,20 @@ const i18n = new VueI18n({
} }
}) })
console.log({i18n}) console.log({i18n})
/*
用法
$l('title') => titleZh
$l(item, 'title') => item.titleZh
$l(null, 'title') => titleZh
$l() => Zh
*/
Vue.prototype.$l = (object, field = '') => { Vue.prototype.$l = (object, field = '') => {
let prefix = i18n.locale.split('_')[0] let prefix = i18n.locale.split('_')[0]
let append = prefix.charAt(0).toUpperCase() + prefix.toLowerCase().substr(1) let append = prefix.charAt(0).toUpperCase() + prefix.toLowerCase().substr(1)
// 如果object是null则返回字段名 if(typeof object == 'string'){
return object + append
}
// 如果object是null或者字符串则返回字段名
if(!object) return field + append if(!object) return field + append
return object[field + append] || object[field] return object[field + append] || object[field]
......
...@@ -17,7 +17,7 @@ const store = new Vuex.Store({ ...@@ -17,7 +17,7 @@ const store = new Vuex.Store({
tagsView, tagsView,
permission, permission,
settings, settings,
dict dict,
}, },
getters getters
}) })
......
...@@ -82,6 +82,26 @@ const mutations = { ...@@ -82,6 +82,26 @@ const mutations = {
} }
return false return false
}) })
},
DEL_LEFT_VIEWS: (state, view) => {
const index = state.visitedViews.findIndex(v => v.path === view.path)
if (index === -1) {
return
}
state.visitedViews = state.visitedViews.filter((item, idx) => {
if (idx >= index || (item.meta && item.meta.affix)) {
return true
}
const i = state.cachedViews.indexOf(item.name)
if (i > -1) {
state.cachedViews.splice(i, 1)
}
if(item.meta.link) {
const fi = state.iframeViews.findIndex(v => v.path === item.path)
state.iframeViews.splice(fi, 1)
}
return false
})
} }
} }
...@@ -176,6 +196,12 @@ const actions = { ...@@ -176,6 +196,12 @@ const actions = {
resolve([...state.visitedViews]) resolve([...state.visitedViews])
}) })
}, },
delLeftTags({ commit }, view){
return new Promise(resolve => {
commit('DEL_LEFT_VIEWS', view)
resolve([...state.visitedViews])
})
},
delCurrentView({ dispatch }){ delCurrentView({ dispatch }){
const view = router.history.current const view = router.history.current
return dispatch('delView', view).then(({visitedViews}) => { return dispatch('delView', view).then(({visitedViews}) => {
......
import store from '../store'
export default {
getChannels(){
if(!store.state.cache.channelList){
store.dispatch('cache/getChannelList')
}
return store.state.cache.channelList
}
}
\ No newline at end of file
...@@ -110,6 +110,7 @@ export const DICT_TYPE = { ...@@ -110,6 +110,7 @@ export const DICT_TYPE = {
ECW_RELEASE_STATUS: 'release_status', // 放货状态 ECW_RELEASE_STATUS: 'release_status', // 放货状态
ECW_PICK_RECURRENT_NUCLEAR_TYPE: 'PICK_RECURRENT_NUCLEAR_TYPE', // 放货反复核类型 ECW_PICK_RECURRENT_NUCLEAR_TYPE: 'PICK_RECURRENT_NUCLEAR_TYPE', // 放货反复核类型
ECW_COST_FEE_TYPE: 'cost_fee_type', // 清单费用类型 ECW_COST_FEE_TYPE: 'cost_fee_type', // 清单费用类型
ECW_PRICE_AUDIT_STATUS: 'price_audit_status', // 路线价格审核状态
//--------ecw--------- //--------ecw---------
CUSTOMER_STATUS: 'customer_status', CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source', CUSTOMER_SOURCE: 'customer_source',
......
...@@ -131,7 +131,7 @@ import {approveTask, getTaskListByProcessInstanceId, rejectTask, updateTaskAssig ...@@ -131,7 +131,7 @@ import {approveTask, getTaskListByProcessInstanceId, rejectTask, updateTaskAssig
import {getDate} from "@/utils/dateUtils"; import {getDate} from "@/utils/dateUtils";
import {listSimpleUsers} from "@/api/system/user"; import {listSimpleUsers} from "@/api/system/user";
import {getActivityList} from "@/api/bpm/activity"; import {getActivityList} from "@/api/bpm/activity";
import specialDetail from "@/views/ecw/offer/components/specialDetail" import SpecialDetail from "@/views/ecw/offer/components/specialDetail"
import warehouseDetails from "@/views/ecw/order/components/warehouseDetails"; 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'
...@@ -142,7 +142,7 @@ export default { ...@@ -142,7 +142,7 @@ export default {
name: "ProcessInstanceDetail", name: "ProcessInstanceDetail",
components: { components: {
Parser, Parser,
specialDetail, SpecialDetail,
warehouseDetails, warehouseDetails,
shippingDetail, shippingDetail,
SplitDetail, SplitDetail,
......
This diff is collapsed.
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button></div> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button></div>
<div style="flex: 1; text-align: right;"> <div style="flex: 1; text-align: right;">
<router-link :to="'/customerCommissionInfo/'+ 0 "> <router-link :to="'/customerCommissionInfo/'+ 0 ">
<el-button>佣金设置</el-button> <el-button type="primary">佣金设置</el-button>
</router-link> </router-link>
</div> </div>
</div> </div>
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200px"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button> <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button>-->
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -194,6 +194,9 @@ export default { ...@@ -194,6 +194,9 @@ export default {
}, },
}, },
created() { created() {
if(this.$route.query.customerId){
this.queryParams.customerId = this.$route.query.customerId
}
this.getList(); this.getList();
getTradeCityList().then(res => { getTradeCityList().then(res => {
this.tradeCityList = res.data this.tradeCityList = res.data
......
<template> <template>
<el-select v-if="options" v-model="selectVal" placeholder="请选择"> <el-select v-if="options" v-model="selectVal" placeholder="请选择">
<el-option v-if="allShow" label="全部" :value='0'></el-option>
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item[valueKey]" :key="item[valueKey]"
...@@ -26,6 +27,10 @@ export default { ...@@ -26,6 +27,10 @@ export default {
type:String, type:String,
default: 'value', default: 'value',
}, },
allShow:{
type:Boolean,
default:false
}
}, },
data(){ data(){
return{ return{
......
<template>
<el-dialog visible :close-on-click-modal="false" :before-close="closeDialog" :title="$t('佣金规则申请')">
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-form-item :label="$t('商品类型')">
<span>{{ getProductAttrNameById(form.productType) }}</span>
</el-form-item>
<el-form-item :label="$t('商品名称')">
<span>{{ form.prodTitleZh }}</span>
</el-form-item>
<el-form-item :label="$t('英文名称')">
<span>{{ form.prodTitleEn }}</span>
</el-form-item>
<el-form-item :label="$t('线路')">
{{ `【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)}】${ getChannelNameById(form.channelId) }从【${form.departureName}】发往【${form.objectiveName}】`}}
</el-form-item>
<el-row v-if="!form.charging">
<el-col :span="12">
<el-form-item :label="$t('运费')">
{{form.orgSeaFreight}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('清关费')">
{{form.orgClearanceFreight}} {{ currentMap[form.orgClearanceFreightCurrency] }} / {{ unitMap[form.orgClearanceFreightVolume] }}
</el-form-item>
</el-col>
</el-row>
<el-form-item :label="$t('全包价')" v-if="form.charging">
{{form.orgSeaFreight}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}
</el-form-item>
<el-form-item :label="$t('佣金类型')" prop="commissionType">
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" v-model="form.commissionType" form-type="radio" />
</el-form-item>
<!-- 明佣或者明佣+暗佣才显示 -->
<el-form-item label="明佣佣金" v-if="form.commissionType == 1 || form.commissionType == 3">
<el-input v-model.number="form.lightCommissionAmount" placeholder="" class="w-100"></el-input>
{{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}
</el-form-item>
<!-- 明佣+暗佣才显示 -->
<el-form-item label="暗佣佣金" v-if="form.commissionType == 3">
<el-input v-model.number="form.shadeCommissionAmount" placeholder="" class="w-100"></el-input>
{{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}
</el-form-item>
<!-- 无佣金不显示 -->
<div class="pl-50" v-if="form.commissionType != 0">
<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 == 2">
暗佣:// TODO {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}
<el-link type="primary" @click.native="$router.push('/customer/customerCommission?customerId=' + customerId)">去设置</el-link>
</div>
<div v-if="form.commissionType == 1 || form.commissionType == 3">销售价:{{form.orgSeaFreight + form.shadeCommissionAmount + form.lightCommissionAmount }} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}</div>
<div v-if="form.commissionType == 3">实际佣金返点:{{form.shadeCommissionAmount + form.lightCommissionAmount }} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}</div>
</div>
</el-form>
<div class="page-title">审批流程</div>
<work-flow xmlkey="sheet_sale" v-model="ccIdArr" />
<div v-if="!form.applyStatus">
<el-button type="primary" @click="handleSubmit">提交</el-button>
</div>
<div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
<dict-tag :type="DICT_TYPE.APPLY_STATUS" :value="form.applyStatus" />
</el-button>
</div>
</el-dialog>
</template>
<script>
import {createOfferSpecial, getOfferSpecial, getOfferSpecialByApproveId} from "@/api/ecw/offer"
import {DICT_TYPE, getDictDataLabel} from "@/utils/dict"
import DictSelector from "@/components/DictSelector"
import {getUnitList} from "@/api/ecw/unit"
import {getChannelList} from "@/api/ecw/channel"
import { getCurrencyList } from '@/api/ecw/currency'
import { getProductAttrList } from '@/api/ecw/productAttr'
import WorkFlow from '@/components/WorkFlow'
export default {
name: "Commossion",
props: {
offerProdId: Number,
customerId: Number
},
components: {
DictSelector, WorkFlow
},
created() {
// 查看详情,列表进来的
if(this.offerProdId){
this.getOfferSpecial()
}
getUnitList().then(res => this.unitList = res.data)
getChannelList().then(res => this.channelList = res.data)
getCurrencyList().then(res => this.currencyList = res.data)
getProductAttrList().then(res => this.productAttrList = res.data)
},
data() {
return {
getDictDataLabel,
DICT_TYPE,
unitList:[],
channelList:[],
currencyList:[],
productAttrList:[],
ccIdArr: [],
form: {
type: 2
},
rules:{
commissionType : {required: true, message: '请选择佣金类型'},
}
}
},
computed: {
// 根据渠道id显示渠道名
getChannelNameById(){
return channelId => {
const s = this.channelList.find(item => item.channelId == channelId) ?. nameZh
return s ? '' + s + '' : ''
}
},
currentMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
},
watch:{
ccIdArr(){
this.$set(this.form, 'ccIds', this.ccIdArr.join(','))
},
'form.commissionType'(val){
this.$set(this.form, 'lightCommissionAmount', 0)
this.$set(this.form, 'shadeCommissionAmount', 0)
}
},
methods: {
handleSubmit(){
this.$refs.form.validate().then(res => {
// 接口运费不能为空,所以这里提交了运费字段
createOfferSpecial(Object.assign({
clearanceFreight: this.form.orgClearanceFreight,
seaFreight: this.form.orgSeaFreight
}, this.form, {type: 2})).then(res => {
this.$message.success(this.$t('提交成功'))
this.$emit('success')
})
})
},
getOfferSpecial(){
getOfferSpecial(this.offerProdId, {type: 2}).then(r => {
this.form = r.data
})
},
getProductAttrNameById(id){
return this.productAttrList.find(e => e.id === id)?.attrName || ''
},
closeDialog(){
this.$emit('close')
}
}
}
</script>
...@@ -55,9 +55,14 @@ ...@@ -55,9 +55,14 @@
</el-form> </el-form>
<div class="page-title">审批流程</div> <div class="page-title">审批流程</div>
<work-flow xmlkey="sheet_sale" v-model="ccIdArr" /> <work-flow xmlkey="sheet_sale" v-model="ccIdArr" />
<div> <div v-if="!form.applyStatus">
<el-button type="primary" @click="handleSubmit">提交</el-button> <el-button type="primary" @click="handleSubmit">提交</el-button>
</div> </div>
<div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
<dict-tag :type="DICT_TYPE.APPLY_STATUS" :value="form.applyStatus" />
</el-button>
</div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -116,10 +121,9 @@ export default { ...@@ -116,10 +121,9 @@ export default {
methods: { methods: {
handleSubmit(){ handleSubmit(){
this.$refs.form.validate().then(res => { this.$refs.form.validate().then(res => {
console.log(this.form.type)
createOfferSpecial(Object.assign({}, this.form, {type: 1})).then(res => { createOfferSpecial(Object.assign({}, this.form, {type: 1})).then(res => {
this.$message.success(this.$t('提交成功')) this.$message.success(this.$t('提交成功'))
this.$emit('success')
}) })
}) })
}, },
......
...@@ -3,14 +3,12 @@ ...@@ -3,14 +3,12 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item :label="$t('编号')" prop="number"> <el-form-item :label="$t('编号')" prop="searchNumber">
<el-input v-model="queryParams.number" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.searchNumber" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery"/>
<!--// TODO -->
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户')" prop="orderNo"> <el-form-item :label="$t('客户')" prop="searchCustomer">
<el-input v-model="queryParams.orderNo" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/>
<!--// TODO -->
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')" prop="orderNo"> <el-form-item :label="$t('创建时间')" prop="orderNo">
...@@ -30,19 +28,17 @@ ...@@ -30,19 +28,17 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('运输方式')" prop="orderNo"> <el-form-item :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('商品')" prop="orderNo"> <el-form-item :label="$t('商品')" prop="prodTitle">
<el-input v-model="queryParams.product" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.prodTitle" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery"/>
<!--// TODO -->
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货')" prop="control"> <el-form-item :label="$t('控货')" prop="control">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" /> <dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="orderNo"> <el-form-item :label="$t('客户经理')" prop="followUpSalesmanId">
<user-selector v-model="queryParams.salesman" /> <user-selector v-model="queryParams.followUpSalesmanId" />
<!--// TODO -->
</el-form-item> </el-form-item>
<el-form-item :label="$t('销售阶段')" prop="status"> <el-form-item :label="$t('销售阶段')" prop="status">
<dict-selector :type="DICT_TYPE.ECW_OFFER_STATUS" v-model="queryParams.status" /> <dict-selector :type="DICT_TYPE.ECW_OFFER_STATUS" v-model="queryParams.status" />
...@@ -121,18 +117,19 @@ ...@@ -121,18 +117,19 @@
4 赢单 删除 4 赢单 删除
5 输单 删除 5 输单 删除
6 完成 删除 6 完成 删除
7 跟进中 编辑、跟进、结果、特价、取消、 删除
--> -->
<el-dropdown> <el-dropdown>
<el-button icon="el-icon-plus" circle type="primary"></el-button> <el-button icon="el-icon-plus" circle type="primary"></el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="$router.push('detail?offerId=' + scope.row.offerId)" >{{$t('详情')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('detail?offerId=' + scope.row.offerId)" >{{$t('详情')}}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('edit?id=' + scope.row.offerId)" v-if="[1,2,3].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('edit?id=' + scope.row.offerId)" v-if="[1,2,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('logList?offerId=' + scope.row.offerId)" v-if="[1,3].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('跟进')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('logList?offerId=' + 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="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" v-if="[3].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('结果')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" 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].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="$alert('// TODO')" v-if="[1,3].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="$alert('// TODO')" 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="$alert('// TODO')" v-if="[1,2,3,4,5,6].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="[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>
...@@ -184,7 +181,7 @@ ...@@ -184,7 +181,7 @@
</template> </template>
<script> <script>
import { deleteOffer, getOfferPage, exportOfferExcel } from "@/api/ecw/offer"; import { deleteOffer, getOfferPage, exportOfferExcel,cancel, recovery } from "@/api/ecw/offer";
import { getCurrencyList } from '@/api/ecw/currency'; import { getCurrencyList } from '@/api/ecw/currency';
import {getTradeCityList} from '@/api/ecw/region' import {getTradeCityList} from '@/api/ecw/region'
import UserSelector from '@/components/UserSelector' import UserSelector from '@/components/UserSelector'
...@@ -342,6 +339,24 @@ export default { ...@@ -342,6 +339,24 @@ export default {
this.$download.excel(response, '${table.classComment}.xls'); this.$download.excel(response, '${table.classComment}.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
},
cancel(id){
this.doAction('确定要取消此报价单么?', cancel, id);
},
recovery(id){
this.doAction('确定要恢复此报价单么?', recovery, id);
},
deleteOffer(id){
this.doAction('确定要删除此报价单么?', deleteOffer, id);
},
doAction(tips, action, id){
this.$confirm(tips).then(res => {
return action(id)
})
.then(() => {
this.$message.success('操作成功')
this.handleQuery()
})
} }
} }
}; };
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<el-descriptions-item :label="$t('出货渠道')"> <el-descriptions-item :label="$t('出货渠道')">
{{channel ? $l(channel, 'name') : '/'}} {{channel ? $l(channel, 'name') : '/'}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">{{offer.createTime}}</el-descriptions-item> <el-descriptions-item :label="$t('创建时间')">{{offer.createTime}}</el-descriptions-item>
<el-descriptions-item :label="$t('状态')"> <el-descriptions-item :label="$t('状态')">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="offer.status" /> <dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="offer.status" />
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<dict-tag :value="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" /> <dict-tag :value="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:label="$t('原价')"> :label="$t('原价')">
<template v-slot="{row}"> <template v-slot="{row}">
...@@ -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="$alert('// TODO')">{{$t('佣金规则')}}</el-button> <el-button size="mini" type="text" @click="showCommissionProdId=row.offerProdId">{{$t('佣金规则')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -83,7 +83,8 @@ ...@@ -83,7 +83,8 @@
<el-button type="primary">申请泡货优惠</el-button> <el-button type="primary">申请泡货优惠</el-button>
<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" />
</el-card> </el-card>
</div> </div>
</template> </template>
...@@ -97,11 +98,13 @@ import {getProductAttrList} from "@/api/ecw/productAttr" ...@@ -97,11 +98,13 @@ import {getProductAttrList} from "@/api/ecw/productAttr"
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import {listByIds} from '@/api/ecw/region' import {listByIds} from '@/api/ecw/region'
import {getChannel} from '@/api/ecw/channel' import {getChannel} from '@/api/ecw/channel'
import specialDiscount from '@/views/ecw/offer/components/specialDiscount' import SpecialDiscount from '@/views/ecw/offer/components/specialDiscount'
import Commossion from '@/views/ecw/offer/components/Commossion'
export default { export default {
name: "OfferSpecial", name: "OfferSpecial",
components: { components: {
specialDiscount SpecialDiscount, Commossion
}, },
props: { props: {
offerId: String offerId: String
...@@ -133,7 +136,8 @@ export default { ...@@ -133,7 +136,8 @@ export default {
objective: null, objective: null,
departure: null, departure: null,
channel: null, // 渠道信息 channel: null, // 渠道信息
showOfferProdId: null // 显示申请优惠的产品id showOfferProdId: null, // 显示申请优惠的产品id
showCommissionProdId: null, // 修改佣金规则的产品ID
}; };
}, },
watch:{ watch:{
...@@ -157,7 +161,7 @@ export default { ...@@ -157,7 +161,7 @@ export default {
}) })
}, },
getChannel(){ getChannel(){
if(!this.offer.channelId) return if(!this.offer.channelId) return
getChannel(this.offer.channelId).then(res => { getChannel(this.offer.channelId).then(res => {
this.channel = res.data this.channel = res.data
}) })
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
<transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder=null" /> <transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder=null" />
<release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" /> <release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" />
<transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" @success="onReansferCargoSuccess" /> <transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" @success="onTransferCargoSuccess" />
<fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder=null" @success="onFallbackSuccess" :index="null" /> <fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder=null" @success="onFallbackSuccess" :index="null" />
</div> </div>
</template> </template>
...@@ -296,7 +296,7 @@ export default { ...@@ -296,7 +296,7 @@ export default {
this.showFallbackOrder = null this.showFallbackOrder = null
this.handleQuery() this.handleQuery()
}, },
onReansferCargoSuccess(){ onTransferCargoSuccess(){
this.showTransferCargoOrderId = null this.showTransferCargoOrderId = null
this.handleQuery() this.handleQuery()
} }
......
...@@ -142,7 +142,13 @@ export default { ...@@ -142,7 +142,13 @@ export default {
}, },
methods:{ methods:{
loadData(){ loadData(){
getRleaseInfo(this.orderId).then(res => this.detail = res.data) getRleaseInfo(this.orderId).then(res => {
this.detail = res.data
this.$set(this.formData, 'consigneeName', res.data.consigneeName)
this.$set(this.formData, 'consigneeCountryCode', '+' + res.data.consigneeCountryCode)
this.$set(this.formData, 'consigneePhone', res.data.consigneePhone)
this.$set(this.formData, 'consigneeEmail', res.data.consigneeEmail)
})
}, },
closeDialog(){ closeDialog(){
this.show = false this.show = false
......
...@@ -24,7 +24,9 @@ ...@@ -24,7 +24,9 @@
<el-table :data="selectedOrders" border> <el-table :data="selectedOrders" border>
<el-table-column :label="$t('订单号')"> <el-table-column :label="$t('订单号')">
{{detail.orderNo}} <template slot-scope="{row}">
{{row.orderNo}}
</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}">
......
...@@ -128,15 +128,15 @@ ...@@ -128,15 +128,15 @@
<template v-if="row.charging ==1"> <template v-if="row.charging ==1">
<template v-if="!row.seaFreight">未报价</template> <template v-if="!row.seaFreight">未报价</template>
<template>{{$t('全包价')}} {{row.seaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</template> <template>{{$t('全包价')}} {{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</template>
</template> </template>
<template v-else-if="!row.seaFreight && !row.clearanceFreight">未报价</template> <template v-else-if="!row.seaFreight && !row.clearanceFreight">未报价</template>
<template v-else> <template v-else>
<div> <div>
{{$t('运费')}}{{row.seaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}} {{$t('运费')}}{{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
</div> </div>
<div> <div>
{{$t('清关费')}}{{row.clearanceFreight}} {{currentcyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}} {{$t('清关费')}}{{row.oneClearanceFreight}} {{currentcyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}
</div> </div>
</template> </template>
</template> </template>
......
...@@ -93,8 +93,8 @@ ...@@ -93,8 +93,8 @@
<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" @click="addProduct(null)" :disabled="!form.lineId">{{$t('添加货物')}}</el-button> <el-button type="primary" size="mini" @click="addProduct(null)" :disabled="!canAddProduct">{{$t('添加货物')}}</el-button>
<el-button type="primary" size="mini" @click="showBatchImportDialog=true" :disabled="!form.lineId">{{$t('批量添加货物')}}</el-button> <el-button type="primary" size="mini" @click="showBatchImportDialog=true" :disabled="!canAddProduct">{{$t('批量添加货物')}}</el-button>
</div> </div>
<el-table :data="form.orderItemVOList" border class="product-list"> <el-table :data="form.orderItemVOList" border class="product-list">
<el-table-column :label="$t('序号')" width="60px" fixed> <el-table-column :label="$t('序号')" width="60px" fixed>
...@@ -111,13 +111,13 @@ ...@@ -111,13 +111,13 @@
}" }"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<product-selector v-model="scope.row.prodId" @change="onProductChange(scope.row, $event)" :disabled="!form.lineId || !productEditable" /> <product-selector v-model="scope.row.prodId" @change="onProductChange(scope.row, $event)" :disabled="!canAddProduct || !productEditable" />
</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="scope"> <template slot-scope="scope">
<product-selector lang="En" v-model="scope.row.prodId" @change="onProductChange(scope.row, $event)" :disabled="!form.lineId || !productEditable" /> <product-selector lang="En" v-model="scope.row.prodId" @change="onProductChange(scope.row, $event)" :disabled="!canAddProduct || !productEditable" />
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="商品类型" width="160px"> <!-- <el-table-column label="商品类型" width="160px">
...@@ -135,33 +135,33 @@ ...@@ -135,33 +135,33 @@
}" }"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<dict-selector v-model="scope.row.brandType" :type="DICT_TYPE.ECW_IS_BRAND" defaultable :disabled="!form.lineId || !productEditable" /> <dict-selector v-model="scope.row.brandType" :type="DICT_TYPE.ECW_IS_BRAND" defaultable :disabled="!canAddProduct || !productEditable" />
</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" :disabled="!form.lineId || !productEditable" /> <el-input v-model.number="row.num" :disabled="!canAddProduct || !productEditable" />
</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 :disabled="!form.lineId || !productEditable" /> <dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" defaultable :disabled="!canAddProduct || !productEditable" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('数量') + '(个)'" width="120px"> <el-table-column :label="$t('数量') + '(个)'" width="120px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model="row.quantity" type="number" :disabled="!form.lineId || !productEditable" /> <el-input v-model="row.quantity" type="number" :disabled="!canAddProduct || !productEditable" />
</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" :disabled="!form.lineId || !productEditable" /> <el-input v-model="row.volume" :disabled="!canAddProduct || !productEditable" />
</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" :disabled="!form.lineId || !productEditable" /> <el-input v-model="row.weight" :disabled="!canAddProduct || !productEditable" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('总货值') + '(RMB)'" width="100px"> <el-table-column :label="$t('总货值') + '(RMB)'" width="100px">
...@@ -173,13 +173,13 @@ ...@@ -173,13 +173,13 @@
}" }"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<el-input v-model="scope.row.worth" :disabled="!form.lineId" @input="calculationPrice" /> <el-input v-model="scope.row.worth" :disabled="!canAddProduct" @input="calculationPrice" />
</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)" :disabled="!form.lineId || !productEditable"> <el-checkbox-group v-model="row.prodAttrArr" @change="onProductAttrChange(row, $event)" :disabled="!canAddProduct || !productEditable">
<el-checkbox v-for="item in productAttrList" :label="item.id" :key="item.id">{{$l(item, 'attrName')}}</el-checkbox> <el-checkbox v-for="item in productAttrList" :label="item.id" :key="item.id">{{$l(item, 'attrName')}}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</template> </template>
...@@ -415,15 +415,12 @@ ...@@ -415,15 +415,12 @@
<div v-if="[3,4].indexOf(+form.transportId) > -1"> <div v-if="[3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('航空公司')"> <el-form-item :label="$t('航空公司')">
<!--待查询备选数据--> <supplier-selector v-model="form.airlineCompany" company-type="10" />
<el-select placeholder="" v-model="form.airlineCompany">
</el-select>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="[2].indexOf(+form.transportId) > -1"> <div v-if="[2].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('船公司')"> <el-form-item :label="$t('船公司')">
<el-select placeholder="" v-model="form.shippingCompany"> <supplier-selector v-model="form.shippingCompany" company-type="9" />
</el-select>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="[2,3,4].indexOf(+form.transportId) > -1"> <div v-if="[2,3,4].indexOf(+form.transportId) > -1">
...@@ -520,14 +517,14 @@ import AreaCodeSelector from '@/components/AreaCodeSelector' ...@@ -520,14 +517,14 @@ import AreaCodeSelector from '@/components/AreaCodeSelector'
import ChooseContactDialog from '@/components/ChooseContactDialog' 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'
// 缓存默认的表单数据 // 缓存默认的表单数据
let defaultFormData = null let defaultFormData = null
export default { export default {
name: "EcwOrderEdit", name: "EcwOrderEdit",
components: { components: {
ProductSelector, Selector, CustomerContactSelector, AreaSelector, FileUpload, AreaCodeSelector, ChooseContactDialog, QuickCreateCustomer ProductSelector, Selector, CustomerContactSelector, AreaSelector, FileUpload, AreaCodeSelector, ChooseContactDialog, QuickCreateCustomer, SupplierSelector
}, },
data() { data() {
return { return {
...@@ -689,6 +686,17 @@ export default { ...@@ -689,6 +686,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:{
...@@ -797,8 +805,13 @@ export default { ...@@ -797,8 +805,13 @@ export default {
let form = new FormData() let form = new FormData()
form.append('file', e.file) form.append('file', e.file)
orderImport(form).then(res => { orderImport(form).then(res => {
if(!this.importList.length){
return this.$message.error('无有效数据')
}
this.importList = res.data.list this.importList = res.data.list
this.$set(this.form, 'packingListUrl', res.data.packingListUrl) this.$set(this.form, 'packingListUrl', res.data.packingListUrl)
}) })
}, },
addToProductList(){ addToProductList(){
...@@ -831,7 +844,7 @@ export default { ...@@ -831,7 +844,7 @@ export default {
this.$set(row, 'link', value) this.$set(row, 'link', value)
}) })
}, },
onFileChoosed(e){ /* onFileChoosed(e){
window.choosed = e window.choosed = e
console.log('onFileChoosed', e) console.log('onFileChoosed', e)
...@@ -845,7 +858,7 @@ export default { ...@@ -845,7 +858,7 @@ export default {
window.zzexcel = zzexcel window.zzexcel = zzexcel
window.tableJson = xlsx.utils.sheet_to_json(zzexcel.Sheets[zzexcel.SheetNames[0]]) window.tableJson = xlsx.utils.sheet_to_json(zzexcel.Sheets[zzexcel.SheetNames[0]])
} }
}, }, */
onProductChange(row, product){ onProductChange(row, product){
console.log(product) console.log(product)
// row.goodsType = product ? product.typeId : null // row.goodsType = product ? product.typeId : null
......
...@@ -98,7 +98,8 @@ ...@@ -98,7 +98,8 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('体积/重量')" align="center"> <el-table-column :label="$t('体积/重量')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.volume+"m³/"+scope.row.weight+"kg"}}</span> <span v-if="scope.row.orderStatus >= 5 ">{{scope.row.volume+"m³/"+scope.row.weight+"kg"}}</span>
<span v-else>{{scope.row.totalVolume+"m³/"+scope.row.totalWeight+"kg"}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('运输方式/目的地')" align="center"> <el-table-column :label="$t('运输方式/目的地')" align="center">
......
...@@ -48,7 +48,8 @@ ...@@ -48,7 +48,8 @@
</div> </div>
</template> </template>
<script> <script>
import {getOrder, createOrderPickup} from '@/api/ecw/order' import {getOrder} from '@/api/ecw/order'
import {create} from '@/api/ecw/orderPickup'
import ImageUpload from '@/components/ImageUpload' import ImageUpload from '@/components/ImageUpload'
export default { export default {
components: {ImageUpload}, components: {ImageUpload},
...@@ -69,10 +70,10 @@ export default { ...@@ -69,10 +70,10 @@ export default {
}) })
}, },
submit(){ submit(){
createOrderPickup(Object.assign({orderId: this.order.orderNo}, this.form)).then(res => { create(Object.assign({orderId: this.order.orderNo}, this.form)).then(res => {
return this.$alert(res.message || this.$t('操作成功')) return this.$alert(res.message || this.$t('操作成功'))
}).then(res => { }).then(res => {
this.$router.back() this.$store.dispatch('tagsView/delCurrentView')
}) })
} }
} }
......
...@@ -36,45 +36,24 @@ ...@@ -36,45 +36,24 @@
</el-form-item> </el-form-item>
<el-form-item label="新运费" required style="width: 400px"> <el-form-item label="新运费" required style="width: 400px">
<el-input v-model="form.freight" type="number" class="input-with-select"> <el-input v-model="form.freight" type="number" class="input-with-select">
<el-select v-model="form.freightCurrency" placeholder="请选择" slot="prepend" style="width: 100px"> <div slot="prepend" style="width: 60px">{{ currentMap[form.freightCurrency] }}</div>
<el-option <div slot="append" style="width: 60px">{{ unitMap[form.freightVolume] }}</div>
v-for="item in currencyList"
:key="item.id"
:label="item.titleZh"
:value="item.id">
</el-option>
</el-select>
<el-select v-model="form.freightVolume" placeholder="请选择" slot="append" style="width: 100px">
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.titleZh"
:value="item.id">
</el-option>
</el-select>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="新清关费" required style="width: 400px"> <el-form-item label="新清关费" required style="width: 400px">
<el-input v-model="form.clearanceFreight" type="number" class="input-with-select"> <el-input v-model="form.clearanceFreight" type="number" class="input-with-select">
<el-select v-model="form.clearanceFreightCurrency" placeholder="请选择" slot="prepend" style="width: 100px"> <div slot="prepend" style="width: 60px">{{ currentMap[form.clearanceFreightCurrency] }}</div>
<el-option <div slot="append" style="width: 60px">{{ unitMap[form.clearanceFreightVolume] }}</div>
v-for="item in currencyList"
:key="item.id"
:label="item.titleZh"
:value="item.id">
</el-option>
</el-select>
<el-select v-model="form.clearanceFreightVolume" placeholder="请选择" slot="append" style="width: 100px">
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.titleZh"
:value="item.id">
</el-option>
</el-select>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div >
<h2>审批流程</h2>
<work-flow xmlkey="free_apply" v-model="form.channelId" />
<!-- <div>选择的用户:{{selectedUsers}}</div>-->
</div>
<div v-if="!readonly"> <div v-if="!readonly">
<el-button type="primary" @click="handleSubmit">提交</el-button> <el-button type="primary" @click="handleSubmit">提交</el-button>
</div> </div>
...@@ -107,6 +86,7 @@ import {getChannelList} from "@/api/ecw/channel" ...@@ -107,6 +86,7 @@ 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 {openedRouterList} from "@/api/ecw/warehouse" import {openedRouterList} from "@/api/ecw/warehouse"
import WorkFlow from "@/components/WorkFlow"
export default { export default {
name: "specialDiscount", name: "specialDiscount",
...@@ -119,7 +99,8 @@ export default { ...@@ -119,7 +99,8 @@ export default {
} }
}, },
components: { components: {
DictSelector DictSelector,
WorkFlow
}, },
created() { created() {
// 临时 // 临时
...@@ -227,6 +208,7 @@ export default { ...@@ -227,6 +208,7 @@ export default {
freightVolume: this.form.freightVolume, freightVolume: this.form.freightVolume,
}).then(r => { }).then(r => {
this.$message.success(r.msg || '提交成功') this.$message.success(r.msg || '提交成功')
this.$tab.closePage()
}) })
}, },
getOrderSpecial(){ getOrderSpecial(){
...@@ -287,9 +269,4 @@ export default { ...@@ -287,9 +269,4 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .input-with-select {
.el-input-group__prepend, .el-input-group__append {
background-color: #fff;
}
}
</style> </style>
...@@ -67,25 +67,26 @@ ...@@ -67,25 +67,26 @@
<el-descriptions style="margin-top: 20px" :column="4" border> <el-descriptions style="margin-top: 20px" :column="4" border>
<el-descriptions-item label="集运仓库">{{ warehouseDetails && warehouseDetails.warehouseOutName ? warehouseDetails.warehouseOutName : '' }}</el-descriptions-item> <el-descriptions-item label="集运仓库">{{ warehouseDetails && warehouseDetails.warehouseOutName ? warehouseDetails.warehouseOutName : '' }}</el-descriptions-item>
<el-descriptions-item label="储位"> <el-descriptions-item label="储位">
<div v-for="item in storageSpaceList" style="display: flex;"><div>{{item.warehouseName ? item.warehouseName : ''}}</div><div>{{item.warehouseName ? item.regionName :''}} 区</div></div> <div v-for="item in storageSpaceList" style="display: flex;"><div>{{item.warehouseName ? item.warehouseName : ''}}</div><div>{{item.warehouseName ? item.regionName :''}} 区</div> <div>{{item.code}}</div></div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if="type == 2" label="选择储位"> <el-descriptions-item v-if="type == 2" label="选择储位">
<div @click="areaVisible = true" style="color: #0a84ff;cursor: pointer;">选择储位</div> <div @click="areaVisible = true" style="color: #0a84ff;cursor: pointer;">选择储位</div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="调拨目标仓">{{ warehouseDetails && warehouseDetails.warehouseInName ? warehouseDetails.warehouseInName : '' }}</el-descriptions-item> <el-descriptions-item label="调拨目标仓">{{ warehouseDetails && warehouseDetails.warehouseInName ? warehouseDetails.warehouseInName : '' }}</el-descriptions-item>
<el-descriptions-item label="物流公司"> <el-descriptions-item label="物流公司">
<el-select v-model="params.logisticsCompany" > <el-select :disabled="type == 2" v-model="params.logisticsCompany" >
<el-option v-for="(item,index) in expressList " :key="index" :value="item.id" :label="item.companyZh"></el-option> <el-option v-for="(item,index) in expressList " :key="index" :value="item.id" :label="item.companyZh"></el-option>
</el-select> </el-select>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="物流单号"> <el-descriptions-item label="物流单号">
<el-input v-model="params.logisticsNo"></el-input> <el-input :disabled="type == 2" v-model="params.logisticsNo"></el-input>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="联系电话"> <el-descriptions-item label="联系电话">
<el-input v-model="params.phone"></el-input> <el-input :disabled="type == 2" v-model="params.phone"></el-input>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出仓日期" > <el-descriptions-item label="出仓日期" >
<el-date-picker <el-date-picker
:disabled="type == 2"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
v-model="params.deliveryDate" v-model="params.deliveryDate"
type="date" type="date"
...@@ -276,15 +277,27 @@ export default { ...@@ -276,15 +277,27 @@ export default {
if(item.wareId === itemm.id){ if(item.wareId === itemm.id){
itemm.children.forEach(itemmm => { itemm.children.forEach(itemmm => {
if(itemmm.id === item.areaId){ if(itemmm.id === item.areaId){
obj.push({ if(itemmm.positionList.length > 0){
warehouseName:itemm.name, itemmm.positionList.forEach(ic =>{
regionName:itemmm.name if(ic.children.length > 0){
}) ic.children.forEach(icc => {
if(icc.id === item.locationId){
obj.push({
warehouseName:itemm.name,
regionName:itemmm.name,
code:icc.code
})
}
})
}
})
}
} }
}) })
} }
}) })
}) })
console.log(obj)
this.storageSpaceList = obj; this.storageSpaceList = obj;
}) })
} }
...@@ -366,6 +379,42 @@ export default { ...@@ -366,6 +379,42 @@ export default {
}); });
}, },
}, },
watch:{
'params.orderLocationCreateReqVOList'(val){
console.log(val,'123')
getByWarehouseId().then(r =>{
console.log(r,'仓库')
let obj = [];
val.forEach(item => {
r.data.forEach(itemm => {
if(item.wareId === itemm.id){
itemm.children.forEach(itemmm => {
if(itemmm.id === item.areaId){
if(itemmm.positionList.length > 0){
itemmm.positionList.forEach(ic =>{
if(ic.children.length > 0){
ic.children.forEach(icc => {
if(icc.id === item.locationId){
obj.push({
warehouseName:itemm.name,
regionName:itemmm.name,
code:icc.code
})
}
})
}
})
}
}
})
}
})
})
console.log(obj,'obj')
this.storageSpaceList = obj;
})
}
}
} }
</script> </script>
......
This diff is collapsed.
...@@ -48,7 +48,10 @@ ...@@ -48,7 +48,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('状态')" prop="destCityId" v-if="!$route.query.product_id"> <el-form-item :label="$t('审核状态')" prop="auditStatus">
<dict-selector :type="DICT_TYPE.ECW_PRICE_AUDIT_STATUS" v-model="queryParams.auditStatus" />
</el-form-item>
<el-form-item :label="$t('状态')" prop="status">
// TODO // TODO
</el-form-item> </el-form-item>
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<el-option v-for="dict in this.getDictDatas('company_type')" <el-option v-for="dict in this.getDictDatas('company_type')"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select--> </el-select-->
<dict-selector :type="DICT_TYPE.COMPANY_TYPE" v-model="queryParams.companyType" /> <dict-selector :type="DICT_TYPE.ECW_COMPANY_TYPE" v-model="queryParams.companyType" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('合作类型')" prop="cooperationType"> <el-form-item :label="$t('合作类型')" prop="cooperationType">
<dict-selector :type="DICT_TYPE.ECW_COOPERATION_TYPE" v-model="queryParams.cooperationType" /> <dict-selector :type="DICT_TYPE.ECW_COOPERATION_TYPE" v-model="queryParams.cooperationType" />
......
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