Commit 36a3de98 authored by 我在何方's avatar 我在何方
parents bf995089 d202add2
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
//,fullscreen : false //是否开启初始化时即全屏,默认关闭 //,fullscreen : false //是否开启初始化时即全屏,默认关闭
//,imagePopup:true //图片操作的浮层开关,默认打开 ,imagePopup:true //图片操作的浮层开关,默认打开
//,autoSyncData:true //自动同步编辑器要提交的数据 //,autoSyncData:true //自动同步编辑器要提交的数据
//,emotionLocalization:false //是否开启表情本地化,默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹 //,emotionLocalization:false //是否开启表情本地化,默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹
...@@ -297,7 +297,7 @@ ...@@ -297,7 +297,7 @@
//,toolbarTopOffset:400 //,toolbarTopOffset:400
//设置远程图片是否抓取到本地保存 //设置远程图片是否抓取到本地保存
//,catchRemoteImageEnable: true //设置是否抓取远程图片 ,catchRemoteImageEnable: true //设置是否抓取远程图片
//pageBreakTag //pageBreakTag
//分页标识符,默认是_ueditor_page_break_tag_ //分页标识符,默认是_ueditor_page_break_tag_
......
...@@ -33,6 +33,14 @@ export function orderWarehouseInDelete(data){ ...@@ -33,6 +33,14 @@ export function orderWarehouseInDelete(data){
data:data, data:data,
}) })
} }
//获取退仓审批详情
export function getRollbackApprovalInfo(params){
return request({
url:'/order/order-warehouse-in/get-rollback-approval-info',
method:'get',
params
})
}
//通过bpmFormId 获得仓库审核单详情 //通过bpmFormId 获得仓库审核单详情
export function warehouseApprovalGetByFormId(params){ export function warehouseApprovalGetByFormId(params){
return request({ return request({
......
...@@ -166,7 +166,7 @@ export function getBrankByCustomer(data){ ...@@ -166,7 +166,7 @@ export function getBrankByCustomer(data){
// //
export function levelLogPage(params){ export function levelLogPage(params){
return request({ return request({
url:'/customer/level-log/page', url:'/customer/detail/infoList/levelLogPage',
method:'get', method:'get',
params params
}) })
...@@ -174,7 +174,31 @@ export function levelLogPage(params){ ...@@ -174,7 +174,31 @@ export function levelLogPage(params){
//获取信用等级日志列表 //获取信用等级日志列表
export function customerCreditLogPage(params){ export function customerCreditLogPage(params){
return request({ return request({
url:'/customer/credit-log/page', url:'/customer/detail/infoList/creditLogPage',
method:'get',
params
})
}
//客户详情订单分页
export function infoListOrderPage(params){
return request({
url:'/customer/detail/infoList/orderPage',
method:'get',
params
})
}
//客户详情 --- 报价
export function infoListOfferPage(params){
return request({
url:'/customer/detail/infoList/offerPage',
method:'get',
params
})
}
//客户数据
export function orderStatistics(params){
return request({
url:'/customer/detail/infoList/orderStatistics',
method:'get', method:'get',
params params
}) })
......
...@@ -171,6 +171,16 @@ export function orderWarehouseInUpdateApply(data){ ...@@ -171,6 +171,16 @@ export function orderWarehouseInUpdateApply(data){
data data
}) })
} }
// 入仓修改箱号
export function orderWarehouseInUpdateLabel(data){
return request({
url: '/order/order-warehouse-in/update-label',
method: 'post',
data
})
}
// 获取入仓修改审批单详情-审批使用 // 获取入仓修改审批单详情-审批使用
export function getWarehouseUpdateApprovalInfo(id) { export function getWarehouseUpdateApprovalInfo(id) {
return request({ return request({
...@@ -429,3 +439,19 @@ export function orderSpecialNeedGet(params){ ...@@ -429,3 +439,19 @@ export function orderSpecialNeedGet(params){
params params
}) })
} }
//取消调仓
export function cancelAdjust(data){
return request({
url:'/order/order-warehouse-in/cancel-adjust',
method:'post',
data
})
}
//取消订单费用申请
export function feeApplicationCancel(data){
return request({
url:'/order/fee-application/cancel',
method:'delete',
data
})
}
...@@ -10,6 +10,15 @@ export function createProductBrank(data) { ...@@ -10,6 +10,15 @@ export function createProductBrank(data) {
} }
// 更新品牌 // 更新品牌
export function updateProductBrank(data) {
return request({
url: '/ecw/product-brank/update',
method: 'put',
data: data
})
}
// 修改品牌默认收费模式
export function changeFeeModel(data) { export function changeFeeModel(data) {
return request({ return request({
url: '/ecw/product-brank/changeFeeMode', url: '/ecw/product-brank/changeFeeMode',
......
...@@ -36,11 +36,11 @@ export function getUser(id) { ...@@ -36,11 +36,11 @@ export function getUser(id) {
} }
// 获得用户分页 // 获得用户分页
export function getUserPage(query) { export function getUserPage(params) {
return request({ return request({
url: '/member/user/page', url: '/member/user/page',
method: 'get', method: 'get',
params: query params: params
}) })
} }
...@@ -104,8 +104,8 @@ export function memberUserAuditIdCard(query) { ...@@ -104,8 +104,8 @@ export function memberUserAuditIdCard(query) {
export function memberUserAuditEnterprise(query) { export function memberUserAuditEnterprise(query) {
return request({ return request({
url: '/member/user/audit-enterprise', url: '/member/user/audit-enterprise',
method: 'get', method: 'put',
params: query, data: query,
}) })
} }
...@@ -143,3 +143,11 @@ export function userCreateAuditEnterprise(data){ ...@@ -143,3 +143,11 @@ export function userCreateAuditEnterprise(data){
data:data, data:data,
}) })
} }
//新增用户
export function createAuditIdCard(data){
return request({
url:'/member/user/create-audit-idcard',
method:'put',
data
})
}
...@@ -60,3 +60,13 @@ export function exportNeedKnowExcel(query) { ...@@ -60,3 +60,13 @@ export function exportNeedKnowExcel(query) {
responseType: 'blob' responseType: 'blob'
}) })
} }
// 下载需知
export function download(query) {
return request({
url: '/system/need-know/download',
method: 'get',
params: query,
responseType: 'blob'
})
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<el-dialog title="选择联系人" visible :before-close="closeDialog" :close-on-click-modal="false"> <el-dialog title="选择联系人" visible :before-close="closeDialog" :close-on-click-modal="false">
<div class="header mb-10 flex-center"> <div class="header mb-10 flex-center">
<div class="flex-center">关键字:</div> <div class="flex-center">关键字:</div>
<el-input v-model="form.searchKey" placeholder="" class="w-200"></el-input> <el-input v-model="form.searchKey" clearable class="w-200"></el-input>
<el-button type="primary" class="ml-10" @click="handleQuery">搜索</el-button> <el-button type="primary" class="ml-10" @click="handleQuery">搜索</el-button>
</div> </div>
<div class="list"> <div class="list">
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</div> </div>
<div class="line"> <div class="line">
<div class="label">邮箱:</div> <div class="label">邮箱:</div>
<div class="value">{{item.emial}}</div> <div class="value">{{item.email}}</div>
</div> </div>
<div class="line"> <div class="line">
<div class="label">公司:</div> <div class="label">公司:</div>
......
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
</div> </div>
</template> </template>
<script> <script>
import {getNeedKnowByKey} from '@/api/system/needKnow' import {getNeedKnowByKey, download} from '@/api/system/needKnow'
import html2canvas from 'html2canvas' import html2canvas from 'html2canvas'
import FileSaver from 'file-saver' import FileSaver from 'file-saver'
import saveFie from '@/plugins/download'
export default { export default {
props:{ props:{
keyname: String keyname: String
...@@ -23,6 +24,11 @@ export default { ...@@ -23,6 +24,11 @@ export default {
}) })
}, },
methods:{ methods:{
downloadPdf(){
download({id: this.detail.id}).then(res => {
this.$download.pdf(res, '入仓须知.pdf')
})
},
download(){ download(){
// 直接保存图片 // 直接保存图片
let l = this.$loading() let l = this.$loading()
......
...@@ -108,11 +108,30 @@ import '@/styles/index.scss' ...@@ -108,11 +108,30 @@ import '@/styles/index.scss'
Vue.use(Element, { Vue.use(Element, {
size: Cookies.get('size') || 'medium' // set element-ui default size size: Cookies.get('size') || 'medium' // set element-ui default size
}) })
// 重定向路由(关闭当前标签)
Vue.prototype.$redirect = (path) =>{ Vue.prototype.$redirect = (path) =>{
let currentView = router.history.current let currentView = router.history.current
router.replace(path) router.replace(path)
store.dispatch("tagsView/delView", currentView) 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 Vue.config.productionTip = false
......
...@@ -24,6 +24,11 @@ export default { ...@@ -24,6 +24,11 @@ export default {
this.download0(data, fileName, 'text/markdown'); this.download0(data, fileName, 'text/markdown');
}, },
// 下载pdf
pdf(data, fileName){
this.download0(data, fileName, 'application/pdf');
},
download0(data, fileName, mineType) { download0(data, fileName, mineType) {
// 创建 blob // 创建 blob
let blob = new Blob([data], {type: mineType}); let blob = new Blob([data], {type: mineType});
......
...@@ -32,7 +32,11 @@ export default { ...@@ -32,7 +32,11 @@ export default {
// 关闭指定tab页签 // 关闭指定tab页签
closePage(obj) { closePage(obj) {
if (obj === undefined) { if (obj === undefined) {
return store.dispatch('tagsView/delView', router.currentRoute).then(({ lastPath }) => { return store.dispatch('tagsView/delView', router.currentRoute).then(({ visitedViews }) => {
let lastPath = '/'
if (visitedViews.length > 0){
lastPath = visitedViews[visitedViews.length - 1]
}
return router.push(lastPath || '/'); return router.push(lastPath || '/');
}); });
} }
......
...@@ -252,6 +252,13 @@ export const constantRoutes = [ ...@@ -252,6 +252,13 @@ export const constantRoutes = [
name: 'customerEdit', name: 'customerEdit',
meta: {title: '编辑客户', icon: '', activeMenu: '/customer/customer'} meta: {title: '编辑客户', icon: '', activeMenu: '/customer/customer'}
}, },
{
path: 'add-edit/:customerId(\\d+)',
component: (resolve) => import('@/views/ecw/customer/edit'),
props: true,
name: 'customerEdit',
meta: {title: '新建客户', icon: '', activeMenu: '/customer/customer'}
},
{ {
path: 'query/:customerId(\\d+)', path: 'query/:customerId(\\d+)',
component: (resolve) => import('@/views/ecw/customer/query'), component: (resolve) => import('@/views/ecw/customer/query'),
......
...@@ -317,7 +317,7 @@ export default { ...@@ -317,7 +317,7 @@ export default {
/** 表格订单号点击 */ /** 表格订单号点击 */
orderClick(row) { orderClick(row) {
orderTagList({ orderId: row.orderId }).then((res) => { orderTagList({ orderId: row.orderId }).then((res) => {
const { data = [] } = res; const { data = {} } = res;
this.orderList = []; this.orderList = [];
// 取最长的list // 取最长的list
let dataLength = data.loadList.length; let dataLength = data.loadList.length;
......
...@@ -74,6 +74,7 @@ export default { ...@@ -74,6 +74,7 @@ export default {
}; };
}, },
created() { created() {
this.getBoxInfo();
// 仓库 // 仓库
getWarehouseList().then((r) => { getWarehouseList().then((r) => {
this.warehouseList = r.data; this.warehouseList = r.data;
...@@ -99,9 +100,6 @@ export default { ...@@ -99,9 +100,6 @@ export default {
this.allUsers = data.list ?? []; this.allUsers = data.list ?? [];
}); });
}, },
activated() {
this.getBoxInfo();
},
methods: { methods: {
/* 获取仓库 */ /* 获取仓库 */
importCityName(id) { importCityName(id) {
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="客户类别" prop="type"> <el-form-item label="客户类别" prop="type">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" form-type="select" multiple v-model="form.type"></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" form-type="checkbox" multiple v-model="form.type"></dict-selector>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -412,7 +412,7 @@ import {getTradeCityList} from "@/api/ecw/region" ...@@ -412,7 +412,7 @@ import {getTradeCityList} from "@/api/ecw/region"
import {getWarehouseList} from "@/api/ecw/warehouse" import {getWarehouseList} from "@/api/ecw/warehouse"
import CustomerLineTable from '@/components/CustomerLineTable' import CustomerLineTable from '@/components/CustomerLineTable'
import {getCustomerSelect} from "@/api/ecw/customer" import {getCustomerSelect} from "@/api/ecw/customer"
import {listServiceUser} from "@/api/system/user" import {listServiceUser, listSimpleUsers} from "@/api/system/user"
import { getZhongPaoBest, getZhongPaoPage } from '@/api/ecw/zhongPao' import { getZhongPaoBest, getZhongPaoPage } from '@/api/ecw/zhongPao'
import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts' import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts'
import { getCountryListAll } from '@/api/ecw/country' import { getCountryListAll } from '@/api/ecw/country'
...@@ -456,7 +456,7 @@ export default { ...@@ -456,7 +456,7 @@ export default {
getCustomerSelect().then(r => { getCustomerSelect().then(r => {
this.customerSelect = r.data this.customerSelect = r.data
}) })
listServiceUser().then(r => { listSimpleUsers().then(r => {
this.serviceUserList = r.data this.serviceUserList = r.data
}) })
getCountryListAll().then(r => { getCountryListAll().then(r => {
......
...@@ -23,8 +23,8 @@ ...@@ -23,8 +23,8 @@
</el-form-item> </el-form-item>
<el-form-item label="客户经理" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in customerServiceList"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
...@@ -209,8 +209,8 @@ ...@@ -209,8 +209,8 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="客户经理" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="form.customerService" placeholder="请选择客户经理"> <el-select v-model="form.customerService" placeholder="请选择客户经理">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in customerServiceList"
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" /> :key="dict.id" :label="dict.nickname" :value="dict.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -535,7 +535,6 @@ export default { ...@@ -535,7 +535,6 @@ export default {
// this.nodeList = r.data // this.nodeList = r.data
// }) // })
listServiceUser().then(r=>{ listServiceUser().then(r=>{
console.log(r,'客服');
this.customerServiceList = r.data; this.customerServiceList = r.data;
}) })
getCountryListAll().then(r => { getCountryListAll().then(r => {
...@@ -627,7 +626,7 @@ export default { ...@@ -627,7 +626,7 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.$router.push('/customer/edit/0') this.$router.push('/customer/add-edit/0')
// this.reset(); // this.reset();
// this.open = true; // this.open = true;
// this.title = "添加客户"; // this.title = "添加客户";
......
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
<el-form-item label="报关方式:"> <el-form-item label="报关方式:">
<dict-selector <dict-selector
:type="DICT_TYPE.ECW_CUSTOMS_TYPE" :type="DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model="queryParams.customsType" v-model="queryParams.customerType"
/> />
</el-form-item> </el-form-item>
<el-form-item label="控货"> <el-form-item label="控货">
...@@ -119,7 +119,8 @@ ...@@ -119,7 +119,8 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="入仓时间:"> <el-form-item label="入仓时间:">
<el-date-picker v-model="queryParams.rucangtime" <el-date-picker v-model="rucangtime"
@change="changeDate"
style="width: 240px" style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange" type="daterange"
...@@ -172,55 +173,58 @@ ...@@ -172,55 +173,58 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination @pagination="creditLogPage" :page.sync="queryParams.page" :limit.sync="queryParams.row" :total="orderTotal" ></pagination> <pagination @pagination="getorderList" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" :total="orderTotal" ></pagination>
</el-card> </el-card>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="报价"> <el-tab-pane label="报价">
<el-table <el-table
:data="[]" :data="infoListOfferList"
style="width: 100%" style="width: 100%"
> >
<el-table-column <el-table-column
prop="" type="index"
label="序号" label="序号"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="" prop="number"
label="报价单号" label="报价单号"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="" prop="orderNo"
label="订单号" label="订单号"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="" prop="consignorName"
label="客户名称" label="客户名称"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="" prop="objectiveName"
label="目的地" label="目的地"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop=""
label="销售阶段" label="销售阶段"
> >
<template v-slot="{row}">
{{STATUS[row.status]}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="" prop="stopTime"
label="预计结束时间" label="预计结束时间"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="" prop="businessManagerName"
label="负责人" label="负责人"
> >
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination @pagination="getInfoListOfferPage" :page.sync="infoListOfferFrom.pageNo" :limit.sync="infoListOfferFrom.pageSize" :total="infoListOfferTotal" ></pagination>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="跟进"> <el-tab-pane label="跟进">
<customer-follow ref="customerFollow" :id="id" :customer-id="id"></customer-follow> <customer-follow ref="customerFollow" :id="id" :customer-id="id"></customer-follow>
...@@ -247,13 +251,13 @@ ...@@ -247,13 +251,13 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="数据"> <el-tab-pane label="数据">
<el-descriptions :column="2"> <el-descriptions :column="2">
<el-descriptions-item label="海空联运/海运拼柜/海运整柜/专线空运"></el-descriptions-item> <el-descriptions-item label="海空联运/海运拼柜/海运整柜/专线空运">{{orderStatisticsObj.hklyTotal || 0}}/{{orderStatisticsObj.hypgTotal || 0 }}/{{orderStatisticsObj.hyzgTotal || 0}}/{{orderStatisticsObj.zxkyTotal || 0}}</el-descriptions-item>
<el-descriptions-item label="最后交易日期"></el-descriptions-item> <el-descriptions-item label="最后交易日期">{{orderStatisticsObj.lastBusinessDate}}</el-descriptions-item>
<el-descriptions-item label="全部订单/控货订单"></el-descriptions-item> <el-descriptions-item label="全部订单/控货订单">{{orderStatisticsObj.allOrderTotal || 0}}/{{orderStatisticsObj.controlOrderTotal || 0}}</el-descriptions-item>
<el-descriptions-item label="最后交易单号"></el-descriptions-item> <el-descriptions-item label="最后交易单号">{{orderStatisticsObj.lastBusinessOrderNo}}</el-descriptions-item>
<el-descriptions-item label="报价/下单/入仓"></el-descriptions-item> <el-descriptions-item label="报价/下单/入仓">{{orderStatisticsObj.offerOrderTotal || 0}}/{{orderStatisticsObj.pickOrderTotal || 0}}/{{orderStatisticsObj.wareHousingTotal || 0}}</el-descriptions-item>
<el-descriptions-item label="储存量"></el-descriptions-item> <el-descriptions-item label="储存量">{{orderStatisticsObj.stock || 0}}</el-descriptions-item>
<el-descriptions-item label="已出货订单"></el-descriptions-item> <el-descriptions-item label="已出货订单">{{orderStatisticsObj.shipmentTotal || 0}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="品牌授权"> <el-tab-pane label="品牌授权">
...@@ -306,15 +310,23 @@ ...@@ -306,15 +310,23 @@
<el-tab-pane label="信用日志"> <el-tab-pane label="信用日志">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<div style="width:300px;height: 300px;margin: auto">
</div>
<el-button style="float: right;" type="primary" @click="dialogVisible = true" >添加信用日志</el-button> <el-button style="float: right;" type="primary" @click="dialogVisible = true" >添加信用日志</el-button>
<el-descriptions :column="5" border>
<el-descriptions-item label="信用分"></el-descriptions-item>
<el-descriptions-item label="身份认证"></el-descriptions-item>
<el-descriptions-item label="贷款"></el-descriptions-item>
<el-descriptions-item label="提货率"></el-descriptions-item>
<el-descriptions-item label="发货"></el-descriptions-item>
</el-descriptions>
</div> </div>
<el-table :data="customerCreditLogList"> <el-table :data="customerCreditLogList">
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column prop="name" label="规则名称"></el-table-column> <el-table-column prop="name" label="规则名称"></el-table-column>
<el-table-column prop="type" label="规则分类"></el-table-column> <el-table-column prop="type" label="规则分类">
<template v-slot="{row}">
<dict-tag :type="DICT_TYPE.CUSTOMER_CREDIT_RULE_TYPE" :value="row.type" />
</template>
</el-table-column>
<el-table-column prop="score" label="规则得分"></el-table-column> <el-table-column prop="score" label="规则得分"></el-table-column>
<el-table-column prop="remark" label="备注"></el-table-column> <el-table-column prop="remark" label="备注"></el-table-column>
<el-table-column label="添加人"></el-table-column> <el-table-column label="添加人"></el-table-column>
...@@ -323,16 +335,19 @@ ...@@ -323,16 +335,19 @@
{{parseTime(row.createTime)}} {{parseTime(row.createTime)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"></el-table-column>
</el-table> </el-table>
<pagination @pagination="creditLogPage" :page.sync="customerCreditLogFrom.page" :limit.sync="customerCreditLogFrom.row" :total="customerCreditLogFrom.total" ></pagination> <pagination @pagination="creditLogPage" :page.sync="customerCreditLogFrom.pageNo" :limit.sync="customerCreditLogFrom.pageSize" :total="customerCreditLogFrom.total" ></pagination>
</el-card> </el-card>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="等级日志"> <el-tab-pane label="等级日志">
<el-table style="width: 100%" :data="getCustomerGradeList"> <el-table style="width: 100%" :data="getCustomerGradeList">
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="规则名称" prop="name"></el-table-column> <el-table-column label="规则名称" prop="name"></el-table-column>
<el-table-column label="规则分类" prop="type"></el-table-column> <el-table-column label="规则分类" prop="type">
<template v-slot="{row}">
<dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL_RULE_TYPE" :value="row.type" />
</template>
</el-table-column>
<el-table-column label="规则得分" prop="score"></el-table-column> <el-table-column label="规则得分" prop="score"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column> <el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="时间"> <el-table-column label="时间">
...@@ -340,9 +355,8 @@ ...@@ -340,9 +355,8 @@
{{parseTime(row.createTime)}} {{parseTime(row.createTime)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"></el-table-column>
</el-table> </el-table>
<pagination @pagination="getCustomerGrade" :page.sync="getCustomerGradeFrom.page" :limit.sync="getCustomerGradeFrom.row" :total="getCustomerGradeFrom.total" ></pagination> <pagination @pagination="getCustomerGrade" :page.sync="getCustomerGradeFrom.pageNo" :limit.sync="getCustomerGradeFrom.pageSize" :total="getCustomerGradeFrom.total" ></pagination>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
...@@ -378,7 +392,7 @@ import { ...@@ -378,7 +392,7 @@ import {
getCustomerSelect, getCustomerSelect,
getBrankByCustomer, getBrankByCustomer,
levelLogPage, levelLogPage,
customerCreditLogPage customerCreditLogPage, infoListOrderPage, infoListOfferPage, orderStatistics
} from '@/api/ecw/customer' } from '@/api/ecw/customer'
import { DICT_TYPE, getDictDataLabel } from '@/utils/dict' import { DICT_TYPE, getDictDataLabel } from '@/utils/dict'
import { getProductTypeList } from '@/api/ecw/productType' import { getProductTypeList } from '@/api/ecw/productType'
...@@ -389,6 +403,7 @@ import CustomerComplaint from '@/views/ecw/customerComplaint' ...@@ -389,6 +403,7 @@ import CustomerComplaint from '@/views/ecw/customerComplaint'
import { listServiceUser } from '@/api/system/user' import { listServiceUser } from '@/api/system/user'
import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts' import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts'
import {getOrderPage} from "@/api/ecw/order"; import {getOrderPage} from "@/api/ecw/order";
import Template from "@/views/cms/template";
export default { export default {
name: 'query', name: 'query',
...@@ -396,6 +411,7 @@ export default { ...@@ -396,6 +411,7 @@ export default {
customerId: String customerId: String
}, },
components: { components: {
Template,
CustomerFollow, CustomerFollow,
CustomerComplaint CustomerComplaint
}, },
...@@ -424,9 +440,20 @@ export default { ...@@ -424,9 +440,20 @@ export default {
this.getCustomerGrade() this.getCustomerGrade()
this.creditLogPage() this.creditLogPage()
this.getorderList() this.getorderList()
this.getInfoListOfferPage()
this.getOrderStatistics()
}, },
data() { data() {
return { return {
STATUS:{
0:'取消报价',
1:'特价审批中',
2:'需求确认',
3:'跟进中',
4:'赢单',
5:'输单',
6:'报价完成'
},
dialogVisible:false, dialogVisible:false,
DICT_TYPE, DICT_TYPE,
getDictDataLabel, getDictDataLabel,
...@@ -480,23 +507,31 @@ export default { ...@@ -480,23 +507,31 @@ export default {
brandAuthorizationList:[], brandAuthorizationList:[],
brandAuthorizationTotal:0, brandAuthorizationTotal:0,
getCustomerGradeFrom:{ getCustomerGradeFrom:{
page:1, pageNo:1,
rows:10, pageSize:10,
total:0 total:0
}, },
getCustomerGradeList:[], getCustomerGradeList:[],
customerCreditLogFrom:{ customerCreditLogFrom:{
page:1, pageNo:1,
rows:10, pageSize:10,
total: 0, total:0
}, },
customerCreditLogList:[], customerCreditLogList:[],
rucangtime:[],
queryParams:{ queryParams:{
rows:10, pageSize:10,
page:1 pageNo:1
}, },
orderList:[], orderList:[],
orderTotal:0 orderTotal:0,
infoListOfferFrom:{
pageNo:1,
pageSize:10,
},
infoListOfferTotal:0,
infoListOfferList:[],
orderStatisticsObj:{}
} }
}, },
computed: { computed: {
...@@ -519,34 +554,66 @@ export default { ...@@ -519,34 +554,66 @@ export default {
} }
}, },
methods:{ methods:{
changeDate(val){
if(val){
this.queryParams.houseStartDate = val[0];
this.queryParams.houseEndDate = val[1];
}else {
this.queryParams.houseStartDate = undefined;
this.queryParams.houseEndDate = undefined;
}
},
//品牌授权
getBrankByCustomerList(){ getBrankByCustomerList(){
getBrankByCustomer({...this.brandAuthorizationFrom,customerId:this.id}).then(r => {this.brandAuthorizationList = r.data.list; this.brandAuthorizationTotal = r.data.total}) getBrankByCustomer({...this.brandAuthorizationFrom,customerId:this.id}).then(r => {this.brandAuthorizationList = r.data.list; this.brandAuthorizationTotal = r.data.total})
}, },
getCustomerGrade(){ getCustomerGrade(){
levelLogPage({...this.getCustomerGradeFrom,customerId:this.id}).then(r => { levelLogPage({...this.getCustomerGradeFrom,customerId:this.id,total:undefined}).then(r => {
console.log(r) console.log(r,'客户等级');
if(r.code === 0){ if(r.code === 0){
this.getCustomerGradeList = r.data.list; this.getCustomerGradeList = r.data.list;
this.getCustomerGradeFrom.total = r.data.total; this.getCustomerGradeFrom.total = r.data.total;
} }
}) })
}, },
// 获取信用等级日志列表
creditLogPage(){ creditLogPage(){
customerCreditLogPage({...this.customerCreditLogFrom,customerId:this.id}).then(r => { customerCreditLogPage({...this.customerCreditLogFrom,customerId:this.id}).then(r => {
if(r.code === 0){ if(r.code === 0){
console.log(r,'r');
this.customerCreditLogList = r.data.list; this.customerCreditLogList = r.data.list;
this.customerCreditLogFrom.total = r.data.total; this.customerCreditLogFrom.total = r.data.total;
} }
}) })
}, },
//订单
getorderList(){ getorderList(){
getOrderPage({consignorId:this.id,...this.queryParams}).then(r => { infoListOrderPage({customerId:this.id,...this.queryParams}).then(r => {
console.log(r) console.log(r)
if(r.code === 0){ if(r.code === 0){
this.orderList = r.data.list this.orderList = r.data.list
this.orderTotal = r.data.total this.orderTotal = r.data.total
} }
}) })
},
// 客户报价
getInfoListOfferPage(){
infoListOfferPage({...this.infoListOfferFrom,customerId:this.id}).then(r => {
console.log(r,'报价')
this.infoListOfferList = r.data.list;
this.infoListOfferTotal = r.data.total;
}).catch(r => {
console.log(r,'报价')
})
},
// 数据
getOrderStatistics(){
orderStatistics({customerId:this.id}).then(r => {
console.log(r,'数据')
if(r.code === 0){
this.orderStatisticsObj = r.data
}
})
} }
} }
} }
......
...@@ -23,8 +23,8 @@ ...@@ -23,8 +23,8 @@
</el-form-item> </el-form-item>
<el-form-item label="客户经理" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in serviceStaffOptions"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
...@@ -195,8 +195,8 @@ ...@@ -195,8 +195,8 @@
<el-form-item label="客户经理" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="form.customerService" placeholder="请选择客户经理"> <el-select v-model="form.customerService" placeholder="请选择客户经理">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in serviceStaffOptions"
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" /> :key="dict.id" :label="dict.nickname" :value="dict.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
</el-form-item> </el-form-item>
<el-form-item label="客户经理" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in customerServiceList"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
...@@ -271,7 +271,7 @@ export default { ...@@ -271,7 +271,7 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.$router.push('/customer/edit/0') this.$router.push('/customer/add-edit/0')
// this.reset(); // this.reset();
// this.open = true; // this.open = true;
// this.title = "添加客户"; // this.title = "添加客户";
......
...@@ -244,7 +244,7 @@ export default { ...@@ -244,7 +244,7 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.$router.push('/customer/edit/0') this.$router.push('/customer/add-edit/0')
// this.reset(); // this.reset();
// this.open = true; // this.open = true;
// this.title = "添加客户"; // this.title = "添加客户";
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
</el-form-item> </el-form-item>
<el-form-item label="客户经理" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in customerServiceList"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
...@@ -278,7 +278,7 @@ export default { ...@@ -278,7 +278,7 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.$router.push('/customer/edit/0') this.$router.push('/customer/add-edit/0')
// this.reset(); // this.reset();
// this.open = true; // this.open = true;
// this.title = "添加客户"; // this.title = "添加客户";
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
<div slot="header" class="card-title">{{$t('新建报价单')}}</div> <div slot="header" class="card-title">{{$t('新建报价单')}}</div>
<el-form-item :label="$t('所属人')" prop="relation"> <el-form-item :label="$t('所属人')" prop="relation">
<el-radio-group v-model="form.relation"> <el-radio-group v-model="form.relation">
<el-radio label="1">{{$t('发件人')}}</el-radio> <el-radio :label="1">{{$t('发件人')}}</el-radio>
<el-radio label="2">{{$t('收件人')}}</el-radio> <el-radio :label="2">{{$t('收件人')}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<br/> <br/>
...@@ -21,39 +21,39 @@ ...@@ -21,39 +21,39 @@
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('发货人')" prop="consignorId" > <el-form-item :label="$t('发货人')" prop="consignorId" >
<div class="contact"> <div class="contact">
<el-input v-model="form.consignorName" placeholder="选择或新建" disabled/> <el-input v-model="form.consignorName" placeholder="选择或新建" disabled style="width:120px"/>
<img src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignor'" /> <img src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignor'" />
<img src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='1'" /> <img src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='1'" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货人电话')" prop="consignorPhone"> <el-form-item :label="$t('发货人电话')" prop="consignorPhone">
<!-- <area-code-selector v-model="form.consignorCountryCode" class="w-200 mr-10" disabled /> --> <!-- <area-code-selector v-model="form.consignorCountryCode" class="w-200 mr-10" disabled /> -->
<el-input :value="`${form.consignorCountryCode || ''} ${form.consignorPhone || ''}`" class="w-200" disabled /> <el-input :value="`${form.consignorCountryCode || ''} ${form.consignorPhone || ''}`" class="w-200" disabled/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货人公司')" prop="consignorCompany"> <el-form-item :label="$t('发货人公司')" prop="consignorCompany">
<el-input v-model="form.consignorCompany" disabled /> <el-input v-model="form.consignorCompany" disabled class="w-200"/>
</el-form-item> </el-form-item>
<el-form-item label="Email" prop="consignorEmail"> <el-form-item label="Email" prop="consignorEmail">
<el-input v-model="form.consignorEmail" disabled /> <el-input v-model="form.consignorEmail" disabled class="w-200"/>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('收货人')" prop="consigneeId"> <el-form-item :label="$t('收货人')" prop="consigneeId">
<div class="contact"> <div class="contact">
<el-input v-model="form.consigneeName" placeholder="请选择或新建" :disabled="true"/> <el-input v-model="form.consigneeName" placeholder="请选择或新建" :disabled="true" style="width:120px"/>
<img src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignee'" /> <img src="@/assets/images/phonebook.png" class="phonebook" @click="contactChooseType='consignee'" />
<img src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='2'" /> <img src="@/assets/images/new_customer.png" class="phonebook" @click="quickCreateType='2'" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人电话')" prop="consigneePhone"> <el-form-item :label="$t('收货人电话')" prop="consigneePhone">
<!-- <area-code-selector v-model="form.consigneeCountryCode" class="w-200 mr-10" disabled/> --> <!-- <area-code-selector v-model="form.consigneeCountryCode" class="w-200 mr-10" disabled/> -->
<el-input :value="`${form.consigneeCountryCode || ''} ${form.consigneePhone || ''}`" class="w-200" disabled/> <el-input :value="`${form.consigneeCountryCode || ''} ${form.consigneePhone || ''}`" class="w-200"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人公司')" prop="consigneeCompany"> <el-form-item :label="$t('收货人公司')" prop="consigneeCompany">
<el-input v-model="form.consigneeCompany" :disabled="true" /> <el-input v-model="form.consigneeCompany" :disabled="true" class="w-200"/>
</el-form-item> </el-form-item>
<el-form-item label="Email" prop="consigneeEmail"> <el-form-item label="Email" prop="consigneeEmail">
<el-input v-model="form.consigneeEmail" :disabled="true"/> <el-input v-model="form.consigneeEmail" :disabled="true" class="w-200"/>
</el-form-item> </el-form-item>
</div> </div>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('运输方式')" prop="transportId"> <el-form-item :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" @input="calculationPrice" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" @input="calculationPrice" class="w-200"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'" prop="channelId"> <el-form-item :label="$t('出货渠道')" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'" prop="channelId">
<selector <selector
...@@ -103,18 +103,19 @@ ...@@ -103,18 +103,19 @@
value-field="channelId" value-field="channelId"
label-field="nameZh" label-field="nameZh"
@input="calculationPrice" @input="calculationPrice"
class="w-200"
></selector> ></selector>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('始发城市')" prop="departureId"> <el-form-item :label="$t('始发城市')" prop="departureId">
<el-select v-model="form.departureId" :placeholder="$t('请选择始发地')"> <el-select v-model="form.departureId" :placeholder="$t('请选择始发地')" class="w-200">
<el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的城市')" prop="objectiveId"> <el-form-item :label="$t('目的城市')" prop="objectiveId">
<el-select v-model="form.objectiveId" :placeholder="$t('请选择目的地')"> <el-select v-model="form.objectiveId" :placeholder="$t('请选择目的地')" class="w-200">
<el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -122,7 +123,7 @@ ...@@ -122,7 +123,7 @@
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('选择线路')" prop="lineId"> <el-form-item :label="$t('选择线路')" prop="lineId">
<!-- <el-input :value="getRouterNameById(form.lineId)" readonly :placeholder="$t('请在右侧选择线路')"></el-input> --> <!-- <el-input :value="getRouterNameById(form.lineId)" readonly :placeholder="$t('请在右侧选择线路')"></el-input> -->
<el-input :value="selectedRouter ? $l(selectedRouter, 'startTitle') + ' > ' + $l(selectedRouter, 'destTitle') : ''" disabled :placeholder="$t('请在右侧选择线路')"></el-input> <el-input :value="selectedRouter ? $l(selectedRouter, 'startTitle') + ' > ' + $l(selectedRouter, 'destTitle') : ''" disabled :placeholder="$t('请在右侧选择线路')" class="w-200"></el-input>
</el-form-item> </el-form-item>
<select size="5" v-model="form.lineId" style="min-width: 300px; border:1px solid #DCDFE6; border-radius:4px"> <select size="5" v-model="form.lineId" style="min-width: 300px; border:1px solid #DCDFE6; border-radius:4px">
<template v-for="item in routerList"> <template v-for="item in routerList">
...@@ -208,7 +209,7 @@ ...@@ -208,7 +209,7 @@
}" }"
class="mb-0 mr-0" class="mb-0 mr-0"
> >
<el-input v-model="scope.row.worth" /> <el-input v-model="scope.row.worth" @input="calculationPrice" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
...@@ -294,13 +295,13 @@ ...@@ -294,13 +295,13 @@
{{fee.insuranceFee || 0}} {{$t('美元')}} {{fee.insuranceFee || 0}} {{$t('美元')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总运费')"> <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> <div :key="item.currencyId">{{item.amount || 0}}{{currencyMap[item.currencyId]}}</div>
</template> </template>
</el-descriptions-item> </el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项--> <!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item :label="$t('总清关费')"> <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> <div :key="item.currencyId">{{item.amount || 0}}{{currencyMap[item.currencyId]}}</div>
</template> </template>
</el-descriptions-item> </el-descriptions-item>
...@@ -365,7 +366,7 @@ ...@@ -365,7 +366,7 @@
<div class="card-title" slot="header">{{$t('通用')}}</div> <div class="card-title" slot="header">{{$t('通用')}}</div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('唛头')" prop="marks"> <el-form-item :label="$t('唛头')" prop="marks">
<el-input v-model="form.marks" placeholder=""></el-input> <el-input v-model="form.marks" placeholder="" class="w-200"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
...@@ -375,15 +376,15 @@ ...@@ -375,15 +376,15 @@
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('预计结束时间')" prop="stopTime"> <el-form-item :label="$t('预计结束时间')" prop="stopTime">
<el-date-picker v-model="form.stopTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="form.stopTime" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker>
</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" formatter="bool" v-model="form.control" form-type="radio" defaultable /> <dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.control" form-type="radio" />
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('竞争对手')" prop="competitor"> <el-form-item :label="$t('竞争对手')" prop="competitor">
<el-input v-model="form.competitor" placeholder=""></el-input> <el-input v-model="form.competitor" placeholder="" class="w-200"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('重要程度')" prop="importance"> <el-form-item :label="$t('重要程度')" prop="importance">
<el-rate v-model="form.importance"></el-rate> <el-rate v-model="form.importance"></el-rate>
...@@ -391,10 +392,10 @@ ...@@ -391,10 +392,10 @@
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('价格有效时间')" prop="startTime"> <el-form-item :label="$t('价格有效时间')" prop="startTime">
<el-date-picker v-model="form.startTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="form.startTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="" prop="endTime"> <el-form-item label="" prop="endTime">
<el-date-picker v-model="form.endTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="form.endTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker>
</el-form-item> </el-form-item>
</div> </div>
...@@ -404,7 +405,7 @@ ...@@ -404,7 +405,7 @@
接口要求数据为整数,所以增加trade_type类型的字典,用1234代码以下不同类型 接口要求数据为整数,所以增加trade_type类型的字典,用1234代码以下不同类型
FOB(离岸价),CIF(到岸价),CNF(成本加运费),EXW(出厂价) FOB(离岸价),CIF(到岸价),CNF(成本加运费),EXW(出厂价)
--> -->
<dict-selector :type="DICT_TYPE.ECW_TRADE_TYPE" fomtter="number" v-model="form.tradeType" /> <dict-selector :type="DICT_TYPE.ECW_TRADE_TYPE" fomtter="number" v-model="form.tradeType" class="w-200"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('交货地址')"> <el-form-item :label="$t('交货地址')">
...@@ -464,7 +465,8 @@ ...@@ -464,7 +465,8 @@
<el-form-item label="" class="mt-20"> <el-form-item label="" class="mt-20">
<el-button type="primary" @click="submitForm">{{$t('确定')}}</el-button> <el-button type="primary" @click="submitForm(2)">{{$t('保存草稿')}}</el-button>
<el-button type="primary" @click="submitForm(3)">{{$t('确认报价')}}</el-button>
<el-button @click="$store.dispatch('tagsView/delCurrentView')">{{$t('取消')}}</el-button> <el-button @click="$store.dispatch('tagsView/delCurrentView')">{{$t('取消')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -517,6 +519,7 @@ export default { ...@@ -517,6 +519,7 @@ export default {
form: { form: {
sendstatus:0, sendstatus:0,
type: [], type: [],
control: false,
isCargoControl: false, isCargoControl: false,
prodCreateReqVOList:[], prodCreateReqVOList:[],
transportVO: {} transportVO: {}
...@@ -706,6 +709,11 @@ export default { ...@@ -706,6 +709,11 @@ export default {
}) })
} }
}, },
activated(){
if(this.form.offerId != this.$route.query.id){
this.getOffer()
}
},
created() { created() {
getProductAttrList().then(res => this.productAttrList = res.data) getProductAttrList().then(res => this.productAttrList = res.data)
getChannelList().then(res => this.channelList = res.data) getChannelList().then(res => this.channelList = res.data)
...@@ -715,6 +723,11 @@ export default { ...@@ -715,6 +723,11 @@ export default {
this.transportList = this.getDictDatas(this.DICT_TYPE.ECW_TRANSPORT_TYPE) this.transportList = this.getDictDatas(this.DICT_TYPE.ECW_TRANSPORT_TYPE)
if(this.$route.query.id){ if(this.$route.query.id){
this.getOffer()
}else this.addProduct()
},
methods: {
getOffer(){
getOffer(this.$route.query.id).then(res => { getOffer(this.$route.query.id).then(res => {
let formData = res.data let formData = res.data
formData.type = formData.type ? formData.type.split(',').filter(item => item != '') : [] formData.type = formData.type ? formData.type.split(',').filter(item => item != '') : []
...@@ -748,9 +761,7 @@ export default { ...@@ -748,9 +761,7 @@ export default {
this.onContactChoose(data.list.find(item => item.customerContactsId == res.data.consignorId)) this.onContactChoose(data.list.find(item => item.customerContactsId == res.data.consignorId))
}) })
}) })
}//else this.addProduct() },
},
methods: {
onContactChoose(contact){ onContactChoose(contact){
console.log('选择联系人', contact) console.log('选择联系人', contact)
if(!this.contactChooseType && !this.quickCreateType) return if(!this.contactChooseType && !this.quickCreateType) return
...@@ -788,10 +799,6 @@ export default { ...@@ -788,10 +799,6 @@ export default {
this.calculationPrice() this.calculationPrice()
}, },
addProduct(data){ 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:[]}) this.form.prodCreateReqVOList.push(data || {prodAttrArr:[]})
}, },
// 计算商品运费 // 计算商品运费
...@@ -838,9 +845,20 @@ export default { ...@@ -838,9 +845,20 @@ export default {
}) })
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm(status) {
this.$refs["form"].validate(valid => { this.$refs["form"].validate((valid, errors) => {
console.log({valid, errors})
if (!valid) { if (!valid) {
return this.$showFormValidateErrors(errors);
/* let h = this.$createElement
this.$notify({
'title': '表单错误',
type: 'warning',
message: h('div', [
h('div', '请填写某某'),
h('div', '水电费水电费')
])
}) */
return; return;
} }
...@@ -851,18 +869,21 @@ export default { ...@@ -851,18 +869,21 @@ export default {
item.transportId = this.form.transportId item.transportId = this.form.transportId
// item.brandType = item.brand ? 1 : 0 // item.brandType = item.brand ? 1 : 0
}) })
this.transportList.map(item => { /* this.transportList.map(item => {
if(item._enabled){ if(item._enabled){
item.lineIds = Array.from(item.lineIdSet).join(',') item.lineIds = Array.from(item.lineIdSet).join(',')
item.channelIds = Array.from(item.channelIdSet).join(',') item.channelIds = Array.from(item.channelIdSet).join(',')
} }
}) }) */
// 修改的提交 // 修改的提交
if (this.form.offerId != null) { if (this.form.offerId != null) {
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
// transportUpdateReqVOList: this.transportList.filter(item => item._enabled), // transportUpdateReqVOList: this.transportList.filter(item => item._enabled),
prodUpdateReqVOList: this.getProductListWithDefaultValue() prodUpdateReqVOList: this.getProductListWithDefaultValue()
}) })
if(data.status < 3){
data.status = status
}
updateOffer(data).then(response => { updateOffer(data).then(response => {
this.$modal.msgSuccess(this.$t("修改成功")); this.$modal.msgSuccess(this.$t("修改成功"));
this.$router.back() this.$router.back()
...@@ -871,7 +892,8 @@ export default { ...@@ -871,7 +892,8 @@ export default {
} }
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
// transportCreateReqVOList: this.transportList.filter(item => item._enabled), // transportCreateReqVOList: this.transportList.filter(item => item._enabled),
prodCreateReqVOList: this.getProductListWithDefaultValue() prodCreateReqVOList: this.getProductListWithDefaultValue(),
status
}) })
// 添加的提交 // 添加的提交
createOffer(data).then(response => { createOffer(data).then(response => {
......
...@@ -2,19 +2,67 @@ ...@@ -2,19 +2,67 @@
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <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="number">
<el-input v-model="queryParams.number" :placeholder="$t('请输入报价单号')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.number" :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">
<el-input v-model="queryParams.orderNo" :placeholder="$t('请输入订单编号')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.orderNo" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/>
<!--// TODO -->
</el-form-item>
<el-form-item :label="$t('创建时间')" prop="orderNo">
<el-date-picker v-model="queryParams.beginCreateTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
<el-date-picker v-model="queryParams.endCreateTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item :label="$t('始发地')" prop="departureId">
<el-select v-model="queryParams.departureId" :placeholder="$t('请选择始发地')">
<el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的地')" prop="objectiveId">
<el-select v-model="queryParams.objectiveId" :placeholder="$t('请选择目的地')">
<el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item :label="$t('运输方式')" prop="orderNo">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> </el-form-item>
<el-form-item :label="$t('商品')" prop="orderNo">
<el-input v-model="queryParams.product" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery"/>
<!--// TODO -->
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货')" prop="control">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" />
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="orderNo">
<user-selector v-model="queryParams.salesman" />
<!--// TODO -->
</el-form-item>
<el-form-item :label="$t('销售阶段')" prop="status">
<dict-selector :type="DICT_TYPE.ECW_OFFER_STATUS" v-model="queryParams.status" />
</el-form-item>
<el-form-item :label="$t('报关方式')" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" />
</el-form-item>
<div>
<el-form-item :label="$t('预计结束时间')" prop="orderNo">
<el-date-picker v-model="queryParams.beginStopTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
<el-date-picker v-model="queryParams.endStopTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
</el-form-item>
</div>
</el-form> </el-form>
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
...@@ -55,7 +103,7 @@ ...@@ -55,7 +103,7 @@
<el-table-column :label="$t('预计销售额')" align="left" prop="estCost"> <el-table-column :label="$t('预计销售额')" align="left" prop="estCost">
<template slot-scope="{row}"> <template slot-scope="{row}">
<div class="" v-for="item in row.estCostVO.feeDtoList" :key="item.feeType"> <div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex">
<dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" /> <dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" />
{{item.amount}} {{currencyMap[item.currencyId]}} {{item.amount}} {{currencyMap[item.currencyId]}}
</div> </div>
...@@ -65,32 +113,58 @@ ...@@ -65,32 +113,58 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="[1,2].indexOf(scope.row.status) > -1"> <el-dropdown>
<el-button size="mini" type="text" @click="$router.push('detail?offerId=' + scope.row.offerId)" <el-button icon="el-icon-plus" circle type="primary"></el-button>
v-hasPermi="['ecw:offer:update']">{{$t('详情')}}</el-button> <el-dropdown-menu slot="dropdown">
<el-button size="mini" type="text" @click="$router.push('edit?id=' + scope.row.offerId)" <el-dropdown-item @click.native="$router.push('detail?offerId=' + scope.row.offerId)">{{$t('详情')}}</el-dropdown-item>
v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-button> <el-dropdown-item v-if="[1,2].indexOf(scope.row.status) > -1" @click.native="$router.push('edit?id=' + scope.row.offerId)" v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-dropdown-item>
<el-button size="mini" type="text" @click="$router.push('logList?offerId=' + scope.row.offerId)" <el-dropdown-item v-if="[1,2].indexOf(scope.row.status) > -1" @click.native="$router.push('logList?offerId=' + scope.row.offerId)" v-hasPermi="['ecw:offer:update']">{{$t('跟进')}}</el-dropdown-item>
v-hasPermi="['ecw:offer:update']">{{$t('跟进')}}</el-button> <el-dropdown-item v-if="[2].indexOf(scope.row.status) > -1" @click.native="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" v-hasPermi="['ecw:offer:update']">{{$t('结果')}}</el-dropdown-item>
</template> <el-dropdown-item v-if="[2].indexOf(scope.row.status) > -1" @click.native="$router.push('/offer/special/' + scope.row.offerId)" v-hasPermi="['ecw:offer:update']">{{$t('特价')}}</el-dropdown-item>
<template v-if="scope.row.status == 2"> <el-dropdown-item v-if="[1,2].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-dropdown-item>
<el-button size="mini" type="text" @click="$router.push('detail?offerId=' + scope.row.offerId)" <el-dropdown-item v-if="[0].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-dropdown-item>
v-hasPermi="['ecw:offer:update']">{{$t('详情')}}</el-button> <el-dropdown-item v-if="[1,2,4,5].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-dropdown-item>
<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-dropdown-menu>
<el-button size="mini" type="text" @click="$router.push('/offer/special/' + scope.row.offerId)" </el-dropdown>
v-hasPermi="['ecw:offer:update']">{{$t('特价')}}</el-button>
<!-- <el-popover
<el-button size="mini" type="text" style="margin-left: 10px;"
v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-button> placement="bottom"
width="100"
<el-button size="mini" type="text" trigger="hover">
v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-button> <el-button slot="reference" icon="el-icon-plus" circle type="primary"></el-button>
</template> <div style=" display:flex; flex-direction:column">
<el-button size="mini" type="text" @click="$router.push('detail?offerId=' + scope.row.offerId)" <template v-if="[1,2].indexOf(scope.row.status) > -1">
v-hasPermi="['ecw:offer:update']">{{$t('详情')}}</el-button> <el-link type="primary" @click.native="$router.push('detail?offerId=' + scope.row.offerId)"
<el-button size="mini" type="text" v-hasPermi="['ecw:offer:detail']">{{$t('详情')}}</el-link>
v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-button> <el-link type="primary" @click="$router.push('edit?id=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-link>
<el-link type="primary" @click="$router.push('logList?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('跟进')}}</el-link>
</template>
<template v-if="scope.row.status == 2">
<el-button size="mini" type="text" @click="$router.push('detail?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('详情')}}</el-button>
<el-button size="mini" type="text" @click="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)"
v-hasPermi="['ecw:offer:update']">{{$t('结果')}}</el-button>
<el-button size="mini" type="text" @click="$router.push('/offer/special/' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('特价')}}</el-button>
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-button>
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-button>
</template>
<el-button size="mini" type="text" @click="$router.push('detail?offerId=' + scope.row.offerId)"
v-hasPermi="['ecw:offer:update']">{{$t('详情')}}</el-button>
<el-button size="mini" type="text"
v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-button>
</div>
</el-popover> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -104,10 +178,12 @@ ...@@ -104,10 +178,12 @@
<script> <script>
import { deleteOffer, getOfferPage, exportOfferExcel } from "@/api/ecw/offer"; import { deleteOffer, getOfferPage, exportOfferExcel } from "@/api/ecw/offer";
import { getCurrencyList } from '@/api/ecw/currency'; import { getCurrencyList } from '@/api/ecw/currency';
import {getTradeCityList} from '@/api/ecw/region'
import UserSelector from '@/components/UserSelector'
export default { export default {
name: "Offer", name: "Offer",
components: { components: {
UserSelector
}, },
data() { data() {
return { return {
...@@ -160,7 +236,8 @@ export default { ...@@ -160,7 +236,8 @@ export default {
estCost: null, estCost: null,
sendstatus: null, sendstatus: null,
}, },
currencyList: [] currencyList: [],
tradeCityList:[]
}; };
}, },
...@@ -172,12 +249,21 @@ export default { ...@@ -172,12 +249,21 @@ export default {
}) })
return map return map
}, },
exportCityList() {
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList() {
return this.tradeCityList.filter(item => item.type == 1)
},
}, },
created() { created() {
this.getList(); getTradeCityList().then(res => this.tradeCityList = res.data)
getCurrencyList().then(res => { getCurrencyList().then(res => {
this.currencyList = res.data this.currencyList = res.data
}) })
this.getList();
}, },
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</template> </template>
<el-form-item> <el-form-item>
<el-button type="primary" @click="submitForm">{{form.result==1?"确定并新增草稿订单":"提交"}}</el-button> <el-button type="primary" @click="submitForm">{{form.result==1? $t("确定并新增草稿订单") : $t("提交")}}</el-button>
<el-button @click="$router.back()">返 回</el-button> <el-button @click="$router.back()">返 回</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -86,8 +86,12 @@ export default { ...@@ -86,8 +86,12 @@ export default {
return; return;
} }
let data = Object.assign({}, this.form) let data = Object.assign({}, this.form)
updateOfferResult(data).then((response) => { updateOfferResult(data).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess(this.$t("赢单成功"));
if(response.data > 0){
this.$redirect('../order/edit?id=' + response.data)
return
}
this.$router.back(); this.$router.back();
}); });
}); });
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="offer.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="offer.transportId" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')"> <el-descriptions-item :label="$t('出货渠道')">
// TODO {{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>
...@@ -47,25 +47,25 @@ ...@@ -47,25 +47,25 @@
<el-table-column <el-table-column
:label="$t('原价')"> :label="$t('原价')">
<template v-slot="{row}"> <template v-slot="{row}">
运费{{ row.originalSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} {{$t('运费')}}{{ row.originalSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
清关费:{{ row.originalClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="成本价"> label="成本价">
<template v-slot="{row}"> <template v-slot="{row}">
运费{{ row.seaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} {{$t('运费')}}{{ row.seaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
清关费:{{ row.clearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="销售价"> :label="$t('销售价')">
<template v-slot="{row}"> <template v-slot="{row}">
运费:{{ row.seaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} {{$t('运费')}}{{ row.saleSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
清关费:{{ row.clearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -96,6 +96,7 @@ import {getCurrencyList} from "@/api/ecw/currency" ...@@ -96,6 +96,7 @@ import {getCurrencyList} from "@/api/ecw/currency"
import {getProductAttrList} from "@/api/ecw/productAttr" 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'
export default { export default {
name: "OfferSpecial", name: "OfferSpecial",
components: { components: {
...@@ -128,7 +129,8 @@ export default { ...@@ -128,7 +129,8 @@ export default {
currencyList:[], currencyList:[],
productAttrList:[], productAttrList:[],
objective: null, objective: null,
departure: null departure: null,
channel: null, // 渠道信息
}; };
}, },
watch:{ watch:{
...@@ -147,6 +149,13 @@ export default { ...@@ -147,6 +149,13 @@ export default {
this.loading = false this.loading = false
this.offer = response.data this.offer = response.data
this.getCity() this.getCity()
this.getChannel()
})
},
getChannel(){
if(!this.offer.channelId) return
getChannel(this.offer.channelId).then(res => {
this.channel = res.data
}) })
}, },
getCity(){ getCity(){
...@@ -171,14 +180,14 @@ export default { ...@@ -171,14 +180,14 @@ export default {
currencyMap(){ currencyMap(){
let map = {} let map = {}
this.currencyList.forEach(item => { this.currencyList.forEach(item => {
map[item.id] = item.titleZh map[item.id] = this.$l(item, 'title')
}) })
return map return map
}, },
unitMap(){ unitMap(){
let map = {} let map = {}
this.unitList.forEach(item => { this.unitList.forEach(item => {
map[item.id] = item.titleZh map[item.id] = this.$l(item, 'title')
}) })
return map return map
} }
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
{{row.orderBackVO.costVO.totalVolume}} {{row.orderBackVO.costVO.totalVolume}}
</div> </div>
<div> <div>
{{row.orderBackVO.costVO.totalWorth}}KG {{row.orderBackVO.costVO.totalWeight}}KG
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -78,7 +78,11 @@ ...@@ -78,7 +78,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('唛头')" align="center" prop="marks" /> <el-table-column :label="$t('唛头')" align="center" prop="marks" />
<el-table-column :label="$t('箱数')" align="center" prop="sumNum" /> <el-table-column :label="$t('箱数')" align="center" prop="sumNum" >
<template v-slot="{row}">
{{row.inWarehouseState > 1 ? row.sumNum : row.totalNum}}
</template>
</el-table-column>
<el-table-column :label="$t('已放箱数')" align="center" prop="sumWeight"> <el-table-column :label="$t('已放箱数')" align="center" prop="sumWeight">
<template slot-scope="{row}">{{row.releaseNum}}</template> <template slot-scope="{row}">{{row.releaseNum}}</template>
</el-table-column> </el-table-column>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div id="myproa"> <div id="myproa">
<p style="padding-bottom:10px;font-size:16px;"> <p style="padding-bottom:10px;font-size:16px;">
{{$t('订单号')}}{{detail.orderNo}} {{$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}} &nbsp;&nbsp;&nbsp;{{$t('提货地点')}}{{objective.titleZh}}
<img :src="qrcode" style="margin-left: 10px;width:17mm;vertical-align:middle" /> <img :src="qrcode" style="margin-left: 10px;width:17mm;vertical-align:middle" />
</p> </p>
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</label> </label>
</td> </td>
<td style="text-align:center;padding:0 0px;border:1px dashed #ccc;"> <td style="text-align:center;padding:0 0px;border:1px dashed #ccc;">
{{item.marks}} {{detail.marks}}
</td> </td>
<td style="text-align:center;padding:0 0px;border:1px dashed #ccc;"> <td style="text-align:center;padding:0 0px;border:1px dashed #ccc;">
{{item.prodTitleZh}}<br/>{{item.prodTitleEn}} {{item.prodTitleZh}}<br/>{{item.prodTitleEn}}
......
...@@ -11,18 +11,17 @@ ...@@ -11,18 +11,17 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="details.transportId"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="details.transportId"></dict-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道"> <el-descriptions-item label="出货渠道">
{{details.channelId}}123
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="details.channelId"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="details.channelId"></dict-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="始发地">{{ details.logisticsInfoDto ? details.logisticsInfoDto.startTitleZh :''}}</el-descriptions-item> <el-descriptions-item label="始发地">{{ details.logisticsInfoDto ? details.logisticsInfoDto.startTitleZh :''}}</el-descriptions-item>
<el-descriptions-item label="目的地">{{details.logisticsInfoDto ? details.logisticsInfoDto.destTitleZh : ''}}</el-descriptions-item> <el-descriptions-item label="目的地">{{details.logisticsInfoDto ? details.logisticsInfoDto.destTitleZh : ''}}</el-descriptions-item>
<el-descriptions-item label="发货人姓名">{{details.consignorVO ? details.consignorVO.name : ''}}</el-descriptions-item> <el-descriptions-item label="发货人姓名">{{details.consignorVO ? details.consignorVO.name : ''}}</el-descriptions-item>
<el-descriptions-item label="发货人公司">{{details.consignorVO ? details.consignorVO.company : ''}}</el-descriptions-item> <el-descriptions-item label="发货人公司">{{details.consignorVO ? details.consignorVO.company : ''}}</el-descriptions-item>
<el-descriptions-item label="发货人电话">{{details.consignorVO ? details.consignorVO.phone : ''}}</el-descriptions-item> <el-descriptions-item label="发货人电话">{{details.consignorVO ? details.consignorVO.countryCode : ''}} {{details.consignorVO ? details.consignorVO.phone : ''}}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item> <el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="收货人姓名">{{details.consigneeVO ? details.consigneeVO.name :''}}</el-descriptions-item> <el-descriptions-item label="收货人姓名">{{details.consigneeVO ? details.consigneeVO.name :''}}</el-descriptions-item>
<el-descriptions-item label="收货人公司">{{details.consigneeVO ? details.consigneeVO.company :''}}</el-descriptions-item> <el-descriptions-item label="收货人公司">{{details.consigneeVO ? details.consigneeVO.company :''}}</el-descriptions-item>
<el-descriptions-item label="收货人电话">{{details.consigneeVO ? details.consigneeVO.phone :''}}</el-descriptions-item> <el-descriptions-item label="收货人电话">{{details.consigneeVO ? details.consigneeVO.countryCode :''}} {{details.consigneeVO ? details.consigneeVO.phone :''}}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item> <el-descriptions-item></el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<el-dialog :before-close="()=>{$emit('update:show',false) <el-dialog :before-close="()=>{$emit('update:show',false)
}" center width="80%" :visible.sync="show"> }" center width="80%" :visible.sync="show">
<div class="content"> <div class="content">
<h1>{{orderNo}} 特需</h1>
<el-form label-width="180px" label-position="left"> <el-form label-width="180px" label-position="left">
<el-form-item label="特殊要求"> <el-form-item label="特殊要求">
<el-checkbox-group v-model="advanceType"> <el-checkbox-group v-model="advanceType">
...@@ -40,6 +41,7 @@ export default { ...@@ -40,6 +41,7 @@ export default {
orderId:{ orderId:{
type:[String,Number], type:[String,Number],
}, },
orderNo:[String,Number],
show:Boolean, show:Boolean,
}, },
computed:{ computed:{
......
...@@ -54,32 +54,23 @@ ...@@ -54,32 +54,23 @@
</el-table-column> </el-table-column>
<el-table-column label="始发仓" prop="startWarehouseName"></el-table-column> <el-table-column label="始发仓" prop="startWarehouseName"></el-table-column>
<el-table-column label="目的地" prop="objectiveName"></el-table-column> <el-table-column label="目的地" prop="objectiveName"></el-table-column>
<el-table-column <el-table-column label="发货人">
label="发货人">
<template v-slot="{row}"> <template v-slot="{row}">
<p> <p>
{{row.consignorName}} {{row.consignorName}}
</p> </p>
<p> <p>
{{row.consignorPhone}} {{row.consignorCountryCode}} {{row.consignorPhone}}
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
< <el-table-column label="收货人">
<el-table-column <template v-slot="{row}">
header-align="center"
align="center"
prop="columnProp"
label="columnLabel"
>
</el-table-column>
label="收货人">
<template v-slot="{row}">
<p> <p>
{{row.consigneeName}} {{row.consigneeName}}
</p> </p>
<p> <p>
{{row.consigneePhone}} {{row.consigneeCountryCode}} {{row.consigneePhone}}
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
...@@ -123,8 +114,8 @@ ...@@ -123,8 +114,8 @@
申请说明 申请说明
</p> </p>
<div > <div >
【{{selectWarehouse(FeeDetails.details && FeeDetails.details.warehouseInId ? FeeDetails.details.warehouseInId : '' )}}】 调到 【{{selectWarehouse(FeeDetails.details && FeeDetails.details.warehouseOutId ? FeeDetails.details.warehouseOutId : '' )}}】 调到
【{{selectWarehouse(FeeDetails.details && FeeDetails.details.warehouseOutId ? FeeDetails.details.warehouseOutId : '' )}}】 【{{selectWarehouse(FeeDetails.details && FeeDetails.details.warehouseInId ? FeeDetails.details.warehouseInId : '' )}}】
</div> </div>
</div> </div>
<div v-if="type === 2"> <div v-if="type === 2">
...@@ -226,7 +217,7 @@ export default { ...@@ -226,7 +217,7 @@ export default {
warehouseApprovalGetByFormId({formId:this.processInstanceID}).then( r => { warehouseApprovalGetByFormId({formId:this.processInstanceID}).then( r => {
this.FeeDetails = r.data this.FeeDetails = r.data
this.FeeDetails.details = JSON.parse(r.data.details) this.FeeDetails.details = JSON.parse(r.data.details)
getOrderPage({orderIdList:r.data.adjustActualOrderIds}).then(res=>{ getOrderPage({orderIdList:r.data.adjustActualOrderIds}).then(res=>{
this.list = res.data.list this.list = res.data.list
}) })
......
<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 @@ ...@@ -360,12 +360,11 @@
</div> </div>
</div> </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-date-picker v-model="form.deliveryDate" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item :label="$t('收货方式')" prop="harvestMethod" class="ml-20"> <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 /> <dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.harvestMethod" :filter="item => item.value == 1 || homeDeliveryService" defaultable />
</el-form-item> </el-form-item>
...@@ -407,30 +406,39 @@ ...@@ -407,30 +406,39 @@
<el-button type="primary" slot="append" @click="getOrderCourierNumber">{{$t('生成单号')}}</el-button> <el-button type="primary" slot="append" @click="getOrderCourierNumber">{{$t('生成单号')}}</el-button>
</el-input> </el-input>
</el-form-item> </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"> <div 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 :label="$t('是否双清')">
</el-form-item> <dict-selector v-model="form.doubleClear" form-type="radio" :type="DICT_TYPE.ECW_DOUBLE_CLEAR" />
<el-form-item label="清关证书备注" v-if="[2,3,4].indexOf(+form.transportId) > -1"> </el-form-item>
<el-input v-model="form.remarks" ></el-input> </div>
</el-form-item>
<el-form-item label="是否拆包" v-if="[3,4].indexOf(+form.transportId) > -1"> <div 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 :label="$t('航空公司')">
</el-form-item> <!--待查询备选数据-->
<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"> <div class="form-section">
<el-form-item :label="$t('单票立刻转运')" v-if="[3,4].indexOf(+form.transportId) > -1"> <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" /> <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' ...@@ -513,6 +521,8 @@ import ChooseContactDialog from '@/components/ChooseContactDialog'
import QuickCreateCustomer from '@/components/QuickCreateCustomer' import QuickCreateCustomer from '@/components/QuickCreateCustomer'
import {calculationPrice} from '@/api/ecw/product' import {calculationPrice} from '@/api/ecw/product'
// 缓存默认的表单数据
let defaultFormData = null
export default { export default {
name: "EcwOrderEdit", name: "EcwOrderEdit",
...@@ -716,6 +726,8 @@ export default { ...@@ -716,6 +726,8 @@ export default {
} }
}, },
created() { created() {
defaultFormData = Object.assign({}, this.form)
this.couponTypeList = this.getDictDatas(this.DICT_TYPE.ECW_COUPON_TYPE) this.couponTypeList = this.getDictDatas(this.DICT_TYPE.ECW_COUPON_TYPE)
this.couponTypeList.forEach(item => { this.couponTypeList.forEach(item => {
this.$set(this.selectedCoupons, item.value, null) this.$set(this.selectedCoupons, item.value, null)
...@@ -935,6 +947,11 @@ export default { ...@@ -935,6 +947,11 @@ export default {
// 添加的提交 // 添加的提交
createOrder(data).then(response => { createOrder(data).then(response => {
this.$modal.msgSuccess(this.$t("新增成功")); this.$modal.msgSuccess(this.$t("新增成功"));
// 重置数据
this.form = {...defaultFormData}
this.$refs.form.clearValidate()
this.$redirect('success?orderId=' + response.data) this.$redirect('success?orderId=' + response.data)
}); });
}); });
......
...@@ -62,7 +62,9 @@ ...@@ -62,7 +62,9 @@
<work-flow xmlkey="free_apply" v-model="selectedUsers" /> <work-flow xmlkey="free_apply" v-model="selectedUsers" />
</div> </div>
<div style="text-align: center;margin-top: 20px;"> <div style="text-align: center;margin-top: 20px;">
<el-button style="margin-right: 30px;" @click="submit">提交</el-button> <el-button v-if="!IsExamine" style="margin-right: 30px;" @click="submit">提交</el-button>
<el-button v-if="IsExamine" style="margin-right: 30px;" @click="examineFn">审核中</el-button>
<el-button v-if="IsExamine" style="margin-right: 30px;" @click="cancel">取消审核</el-button>
<el-button>取消</el-button> <el-button>取消</el-button>
</div> </div>
</div> </div>
...@@ -71,7 +73,13 @@ ...@@ -71,7 +73,13 @@
</template> </template>
<script> <script>
import {getOrder, feeApplicationCreate, ApplicationListByOrderId, applicationUpdate} from "@/api/ecw/order"; import {
getOrder,
feeApplicationCreate,
ApplicationListByOrderId,
applicationUpdate,
feeApplicationListByOrderId, feeApplicationCancel
} from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict'; import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import Template from "@/views/cms/template"; import Template from "@/views/cms/template";
import workFlow from "@/components/WorkFlow"; import workFlow from "@/components/WorkFlow";
...@@ -108,6 +116,9 @@ export default { ...@@ -108,6 +116,9 @@ export default {
return (row)=>{ return (row)=>{
return this.list.findIndex(e => e.id = row.id) return this.list.findIndex(e => e.id = row.id)
} }
},
IsExamine(){
return this.list.some(e => e.status === 1)
} }
}, },
methods:{ methods:{
...@@ -163,8 +174,28 @@ export default { ...@@ -163,8 +174,28 @@ export default {
}, },
modify(row){ modify(row){
this.isModifyIf = true; this.isModifyIf = true;
this.$set(this.isModify, this.list.findIndex(e => e.id = row.id), false ) this.$set(this.isModify, this.list.findIndex(e => e.id = row.id), false )
},
examineFn(){
let item = this.list.find(e => e.status === 1);
this.$router.push({path:'/bpm/process-instance/detail',query:{id:item.bpmProcessId}})
}, },
cancel(){
this.$prompt('请输入取消原因', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(({ value }) => {
let item = this.list.find(e => e.status === 1);
feeApplicationCancel({huifu:value,bpmProcessId:item.bpmProcessId}).then(r => {
this.$message({
type: 'success',
message:'取消成功'
});
this.$emit('update:dialogVisible',false)
})
}).catch(() => {
});
}
}, },
watch:{ watch:{
dialogVisible(val){ dialogVisible(val){
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发地')" prop="startWarehouseId"> <el-form-item :label="$t('始发地')" prop="startWarehouseId">
<el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')"> <el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')">
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的地')" prop="destWarehouseId"> <el-form-item :label="$t('目的地')" prop="destWarehouseId">
...@@ -173,7 +173,7 @@ ...@@ -173,7 +173,7 @@
<el-button v-if="scope.row.status == 88" size="mini" type="text" icon="el-icon-delete" @click="oprateOrder(scope.row.orderId, 'recoveryOrder')">{{$t('恢复订单')}}</el-button> <el-button v-if="scope.row.status == 88" size="mini" type="text" icon="el-icon-delete" @click="oprateOrder(scope.row.orderId, 'recoveryOrder')">{{$t('恢复订单')}}</el-button>
<el-button type="text" size="mini" @click="feeApplicationBol = true; orderId = scope.row.orderId">{{$t('费用申请')}}</el-button> <el-button type="text" size="mini" @click="feeApplicationBol = true; orderId = scope.row.orderId">{{$t('费用申请')}}</el-button>
<el-button type="text" size="mini" @click="orderId = scope.row.orderId;isShow = true" >{{$t('特需')}}</el-button> <el-button type="text" size="mini" @click="orderId = scope.row.orderId;orderNo = scope.row.orderNo;isShow = true" >{{$t('特需')}}</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/associated-order/${scope.row.orderId}`)" >{{$t('关联')}}</el-button> <el-button type="text" size="mini" @click="$router.push(`/order/associated-order/${scope.row.orderId}`)" >{{$t('关联')}}</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/mutex-order/${scope.row.orderId}`)" >{{$t('互斥')}}</el-button> <el-button type="text" size="mini" @click="$router.push(`/order/mutex-order/${scope.row.orderId}`)" >{{$t('互斥')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('/order/special/' + scope.row.orderId)" <el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('/order/special/' + scope.row.orderId)"
...@@ -209,9 +209,9 @@ ...@@ -209,9 +209,9 @@
v-hasPermi="['ecw:order:update']">{{$t('入仓')}}</el-button> v-hasPermi="['ecw:order:update']">{{$t('入仓')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="show = true;orderId = scope.row.orderId; " <el-button size="mini" type="text" icon="el-icon-edit" @click="show = true;orderId = scope.row.orderId; "
v-hasPermi="['ecw:order:update']">{{$t('退仓')}}</el-button> v-hasPermi="['ecw:order:update']">{{$t('退仓')}}</el-button>
<el-button type="text" size="mini" @click="orderId = scope.row.orderId;warehouseBol=true;">{{$t('调仓')}}</el-button> <el-button type="text" :disabled="!(scope.row.status === 5 && (scope.row.inWarehouseState === 215 ||scope.row.inWarehouseState === 0))" size="mini" @click="orderId = scope.row.orderId;warehouseBol=true;">{{$t('调仓')}}</el-button>
<el-button type="text" size="mini" @click="$router.push({path:'/order/transfer-warehousing/' + scope.row.orderId + '/' + 1 })" >{{$t('调拨出仓')}}</el-button> <el-button type="text" :disabled="!(scope.row.status === 8 && scope.row.inWarehouseState === 213)" size="mini" @click="$router.push({path:'/order/transfer-warehousing/' + scope.row.orderId + '/' + 1 })" >{{$t('调拨出仓')}}</el-button>
<el-button type="text" size="mini" @click="$router.push({path:'/order/transfer-to-warehouse/' + scope.row.orderId + '/' + 2 })" >{{$t('调拨到仓')}}</el-button> <el-button type="text" :disabled="!(scope.row.status === 8 && scope.row.inWarehouseState === 214)" size="mini" @click="$router.push({path:'/order/transfer-to-warehouse/' + scope.row.orderId + '/' + 2 })" >{{$t('调拨到仓')}}</el-button>
</div> </div>
</el-popover> </el-popover>
...@@ -373,7 +373,7 @@ export default { ...@@ -373,7 +373,7 @@ export default {
}; };
}, },
computed: { computed: {
expoerCityList() { exportCityList() {
return this.tradeCityList.filter(item => item.type == 2) return this.tradeCityList.filter(item => item.type == 2)
}, },
importCityList() { importCityList() {
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
{{row.orderBackVO.costVO.totalVolume}} {{row.orderBackVO.costVO.totalVolume}}
</div> </div>
<div> <div>
{{row.orderBackVO.costVO.totalWorth}}KG {{row.orderBackVO.costVO.totalWeight}}KG
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
{{row.costVO.totalVolume}} {{row.costVO.totalVolume}}
</div> </div>
<div> <div>
{{row.costVO.totalWorth}}KG {{row.costVO.totalWeight}}KG
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<!-- <img :src="noticeUrl" id="noticeImg" /> --> <!-- <img :src="noticeUrl" id="noticeImg" /> -->
<need-know keyname="warehousing" ref="needKnow" /> <need-know keyname="warehousing" ref="needKnow" />
<div style="text-align:center"> <div style="text-align:center">
<el-button type="primary" @click="$refs.needKnow.download()">{{$t('下载')}}</el-button> <el-button type="primary" @click="$refs.needKnow.downloadPdf()">{{$t('下载')}}</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
......
<template> <template>
<div style="padding: 0 20px"> <div style="padding: 0 20px">
<h1>调拨出仓</h1> <h1>{{type == 1 ? '调拨出仓' :'调拨到仓'}}</h1>
<el-divider content-position="left"> <el-divider content-position="left">
订单信息 订单信息
</el-divider> </el-divider>
...@@ -123,7 +123,7 @@ ...@@ -123,7 +123,7 @@
<el-button v-if="type == 1" size="medium" @click="cancellationOfOrder">取消调仓</el-button> <el-button v-if="type == 1" size="medium" @click="cancellationOfOrder">取消调仓</el-button>
<el-button size="medium" @click="$tab.closeOpenPage({path:'/order/order'})">返回</el-button> <el-button size="medium" @click="$tab.closeOpenPage({path:'/order/order'})">返回</el-button>
</div> </div>
<warehouse-location ref="area" :city-id="warehouseDetails.warehouseInShi" :visible.sync="areaVisible" v-model="params.orderLocationCreateReqVOList" :warehouse-id="warehouseDetails.warehouseInId" :order-id="Number(orderId)"></warehouse-location> <warehouse-location ref="area" :city-id="warehouseInShi" :visible.sync="areaVisible" v-model="params.orderLocationCreateReqVOList" :warehouse-id="warehouseDetails.warehouseInId" :order-id="Number(orderId)"></warehouse-location>
<el-dialog :title="'订单转异'" center :visible.sync="escapeBol"> <el-dialog :title="'订单转异'" center :visible.sync="escapeBol">
<el-form label-position="top" label-width="200"> <el-form label-position="top" label-width="200">
<el-form-item label="原因类型"> <el-form-item label="原因类型">
...@@ -147,6 +147,7 @@ ...@@ -147,6 +147,7 @@
<script> <script>
import ordeDetailsForm from "@/views/ecw/order/components/ordeDetailsForm"; import ordeDetailsForm from "@/views/ecw/order/components/ordeDetailsForm";
import { import {
cancelAdjust,
getAdjustInfo, getAdjustInfo,
getOrder, listByOrderId, getOrder, listByOrderId,
orderWarehouseInGetAdjustInfo, orderWarehouseInGetAdjustInfo,
...@@ -198,7 +199,7 @@ export default { ...@@ -198,7 +199,7 @@ export default {
descZh:'', descZh:'',
exceptionUrls:[] exceptionUrls:[]
}, },
warehouseInShi:'', warehouseInShi:0,
expressList:[], expressList:[],
storageSpaceList:[], storageSpaceList:[],
applyStatus:{} applyStatus:{}
...@@ -282,7 +283,7 @@ export default { ...@@ -282,7 +283,7 @@ export default {
}) })
} }
}) })
this.warehouseInShi = this.warehouseDetails.warehouseInShi this.warehouseInShi = this.warehouseDetails.warehouseInShi || ''
this.params.phone = this.warehouseDetails.phone || ''; this.params.phone = this.warehouseDetails.phone || '';
this.params.logisticsNo = this.warehouseDetails.logisticsNo; this.params.logisticsNo = this.warehouseDetails.logisticsNo;
this.params.id = this.warehouseDetails.id; this.params.id = this.warehouseDetails.id;
...@@ -335,11 +336,17 @@ export default { ...@@ -335,11 +336,17 @@ export default {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
}).then(({ value }) => { }).then(({ value }) => {
warehouseApprovalCancel(this.applyStatus.orderWarehouseApprovalBackVO.id,value) .then(r => { cancelAdjust({
if(r.data){ orderId: this.orderId,
this.$message.success('取消调仓成功') reason: value,
}).then(r => {
console.log(r,'r');
if(r.code === 0){
this.$message({
type: 'info',
message: '取消调仓成功'
});
this.$tab.closeOpenPage({path:'/order/order'}) this.$tab.closeOpenPage({path:'/order/order'})
} }
}) })
}).catch(() => { }).catch(() => {
...@@ -348,7 +355,7 @@ export default { ...@@ -348,7 +355,7 @@ export default {
message: '取消成功' message: '取消成功'
}); });
}); });
} },
}, },
} }
</script> </script>
......
<template> <template>
<div> <div>
<el-dialog <el-dialog
:title="(edit ? '入仓修改' : (warehousing.orderWarehouseInBackItemDoList.length > 0 ? '入仓补充' : '入仓操作')) + '-货物入仓'" :title="(edit ? '入仓修改' : (warehousing.orderWarehouseInBackItemDoList.length > 0 ? '入仓补充' : '入仓操作')) + ' - ' + warehousing.orderNo"
:visible.sync="opened" :visible.sync="opened"
width="1080px" width="1080px"
> >
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<el-descriptions-item label="中文品名">{{ warehousing.prodTitleZh }}</el-descriptions-item> <el-descriptions-item label="中文品名">{{ warehousing.prodTitleZh }}</el-descriptions-item>
<el-descriptions-item label="英文品名">{{ warehousing.prodTitleEn }}</el-descriptions-item> <el-descriptions-item label="英文品名">{{ warehousing.prodTitleEn }}</el-descriptions-item>
<el-descriptions-item label="品牌"> <el-descriptions-item label="品牌">
<span v-if="warehousing.orderWarehouseInBackItemDoList && warehousing.orderWarehouseInBackItemDoList.length">{{ form.brand ? brand : '' }}</span> <span v-if="false">{{ form.brand ? brand : '' }}</span>
<el-select <el-select
v-else v-model="form.brand" v-else v-model="form.brand"
placeholder="可修改" placeholder="可修改"
...@@ -29,16 +29,22 @@ ...@@ -29,16 +29,22 @@
<el-descriptions-item label="是否备案">{{ isBeian }}</el-descriptions-item> <el-descriptions-item label="是否备案">{{ isBeian }}</el-descriptions-item>
<el-descriptions-item label="收费模式">{{ feeType }}</el-descriptions-item> <el-descriptions-item label="收费模式">{{ feeType }}</el-descriptions-item>
<el-descriptions-item label="填单参数"> <el-descriptions-item label="填单参数">
箱数:{{ warehousing.num }}<br> 箱数:
体积:{{ warehousing.volume }}<br> <el-input size="mini" v-if="edit" v-model="warehousing.num" style="display: inline-block;width: 100px"></el-input>
重量:{{ warehousing.weight }}Kg <span v-else>{{ warehousing.num }}</span><br>
体积:
<el-input size="mini" v-if="edit" v-model="warehousing.volume" style="display: inline-block;width: 100px"></el-input>
<span v-else>{{ warehousing.volume }}</span><br>
重量:
<el-input size="mini" v-if="edit" v-model="warehousing.weight" style="display: inline-block;width: 100px"></el-input>
<span v-else>{{ warehousing.weight }}</span>Kg
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-form ref="form" :model="form" label-width="80px" style="margin-top: 20px"> <el-form ref="form" :model="form" label-width="80px" style="margin-top: 20px">
<el-form-item label="材质"> <el-form-item label="材质">
<dict-selector :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" v-model="form.material"></dict-selector> <dict-selector :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" v-model="form.material"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item label="入仓时间"> <el-form-item label="入仓时间" v-if="!edit">
<el-date-picker v-model="form.inTime" type="datetime" placeholder="请选择入仓时间" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="form.inTime" type="datetime" placeholder="请选择入仓时间" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -56,7 +62,7 @@ ...@@ -56,7 +62,7 @@
<el-table-column label="箱数" width="150px"> <el-table-column label="箱数" width="150px">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item :rules="tableFormRules.cartonsNum" :prop="$index + '.cartonsNum'"> <el-form-item :rules="tableFormRules.cartonsNum" :prop="$index + '.cartonsNum'">
<span v-if="tableData[$index].id"> <span v-if="tableData[$index].id && !edit">
{{ tableData[$index].cartonsNum }} {{ tableData[$index].cartonsNum }}
{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].unit) }} {{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].unit) }}
</span> </span>
...@@ -69,31 +75,31 @@ ...@@ -69,31 +75,31 @@
<el-table-column label="包装类型" width="100px"> <el-table-column label="包装类型" width="100px">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item> <el-form-item>
<span v-if="tableData[$index].id">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].unit) }}</span> <span v-if="tableData[$index].id && !edit">{{ getDictDataLabel(DICT_TYPE.ECW_PACKAGE_TYPE, tableData[$index].unit) }}</span>
<dict-selector v-else :type="DICT_TYPE.ECW_PACKAGE_TYPE" v-model="tableData[$index].unit"></dict-selector> <dict-selector v-else :type="DICT_TYPE.ECW_PACKAGE_TYPE" v-model="tableData[$index].unit"></dict-selector>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="长(cm)"> <el-table-column label="长(cm)">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item :rules="tableFormRules.boxGauge1" :prop="$index + '.boxGauge1'"> <el-form-item :rules="tableFormRules.boxGauge1" :prop="!tableData[$index].id && $index + '.boxGauge1'">
<span v-if="tableData[$index].id">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[0] : '' }}</span> <span v-if="tableData[$index].id && !edit">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[0] : '' }}</span>
<el-input v-else v-model.number="tableData[$index].boxGauge1" placeholder="" @blur="handleVolume($index)"></el-input> <el-input v-else v-model.number="tableData[$index].boxGauge1" placeholder="" @blur="handleVolume($index)"></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="宽(cm)"> <el-table-column label="宽(cm)">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item :rules="tableFormRules.boxGauge2" :prop="$index + '.boxGauge2'"> <el-form-item :rules="tableFormRules.boxGauge2" :prop="!tableData[$index].id && $index + '.boxGauge2'">
<span v-if="tableData[$index].id">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[1] : '' }}</span> <span v-if="tableData[$index].id && !edit">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[1] : '' }}</span>
<el-input v-else v-model.number="tableData[$index].boxGauge2" placeholder="" @blur="handleVolume($index)"></el-input> <el-input v-else v-model.number="tableData[$index].boxGauge2" placeholder="" @blur="handleVolume($index)"></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="高(cm)"> <el-table-column label="高(cm)">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item :rules="tableFormRules.boxGauge3" :prop="$index + '.boxGauge3'"> <el-form-item :rules="tableFormRules.boxGauge3" :prop="!tableData[$index].id && $index + '.boxGauge3'">
<span v-if="tableData[$index].id">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[2] : '' }}</span> <span v-if="tableData[$index].id && !edit">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[2] : '' }}</span>
<el-input v-else v-model.number="tableData[$index].boxGauge3" placeholder="" @blur="handleVolume($index)"></el-input> <el-input v-else v-model.number="tableData[$index].boxGauge3" placeholder="" @blur="handleVolume($index)"></el-input>
</el-form-item> </el-form-item>
</template> </template>
...@@ -101,7 +107,7 @@ ...@@ -101,7 +107,7 @@
<el-table-column label="体积(m³)"> <el-table-column label="体积(m³)">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item :rules="tableFormRules.volume" :prop="$index + '.volume'"> <el-form-item :rules="tableFormRules.volume" :prop="$index + '.volume'">
<span v-if="tableData[$index].id">{{ tableData[$index].volume }}</span> <span v-if="tableData[$index].id && !edit">{{ tableData[$index].volume }}</span>
<el-input v-else v-model.number="tableData[$index].volume" placeholder=""></el-input> <el-input v-else v-model.number="tableData[$index].volume" placeholder=""></el-input>
</el-form-item> </el-form-item>
</template> </template>
...@@ -109,7 +115,7 @@ ...@@ -109,7 +115,7 @@
<el-table-column label="重量(Kg)"> <el-table-column label="重量(Kg)">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item :rules="tableFormRules.weight" :prop="$index + '.weight'"> <el-form-item :rules="tableFormRules.weight" :prop="$index + '.weight'">
<span v-if="tableData[$index].id">{{ tableData[$index].weight }}</span> <span v-if="tableData[$index].id && !edit">{{ tableData[$index].weight }}</span>
<el-input v-else v-model.number="tableData[$index].weight" placeholder=""></el-input> <el-input v-else v-model.number="tableData[$index].weight" placeholder=""></el-input>
</el-form-item> </el-form-item>
</template> </template>
...@@ -117,7 +123,7 @@ ...@@ -117,7 +123,7 @@
<el-table-column label="数量" width="130px"> <el-table-column label="数量" width="130px">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item :rules="tableFormRules.quantityAll" :prop="$index + '.quantityAll'"> <el-form-item :rules="tableFormRules.quantityAll" :prop="$index + '.quantityAll'">
<span v-if="tableData[$index].id">{{ tableData[$index].quantityAll }}</span> <span v-if="tableData[$index].id && !edit">{{ tableData[$index].quantityAll }}</span>
<el-input v-else v-model.number="tableData[$index].quantityAll" placeholder=""> <el-input v-else v-model.number="tableData[$index].quantityAll" placeholder="">
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
...@@ -127,7 +133,7 @@ ...@@ -127,7 +133,7 @@
<el-table-column label="快递单号"> <el-table-column label="快递单号">
<template v-slot="{r,c,$index}"> <template v-slot="{r,c,$index}">
<el-form-item> <el-form-item>
<span v-if="tableData[$index].id">{{ tableData[$index].expressNo }}</span> <span v-if="tableData[$index].id && !edit">{{ tableData[$index].expressNo }}</span>
<el-input v-else v-model="tableData[$index].expressNo" placeholder=""></el-input> <el-input v-else v-model="tableData[$index].expressNo" placeholder=""></el-input>
</el-form-item> </el-form-item>
</template> </template>
...@@ -588,7 +594,13 @@ export default { ...@@ -588,7 +594,13 @@ export default {
return this.brandList.find(e => e.id === this.form1.brand) || '' return this.brandList.find(e => e.id === this.form1.brand) || ''
}, },
tableData() { tableData() {
return [...this.warehousing.orderWarehouseInBackItemDoList, ...this.form.orderWarehouseInItemDoList] if (!this.edit){
return [...this.warehousing.orderWarehouseInBackItemDoList, ...this.form.orderWarehouseInItemDoList]
}
// 入仓修改的时候
this.form.orderWarehouseInItemDoList = this.warehousing.orderWarehouseInBackItemDoList
return this.form.orderWarehouseInItemDoList
}, },
tableData1() { tableData1() {
return this.form1.orderWarehouseInItemDoList return this.form1.orderWarehouseInItemDoList
...@@ -638,7 +650,7 @@ export default { ...@@ -638,7 +650,7 @@ export default {
return brand.titleZh return brand.titleZh
} }
} }
return '' return '0'
} }
} }
} }
......
...@@ -86,8 +86,8 @@ ...@@ -86,8 +86,8 @@
</el-table> </el-table>
<h2 v-if="orderSpecialNeeds.length > 0">特殊需求</h2> <h2 v-if="orderSpecialNeeds.length > 0">特殊需求</h2>
<el-form ref="form" :model="form" label-width="120px" style="max-width: 500px;"> <el-form ref="form" :model="form" label-width="120px">
<el-form-item :label="item.label" v-for="(item, index) in orderSpecialNeeds" :key="item.value"> <el-form-item :label="item.label" v-for="(item, index) in orderSpecialNeeds" :key="item.value" style="width: 400px">
<el-input v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoney" :placeholder="'请输入' + item.label"> <el-input v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoney" :placeholder="'请输入' + item.label">
<el-select v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoneyCurrency" placeholder="请选择" slot="append" style="width: 100px"> <el-select v-model="form.orderSpecialNeedReceivableReqVoList[index].receivableMoneyCurrency" placeholder="请选择" slot="append" style="width: 100px">
<el-option <el-option
...@@ -125,6 +125,20 @@ ...@@ -125,6 +125,20 @@
<el-button @click="escapeBol = true;" type="primary">转异</el-button> <el-button @click="escapeBol = true;" type="primary">转异</el-button>
<el-button type="primary" @click="finishVisible = true">完成入仓</el-button> <el-button type="primary" @click="finishVisible = true">完成入仓</el-button>
</div> </div>
<template v-if="order.status === 5">
<h2>标枪箱号</h2>
<div v-for="(item, index) in label.orderLabelDtoList" :key="index" style="margin-bottom: 10px">
<el-input-number v-model="item.start" controls-position="right"></el-input-number> -
<el-input-number v-model="item.end" controls-position="right"></el-input-number>
<el-button icon="el-icon-minus" circle v-show="index !== 0" @click="label.orderLabelDtoList.splice(index, 1)" style="margin-left: 10px"></el-button>
<el-button icon="el-icon-plus" circle @click="handleLabelAdd(index)"></el-button>
</div>
<div style="text-align: center">
<el-button type="primary" @click="handleLabelSubmit">修改箱号</el-button>
</div>
</template>
</el-form> </el-form>
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList" <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
...@@ -176,7 +190,7 @@ import { ...@@ -176,7 +190,7 @@ import {
getOrder, getOrder,
getOrderWarehouseIn, getOrderWarehouseIn,
getSpecialListByOrderId, listByOrderId, getSpecialListByOrderId, listByOrderId,
orderWarehouseInFinish, orderWarehouseInFinish, orderWarehouseInUpdateLabel,
rollbackDelete rollbackDelete
} from '@/api/ecw/order' } from '@/api/ecw/order'
import orderBaseInfo from "@/components/OrderBaseInfo" import orderBaseInfo from "@/components/OrderBaseInfo"
...@@ -238,10 +252,36 @@ export default { ...@@ -238,10 +252,36 @@ export default {
isShowPrintTag: false, isShowPrintTag: false,
isShowPrint: false, isShowPrint: false,
escapeBol:false, escapeBol:false,
label: {
"orderId": 0,
"orderLabelDtoList": [
{
"end": 0,
"start": 0
}
]
}
} }
}, },
methods: { methods: {
handleLabelSubmit(){
orderWarehouseInUpdateLabel({
...this.label,
orderId: this.orderId
}).then(r => {
if (r.code === 0){
}
})
},
handleLabelAdd(index){
this.label.orderLabelDtoList.splice(index + 1, 0, {
"end": '',
"start": ''
})
},
getTowSum(){ getTowSum(){
let sumVolume = 0 let sumVolume = 0
let sumWeight = 0 let sumWeight = 0
......
...@@ -20,7 +20,9 @@ ...@@ -20,7 +20,9 @@
<work-flow xmlkey="retired_warehouse" v-model="params.copyUserId" /> <work-flow xmlkey="retired_warehouse" v-model="params.copyUserId" />
</div> </div>
<div> <div>
<el-button @click="submit" type="primary" style="margin-right: 20px;">确定退仓</el-button> <el-button v-if="isExamine" @click="submit" type="primary" style="margin-right: 20px;">确定退仓</el-button>
<el-button v-if="!isExamine" @click="$router.push({query:{id:details.formId},path:'/bpm/process-instance/detail'})" type="primary" style="margin-right: 20px;">审核中</el-button>
<el-button v-if="!isExamine" type="primary" style="margin-right: 20px;" @click="cancellationOfOrder">取消审核</el-button>
<el-button @click="$parent.show = false;">不,再考虑考虑</el-button> <el-button @click="$parent.show = false;">不,再考虑考虑</el-button>
</div> </div>
</div> </div>
...@@ -28,8 +30,12 @@ ...@@ -28,8 +30,12 @@
</template> </template>
<!--退仓--> <!--退仓-->
<script> <script>
import {getOrder} from "@/api/ecw/order"; import {cancelAdjust, getOrder} from "@/api/ecw/order";
import {orderWarehouseInDelete} from "@/api/ecw/batchSingleApplication"; import {
getRollbackApprovalInfo,
orderWarehouseInDelete,
warehouseApprovalCancel
} from "@/api/ecw/batchSingleApplication";
import workFlow from "@/components/WorkFlow"; import workFlow from "@/components/WorkFlow";
export default { export default {
...@@ -48,12 +54,25 @@ export default { ...@@ -48,12 +54,25 @@ export default {
orderId:undefined, orderId:undefined,
orderNo:undefined, orderNo:undefined,
reason:'', reason:'',
copyUserId:[] copyUserId:[],
}, },
isExamine:true,
details:{},
} }
}, },
created() { created() {
getOrder(this.orderId).then(r => this.orderDetails = r.data); getOrder(this.orderId).then(r => this.orderDetails = r.data);
getRollbackApprovalInfo({orderId:this.orderId}).then(r => {
console.log(r)
if(r.data.status === 1){
this.details = r.data;
this.isExamine = false;
this.params.reason = JSON.parse(this.details.details).reason
}
})
}, },
methods:{ methods:{
submit(){ submit(){
...@@ -66,6 +85,26 @@ export default { ...@@ -66,6 +85,26 @@ export default {
this.$parent.show = false this.$parent.show = false
} }
}) })
},
cancellationOfOrder(){
this.$prompt('请输入取消审核原因', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(({ value }) => {
warehouseApprovalCancel(this.details.id,value) .then(r => {
if(r.data){
this.$message.success('取消成功')
this.params = {}
this.$parent.show = false
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '取消成功'
});
});
} }
} }
} }
......
...@@ -15,11 +15,11 @@ ...@@ -15,11 +15,11 @@
<el-input v-model="queryParams.titleZh" placeholder="请输入商品名称" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.titleZh" placeholder="请输入商品名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="商品类型" prop="typeId"> <!-- <el-form-item label="商品属性" prop="attrId">
<el-select v-model="queryParams.typeId" placeholder="选择商品类型" clearable> <el-select v-model="queryParams.typeId" placeholder="选择商品类型" clearable>
<el-option v-for="type in typeList" :key="type.id" :label="type.titleZh" :value="type.id" /> <el-option v-for="type in typeList" :key="type.id" :label="type.titleZh" :value="type.id" />
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="商品特性" prop="attrId"> <el-form-item label="商品特性" prop="attrId">
<el-select v-model="queryParams.attrId" placeholder="选择商品特性" clearable> <el-select v-model="queryParams.attrId" placeholder="选择商品特性" clearable>
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="审核状态" prop="auditStatus"> <!-- <el-form-item label="审核状态" prop="auditStatus">
<el-select v-model="queryParams.auditStatus" placeholder="选择审核状态" clearable> <el-select v-model="queryParams.auditStatus" placeholder="选择审核状态" clearable>
<el-option v-for="auditStatusItem in auditStatusDictDatas" :key="auditStatusItem.id" :label="auditStatusItem.label" :value="auditStatusItem.value" /> <el-option v-for="auditStatusItem in auditStatusDictDatas" :key="auditStatusItem.id" :label="auditStatusItem.label" :value="auditStatusItem.value" />
</el-select> </el-select>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<el-select v-model="queryParams.status" placeholder="选择上架状态" clearable> <el-select v-model="queryParams.status" placeholder="选择上架状态" clearable>
<el-option v-for="statusItem in statusDictDatas" :key="statusItem.id" :label="statusItem.value == CommonStatusEnum.ENABLE ? '已上架' : '已下架'" :value="statusItem.value" /> <el-option v-for="statusItem in statusDictDatas" :key="statusItem.id" :label="statusItem.value == CommonStatusEnum.ENABLE ? '已上架' : '已下架'" :value="statusItem.value" />
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
...@@ -70,11 +70,19 @@ ...@@ -70,11 +70,19 @@
<el-table-column label="海关编码" align="center" prop="customsCode" /> <el-table-column label="海关编码" align="center" prop="customsCode" />
<el-table-column label="中文标题" align="center" prop="titleZh" /> <el-table-column label="中文标题" align="center" prop="titleZh" />
<el-table-column label="英文标题" align="center" prop="titleEn" /> <el-table-column label="英文标题" align="center" prop="titleEn" />
<el-table-column label="商品性" align="center" prop="attrId"> <el-table-column label="商品性" align="center" prop="attrId">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ getAttrName(scope.row.attrId) }}</span> <span>{{ getAttrName(scope.row.attrId) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!--商品特性-->
<el-table-column label="商品图片" align="center" prop="attrId">
<template slot-scope="scope">
<el-image :src="firstImg(scope.row.imgs)" style="width:50px; height:50px">
</el-image>
</template>
</el-table-column>
<el-table-column prop="auditStatus" align="center" label="是否审核" width="120"> <el-table-column prop="auditStatus" align="center" label="是否审核" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -86,9 +94,10 @@ ...@@ -86,9 +94,10 @@
<el-table-column prop="status" align="center" label="状态" width="120"> <el-table-column prop="status" align="center" label="状态" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.status" @change="handleStatusChange(scope.row, 'status')"> <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status"/>
<!-- <el-select v-model="scope.row.status" @change="handleStatusChange(scope.row, 'status')">
<el-option v-for="statusItem in statusDictDatas" :key="statusItem.id" :label="statusItem.value == CommonStatusEnum.ENABLE + '' ? '已上架' : '已下架'" :value="parseInt(statusItem.value)" /> <el-option v-for="statusItem in statusDictDatas" :key="statusItem.id" :label="statusItem.value == CommonStatusEnum.ENABLE + '' ? '已上架' : '已下架'" :value="parseInt(statusItem.value)" />
</el-select> </el-select> -->
</template> </template>
</el-table-column> </el-table-column>
...@@ -123,16 +132,17 @@ ...@@ -123,16 +132,17 @@
</el-form-item> </el-form-item>
<el-form-item label="商品图片" prop="img"> <el-form-item label="商品图片" prop="img">
<el-col :span="8"> <image-upload v-model="form.imgs" />
<!-- <el-col :span="8">
<el-input v-model="form.imgs" placeholder="请上传图片" disabled /> <el-input v-model="form.imgs" placeholder="请上传图片" disabled />
</el-col> </el-col> -->
<el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload"> <!-- <el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload">
<el-button size="small"> <el-button size="small">
上传图片 上传图片
<i class="el-icon-upload el-icon--right"></i> <i class="el-icon-upload el-icon--right"></i>
</el-button> </el-button>
</el-upload> </el-upload> -->
</el-form-item> </el-form-item>
...@@ -206,10 +216,11 @@ import { getProductTypeList } from "@/api/ecw/productType"; ...@@ -206,10 +216,11 @@ import { getProductTypeList } from "@/api/ecw/productType";
import { getDictDatas, DICT_TYPE } from '@/utils/dict'; import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import { CommonStatusEnum, AuditStatusEnum } from '@/utils/constants'; import { CommonStatusEnum, AuditStatusEnum } from '@/utils/constants';
import { uploadFile } from "@/api/infra/file"; import { uploadFile } from "@/api/infra/file";
import ImageUpload from '@/components/ImageUpload'
export default { export default {
name: "ProductList", name: "ProductList",
components: { components: {
ImageUpload
}, },
data() { data() {
return { return {
...@@ -309,6 +320,13 @@ export default { ...@@ -309,6 +320,13 @@ export default {
return productAttrArray.join(','); return productAttrArray.join(',');
} }
}, },
firstImg(){
return imgString => {
if(!imgString || imgString == '') return imgString
let imgs = imgString.split(',')
return imgs.length ? imgs[0] : null
}
}
}, },
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="" align="center" prop="id" /> <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"> <el-table-column label="发送时间" align="center" prop="sendTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.sendTime) }}</span> <span>{{ parseTime(scope.row.sendTime) }}</span>
...@@ -58,11 +58,11 @@ ...@@ -58,11 +58,11 @@
<dict-tag :type="DICT_TYPE.INTERNAL_MESSAGE_TYPE" :value="scope.row.type" /> <dict-tag :type="DICT_TYPE.INTERNAL_MESSAGE_TYPE" :value="scope.row.type" />
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="创建时间" align="center" prop="createTime" width="180">--> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<!-- <template slot-scope="scope">--> <template slot-scope="scope">
<!-- <span>{{ parseTime(scope.row.createTime) }}</span>--> <span>{{ parseTime(scope.row.createTime) }}</span>
<!-- </template>--> </template>
<!-- </el-table-column>--> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
...@@ -79,9 +79,9 @@ ...@@ -79,9 +79,9 @@
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <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 ref="form" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="来源" prop="fromId">--> <el-form-item label="来源" prop="fromId">
<!-- <el-input v-model="form.fromId" placeholder="请输入站内信来源" />--> <el-input v-model="form.fromId" placeholder="请输入站内信来源" />
<!-- </el-form-item>--> </el-form-item>
<el-form-item label="发送时间" prop="sendTime"> <el-form-item label="发送时间" prop="sendTime">
<el-date-picker clearable v-model="form.sendTime" type="date" value-format="yyyy-MM-dd" placeholder="选择发送时间" /> <el-date-picker clearable v-model="form.sendTime" type="date" value-format="yyyy-MM-dd" placeholder="选择发送时间" />
</el-form-item> </el-form-item>
......
...@@ -95,10 +95,10 @@ ...@@ -95,10 +95,10 @@
<el-input v-model="form.titleEn" placeholder="请输入标题英文" /> <el-input v-model="form.titleEn" placeholder="请输入标题英文" />
</el-form-item> </el-form-item>
<el-form-item label="内容中文" prop="contentZh"> <el-form-item label="内容中文" prop="contentZh">
<editor v-model="form.contentZh" :min-height="192" placeholder="请输入内容中文"/> <ueditor v-model="form.contentZh" :min-height="192" placeholder="请输入内容中文"/>
</el-form-item> </el-form-item>
<el-form-item label="内容英语" prop="contentEn"> <el-form-item label="内容英语" prop="contentEn">
<editor v-model="form.contentEn" :min-height="192" placeholder="plese entry english"/> <ueditor v-model="form.contentEn" :min-height="192" placeholder="plese entry english"/>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
...@@ -117,11 +117,11 @@ ...@@ -117,11 +117,11 @@
<script> <script>
import { createNeedKnow, updateNeedKnow, deleteNeedKnow, getNeedKnow, getNeedKnowPage, exportNeedKnowExcel } from "@/api/system/needKnow"; import { createNeedKnow, updateNeedKnow, deleteNeedKnow, getNeedKnow, getNeedKnowPage, exportNeedKnowExcel } from "@/api/system/needKnow";
import Editor from '@/components/Editor'; import Ueditor from '@/components/Ueditor'
export default { export default {
name: "NeedKnow", name: "NeedKnow",
components: { components: {
Editor Ueditor
}, },
data() { data() {
return { return {
......
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