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

解决冲突

parents cdbe51f4 2903c444
......@@ -5,7 +5,7 @@ NODE_ENV = 'production'
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'
# 路由懒加载
......
......@@ -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
......
......@@ -2,7 +2,7 @@
NODE_ENV = 'production'
# 页面标题
VUE_APP_TITLE = 捷道管理系统 - 测试
VUE_APP_TITLE = 捷道管理系统 - 开发
# 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com'
......
......@@ -70,3 +70,12 @@ export function getCustomerAvailableCouponList(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) {
params: query
})
}
/**
* 获得部门客户
* */
export function getCustomerDeptPage(query){
return request({
url:'/ecw/customer/deptPage',
method:'get',
params:query
})
}
// 获得客户下拉
export function getCustomerSelect(query) {
......@@ -350,3 +360,22 @@ export function testEnterToOpenSea(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) {
}
// 我的业绩
export function myDeptAchievementByPage(data) {
return request({
url: '/sale/dept-target/myDeptAchievementByPage',
method: 'post',
data: data
})
}
// 我的部门业绩
export function myAchievementByPage(data) {
return request({
url: '/sale/dept-target/myAchievementByPage',
......
......@@ -124,3 +124,12 @@ export function recovery(id) {
params: {id}
})
}
// 获取部门报价单列表
export function offerDeptPage(params) {
return request({
url: '/ecw/offer/dept/page',
method: 'get',
params
})
}
......@@ -505,3 +505,69 @@ export function warehousePictureList(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() {
}
// 获取用户精简信息列表
// 获取客服岗位精简信息列表
export function listServiceUser() {
return request({
url: '/system/user/list-service-user',
method: 'get'
})
}
// 获取用户精简信息列表
export function listAllSimpl(){
return request({
url:'/system/user/list-all-simple',
method:'get',
})
}
// 查询用户详细
export function getUser(userId) {
......
......@@ -11,6 +11,7 @@
<div class="line">
<div class="label">{{$t('姓名')}}</div>
<div class="value">{{item.contactsName}}</div>
<el-tag v-if="item.isInOpenSea" type="danger" effect="dark">{{$t('')}}</el-tag>
</div>
<div class="line">
<div class="label">{{$t('电话')}}</div>
......
......@@ -172,6 +172,12 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/ecw/deptTarget/empAchievement'], resolve),
name: '员工业绩',
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 = [
meta: {title: '佣金设置', titleEn:'Commission settings', icon: '', activeMenu: '/customer/customerCommissionInfo'},
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'),
props: true,
name: 'customerEdit',
name: 'allocatedCustomerEdit',
meta: {title:'编辑客户',titleEn:'Edit Customer', icon: ''}
},
{
......@@ -278,13 +291,13 @@ export const constantRoutes = [
name: 'perfect',
meta: {title: '完善客户',titleEn:'Perfect customers', icon: ''}
},
{
path: 'query/:customerId(\\d+)',
component: (resolve) => import('@/views/ecw/customer/query'),
props: true,
name: 'customerQuery',
meta: {title: '客户详情',titleEn:'Customer details', icon: '', activeMenu: '/customer/customer'}
}
// {
// path: 'query/:customerId(\\d+)',
// component: (resolve) => import('@/views/ecw/customer/query'),
// props: true,
// name: 'customerQuery',
// meta: {title: '客户详情',titleEn:'Customer details', icon: '', activeMenu: '/customer/customer'}
// }
]
},
{
......
......@@ -117,6 +117,7 @@ export const DICT_TYPE = {
ECW_CANCEL_PICK_TYPE: 'cancel_pick_type', // 取消放货类型
ECW_CUSTOMER_RESOURCE_TYPE: 'customer_resource_type', // 客户资源类型
ECW_CUSTOMER_TRANSPORT_TYPE: 'customer_transport_type', // 客户出货渠道(跟运输方式相同,但是显示全部)
ECW_ORDER_APPROVAL_TYPE: 'order_approval_type', // 订单相关审批类型
//--------ecw---------
CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source',
......
......@@ -84,7 +84,7 @@ export function addDateRange(params, dateRange, propName) {
* 大小为 2 的数组,每个时间为 yyyy-MM-dd 格式
* @param propName 加入的参数名,可以为空
*/
export function addBeginAndEndTime(params, dateRange, propName) {
export function addBeginAndEndTime(params, dateRange, propName,isTime = true) {
// 必须传入参数
if (!dateRange) {
return params;
......@@ -97,10 +97,10 @@ export function addBeginAndEndTime(params, dateRange, propName) {
}
// 设置参数
if (dateRange[0]) {
params['begin' + propName] = dateRange[0] + ' 00:00:00';
params['begin' + propName] = dateRange[0] + (isTime ? ' 00:00:00':'');
}
if (dateRange[1]) {
params['end' + propName] = dateRange[1] + ' 23:59:59';
params['end' + propName] = dateRange[1] + (isTime ? ' 23:59:59' : '');
}
return params;
}
......
......@@ -96,7 +96,7 @@ export default {
},
/** 关闭按钮 */
close() {
this.$tab.closeOpenPage({ path: "/bpm/manager/model" });
this.$tab.closeOpenPage({ path: "/manager/model" });
},
}
};
......
......@@ -340,7 +340,7 @@ export default {
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()]
}
},
......
......@@ -38,7 +38,7 @@
<el-row>
<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-form-item>
</el-col>
......@@ -51,7 +51,7 @@
<el-row>
<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-form-item>
</el-col>
......@@ -64,7 +64,7 @@
<el-row>
<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-form-item>
</el-col>
......
......@@ -229,6 +229,7 @@
<p>{{$t('外部仓')}}</p>
</div>
<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-button type="success" size="small" :disabled="isAudit">{{$t('预装全部')}}</el-button>
<el-dropdown-menu slot="dropdown" v-if="preList.sectionGoodList">
......@@ -316,6 +317,15 @@
<el-button type="primary" @click="onSubmit">{{$t('提交申请')}}</el-button>
</div>
</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>
</template>
......@@ -406,6 +416,13 @@ export default {
selectedUsers: [],
// 智慧预装
smartInstall: 1,
//关联订单
relationOrderListDialog: {
title: '',
visible: false,
data: []
},
};
},
computed: {
......@@ -491,8 +508,19 @@ export default {
this.total = data.dataList?.total ?? 0;
this.unloadStatistics = data.unloadStatistics ?? {};
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) {
this.pageParam.pageNo = 1;
......@@ -602,7 +630,7 @@ export default {
.then((_) => {
deleteSection(part.id).then((res) => {
serviceMsg(res, this).then(() => {
this.getSecGoods();
this.queryAllData();
});
});
})
......@@ -695,7 +723,6 @@ export default {
},
/* 查询所有数据 */
queryAllData() {
this.pageParam.pageNo = 1;
this.getSecGoods();
this.getPreLoad();
},
......
......@@ -50,6 +50,13 @@
{{ scope.row.weight }} Kg
</template>
</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">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
......@@ -75,16 +82,20 @@
<!-- 对话框(添加 / 修改) -->
<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-input v-model="form.name" :placeholder="$t('请输入柜型名称')" />
</el-form-item>
<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 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 :label="$t('是否启用')" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
......@@ -135,7 +146,11 @@ export default {
status: null,
},
// 表单参数
form: {},
form: {
volume: 0,
weight: 0,
ladingBill:0
},
// 表单校验
rules: {
name: [{ required: true, message: this.$t("柜型名称不能为空"), trigger: "blur" }],
......@@ -171,8 +186,9 @@ export default {
this.form = {
id: undefined,
name: undefined,
volume: undefined,
weight: undefined,
volume: 0,
weight: 0,
ladingBill:0,
status: undefined,
sort: undefined,
};
......@@ -253,6 +269,25 @@ export default {
this.$download.excel(response, '机柜配置.xls');
this.exportLoading = false;
}).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 {
// 对没有默认值的给一个空表单
[1,2].forEach(type => {
console.log(`fee${type}判断是否为空`, this.fee[type], this.fee[type].length)
if(!this.fee[type].length){
console.log(`fee${type}给默认值`, this.fee[type], this.fee[type].length)
this.fee[type] = [{type}]
}
})
......
......@@ -159,7 +159,7 @@
</el-table-column>
<el-table-column :label="$t('结束时间')" align="center" prop="endTime" width="180">
<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>
</template>
</el-table-column>
......@@ -188,6 +188,8 @@
v-hasPermi="['ecw:coupon:update']">{{ $t('编辑') }}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCopy(scope.row)"
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)"
v-hasPermi="['ecw:coupon:delete']">{{ $t('删除') }}</el-button>
</template>
......@@ -197,11 +199,31 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@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>
</template>
<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 {
name: "EcwCouponIndex",
......@@ -260,9 +282,25 @@ export default {
form: {},
// 表单校验
rules: {
}
},
updateEndtimeItem: null, // 延期操作的数据
updateEndtimeForm:{} // 延长有效期的表单数据
};
},
computed:{
updateEndtimeRules(){
return {
endTime: [
{required: !this.updateEndtimeForm.forever, message: "请填写结束时间"}
]
}
}
},
watch:{
updateEndtimeItem(){
this.updateEndtimeForm = {}
}
},
created() {
this.getList();
},
......@@ -331,6 +369,19 @@ export default {
this.$message.success(this.$t("删除成功"));
}).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() {
// 处理查询参数
......
......@@ -60,11 +60,7 @@
</template>
</el-table-column>
<el-table-column label="100外币兑人民币汇率" align="center" prop="huilv" />
<el-table-column label="100人民币兑外币汇率" align="center" prop="huilv">
<template slot-scope="scope">
{{ scope.row.huilv ? (10000 / scope.row.huilv).toFixed(6) : ''}}
</template>
</el-table-column>
<el-table-column label="100人民币兑外币汇率" align="center" prop="exchangeToFc" />
<el-table-column :label="$t('排序')" align="center" prop="aorder" />
<!-- <el-table-column label="" align="center" prop="createAt" width="180">-->
<!-- <template slot-scope="scope">-->
......@@ -107,9 +103,13 @@
<el-form-item label="100外币兑人民币汇率" prop="huilv">
<el-input v-model="form.huilv" placeholder="请输入100外币兑人民币汇率汇率" />
</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 label="100人民币兑外币汇率" prop="huilv">
{{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}}
</el-form-item> -->
<el-form-item :label="$t('排序')" prop="aorder">
<el-input v-model="form.aorder" :placeholder="$t('请输入排序')" />
</el-form-item>
......
<template>
<div>
<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.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-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 :label="$t('申请原因')" :span="4">{{detail.reason}}</el-descriptions-item>
</el-descriptions>
</div>
......@@ -16,7 +20,6 @@
import { getApproval } from '@/api/ecw/customer';
import {parseTime} from '@/utils/ruoyi'
export default {
filters: {parseTime},
props:{
id: [String, Number]
},
......@@ -36,6 +39,7 @@ export default {
}
},
created(){
parseTime,
getApproval(this.id).then(res => {
this.info = res.data
})
......
......@@ -33,7 +33,10 @@
<el-col :span="12">
<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-col>
<el-col :span="12">
......@@ -42,8 +45,13 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('资源类型')" prop="remarks">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="form.resourceType" formatter="number"></dict-selector>
<!-- <el-form-item :label="$t('资源类型')" prop="remarks">-->
<!-- <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-col>
......@@ -106,8 +114,8 @@
</el-col>
<el-col :span="12">
<el-form-item :label="$t('客户经理')" prop="customerService">
<el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="(customerId !== '0' || isCustomerServiceConfirmed)">
<el-option v-for="item in serviceUserList"
<el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="((customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed">
<el-option v-for="item in !(((customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed) ? serviceUserList : allSimplList"
:key="item.id" :label="item.nickname" :value="item.id" />
</el-select>
</el-form-item>
......@@ -142,7 +150,7 @@
<el-form-item :label="$t('创建人')" prop="founder">
<el-select v-model="form.founder" disabled>
<el-option
v-for="item in serviceUserList"
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id">
......@@ -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>
</el-form-item>
</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-card class="box-card">
......@@ -417,7 +433,7 @@ import {
getCustomerPage, memberUserList,
updateCustomer,
userMemberUserList,
getCustomerLines, fillupCustomeInfo
getCustomerLines, fillupCustomeInfo, getServiceNetwork
} from '@/api/ecw/customer'
import {getNodeList} from "@/api/ecw/node"
import { getProductTypeList } from '@/api/ecw/productType'
......@@ -426,7 +442,7 @@ import {getTradeCityList} from "@/api/ecw/region"
import {getWarehouseList} from "@/api/ecw/warehouse"
import CustomerLineTable from '@/components/CustomerLineTable'
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 { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts'
import { getCountryListAll } from '@/api/ecw/country'
......@@ -437,9 +453,7 @@ import MemberSelector from '@/components/MemberSelector'
export default {
name: "edit",
props: {
customerId: String,
},
components: {
Template,
upload,
......@@ -514,9 +528,16 @@ export default {
listServiceUser().then(r => {
this.serviceUserList = r.data
})
listAllSimpl().then(r => {
this.allSimplList = r.data
})
getCountryListAll().then(r => {
this.countryList = r.data
})
// 获取服务网点
getServiceNetwork().then(r =>{
this.serviceNetworkList = r.data
})
},
data(){
return {
......@@ -566,7 +587,9 @@ export default {
zhongLines: [], // 重货线路
paoLines: [], // 泡货线路
memberList:[],//会员列表
selectMemberList:[]//选中会员列表
selectMemberList:[],//选中会员列表
serviceNetworkList:[], //网点列表
allSimplList:[]
}
},
......@@ -751,13 +774,15 @@ export default {
weightUnit: undefined,
createTime: undefined,
isShowTidanPrice:true,
carName:undefined,
carNo:undefined,
};
this.form.createTime = (new Date()).getTime()
this.resetForm("form");
},
getCustomer(id) {
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.title = this.$t('修改客户');
this.getZhongPao()
......@@ -776,7 +801,7 @@ export default {
handleAddContact() {
this.form.customerContacts.push({
"areaCode": "",
// "customerId": 0,
// "customerId": 0,q
"department": "",
"email": "",
"isDefault": this.form.customerContacts.length === 0 ? 1 : 0,
......@@ -817,6 +842,9 @@ export default {
userId(){
return this.$store.state.user.id
},
customerId(){
return this.$route.params.customerId;
},
/* userMemberUser(){
let list = this.memberList.filter(item => {
return this.selectMemberList.findIndex(i => i.id === item.id) < 0
......
......@@ -46,13 +46,18 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
<el-date-picker
type="datetimerange"
clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('信用等级')" prop="department">
<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-select>
</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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
......@@ -74,6 +79,14 @@
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button :disabled="!selectCustomerList.length" @click="setChangeCustomerAir(true)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading"
v-hasPermi="['ecw:customer:transport']" >{{$t('设为空运客户')}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button :disabled="!selectCustomerList.length" @click="setChangeCustomerAir(false)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading"
v-hasPermi="['ecw:customer:transport']">{{$t('设为非空运客户')}}</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
......@@ -308,8 +321,8 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="重货标准(CBM)" prop="weightUnit">
<el-input v-model="form.weightUnit" placeholder="请输入重货标准(CBM)" />
<el-form-item :label="$t('重货标准(CBM)')" prop="weightUnit">
<el-input v-model="form.weightUnit" :placeholder="$t('请输入重货标准(CBM)')" />
</el-form-item>
</el-col>
<el-col :span="24">
......@@ -504,7 +517,7 @@
<script>
import {
createCustomer, updateCustomer, deleteCustomer, getCustomer,
getCustomerPage, exportCustomerExcel, testEnterToOpenSea
getCustomerPage, exportCustomerExcel, testEnterToOpenSea, getCustomerDeptPage, changeCustomerAir
} from "@/api/ecw/customer";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import {CommonStatusEnum} from '@/utils/constants'
......@@ -522,19 +535,6 @@ import Template from "@/views/cms/template/index.vue";
export default {
name: "EcwCustomerIndex",
activated(){
this.getList();
},
computed:{
isChinese(){
return this.$i18n.locale === 'zh_CN'
},
channel(){
return (val)=>{
return !!val ? this.getDictDatas(this.DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE).filter(i => (val.split(',') || []).includes(i.value)).map(i => this.isChinese ? i.label : i.labelEn ).join('') :''
}
}
},
components: {
Template,
upload,
......@@ -575,6 +575,7 @@ export default {
department: null,
creditLevel:null,
country:null,
marketType:null,
},
// 表单参数
form: {},
......@@ -601,6 +602,24 @@ export default {
transferShow:false
};
},
computed:{
channel(){
return (val)=>{
return !!val ? this.getDictDatas(this.DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE).filter(i => (val.split(',') || []).includes(i.value)).map(i => this.isChinese ? i.label : i.labelEn ).join('') :''
}
},
isChinese(){
return this.$i18n.locale === 'zh_CN'
}
},
watch:{
selectCustomerList(val){
if(val.length === 0){
this.getList()
this.$refs.multipleTable.clearSelection();
}
},
},
created() {
getCreditPage({page:1,rows:999}).then(r => {
this.creditList = r.data.list
......@@ -616,29 +635,126 @@ export default {
this.countryList = r.data
})
},
activated(){
this.getList();
},
methods: {
// 设置空运客户
setChangeCustomerAir(isAir){
changeCustomerAir({
customerIdList:this.selectCustomerList,
isAir
}).then(r =>{
console.log(r)
if(r.code === 0){
this.$message.success(isAir ? '设为空运客户成功!' : '设为非空运客户成功!')
this.selectCustomerList = []
this.getList()
}
})
},
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
},
complaint(row){
this.customerId = row.id;
this.$nextTick(()=>{
this.$refs.customerComplaints.handleAdd();
})
},
countryFormatter(row, column, cellValue) {
const country = this.countryList.find((e) => e.id === cellValue)
return this.isChinese ? country?.nameZh : country?.nameEn
},
delay(row){
this.$router.push({path:'/customer/delay',query:{id:row.id}})
},
followUp(row){
this.customerId = row.id;
this.$nextTick(()=>{
this.$refs.CustomerFollowList.customerFollow.dialogVisible = true;
})
},
/** 查询列表 */
getList() {
console.log(this.$route.path,'path')
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询
getCustomerPage(params).then(response => {
console.log(response,'response')
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
switch (this.$route.path){
case '/customer/customer' :
getCustomerPage(params).then(this.setData);
break;
case '/customer/department-customers':
getCustomerDeptPage(params).then(this.setData);
break;
}
},
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
/** 新增按钮操作 */
handleAdd() {
this.$router.push('/customer/add-edit/0')
// this.reset();
// this.open = true;
// this.title = this.$t("添加客户");
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
const name = row.name;
const number = row.number;
this.$modal.confirm(this.$t('是否确认删除客户编号为"') + number + this.$t('"的数据项?')).then(function() {
return deleteCustomer(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess(this.$t('删除成功'));
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// 处理查询参数
let params = {...this.queryParams};
params.pageNo = undefined;
params.pageSize = undefined;
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行导出
this.$modal.confirm(this.$t('是否确认导出所有客户数据项?')).then(() => {
this.exportLoading = true;
return exportCustomerExcel(params);
}).then(response => {
this.$download.excel(response, `${this.$t('客户信息')}.xls`);
/* console.log(response,'response')
this.$download.excel(response, `${this.$t('全部客户信息')}.xls`); */
this.exportLoading = false;
}).catch(() => {});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
handleSelectionChange(val){
this.selectCustomerList = val.map(i => i.id);
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$router.push('/customer/edit/' + row.id)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
// this.form = { ...this.form, ...response.data };
// this.open = true;
// this.title = this.$t("修改客户");
// });
},
/** 查看按钮操作 */
handleView(row) {
this.$router.push('/customer/query/' + row.id)
},
/** 表单重置 */
reset() {
......@@ -681,11 +797,6 @@ export default {
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRangeCreateTime = [];
......@@ -705,17 +816,6 @@ export default {
}
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.$router.push('/customer/add-edit/0')
// this.reset();
// this.open = true;
// this.title = this.$t("添加客户");
},
/** 查看按钮操作 */
handleView(row) {
this.$router.push('/customer/query/' + row.id)
},
/** 调入公海池测试用 */
seasPond(row) {
testEnterToOpenSea(row.id).then(r => {
......@@ -725,16 +825,11 @@ export default {
}
})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$router.push('/customer/edit/' + row.id)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
// this.form = { ...this.form, ...response.data };
// this.open = true;
// this.title = this.$t("修改客户");
// });
setData(response){
console.log(response,'response')
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
},
/** 提交按钮 */
submitForm() {
......@@ -758,65 +853,7 @@ export default {
this.getList();
});
});
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
const name = row.name;
const number = row.number;
this.$modal.confirm(this.$t('是否确认删除客户编号为"') + number + this.$t('"的数据项?')).then(function() {
return deleteCustomer(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess(this.$t('删除成功'));
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// 处理查询参数
let params = {...this.queryParams};
params.pageNo = undefined;
params.pageSize = undefined;
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行导出
this.$modal.confirm(this.$t('是否确认导出所有客户数据项?')).then(() => {
this.exportLoading = true;
return exportCustomerExcel(params);
}).then(response => {
this.$download.excel(response, `${this.$t('客户信息')}.xls`);
/* console.log(response,'response')
this.$download.excel(response, `${this.$t('全部客户信息')}.xls`); */
this.exportLoading = false;
}).catch(() => {});
},
followUp(row){
this.customerId = row.id;
this.$nextTick(()=>{
this.$refs.CustomerFollowList.customerFollow.dialogVisible = true;
})
},
delay(row){
this.$router.push({path:'/customer/delay',query:{id:row.id}})
},
complaint(row){
this.customerId = row.id;
this.$nextTick(()=>{
this.$refs.customerComplaints.handleAdd();
})
},
handleSelectionChange(val){
this.selectCustomerList = val.map(i => i.id);
}
},
watch:{
selectCustomerList(val){
if(val.length === 0){
this.getList()
this.$refs.multipleTable.clearSelection();
}
},
}
};
</script>
......@@ -22,8 +22,11 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
......@@ -127,6 +130,7 @@ export default {
name: null,
source: null,
customerService: null,
marketType:null
},
// 网点
nodeList: [],
......@@ -152,7 +156,7 @@ export default {
let params = {...this.queryParams};
params.pageNo = undefined;
params.pageSize = undefined;
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行导出
this.$modal.confirm(this.$t('是否确认导出间接客户数据项?')).then(() => {
this.exportLoading = true;
......@@ -175,7 +179,7 @@ export default {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询
getCustomerPage(params).then(response => {
this.list = response.data.list;
......
......@@ -35,7 +35,7 @@
{{ getDictDatas2(DICT_TYPE.CUSTOMER_TYPE, (customer.type||'').split(',')).map(e => isChinese ? e.label : e.labelEn).join(', ')}}
</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('公司名称')">{{ customer.company }}</el-descriptions-item>
<el-descriptions-item :label="$t('联系地址')">{{ customer.address }}</el-descriptions-item>
......@@ -47,6 +47,8 @@
<el-image v-show="!!customer.picture" :src="customer.picture" style="width: 100px;height: 100px"></el-image>
</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>
</el-card>
......@@ -458,15 +460,13 @@ import {getCountry} from "@/api/ecw/country"
export default {
name: 'query',
props: {
customerId: String
},
components: {
Template,
CustomerFollow,
CustomerComplaint
},
created() {
this.permissions
//获取信用类型
getCreditRulePage({page:1,rows:999,type:2}).then(r => {
this.creditTypeList = r.data.list
......@@ -493,7 +493,7 @@ export default {
this.productTypeList = r.data
})
getCustomerSelect().then(r => {
getCustomerSelect({pageSize:1000,pageNo:1}).then(r => {
this.customerSelect = r.data.list
})
......@@ -616,6 +616,12 @@ export default {
}
},
computed: {
permissions(){
return this.$store.state.user.permissions
},
customerId(){
return this.$route.params.customerId;
},
isChinese(){
return this.$i18n.locale === 'zh_CN'
},
......
......@@ -46,14 +46,17 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('信用等级')" prop="department">
<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-select>
</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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -365,6 +368,9 @@ export default {
this.getList();
},
computed:{
DICT_TYPE() {
return DICT_TYPE
},
isChinese(){
return this.$i18n.locale === 'zh_CN'
},
......@@ -402,6 +408,7 @@ export default {
department: null,
creditLevel:null,
country:null,
marketType:null,
},
// 表单参数
form: {},
......@@ -435,6 +442,7 @@ export default {
})
},
methods: {
getDictDatas,
countryFormatter(row, column, cellValue) {
const country = this.countryList.find((e) => e.id === cellValue)
return this.isChinese ? country?.nameZh : country?.nameEn
......@@ -444,7 +452,7 @@ export default {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询
getWaitForConfirmList(params).then(response => {
this.list = response.data.list;
......
......@@ -47,14 +47,17 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('信用等级')" prop="department">
<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-select>
</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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -212,6 +215,7 @@ export default {
department: null,
creditLevel:null,
country:null,
marketType:null,
},
// 表单参数
form: {},
......@@ -268,7 +272,7 @@ export default {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询
getCustomerToBeAssigned(params).then(response => {
this.list = response.data.list;
......@@ -359,7 +363,7 @@ export default {
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$router.push('/customer/edit/' + row.id)
this.$router.push('/customer/edit-distribution/' + row.id)
// this.reset();
// const id = row.id;
// getCustomer(id).then(response => {
......
......@@ -32,7 +32,7 @@
</el-select>
</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-form-item>
<!-- <el-form-item :label="$t('结束时间')" prop="endStartTime">-->
......
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('关键字')" prop="transportType">
<el-input v-model="queryParams.key" :placeholder="$t('请输入关键字查找')" />
</el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportType">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportType" formatter="number"/>
</el-form-item>
<el-form-item :label="$t('唛头')" prop="transportType">
<el-input v-model="queryParams.marks" :placeholder="$t('请输入关键字查找')" />
</el-form-item>
<el-form-item :label="$t('资源类型')" prop="customerType">
<!-- <el-select clearable v-model="queryParams.customerType" :placeholder="$t('请选择资源类型')" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_ESOURCE_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> -->
<dict-selector :type="DICT_TYPE.CUSTOMER_ESOURCE_TYPE" v-model="queryParams.customerType" :placeholder="$t('请选择资源类型')" clearable ></dict-selector>
</el-form-item>
<!-- <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item> -->
<!-- <el-form-item prop="customerService">
<el-select clearable v-model="queryParams.customerService" clearable size="small">
<el-option :label="$t('下单时间')" value="createTime"/>
<el-option :label="$t('装柜时间')" value="ldBoxTime"/>
</el-select>
</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="queryParams.beginStartTime" :placeholder="$t('请选择开始时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>-->
</el-form-item>
<!-- <el-form-item :label="$t('结束时间')" prop="endStartTime">-->
<!-- <el-date-picker v-model="queryParams.endStartTime" :placeholder="$t('请选择结束时间')" 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 type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
>{{$t('导出')}}</el-button> -->
</el-form-item>
</el-form>
<div class="total_num">
<span>{{ $t('开发客户:') }}</span>
<span>{{$t('总箱数')}} {{totalData.developNum}}{{$t('')}} </span>
<span>{{$t('总方数')}} {{totalData.developVolume}}</span>
<span>{{$t('总重量')}} {{totalData.developWeight}}KG </span>
<span>{{ $t('公司客户:') }}</span>
<span>{{$t('总箱数')}} {{totalData.companyNum}}{{$t('')}} </span>
<span>{{$t('总方数')}} {{totalData.companyVolume}}</span>
<span>{{$t('总重量')}} {{totalData.companyWeight}}KG </span>
<span>{{ $t('汇总:') }}</span>
<span>{{$t('总箱数')}} {{totalData.sumNum}}{{$t('')}} </span>
<span>{{$t('总方数')}} {{totalData.sumVolume}}</span>
<span>{{$t('总重量')}} {{totalData.sumWeight}}KG </span>
</div>
<!-- 列表 -->
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<!-- <el-table-column :label="$t('序号')" align="center" type="index"></el-table-column> -->
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column :label="$t('资源类型')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_ESOURCE_TYPE" :value="scope.row.customerType"/>
</template>
</el-table-column>
<el-table-column :label="$t('报价单号')" align="center" width="180">
<template slot-scope="scope">
<span>{{scope.row.number}}</span>
</template>
</el-table-column>
<!-- <el-table-column :label="$t('报价结果')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="scope.row.offerStatus"/>
</template>
</el-table-column> -->
<el-table-column :label="$t('订单号')" align="center" prop="orderNo"/>
<el-table-column :label="$t('客户名称')" align="center" prop="name"/>
<el-table-column :label="$t('联系方式')" align="center" prop="phoneNew"/>
<el-table-column :label="$t('唛头')" align="center" prop="marks"/>
<el-table-column :label="$t('订单状态')" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column :label="$t('是否控货')" align="center" prop="isCargoControl">
<template slot-scope="scope">
{{scope.row.isCargoControl?$t(''):$t('')}}
</template>
</el-table-column>
<el-table-column :label="$t('重量')" align="center" prop="completeWeight"/>
<el-table-column :label="$t('方数')" align="center" prop="completeVolume"/>
<el-table-column :label="$t('下单时间')" align="center" prop="createTime"/>
<el-table-column :label="$t('装柜时间')" align="center" prop="ldBoxTime"/>
<el-table-column :label="$t('客户经理')" align="center" prop="userId" :formatter="customerServiceFn">
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</div>
</template>
<script>
import {
createDeptTarget,
updateDeptTarget,
deleteDeptTarget,
getDeptTarget,
getDeptTargetPage,
exportDeptTargetExcel,
getCreateInitData,
getPersonTargetPage,
myAchievementByPage,
myDeptAchievementByPage
} from "@/api/ecw/deptTarget";
import {listSimpleDepts} from "@/api/system/dept";
import {getChannelList} from '@/api/ecw/channel';
import dayjs from "dayjs";
import {listServiceUser} from "@/api/system/user";
export default {
name: "DeptTarget",
components: {},
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
tableTotal: 0,
// 部门业绩目标设置列表
list: [],
tableList: [],
// 弹出层标题
title: "",
dateFilter:[],
detail: {
deptName: null,
targetType: null,
cubeNum: null,
shippingChannel: null,
transportType: null,
},
// 是否显示弹出层
open: false,
tableOpen: false,
dateRangeCreateTime: [],
dateRangeStartTime: [],
dateRangeEndTime: [],
deptData: [],
deptArr: [],
channelList: [],
monthList: [],
quarterList: [],
yearList: [],
targetPeriod: [],
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10,
beginStartTime:null,
transportType: null,
shippingChannel: null,
endStartTime: null,
},
tableQueryParams: {
pageNo: 1,
pageSize: 10,
id: null,
},
// 表单参数
form: {},
customerServiceList:[],
// 表单校验
rules: {
deptId: [{required: true, message: this.$t("部门ID不能为空"), trigger: "blur"}],
targetType: [{required: true, message: this.$t("目标类型不能为空"), trigger: "change"}],
cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}],
},
totalData:{
companyWeight:0,
companyVolume:0,
companyNum:0,
developWeight:0,
developVolume:0,
developNum:0,
sumWeight:0,
sumVolume:0,
sumNum:0,
},
myAchievementData:{}
};
},
computed: {
getShipChannelName() {
return shippingChannelId => {
for (let index in this.channelList) {
let channelItem = this.channelList[index];
if (channelItem.channelId == shippingChannelId) {
return this.$l(channelItem, 'name');
}
}
return '/'
}
}
},
created() {
this.getChannelList();
this.getList();
listServiceUser().then(r=>{
this.customerServiceList = r.data;
})
},
methods: {
getChannelList() {
getChannelList().then(res => this.channelList = res.data)
},
dateFormat(val) {
return dayjs(val).format("YYYY-MM-DD");
},
changeList(val) {
if (val === 1) {
this.form.targetPeriodName = undefined;
this.targetPeriod = this.monthList;
} else if (val === 2) {
this.form.targetPeriodName = undefined;
this.targetPeriod = this.quarterList;
} else {
this.form.targetPeriodName = undefined;
this.targetPeriod = this.yearList;
}
},
setTime(item) {
this.targetPeriod.forEach((i, index) => {
if (i.name === item) {
this.form.startTime = i.startDate;
this.form.endTime = i.endDate;
}
})
},
customerServiceFn(val){
if(this.customerServiceList.length > 0){
let index =this.customerServiceList.findIndex(item => item.id === val.userId);
return index !== -1 ? this.customerServiceList[index]?.nickname :''
}else {
return ''
}
},
/** 查询列表 */
getList() {
this.loading = true;
// 执行查询
myDeptAchievementByPage(this.queryParams).then(response => {
this.list = response.data.myAchievementDtos.list;
this.total = response.data.myAchievementDtos.total;
this.myAchievementData = response.data
this.totalData.sumWeight =this.myAchievementData.totalWeight
this.totalData.sumVolume =this.myAchievementData.totalVolume
this.totalData.sumNum =this.myAchievementData.totalNum
this.totalData.companyWeight =this.myAchievementData.companyTotalWeight
this.totalData.companyVolume =this.myAchievementData.companyTotalVolume
this.totalData.companyNum =this.myAchievementData.companyTotalNum
this.totalData.developWeight =this.myAchievementData.devTotalWeight
this.totalData.developVolume =this.myAchievementData.devTotalVolume
this.totalData.developNum =this.myAchievementData.devTotalNum
this.loading = false;
});
},
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
},
/** 表单重置 */
reset() {
this.form = {
id: undefined,
deptId: undefined,
targetType: undefined,
targetPeriodName: undefined,
startTime: undefined,
endTime: undefined,
transportType: undefined,
shippingChannel: undefined,
cubeNum: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.queryParams.beginStartTime=this.dateFilter[0];
this.queryParams.endStartTime=this.dateFilter[1];
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRangeCreateTime = [];
this.dateRangeStartTime = [];
this.dateRangeEndTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.targetPeriod = this.monthList;
this.reset();
this.open = true;
this.title = this.$t("添加部门业绩目标设置");
},
/** 查看人员目标情况 */
handleView(row) {
this.detail = row;
this.tableQueryParams.id = row.id;
this.getTableList();
this.tableOpen = true;
},
getTableList() {
getPersonTargetPage(this.tableQueryParams).then(res => {
this.tableList = res.data.list;
this.tableTotal = res.data.total;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id;
getDeptTarget(id).then(response => {
this.form = response.data;
if (response.data.targetType === 1) {
this.targetPeriod = this.monthList;
} else if (response.data.targetType === 2) {
this.targetPeriod = this.quarterList;
} else {
this.targetPeriod = this.yearList;
}
this.open = true;
this.title = this.$t("修改部门业绩目标设置");
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (!valid) {
return;
}
// 修改的提交
if (this.form.id != null) {
updateDeptTarget(this.form).then(response => {
this.$modal.msgSuccess(this.$t("修改成功"));
this.open = false;
this.getList();
});
return;
}
// 添加的提交
createDeptTarget(this.form).then(response => {
this.$modal.msgSuccess(this.$t("新增成功"));
this.open = false;
this.getList();
});
});
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
this.$modal.confirm(this.$t('是否确认删除部门业绩目标设置编号为{id}的数据项?', {id})).then(function () {
return deleteDeptTarget(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess(this.$t("删除成功"));
}).catch(() => {
});
},
handleSelectionChange(val){
if(val&&val.length>0){
var data={
companyWeight:0,
companyVolume:0,
companyNum:0,
developWeight:0,
developVolume:0,
developNum:0,
sumWeight:0,
sumVolume:0,
sumNum:0,
}
val.forEach(item=>{
if(item.customerType==1){
data.developWeight += item.completeWeight
data.developVolume += item.completeVolume
data.developNum += item.sumNum
}else{
data.companyWeight += item.completeWeight
data.companyVolume += item.completeVolume
data.companyNum += item.sumNum
}
data.sumWeight += item.completeWeight
data.sumVolume += item.completeVolume
data.sumNum += item.sumNum
})
this.$set(this,'totalData',data)
}else{
this.totalData.sumWeight =this.myAchievementData.totalWeight
this.totalData.sumVolume =this.myAchievementData.totalVolume
this.totalData.sumNum =this.myAchievementData.totalNum
this.totalData.companyWeight =this.myAchievementData.companyTotalWeight
this.totalData.companyVolume =this.myAchievementData.companyTotalVolume
this.totalData.companyNum =this.myAchievementData.companyTotalNum
this.totalData.developWeight =this.myAchievementData.devTotalWeight
this.totalData.developVolume =this.myAchievementData.devTotalVolume
this.totalData.developNum =this.myAchievementData.devTotalNum
}
},
/** 导出按钮操作 */
handleExport() {
// 处理查询参数
let params = {...this.queryParams};
params.pageNo = undefined;
params.pageSize = undefined;
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
this.addBeginAndEndTime(params, this.dateRangeStartTime, 'startTime');
this.addBeginAndEndTime(params, this.dateRangeEndTime, 'endTime');
// 执行导出
this.$modal.confirm(this.$t('是否确认导出所有部门业绩目标设置数据项?')).then(() => {
this.exportLoading = true;
return exportDeptTargetExcel(params);
}).then(response => {
this.$download.excel(response, `${this.$t('我的业绩')}.xls`);
this.exportLoading = false;
}).catch(() => {
});
}
}
};
</script>
<style scoped >
.total_num{
display:flex;
align-items: center;
justify-content: center;
margin:20px 0;
font-size:15px;
}
.total_num span{
margin: 0 8px;
}
</style>
......@@ -658,7 +658,7 @@ import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept";
import { getChannelList } from "@/api/ecw/channel";
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 NP from 'number-precision'
import {getOrder} from '@/api/ecw/order'
......@@ -729,6 +729,15 @@ export default {
await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
getWarehouseList().then(res => this.warehouseList = res.data)
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) {
this.flag = true
this.id = this.$route.query.id;
......
......@@ -41,8 +41,8 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('信用等级')" prop="department">
......@@ -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-select>
</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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -203,6 +206,7 @@ export default {
department: null,
creditLevel:null,
country:null,
marketType: null,
},
// 表单参数
form: {},
......@@ -258,7 +262,7 @@ export default {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询
getMyCustomerService(params).then(response => {
this.list = response.data.list;
......
......@@ -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-select>
</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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -205,6 +208,7 @@ export default {
customerService: null,
status: null,
department: null,
marketType:null,
},
// 表单参数
form: {},
......
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item :label="$t('编号')" prop="searchNumber">
<el-input v-model="queryParams.searchNumber" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('客户')" prop="searchCustomer">
<el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/>
</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>{{ $t('') }}<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('请选择始发地')" clearable>
<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('请选择目的地')" clearable>
<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 :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" clearable />
</el-form-item>
<el-form-item :label="$t('商品')" prop="prodTitle">
<el-input v-model="queryParams.prodTitle" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('控货')" prop="control">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" clearable />
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="followUpSalesmanId">
<user-selector v-model="queryParams.followUpSalesmanId" clearable />
</el-form-item>
<el-form-item :label="$t('销售阶段')" prop="status">
<dict-selector :type="DICT_TYPE.ECW_OFFER_STATUS" v-model="queryParams.status" clearable />
</el-form-item>
<el-form-item :label="$t('报关方式')" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable />
</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>{{ $t('') }}<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-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['ecw:offer:create']">{{$t('新增')}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:offer:export']">{{$t('导出')}}</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table v-loading="loading" :data="list" border>
<el-table-column :label="$t('报价单号')" align="left" prop="number" width="200px">
<template slot-scope="{row}">
<el-link type="primary" @click.native="$router.push('detail?offerId=' + row.offerId)">{{row.number}}</el-link>
</template>
</el-table-column>
<el-table-column :label="$t('订单编号')" align="left" prop="orderNo" />
<el-table-column :label="$t('客户名称')" align="left" prop="relationName" />
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" />
<el-table-column :label="$t('销售阶段')" align="left" width="180">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="row.status" />
</template>
</el-table-column>
<el-table-column :label="$t('预计结束时间')" align="left">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.stopTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('运输方式')" align="left">
<template slot-scope="scope" >
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
</template>
</el-table-column>
<el-table-column :label="$t('预计销售额')" align="left" prop="estCost">
<template slot-scope="{row}">
<div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex">
<dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" />
{{item.amount}} {{currencyMap[item.currencyId]}}
</div>
</template>
</el-table-column>
<el-table-column :label="$t('客户经理')" align="left" prop="creatorName">
</el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!--
0 取消 恢复
1 特价审批 编辑、跟进、 取消 删除
2 草稿 编辑、 删除
3 需求确认 编辑、跟进、结果、特价、取消 删除
4 赢单 删除
5 输单 删除
6 完成 删除
7 跟进中 编辑、跟进、结果、特价、取消、 删除
-->
<el-dropdown>
<el-button icon="el-icon-plus" circle type="primary"></el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="$router.push('detail?offerId=' + scope.row.offerId)" >{{$t('详情')}}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('edit?id=' + scope.row.offerId)" v-if="[1,2,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('编辑')}}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('logList?offerId=' + scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('跟进')}}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" v-if="[3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('结果')}}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('/offer/special?offerId=' + scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('特价')}}</el-dropdown-item>
<el-dropdown-item @click.native="cancel(scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{$t('取消')}}</el-dropdown-item>
<el-dropdown-item @click.native="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-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</div>
</template>
<script>
import { deleteOffer, getOfferPage, exportOfferExcel,cancel, recovery } from "@/api/ecw/offer";
import { getCurrencyList } from '@/api/ecw/currency';
import {getTradeCityList} from '@/api/ecw/region'
import UserSelector from '@/components/UserSelector'
export default {
name: "EcwOfferIndex",
components: {
UserSelector
},
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 报价单管理列表
list: [],
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10
},
currencyList: [],
tradeCityList:[]
};
},
computed:{
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
exportCityList() {
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList() {
return this.tradeCityList.filter(item => item.type == 1)
},
},
activated(){
this.getList()
},
created() {
getTradeCityList().then(res => this.tradeCityList = res.data)
getCurrencyList().then(res => {
this.currencyList = res.data
})
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 执行查询
getOfferPage(this.queryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNo: 1,
pageSize: 10
}
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
return this.$router.push('create')
},
/** 修改按钮操作 */
handleUpdate(row) {
return this.$router.push('edit?id=' + row.offerId)
},
/** 删除按钮操作 */
handleDelete(row) {
const offerId = row.offerId;
this.$modal.confirm(this.$t('是否确认删除报价单管理编号为{offerId}的数据项?', {offerId})).then(function() {
return deleteOffer(offerId);
}).then(() => {
this.getList();
this.$modal.msgSuccess(this.$t("删除成功"));
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// 处理查询参数
let params = {...this.queryParams};
params.pageNo = undefined;
params.pageSize = undefined;
// 执行导出
this.$modal.confirm(this.$t('是否确认导出所有报价单管理数据项?')).then(() => {
this.exportLoading = true;
return exportOfferExcel(params);
}).then(response => {
this.$download.excel(response, '报价列表.xls');
this.exportLoading = false;
}).catch(() => {});
},
cancel(id){
this.doAction('确定要取消此报价单么?', cancel, id);
},
recovery(id){
this.doAction('确定要恢复此报价单么?', recovery, id);
},
deleteOffer(id){
this.doAction('确定要删除此报价单么?', deleteOffer, id);
},
doAction(tips, action, id){
this.$confirm(tips).then(res => {
return action(id)
})
.then(() => {
this.$message.success('操作成功')
this.handleQuery()
})
}
}
};
</script>
......@@ -12,7 +12,7 @@
</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>{{ $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 :label="$t('始发地')" prop="departureId">
......@@ -47,7 +47,7 @@
<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>{{ $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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
......@@ -143,7 +143,7 @@
</template>
<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 {getTradeCityList} from '@/api/ecw/region'
import UserSelector from '@/components/UserSelector'
......@@ -170,8 +170,8 @@ export default {
pageSize: 10
},
currencyList: [],
tradeCityList:[]
tradeCityList:[],
dept: false, // 是否部门订单
};
},
computed:{
......@@ -193,6 +193,11 @@ export default {
this.getList()
},
created() {
console.log("offer index", this.$route)
// 部门订单
if(this.$route.fullPath.indexOf('dept') > -1){
this.dept = true
}
getTradeCityList().then(res => this.tradeCityList = res.data)
getCurrencyList().then(res => {
......@@ -205,8 +210,9 @@ export default {
/** 查询列表 */
getList() {
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.total = response.data.total;
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 @@
</el-form-item>
<el-form-item label="">
<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"
type="daterange" range-separator="-"
<el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"
value-format="yyyy-MM-dd HH:mm:ss"
......@@ -98,6 +97,15 @@
</el-select>
</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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -116,8 +124,31 @@
<el-button type="primary" plain icon="el-icon-setting" size="mini" @click="showBatchPickup=true">{{$t('批量提货')}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
:loading="exportLoading" v-hasPermi="['ecw:order:export']">{{$t('导出')}}</el-button>
<!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
: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>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
......@@ -410,7 +441,14 @@ import {
orderSpecialNeed,
cancelOrder,
recoveryOrder,
getMyOrderPage
getMyOrderPage,
deptOrderPage,
orderStatistics,
orderMyStatistics,
orderDeptStatistics,
orderExportSearch,
orderExportMySearch,
orderExportDeptSearch
} from "@/api/ecw/order";
/* import { getDictDatas, DICT_TYPE } from '@/utils/dict'; */
import PrintTag from './components/PrintTag'
......@@ -436,7 +474,8 @@ export default {
CustomerSelector, ProductSelector, Selector,specialNeeds,PrintTag, PrintWarehouseReceipt, PrintLadingBill, BatchPickup,withdrawal
},
props: {
mine: Boolean
mine: Boolean, // 标识我的订单列表
dept: Boolean // 标识部门订单列表
},
data() {
return {
......@@ -493,7 +532,8 @@ export default {
page: 1,
rows: 20,
},
currencyList:[]
currencyList:[],
statistics: null ,// 统计数据
};
},
watch:{
......@@ -502,6 +542,18 @@ export default {
}
},
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(){
return this.$i18n.locale === 'zh_CN'
},
......@@ -557,6 +609,37 @@ export default {
getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
},
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(){
let match = this.$route.path.match(/transport_(\d)/)
......@@ -595,19 +678,37 @@ export default {
getList() {
this.loading = true;
console.log('this.combinedQueryParams', this.combinedQueryParams)
let func = getOrderPage
if(this.mine){
return getMyOrderPage(this.combinedQueryParams).then(response => {
func = getMyOrderPage
/* return getMyOrderPage(this.combinedQueryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
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.total = response.data.total;
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 @@
v-model="form.brand"
:placeholder="$t('可修改')"
filterable
remote
@change="handleBrandChange"
:remote-method="getProductBrandPage"
clearable>
<el-option
v-for="item in brandList"
......@@ -197,7 +199,9 @@
v-model="form1.brand"
:placeholder="$t('可修改')"
filterable
remote
@change="handleBrandChange"
:remote-method="getProductBrandPage"
clearable>
<el-option
v-for="item in brandList"
......@@ -393,6 +397,10 @@ export default {
type: Boolean,
default: false
},
isJiyun: {
type: Boolean,
default: false
},
// 入仓修改
edit: {
type: Boolean,
......@@ -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() {
return {
DICT_TYPE,
......@@ -497,6 +494,9 @@ export default {
if (this.warehousing) {
// this.orderItem = this.warehousing
this.inTime = this.warehousing.inTime
if (!!this.warehousing.brandName){
this.getProductBrandPage(this.warehousing.brandName)
}
}
} else {
}
......@@ -535,8 +535,17 @@ export default {
}
}
},
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(){
this.$prompt('请输入取消原因?', this.$t("取消流程"), {
type: 'warning',
......@@ -694,9 +703,9 @@ export default {
}
const form = val === 1 ? this.form1 : this.form
form.orderWarehouseInItemDoList.push({
"boxGauge1": "",
"boxGauge2": "",
"boxGauge3": "",
"boxGauge1": this.isJiyun ? 0 : '',
"boxGauge2": this.isJiyun ? 0 : '',
"boxGauge3": this.isJiyun ? 0 : '',
"cartonsNum": cartonsNum > 0 ? cartonsNum : '',
"expressNo": "",
"quantityAll": undefined,
......@@ -732,7 +741,7 @@ export default {
const [boxGauge1, boxGauge2, boxGauge3] = boxGaugeList
return {...e, boxGauge1, boxGauge2, boxGauge3}
}
return e
return {...e, boxGauge1: this.isJiyun ? 0 : '', boxGauge2: this.isJiyun ? 0 : '', boxGauge3: this.isJiyun ? 0 : ''}
})
},
tableData1() {
......
......@@ -153,7 +153,7 @@
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
: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
......@@ -174,7 +174,7 @@
<el-form-item :label="$t('原因类型')">
<dict-selector v-model="form.manualExceptionType" form-type="checkbox" :type="DICT_TYPE.MANUAL_EXCEPTION_TYPE" multiple ></dict-selector>
</el-form-item>
<el-form-item required :label="$t('附件')">
<el-form-item :label="$t('附件')">
<image-upload v-model="form.exceptionUrls"></image-upload>
</el-form-item>
<el-form-item :label="$t('详细信息')">
......@@ -392,7 +392,7 @@ export default {
}
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.manualExceptionType = this.form.manualExceptionType.join(',')
}
......
......@@ -19,6 +19,15 @@
<el-form-item :label="$t('审核状态')" prop="registerIp">
<dict-selector v-model="queryParams.auditStatus" :type="DICT_TYPE.AUDIT_STATUS"></dict-selector>
</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-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -378,8 +387,8 @@ export default {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeLoginDate, 'loginDate');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// this.addBeginAndEndTime(params, this.dateRangeLoginDate, 'loginDate');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
// 执行查询
getUserPage(params).then(response => {
this.list = response.data.list;
......
......@@ -101,7 +101,7 @@ import { CommonStatusEnum } from '@/utils/constants'
import { getDictDatas, DICT_TYPE } from '@/utils/dict'
export default {
name: "Dict",
name: "SystemDictIndex",
data() {
return {
// 遮罩层
......@@ -151,6 +151,9 @@ export default {
created() {
this.getList();
},
activated(){
this.getList();
},
methods: {
/** 查询字典类型列表 */
getList() {
......
......@@ -44,7 +44,7 @@
<!-- 列表 -->
<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="sendTime" width="180">
<template slot-scope="scope">
......
......@@ -38,7 +38,7 @@
<!-- 列表 -->
<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="sendTime" width="180">
<template slot-scope="scope">
......
......@@ -476,9 +476,13 @@ export default {
roleId: this.form.id,
menuIds: [...this.$refs.menu.getCheckedKeys()] // , ...this.$refs.menu.getHalfCheckedKeys() 不需要半选中的,会在下次回显的时候导致子节点全部被选中
}).then(response => {
this.$modal.msgSuccess("修改成功");
this.openMenu = false;
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