Commit 7621950a authored by dragondean@qq.com's avatar dragondean@qq.com

解决冲突

parents cdbe51f4 2903c444
...@@ -5,7 +5,7 @@ NODE_ENV = 'production' ...@@ -5,7 +5,7 @@ NODE_ENV = 'production'
VUE_APP_TITLE = 捷道管理系统 - 测试版 VUE_APP_TITLE = 捷道管理系统 - 测试版
# 捷道管理系统/开发环境 # 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.jd.jdshangmen.com' VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com'
# VUE_APP_BASE_API = '/api' # VUE_APP_BASE_API = '/api'
# 路由懒加载 # 路由懒加载
......
...@@ -6,7 +6,7 @@ VUE_APP_TITLE = 捷道管理系统-测试站 ...@@ -6,7 +6,7 @@ VUE_APP_TITLE = 捷道管理系统-测试站
# 捷道管理系统/开发环境 # 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.jd.jdshangmen.com' VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
NODE_ENV = 'production' NODE_ENV = 'production'
# 页面标题 # 页面标题
VUE_APP_TITLE = 捷道管理系统 - 测试 VUE_APP_TITLE = 捷道管理系统 - 开发
# 捷道管理系统/开发环境 # 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com' VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com'
......
...@@ -69,4 +69,13 @@ export function getCustomerAvailableCouponList(data){ ...@@ -69,4 +69,13 @@ export function getCustomerAvailableCouponList(data){
method: 'post', method: 'post',
data data
}) })
}
// 更新优惠券有效期
export function updateEndtime(data){
return request({
url: '/product/coupon/update/endTime',
method: 'put',
data
})
} }
\ No newline at end of file
...@@ -51,6 +51,16 @@ export function getCustomerPage(query) { ...@@ -51,6 +51,16 @@ export function getCustomerPage(query) {
params: query params: query
}) })
} }
/**
* 获得部门客户
* */
export function getCustomerDeptPage(query){
return request({
url:'/ecw/customer/deptPage',
method:'get',
params:query
})
}
// 获得客户下拉 // 获得客户下拉
export function getCustomerSelect(query) { export function getCustomerSelect(query) {
...@@ -350,3 +360,22 @@ export function testEnterToOpenSea(customerId) { ...@@ -350,3 +360,22 @@ export function testEnterToOpenSea(customerId) {
params: {customerId} params: {customerId}
}) })
} }
/**
* 获取常用提货网点
* */
export function getServiceNetwork(){
return request({
url:'/ecw/node/list',
method:'get',
})
}
//设置空运客户
export function changeCustomerAir(data){
return request({
url:'/ecw/customer/change-customer-air',
method:'put',
data
})
}
...@@ -10,6 +10,14 @@ export function createDeptTarget(data) { ...@@ -10,6 +10,14 @@ export function createDeptTarget(data) {
} }
// 我的业绩 // 我的业绩
export function myDeptAchievementByPage(data) {
return request({
url: '/sale/dept-target/myDeptAchievementByPage',
method: 'post',
data: data
})
}
// 我的部门业绩
export function myAchievementByPage(data) { export function myAchievementByPage(data) {
return request({ return request({
url: '/sale/dept-target/myAchievementByPage', url: '/sale/dept-target/myAchievementByPage',
......
...@@ -123,4 +123,13 @@ export function recovery(id) { ...@@ -123,4 +123,13 @@ export function recovery(id) {
method: 'delete', method: 'delete',
params: {id} params: {id}
}) })
} }
\ No newline at end of file
// 获取部门报价单列表
export function offerDeptPage(params) {
return request({
url: '/ecw/offer/dept/page',
method: 'get',
params
})
}
...@@ -505,3 +505,69 @@ export function warehousePictureList(data){ ...@@ -505,3 +505,69 @@ export function warehousePictureList(data){
data data
}) })
} }
// 获得部门订单分页
export function deptOrderPage(params){
return request({
url: '/ecw/order/dept-order-page',
method: 'GET',
params
})
}
// 获得订单统计
export function orderStatistics(params){
return request({
url: '/ecw/order/statistics',
method: 'GET',
params
})
}
// 获得我的订单统计
export function orderMyStatistics(params){
return request({
url: '/ecw/order/my/statistics',
method: 'GET',
params
})
}
// 获得部门订单统计
export function orderDeptStatistics(params){
return request({
url: '/ecw/order/dept/statistics',
method: 'GET',
params
})
}
// 参数搜索导出订单管理 Excel
export function orderExportSearch(params){
return request({
url: '/ecw/order/export/search',
method: 'GET',
responseType: 'arraybuffer',
params
})
}
// 参数搜索导出我的订单管理 Excel
export function orderExportMySearch(params){
return request({
url: '/ecw/order/export/my/search',
responseType: 'arraybuffer',
method: 'GET',
params
})
}
// 参数搜索导出部门订单管理 Excel
export function orderExportDeptSearch(params){
return request({
url: '/ecw/order/export/dept/search',
method: 'GET',
responseType: 'arraybuffer',
params
})
}
\ No newline at end of file
...@@ -27,13 +27,20 @@ export function listSimpleUsers() { ...@@ -27,13 +27,20 @@ export function listSimpleUsers() {
} }
// 获取用户精简信息列表 // 获取客服岗位精简信息列表
export function listServiceUser() { export function listServiceUser() {
return request({ return request({
url: '/system/user/list-service-user', url: '/system/user/list-service-user',
method: 'get' method: 'get'
}) })
} }
// 获取用户精简信息列表
export function listAllSimpl(){
return request({
url:'/system/user/list-all-simple',
method:'get',
})
}
// 查询用户详细 // 查询用户详细
export function getUser(userId) { export function getUser(userId) {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<div class="line"> <div class="line">
<div class="label">{{$t('姓名')}}</div> <div class="label">{{$t('姓名')}}</div>
<div class="value">{{item.contactsName}}</div> <div class="value">{{item.contactsName}}</div>
<el-tag v-if="item.isInOpenSea" type="danger" effect="dark">{{$t('')}}</el-tag>
</div> </div>
<div class="line"> <div class="line">
<div class="label">{{$t('电话')}}</div> <div class="label">{{$t('电话')}}</div>
......
...@@ -172,7 +172,13 @@ export const constantRoutes = [ ...@@ -172,7 +172,13 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/ecw/deptTarget/empAchievement'], resolve), component: (resolve) => require(['@/views/ecw/deptTarget/empAchievement'], resolve),
name: '员工业绩', name: '员工业绩',
meta: {title: '员工业绩', activeMenu: '/deptTarget/index'} meta: {title: '员工业绩', activeMenu: '/deptTarget/index'}
} },
{
path: 'myDeptAchievement',
component: (resolve) => require(['@/views/ecw/deptTarget/myDeptAchievement'], resolve),
name: '我的部门业绩',
meta: {title: '我的部门业绩', activeMenu: '/deptTarget/myDeptAchievement'}
}
] ]
}, },
{ {
...@@ -258,11 +264,18 @@ export const constantRoutes = [ ...@@ -258,11 +264,18 @@ export const constantRoutes = [
meta: {title: '佣金设置', titleEn:'Commission settings', icon: '', activeMenu: '/customer/customerCommissionInfo'}, meta: {title: '佣金设置', titleEn:'Commission settings', icon: '', activeMenu: '/customer/customerCommissionInfo'},
props: true, props: true,
}, },
// {
// path: 'edit/:customerId(\\d+)',
// component: (resolve) => import('@/views/ecw/customer/edit'),
// props: true,
// name: 'customerEdit',
// meta: {title:'编辑客户',titleEn:'Edit Customer', icon: ''}
// },
{ {
path: 'edit/:customerId(\\d+)', path: 'edit-distribution/:customerId(\\d+)',
component: (resolve) => import('@/views/ecw/customer/edit'), component: (resolve) => import('@/views/ecw/customer/edit'),
props: true, props: true,
name: 'customerEdit', name: 'allocatedCustomerEdit',
meta: {title:'编辑客户',titleEn:'Edit Customer', icon: ''} meta: {title:'编辑客户',titleEn:'Edit Customer', icon: ''}
}, },
{ {
...@@ -278,13 +291,13 @@ export const constantRoutes = [ ...@@ -278,13 +291,13 @@ export const constantRoutes = [
name: 'perfect', name: 'perfect',
meta: {title: '完善客户',titleEn:'Perfect customers', icon: ''} meta: {title: '完善客户',titleEn:'Perfect customers', icon: ''}
}, },
{ // {
path: 'query/:customerId(\\d+)', // path: 'query/:customerId(\\d+)',
component: (resolve) => import('@/views/ecw/customer/query'), // component: (resolve) => import('@/views/ecw/customer/query'),
props: true, // props: true,
name: 'customerQuery', // name: 'customerQuery',
meta: {title: '客户详情',titleEn:'Customer details', icon: '', activeMenu: '/customer/customer'} // meta: {title: '客户详情',titleEn:'Customer details', icon: '', activeMenu: '/customer/customer'}
} // }
] ]
}, },
{ {
......
...@@ -117,6 +117,7 @@ export const DICT_TYPE = { ...@@ -117,6 +117,7 @@ export const DICT_TYPE = {
ECW_CANCEL_PICK_TYPE: 'cancel_pick_type', // 取消放货类型 ECW_CANCEL_PICK_TYPE: 'cancel_pick_type', // 取消放货类型
ECW_CUSTOMER_RESOURCE_TYPE: 'customer_resource_type', // 客户资源类型 ECW_CUSTOMER_RESOURCE_TYPE: 'customer_resource_type', // 客户资源类型
ECW_CUSTOMER_TRANSPORT_TYPE: 'customer_transport_type', // 客户出货渠道(跟运输方式相同,但是显示全部) ECW_CUSTOMER_TRANSPORT_TYPE: 'customer_transport_type', // 客户出货渠道(跟运输方式相同,但是显示全部)
ECW_ORDER_APPROVAL_TYPE: 'order_approval_type', // 订单相关审批类型
//--------ecw--------- //--------ecw---------
CUSTOMER_STATUS: 'customer_status', CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source', CUSTOMER_SOURCE: 'customer_source',
......
...@@ -84,7 +84,7 @@ export function addDateRange(params, dateRange, propName) { ...@@ -84,7 +84,7 @@ export function addDateRange(params, dateRange, propName) {
* 大小为 2 的数组,每个时间为 yyyy-MM-dd 格式 * 大小为 2 的数组,每个时间为 yyyy-MM-dd 格式
* @param propName 加入的参数名,可以为空 * @param propName 加入的参数名,可以为空
*/ */
export function addBeginAndEndTime(params, dateRange, propName) { export function addBeginAndEndTime(params, dateRange, propName,isTime = true) {
// 必须传入参数 // 必须传入参数
if (!dateRange) { if (!dateRange) {
return params; return params;
...@@ -97,10 +97,10 @@ export function addBeginAndEndTime(params, dateRange, propName) { ...@@ -97,10 +97,10 @@ export function addBeginAndEndTime(params, dateRange, propName) {
} }
// 设置参数 // 设置参数
if (dateRange[0]) { if (dateRange[0]) {
params['begin' + propName] = dateRange[0] + ' 00:00:00'; params['begin' + propName] = dateRange[0] + (isTime ? ' 00:00:00':'');
} }
if (dateRange[1]) { if (dateRange[1]) {
params['end' + propName] = dateRange[1] + ' 23:59:59'; params['end' + propName] = dateRange[1] + (isTime ? ' 23:59:59' : '');
} }
return params; return params;
} }
......
...@@ -96,7 +96,7 @@ export default { ...@@ -96,7 +96,7 @@ export default {
}, },
/** 关闭按钮 */ /** 关闭按钮 */
close() { close() {
this.$tab.closeOpenPage({ path: "/bpm/manager/model" }); this.$tab.closeOpenPage({ path: "/manager/model" });
}, },
} }
}; };
......
...@@ -340,7 +340,7 @@ export default { ...@@ -340,7 +340,7 @@ export default {
path: this.processInstance.processDefinition?.formCustomViewPath path: this.processInstance.processDefinition?.formCustomViewPath
}, },
} }
console.log(this.processInstance.processDefinition.formCustomViewPath.trim()) console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim())
return map[this.processInstance.processDefinition.formCustomViewPath.trim()] return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
} }
}, },
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('预计提单补料时间')"> <el-form-item :label="$t('补料时间')">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" value-format="yyyy-MM-dd HH:mm:ss" v-model="bookingObj.ladingBillTime"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" value-format="yyyy-MM-dd HH:mm:ss" v-model="bookingObj.ladingBillTime"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('预计报关时间')"> <el-form-item :label="$t('VGM提交时间')">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" value-format="yyyy-MM-dd HH:mm:ss" v-model="bookingObj.customsTime"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" value-format="yyyy-MM-dd HH:mm:ss" v-model="bookingObj.customsTime"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('预计截关时间')"> <el-form-item :label="$t('截关时间')">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" value-format="yyyy-MM-dd HH:mm:ss" v-model="bookingObj.cutOffTime"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" value-format="yyyy-MM-dd HH:mm:ss" v-model="bookingObj.cutOffTime"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
......
...@@ -229,6 +229,7 @@ ...@@ -229,6 +229,7 @@
<p>{{$t('外部仓')}}</p> <p>{{$t('外部仓')}}</p>
</div> </div>
<div class="table-button"> <div class="table-button">
<el-button v-if="item.relateOrderList" type="primary" size="small" style="margin-right: 20px;" @click="getRelationOrder(item)">{{$t('关联订单')}}</el-button>
<el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)"> <el-dropdown trigger="click" @command="(command)=>handleGoods('all',item,command)">
<el-button type="success" size="small" :disabled="isAudit">{{$t('预装全部')}}</el-button> <el-button type="success" size="small" :disabled="isAudit">{{$t('预装全部')}}</el-button>
<el-dropdown-menu slot="dropdown" v-if="preList.sectionGoodList"> <el-dropdown-menu slot="dropdown" v-if="preList.sectionGoodList">
...@@ -316,6 +317,15 @@ ...@@ -316,6 +317,15 @@
<el-button type="primary" @click="onSubmit">{{$t('提交申请')}}</el-button> <el-button type="primary" @click="onSubmit">{{$t('提交申请')}}</el-button>
</div> </div>
</el-row> </el-row>
<!-- 关联订单弹窗 -->
<el-dialog :title="relationOrderListDialog.title" :visible.sync="relationOrderListDialog.visible" width="30%" append-to-body>
<el-row v-for="(item,index) in relationOrderListDialog.data" :key="item.id">
{{index+1}}. {{item.orderNo}}
</el-row>
<el-row style="margin-top: 10px;text-align: center;">
<el-button type="primary" @click="relationOrderListDialog.visible = false">{{$t('关闭窗口')}}</el-button>
</el-row>
</el-dialog>
</div> </div>
</template> </template>
...@@ -406,6 +416,13 @@ export default { ...@@ -406,6 +416,13 @@ export default {
selectedUsers: [], selectedUsers: [],
// 智慧预装 // 智慧预装
smartInstall: 1, smartInstall: 1,
//关联订单
relationOrderListDialog: {
title: '',
visible: false,
data: []
},
}; };
}, },
computed: { computed: {
...@@ -491,8 +508,19 @@ export default { ...@@ -491,8 +508,19 @@ export default {
this.total = data.dataList?.total ?? 0; this.total = data.dataList?.total ?? 0;
this.unloadStatistics = data.unloadStatistics ?? {}; this.unloadStatistics = data.unloadStatistics ?? {};
this.toBePreLoading = false; this.toBePreLoading = false;
if(this.toBePreList.length == 0&&this.total!=0){
--this.pageParam.pageNo
this.getPreLoad()
}
}); });
}, },
/**查看关联订单 */
getRelationOrder(item) {
console.log(item)
this.relationOrderListDialog.title = item.orderNo+'关联订单'
this.relationOrderListDialog.visible = true
this.relationOrderListDialog.data = item.relateOrderList
},
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery(type) { handleQuery(type) {
this.pageParam.pageNo = 1; this.pageParam.pageNo = 1;
...@@ -602,7 +630,7 @@ export default { ...@@ -602,7 +630,7 @@ export default {
.then((_) => { .then((_) => {
deleteSection(part.id).then((res) => { deleteSection(part.id).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.getSecGoods(); this.queryAllData();
}); });
}); });
}) })
...@@ -695,7 +723,6 @@ export default { ...@@ -695,7 +723,6 @@ export default {
}, },
/* 查询所有数据 */ /* 查询所有数据 */
queryAllData() { queryAllData() {
this.pageParam.pageNo = 1;
this.getSecGoods(); this.getSecGoods();
this.getPreLoad(); this.getPreLoad();
}, },
......
...@@ -50,6 +50,13 @@ ...@@ -50,6 +50,13 @@
{{ scope.row.weight }} Kg {{ scope.row.weight }} Kg
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="提单补料(CBM)" align="center" prop="ladingBill">
<template slot-scope="scope">
{{ scope.row.ladingBill }} CBM
</template>
</el-table-column>
<el-table-column :label="$t('是否启用')" align="center" prop="status"> <el-table-column :label="$t('是否启用')" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
...@@ -75,16 +82,20 @@ ...@@ -75,16 +82,20 @@
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<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="120px">
<el-form-item :label="$t('柜型名称')" prop="name"> <el-form-item :label="$t('柜型名称')" prop="name">
<el-input v-model="form.name" :placeholder="$t('请输入柜型名称')" /> <el-input v-model="form.name" :placeholder="$t('请输入柜型名称')" />
</el-form-item> </el-form-item>
<el-form-item label="体积(m³)" prop="volume"> <el-form-item label="体积(m³)" prop="volume">
<el-input v-model="form.volume" :placeholder="$t('请输入体积')" /> <el-input v-model.trim="form.volume" @input="limitInput($event,'volume')" :placeholder="$t('请输入体积')" />
</el-form-item> </el-form-item>
<el-form-item label="重量(Kg)" prop="weight"> <el-form-item label="重量(Kg)" prop="weight">
<el-input v-model="form.weight" :placeholder="$t('请输入重量')" /> <el-input v-model.trim="form.weight" @input="limitInput($event,'weight')" :placeholder="$t('请输入重量')" />
</el-form-item>
<el-form-item label="提单补料(CBM)" prop="ladingBill">
<el-input v-model.trim="form.ladingBill" @input="limitInput($event,'ladingBill')" :placeholder="$t('请输入提单补料')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('是否启用')" prop="status"> <el-form-item :label="$t('是否启用')" prop="status">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
...@@ -135,7 +146,11 @@ export default { ...@@ -135,7 +146,11 @@ export default {
status: null, status: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {
volume: 0,
weight: 0,
ladingBill:0
},
// 表单校验 // 表单校验
rules: { rules: {
name: [{ required: true, message: this.$t("柜型名称不能为空"), trigger: "blur" }], name: [{ required: true, message: this.$t("柜型名称不能为空"), trigger: "blur" }],
...@@ -171,8 +186,9 @@ export default { ...@@ -171,8 +186,9 @@ export default {
this.form = { this.form = {
id: undefined, id: undefined,
name: undefined, name: undefined,
volume: undefined, volume: 0,
weight: undefined, weight: 0,
ladingBill:0,
status: undefined, status: undefined,
sort: undefined, sort: undefined,
}; };
...@@ -253,6 +269,25 @@ export default { ...@@ -253,6 +269,25 @@ export default {
this.$download.excel(response, '机柜配置.xls'); this.$download.excel(response, '机柜配置.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
},
limitInput(value, name) {
let val = (value && value.split("")) || [];
let reg1 = /\d/;
let reg2 = /\./;
// 第一个字符不能为小数点
if (val[0] == ".") {
this.form[name] = "";
return;
}
// 过滤掉除数字和小数点外的字符
val = val.filter((e) => reg1.test(e) || reg2.test(e));
// 匹配小数点后只能有两位小数
// 解释一下这个match正则规格
// ^\d* 是指以数字开头,后面允许输入0到多位数字
// (\.?) 是指只允许一个小数点
// \d{0,2} 是指只允许0到2位小数
this.form[name] = val.join("").match(/^\d*(\.?\d{0,2})/g)[0] || null;
} }
} }
}; };
......
...@@ -494,9 +494,7 @@ export default { ...@@ -494,9 +494,7 @@ export default {
// 对没有默认值的给一个空表单 // 对没有默认值的给一个空表单
[1,2].forEach(type => { [1,2].forEach(type => {
console.log(`fee${type}判断是否为空`, this.fee[type], this.fee[type].length)
if(!this.fee[type].length){ if(!this.fee[type].length){
console.log(`fee${type}给默认值`, this.fee[type], this.fee[type].length)
this.fee[type] = [{type}] this.fee[type] = [{type}]
} }
}) })
......
...@@ -159,7 +159,7 @@ ...@@ -159,7 +159,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('结束时间')" align="center" prop="endTime" width="180"> <el-table-column :label="$t('结束时间')" align="center" prop="endTime" width="180">
<template slot-scope="{row}"> <template slot-scope="{row}">
<div :style="{red: row.overdueStatus ==0 ? 'red' : null}">{{ parseTime(row.endTime, '{y}-{m}-{d}') }}</div> <div :style="{red: row.overdueStatus == 0 ? 'red' : null}">{{ parseTime(row.endTime, '{y}-{m}-{d}') }}</div>
<div v-if="row.overdueStatus == 0" style="color: red">{{ $t('已过期') }}</div> <div v-if="row.overdueStatus == 0" style="color: red">{{ $t('已过期') }}</div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -188,6 +188,8 @@ ...@@ -188,6 +188,8 @@
v-hasPermi="['ecw:coupon:update']">{{ $t('编辑') }}</el-button> v-hasPermi="['ecw:coupon:update']">{{ $t('编辑') }}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCopy(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleCopy(scope.row)"
v-hasPermi="['ecw:coupon:create']">{{ $t('复制') }}</el-button> v-hasPermi="['ecw:coupon:create']">{{ $t('复制') }}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="updateEndtimeItem = scope.row" v-if="scope.row.endTime && scope.row.status"
v-hasPermi="['ecw:coupon:update']">{{ $t('延期') }}</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['ecw:coupon:delete']">{{ $t('删除') }}</el-button> v-hasPermi="['ecw:coupon:delete']">{{ $t('删除') }}</el-button>
</template> </template>
...@@ -196,12 +198,32 @@ ...@@ -196,12 +198,32 @@
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/> @pagination="getList"/>
<el-dialog :title="$t('延期活动时间')" :visible="!!updateEndtimeItem" :before-close="() => updateEndtimeItem=null">
<div v-if="updateEndtimeItem">
{{$t('优惠活动“{name}”的当前结束时间:{time}',{
name: $l(updateEndtimeItem, 'title'),
time: updateEndtimeItem.endTime || $t('永久有效')
})}}
</div>
<div>{{$t('请问您确定延长活动吗?')}}</div>
<el-form :model="updateEndtimeForm" :rules="updateEndtimeRules" label-position="left" >
<el-form-item :label="$t('活动结束时间')" prop="endTime">
<el-date-picker v-if="!updateEndtimeForm.forever" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="updateEndtimeForm.endTime" placeholder=""></el-date-picker>
<el-checkbox :label="$t('永久有效')" v-model="updateEndtimeForm.forever" class="ml-10"></el-checkbox>
</el-form-item>
</el-form>
<div slot="footer">
<el-button type="primary" @click="updateEndtime">{{$t('确定')}}</el-button>
<el-button type="default" @click="updateEndtimeItem = null">{{$t('取消')}}</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { createCoupon, updateCoupon, deleteCoupon, getCoupon, getCouponPage, exportCouponExcel } from "@/api/ecw/coupon"; import { createCoupon, updateCoupon, deleteCoupon, getCoupon, getCouponPage, exportCouponExcel, updateEndtime } from "@/api/ecw/coupon";
export default { export default {
name: "EcwCouponIndex", name: "EcwCouponIndex",
...@@ -260,9 +282,25 @@ export default { ...@@ -260,9 +282,25 @@ export default {
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
} },
updateEndtimeItem: null, // 延期操作的数据
updateEndtimeForm:{} // 延长有效期的表单数据
}; };
}, },
computed:{
updateEndtimeRules(){
return {
endTime: [
{required: !this.updateEndtimeForm.forever, message: "请填写结束时间"}
]
}
}
},
watch:{
updateEndtimeItem(){
this.updateEndtimeForm = {}
}
},
created() { created() {
this.getList(); this.getList();
}, },
...@@ -331,6 +369,19 @@ export default { ...@@ -331,6 +369,19 @@ export default {
this.$message.success(this.$t("删除成功")); this.$message.success(this.$t("删除成功"));
}).catch(() => {}); }).catch(() => {});
}, },
// 延期
updateEndtime(){
if(!this.updateEndtimeForm.forever && !this.updateEndtimeForm.endTime){
return this.$message.error(this.$t("请填写结束时间"))
}
let form = {couponId: this.updateEndtimeItem.couponId, ...this.updateEndtimeForm}
form.isValidity = !form.forever // 是否设置有效期
updateEndtime(form).then(res => {
this.getList()
this.updateEndtimeItem = null
this.$message.success(this.$t('操作成功'))
})
},
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
......
...@@ -60,11 +60,7 @@ ...@@ -60,11 +60,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="100外币兑人民币汇率" align="center" prop="huilv" /> <el-table-column label="100外币兑人民币汇率" align="center" prop="huilv" />
<el-table-column label="100人民币兑外币汇率" align="center" prop="huilv"> <el-table-column label="100人民币兑外币汇率" align="center" prop="exchangeToFc" />
<template slot-scope="scope">
{{ scope.row.huilv ? (10000 / scope.row.huilv).toFixed(6) : ''}}
</template>
</el-table-column>
<el-table-column :label="$t('排序')" align="center" prop="aorder" /> <el-table-column :label="$t('排序')" align="center" prop="aorder" />
<!-- <el-table-column label="" align="center" prop="createAt" width="180">--> <!-- <el-table-column label="" align="center" prop="createAt" width="180">-->
<!-- <template slot-scope="scope">--> <!-- <template slot-scope="scope">-->
...@@ -107,9 +103,13 @@ ...@@ -107,9 +103,13 @@
<el-form-item label="100外币兑人民币汇率" prop="huilv"> <el-form-item label="100外币兑人民币汇率" prop="huilv">
<el-input v-model="form.huilv" placeholder="请输入100外币兑人民币汇率汇率" /> <el-input v-model="form.huilv" placeholder="请输入100外币兑人民币汇率汇率" />
</el-form-item> </el-form-item>
<el-form-item label="100人民币兑外币汇率" prop="huilv">
{{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}} <el-form-item label="100人民币兑外币汇率" prop="exchangeToFc">
<el-input v-model="form.exchangeToFc" placeholder="请输入100人民币兑外币汇率" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="100人民币兑外币汇率" prop="huilv">
{{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}}
</el-form-item> -->
<el-form-item :label="$t('排序')" prop="aorder"> <el-form-item :label="$t('排序')" prop="aorder">
<el-input v-model="form.aorder" :placeholder="$t('请输入排序')" /> <el-input v-model="form.aorder" :placeholder="$t('请输入排序')" />
</el-form-item> </el-form-item>
......
<template> <template>
<div> <div>
<el-descriptions :column="4"> <el-descriptions :column="4">
<el-descriptions-item :label="$t('客户编号')">{{detail.customerId}}</el-descriptions-item> <el-descriptions-item :label="$t('客户编号')">{{detail.customerNumber}}</el-descriptions-item>
<el-descriptions-item :label="$t('客户名称')">{{detail.customerName}}</el-descriptions-item> <el-descriptions-item :label="$t('客户名称')">{{detail.customerName}}</el-descriptions-item>
<el-descriptions-item :label="$t('跟进客服')">{{detail.followUpSalesmanName}}</el-descriptions-item> <el-descriptions-item :label="$t('跟进客服')">{{detail.followUpSalesmanName}}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">{{detail.createTime|parseTime}}</el-descriptions-item> <el-descriptions-item :label="$t('创建时间')">{{parseTime(detail.customerCreateTime)}}</el-descriptions-item>
<el-descriptions-item :span="2" :label="$t('客户原计划掉入公海池时间')">{{parseTime(detail.orgEstimateEnterOpenSeaTime)}}</el-descriptions-item>
<el-descriptions-item :span="2" :label="$t('申请延期后时间')">{{parseTime(detail.estimateEnterOpenSeaTime)}}</el-descriptions-item>
<el-descriptions-item :label="$t('申请凭证')" :span="4"> <el-descriptions-item :label="$t('申请凭证')" :span="4">
<el-image v-for="(item, index) in pictures" :key="index" :src="item" style="width:100px; height:100px" :preview-src-list="pictures"></el-image> <el-image v-for="(item, index) in pictures" :key="index" :src="item" style="width:100px; height:100px" :preview-src-list="pictures"></el-image>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('申请原因')" :span="4">{{detail.reason}}</el-descriptions-item> <el-descriptions-item :label="$t('申请原因')" :span="4">{{detail.reason}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
...@@ -16,7 +20,6 @@ ...@@ -16,7 +20,6 @@
import { getApproval } from '@/api/ecw/customer'; import { getApproval } from '@/api/ecw/customer';
import {parseTime} from '@/utils/ruoyi' import {parseTime} from '@/utils/ruoyi'
export default { export default {
filters: {parseTime},
props:{ props:{
id: [String, Number] id: [String, Number]
}, },
...@@ -36,6 +39,7 @@ export default { ...@@ -36,6 +39,7 @@ export default {
} }
}, },
created(){ created(){
parseTime,
getApproval(this.id).then(res => { getApproval(this.id).then(res => {
this.info = res.data this.info = res.data
}) })
......
...@@ -33,7 +33,10 @@ ...@@ -33,7 +33,10 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('出货渠道')" prop="transportType"> <el-form-item :label="$t('出货渠道')" prop="transportType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE" form-type="checkbox" multiple v-model="form.transportType"></dict-selector> <!-- <dict-selector :type="DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE" form-type="checkbox" multiple v-model="form.transportType"></dict-selector>-->
<el-checkbox-group v-model="form.transportType">
<el-checkbox v-for="item in getDictDatas(DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE)" :key="item.value" :label="item.value" :disabled="item.value == 4">{{item.label}}</el-checkbox>
</el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -42,8 +45,13 @@ ...@@ -42,8 +45,13 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('资源类型')" prop="remarks"> <!-- <el-form-item :label="$t('资源类型')" prop="remarks">-->
<dict-selector :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="form.resourceType" formatter="number"></dict-selector> <!-- <dict-selector :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="form.resourceType" formatter="number"></dict-selector>-->
<!-- </el-form-item>-->
<el-form-item :label="$t('常用提货网点')" prop="remarks">
<el-select v-model="form.pickupPoint">
<el-option v-for="item in serviceNetworkList " :value="item.id" :label="isChinese ? item.titleZh : item.titleEn "></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -106,8 +114,8 @@ ...@@ -106,8 +114,8 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="(customerId !== '0' || isCustomerServiceConfirmed)"> <el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="((customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed">
<el-option v-for="item in serviceUserList" <el-option v-for="item in !(((customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed) ? serviceUserList : allSimplList"
:key="item.id" :label="item.nickname" :value="item.id" /> :key="item.id" :label="item.nickname" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -142,7 +150,7 @@ ...@@ -142,7 +150,7 @@
<el-form-item :label="$t('创建人')" prop="founder"> <el-form-item :label="$t('创建人')" prop="founder">
<el-select v-model="form.founder" disabled> <el-select v-model="form.founder" disabled>
<el-option <el-option
v-for="item in serviceUserList" v-for="item in allSimplList"
:key="item.id" :key="item.id"
:label="item.nickname" :label="item.nickname"
:value="item.id"> :value="item.id">
...@@ -205,6 +213,14 @@ ...@@ -205,6 +213,14 @@
<customer-line-table v-if="showPao1" :warehouse-list="warehouseList" :import-city-list="importCityList" v-model="paoLines" :zhong-pao-type="2"></customer-line-table> <customer-line-table v-if="showPao1" :warehouse-list="warehouseList" :import-city-list="importCityList" v-model="paoLines" :zhong-pao-type="2"></customer-line-table>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item v-hasPermi="['ecw:customer:edit-card']" :label="$t('身份证姓名')">
<el-input v-model="form.carName"></el-input>
</el-form-item>
<el-form-item v-hasPermi="['ecw:customer:edit-card']" :label="$t('身份证号码')">
<el-input v-model="form.carNo" ></el-input>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-card class="box-card"> <el-card class="box-card">
...@@ -417,7 +433,7 @@ import { ...@@ -417,7 +433,7 @@ import {
getCustomerPage, memberUserList, getCustomerPage, memberUserList,
updateCustomer, updateCustomer,
userMemberUserList, userMemberUserList,
getCustomerLines, fillupCustomeInfo getCustomerLines, fillupCustomeInfo, getServiceNetwork
} from '@/api/ecw/customer' } from '@/api/ecw/customer'
import {getNodeList} from "@/api/ecw/node" import {getNodeList} from "@/api/ecw/node"
import { getProductTypeList } from '@/api/ecw/productType' import { getProductTypeList } from '@/api/ecw/productType'
...@@ -426,7 +442,7 @@ import {getTradeCityList} from "@/api/ecw/region" ...@@ -426,7 +442,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, listSimpleUsers} from "@/api/system/user" import {listAllSimpl, 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'
...@@ -437,9 +453,7 @@ import MemberSelector from '@/components/MemberSelector' ...@@ -437,9 +453,7 @@ import MemberSelector from '@/components/MemberSelector'
export default { export default {
name: "edit", name: "edit",
props: {
customerId: String,
},
components: { components: {
Template, Template,
upload, upload,
...@@ -514,9 +528,16 @@ export default { ...@@ -514,9 +528,16 @@ export default {
listServiceUser().then(r => { listServiceUser().then(r => {
this.serviceUserList = r.data this.serviceUserList = r.data
}) })
listAllSimpl().then(r => {
this.allSimplList = r.data
})
getCountryListAll().then(r => { getCountryListAll().then(r => {
this.countryList = r.data this.countryList = r.data
}) })
// 获取服务网点
getServiceNetwork().then(r =>{
this.serviceNetworkList = r.data
})
}, },
data(){ data(){
return { return {
...@@ -566,7 +587,9 @@ export default { ...@@ -566,7 +587,9 @@ export default {
zhongLines: [], // 重货线路 zhongLines: [], // 重货线路
paoLines: [], // 泡货线路 paoLines: [], // 泡货线路
memberList:[],//会员列表 memberList:[],//会员列表
selectMemberList:[]//选中会员列表 selectMemberList:[],//选中会员列表
serviceNetworkList:[], //网点列表
allSimplList:[]
} }
}, },
...@@ -751,13 +774,15 @@ export default { ...@@ -751,13 +774,15 @@ export default {
weightUnit: undefined, weightUnit: undefined,
createTime: undefined, createTime: undefined,
isShowTidanPrice:true, isShowTidanPrice:true,
carName:undefined,
carNo:undefined,
}; };
this.form.createTime = (new Date()).getTime() this.form.createTime = (new Date()).getTime()
this.resetForm("form"); this.resetForm("form");
}, },
getCustomer(id) { getCustomer(id) {
return getCustomer(id).then(response => { return getCustomer(id).then(response => {
this.form = { ...this.form, ...response.data, id: this.customerId }; this.form = { ...this.form, ...response.data, id: this.customerId,transportType: response.data.transportType.split(',') };
this.open = true; this.open = true;
this.title = this.$t('修改客户'); this.title = this.$t('修改客户');
this.getZhongPao() this.getZhongPao()
...@@ -776,7 +801,7 @@ export default { ...@@ -776,7 +801,7 @@ export default {
handleAddContact() { handleAddContact() {
this.form.customerContacts.push({ this.form.customerContacts.push({
"areaCode": "", "areaCode": "",
// "customerId": 0, // "customerId": 0,q
"department": "", "department": "",
"email": "", "email": "",
"isDefault": this.form.customerContacts.length === 0 ? 1 : 0, "isDefault": this.form.customerContacts.length === 0 ? 1 : 0,
...@@ -817,6 +842,9 @@ export default { ...@@ -817,6 +842,9 @@ export default {
userId(){ userId(){
return this.$store.state.user.id return this.$store.state.user.id
}, },
customerId(){
return this.$route.params.customerId;
},
/* userMemberUser(){ /* userMemberUser(){
let list = this.memberList.filter(item => { let list = this.memberList.filter(item => {
return this.selectMemberList.findIndex(i => i.id === item.id) < 0 return this.selectMemberList.findIndex(i => i.id === item.id) < 0
......
This diff is collapsed.
...@@ -22,8 +22,11 @@ ...@@ -22,8 +22,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
...@@ -127,6 +130,7 @@ export default { ...@@ -127,6 +130,7 @@ export default {
name: null, name: null,
source: null, source: null,
customerService: null, customerService: null,
marketType:null
}, },
// 网点 // 网点
nodeList: [], nodeList: [],
...@@ -152,7 +156,7 @@ export default { ...@@ -152,7 +156,7 @@ export default {
let params = {...this.queryParams}; let params = {...this.queryParams};
params.pageNo = undefined; params.pageNo = undefined;
params.pageSize = undefined; params.pageSize = undefined;
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行导出 // 执行导出
this.$modal.confirm(this.$t('是否确认导出间接客户数据项?')).then(() => { this.$modal.confirm(this.$t('是否确认导出间接客户数据项?')).then(() => {
this.exportLoading = true; this.exportLoading = true;
...@@ -175,7 +179,7 @@ export default { ...@@ -175,7 +179,7 @@ export default {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询 // 执行查询
getCustomerPage(params).then(response => { getCustomerPage(params).then(response => {
this.list = response.data.list; this.list = response.data.list;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
{{ getDictDatas2(DICT_TYPE.CUSTOMER_TYPE, (customer.type||'').split(',')).map(e => isChinese ? e.label : e.labelEn).join(', ')}} {{ getDictDatas2(DICT_TYPE.CUSTOMER_TYPE, (customer.type||'').split(',')).map(e => isChinese ? e.label : e.labelEn).join(', ')}}
</el-descriptions-item> </el-descriptions-item>
<!-- <el-descriptions-item :label="$t('联系方式')">{{ customer }}</el-descriptions-item>--> <!-- <el-descriptions-item :label="$t('联系方式')">{{ customer }}</el-descriptions-item>-->
<el-descriptions-item :label="$t('推介人')">{{ promoter }}</el-descriptions-item> <el-descriptions-item :label="$t('推介人')">{{ customer.promoterName }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户经理')">{{customerService }}</el-descriptions-item> <el-descriptions-item :label="$t('客户经理')">{{customerService }}</el-descriptions-item>
<el-descriptions-item :label="$t('公司名称')">{{ customer.company }}</el-descriptions-item> <el-descriptions-item :label="$t('公司名称')">{{ customer.company }}</el-descriptions-item>
<el-descriptions-item :label="$t('联系地址')">{{ customer.address }}</el-descriptions-item> <el-descriptions-item :label="$t('联系地址')">{{ customer.address }}</el-descriptions-item>
...@@ -46,7 +46,9 @@ ...@@ -46,7 +46,9 @@
<el-descriptions-item :label="$t('图片')"> <el-descriptions-item :label="$t('图片')">
<el-image v-show="!!customer.picture" :src="customer.picture" style="width: 100px;height: 100px"></el-image> <el-image v-show="!!customer.picture" :src="customer.picture" style="width: 100px;height: 100px"></el-image>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item> <el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item>
<el-descriptions-item v-if="permissions.includes('ecw:customer:query-card')" :label="$t('身份证姓名')">{{ customer.carName }}</el-descriptions-item>
<el-descriptions-item v-if="permissions.includes('ecw:customer:query-card')" :label="$t('身份证号码')">{{ customer.carNo }}</el-descriptions-item>
<!-- <el-descriptions-item :label="$t('信用等级')">{{ customer }}</el-descriptions-item>--> <!-- <el-descriptions-item :label="$t('信用等级')">{{ customer }}</el-descriptions-item>-->
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -458,15 +460,13 @@ import {getCountry} from "@/api/ecw/country" ...@@ -458,15 +460,13 @@ import {getCountry} from "@/api/ecw/country"
export default { export default {
name: 'query', name: 'query',
props: {
customerId: String
},
components: { components: {
Template, Template,
CustomerFollow, CustomerFollow,
CustomerComplaint CustomerComplaint
}, },
created() { created() {
this.permissions
//获取信用类型 //获取信用类型
getCreditRulePage({page:1,rows:999,type:2}).then(r => { getCreditRulePage({page:1,rows:999,type:2}).then(r => {
this.creditTypeList = r.data.list this.creditTypeList = r.data.list
...@@ -493,7 +493,7 @@ export default { ...@@ -493,7 +493,7 @@ export default {
this.productTypeList = r.data this.productTypeList = r.data
}) })
getCustomerSelect().then(r => { getCustomerSelect({pageSize:1000,pageNo:1}).then(r => {
this.customerSelect = r.data.list this.customerSelect = r.data.list
}) })
...@@ -616,6 +616,12 @@ export default { ...@@ -616,6 +616,12 @@ export default {
} }
}, },
computed: { computed: {
permissions(){
return this.$store.state.user.permissions
},
customerId(){
return this.$route.params.customerId;
},
isChinese(){ isChinese(){
return this.$i18n.locale === 'zh_CN' return this.$i18n.locale === 'zh_CN'
}, },
......
...@@ -46,14 +46,17 @@ ...@@ -46,14 +46,17 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('信用等级')" prop="department"> <el-form-item :label="$t('信用等级')" prop="department">
<el-select clearable v-model="queryParams.creditLevel" > <el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label=" isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label=" isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <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-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -365,6 +368,9 @@ export default { ...@@ -365,6 +368,9 @@ export default {
this.getList(); this.getList();
}, },
computed:{ computed:{
DICT_TYPE() {
return DICT_TYPE
},
isChinese(){ isChinese(){
return this.$i18n.locale === 'zh_CN' return this.$i18n.locale === 'zh_CN'
}, },
...@@ -402,6 +408,7 @@ export default { ...@@ -402,6 +408,7 @@ export default {
department: null, department: null,
creditLevel:null, creditLevel:null,
country:null, country:null,
marketType:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -435,6 +442,7 @@ export default { ...@@ -435,6 +442,7 @@ export default {
}) })
}, },
methods: { methods: {
getDictDatas,
countryFormatter(row, column, cellValue) { countryFormatter(row, column, cellValue) {
const country = this.countryList.find((e) => e.id === cellValue) const country = this.countryList.find((e) => e.id === cellValue)
return this.isChinese ? country?.nameZh : country?.nameEn return this.isChinese ? country?.nameZh : country?.nameEn
...@@ -444,7 +452,7 @@ export default { ...@@ -444,7 +452,7 @@ export default {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询 // 执行查询
getWaitForConfirmList(params).then(response => { getWaitForConfirmList(params).then(response => {
this.list = response.data.list; this.list = response.data.list;
......
...@@ -47,14 +47,17 @@ ...@@ -47,14 +47,17 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('信用等级')" prop="department"> <el-form-item :label="$t('信用等级')" prop="department">
<el-select clearable v-model="queryParams.creditLevel" > <el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <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-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -212,6 +215,7 @@ export default { ...@@ -212,6 +215,7 @@ export default {
department: null, department: null,
creditLevel:null, creditLevel:null,
country:null, country:null,
marketType:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -268,7 +272,7 @@ export default { ...@@ -268,7 +272,7 @@ export default {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询 // 执行查询
getCustomerToBeAssigned(params).then(response => { getCustomerToBeAssigned(params).then(response => {
this.list = response.data.list; this.list = response.data.list;
...@@ -359,7 +363,7 @@ export default { ...@@ -359,7 +363,7 @@ export default {
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.$router.push('/customer/edit/' + row.id) this.$router.push('/customer/edit-distribution/' + row.id)
// this.reset(); // this.reset();
// const id = row.id; // const id = row.id;
// getCustomer(id).then(response => { // getCustomer(id).then(response => {
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-date-picker v-model="dateFilter" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
<!-- <el-date-picker v-model="queryParams.beginStartTime" :placeholder="$t('请选择开始时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>--> <!-- <el-date-picker v-model="queryParams.beginStartTime" :placeholder="$t('请选择开始时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>-->
</el-form-item> </el-form-item>
<!-- <el-form-item :label="$t('结束时间')" prop="endStartTime">--> <!-- <el-form-item :label="$t('结束时间')" prop="endStartTime">-->
......
This diff is collapsed.
...@@ -658,7 +658,7 @@ import { getBankAccountPage } from "@/api/ecw/bankAccount"; ...@@ -658,7 +658,7 @@ import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept"; import { listSimpleDepts } from "@/api/system/dept";
import { getChannelList } from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel";
import { getTradeCityList } from "@/api/ecw/region"; import { getTradeCityList } from "@/api/ecw/region";
import { createReceipt, getReceivableList, getReceivableInfoByIds, getReceiptInfoByIds, getReceiptAccountList, getInvoicingItem, updateReceipt, updateReceivableDiscountById, getReceivableDiscountLogById } from "@/api/ecw/financial"; import { createReceipt,getFirstReceivableListByOrderId, getReceivableList, getReceivableInfoByIds, getReceiptInfoByIds, getReceiptAccountList, getInvoicingItem, updateReceipt, updateReceivableDiscountById, getReceivableDiscountLogById } from "@/api/ecw/financial";
import {getCustomer} from '@/api/ecw/customer' import {getCustomer} from '@/api/ecw/customer'
import NP from 'number-precision' import NP from 'number-precision'
import {getOrder} from '@/api/ecw/order' import {getOrder} from '@/api/ecw/order'
...@@ -729,6 +729,15 @@ export default { ...@@ -729,6 +729,15 @@ export default {
await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list) await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then(res => this.warehouseList = res.data)
let that = this; let that = this;
if (that.$route.query.orderId) {
await getFirstReceivableListByOrderId({id:that.$route.query.orderId}).then(response => {
this.list = [...response.data]
getOrder(that.$route.query.orderId).then(response => {
// console.log(response.data)
if(response.data.customerId) this.$set(this.form,'customerId',response.data.customerId)
})
})
}
if (that.$route.query.id) { if (that.$route.query.id) {
this.flag = true this.flag = true
this.id = this.$route.query.id; this.id = this.$route.query.id;
......
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('信用等级')" prop="department"> <el-form-item :label="$t('信用等级')" prop="department">
...@@ -50,6 +50,9 @@ ...@@ -50,6 +50,9 @@
<el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <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-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -203,6 +206,7 @@ export default { ...@@ -203,6 +206,7 @@ export default {
department: null, department: null,
creditLevel:null, creditLevel:null,
country:null, country:null,
marketType: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -258,7 +262,7 @@ export default { ...@@ -258,7 +262,7 @@ export default {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询 // 执行查询
getMyCustomerService(params).then(response => { getMyCustomerService(params).then(response => {
this.list = response.data.list; this.list = response.data.list;
......
...@@ -55,6 +55,9 @@ ...@@ -55,6 +55,9 @@
<el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <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-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -205,6 +208,7 @@ export default { ...@@ -205,6 +208,7 @@ export default {
customerService: null, customerService: null,
status: null, status: null,
department: null, department: null,
marketType:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
......
This diff is collapsed.
...@@ -10,11 +10,11 @@ ...@@ -10,11 +10,11 @@
<el-form-item :label="$t('客户')" prop="searchCustomer"> <el-form-item :label="$t('客户')" prop="searchCustomer">
<el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')" prop="orderNo"> <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>{{ $t('') }}<el-date-picker v-model="queryParams.endCreateTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" v-model="queryParams.beginCreateTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>{{ $t('') }}<el-date-picker v-model="queryParams.endCreateTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发地')" prop="departureId"> <el-form-item :label="$t('始发地')" prop="departureId">
<el-select v-model="queryParams.departureId" :placeholder="$t('请选择始发地')" clearable> <el-select v-model="queryParams.departureId" :placeholder="$t('请选择始发地')" clearable>
<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>
...@@ -47,14 +47,14 @@ ...@@ -47,14 +47,14 @@
<div> <div>
<el-form-item :label="$t('预计结束时间')" prop="orderNo"> <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>{{ $t('') }}<el-date-picker v-model="queryParams.endStopTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" v-model="queryParams.beginStopTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>{{ $t('') }}<el-date-picker type="datetime" v-model="queryParams.endStopTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <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-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
</template> </template>
</el-table-column> </el-table-column>
<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}">
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
</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">
<!-- <!--
0 取消 恢复 0 取消 恢复
1 特价审批 编辑、跟进、 取消 删除 1 特价审批 编辑、跟进、 取消 删除
2 草稿 编辑、 删除 2 草稿 编辑、 删除
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
<el-dropdown-item @click.native="recovery(scope.row.offerId)" v-if="[0].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-dropdown-item> <el-dropdown-item @click.native="recovery(scope.row.offerId)" v-if="[0].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('恢复')}}</el-dropdown-item>
<el-dropdown-item @click.native="deleteOffer(scope.row.offerId)" v-if="[0,1,2,3,4,5,6,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-dropdown-item> <el-dropdown-item @click.native="deleteOffer(scope.row.offerId)" v-if="[0,1,2,3,4,5,6,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:delete']">{{$t('删除')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -143,7 +143,7 @@ ...@@ -143,7 +143,7 @@
</template> </template>
<script> <script>
import { deleteOffer, getOfferPage, exportOfferExcel,cancel, recovery } from "@/api/ecw/offer"; import { deleteOffer, getOfferPage, exportOfferExcel,cancel, recovery, offerDeptPage } from "@/api/ecw/offer";
import { getCurrencyList } from '@/api/ecw/currency'; import { getCurrencyList } from '@/api/ecw/currency';
import {getTradeCityList} from '@/api/ecw/region' import {getTradeCityList} from '@/api/ecw/region'
import UserSelector from '@/components/UserSelector' import UserSelector from '@/components/UserSelector'
...@@ -170,8 +170,8 @@ export default { ...@@ -170,8 +170,8 @@ export default {
pageSize: 10 pageSize: 10
}, },
currencyList: [], currencyList: [],
tradeCityList:[] tradeCityList:[],
dept: false, // 是否部门订单
}; };
}, },
computed:{ computed:{
...@@ -193,6 +193,11 @@ export default { ...@@ -193,6 +193,11 @@ export default {
this.getList() this.getList()
}, },
created() { created() {
console.log("offer index", this.$route)
// 部门订单
if(this.$route.fullPath.indexOf('dept') > -1){
this.dept = true
}
getTradeCityList().then(res => this.tradeCityList = res.data) getTradeCityList().then(res => this.tradeCityList = res.data)
getCurrencyList().then(res => { getCurrencyList().then(res => {
...@@ -205,8 +210,9 @@ export default { ...@@ -205,8 +210,9 @@ export default {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
let func = this.dept ? offerDeptPage : getOfferPage
// 执行查询 // 执行查询
getOfferPage(this.queryParams).then(response => { func(this.queryParams).then(response => {
this.list = response.data.list; this.list = response.data.list;
this.total = response.data.total; this.total = response.data.total;
this.loading = false; this.loading = false;
......
<template>
<index dept />
</template>
<script>
import Index from './index'
export default {
name: 'EcwOrderDept',
components: {Index}
}
</script>
\ No newline at end of file
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" /> <dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" />
<el-date-picker v-model="dateFilter" <el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-"
type="daterange" range-separator="-"
:start-placeholder="$t('开始日期')" :start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')" :end-placeholder="$t('结束日期')"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
...@@ -98,6 +97,15 @@ ...@@ -98,6 +97,15 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('异常状态')" prop="status">
<dict-selector :type="DICT_TYPE.ORDER_ABNORMAL_STATE" v-model="queryParams.abnormalState"
@keyup.enter.native="handleQuery" clearable />
</el-form-item>
<el-form-item :label="$t('审核状态')" prop="status">
<dict-selector :type="DICT_TYPE.ECW_ORDER_APPROVAL_TYPE" v-model="queryParams.auditType"
@keyup.enter.native="handleQuery" clearable />
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <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-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -116,8 +124,31 @@ ...@@ -116,8 +124,31 @@
<el-button type="primary" plain icon="el-icon-setting" size="mini" @click="showBatchPickup=true">{{$t('批量提货')}}</el-button> <el-button type="primary" plain icon="el-icon-setting" size="mini" @click="showBatchPickup=true">{{$t('批量提货')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
:loading="exportLoading" v-hasPermi="['ecw:order:export']">{{$t('导出')}}</el-button> :loading="exportLoading" v-hasPermi="['ecw:order:export']">{{$t('导出')}}</el-button> -->
<el-dropdown v-hasPermi="isAll ? ['ecw:order:export','ecw:order:export:other']:[exportPermiString]">
<el-button type="primary" :loading="exportLoading" size="mini">
导出 <i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-hasPermi="[exportPermiString]" @click.native="exportChecked">导出勾选</el-dropdown-item>
<el-dropdown-item v-hasPermi="[exportPermiString]" @click.native="exportSearch">导出搜索</el-dropdown-item>
<template v-if="isAll" v-hasPermi="['ecw:order:export:other']">
<el-dropdown-item @click.native="$message('// TODO')">异常单统计</el-dropdown-item>
<el-dropdown-item @click.native="$message('// TODO')">重货单统计</el-dropdown-item>
<el-dropdown-item @click.native="$message('// TODO')">退仓单统计</el-dropdown-item>
<el-dropdown-item @click.native="$message('// TODO')">售后赔偿金额统计</el-dropdown-item>
<el-dropdown-item @click.native="$message('// TODO')">报关数据统计</el-dropdown-item>
<el-dropdown-item @click.native="$message('// TODO')">客户出货量统计</el-dropdown-item>
<el-dropdown-item @click.native="$message('// TODO')">预付运费统计</el-dropdown-item>
<el-dropdown-item @click.native="$message('// TODO')">卸货费统计</el-dropdown-item>
</template>
</el-dropdown-menu>
</el-dropdown>
</el-col>
<el-col :span="15" v-if="statistics">
<!-- 订单列表显示搜索条件对应箱数、仓库实测、收款方数、重量 -->
合计:{{statistics.totalNum}}箱,{{statistics.totalVolume}}m³(测) {{statistics.totalChargeVolume}}m³(重) {{statistics.totalWeight}}KG
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
...@@ -410,7 +441,14 @@ import { ...@@ -410,7 +441,14 @@ import {
orderSpecialNeed, orderSpecialNeed,
cancelOrder, cancelOrder,
recoveryOrder, recoveryOrder,
getMyOrderPage getMyOrderPage,
deptOrderPage,
orderStatistics,
orderMyStatistics,
orderDeptStatistics,
orderExportSearch,
orderExportMySearch,
orderExportDeptSearch
} from "@/api/ecw/order"; } from "@/api/ecw/order";
/* import { getDictDatas, DICT_TYPE } from '@/utils/dict'; */ /* import { getDictDatas, DICT_TYPE } from '@/utils/dict'; */
import PrintTag from './components/PrintTag' import PrintTag from './components/PrintTag'
...@@ -436,7 +474,8 @@ export default { ...@@ -436,7 +474,8 @@ export default {
CustomerSelector, ProductSelector, Selector,specialNeeds,PrintTag, PrintWarehouseReceipt, PrintLadingBill, BatchPickup,withdrawal CustomerSelector, ProductSelector, Selector,specialNeeds,PrintTag, PrintWarehouseReceipt, PrintLadingBill, BatchPickup,withdrawal
}, },
props: { props: {
mine: Boolean mine: Boolean, // 标识我的订单列表
dept: Boolean // 标识部门订单列表
}, },
data() { data() {
return { return {
...@@ -493,7 +532,8 @@ export default { ...@@ -493,7 +532,8 @@ export default {
page: 1, page: 1,
rows: 20, rows: 20,
}, },
currencyList:[] currencyList:[],
statistics: null ,// 统计数据
}; };
}, },
watch:{ watch:{
...@@ -502,6 +542,18 @@ export default { ...@@ -502,6 +542,18 @@ export default {
} }
}, },
computed: { computed: {
// 导出的权限字符串
exportPermiString(){
let arr = ['ecw:order:export']
if(this.mine)arr.push('my')
if(this.dept)arr.push('dept')
if(this.transportId)arr.push(this.transportId)
return arr.join(":")
},
// 是否全部订单
isAll(){
return !(this.mine || this.dept || this.transportId)
},
isChinese(){ isChinese(){
return this.$i18n.locale === 'zh_CN' return this.$i18n.locale === 'zh_CN'
}, },
...@@ -557,6 +609,37 @@ export default { ...@@ -557,6 +609,37 @@ export default {
getCurrencyPage(this.params).then(res => this.currencyList = res.data.list) getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
}, },
methods: { methods: {
// 获得导出函数
getExportFunc(){
let func = orderExportSearch
if(this.mine)func = orderExportMySearch
if(this.dept)func = orderExportDeptSearch
return func
},
// 导出勾选
exportChecked(){
if(!this.ids.length){
return this.$message.error(this.$t('请勾选需要导出的订单'))
}
return this.exportExcel(this.getExportFunc(), {orderIdList: this.ids}, this.$t("导出勾选"))
},
// 导出搜索
exportSearch(){
return this.exportExcel(this.getExportFunc(), this.combinedQueryParams, this.$t("导出搜索"))
},
// 通用导出函数
exportExcel(func, params, fileName = null){
this.exportLoading = true;
func(params).then(res => {
console.log({res})
if(!fileName){
fileName = this.$t('订单')
}
this.$download.excel(res, fileName + '.xls');
}).finally(() => {
this.exportLoading = false
})
},
// 提取路径中的运输方式 // 提取路径中的运输方式
getTransportFromRoute(){ getTransportFromRoute(){
let match = this.$route.path.match(/transport_(\d)/) let match = this.$route.path.match(/transport_(\d)/)
...@@ -595,19 +678,37 @@ export default { ...@@ -595,19 +678,37 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
console.log('this.combinedQueryParams', this.combinedQueryParams) console.log('this.combinedQueryParams', this.combinedQueryParams)
let func = getOrderPage
if(this.mine){ if(this.mine){
return getMyOrderPage(this.combinedQueryParams).then(response => { func = getMyOrderPage
/* return getMyOrderPage(this.combinedQueryParams).then(response => {
this.list = response.data.list; this.list = response.data.list;
this.total = response.data.total; this.total = response.data.total;
this.loading = false; this.loading = false;
}); }); */
}else if(this.dept){
func = deptOrderPage
} }
// 执行查询 // 执行查询
getOrderPage(this.combinedQueryParams).then(response => { func(this.combinedQueryParams).then(response => {
this.list = response.data.list; this.list = response.data.list;
this.total = response.data.total; this.total = response.data.total;
this.loading = false; this.loading = false;
}); });
this.getStatistics()
},
// 获得统计数据
getStatistics(){
let func = orderStatistics
if(this.mine){
func = orderMyStatistics
}else if(this.dept){
func = orderDeptStatistics
}
func(this.combinedQueryParams).then(res => {
this.statistics = res.data
})
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
......
...@@ -25,7 +25,9 @@ ...@@ -25,7 +25,9 @@
v-model="form.brand" v-model="form.brand"
:placeholder="$t('可修改')" :placeholder="$t('可修改')"
filterable filterable
remote
@change="handleBrandChange" @change="handleBrandChange"
:remote-method="getProductBrandPage"
clearable> clearable>
<el-option <el-option
v-for="item in brandList" v-for="item in brandList"
...@@ -197,7 +199,9 @@ ...@@ -197,7 +199,9 @@
v-model="form1.brand" v-model="form1.brand"
:placeholder="$t('可修改')" :placeholder="$t('可修改')"
filterable filterable
remote
@change="handleBrandChange" @change="handleBrandChange"
:remote-method="getProductBrandPage"
clearable> clearable>
<el-option <el-option
v-for="item in brandList" v-for="item in brandList"
...@@ -393,6 +397,10 @@ export default { ...@@ -393,6 +397,10 @@ export default {
type: Boolean, type: Boolean,
default: false default: false
}, },
isJiyun: {
type: Boolean,
default: false
},
// 入仓修改 // 入仓修改
edit: { edit: {
type: Boolean, type: Boolean,
...@@ -410,17 +418,6 @@ export default { ...@@ -410,17 +418,6 @@ export default {
} }
}, },
mounted() {
getProductBrankPage({pageSize: 100000}).then(r => {
this.brandList = r.data.list.map(e => {
if(e.id){
e.id = e.id.toString()
}
return e
})
})
},
data() { data() {
return { return {
DICT_TYPE, DICT_TYPE,
...@@ -497,6 +494,9 @@ export default { ...@@ -497,6 +494,9 @@ export default {
if (this.warehousing) { if (this.warehousing) {
// this.orderItem = this.warehousing // this.orderItem = this.warehousing
this.inTime = this.warehousing.inTime this.inTime = this.warehousing.inTime
if (!!this.warehousing.brandName){
this.getProductBrandPage(this.warehousing.brandName)
}
} }
} else { } else {
} }
...@@ -535,8 +535,17 @@ export default { ...@@ -535,8 +535,17 @@ export default {
} }
} }
}, },
methods: { methods: {
getProductBrandPage(titleZh = undefined) {
getProductBrankPage({pageSize: 20, titleZh}).then(r => {
this.brandList = r.data.list.map(e => {
if(e.id){
e.id = e.id.toString()
}
return e
})
})
},
handleCancelProcessInstance(){ handleCancelProcessInstance(){
this.$prompt('请输入取消原因?', this.$t("取消流程"), { this.$prompt('请输入取消原因?', this.$t("取消流程"), {
type: 'warning', type: 'warning',
...@@ -694,9 +703,9 @@ export default { ...@@ -694,9 +703,9 @@ export default {
} }
const form = val === 1 ? this.form1 : this.form const form = val === 1 ? this.form1 : this.form
form.orderWarehouseInItemDoList.push({ form.orderWarehouseInItemDoList.push({
"boxGauge1": "", "boxGauge1": this.isJiyun ? 0 : '',
"boxGauge2": "", "boxGauge2": this.isJiyun ? 0 : '',
"boxGauge3": "", "boxGauge3": this.isJiyun ? 0 : '',
"cartonsNum": cartonsNum > 0 ? cartonsNum : '', "cartonsNum": cartonsNum > 0 ? cartonsNum : '',
"expressNo": "", "expressNo": "",
"quantityAll": undefined, "quantityAll": undefined,
...@@ -732,7 +741,7 @@ export default { ...@@ -732,7 +741,7 @@ export default {
const [boxGauge1, boxGauge2, boxGauge3] = boxGaugeList const [boxGauge1, boxGauge2, boxGauge3] = boxGaugeList
return {...e, boxGauge1, boxGauge2, boxGauge3} return {...e, boxGauge1, boxGauge2, boxGauge3}
} }
return e return {...e, boxGauge1: this.isJiyun ? 0 : '', boxGauge2: this.isJiyun ? 0 : '', boxGauge3: this.isJiyun ? 0 : ''}
}) })
}, },
tableData1() { tableData1() {
......
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList" <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
:order-id="orderId" :warehouse-id="warehouseId" :is-editing="isEdit"></warehouse-area-dialog> :order-id="orderId" :warehouse-id="warehouseId" :is-editing="isEdit"></warehouse-area-dialog>
<edit-dialog :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit"></edit-dialog> <edit-dialog :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit" :is-jiyun="order.type.indexOf('1') !== -1"></edit-dialog>
<!-- 完成入仓 --> <!-- 完成入仓 -->
<el-dialog <el-dialog
...@@ -174,7 +174,7 @@ ...@@ -174,7 +174,7 @@
<el-form-item :label="$t('原因类型')"> <el-form-item :label="$t('原因类型')">
<dict-selector v-model="form.manualExceptionType" form-type="checkbox" :type="DICT_TYPE.MANUAL_EXCEPTION_TYPE" multiple ></dict-selector> <dict-selector v-model="form.manualExceptionType" form-type="checkbox" :type="DICT_TYPE.MANUAL_EXCEPTION_TYPE" multiple ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item required :label="$t('附件')"> <el-form-item :label="$t('附件')">
<image-upload v-model="form.exceptionUrls"></image-upload> <image-upload v-model="form.exceptionUrls"></image-upload>
</el-form-item> </el-form-item>
<el-form-item :label="$t('详细信息')"> <el-form-item :label="$t('详细信息')">
...@@ -392,7 +392,7 @@ export default { ...@@ -392,7 +392,7 @@ export default {
} }
if (this.escapeBol) { if (this.escapeBol) {
form.exceptionUrls = this.form.exceptionUrls.split(','); form.exceptionUrls = this.form.exceptionUrls.length !== 0 ? this.form.exceptionUrls?.split(',') : []
form.descZh = this.form.descZh; form.descZh = this.form.descZh;
form.manualExceptionType = this.form.manualExceptionType.join(',') form.manualExceptionType = this.form.manualExceptionType.join(',')
} }
......
...@@ -19,6 +19,15 @@ ...@@ -19,6 +19,15 @@
<el-form-item :label="$t('审核状态')" prop="registerIp"> <el-form-item :label="$t('审核状态')" prop="registerIp">
<dict-selector v-model="queryParams.auditStatus" :type="DICT_TYPE.AUDIT_STATUS"></dict-selector> <dict-selector v-model="queryParams.auditStatus" :type="DICT_TYPE.AUDIT_STATUS"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker
v-model="dateRangeCreateTime"
type="datetimerange"
:start-placeholder="$t('开始日期')"
value-format="yyyy-MM-dd HH:mm:ss"
:end-placeholder="$t('结束日期')">
</el-date-picker>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <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-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -378,8 +387,8 @@ export default { ...@@ -378,8 +387,8 @@ export default {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeLoginDate, 'loginDate'); // this.addBeginAndEndTime(params, this.dateRangeLoginDate, 'loginDate');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime'); this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询 // 执行查询
getUserPage(params).then(response => { getUserPage(params).then(response => {
this.list = response.data.list; this.list = response.data.list;
......
...@@ -101,7 +101,7 @@ import { CommonStatusEnum } from '@/utils/constants' ...@@ -101,7 +101,7 @@ import { CommonStatusEnum } from '@/utils/constants'
import { getDictDatas, DICT_TYPE } from '@/utils/dict' import { getDictDatas, DICT_TYPE } from '@/utils/dict'
export default { export default {
name: "Dict", name: "SystemDictIndex",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
...@@ -151,6 +151,9 @@ export default { ...@@ -151,6 +151,9 @@ export default {
created() { created() {
this.getList(); this.getList();
}, },
activated(){
this.getList();
},
methods: { methods: {
/** 查询字典类型列表 */ /** 查询字典类型列表 */
getList() { getList() {
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="$t('编号')" align="center" prop="id" /> <el-table-column :label="$t('编号')" align="center" prop="id" />
<el-table-column :label="$t('来源')" align="center" prop="fromId" /> <el-table-column :label="$t('来源')" align="center" prop="fromId" />
<el-table-column :label="$t('发送时间')" align="center" prop="sendTime" width="180"> <el-table-column :label="$t('发送时间')" align="center" prop="sendTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="$t('编号')" align="center" prop="id" /> <el-table-column :label="$t('编号')" align="center" prop="id" />
<!-- <el-table-column :label="$t('来源')" align="center" prop="fromId" />--> <!-- <el-table-column :label="$t('来源')" align="center" prop="fromId" />-->
<el-table-column :label="$t('发送时间')" align="center" prop="sendTime" width="180"> <el-table-column :label="$t('发送时间')" align="center" prop="sendTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -476,9 +476,13 @@ export default { ...@@ -476,9 +476,13 @@ export default {
roleId: this.form.id, roleId: this.form.id,
menuIds: [...this.$refs.menu.getCheckedKeys()] // , ...this.$refs.menu.getHalfCheckedKeys() 不需要半选中的,会在下次回显的时候导致子节点全部被选中 menuIds: [...this.$refs.menu.getCheckedKeys()] // , ...this.$refs.menu.getHalfCheckedKeys() 不需要半选中的,会在下次回显的时候导致子节点全部被选中
}).then(response => { }).then(response => {
this.$modal.msgSuccess("修改成功");
this.openMenu = false; this.openMenu = false;
this.getList(); this.getList();
this.$store.dispatch('GetInfo').then(
()=>{
this.$modal.msgSuccess("修改成功");
}
)
}); });
} }
}, },
......
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