Commit ce0c29bf authored by 我在何方's avatar 我在何方
parents 54d35d1c 69ebabe8
......@@ -42,7 +42,8 @@
'directionalityltr', 'directionalityrtl', 'indent', '|',
'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
'simpleupload'
// 'simpleupload',
'insertimage'
// , 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
// 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
// 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
......
......@@ -52,3 +52,12 @@ export function exportBusiPwdExcel(query) {
responseType: 'blob'
})
}
// 验证业务密码
export function validatePwd(data){
return request({
url: '/ecw/busi-pwd/validate-pwd',
method: 'post',
data: data
})
}
\ No newline at end of file
......@@ -2,8 +2,8 @@
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ $l(item.meta,'title') }}</span>
<a v-else @click.prevent="handleLink(item)">{{ $l(item.meta,'title') }}</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
......
<template>
<div class="xselect">
<el-select v-model="valueSync">
<el-option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</template>
<script>
export default {
props:{
value:{
type: String,
},
options:{
type: Array,
default(){
return []
}
}
},
watch: {
valueSync(newValue) {
this.$emit('input', newValue)
}
},
data(){
return {
valueSync: []
}
},
created() {
this.$set(this, 'valueSync', this.value)
},
methods: {
}
}
</script>
let modules = {}
const files = require.context('', false, /\.vue$/);
files.keys().forEach((filename) => {
modules[filename.slice(2, -4)] = files(filename).default || files(filename)
});
export default modules
\ No newline at end of file
<template>
<el-card shadow="never">
<div slot="header" class="clearfix card-header">
<div class="card-title">{{title}}</div>
<el-button size="mini" type="primary" icon="el-icon-plus" @click="listData.push({})"></el-button>
</div>
<el-table :data="listData" border>
<el-table-column :label="$t('序号')" width="90px">
<template slot-scope="scope">
{{scope.$index + 1}}
</template>
</el-table-column>
<template v-for="col in fields">
<el-table-column :label="col.label" :key="col.field">
<template slot-scope="{row}">
<component :is="col.tag || 'el-input'" v-model="row[col.field]" v-bind="col.attrs" />
</template>
</el-table-column>
</template>
<!-- <el-table-column label="职位">
<template slot-scope="{row}">
<el-input v-model="row.job" />
</template>
</el-table-column> -->
<el-table-column :label="$t('操作')">
<template slot-scope="scope">
<el-button type="danger" size="mini" icon="el-icon-delete" @click="del(scope.$index)"></el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</template>
<script>
/*
fields:
[
{
field: 'name',
label: '字段名'
tag: 'el-input',
attr: {}
}
]
*/
import FormComponents from './components/index.js'
export default {
components: {...FormComponents},
props:{
title: String,
fields: Array,
value: Array
},
data(){
return {
listData: []
}
},
watch:{
listData(val){
console.log('数据更新')
this.$emit('input', val)
},
value(){
this.listData = this.value
}
},
methods:{
del(index){
this.$confirm(this.$t('确定删除此行?'))
.then(res => {
this.listData.splice(index, 1)
})
}
}
}
</script>
<style scoped lang="scss">
.card-header{
display: flex;
.card-title{
flex: 1;
display: flex;
align-items: center;
font-size: 16px;
}
}
</style>
\ No newline at end of file
......@@ -54,5 +54,7 @@
</script>
<style>
#edui_fixedlayer{
z-index: 10005 !important;
}
</style>
......@@ -20,10 +20,34 @@
</el-select>
</el-form-item>
<el-form-item label="订单号" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入订单号" />
<el-select
v-model="form.orderId"
filterable
remote
placeholder="请输入订单号"
:remote-method="getOrderList">
<el-option
v-for="item in orderList"
:key="item.value"
:label="item.value"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="提单号" prop="ladingbillId">
<el-input v-model="form.ladingbillId" placeholder="请输入提单号" />
<el-select
v-model="form.ladingbillId"
filterable
remote
placeholder="请输入提单号"
:remote-method="getBillList">
<el-option
v-for="item in billList"
:key="item.value"
:label="item.value"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="投诉内容" prop="content">
<el-input v-model="form.content" type="textarea" placeholder="请输入内容" />
......@@ -88,6 +112,7 @@ import { createCustomerComplaint, updateCustomerComplaint, deleteCustomerComplai
import {getCustomerSelect} from '@/api/ecw/customer'
import DictSelector from '@/components/DictSelector'
import { DICT_TYPE, getDictDatas, getDictDataLabel } from '@/utils/dict'
import {getBillNoSearch, getOrderNoSearch} from "@/api/ecw/order"
export default {
name: "customerComplaints",
......@@ -147,7 +172,10 @@ export default {
// 处理
handle: {
dialogVisible: false
}
},
billList: [],
orderList: []
};
},
created() {
......@@ -156,6 +184,21 @@ export default {
})
},
methods: {
getBillList(key){
getBillNoSearch({key, pageNo: 1, pageSize: 20}).then(r => {
if (r.code === 0){
this.billList = r.data.list
}
})
},
getOrderList(key){
getOrderNoSearch({key, pageNo: 1, pageSize: 20}).then(r => {
if (r.code === 0){
this.orderList = r.data.list
}
})
},
/** 查询列表 */
/** 取消按钮 */
cancel() {
......
......@@ -12,7 +12,7 @@ const i18n = new VueI18n({
}
})
console.log({i18n})
Vue.prototype.$l = (object, field) => {
Vue.prototype.$l = (object, field = '') => {
let prefix = i18n.locale.split('_')[0]
let append = prefix.charAt(0).toUpperCase() + prefix.toLowerCase().substr(1)
// 如果object是null则返回字段名
......
......@@ -13,7 +13,7 @@
@click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
@contextmenu.prevent.native="openMenu(tag,$event)"
>
{{ tag.title }}
{{ $l(tag.meta, 'title') }}
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
</router-link>
</scroll-pane>
......@@ -56,6 +56,7 @@ export default {
},
watch: {
$route() {
console.log(this.$route, this.$route.redirectedFrom)
this.addTags()
this.moveToCurrentTag()
},
......
......@@ -25,7 +25,7 @@ import DictSelector from '@/components/DictSelector'
// import 'highlight.js/styles/github-gist.css'
import {DICT_TYPE, getDictDataLabel, getDictDatas, getDictDatas2} from "@/utils/dict";
import i18n from './i18n'
console.log({i18n})
// 全局方法挂载
Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey
......@@ -66,7 +66,6 @@ Vue.component('DictTag', DictTag)
Vue.component('DocAlert', DocAlert)
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
// Vue.component('TableForm', TableForm)
Vue.component('DictSelector', DictSelector)
// 字典标签组件
import DictTag from '@/components/DictTag'
......@@ -109,6 +108,11 @@ import '@/styles/index.scss'
Vue.use(Element, {
size: Cookies.get('size') || 'medium' // set element-ui default size
})
Vue.prototype.$redirect = (path) =>{
let currentView = router.history.current
router.replace(path)
store.dispatch("tagsView/delView", currentView)
}
Vue.config.productionTip = false
......
......@@ -303,6 +303,13 @@ export const constantRoutes = [
name: 'discount',
meta: {title: '订单优惠申请', icon: '', activeMenu: '/order/index'}
},
{
path: 'discount1/:orderItemId(\\d+)',
component: (resolve) => import('@/views/ecw/order/special/discount'),
props: true,
name: 'discount1',
meta: {title: '订单折扣申请', icon: '', activeMenu: '/order/index'}
},
{
path: 'speciallight/:orderId(\\d+)',
component: (resolve) => import('@/views/ecw/order/special/light'),
......
......@@ -176,7 +176,6 @@ const actions = {
})
},
delCurrentView({ dispatch }){
// console.log('delCurrentView', router.history.current)
const view = router.history.current
return dispatch('delView', view).then(({visitedViews}) => {
const latestView = visitedViews.slice(-1)[0]
......
......@@ -109,6 +109,7 @@ export const DICT_TYPE = {
ECW_PRICE_TYPE: 'price_type',
ECW_RELEASE_STATUS: 'release_status', // 放货状态
ECW_PICK_RECURRENT_NUCLEAR_TYPE: 'PICK_RECURRENT_NUCLEAR_TYPE', // 放货反复核类型
ECW_COST_FEE_TYPE: 'cost_fee_type', // 清单费用类型
//--------ecw---------
CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source',
......
......@@ -97,7 +97,83 @@
<el-tabs style="margin-top: 15px" type="border-card">
<el-tab-pane label="订单">
订单
<el-card class="box-card">
<div slot="header" class="clearfix">
<el-form :inline="true">
<el-form-item label="运输方式:">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportType" formatter="number" />
</el-form-item>
<el-form-item label="订单状态:">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status"/>
</el-form-item>
<el-form-item label="报关方式:">
<dict-selector
:type="DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model="queryParams.customsType"
/>
</el-form-item>
<el-form-item label="控货">
<dict-selector
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
v-model="queryParams.isCargoControl"
/>
</el-form-item>
<el-form-item label="入仓时间:">
<el-date-picker v-model="queryParams.rucangtime"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getorderList">搜索</el-button>
<el-button type="primary" @click="()=>{
queryParams = { rows:10,page:1}; getorderList()
}">重置</el-button>
</el-form-item>
</el-form>
</div>
<el-table :data="orderList">
<el-table-column :label="$t('订单编号')" width="120px" align="center" prop="orderNo" >
<template slot-scope="scope">
<router-link :to="{path: '/order/detail',query: {orderId: scope.row.orderId}}" class="link-type">
<span>{{ scope.row.orderNo }}</span>
</router-link>
</template>
</el-table-column>
<el-table-column :label="$t('唛头')" align="center" prop="marks" />
<el-table-column :label="$t('总箱数/入仓箱数')" align="center" prop="sumNum">
<template slot-scope="{row}">
{{row.totalNum}}{{$t('')}}/{{row.sumNum}}{{$t('')}}
</template>
</el-table-column>
<el-table-column :label="$t('体积/重量')" align="center" prop="sumWeight">
<template slot-scope="{row}">
<!--入仓前是填单数据,入仓后是入仓数据-->
<template v-if="row.inWarehouseState <= 1">{{row.costVO.totalVolume}}m³ /{{row.costVO.totalWeight}}Kg</template>
<template v-else>{{row.sumVolume}}m³ /{{row.sumWeight}}Kg</template>
</template>
</el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="departureName" />
<el-table-column :label="$t('运输方式/目的地')" align="center" prop="transportId">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" /> / {{row.objectiveName}}
</template>
</el-table-column>
<el-table-column :label="$t('控货')" align="center" prop="transportId">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="row.isCargoControl" />
</template>
</el-table-column>
<el-table-column :label="$t('订单状态')" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
</el-table>
<pagination @pagination="creditLogPage" :page.sync="queryParams.page" :limit.sync="queryParams.row" :total="orderTotal" ></pagination>
</el-card>
</el-tab-pane>
<el-tab-pane label="报价">
<el-table
......@@ -312,6 +388,7 @@ import { parseTime } from '@/utils/ruoyi'
import CustomerComplaint from '@/views/ecw/customerComplaint'
import { listServiceUser } from '@/api/system/user'
import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts'
import {getOrderPage} from "@/api/ecw/order";
export default {
name: 'query',
......@@ -346,6 +423,7 @@ export default {
this.getBrankByCustomerList()
this.getCustomerGrade()
this.creditLogPage()
this.getorderList()
},
data() {
return {
......@@ -412,7 +490,13 @@ export default {
rows:10,
total: 0,
},
customerCreditLogList:[]
customerCreditLogList:[],
queryParams:{
rows:10,
page:1
},
orderList:[],
orderTotal:0
}
},
computed: {
......@@ -454,7 +538,16 @@ export default {
this.customerCreditLogFrom.total = r.data.total;
}
})
}
},
getorderList(){
getOrderPage({consignorId:this.id,...this.queryParams}).then(r => {
console.log(r)
if(r.code === 0){
this.orderList = r.data.list
this.orderTotal = r.data.total
}
})
}
}
}
</script>
......
......@@ -116,7 +116,6 @@
v-model="form.orderId"
filterable
remote
reserve-keyword
placeholder="请输入订单号"
:remote-method="getOrderList"
:loading="loading">
......@@ -133,7 +132,6 @@
v-model="form.ladingbillId"
filterable
remote
reserve-keyword
placeholder="请输入提单号"
:remote-method="getBillList"
:loading="loading">
......
......@@ -141,7 +141,7 @@
<el-col :span="4">{{messageVal.type === 1 ? '咨询':'建议'}}时间:</el-col><el-col :span="12">{{parseTime(messageVal.createTime)}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">{{messageVal.type === 1 ? '咨询':'建议'}}容:</el-col><el-col :span="12">{{messageVal.content}}</el-col>
<el-col :span="4">{{messageVal.type === 1 ? '咨询':'建议'}}容:</el-col><el-col :span="12">{{messageVal.content}}</el-col>
</el-row>
</div>
<div style="background-color:#f6f6f6;padding:10px 20px;margin-top: 20px;">
......@@ -152,7 +152,7 @@
<el-col :span="4">回复时间:</el-col><el-col :span="12">{{parseTime(messageVal.replyTime)}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">回复容:</el-col><el-col :span="12"><el-input type="textarea" v-model="messageVal.replyContent" :disabled="messageVal.status === 2"></el-input></el-col><el-col :span="4"><el-button v-if="messageVal.status === 1" @click="replyFn">回复</el-button></el-col>
<el-col :span="4">回复容:</el-col><el-col :span="12"><el-input type="textarea" v-model="messageVal.replyContent" :disabled="messageVal.status === 2"></el-input></el-col><el-col :span="4"><el-button v-if="messageVal.status === 1" @click="replyFn">回复</el-button></el-col>
</el-row>
</div>
<div slot="footer" style="text-align: center;">
......
......@@ -224,16 +224,16 @@
<template v-if="row.fee && row.fee.charging == 1">
<template v-if="!row.fee.freight">{{$t('未报价')}}</template>
<template v-else>
{{$t('全包价')}}{{row.fee.freight}} {{currentcyMap[row.fee.freightCurrency]}} / {{unitMap[row.fee.freightVolume]}}
{{$t('全包价')}}{{row.fee.freight}} {{currencyMap[row.fee.freightCurrency]}} / {{unitMap[row.fee.freightVolume]}}
</template>
</template>
<template v-else-if="!row.fee || !row.fee.freight && !row.fee.clearanceFee">{{$t('未报价')}}</template>
<template v-else-if="row.fee">
<div>
{{$t('运费')}}{{row.fee.freight}} {{currentcyMap[row.fee.freightCurrency]}} / {{unitMap[row.fee.freightVolume]}}
{{$t('运费')}}{{row.fee.freight}} {{currencyMap[row.fee.freightCurrency]}} / {{unitMap[row.fee.freightVolume]}}
</div>
<div>
{{$t('清关费')}}{{row.fee.oneClearanceFee}} {{currentcyMap[row.fee.clearanceFeeCurrency]}} / {{unitMap[row.fee.clearanceFeeVolume]}}
{{$t('清关费')}}{{row.fee.oneClearanceFee}} {{currencyMap[row.fee.clearanceFeeCurrency]}} / {{unitMap[row.fee.clearanceFeeVolume]}}
</div>
</template>
</template>
......@@ -295,13 +295,13 @@
</el-descriptions-item>
<el-descriptions-item :label="$t('总运费')">
<template v-for="item in clearanceFeeList">
<div :key="item.currencyId">{{item.amount || 0}}{{currentcyMap[item.currencyId]}}</div>
<div :key="item.currencyId">{{item.amount || 0}}{{currencyMap[item.currencyId]}}</div>
</template>
</el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item :label="$t('总清关费')">
<template v-for="item in freightFeeList">
<div :key="item.currencyId">{{item.amount || 0}}{{currentcyMap[item.currencyId]}}</div>
<div :key="item.currencyId">{{item.amount || 0}}{{currencyMap[item.currencyId]}}</div>
</template>
</el-descriptions-item>
<el-descriptions-item :label="$t('其他费用')">
......@@ -310,7 +310,7 @@
</el-descriptions-item>
<el-descriptions-item :label="$t('原价')" :span="2">
<template v-for="item in originalFeeList">
<div :key="item.currencyId">{{item.amount || 0}}{{currentcyMap[item.currencyId]}}</div>
<div :key="item.currencyId">{{item.amount || 0}}{{currencyMap[item.currencyId]}}</div>
</template>
</el-descriptions-item>
</el-descriptions>
......@@ -337,7 +337,7 @@
<el-table-column label="">
<template slot-scope="{row}">
-{{row.reduceAmount}}
{{currentcyMap[row.reduceCurrencyId]}}
{{currencyMap[row.reduceCurrencyId]}}
</template>
</el-table-column>
<el-table-column label="">
......@@ -350,12 +350,12 @@
<el-descriptions :column="1" class="mt-20">
<el-descriptions-item :label="$t('优惠费用')" v-if="couponTotalAmountList && couponTotalAmountList.length">
<div v-for="(item, discountIndex) in couponTotalAmountList" :key="discountIndex">
{{item.totalAmount}} {{currentcyMap[item.currencyId]}}
{{item.totalAmount}} {{currencyMap[item.currencyId]}}
</div>
</el-descriptions-item>
<el-descriptions-item :label="$t('预计费用')">
<template v-for="item in estimatedCosts">
<div :key="item.currencyId">{{item.amount || 0}}{{currentcyMap[item.currencyId]}}</div>
<div :key="item.currencyId">{{item.amount || 0}}{{currencyMap[item.currencyId]}}</div>
</template>
</el-descriptions-item>
</el-descriptions>
......@@ -529,6 +529,7 @@ export default {
endTime: [{ required: true, message: "有效期结束时间不能为空"}],
transportId: [{ required: true, message: "选择运输方式"}],
channelId: [{ required: true, message: "选择出货渠道"}],
stopTime: [{ required: true, message: "不能为空"}]
/*sendstatus: [{ required: true, message: "站内信状态,0未发送,1已发送不能为空", trigger: "blur" }], */
},
labelStyle: 'width:120px',
......@@ -576,17 +577,17 @@ export default {
if(!this.form.lineId)return null
return this.routerList.find(item => item.id == this.form.lineId)
},
currentcyMap(){
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = item.titleZh
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = item.titleZh
map[item.id] = this.$l(item, 'title')
})
return map
},
......@@ -669,9 +670,6 @@ export default {
if(!this.selectedRouter || !this.selectedRouter.otherService) return []
return this.selectedRouter.otherService.split(',')
}
/* productKeyd(){
return arrryToKeyedObjectBy(this.productList, 'prodId')
} */
},
watch:{
// 始发地
......@@ -745,14 +743,6 @@ export default {
this.contactChooseType = 'consignor'
this.onContactChoose(data.list.find(item => item.customerContactsId == res.data.consignorId))
})
/* res.data.transportRespVOList.forEach(item => {
let transport = this.transportList.find(t => t.transportId == item.transportId)
console.log(item.transportId, transport)
Object.assign(transport, item, {_enabled: true})
}) */
/* this.$nextTick(() => {
this.updateEnabledTransports()
}) */
})
}//else this.addProduct()
},
......@@ -773,12 +763,6 @@ export default {
this.contactChooseType = null
this.quickCreateType = null
},
/* onProductChange(row, product){
row.goodsType = product.typeId;
// 保存商品id和品名,用于优惠信息显示
this.$set(this.productNames, product.id, product.titleZh)
this.calculationPrice()
}, */
onProductChange(row, product){
console.log(product)
// row.goodsType = product ? product.typeId : null
......@@ -888,7 +872,7 @@ export default {
// 添加的提交
createOffer(data).then(response => {
this.$modal.msgSuccess(this.$t("新增成功"));
this.$router.replace('index')
this.$redirect('index')
});
});
},
......
......@@ -47,63 +47,49 @@
</template>
</el-table-column>
<el-table-column :label="$t('运输方式')" align="left">
<template slot-scope="scope" v-if="scope.row.transportIds" >
<span v-for="(item, index) in scope.row.transportIds.split(',')" :key="index">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="item" />
</span>
<template slot-scope="scope" >
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
</template>
</el-table-column>
<el-table-column :label="$t('业务员')" align="left">
<template slot-scope="scope">
暂无
</template>
<el-table-column :label="$t('业务员')" align="left" prop="creatorName">
</el-table-column>
<el-table-column :label="$t('预计销售额')" align="center" prop="estCost">
<el-table-column :label="$t('预计销售额')" align="left" prop="estCost">
<template slot-scope="{row}">
<div class="" v-if="row.estCostVO.clearanceNGN || row.estCostVO.clearanceRMB || row.estCostVO.clearanceUSD">
{{$t('清关费')}}
<span v-if="row.estCostVO.clearanceNGN">{{row.estCostVO.clearanceNGN}}N</span>
<span v-if="row.estCostVO.clearanceRMB">{{row.estCostVO.clearanceRMB}}</span>
<span v-if="row.estCostVO.clearanceUSD">{{row.estCostVO.clearanceUSD}}$</span>
<div class="" v-for="item in row.estCostVO.feeDtoList" :key="item.feeType">
<dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" />
{{item.amount}} {{currencyMap[item.currencyId]}}
</div>
<div class="" v-if="row.estCostVO.seaNGN || row.estCostVO.seaRMB || row.estCostVO.seaUSD">
{{$t('运费')}}
<span v-if="row.estCostVO.seaNGN">{{row.estCostVO.seaNGN}}N</span>
<span v-if="row.estCostVO.seaRMB">{{row.estCostVO.seaRMB}}</span>
<span v-if="row.estCostVO.seaUSD">{{row.estCostVO.seaUSD}}$</span>
</div>
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<template v-if="[1,2].indexOf(scope.row.status) > -1">
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('detail?offerId=' + scope.row.offerId)"
<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" icon="el-icon-edit" @click="$router.push('edit?id=' + scope.row.offerId)"
<el-button size="mini" type="text" @click="$router.push('edit?id=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('logList?offerId=' + scope.row.offerId)"
<el-button size="mini" type="text" @click="$router.push('logList?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('跟进')}}</el-button>
</template>
<template v-if="scope.row.status == 2">
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('detail?offerId=' + scope.row.offerId)"
<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" icon="el-icon-edit" @click="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)"
<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" icon="el-icon-edit" @click="$router.push('/offer/special/' + scope.row.offerId)"
<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" icon="el-icon-edit"
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit"
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-button>
</template>
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('detail?offerId=' + scope.row.offerId)"
<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" icon="el-icon-delete"
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-button>
</template>
</el-table-column>
......@@ -116,7 +102,8 @@
</template>
<script>
import { createOffer, updateOffer, deleteOffer, getOffer, getOfferPage, exportOfferExcel } from "@/api/ecw/offer";
import { deleteOffer, getOfferPage, exportOfferExcel } from "@/api/ecw/offer";
import { getCurrencyList } from '@/api/ecw/currency';
export default {
name: "Offer",
......@@ -173,12 +160,24 @@ export default {
estCost: null,
sendstatus: null,
},
currencyList: []
};
},
computed:{
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
},
created() {
this.getList();
getCurrencyList().then(res => {
this.currencyList = res.data
})
},
methods: {
/** 查询列表 */
......
......@@ -934,7 +934,7 @@ export default {
// 添加的提交
createOrder(data).then(response => {
this.$modal.msgSuccess(this.$t("新增成功"));
this.$router.replace('success?orderId=' + response.data)
this.$redirect('success?orderId=' + response.data)
});
});
},
......
......@@ -4,7 +4,7 @@
<el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="16">
<el-card class="box-card">
<div slot="header" class="clearfix" v-if="!readonly">
<span>优惠申请</span>
<span style="font-size: 18px;font-weight: bold">{{ isDiscount ? '折扣管理' : '优惠申请' }}</span>
</div>
<el-form v-if="!readonly" ref="form" :model="form" label-width="80px">
<el-form-item label="商品类型">
......@@ -216,7 +216,7 @@ export default {
methods: {
handleSubmit(){
createOrderSpecial({
"applyType": '1',
"applyType": this.isDiscount ? '2' : '1',
clearanceFreight: this.form.clearanceFreight,
clearanceFreightCurrency: this.form.clearanceFreightCurrency,
clearanceFreightVolume: this.form.clearanceFreightVolume,
......@@ -244,6 +244,10 @@ export default {
}
},
computed: {
// 折扣管理页面
isDiscount(){
return this.$route.query.discount
},
// 根据渠道id显示渠道名
getChannelNameById(){
return channelId => {
......
......@@ -80,7 +80,7 @@
<template v-slot="{row}">
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount/${row.orderItemId}?orderId=${row.orderId}`)">优惠申请</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/specialCommission/${row.orderItemId}`)">佣金规则</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']">管理折扣</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount1/${row.orderItemId}?orderId=${row.orderId}&discount=1`)">管理折扣</el-button>
</template>
</el-table-column>
......
......@@ -22,9 +22,9 @@
</el-col>
</el-row>
<div class="actions">
<el-button type="primary" @click="$router.replace('detail?orderId=' + order.orderId)">{{$t('查看订单')}}</el-button>
<el-button type="primary" @click="$redirect('detail?orderId=' + order.orderId)">{{$t('查看订单')}}</el-button>
<el-button type="warning" @click="showNotice = true">{{$t('入仓须知')}}</el-button>
<el-button type="info" @click="$router.replace('create')">{{$t('再来一单')}}</el-button>
<el-button type="info" @click="$redirect('create')">{{$t('再来一单')}}</el-button>
</div>
<el-dialog :title="$t('查看须知')" :visible.sync="showNotice" width="700px">
......@@ -60,31 +60,7 @@ export default {
.then(res => {
this.order = res.data
})
},
/* download(){
let el = document.getElementById('noticeImg')
this.downloadIamge(this.noticeUrl, 'ce')
},
downloadIamge(imgsrc, name) {
//下载图片地址和图片名
var image = new Image()
// 解决跨域 Canvas 污染问题
image.setAttribute('crossOrigin', 'anonymous')
image.onload = function () {
var canvas = document.createElement('canvas')
canvas.width = image.width
canvas.height = image.height
var context = canvas.getContext('2d')
context.drawImage(image, 0, 0, image.width, image.height)
var base64 = canvas.toDataURL('image/png') //得到图片的base64编码数据
document.getElementById('noticeImg').setAttribute('src', base64)
window.base64 = base64
let blob = dataURLtoBlob(base64)
FileSaver.saveAs(blob, '入仓须知.png');
}
image.src = imgsrc
} */
}
}
}
</script>
......
This diff is collapsed.
......@@ -93,7 +93,7 @@
<el-form-item label="始发地" prop="departureId">
<el-select v-model="form.departureId" placeholder="请选择始发地">
<el-option label="全部" :value="0"></el-option>
<el-option v-for="(item) in warehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
<el-option v-for="(item) in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的地" prop="objectiveIds">
......@@ -171,7 +171,8 @@ export default {
rules: {
},
importCityList: [],
warehouseList: []
warehouseList: [],
tradeCityList:[]
};
},
created() {
......@@ -182,6 +183,12 @@ export default {
getWarehouseList().then(r => {
this.warehouseList = r.data
})
getTradeCityList().then(res => this.tradeCityList = res.data)
},
computed:{
expoerCityList() {
return this.tradeCityList.filter(item => item.type == 2)
},
},
methods: {
handleStatusChange(row){
......
......@@ -3,9 +3,9 @@
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="站内信来源" prop="fromId">
<el-input v-model="queryParams.fromId" placeholder="请输入站内信来源" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<!-- <el-form-item label="站内信来源" prop="fromId">-->
<!-- <el-input v-model="queryParams.fromId" placeholder="请输入站内信来源" clearable @keyup.enter.native="handleQuery"/>-->
<!-- </el-form-item>-->
<el-form-item label="发送时间">
<el-date-picker v-model="dateRangeSendTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
......@@ -45,7 +45,7 @@
<!-- 列表 -->
<el-table v-loading="loading" :data="list">
<el-table-column label="" align="center" prop="id" />
<el-table-column label="站内信来源" align="center" prop="fromId" />
<!-- <el-table-column label="站内信来源" align="center" prop="fromId" />-->
<el-table-column label="发送时间" align="center" prop="sendTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.sendTime) }}</span>
......@@ -79,9 +79,9 @@
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="站内信来源ID" prop="fromId">
<el-input v-model="form.fromId" placeholder="请输入站内信来源" />
</el-form-item>
<!-- <el-form-item label="站内信来源ID" prop="fromId">-->
<!-- <el-input v-model="form.fromId" placeholder="请输入站内信来源" />-->
<!-- </el-form-item>-->
<el-form-item label="发送时间" prop="sendTime">
<el-date-picker clearable v-model="form.sendTime" type="date" value-format="yyyy-MM-dd" placeholder="选择发送时间" />
</el-form-item>
......
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