Commit 03c70c38 authored by dcy's avatar dcy

Merge remote-tracking branch 'origin/dev' into dev

parents 680a28ce a427b494
import request from '@/utils/request'
// 创建预定舱计划
export function createFutureBox(data) {
return request({
url: '/ecw/future-box/create',
method: 'post',
data: data
})
}
// 更新预定舱计划
export function updateFutureBox(data) {
return request({
url: '/ecw/future-box/update',
method: 'put',
data: data
})
}
// 删除预定舱计划
export function deleteFutureBox(id) {
return request({
url: '/ecw/future-box/delete?id=' + id,
method: 'delete'
})
}
// 获得预定舱计划
export function getFutureBox(id) {
return request({
url: '/ecw/future-box/get?id=' + id,
method: 'get'
})
}
// 获得预定舱计划分页
export function getFutureBoxPage(query) {
return request({
url: '/ecw/future-box/page',
method: 'get',
params: query
})
}
// 导出预定舱计划 Excel
export function exportFutureBoxExcel(query) {
return request({
url: '/ecw/future-box/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
......@@ -173,7 +173,34 @@ export default {
if (!valid) {
return
}
if(!this.customerFollow.form.followType){
this.$modal.msgError("请选择跟进类型");
return
}
if(!this.customerFollow.form.followTime){
this.$modal.msgError("请选择跟进时间");
return
}
if(!this.customerFollow.form.contactName){
this.$modal.msgError("请选择联系人");
return
}
if(!this.customerFollow.form.followUserId){
this.$modal.msgError("请选择跟进业务");
return
}
if(!this.customerFollow.form.followMethod){
this.$modal.msgError("请选择跟进方式");
return
}
if(!this.customerFollow.form.feedback){
this.$modal.msgError("请输入客户反馈");
return
}
if(!this.customerFollow.form.result){
this.$modal.msgError("请输入处理结果");
return
}
createCustomerFollow(this.customerFollow.form).then(r => {
this.resetCustomerFollowForm()
this.getCustomerFollowList()
......
......@@ -15,7 +15,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="跟进时间" required>
<el-date-picker v-model="customerFollow.form.followTime" type="datetime" placeholder="选择跟进时间"></el-date-picker>
<el-date-picker v-model="customerFollow.form.followTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择跟进时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -103,8 +103,10 @@ export default {
},
created() {
this.resetCustomerFollowForm()
if (!!this.customerId) getCustomerContactsListByCustomer({customerId: this.customerId}).then(r => {
this.customerContactsList = r.data
this.customerFollow.form.customerId = this.customerId
})
listServiceUser().then(r => {
this.serviceUserList = r.data
......@@ -116,7 +118,34 @@ export default {
if (!valid) {
return
}
if(!this.customerFollow.form.followType){
this.$modal.msgError("请选择跟进类型");
return
}
if(!this.customerFollow.form.followTime){
this.$modal.msgError("请选择跟进时间");
return
}
if(!this.customerFollow.form.contactName){
this.$modal.msgError("请选择联系人");
return
}
if(!this.customerFollow.form.followUserId){
this.$modal.msgError("请选择跟进业务");
return
}
if(!this.customerFollow.form.followMethod){
this.$modal.msgError("请选择跟进方式");
return
}
if(!this.customerFollow.form.feedback){
this.$modal.msgError("请输入客户反馈");
return
}
if(!this.customerFollow.form.result){
this.$modal.msgError("请输入处理结果");
return
}
createCustomerFollow(this.customerFollow.form).then(r => {
this.resetCustomerFollowForm()
this.customerFollow.dialogVisible = false
......@@ -126,7 +155,8 @@ export default {
resetCustomerFollowForm() {
this.customerFollow.form = {
"bizId":undefined,
"bizId":this.id,
"customerId":this.customerId,
"contactName": undefined,
"feedback": undefined,
"followMethod": undefined,
......
......@@ -26,7 +26,7 @@ export default {
methods:{
downloadPdf(){
download({id: this.detail.id}).then(res => {
saveFie.pdf(res, '入仓须知.pdf')
this.$download.pdf(res, '入仓须知.pdf')
})
},
download(){
......
......@@ -108,11 +108,30 @@ 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)
}
window.ElementUI = Element
// 显示表单错误信息
Vue.prototype.$showFormValidateErrors = (errors) => {
let vm = new Vue()
let createElement = vm.$createElement
let fieldList = Object.values(errors)
Element.Notification({
title: '表单错误',
type: 'warning',
duration: 3000,
message: createElement('div', fieldList.map(function (errorList) {
return createElement('div', errorList.map((item) => {
return createElement('div', item.message)
}))
}))
})
}
Vue.config.productionTip = false
......
This diff is collapsed.
......@@ -266,14 +266,14 @@
<dict-selector :type="DICT_TYPE.CUSTOMER_COMPLAINT_STATUS" form-type="radio" v-model="form.status"
:filter="(e) => e.value == '2' || e.value == '3'" :formatter="Number"></dict-selector>
</el-form-item>
<el-form-item v-show="form.status == '2'" label="查明原因" required prop="ascertainReason">
<el-form-item v-show="form.status == '2'" label="查明原因" required >
<el-input type="textarea" placeholder="请输入查明原因" v-model="form.ascertainReason"></el-input>
</el-form-item>
<el-form-item v-show="form.status == '2'" label="处理方案">
<el-input v-model="form.plan" placeholder="请输入处理方案"></el-input>
</el-form-item>
<el-form-item v-show="form.status == '3'" label="处理结果" required prop="result">
<el-form-item v-show="form.status == '3'" label="处理结果" required>
<el-input type="textarea" placeholder="请输入处理结果" v-model="form.result"></el-input>
</el-form-item>
<el-form-item v-show="form.status == '3'" label="赔付金额">
......@@ -287,7 +287,7 @@
:type="DICT_TYPE.COMMISSION_CURRENCY_TYPE"></dict-selector>
</el-input>
</el-form-item>
<el-form-item v-show="form.status == '3'" label="处理时间" required prop="handleAt">
<el-form-item v-show="form.status == '3'" label="处理时间" required>
<el-date-picker type="datetime" v-model="form.handleAt" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-form>
......@@ -360,9 +360,6 @@ export default {
customerId: [{ required: true, message: "客户名称不能为空", trigger: "change" }],
type: [{ required: true, message: "投诉类型不能为空", trigger: "change" }],
content: [{ required: true, message: "投诉内容不能为空", trigger: "blur" }],
ascertainReason: [{ required: true, message: "查明原因不能为空", trigger: "blur" }],
result: [{ required: true, message: "处理结果不能为空", trigger: "blur" }],
handleAt: [{ required: true, message: "处理时间不能为空", trigger: "blur" }],
},
myFollowCustomerList: [],
......@@ -491,13 +488,28 @@ export default {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
console.log(valid)
console.log(this.form.handleAt)
if (!valid) {
return;
}
// 修改的提交
if (this.form.id != null) {
if(this.form.status==2){
if(!this.form.ascertainReason){
this.$modal.msgError("请输入查明原因");
return
}
}
if(this.form.status==3){
if(!this.form.result){
this.$modal.msgError("请输入处理结果");
return
}
if(!this.form.handleAt){
this.$modal.msgError("请输入处理时间");
return
}
}
updateCustomerComplaint(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
......
......@@ -295,13 +295,13 @@
{{fee.insuranceFee || 0}} {{$t('美元')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('总运费')">
<template v-for="item in clearanceFeeList">
<template v-for="item in freightFeeList">
<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">
<template v-for="item in clearanceFeeList">
<div :key="item.currencyId">{{item.amount || 0}}{{currencyMap[item.currencyId]}}</div>
</template>
</el-descriptions-item>
......@@ -724,7 +724,7 @@ export default {
if(this.$route.query.id){
this.getOffer()
}//else this.addProduct()
}else this.addProduct()
},
methods: {
getOffer(){
......@@ -799,10 +799,6 @@ export default {
this.calculationPrice()
},
addProduct(data){
if(!data && !this.form.lineId){
return this.$message.error(this.$t('请先选择路线'))
}
console.log('addProduct', JSON.stringify(data))
this.form.prodCreateReqVOList.push(data || {prodAttrArr:[]})
},
// 计算商品运费
......@@ -850,8 +846,19 @@ export default {
},
/** 提交按钮 */
submitForm(status) {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid, errors) => {
console.log({valid, errors})
if (!valid) {
return this.$showFormValidateErrors(errors);
/* let h = this.$createElement
this.$notify({
'title': '表单错误',
type: 'warning',
message: h('div', [
h('div', '请填写某某'),
h('div', '水电费水电费')
])
}) */
return;
}
......
......@@ -5,7 +5,7 @@
<div id="myproa">
<p style="padding-bottom:10px;font-size:16px;">
{{$t('订单号')}}{{detail.orderNo}}
&nbsp;&nbsp;&nbsp;{{$t('发货人电话')}}{{detail.name}} {{detail.phone}}
&nbsp;&nbsp;&nbsp;{{$t('发货人电话')}}{{detail.consignorVO.countryCode}} {{detail.consignorVO.phone}}
&nbsp;&nbsp;&nbsp;{{$t('提货地点')}}{{objective.titleZh}}
<img :src="qrcode" style="margin-left: 10px;width:17mm;vertical-align:middle" />
</p>
......@@ -33,7 +33,7 @@
</label>
</td>
<td style="text-align:center;padding:0 0px;border:1px dashed #ccc;">
{{item.marks}}
{{detail.marks}}
</td>
<td style="text-align:center;padding:0 0px;border:1px dashed #ccc;">
{{item.prodTitleZh}}<br/>{{item.prodTitleEn}}
......
<script>
// 对edit组件复用并更名,防止keepalive缓存数据
import edit from './edit.vue'
edit.name = 'OrderCreate'
export default edit
</script>
\ No newline at end of file
......@@ -360,12 +360,11 @@
</div>
</div>
<div>
<el-form-item :label="$t('预计送货日期')" prop="deliveryDate" class="ml-20">
<el-form-item :label="$t('预计送货日期')" prop="deliveryDate">
<el-date-picker v-model="form.deliveryDate" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</div>
<div>
<el-form-item :label="$t('收货方式')" prop="harvestMethod" class="ml-20">
<dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.harvestMethod" :filter="item => item.value == 1 || homeDeliveryService" defaultable />
</el-form-item>
......@@ -407,30 +406,39 @@
<el-button type="primary" slot="append" @click="getOrderCourierNumber">{{$t('生成单号')}}</el-button>
</el-input>
</el-form-item>
<br/>
<el-form-item :label="$t('是否双清')" v-if="[2,3,4].indexOf(+form.transportId) > -1">
<dict-selector v-model="form.doubleClear" form-type="radio" :type="DICT_TYPE.ECW_DOUBLE_CLEAR" />
</el-form-item>
<el-form-item :label="$t('航空公司')" v-if="[3,4].indexOf(+form.transportId) > -1">
<!--待查询备选数据-->
<el-select placeholder="" v-model="form.airlineCompany">
</el-select>
</el-form-item>
<el-form-item :label="$t('船公司')" v-if="[2].indexOf(+form.transportId) > -1">
<el-select placeholder="" v-model="form.shippingCompany">
</el-select>
</el-form-item>
<el-form-item :label="$t('清关证书')" v-if="[2,3,4].indexOf(+form.transportId) > -1">
<dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" />
</el-form-item>
<el-form-item label="清关证书备注" v-if="[2,3,4].indexOf(+form.transportId) > -1">
<el-input v-model="form.remarks" ></el-input>
</el-form-item>
<el-form-item label="是否拆包" v-if="[3,4].indexOf(+form.transportId) > -1">
<dict-selector v-model="form.isUnpack" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" />
</el-form-item>
<div v-if="[2,3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('是否双清')">
<dict-selector v-model="form.doubleClear" form-type="radio" :type="DICT_TYPE.ECW_DOUBLE_CLEAR" />
</el-form-item>
</div>
<div v-if="[3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('航空公司')">
<!--待查询备选数据-->
<el-select placeholder="" v-model="form.airlineCompany">
</el-select>
</el-form-item>
</div>
<div v-if="[2].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('船公司')">
<el-select placeholder="" v-model="form.shippingCompany">
</el-select>
</el-form-item>
</div>
<div v-if="[2,3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('清关证书')">
<dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" />
</el-form-item>
<el-form-item label="清关证书备注" >
<el-input v-model="form.remarks" ></el-input>
</el-form-item>
</div>
<div v-if="[3,4].indexOf(+form.transportId) > -1">
<el-form-item label="是否拆包">
<dict-selector v-model="form.isUnpack" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" />
</el-form-item>
</div>
<div class="form-section">
<el-form-item :label="$t('单票立刻转运')" v-if="[3,4].indexOf(+form.transportId) > -1">
<dict-selector v-model="form.isSingleTicketTransport" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" />
......@@ -513,6 +521,8 @@ import ChooseContactDialog from '@/components/ChooseContactDialog'
import QuickCreateCustomer from '@/components/QuickCreateCustomer'
import {calculationPrice} from '@/api/ecw/product'
// 缓存默认的表单数据
let defaultFormData = null
export default {
name: "EcwOrderEdit",
......@@ -716,6 +726,8 @@ export default {
}
},
created() {
defaultFormData = Object.assign({}, this.form)
this.couponTypeList = this.getDictDatas(this.DICT_TYPE.ECW_COUPON_TYPE)
this.couponTypeList.forEach(item => {
this.$set(this.selectedCoupons, item.value, null)
......@@ -935,6 +947,11 @@ export default {
// 添加的提交
createOrder(data).then(response => {
this.$modal.msgSuccess(this.$t("新增成功"));
// 重置数据
this.form = {...defaultFormData}
this.$refs.form.clearValidate()
this.$redirect('success?orderId=' + response.data)
});
});
......
......@@ -147,7 +147,6 @@ import {DICT_TYPE} from '@/utils/dict'
import { userList } from "@/api/system/user"
import CustomerSelector from '@/components/CustomerSelector'
import ProductSelector from '@/components/ProductSelector'
import getProduct from '@/api/ecw/product'
export default {
name: "Exception",
......
......@@ -106,6 +106,7 @@ import {getExceptionListByOrderId} from "@/api/ecw/orderException"
import {DICT_TYPE} from '@/utils/dict'
import {getOrder} from '@/api/ecw/order'
import FilePreview from '@/components/FilePreview'
import {getProduct} from '@/api/ecw/product'
export default {
name: "Pending",
......@@ -158,15 +159,14 @@ export default {
handEdit(row){
if(row.orderExceptionType=='order_no_quote_exception'){
getProduct(row.orderItemId).then(res=>{
this.$router.push({
name: 'ProductPrice',
query: {
product_id: row.orderItemId,
product_type: res.data.typeId
}
let url = '../../lineProject/product-price/edit'
if(row.orderItem){
getProduct(row.orderItemId).then(res=>{
url = '../../lineProject/product-price/edit?product_id='+row.orderItemId+'&product_type='+res.data.typeId
})
})
}
return this.$router.push(url)
}else if(row.orderExceptionType == 'order_heavy_cargo_exception'||row.orderExceptionType=='order_bulky_cargo_exception'){
this.$router.push({
path:"/order/weightDeal?id="+row.id+'&type='+row.orderExceptionType,
......
......@@ -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>
......@@ -58,11 +58,11 @@
<dict-tag :type="DICT_TYPE.INTERNAL_MESSAGE_TYPE" :value="scope.row.type" />
</template>
</el-table-column>
<!-- <el-table-column label="创建时间" align="center" prop="createTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.createTime) }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
......@@ -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="来源" prop="fromId">-->
<!-- <el-input v-model="form.fromId" placeholder="请输入站内信来源" />-->
<!-- </el-form-item>-->
<el-form-item label="来源" 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