Commit 3b7bcbee authored by huyf's avatar huyf

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

parents 138085b3 efdcb605
...@@ -5,6 +5,7 @@ ENV = 'development' ...@@ -5,6 +5,7 @@ ENV = 'development'
VUE_APP_TITLE = 捷道管理系统-测试站 VUE_APP_TITLE = 捷道管理系统-测试站
# 捷道管理系统/开发环境 # 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.jd.jdshangmen.com' VUE_APP_BASE_API = 'https://api.jd.jdshangmen.com'
# 路由懒加载 # 路由懒加载
......
# 开发环境配置
NODE_ENV = 'production'
# 页面标题
VUE_APP_TITLE = 捷道管理系统 - 开发版
# 捷道管理系统/开发环境
VUE_APP_BASE_API = 'https://api.sit.jdshangmen.com'
# VUE_APP_BASE_API = '/api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 多租户的开关
VUE_APP_TENANT_ENABLE = false
# 文档的开关
VUE_APP_DOC_ENABLE = true
# 百度统计
VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab
\ No newline at end of file
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
"local": "vue-cli-service serve --mode local", "local": "vue-cli-service serve --mode local",
"dev": "vue-cli-service serve", "dev": "vue-cli-service serve",
"build:dev": "vue-cli-service build --mode dev", "build:dev": "vue-cli-service build --mode dev",
"build:sit": "vue-cli-service build --mode sit",
"build:prod": "vue-cli-service build", "build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging", "build:stage": "vue-cli-service build --mode staging",
"build:demo1024": "vue-cli-service build --mode demo1024", "build:demo1024": "vue-cli-service build --mode demo1024",
......
...@@ -191,6 +191,7 @@ export function zipDownload(params) { ...@@ -191,6 +191,7 @@ export function zipDownload(params) {
url: "/shipment/make-bill-of-lading/zipDownload", url: "/shipment/make-bill-of-lading/zipDownload",
responseType: "blob", responseType: "blob",
method: "get", method: "get",
timeout: 120000,
params, params,
}); });
} }
...@@ -325,3 +326,12 @@ export function updateAbnormalOrder(data) { ...@@ -325,3 +326,12 @@ export function updateAbnormalOrder(data) {
data, data,
}); });
} }
// 更新提单URL
export function updateUrl(data) {
return request({
url: "/shipment/make-bill-of-lading/updateUrl",
method: "put",
data,
});
}
\ No newline at end of file
...@@ -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',
......
...@@ -76,4 +76,31 @@ export function getWareHousedVolume(params){ ...@@ -76,4 +76,31 @@ export function getWareHousedVolume(params){
method: 'get', method: 'get',
params params
}) })
} }
\ No newline at end of file // 根据运输方式ID获取异常订单方数
export function getExceptionVolume(params){
return request({
url: '/ecw/future-box/getExceptionVolume',
method: 'get',
params
})
}
// 根据运输方式ID获取自单代报订单方数
export function getOrderReportVolume(params){
return request({
url: '/ecw/future-box/getOrderReportVolume',
method: 'get',
params
})
}
// 根据运输方式ID获取待排单订单方数
export function getWarehousingVolume(params){
return request({
url: '/ecw/future-box/getWarehousingVolume',
method: 'get',
params
})
}
...@@ -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,154 @@ export function warehousePictureList(data){ ...@@ -505,3 +505,154 @@ 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
})
}
// 参数搜索导出异常订单统计 Excel
export function exportAbnormal(params){
return request({
url: '/ecw/order/export/export-exception',
method: 'get',
params: params,
responseType: 'blob'
})
}
// 参数搜索导出重货单统计 Excel
export function exportHeavyOrder(params){
return request({
url: '/ecw/order/export/export-heavyOrder',
method: 'get',
params: params,
responseType: 'blob'
})
}
// 参数搜索导出退仓单统计统计 Excel
export function exportReturnOrder(params){
return request({
url: '/ecw/order/export/export-returnOrder',
method: 'get',
params: params,
responseType: 'blob'
})
}
// 参数搜索导出售后赔偿金额统计 Excel
export function exportSaleRepay(params){
return request({
url: '/ecw/order/export/export-saleRepay',
method: 'get',
params: params,
responseType: 'blob'
})
}
// 参数搜索导出报关数统计 Excel
export function exportCustomsDatas(params){
return request({
url: '/ecw/order/export/export-customDatas',
method: 'get',
params: params,
responseType: 'blob'
})
}
// 参数搜索导出客户出货量统计 Excel
export function exportShippingDatas(params){
return request({
url: '/ecw/order/export/export-shipDatas',
method: 'get',
params: params,
responseType: 'blob'
})
}
// 参数搜索导出预付运费统计 Excel
export function exportShipFee(params){
return request({
url: '/ecw/order/export/export-shipFee',
method: 'get',
params: params,
responseType: 'blob'
})
}
// 参数搜索导出卸货费统计 Excel
export function exportUnload(params){
return request({
url: '/ecw/order/export/export-excel',
method: 'get',
params: params,
responseType: 'blob'
})
}
...@@ -138,4 +138,14 @@ export function getCondimentsIno(cargoControlPickId){ ...@@ -138,4 +138,14 @@ export function getCondimentsIno(cargoControlPickId){
url: '/ecw/order-cargo-control-pick/seasoning/condiments/info/' + cargoControlPickId, url: '/ecw/order-cargo-control-pick/seasoning/condiments/info/' + cargoControlPickId,
method: 'get' method: 'get'
}) })
}
// 参数搜索导出控货订单列表
export function exportCargoControl(params){
return request({
url: '/ecw/order/export/cargo/control/search',
method: 'get',
responseType: 'arraybuffer',
params
})
} }
\ No newline at end of file
...@@ -100,4 +100,14 @@ export function getBmpDetailByBusinessId(businessId) { ...@@ -100,4 +100,14 @@ export function getBmpDetailByBusinessId(businessId) {
method: 'get', method: 'get',
params: {businessId} params: {businessId}
}) })
}
// 导出订单异常 Excel
export function exportExcel(params) {
return request({
url: '/ecw/order-exception/export-excel',
method: 'get',
params,
responseType: 'arraybuffer'
})
} }
\ No newline at end of file
...@@ -97,7 +97,7 @@ export function exportSplitExcel(query) { ...@@ -97,7 +97,7 @@ export function exportSplitExcel(query) {
//通过订单号获取拆单列表和拆单项明细 //通过订单号获取拆单列表和拆单项明细
export function getSplitList(query) { export function getSplitList(query) {
return request({ return request({
url: '/order/split/list-by-order-id', url: '/ecw/box-approval/list-by-order-id',
method: 'get', method: 'get',
params: query params: query
}) })
......
...@@ -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) {
......
src/assets/images/profile.jpg

79.2 KB | W: | H:

src/assets/images/profile.jpg

12.7 KB | W: | H:

src/assets/images/profile.jpg
src/assets/images/profile.jpg
src/assets/images/profile.jpg
src/assets/images/profile.jpg
  • 2-up
  • Swipe
  • Onion skin
...@@ -48,11 +48,9 @@ export default { ...@@ -48,11 +48,9 @@ export default {
}, },
'formData.country'(country){ 'formData.country'(country){
this.$emit('countryChange', country) this.$emit('countryChange', country)
this.$set(this.formData, 'province', undefined)
}, },
'formData.province'(province){ 'formData.province'(province){
this.$emit('provinceChange', province) this.$emit('provinceChange', province)
this.$set(this.formData, 'city', '')
} }
}, },
computed:{ computed:{
......
...@@ -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>
......
This diff is collapsed.
{ {
"编号":"编号",
"登录": "登录", "登录": "登录",
"上传附件": "上传附件", "上传附件": "上传附件",
"不需要": "不需要", "不需要": "不需要",
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<div class="right-menu"> <div class="right-menu">
<template v-if="device!=='mobile'"> <template v-if="device!=='mobile'">
<router-link class="right-menu-item" to="/chat/chat">捷哥</router-link>
<div class="right-menu-item"> <div class="right-menu-item">
<el-image style="width: 22px;height: 22px;cursor: pointer;" :src="helpIcon" @click="tohelp"></el-image> <el-image style="width: 22px;height: 22px;cursor: pointer;" :src="helpIcon" @click="tohelp"></el-image>
</div> </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'}
}
] ]
}, },
{ {
...@@ -212,7 +218,7 @@ export const constantRoutes = [ ...@@ -212,7 +218,7 @@ export const constantRoutes = [
path: 'product-price', path: 'product-price',
component: (resolve) => require(['@/views/ecw/productPrice/index'], resolve), component: (resolve) => require(['@/views/ecw/productPrice/index'], resolve),
name: 'ProductPrice', name: 'ProductPrice',
meta: {title: '价格列表', activeMenu: '/product/product-list'} meta: {title: '价格列表', activeMenu: '/product/product-list',componentPath:'/ecw/productprice/index'}
} }
] ]
}, },
...@@ -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'}
} // }
] ]
}, },
{ {
......
...@@ -64,7 +64,8 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { ...@@ -64,7 +64,8 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
// debugger // debugger
if (route.parentId === 0) { if (route.parentId === 0) {
route.component = Layout route.component = Layout
} else { }
else {
route.component = ParentView route.component = ParentView
} }
} else { // 根节点 } else { // 根节点
......
...@@ -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()]
} }
}, },
......
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('流程编号')" align="center" prop="processInstance.id" width="320"/> <el-table-column :label="$t('流程编号')" align="center" prop="processInstance.id" width="220"/>
<el-table-column :label="$t('流程名称')" align="center" prop="processInstance.name" width="320"/> <el-table-column :label="$t('流程名称')" align="center" prop="processInstance.name" width="220"/>
<el-table-column :label="$t('流程分类')" align="center" prop="category"> <el-table-column :label="$t('流程分类')" align="center" prop="category">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<span>{{ parseTime(scope.row.endTime) }}</span> <span>{{ parseTime(scope.row.endTime) }}</span>
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column :label="$t('操作')" align="center" fixed="right" class-name="small-padding fixed-width"> <el-table-column :label="$t('操作')" align="center" fixed="right" class-name="small-padding fixed-width" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleCancel(scope.row)" <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleCancel(scope.row)"
v-hasPermi="['bpm:task:update']">{{ $t('取消') }} v-hasPermi="['bpm:task:update']">{{ $t('取消') }}
......
<template>
<iframe src="https://chat.groupage.cn/" class="iframe"></iframe>
</template>
<style>
.iframe{
width: 100%;
height: calc(100vh - 84px);
border: none;
}
</style>
...@@ -50,13 +50,13 @@ ...@@ -50,13 +50,13 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['shipment:box:create']">{{$t('出货安排')}} v-hasPermi="['shipment:box:create:air']">{{$t('出货安排')}}
</el-button> </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" :loading="exportLoading"
v-hasPermi="['shipment:box:export']">{{$t('导出')}} v-hasPermi="['shipment:box:export:air']">{{$t('导出')}}
</el-button> </el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
......
...@@ -63,21 +63,31 @@ ...@@ -63,21 +63,31 @@
{{getShipChannelName(row.shippingChannelId)}} {{getShipChannelName(row.shippingChannelId)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('待入仓方数')" align="center" prop="readyWarehousingNumber"> <el-table-column :label="$t('待入仓订单方数')" align="center" prop="readyWarehousingNumber">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.readyWarehousingNumber || 0}} {{row.readyWarehousingNumber || 0}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('已入仓方数')" align="center" prop="warehousedNumber"> <el-table-column :label="$t('已入仓订单方数')" align="center" prop="warehousedNumber">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.warehousedNumber || 0}} {{row.warehousedNumber || 0}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('在仓方数')" align="center" prop="warehousingNumber" > <el-table-column :label="$t('异常订单方数')" align="center" prop="exceptionNumber">
<template slot-scope="{row}">
{{row.exceptionNumber || 0}}
</template>
</el-table-column>
<el-table-column :label="$t('待排单订单方数')" align="center" prop="warehousingNumber">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.warehousingNumber || 0}} {{row.warehousingNumber || 0}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('自单代报订单方数')" align="center" prop="orderReportNumber" >
<template slot-scope="{row}">
{{row.orderReportNumber || 0}}
</template>
</el-table-column>
<el-table-column :label="$t('已装柜方数')" align="center" prop="loadingNumber" > <el-table-column :label="$t('已装柜方数')" align="center" prop="loadingNumber" >
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.loadingNumber || 0}} {{row.loadingNumber || 0}}
...@@ -133,15 +143,21 @@ ...@@ -133,15 +143,21 @@
<el-option v-for="item in channelList" :label="$l(item, 'name')" :value="item.channelId" :key="item.channelId"></el-option> <el-option v-for="item in channelList" :label="$l(item, 'name')" :value="item.channelId" :key="item.channelId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('待入仓方数')"> <el-form-item :label="$t('待入仓订单方数')">
{{form.readyWarehousingNumber}} m³ {{form.readyWarehousingNumber}} m³
</el-form-item> </el-form-item>
<el-form-item :label="$t('已入仓方数')"> <el-form-item :label="$t('已入仓订单方数')">
{{form.warehousedNumber}} m³ {{form.warehousedNumber}} m³
</el-form-item> </el-form-item>
<el-form-item :label="$t('在仓方数')"> <el-form-item :label="$t('异常订单方数')">
{{form.exceptionNumber}} m³
</el-form-item>
<el-form-item :label="$t('待排单订单方数')">
{{form.warehousingNumber}} m³ {{form.warehousingNumber}} m³
</el-form-item> </el-form-item>
<el-form-item :label="$t('自单代报订单方数')">
{{form.orderReportNumber}} m³
</el-form-item>
<el-form-item :label="$t('已装柜仓数')"> <el-form-item :label="$t('已装柜仓数')">
{{form.loadingNumber}} m³ {{form.loadingNumber}} m³
</el-form-item> </el-form-item>
...@@ -174,7 +190,7 @@ ...@@ -174,7 +190,7 @@
</template> </template>
<script> <script>
import { createFutureBox, updateFutureBox, deleteFutureBox, getFutureBox, getFutureBoxPage, exportFutureBoxExcel, getBoxedVolume, getToBeWareHousedVolume,getWareHousedVolume } from "@/api/ecw/futureBox"; import { createFutureBox, updateFutureBox, deleteFutureBox, getFutureBox, getFutureBoxPage, exportFutureBoxExcel, getBoxedVolume, getToBeWareHousedVolume,getWareHousedVolume,getExceptionVolume, getOrderReportVolume,getWarehousingVolume} from "@/api/ecw/futureBox";
import {getCabinetPage} from "@/api/ecw/cabinet"; import {getCabinetPage} from "@/api/ecw/cabinet";
import { getChannelList } from '@/api/ecw/channel'; import { getChannelList } from '@/api/ecw/channel';
import { getWarehouseList } from "@/api/ecw/warehouse" import { getWarehouseList } from "@/api/ecw/warehouse"
...@@ -211,7 +227,9 @@ export default { ...@@ -211,7 +227,9 @@ export default {
readyWarehousingNumber: null, readyWarehousingNumber: null,
warehousedNumber: null, warehousedNumber: null,
warehousingNumber: null, warehousingNumber: null,
exceptionNumber: null,
loadingNumber: null, loadingNumber: null,
orderReportNumber: null,
futureNumber: null, futureNumber: null,
gpNumber: null, gpNumber: null,
hqNumber: null, hqNumber: null,
...@@ -316,10 +334,10 @@ export default { ...@@ -316,10 +334,10 @@ export default {
'form.shippingChannelId'(){ 'form.shippingChannelId'(){
this.getVolume() this.getVolume()
}, },
'form.warehousedNumber'(){ //'form.warehousedNumber'(){
//在仓 = 已入仓-已封柜 //在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber)) //this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
}, //},
'form.loadingNumber'(){ 'form.loadingNumber'(){
//在仓 = 已入仓-已封柜 //在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber)) this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
...@@ -352,12 +370,27 @@ export default { ...@@ -352,12 +370,27 @@ export default {
getWareHousedVolume(data).then(res => { getWareHousedVolume(data).then(res => {
this.$set(this.form, 'warehousedNumber', res.data || 0) this.$set(this.form, 'warehousedNumber', res.data || 0)
}) })
// 获得异常订单方数
getExceptionVolume(data).then(res => {
this.$set(this.form, 'exceptionNumber', res.data || 0)
})
// 获得自单代报订单方数
getOrderReportVolume(data).then(res => {
this.$set(this.form, 'orderReportNumber', res.data || 0)
})
// 获得待排单订单方数
getWarehousingVolume(data).then(res => {
this.$set(this.form, 'warehousingNumber', res.data || 0)
})
}, },
setDefaultVolume(){ setDefaultVolume(){
this.$set(this.form, 'loadingNumber', 0) this.$set(this.form, 'loadingNumber', 0)
this.$set(this.form, 'readyWarehousingNumber', 0) this.$set(this.form, 'readyWarehousingNumber', 0)
this.$set(this.form, 'warehousedNumber', 0) this.$set(this.form, 'warehousedNumber', 0)
this.$set(this.form, 'warehousingNumber', 0) this.$set(this.form, 'warehousingNumber', 0)
this.$set(this.form, 'exceptionNumber',0)
this.$set(this.form,'orderReportNumber',0)
}, },
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
...@@ -387,7 +420,9 @@ export default { ...@@ -387,7 +420,9 @@ export default {
readyWarehousingNumber: undefined, readyWarehousingNumber: undefined,
warehousedNumber: undefined, warehousedNumber: undefined,
warehousingNumber: undefined, warehousingNumber: undefined,
exceptionNumber: undefined,
loadingNumber: undefined, loadingNumber: undefined,
orderReportNumber: undefined,
futureNumber: undefined, futureNumber: undefined,
gpNumber: undefined, gpNumber: undefined,
hqNumber: undefined, hqNumber: undefined,
......
...@@ -114,31 +114,31 @@ ...@@ -114,31 +114,31 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)" style="marginRight:10px;"> <el-dropdown trigger="click" v-hasPermi="['shipment:box:action:sea','shipment:box:action:error','shipment:box:action:cost','shipment:box:action:editLadingBill']" @command="(command)=>handleCommand(scope.row, command)" style="marginRight:10px;">
<el-button type="primary"> <el-button type="primary">
{{$t('操作')}}<i class="el-icon-arrow-down el-icon--right"></i> {{$t('操作')}}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item :disabled="scope.row.ldStatus>=46" command="edit">{{$t('编辑')}}</el-dropdown-item> --> <!-- <el-dropdown-item :disabled="scope.row.ldStatus>=46" command="edit">{{$t('编辑')}}</el-dropdown-item> -->
<el-dropdown-item command="sea">{{$t('操作-海运')}}</el-dropdown-item> <el-dropdown-item command="sea" v-hasPermi="['shipment:box:action:sea']">{{$t('操作-海运')}}</el-dropdown-item>
<el-dropdown-item command="error">{{$t('异常登记')}}</el-dropdown-item> <el-dropdown-item command="error" v-hasPermi="['shipment:box:action:error']">{{$t('异常登记')}}</el-dropdown-item>
<el-dropdown-item command="cost">{{$t('费用登记')}}</el-dropdown-item> <el-dropdown-item command="cost" v-hasPermi="['shipment:box:action:cost']">{{$t('费用登记')}}</el-dropdown-item>
<!-- <el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item> --> <!-- <el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item> -->
<el-dropdown-item :disabled="scope.row.ldStatus<46" command="editLadingBill">{{$t('编辑提货单')}}</el-dropdown-item> <el-dropdown-item :disabled="scope.row.ldStatus<46" command="editLadingBill" v-hasPermi="['shipment:box:action:editLadingBill']">{{$t('编辑提货单')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)"> <el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)" v-hasPermi="['shipment:box:download:downloadPreloadGoodsList','shipment:box:download:downloadLoadGoodsList','shipment:box:download:downloadReceivableList','shipment:box:download:downloadAgentListFiles','shipment:box:download:downloadSoncapFiles','shipment:box:download:zipDownload','shipment:box:download:downloadLadingCopy']">
<el-button type="primary"> <el-button type="primary">
{{$t('下载')}}<i class="el-icon-arrow-down el-icon--right"></i> {{$t('下载')}}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="downloadPreloadGoodsList">{{$t('预装单')}}</el-dropdown-item> <el-dropdown-item command="downloadPreloadGoodsList" v-hasPermi="['shipment:box:download:downloadPreloadGoodsList']">{{$t('预装单')}}</el-dropdown-item>
<el-dropdown-item command="downloadLoadGoodsList">{{$t('已装单')}}</el-dropdown-item> <el-dropdown-item command="downloadLoadGoodsList" v-hasPermi="['shipment:box:download:downloadLoadGoodsList']">{{$t('已装单')}}</el-dropdown-item>
<el-dropdown-item command="downloadReceivableList">{{$t('应收汇总表')}}</el-dropdown-item> <el-dropdown-item command="downloadReceivableList" v-hasPermi="['shipment:box:download:downloadReceivableList']">{{$t('应收汇总表')}}</el-dropdown-item>
<el-dropdown-item command="downloadAgentListFiles">agent list</el-dropdown-item> <el-dropdown-item command="downloadAgentListFiles" v-hasPermi="['shipment:box:download:downloadAgentListFiles']">agent list</el-dropdown-item>
<el-dropdown-item command="downloadSoncapFiles">soncap</el-dropdown-item> <el-dropdown-item command="downloadSoncapFiles" v-hasPermi="['shipment:box:download:downloadSoncapFiles']">soncap</el-dropdown-item>
<el-dropdown-item command="zipDownload">{{$t('提货单')}}</el-dropdown-item> <el-dropdown-item command="zipDownload" v-hasPermi="['shipment:box:download:zipDownload']">{{$t('提货单')}}</el-dropdown-item>
<el-dropdown-item command="downloadLadingCopy">{{$t('提单Copy')}}</el-dropdown-item> <el-dropdown-item command="downloadLadingCopy" v-hasPermi="['shipment:box:download:downloadLadingCopy']">{{$t('提单Copy')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
...@@ -230,7 +230,7 @@ export default { ...@@ -230,7 +230,7 @@ export default {
{ value: "3", label: this.$t("起运时间") }, { value: "3", label: this.$t("起运时间") },
{ value: "4", label: this.$t("到港时间") }, { value: "4", label: this.$t("到港时间") },
{ value: "5", label: this.$t("清关时间") }, { value: "5", label: this.$t("清关时间") },
{ value: "6", label: this.$t("提货时间") }, { value: "6", label: this.$t("卸柜时间") },
], ],
// 遮罩层 // 遮罩层
loading: true, loading: true,
...@@ -403,6 +403,7 @@ export default { ...@@ -403,6 +403,7 @@ export default {
let params = { ...this.queryParams }; let params = { ...this.queryParams };
params.page = undefined; params.page = undefined;
params.pageSize = undefined; params.pageSize = undefined;
params.transportTypeList = ["1", "2"];
this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime"); this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime");
// 执行导出 // 执行导出
this.$modal this.$modal
......
...@@ -51,11 +51,11 @@ ...@@ -51,11 +51,11 @@
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['shipment:box:create']">{{$t('出货安排')}} <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['shipment:box:create:seaAir']">{{$t('出货安排')}}
</el-button> </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" :loading="exportLoading" v-hasPermi="['shipment:box:export']">{{$t('导出')}} <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" v-hasPermi="['shipment:box:export:seaAir']">{{$t('导出')}}
</el-button> </el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
...@@ -106,31 +106,31 @@ ...@@ -106,31 +106,31 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)" style="marginRight:10px;"> <el-dropdown trigger="click" v-hasPermi="['shipment:seaAir:action:edit','shipment:seaAir:action:sea','shipment:seaAir:action:error','shipment:seaAir:action:cost','shipment:seaAir:action:delete','shipment:seaAir:action:editLadingBill']" @command="(command)=>handleCommand(scope.row, command)" style="marginRight:10px;">
<el-button type="primary"> <el-button type="primary">
{{$t('操作')}}<i class="el-icon-arrow-down el-icon--right"></i> {{$t('操作')}}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :disabled="scope.row.ldStatus>=46" command="edit">{{$t('编辑')}}</el-dropdown-item> <el-dropdown-item :disabled="scope.row.ldStatus>=46" command="edit" v-hasPermi="['shipment:seaAir:action:edit']">{{$t('编辑')}}</el-dropdown-item>
<el-dropdown-item command="seaAir">{{$t('操作')}}-{{$t('海空联运')}}</el-dropdown-item> <el-dropdown-item command="seaAir" v-hasPermi="['shipment:seaAir:action:seaAir']">{{$t('海空联运')}}</el-dropdown-item>
<el-dropdown-item command="error">{{$t('异常登记')}}</el-dropdown-item> <el-dropdown-item command="error" v-hasPermi="['shipment:seaAir:action:error']">{{$t('异常登记')}}</el-dropdown-item>
<el-dropdown-item command="cost">{{$t('费用登记')}}</el-dropdown-item> <el-dropdown-item command="cost" v-hasPermi="['shipment:seaAir:action:cost']">{{$t('费用登记')}}</el-dropdown-item>
<el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item> <el-dropdown-item command="delete" v-hasPermi="['shipment:seaAir:action:delete']">{{$t('删除')}}</el-dropdown-item>
<el-dropdown-item :disabled="scope.row.ldStatus<46" command="editLadingBill">{{$t('编辑提货单')}}</el-dropdown-item> <el-dropdown-item :disabled="scope.row.ldStatus<46" command="editLadingBill" v-hasPermi="['shipment:seaAir:action:editLadingBill']">{{$t('编辑提货单')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)"> <el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)" v-hasPermi="['shipment:seaAir:download:downloadPreloadGoodsList','shipment:seaAir:download:downloadLoadGoodsList','shipment:seaAir:download:downloadReceivableList','shipment:seaAir:download:downloadAgentListFiles','shipment:seaAir:download:downloadSoncapFiles','shipment:seaAir:download:zipDownload','shipment:seaAir:download:downloadLadingCopy']">
<el-button type="primary"> <el-button type="primary">
{{$t('下载')}}<i class="el-icon-arrow-down el-icon--right"></i> {{$t('下载')}}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="downloadPreloadGoodsList">{{$t('预装单')}}</el-dropdown-item> <el-dropdown-item command="downloadPreloadGoodsList" v-hasPermi="['shipment:seaAir:download:downloadPreloadGoodsList']">{{$t('预装单')}}</el-dropdown-item>
<el-dropdown-item command="downloadLoadGoodsList">{{$t('已装单')}}</el-dropdown-item> <el-dropdown-item command="downloadLoadGoodsList" v-hasPermi="['shipment:seaAir:download:downloadLoadGoodsList']">{{$t('已装单')}}</el-dropdown-item>
<el-dropdown-item command="downloadReceivableList">{{$t('应收汇总表')}}</el-dropdown-item> <el-dropdown-item command="downloadReceivableList" v-hasPermi="['shipment:seaAir:download:downloadReceivableList']">{{$t('应收汇总表')}}</el-dropdown-item>
<el-dropdown-item command="downloadAgentListFiles">agent list</el-dropdown-item> <el-dropdown-item command="downloadAgentListFiles" v-hasPermi="['shipment:seaAir:download:downloadAgentListFiles']">agent list</el-dropdown-item>
<el-dropdown-item command="downloadSoncapFiles">soncap</el-dropdown-item> <el-dropdown-item command="downloadSoncapFiles" v-hasPermi="['shipment:seaAir:download:downloadSoncapFiles']">soncap</el-dropdown-item>
<el-dropdown-item command="zipDownload">{{$t('提货单')}}</el-dropdown-item> <el-dropdown-item command="zipDownload" v-hasPermi="['shipment:seaAir:download:zipDownload']">{{$t('提货单')}}</el-dropdown-item>
<el-dropdown-item command="downloadLadingCopy">{{$t('提单Copy')}}</el-dropdown-item> <el-dropdown-item command="downloadLadingCopy" v-hasPermi="['shipment:seaAir:download:downloadLadingCopy']">{{$t('提单Copy')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
...@@ -222,7 +222,7 @@ export default { ...@@ -222,7 +222,7 @@ export default {
{ value: "3", label: this.$t("起运时间") }, { value: "3", label: this.$t("起运时间") },
{ value: "4", label: this.$t("到港时间") }, { value: "4", label: this.$t("到港时间") },
{ value: "5", label: this.$t("清关时间") }, { value: "5", label: this.$t("清关时间") },
{ value: "6", label: this.$t("提货时间") }, { value: "6", label: this.$t("卸柜时间") },
], ],
// 遮罩层 // 遮罩层
loading: true, loading: true,
...@@ -403,6 +403,7 @@ export default { ...@@ -403,6 +403,7 @@ export default {
let params = { ...this.queryParams }; let params = { ...this.queryParams };
params.page = undefined; params.page = undefined;
params.pageSize = undefined; params.pageSize = undefined;
params.transportTypeList = ['4'];
this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime"); this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime");
// 执行导出 // 执行导出
this.$modal this.$modal
...@@ -412,7 +413,7 @@ export default { ...@@ -412,7 +413,7 @@ export default {
return exportboxExcel(params); return exportboxExcel(params);
}) })
.then((response) => { .then((response) => {
this.$download.excel(response, "${table.classComment}.xls"); this.$download.excel(response, this.$t("海空联运") + ".xls");
this.exportLoading = false; this.exportLoading = false;
}) })
.catch(() => {}); .catch(() => {});
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
</el-row> </el-row>
<el-dialog :title="dialogCfg.title" :visible.sync="dialogCfg.visible" :width="dialogCfg.width" :fullscreen="dialogCfg.fullscreen" append-to-body class="shippingSea-dialog" @closed="dialogclosed"> <el-dialog :title="dialogCfg.title" :visible.sync="dialogCfg.visible" :width="dialogCfg.width" :fullscreen="dialogCfg.fullscreen" append-to-body class="shippingSea-dialog" @closed="dialogclosed">
<makeLadingBill v-if="['makeBill','queryBill','resetBill'].includes(dialogCfg.type)" :currData="currData" :currRow="currRow" :dialogCfg="dialogCfg" @closeDialog="closeDialog" :selfNo="shipmentObj.selfNo" /> <makeLadingBill v-if="dialogCfg.visible && ['makeBill','queryBill','resetBill'].includes(dialogCfg.type)" :currData="currData" :currRow="currRow" :dialogCfg="dialogCfg" @closeDialog="closeDialog" :selfNo="shipmentObj.selfNo" />
<previewBill v-if="dialogCfg.type === 'previewBill'" :contentHtml="currData.billContent" :currRow="currRow" :type="dialogCfg.type" /> <previewBill v-if="dialogCfg.type === 'previewBill'" :contentHtml="currData.billContent" :currRow="currRow" :type="dialogCfg.type" />
</el-dialog> </el-dialog>
</el-row> </el-row>
......
...@@ -49,6 +49,8 @@ import { getToken } from "@/utils/auth"; ...@@ -49,6 +49,8 @@ import { getToken } from "@/utils/auth";
import html2canvas from 'html2canvas'; import html2canvas from 'html2canvas';
import { jsPDF } from "jspdf"; import { jsPDF } from "jspdf";
import {uploadFile} from '@/api/infra/file' import {uploadFile} from '@/api/infra/file'
import FileSaver from 'file-saver'
window.html2canvas = html2canvas
export default { export default {
name: "makeLadingBill", name: "makeLadingBill",
components: { components: {
...@@ -180,6 +182,7 @@ export default { ...@@ -180,6 +182,7 @@ export default {
const imgWidth = canvas.width const imgWidth = canvas.width
const imgHeight = canvas.height const imgHeight = canvas.height
console.log(imgHeight, imgWidth)
let _w = 595.28; let _w = 595.28;
let _h = 595.28/imgWidth*imgHeight; let _h = 595.28/imgWidth*imgHeight;
if(_h>841.89){ if(_h>841.89){
...@@ -192,8 +195,13 @@ export default { ...@@ -192,8 +195,13 @@ export default {
return Promise.reject() */ return Promise.reject() */
let form = new FormData() let form = new FormData()
let file = this.selfNo + '-' + this.currRow.tidanNo + '.pdf' let file = this.selfNo + '-' + this.currRow.tidanNo + '.pdf'
form.append('file', new File([doc.output('arraybuffer')], file, {type: 'application/pdf'})) form.append('file', new File([doc.output('arraybuffer')], file, {type: 'application/pdf'}))
form.append('path', file) form.append('path', `admin/shipment/${this.selfNo}/pdf/${file}`) // 最前面不能有/,否则返回的url会有两个/
/* let blob = new Blob([doc.output('arraybuffer')], {type: "application/pdf"})
FileSaver.saveAs(blob, file);
return */
return uploadFile(form) return uploadFile(form)
}).then(res => { }).then(res => {
return this.submit(res.data) return this.submit(res.data)
......
<template> <template>
<el-row> <el-row>
<div v-html="contentHtml" class="contentHtml"></div> <div v-html="contentHtml" id="html2canvas-container" class="contentHtml"></div>
<el-row v-if="currRow.status === 2 && type === 'previewBill'" style="text-align: center;"> <el-row v-if="currRow.status === 2 && type === 'previewBill'" style="text-align: center;">
<el-button type="primary" @click="download">{{$t('下载')}}</el-button> <el-button type="primary" @click="download">{{$t('下载')}}</el-button>
<el-button type="primary" @click="print">{{$t('打印')}}</el-button> <el-button type="primary" @click="print">{{$t('打印')}}</el-button>
<el-button type="primary" @click="createPdf">{{$t('刷新提单文件')}}</el-button>
</el-row> </el-row>
</el-row> </el-row>
</template> </template>
...@@ -12,6 +13,9 @@ ...@@ -12,6 +13,9 @@
import lodop from "@/utils/lodop"; import lodop from "@/utils/lodop";
import * as _BOX from "@/api/ecw/box"; import * as _BOX from "@/api/ecw/box";
import FileSaver from "file-saver"; import FileSaver from "file-saver";
import html2canvas from 'html2canvas';
import { jsPDF } from "jspdf";
import {uploadFile} from '@/api/infra/file'
export default { export default {
name: "previewBill", name: "previewBill",
...@@ -24,10 +28,42 @@ export default { ...@@ -24,10 +28,42 @@ export default {
download() { download() {
_BOX["downloadBillService"]({ id: this.currRow.id }).then((res) => { _BOX["downloadBillService"]({ id: this.currRow.id }).then((res) => {
if (res.data && res.data.imgUrl) { if (res.data && res.data.imgUrl) {
FileSaver.saveAs(res.data.imgUrl, res.data.imgUrl.split('/').pop()); FileSaver.saveAs(res.data.imgUrl + '?' + Math.random(), res.data.imgUrl.split('/').pop());
} }
}); });
}, },
createPdf(){
let loading = this.$loading()
const doc = new jsPDF('p','pt','a4',true);
html2canvas(document.querySelector("#html2canvas-container"), {dpi:144, useCORS: true}).then(canvas => {
const imgWidth = canvas.width
const imgHeight = canvas.height
let _w = 595.28;
let _h = 595.28/imgWidth*imgHeight;
if(_h>841.89){
_h = 841.89;
_w = _h/imgHeight*imgWidth
}
const _left = (595.28-_w)/2;
doc.addImage(canvas, 'PNG', _left, 0, _w,_h, '', 'FAST');
return _BOX["downloadBillService"]({ id: this.currRow.id })
}).then(res => {
let form = new FormData()
let pathname = (new URL(res.data.imgUrl)).pathname
let fileName = pathname.substring(pathname.lastIndexOf('/')).substring(1)
let selfNo = fileName.split('-')[0]
form.append('file', new File([doc.output('arraybuffer')], fileName, {type: 'application/pdf'}))
form.append('path', `admin/shipment/${selfNo}/pdf/${fileName}`) // 最前面不能有/,否则返回的url会有两个/
return uploadFile(form)
}).then(res => {
_BOX['updateUrl']({id: this.currRow.id, imgUrl: res.data})
}).finally(res => {
loading.close()
})
},
print() { print() {
lodop() lodop()
.then((LODOP) => { .then((LODOP) => {
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
<h2>{{$t('出货详情')}}</h2> <h2>{{$t('出货详情')}}</h2>
<div> <div>
<!-- <el-button size="small" @click="handleCommand('edit')">{{$t('编辑')}}</el-button> --> <!-- <el-button size="small" @click="handleCommand('edit')">{{$t('编辑')}}</el-button> -->
<el-button size="small" @click="handleCommand('router')">{{$t('操作')}}</el-button> <el-button size="small" v-hasPermi="['shipment:box:action:sea']" @click="handleCommand('router')">{{$t('操作')}}</el-button>
<el-button type="primary" size="small" @click="handleCommand('error')">{{$t('异常登记')}}</el-button> <el-button type="primary" v-hasPermi="['shipment:box:action:error']" size="small" @click="handleCommand('error')">{{$t('异常登记')}}</el-button>
<el-button type="primary" size="small" @click="handleCommand('cost')">{{$t('费用登记')}}</el-button> <el-button type="primary" v-hasPermi="['shipment:box:action:cost']" size="small" @click="handleCommand('cost')">{{$t('费用登记')}}</el-button>
<!-- <el-button type="danger" size="small" @click="handleCommand('delete')">{{$t('删除')}}</el-button> --> <!-- <el-button type="danger" size="small" @click="handleCommand('delete')">{{$t('删除')}}</el-button> -->
</div> </div>
</div> </div>
...@@ -56,8 +56,8 @@ ...@@ -56,8 +56,8 @@
{{getSectionInfo}} {{getSectionInfo}}
</p> </p>
<div style="margin-left:30px;"> <div style="margin-left:30px;">
<el-button type="primary" size="small" @click="()=>updateStatus('selected')">{{$t('更新所选订单状态')}}</el-button> <el-button type="primary" v-hasPermi="['shipment:box:order:select']" size="small" @click="()=>updateStatus('selected')">{{$t('更新所选订单状态')}}</el-button>
<el-button type="primary" size="small" @click="()=>updateStatus('all')">{{$t('更新全部订单状态')}}</el-button> <el-button type="primary" v-hasPermi="['shipment:box:order:all']" size="small" @click="()=>updateStatus('all')">{{$t('更新全部订单状态')}}</el-button>
</div> </div>
<div class="document-status"> <div class="document-status">
<p>{{$t('单证状态')}}</p> <p>{{$t('单证状态')}}</p>
...@@ -132,9 +132,13 @@ ...@@ -132,9 +132,13 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="price" :label="$t('金额')" align="center"></el-table-column> <el-table-column prop="price" :label="$t('金额')" align="center"></el-table-column>
<el-table-column prop="" :label="$t('实付金额')" align="center"></el-table-column> <el-table-column prop="payPrice" :label="$t('实付金额')" align="center"></el-table-column>
<el-table-column prop="" :label="$t('实付日期')" align="center"></el-table-column> <el-table-column prop="payTime" :label="$t('实付日期')" align="center">
<el-table-column prop="" :label="$t('操作')" align="center"> <template slot-scope="scope">
<span v-if="scope.row.payTime">{{formatDate(scope.row.payTime)}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="small" @click="editCostClick(scope.row)" style="marginRight:10px;">{{$t('编辑')}}</el-button> <el-button type="primary" size="small" @click="editCostClick(scope.row)" style="marginRight:10px;">{{$t('编辑')}}</el-button>
<el-popconfirm :title="$t('确定是否删除')" @confirm="deleteCostClick(scope.row)"> <el-popconfirm :title="$t('确定是否删除')" @confirm="deleteCostClick(scope.row)">
...@@ -172,7 +176,7 @@ ...@@ -172,7 +176,7 @@
<el-table-column prop="title" :label="$t('文件类型')"></el-table-column> <el-table-column prop="title" :label="$t('文件类型')"></el-table-column>
<el-table-column prop="" :label="$t('下载链接')"> <el-table-column prop="" :label="$t('下载链接')">
<template slot-scope="scope"> <template slot-scope="scope">
<a v-if="scope.row.serviceName" href="javascript:void(0)" @click="downloadDetailFile(scope.row)">{{$t('下载')}}</a> <a v-if="scope.row.serviceName" href="javascript:void(0)" @click="downloadDetailFile(scope.row)" v-hasPermi="[`${scope.row.hasPermi}`]">{{$t('下载')}}</a>
<div v-else>{{$t('未完成')}}</div> <div v-else>{{$t('未完成')}}</div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -294,24 +298,27 @@ export default { ...@@ -294,24 +298,27 @@ export default {
costDetail: {}, costDetail: {},
// 下载 // 下载
downloadList: [ downloadList: [
{ title: this.$t("预装单"), serviceName: "downloadPreloadGoodsList" }, { title: this.$t("预装单"), serviceName: "downloadPreloadGoodsList", hasPermi: "shipment:box:download:downloadPreloadGoodsList" },
{ title: this.$t("已装单"), serviceName: "downloadLoadGoodsList" }, { title: this.$t("已装单"), serviceName: "downloadLoadGoodsList", hasPermi: "shipment:box:download:downloadLoadGoodsList" },
{ title: this.$t("应收汇总表"), serviceName: "downloadReceivableList" }, { title: this.$t("应收汇总表"), serviceName: "downloadReceivableList", hasPermi: "shipment:box:download:downloadReceivableList" },
{ {
title: this.$t("提货单"), title: this.$t("提货单"),
serviceName: "zipDownload", serviceName: "zipDownload",
fileFormat: "zip", fileFormat: "zip",
hasPermi: "shipment:box:download:zipDownload"
}, },
{ {
title: "agent list", title: "agent list",
serviceName: "downloadAgentListFiles", serviceName: "downloadAgentListFiles",
type: "url", type: "url",
hasPermi: "shipment:box:download:downloadAgentListFiles"
}, },
{ title: "soncap", serviceName: "downloadSoncapFiles", type: "url" }, { title: "soncap", serviceName: "downloadSoncapFiles", type: "url", hasPermi: "shipment:box:download:downloadSoncapFiles" },
{ {
title: this.$t("提单Copy"), title: this.$t("提单Copy"),
serviceName: "downloadLadingCopy", serviceName: "downloadLadingCopy",
type: "url", type: "url",
hasPermi: "shipment:box:download:downloadLadingCopy"
}, },
], ],
// 选中行 // 选中行
......
...@@ -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>
......
...@@ -101,18 +101,20 @@ export default { ...@@ -101,18 +101,20 @@ export default {
} }
const { ldPictures } = this.cabinetObj; const { ldPictures } = this.cabinetObj;
let pictures = ldPictures?.split(",") ?? []; let pictures = ldPictures?.split(",") ?? [];
// 兼容手机端数据结构 let newPictures = [];
pictures = pictures.map((item) => { for (const item of pictures) {
return { if (item) {
type: "image", newPictures.push({
url: item, type: "image",
}; url: item,
}); });
}
}
cabinetCreate({ cabinetCreate({
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
...this.cabinetObj, ...this.cabinetObj,
ldPictures: JSON.stringify(pictures), ldPictures: newPictures.length ? JSON.stringify(newPictures) : "",
operateType, operateType,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
......
...@@ -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: {
...@@ -484,14 +501,26 @@ export default { ...@@ -484,14 +501,26 @@ export default {
let params = this.getParams(); let params = this.getParams();
// 订单号 // 订单号
params.orderNo = params.toBePreOrderNo; params.orderNo = params.toBePreOrderNo;
params.transportType = this.shipmentObj.transportType;
preloadPage({ ...params, ...this.pageParam }).then((res) => { preloadPage({ ...params, ...this.pageParam }).then((res) => {
const { data } = res; const { data } = res;
this.toBePreList = data.dataList?.list ?? []; this.toBePreList = data.dataList?.list ?? [];
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;
...@@ -556,7 +585,7 @@ export default { ...@@ -556,7 +585,7 @@ export default {
}, },
/* 计算总和 */ /* 计算总和 */
calcSum(key, data) { calcSum(key, data) {
const values = data.map((item) => Number(item[key])); const values = data?.map((item) => Number(item[key])) ?? [];
if (!values.every((value) => isNaN(value))) { if (!values.every((value) => isNaN(value))) {
return values.reduce((prev, curr) => { return values.reduce((prev, curr) => {
const value = Number(curr); const value = Number(curr);
...@@ -601,7 +630,7 @@ export default { ...@@ -601,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();
}); });
}); });
}) })
...@@ -634,7 +663,9 @@ export default { ...@@ -634,7 +663,9 @@ export default {
}); });
}); });
}) })
.catch((_) => {}); .catch((_) => {
this.queryAllData();
});
} else { } else {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.queryAllData(); this.queryAllData();
...@@ -654,7 +685,9 @@ export default { ...@@ -654,7 +685,9 @@ export default {
}); });
}); });
}) })
.catch((_) => {}); .catch((_) => {
this.queryAllData();
});
} }
}); });
} else { } else {
...@@ -694,7 +727,6 @@ export default { ...@@ -694,7 +727,6 @@ export default {
}, },
/* 查询所有数据 */ /* 查询所有数据 */
queryAllData() { queryAllData() {
this.pageParam.pageNo = 1;
this.getSecGoods(); this.getSecGoods();
this.getPreLoad(); this.getPreLoad();
}, },
...@@ -822,7 +854,7 @@ export default { ...@@ -822,7 +854,7 @@ export default {
} }
.preinstall-card { .preinstall-card {
min-height: 550px; min-height: 800px;
.el-card__body { .el-card__body {
height: 100%; height: 100%;
......
...@@ -236,7 +236,7 @@ export default { ...@@ -236,7 +236,7 @@ export default {
this.exportLoading = true; this.exportLoading = true;
return exportBusiPwdExcel(params); return exportBusiPwdExcel(params);
}).then(response => { }).then(response => {
this.$download.excel(response, '${table.classComment}.xls'); this.$download.excel(response, '导出数据.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
} }
......
...@@ -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;
} }
} }
}; };
......
...@@ -248,8 +248,8 @@ ...@@ -248,8 +248,8 @@
</el-form> </el-form>
<div class="pl-100"> <div class="pl-100">
<template v-if="!readonly"> <template v-if="!readonly">
<el-button type="primary" @click="submitForm(0)">{{$t('保存')}}</el-button> <el-button type="primary" @click="submitForm(0)" v-hasPermi="['ecw:coupon:draft']">{{$t('保存')}}</el-button>
<el-button type="primary" @click="submitForm(1)">{{$t('发布')}}</el-button> <el-button type="primary" @click="submitForm(1)" v-hasPermi="['ecw:coupon:publish']">{{$t('发布')}}</el-button>
<el-button type="default" @click="reset">{{$t('重置')}}</el-button> <el-button type="default" @click="reset">{{$t('重置')}}</el-button>
</template> </template>
<el-button @click="$router.back()">{{$t('返回')}}</el-button> <el-button @click="$router.back()">{{$t('返回')}}</el-button>
...@@ -471,10 +471,13 @@ export default { ...@@ -471,10 +471,13 @@ export default {
item.combUnit = 'prodUnit_' + item.prodUnit item.combUnit = 'prodUnit_' + item.prodUnit
}else if(item.fullCurrencyId){ }else if(item.fullCurrencyId){
item.combUnit = 'fullCurrencyId_' + item.fullCurrencyId item.combUnit = 'fullCurrencyId_' + item.fullCurrencyId
}else{
} }
this.fee[item.type].push({...item}) this.fee[item.type].push({...item})
}) })
console.log(JSON.stringify(this.fee, null, 4))
/* if(this.costType != this.form.costType){ /* if(this.costType != this.form.costType){
console.error(`费用类型冲突,计算出来的类型为${this.costType},接口费用类型为${res.data.costType},类型为${res.data.type}`) console.error(`费用类型冲突,计算出来的类型为${this.costType},接口费用类型为${res.data.costType},类型为${res.data.type}`)
this.$alert(this.$t('费用类型冲突')) this.$alert(this.$t('费用类型冲突'))
...@@ -519,6 +522,7 @@ export default { ...@@ -519,6 +522,7 @@ export default {
}, },
// 满减活动如果选择的满多少金额减,则在选择满货币后需要同步减的货币,且禁用减的货币修改 // 满减活动如果选择的满多少金额减,则在选择满货币后需要同步减的货币,且禁用减的货币修改
checkReduceCurrency(item){ checkReduceCurrency(item){
console.log('checkReduceCurrency', {...item}, this.form.type)
// 金额满减 // 金额满减
if([2,4,5,7].indexOf(this.form.type) > -1){ if([2,4,5,7].indexOf(this.form.type) > -1){
// 只要不是按产品单位满减 // 只要不是按产品单位满减
...@@ -658,7 +662,7 @@ export default { ...@@ -658,7 +662,7 @@ export default {
} }
}) })
this.$set(this.form, 'suitableProdType', this.isAllProduct ? 0 : 1)
let data = Object.assign({}, this.form, {discountDetailedVOs}) let data = Object.assign({}, this.form, {discountDetailedVOs})
...@@ -677,6 +681,7 @@ export default { ...@@ -677,6 +681,7 @@ export default {
if(this.form.type != 1 && !this.isAllProduct && !this.form.prodIds){ if(this.form.type != 1 && !this.isAllProduct && !this.form.prodIds){
return this.$message.error('请选择商品') return this.$message.error('请选择商品')
} }
this.$set(this.form, 'suitableProdType', this.isAllProduct ? 0 : 1)
// 修改的提交 // 修改的提交
if (data.couponId != null) { if (data.couponId != null) {
......
This diff is collapsed.
...@@ -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">-->
...@@ -105,11 +101,14 @@ ...@@ -105,11 +101,14 @@
<!-- <el-input v-model="form.show" :placeholder="$t('请输入状态')" />--> <!-- <el-input v-model="form.show" :placeholder="$t('请输入状态')" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<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"> <el-form-item label="100人民币兑外币汇率" prop="exchangeToFc">
{{ form.huilv ? (10000 / form.huilv).toFixed(6) : ''}} <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,14 +22,16 @@ ...@@ -22,14 +22,16 @@
</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>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" v-hasPermi="['ecw:customer:indirect-export']">{{$t('导出')}}</el-button>
v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -76,7 +78,7 @@ ...@@ -76,7 +78,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">
<el-button size="mini" type="text" icon="el-icon-user" @click="delay(scope.row)">{{$t('完善')}}</el-button> <el-button v-has-permi="['ecw:customer:indirect:perfect']" size="mini" type="text" icon="el-icon-user" @click="delay(scope.row)">{{$t('完善')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -97,7 +99,10 @@ import {exportCustomerComplaintExcel} from "@/api/ecw/customerComplaint"; ...@@ -97,7 +99,10 @@ import {exportCustomerComplaintExcel} from "@/api/ecw/customerComplaint";
import {indirectCustomerExportExcel} from "@/api/ecw/customer"; import {indirectCustomerExportExcel} from "@/api/ecw/customer";
export default { export default {
name: "IndirectCustomer", name: "EcwCustomerIndirectcustomer",
activated() {
this.getList()
},
data() { data() {
return { return {
exportLoading:false, exportLoading:false,
...@@ -124,6 +129,7 @@ export default { ...@@ -124,6 +129,7 @@ export default {
name: null, name: null,
source: null, source: null,
customerService: null, customerService: null,
marketType:null
}, },
// 网点 // 网点
nodeList: [], nodeList: [],
...@@ -149,7 +155,7 @@ export default { ...@@ -149,7 +155,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;
...@@ -172,7 +178,7 @@ export default { ...@@ -172,7 +178,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;
......
This diff is collapsed.
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
<div style="flex: 1"> <div style="flex: 1">
<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></div> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button></div>
<div style="flex: 1; text-align: right;"> <div style="flex: 1; text-align: right;" v-has-permi="['ecw:customer:commission-set']">
<router-link :to="'/customerCommissionInfo/'+ 0 "> <router-link :to="'/customerCommissionInfo/'+ 0 ">
<el-button type="primary">{{$t('佣金设置')}}</el-button> <el-button type="primary">{{$t('佣金设置')}}</el-button>
</router-link> </router-link>
...@@ -126,15 +126,15 @@ ...@@ -126,15 +126,15 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleUpdate(scope.row)">{{ $t('查看') }}</el-button> <el-button v-has-permi="['ecw:customer:commission-query']" size="mini" type="text" icon="el-icon-view" @click="handleUpdate(scope.row)">{{ $t('查看') }}</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">{{$t('删除')}}</el-button> <el-button v-has-permi="['ecw:customer:commission-delete']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">{{$t('删除')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<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"/>
x
</div> </div>
</template> </template>
...@@ -146,7 +146,10 @@ import {customerDropDownList} from "@/api/ecw/customerCommissionInfo"; ...@@ -146,7 +146,10 @@ import {customerDropDownList} from "@/api/ecw/customerCommissionInfo";
import {getCustomerList} from "@/api/ecw/customer"; import {getCustomerList} from "@/api/ecw/customer";
export default { export default {
name: "CustomerCommission", name: "EcwCustomercommissionIndex",
activated() {
this.getList()
},
components: { components: {
}, },
data() { data() {
......
...@@ -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>
...@@ -64,11 +67,11 @@ ...@@ -64,11 +67,11 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="$router.push({path:'/customer/add-edit/0',query:{isCustomerServiceConfirmed:true,}})" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="$router.push({path:'/customer/add-edit/0',query:{isCustomerServiceConfirmed:true,}})"
v-hasPermi="['ecw:customer:create']">{{$t('新增')}}</el-button> v-hasPermi="['ecw:customer: treat-create']">{{$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" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button> v-hasPermi="['ecw:customer:treat-export']">{{$t('导出')}}</el-button>
</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>
...@@ -114,16 +117,16 @@ ...@@ -114,16 +117,16 @@
<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">
<el-button size="mini" type="text" @click="handleConfirmService(scope.row)" <el-button size="mini" type="text" @click="handleConfirmService(scope.row)"
v-hasPermi="['ecw:customer:update']">{{$t('确认接收')}}</el-button> v-hasPermi="['ecw:customer:treat-accept']">{{$t('确认接收')}}</el-button>
<el-button size="mini" type="text" @click="handOver(scope.row)" <el-button size="mini" type="text" @click="handOver(scope.row)"
v-hasPermi="['ecw:customer:update']">{{$t('移交')}}</el-button> v-hasPermi="['ecw:customer:treat-transfer']">{{$t('移交')}}</el-button>
<router-link style="margin: 0 10px;" to="/offer/create"> <router-link style="margin: 0 10px;" to="/offer/create">
<el-button size="mini" type="text"> <el-button v-has-permi="['ecw:customer:treat-quoted-price']" size="mini" type="text">
{{$t('报价')}} {{$t('报价')}}
</el-button> </el-button>
</router-link> </router-link>
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:customer:update']">{{$t('完善')}}</el-button> v-hasPermi="['ecw:customer:treat-perfect']">{{$t('完善')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -360,8 +363,14 @@ import {getCreditPage} from "@/api/customer/credit"; ...@@ -360,8 +363,14 @@ import {getCreditPage} from "@/api/customer/credit";
export default { export default {
name: "Customer", name: "EcwCustomerconfirmIndex",
activated() {
this.getList();
},
computed:{ computed:{
DICT_TYPE() {
return DICT_TYPE
},
isChinese(){ isChinese(){
return this.$i18n.locale === 'zh_CN' return this.$i18n.locale === 'zh_CN'
}, },
...@@ -399,6 +408,7 @@ export default { ...@@ -399,6 +408,7 @@ export default {
department: null, department: null,
creditLevel:null, creditLevel:null,
country:null, country:null,
marketType:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -432,6 +442,7 @@ export default { ...@@ -432,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
...@@ -441,7 +452,7 @@ export default { ...@@ -441,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>
...@@ -65,16 +68,16 @@ ...@@ -65,16 +68,16 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['ecw:customer:create']">{{$t('新增')}}</el-button> v-hasPermi="['ecw:customer:distribution-create']">{{$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" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button> v-hasPermi="['ecw:customer:distribution-export']">{{$t('导出')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-col :span="1.5" > <el-col :span="1.5" >
<el-button :disabled="selectCustomerList.length === 0" type="primary" size="mini" @click="batchTransferShow = true;" <el-button :disabled="selectCustomerList.length === 0" type="primary" size="mini" @click="batchTransferShow = true;"
v-hasPermi="['ecw:customer:export']">{{$t('批量移交')}}</el-button> v-hasPermi="['ecw:customer:distribution-transfer']">{{$t('批量移交')}}</el-button>
</el-col> </el-col>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
...@@ -122,11 +125,11 @@ ...@@ -122,11 +125,11 @@
<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">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:customer:update']">{{$t('编辑')}}</el-button> v-hasPermi="['ecw:customer:distribution-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:customer:delete']">{{$t('删除')}}</el-button> v-hasPermi="['ecw:customer:distribution-delete']">{{$t('删除')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="distribution(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="distribution(scope.row)"
v-hasPermi="['ecw:customer:delete']">{{$t('分配客服')}}</el-button> v-hasPermi="['ecw:customer:distribution-customer-service']">{{$t('分配客服')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -169,7 +172,10 @@ import {getCreditPage} from "@/api/customer/credit"; ...@@ -169,7 +172,10 @@ import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer"; import transferCustomer from "@/views/ecw/customer/transferCustomer";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
export default { export default {
name: "customerToBeAssigned", name: "EcwCustomertobeassignedIndex",
activated() {
this.getList()
},
components: { components: {
Template, Template,
upload, upload,
...@@ -209,6 +215,7 @@ export default { ...@@ -209,6 +215,7 @@ export default {
department: null, department: null,
creditLevel:null, creditLevel:null,
country:null, country:null,
marketType:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -265,7 +272,7 @@ export default { ...@@ -265,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;
...@@ -356,7 +363,7 @@ export default { ...@@ -356,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 => {
...@@ -391,7 +398,7 @@ export default { ...@@ -391,7 +398,7 @@ export default {
/** 移交按钮操作 */ /** 移交按钮操作 */
handleDelete(row) { handleDelete(row) {
const id = row.id; const id = row.id;
this.$modal.confirm(this.$t('是否确认删除客户编号为"') + id + this.$t('"的数据项?')).then(function() { this.$modal.confirm(this.$t('是否确认删除客户编号为"') + row.number + this.$t('"的数据项?')).then(function() {
return deleteCustomer(id); return deleteCustomer(id);
}).then(() => { }).then(() => {
this.getList(); this.getList();
......
...@@ -229,7 +229,7 @@ import { parseTime } from '@/utils/ruoyi'; ...@@ -229,7 +229,7 @@ import { parseTime } from '@/utils/ruoyi';
for (let index in this.channelList) { for (let index in this.channelList) {
let channelItem = this.channelList[index]; let channelItem = this.channelList[index];
if (channelItem.channelId == shippingChannelId) { if (channelItem.channelId == shippingChannelId) {
return $l(channelItem, 'name'); return this.$l(channelItem, 'name');
} }
} }
return '/' return '/'
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('关键字')" prop="transportType"> <el-form-item :label="$t('关键字')" prop="key">
<el-input v-model="queryParams.key" :placeholder="$t('请输入关键字查找')" /> <el-input v-model="queryParams.key" :placeholder="$t('请输入关键字查找')" clearable/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportType"> <el-form-item :label="$t('运输方式')" prop="transportType">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportType" formatter="number"/> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportType" formatter="number" clearable/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('唛头')" prop="transportType"> <el-form-item :label="$t('唛头')" prop="marks">
<el-input v-model="queryParams.marks" :placeholder="$t('请输入关键字查找')" /> <el-input v-model="queryParams.marks" :placeholder="$t('请输入关键字查找')" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('资源类型')" prop="customerType"> <el-form-item :label="$t('资源类型')" prop="customerType">
<!-- <el-select clearable v-model="queryParams.customerType" :placeholder="$t('请选择资源类型')" clearable size="small"> <!-- <el-select clearable v-model="queryParams.customerType" :placeholder="$t('请选择资源类型')" clearable size="small">
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
<el-option :label="$t('装柜时间')" value="ldBoxTime"/> <el-option :label="$t('装柜时间')" value="ldBoxTime"/>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item prop="dateFilter">
<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">-->
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
<!-- </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 type="primary" icon="el-icon-search" @click="resetQuery">{{$t('重置')}}</el-button>
<!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
>{{$t('导出')}}</el-button> --> >{{$t('导出')}}</el-button> -->
</el-form-item> </el-form-item>
...@@ -301,10 +302,12 @@ ...@@ -301,10 +302,12 @@
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1;
this.queryParams.beginStartTime=this.dateFilter[0]; this.queryParams.beginStartTime=this.dateFilter[0];
this.queryParams.endStartTime=this.dateFilter[1]; this.queryParams.endStartTime=this.dateFilter[1];
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.dateFilter = []
this.dateRangeCreateTime = []; this.dateRangeCreateTime = [];
this.dateRangeStartTime = []; this.dateRangeStartTime = [];
this.dateRangeEndTime = []; this.dateRangeEndTime = [];
...@@ -409,6 +412,9 @@ ...@@ -409,6 +412,9 @@
data.sumVolume += item.completeVolume data.sumVolume += item.completeVolume
data.sumNum += item.sumNum data.sumNum += item.sumNum
}) })
data.developVolume = data.developVolume.toFixed(2);
data.companyVolume = data.companyVolume.toFixed(2);
data.sumVolume = data.sumVolume.toFixed(2);
this.$set(this,'totalData',data) this.$set(this,'totalData',data)
}else{ }else{
this.totalData.sumWeight =this.myAchievementData.totalWeight this.totalData.sumWeight =this.myAchievementData.totalWeight
......
This diff is collapsed.
<template>
<div class="app-container">
<el-card>
<div slot="header" class="card-title">{{ $t('银行实收明细详情') }}</div>
<el-form ref="addForm" :data="addForm" label-width="250px">
<el-form-item :label="$t('收款单号')">{{ form.receiptNo }}</el-form-item>
<el-form-item :label="$t('剩余应收金额')">
<template v-if="surplusData.length==0"> 0</template>
<div v-if="surplusData.length>0">
<div v-for="(amount, currency) in surplusData" :key="currency">
<span v-if="amount"> {{amount}}{{getCurrencyLabel(currency)}}</span>
</div>
</div>
</el-form-item>
<el-form-item :label="$t('收款账户')" prop="accountNo">
<span>{{ addForm.accountNo }}</span>
</el-form-item>
<el-form-item :label="$t('实收日期')" prop="amountDate">
<span>{{ addForm.amountDate }}</span>
</el-form-item>
<div style="display: flex;">
<el-form-item :label="$t('实收')" prop="amount">
<span>{{ addForm.amount }}</span>
</el-form-item>
<el-form-item label-width="0px" prop="currencyId">
<el-select v-model="addForm.currencyId" :disabled="true">
<el-option
v-for="item in currencyList"
:key="item.id"
:label="$i18n.locale=='zh_CN'?item.titleZh:item.titleEn"
:value="item.id"
/>
</el-select>
</el-form-item>
</div>
<el-form-item
v-if="showCurrencyId != addForm.currencyId"
prop="rate"
>
<template slot="label">
<span :title="$t('实收币种与核销基准币种一样时,无需填写汇率,不一样需要填写汇率')">{{ $t('兑核销基准币种汇率') }}{{getCurrencyLabel(showCurrencyId)}}</span>
</template>
<span>{{ addForm.rate}}</span>
</el-form-item>
<el-form-item v-if="showCurrencyId != addForm.currencyId" >
<template slot="label">
{{ $t('兑核销基准币种金额') }}{{getCurrencyLabel(showCurrencyId)}}
</template>
<span>{{ addForm.writeOffAmount?parseFloat(addForm.writeOffAmount).toFixed(6):'' }}</span>
</el-form-item>
<el-form-item :label="$t('水单附件')" prop="attr">
<div>
<div v-for="(v, i) in addForm.attr" :key="i"><el-link :href="v.url" type="primary" target="_blank">{{ v.name }}</el-link></div>
</div>
</el-form-item>
<el-form-item :label="$t('水单号')" prop="billNo">
<span>{{ addForm.billNo }}</span>
</el-form-item>
</el-form>
</el-card>
<div slot="header" class="bpm-title">{{ $t('审核流程') }}</div>
<work-flow xmlkey="merge_order" v-model="selectedUsers"></work-flow>
<div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="submitForm(0)">{{$t('提交审核')}}</el-button>
<el-button type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{ $t('关闭') }}</el-button>
</div>
</div>
</template>
<script>
import { getReceivableItem ,getInvoicingItem,getReceiptAccountList,getReceiptInfoByIds} from "@/api/ecw/financial";
import { getCurrencyPage } from "@/api/ecw/currency";
import WorkFlow from '@/components/WorkFlow/'
import NP from 'number-precision'
export default {
components: {
WorkFlow
},
data() {
return {
addForm:{},
id:0,
detailed:[],
currencyList: [],
surplusData:[],
receiptAccountList:[],
selectedUsers:[],
list:[],
params: {
page: 1,
rows: 20,
},
bankId:0,
form:{}
}
},
async created() {
if (this.$route.query.id) {
this.id = this.$route.query.id;
}
if (this.$route.query.bankId) {
this.bankId = this.$route.query.bankId;
}
await getInvoicingItem({ id: this.id }).then(res => {
this.list = [...res.data]
})
await getReceiptAccountList({ id: this.id }).then(res => {
this.receiptAccountList = [...res.data]
})
await getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
await this.getList()
await getReceiptInfoByIds({ id: this.id }).then(res => {
this.form = res.data
})
},
methods:{
getList() {
getReceivableItem({ id: this.id }).then(res => {
this.detailed = res.data.map(v => ({
...v,
amountDate: this.parseTime(v.amountDate, '{y}-{m}-{d}'),
accountNo: +v.accountNo,
rate:parseFloat(v.rate).toFixed(6),
attr: v.attr ? v.attr.split(',').map(t => ({ name: t.slice(t.lastIndexOf('/') + 1), url: t })) : []
}))
this.addForm = this.detailed.find((itt) => itt.id == this.bankId);
this.handleAddReceiptItem()
})
},
getCurrencyLabel(id){
var label = this.currencyList.filter(item=>item.id == id)
if(label.length>0) return this.$i18n.locale=='zh_CN'?label[0].titleZh:label[0].titleEn
return ''
},
handleAddReceiptItem() {
this.surplusData = []
// 已收
let recepted = []
this.detailed.forEach(item => {
if(!recepted[item.currencyId]){
recepted[item.currencyId] = item.amount
}else recepted[item.currencyId] = NP.plus(recepted[item.currencyId], item.amount)
})
console.log('rece',recepted)
// 应收
let collom = []
// 从期望收费金额中提取应收币种和金额
this.currencyList.forEach((item,index)=>{
var nairaListByList = this.list.filter(v => v.currencyId === item.id)
if(nairaListByList.length>0){
var discountNaira = nairaListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
}
var dollarList = this.receiptAccountList.filter(v => v.collectionCurrencyId == item.id)
if(dollarList.length>0){
var dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount), 0).toFixed(2)
if(dollar){
collom[item.id] = dollar
}else{
collom.push(0)
}
}
})
console.log('collom',collom)
recepted.forEach((amount,currency)=>{
if(amount){
if(collom[currency]){
if((collom[currency]-amount)!=0) this.surplusData[currency] = +parseFloat((collom[currency]-amount).toPrecision(12))
}else{
this.surplusData[currency] = -amount
}
}
})
collom.forEach((amount,currency)=>{
if(amount){
if(!this.surplusData[currency]){
if(recepted[currency]){
if((amount-recepted[currency])!=0) this.surplusData[currency] = +parseFloat((amount-recepted[currency]).toPrecision(12))
}else{
this.surplusData[currency] = amount
}
}
}
})
},
},
computed: {
showCurrencyId() {
let fieldList = [];
let groupList=[];
this.list.map((element)=>{
if(fieldList.indexOf(element['currencyId'])===-1){
fieldList.push(element['currencyId'])
}
})
for(let i=0;i<fieldList.length;i++){
let arr = this.list.filter((element)=>{
return element['currencyId']===fieldList[i];
})
groupList.push({
currencyId:arr[0].currencyId,
list:arr
})
}
if (groupList.length === 1) return groupList[0].currencyId
else return 1
},
}
}
</script>
<style>
.card {
margin-top: 20px;
}
.dialog-footer {
text-align: left;
}
.card-title {
font-size: 18px;
font-weight: bold;
}
.bpm-title{
font-size: 20px;
font-weight: bold;
color:#666;
margin:20px 0;
}
</style>
...@@ -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;
......
...@@ -248,8 +248,15 @@ ...@@ -248,8 +248,15 @@
</el-descriptions> </el-descriptions>
</el-form> </el-form>
</el-card> </el-card>
<!-- <div slot="header" class="bpm-title">{{ $t('审核流程') }}</div>
<work-flow xmlkey="merge_order" v-model="selectedUsers"></work-flow>
<div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="submitForm(0)">{{$t('提交审核')}}</el-button>
<el-button type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{ $t('关闭') }}</el-button>
</div> -->
<div slot="footer" style="margin: 20px 0"> <div slot="footer" style="margin: 20px 0">
<!-- <el-button type="primary" @click="submitDraft">{{ $t('保 存') }}</el-button> --> <el-button type="primary" @click="submitDraft">{{ $t('保 存') }}</el-button>
<el-button type="primary" @click="submitForm">{{id==0?$t('新增'):$t('编辑')}}</el-button> <el-button type="primary" @click="submitForm">{{id==0?$t('新增'):$t('编辑')}}</el-button>
</div> </div>
<el-dialog <el-dialog
...@@ -312,7 +319,7 @@ ...@@ -312,7 +319,7 @@
/> />
</el-form-item> </el-form-item>
<!-- </el-row> --> <!-- </el-row> -->
<!-- <el-form-item :label="$t('出货渠道')"> <el-form-item :label="$t('出货渠道')">
<el-select <el-select
v-model="queryParams.channelId" v-model="queryParams.channelId"
:placeholder="$t('请选择出货渠道')" :placeholder="$t('请选择出货渠道')"
...@@ -326,8 +333,8 @@ ...@@ -326,8 +333,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row> <!-- <el-row> -->
<el-form-item :label="$t('报关方式')"> <!-- <el-form-item :label="$t('报关方式')">
<dict-selector <dict-selector
:type="DICT_TYPE.ECW_CUSTOMS_TYPE" :type="DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model="queryParams.customsType" v-model="queryParams.customsType"
...@@ -345,20 +352,21 @@ ...@@ -345,20 +352,21 @@
@change="consignor = $event" @change="consignor = $event"
/> />
</el-form-item> </el-form-item>
</el-row> </el-row> -->
<el-form-item :label="$t('订单号')" prop="orderNo"> <el-form-item :label="$t('订单号')" prop="orderNo">
<el-input <el-input
v-model="queryParams.orderNo" v-model="queryParams.orderNo"
:placeholder="$t('请输入订单号')" :placeholder="$t('请输入订单号')"
clearable clearable
/> />
</el-form-item> --> </el-form-item>
<el-form-item :label="$t('编号')" prop="selfNo"> <el-form-item :label="$t('业务编号')" prop="selfNo">
<el-input <el-input
v-model="queryParams.selfNo" v-model="queryParams.selfNo"
:placeholder="$t('请输入编号')" :placeholder="$t('请输入业务编号')"
clearable clearable
@blur="handleQuery"
/> />
</el-form-item> </el-form-item>
...@@ -377,7 +385,7 @@ ...@@ -377,7 +385,7 @@
row-key="id" row-key="id"
> >
<el-table-column type="selection" width="55" :reserve-selection="true"> </el-table-column> <el-table-column type="selection" width="55" :reserve-selection="true"> </el-table-column>
<el-table-column :label="$t('编号')" align="center" prop="payableNo" /> <el-table-column :label="$t('业务编号')" align="center" prop="payableNo" />
<el-table-column :label="$t('货柜号')" align="center" prop="containerNo" /> <el-table-column :label="$t('货柜号')" align="center" prop="containerNo" />
<el-table-column :label="$t('供应商')" align="center" prop="supplierName" /> <el-table-column :label="$t('供应商')" align="center" prop="supplierName" />
<el-table-column :label="$t('费用类型')" align="center" prop="feeType"> <el-table-column :label="$t('费用类型')" align="center" prop="feeType">
...@@ -425,11 +433,12 @@ import { getPayableList, getPayableInfoByIds, createPayment, getPaymentInfoByIds ...@@ -425,11 +433,12 @@ import { getPayableList, getPayableInfoByIds, createPayment, getPaymentInfoByIds
import { getCurrencyPage } from "@/api/ecw/currency"; import { getCurrencyPage } from "@/api/ecw/currency";
import NP from 'number-precision' import NP from 'number-precision'
import {getWarehouseList} from '@/api/ecw/warehouse' import {getWarehouseList} from '@/api/ecw/warehouse'
import WorkFlow from '@/components/WorkFlow/'
export default { export default {
name: "CreatPayment", name: "CreatPayment",
components: { components: {
CustomerSelector CustomerSelector,WorkFlow
}, },
data() { data() {
return { return {
...@@ -461,6 +470,7 @@ export default { ...@@ -461,6 +470,7 @@ export default {
allSupplier: [], allSupplier: [],
currencyList: [], currencyList: [],
warehouseList:[], warehouseList:[],
selectedUsers:[]
}; };
}, },
async created() { async created() {
...@@ -822,4 +832,10 @@ export default { ...@@ -822,4 +832,10 @@ export default {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
} }
.bpm-title{
font-size: 20px;
font-weight: bold;
color:#666;
margin:20px 0;
}
</style> </style>
...@@ -120,6 +120,7 @@ ...@@ -120,6 +120,7 @@
<el-button <el-button
style="margin-left: 10px" style="margin-left: 10px"
type="success" type="success"
v-hasPermi="['ecw:payable:create']"
@click="handleAdd(0)" @click="handleAdd(0)"
>{{ $t('新增请款单') }}</el-button >{{ $t('新增请款单') }}</el-button
> >
...@@ -153,13 +154,15 @@ ...@@ -153,13 +154,15 @@
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="editClick(scope.row)" <el-button
>{{ $t('编辑') }}</el-button size="mini"
> type="text"
<el-button size="mini" type="text" @click="handleAdd(scope.row.id)" v-hasPermi="['ecw:payable:edit']"
>{{ $t('请款') }}</el-button @click="editClick(scope.row)"
> >{{ $t('编辑') }}</el-button>
<el-button size="mini" type="text" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button> <el-button size="mini" type="text" v-hasPermi="['ecw:payable:add']" @click="handleAdd(scope.row.id)"
>{{ $t('请款') }}</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:payable:delete']" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -141,17 +141,17 @@ ...@@ -141,17 +141,17 @@
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" @click="handleAdd(scope.row.id)" type="text">{{ $t('编辑') }}</el-button> <el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" @click="handleAdd(scope.row.id)" v-hasPermi="['ecw:paymentVoucher:edit']" type="text">{{ $t('编辑') }}</el-button>
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" v-hasPermi="['ecw:payment:update']" type="text" @click="examineClick(scope.row.id)">{{ $t('审核') }}</el-button> <el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" v-hasPermi="['ecw:paymentVoucher:process']" type="text" @click="examineClick(scope.row.id)">{{ $t('审核') }}</el-button>
<el-button v-if="scope.row.state == 2" size="mini" type="text" v-hasPermi="['ecw:payment:update']" @click="verifyCancelClick(scope.row)">{{ $t('反审核') }}</el-button> <el-button v-if="scope.row.state == 2" size="mini" type="text" v-hasPermi="['ecw:paymentVoucher:print']" @click="verifyCancelClick(scope.row)">{{ $t('反审核') }}</el-button>
<el-button v-if="scope.row.state == 2" size="mini" type="text" v-hasPermi="['ecw:payment:update']" @click="verificationClick(scope.row)">{{ $t('核销') }}</el-button> <el-button v-if="scope.row.state == 2" size="mini" type="text" v-hasPermi="['ecw:paymentVoucher:writeOff']" @click="verificationClick(scope.row)">{{ $t('核销') }}</el-button>
<el-button v-if="scope.row.state == 4" size="mini" type="text" v-hasPermi="['ecw:payment:update']" @click="verificationCancelClick(scope.row)">{{ $t('反核销') }}</el-button> <el-button v-if="scope.row.state == 4" size="mini" type="text" v-hasPermi="['ecw:paymentVoucher:cancelWriteOff']" @click="verificationCancelClick(scope.row)">{{ $t('反核销') }}</el-button>
<!-- <el-button v-if="scope.row.state == 3" size="mini" type="text">{{ $t('开票') }}</el-button> --> <!-- <el-button v-if="scope.row.state == 3" size="mini" type="text">{{ $t('开票') }}</el-button> -->
<el-button size="mini" type="text" @click="toprint(scope.row.id)" v-hasPermi="['ecw:payment:query']">{{ $t('打印') }}</el-button> <el-button size="mini" type="text" @click="toprint(scope.row.id)" v-hasPermi="['ecw:paymentVoucher:print']">{{ $t('打印') }}</el-button>
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" type="text" v-hasPermi="['ecw:payment:delete']" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button> <el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" type="text" v-hasPermi="['ecw:paymentVoucher:delete']" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button>
<!-- <el-button size="mini" type="text" @click="open = true">{{ $t('导出订单') }}</el-button> --> <!-- <el-button size="mini" type="text" @click="open = true">{{ $t('导出订单') }}</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -218,8 +218,8 @@ ...@@ -218,8 +218,8 @@
<el-card class="card"> <el-card class="card">
<div slot="header" class="card-title">{{ $t('银行收款明细') }}</div> <div slot="header" class="card-title">{{ $t('银行收款明细') }}</div>
<div> <div>
<el-button type="primary" plain size="mini" @click="batchVerification" v-hasPermi="['ecw:verification:update']" style="padding: 10px; margin-bottom: 10px">{{ $t('批量核销') }}</el-button> <el-button type="primary" plain size="mini" @click="batchVerification" v-hasPermi="['ecw:payment:detail:batchWriteOff']" style="padding: 10px; margin-bottom: 10px">{{ $t('批量核销') }}</el-button>
<el-button type="primary" plain size="mini" @click="handleAddReceiptItem" style="padding: 10px; margin-bottom: 10px">{{ $t('添加收款明细') }}</el-button> <el-button type="primary" plain size="mini" @click="handleAddReceiptItem" v-hasPermi="['ecw:payment:detail:addBank']" style="padding: 10px; margin-bottom: 10px">{{ $t('添加收款明细') }}</el-button>
</div> </div>
<el-table ref="multipleTable" :data="detailed" border row-key="id" @selection-change="handleSelectionChange"> <el-table ref="multipleTable" :data="detailed" border row-key="id" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" :reserve-selection="true"> </el-table-column> <el-table-column type="selection" width="50" :reserve-selection="true"> </el-table-column>
...@@ -256,11 +256,11 @@ ...@@ -256,11 +256,11 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" width="200"> <el-table-column :label="$t('操作')" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.status == 0" type="text" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button> <el-button v-if="scope.row.status == 0" v-hasPermi="['ecw:payment:detail:delete']" type="text" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button>
<el-button type="text" @click="detailClick(scope.row)">{{ $t('详情') }}</el-button> <el-button type="text" @click="detailClick(scope.row)" v-hasPermi="['ecw:payment:detail:detail']">{{ $t('详情') }}</el-button>
<el-button v-if="scope.row.status == 0" type="text" @click="verificationClick(scope.row)" v-hasPermi="['ecw:verification:update']">{{ $t('核销') }}</el-button> <el-button v-if="scope.row.status == 0" type="text" @click="verificationClick(scope.row)" v-hasPermi="['ecw:payment:detail:writeOff']">{{ $t('核销') }}</el-button>
<el-button v-if="scope.row.status == 1" type="text" @click="verificationCancelClick(scope.row)" v-hasPermi="['ecw:verification:update']">{{ $t('反核销') }}</el-button> <el-button v-if="scope.row.status == 1" type="text" @click="verificationCancelClick(scope.row)" v-hasPermi="['ecw:payment:detail:cancelWriteOff']">{{ $t('反核销') }}</el-button>
<el-button v-if="scope.row.status == 0" type="text" @click="editClick(scope.row)">{{ $t('编辑') }}</el-button> <el-button v-if="scope.row.status == 0" type="text" @click="editClick(scope.row)" v-hasPermi="['ecw:payment:detail:bankEdit']">{{ $t('编辑') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -306,8 +306,8 @@ ...@@ -306,8 +306,8 @@
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<div slot="footer" style="margin: 20px 0"> <div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="toEdit">{{ $t('编辑') }}</el-button> <el-button type="primary" @click="toEdit" v-hasPermi="['ecw:payment:detail:edit']">{{ $t('编辑') }}</el-button>
<el-button type="primary" @click="verificationAll" v-hasPermi="['ecw:verification:update']">{{ $t('全部核销') }}</el-button> <el-button type="primary" @click="verificationAll" v-hasPermi="['ecw:payment:detail:allWriteOff']">{{ $t('全部核销') }}</el-button>
</div> </div>
<el-dialog v-if="openAddDialog" :visible.sync="openAddDialog" :title="dialogTitle" width="50%" append-to-body> <el-dialog v-if="openAddDialog" :visible.sync="openAddDialog" :title="dialogTitle" width="50%" append-to-body>
<div style="padding: 0 24px"> <div style="padding: 0 24px">
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
style="float: right; margin-left: 10px" style="float: right; margin-left: 10px"
type="primary" type="primary"
size="mini" size="mini"
v-hasPermi="['ecw:receivable:add']"
@click="handleAdd(0)" @click="handleAdd(0)"
>{{ $t('新增收款单') }}</el-button >{{ $t('新增收款单') }}</el-button
> >
...@@ -232,9 +233,7 @@ ...@@ -232,9 +233,7 @@
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="handleAdd(scope.row.id)" <el-button size="mini" type="text" v-hasPermi="['ecw:receivable:collection']" @click="handleAdd(scope.row.id)" >{{ $t('收款') }}</el-button>
>{{ $t('收款') }}</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -74,11 +74,11 @@ ...@@ -74,11 +74,11 @@
<span>{{ scope.$index + 1 }}</span> <span>{{ scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收款单号')" align="center" prop="receiptNo"> <el-table-column :label="$t('收款单号')" align="center" prop="receiptNo" />
<template slot-scope="scope"> <!-- <template slot-scope="scope"> -->
<span style="color: #1890ff;" @click="verificationCancelClick(scope.row)">{{scope.row.receiptNo}}</span> <!-- <span style="color: #1890ff;" @click="verificationCancelClick(scope.row)">{{scope.row.receiptNo}}</span> -->
</template> <!-- </template> -->
</el-table-column> <!-- </el-table-column> -->
<el-table-column :label="$t('客户名称')" align="center" prop="customerName" /> <el-table-column :label="$t('客户名称')" align="center" prop="customerName" />
<el-table-column :label="$t('创建日期')" align="center" prop="createTime"> <el-table-column :label="$t('创建日期')" align="center" prop="createTime">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -110,10 +110,17 @@ ...@@ -110,10 +110,17 @@
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
v-hasPermi="['ecw:voucher:see']"
@click="verificationCancelClick(scope.row)"
>{{ $t('查看')}}</el-button>
<el-button <el-button
v-if="scope.row.state === 0 || scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3" v-if="scope.row.state === 0 || scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:edit']"
@click="handleAdd(scope.row.id)" @click="handleAdd(scope.row.id)"
>{{ $t('编辑') }}</el-button >{{ $t('编辑') }}</el-button
> >
...@@ -128,31 +135,33 @@ ...@@ -128,31 +135,33 @@
v-if="scope.row.state == 4 || scope.row.state == 5 || scope.row.state == 6" v-if="scope.row.state == 4 || scope.row.state == 5 || scope.row.state == 6"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:cancelWriteOff']"
@click="verificationCancelClick(scope.row)" @click="verificationCancelClick(scope.row)"
v-hasPermi="['ecw:verification:update']"
>{{ $t('反核销') }}</el-button >{{ $t('反核销') }}</el-button
> >
<el-button <el-button
v-if="scope.row.state == 5" v-if="scope.row.state == 5"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:ballot']"
@click="openInvoice(scope.row.id)" @click="openInvoice(scope.row.id)"
>{{ $t('开票') }}</el-button >{{ $t('开票') }}</el-button
> >
<el-button v-if="scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3" size="mini" type="text" @click="verificationCancelClick(scope.row)">{{ $t('收款') }}</el-button> <el-button v-if="scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3" v-hasPermi="['ecw:voucher:payment']" size="mini" type="text" @click="verificationCancelClick(scope.row)">{{ $t('收款') }}</el-button>
<el-button v-if="[0,1,2].indexOf(scope.row.state) > -1" size="mini" type="text" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button> <el-button v-if="[0,1,2].indexOf(scope.row.state) > -1" size="mini" type="text" v-hasPermi="['ecw:voucher:delete']" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button>
<el-button <el-button
v-if="scope.row.state != 0" v-if="scope.row.state != 0"
size="mini" size="mini"
type="text" type="text"
@click="toprint(scope.row.id)" @click="toprint(scope.row.id)"
v-hasPermi="['ecw:verification:create']" v-hasPermi="['ecw:voucher:print']"
>{{ $t('打印') }}</el-button >{{ $t('打印') }}</el-button
> >
<el-button <el-button
v-if="scope.row.state != 0" v-if="scope.row.state != 0"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:derive']"
@click="exportReceipt(scope.row.id)" @click="exportReceipt(scope.row.id)"
>{{ $t('导出账单') }}</el-button >{{ $t('导出账单') }}</el-button
> >
...@@ -225,8 +234,6 @@ export default { ...@@ -225,8 +234,6 @@ export default {
dateType: [], dateType: [],
loading: "", loading: "",
params: { params: {
page: 1,
rows: 20,
}, },
// 查询参数 // 查询参数
queryParams: { queryParams: {
...@@ -264,7 +271,7 @@ export default { ...@@ -264,7 +271,7 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = { ...this.queryParams }; let params = { ...this.params };
this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime"); this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime");
// 执行查询 // 执行查询
getReceiptList(params).then((response) => { getReceiptList(params).then((response) => {
...@@ -315,6 +322,7 @@ export default { ...@@ -315,6 +322,7 @@ export default {
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.params = {}
if(this.dateFilter&&this.dateFilter.length>0){ if(this.dateFilter&&this.dateFilter.length>0){
this.queryParams.beginCreateTime = this.dateFilter[0] this.queryParams.beginCreateTime = this.dateFilter[0]
this.queryParams.endCreateTime = this.dateFilter[1] this.queryParams.endCreateTime = this.dateFilter[1]
...@@ -324,6 +332,11 @@ export default { ...@@ -324,6 +332,11 @@ export default {
} }
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1;
for(var key in this.queryParams){
if(this.queryParams[key]){
this.params[key] = this.queryParams[key]
}
}
this.getList(); this.getList();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
...@@ -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>
...@@ -60,11 +63,11 @@ ...@@ -60,11 +63,11 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['ecw:customer:create']">{{$t('新增')}}</el-button> v-hasPermi="['ecw:customer:my-create']">{{$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" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button> v-hasPermi="['ecw:customer:my-export']">{{$t('导出')}}</el-button>
</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>
...@@ -116,15 +119,15 @@ ...@@ -116,15 +119,15 @@
<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">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)" <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
v-hasPermi="['ecw:customer:query']">{{$t('查看')}}</el-button> v-hasPermi="['ecw:customer:my-query']">{{$t('查看')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:customer:update']">{{$t('修改')}}</el-button> v-hasPermi="['ecw:customer:my-update']">{{$t('修改')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-collection" @click="followUp(scope.row)">{{$t('跟进')}}</el-button> <el-button size="mini" v-hasPermi="['ecw:customer:my-follow-up']" type="text" icon="el-icon-collection" @click="followUp(scope.row)">{{$t('跟进')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-user" <el-button size="mini" type="text" icon="el-icon-user"
v-hasPermi="['ecw:customer:update']" @click="complaint(scope.row)">{{$t('客诉')}}</el-button> v-hasPermi="['ecw:customer:my-customer-complaint']" @click="complaint(scope.row)">{{$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:customer:delete']">{{$t('删除')}}</el-button> v-hasPermi="['ecw:customer:my-delete']">{{$t('删除')}}</el-button>
<el-button :disabled="scope.row.isInOpenSea" size="mini" type="text" icon="el-icon-user" @click="delay(scope.row)">{{$t('延期')}}</el-button> <el-button v-has-permi="['ecw:customer:my-postpone']" :disabled="scope.row.isInOpenSea" size="mini" type="text" icon="el-icon-user" @click="delay(scope.row)">{{$t('延期')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -155,7 +158,7 @@ import {getCountryListAll} from "@/api/ecw/country"; ...@@ -155,7 +158,7 @@ import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit"; import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer"; import transferCustomer from "@/views/ecw/customer/transferCustomer";
export default { export default {
name: "myCustomerService", name: "EcwMycustomerserviceIndex",
components: { components: {
upload, upload,
customerFollowList, customerFollowList,
...@@ -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: {},
...@@ -224,6 +228,9 @@ export default { ...@@ -224,6 +228,9 @@ export default {
selectCustomerList:[], selectCustomerList:[],
}; };
}, },
activated () {
this.getList();
},
created() { created() {
this.getList(); this.getList();
// getNodeList().then(r => { // getNodeList().then(r => {
...@@ -255,7 +262,7 @@ export default { ...@@ -255,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;
...@@ -381,7 +388,7 @@ export default { ...@@ -381,7 +388,7 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const id = row.id; const id = row.id;
this.$modal.confirm(this.$t('是否确认删除客户编号为"') + id + this.$t('"的数据项?')).then(function() { this.$modal.confirm(this.$t('是否确认删除客户编号为"') + row.number + this.$t('"的数据项?')).then(function() {
return deleteCustomer(id); return deleteCustomer(id);
}).then(() => { }).then(() => {
this.getList(); this.getList();
......
...@@ -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>
...@@ -65,11 +68,11 @@ ...@@ -65,11 +68,11 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['ecw:customer:create']">{{$t('新增')}}</el-button> v-hasPermi="['ecw:customer:sea-create']">{{$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" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button> v-hasPermi="['ecw:customer:sea-export']">{{$t('导出')}}</el-button>
</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>
...@@ -121,7 +124,7 @@ ...@@ -121,7 +124,7 @@
<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">
<!-- <el-button size="mini" type="text" @click="distribution(scope.row)">{{$t('移交')}}</el-button>--> <!-- <el-button size="mini" type="text" @click="distribution(scope.row)">{{$t('移交')}}</el-button>-->
<el-button size="mini" type="text" @click="fishingFn(scope.row)">{{$t('捞取')}}</el-button> <el-button v-has-permi="['ecw:customer:sea-gain']" size="mini" type="text" @click="fishingFn(scope.row)">{{$t('捞取')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -167,7 +170,10 @@ import {listServiceUser} from "@/api/system/user"; ...@@ -167,7 +170,10 @@ import {listServiceUser} from "@/api/system/user";
import {getCountryListAll} from "@/api/ecw/country"; import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit"; import {getCreditPage} from "@/api/customer/credit";
export default { export default {
name: "customerToBeAssigned", name: "EcwOceancustomerIndex",
activated() {
this.getList()
},
components: { components: {
upload upload
}, },
...@@ -202,6 +208,7 @@ export default { ...@@ -202,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.
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
<div class="offer-header"> <div class="offer-header">
<span style="font-size: 15px;">{{$t('报价单号')}}{{list.number}}</span> <span style="font-size: 15px;">{{$t('报价单号')}}{{list.number}}</span>
<div class="btns"> <div class="btns">
<el-button size="mini" type="primary" v-if="list.status!=5" @click="$router.push('edit?id=' + offerId)">{{$t('编辑')}}</el-button> <el-button v-hasPermi="['ecw:offer:update']" size="mini" type="primary" v-if="list.status!=5" @click="$router.push('edit?id=' + offerId)">{{$t('编辑')}}</el-button>
<el-button type="primary" v-if="[1,3,7].indexOf(list.status) > -1" size="mini" @click="handleAdd">{{$t('跟进')}}</el-button> <el-button v-hasPermi="['ecw:offer:loglist']" type="primary" v-if="[1,3,7].indexOf(list.status) > -1" size="mini" @click="handleAdd">{{$t('跟进')}}</el-button>
<el-button type="primary" v-if="[3,7].indexOf(list.status) > -1" size="mini" @click="toResult">{{$t('结果')}}</el-button> <el-button v-hasPermi="['ecw:offer:result']" type="primary" v-if="[3,7].indexOf(list.status) > -1" size="mini" @click="toResult">{{$t('结果')}}</el-button>
<el-button size="mini" v-if="[1,3,7].indexOf(list.status) > -1" type="primary" @click.native="$router.push('/offer/special?offerId=' + offerId)" >{{$t('特价')}}</el-button> <el-button v-hasPermi="['ecw:offer:discount','ecw:offer:commission']" size="mini" v-if="[1,3,7].indexOf(list.status) > -1" type="primary" @click.native="$router.push('/offer/special?offerId=' + offerId)" >{{$t('特价')}}</el-button>
<el-button type="danger" size="mini" @click="handleDelete">{{$t('删除')}}</el-button> <el-button v-hasPermi="['ecw:offer:delete']" type="danger" size="mini" @click="handleDelete">{{$t('删除')}}</el-button>
</div> </div>
</div> </div>
<div> <div>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
{{consignorData.contactsName||$t('')}} {{consignorData.contactsName||$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('手机号')+':'"> <el-descriptions-item :label="$t('手机号')+':'">
{{consignorData?(checkCode(consignorData.areaCode)+consignorData.phoneNew)||$t(''):$t('')}} {{consignorData && consignorData.phoneNew ? (checkCode(consignorData.areaCode) + consignorData.phoneNew)||$t(''):$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('联系地址')+':'"> <el-descriptions-item :label="$t('联系地址')+':'">
{{consignorData.address||$t('')}} {{consignorData.address||$t('')}}
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
{{consigneeData.contactsName||$t('')}} {{consigneeData.contactsName||$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('手机号')+':'"> <el-descriptions-item :label="$t('手机号')+':'">
{{consigneeData?(checkCode(consigneeData.areaCode)+consigneeData.phoneNew)||$t(''):$t('')}} {{consigneeData && consigneeData.phoneNew ?(checkCode(consigneeData.areaCode)+consigneeData.phoneNew)||$t(''):$t('')}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('联系地址')+':'"> <el-descriptions-item :label="$t('联系地址')+':'">
{{consigneeData.address||$t('')}} {{consigneeData.address||$t('')}}
...@@ -290,7 +290,7 @@ ...@@ -290,7 +290,7 @@
{{list.competitor||'/'}} {{list.competitor||'/'}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('重要程度')"> <el-descriptions-item :label="$t('重要程度')">
<el-rate v-model="list.importance"></el-rate> <el-rate v-model="list.importance" disabled></el-rate>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="4"> <el-descriptions :column="4">
......
...@@ -750,6 +750,21 @@ export default { ...@@ -750,6 +750,21 @@ export default {
arr.push(it) arr.push(it)
}) })
// 没有累加保价费(没有美元计价)但是有保价费则需要加上去
if(!withInsuranceFee && this.fee && this.fee.insuranceFee){
let fee = Decimal(this.fee.insuranceFee)
// 如果没有美元费用,且保价费和其他费用币种相同(都是美元)
if(this.form.otherFeeCurrencyId == 1 && this.form.otherFee){
withOtherFee = true
fee = fee.plus(new Decimal(this.form.otherFee || 0))
}
arr.push({
currencyId: 1,
amount: fee
})
}
// 如果没有累加其他费用,则另外增加货币 // 如果没有累加其他费用,则另外增加货币
if(!withOtherFee && this.form.otherFee){ if(!withOtherFee && this.form.otherFee){
let fee = { let fee = {
...@@ -765,13 +780,7 @@ export default { ...@@ -765,13 +780,7 @@ export default {
arr.push(fee) arr.push(fee)
} }
// 没有累加保价费(没有美元计价)但是有保价费则需要加上去
if(!withInsuranceFee && this.fee && this.fee.insuranceFee){
arr.push({
currencyId: 1,
amount: Decimal(this.fee.insuranceFee)
})
}
return arr return arr
}, },
......
...@@ -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 草稿 编辑、 删除
...@@ -122,16 +122,16 @@ ...@@ -122,16 +122,16 @@
<el-dropdown> <el-dropdown>
<el-button icon="el-icon-plus" circle type="primary"></el-button> <el-button icon="el-icon-plus" circle type="primary"></el-button>
<el-dropdown-menu slot="dropdown"> <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('detail?offerId=' + scope.row.offerId)" v-hasPermi="['ecw:offer:show']">{{$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('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('logList?offerId=' + scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:loglist']">{{$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(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" v-if="[3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:result']">{{$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="$router.push('/offer/special?offerId=' + scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:discount','ecw:offer:commission']">{{$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="cancel(scope.row.offerId)" v-if="[1,3,7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:cancel']">{{$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="recovery(scope.row.offerId)" v-if="[0].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:recovery']">{{$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,12 +143,12 @@ ...@@ -143,12 +143,12 @@
</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'
export default { export default {
name: "Offer", name: "EcwOfferIndex",
components: { components: {
UserSelector 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:{
...@@ -189,7 +189,15 @@ export default { ...@@ -189,7 +189,15 @@ export default {
return this.tradeCityList.filter(item => item.type == 1) return this.tradeCityList.filter(item => item.type == 1)
}, },
}, },
activated(){
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 => {
...@@ -202,8 +210,9 @@ export default { ...@@ -202,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;
......
...@@ -89,8 +89,8 @@ ...@@ -89,8 +89,8 @@
<el-table-column <el-table-column
:label="$t('操作')"> :label="$t('操作')">
<template v-slot="{row}"> <template v-slot="{row}">
<el-button v-if="row.seaFreight > 0" size="mini" type="text" @click="showOfferProdId=row.offerProdId">{{$t('优惠申请')}}</el-button> <el-button v-hasPermi="['ecw:offer:discount']" v-if="row.seaFreight > 0" size="mini" type="text" @click="showOfferProdId=row.offerProdId">{{$t('优惠申请')}}</el-button>
<el-button v-if="row.seaFreight > 0" size="mini" type="text" @click="showCommissionProd=row">{{$t('佣金规则')}}</el-button> <el-button v-hasPermi="['ecw:offer:commission']" v-if="row.seaFreight > 0" size="mini" type="text" @click="showCommissionProd=row">{{$t('佣金规则')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
{{ row.consignorName }} {{ row.consignorName }}
</p> </p>
<p> <p>
+{{row.consignorCountryCode}}{{row.consignorPhone}} +{{row.consignorCountryCode}} {{row.consignorPhone}}
</p> </p>
</div> </div>
</div> </div>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
{{ row.consigneeName }} {{ row.consigneeName }}
</p> </p>
<p> <p>
+{{row.consigneeCountryCode}}{{ row.consigneePhone}} +{{row.consigneeCountryCode}} {{ row.consigneePhone}}
</p> </p>
</div> </div>
</template> </template>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item :label="$t('日期筛选')"> <el-form-item :label="$t('日期筛选')">
<dict-selector defaultable :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" class="w-100 mr-10" /> <dict-selector defaultable :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" class="w-100 mr-10" />
<el-date-picker v-model="dateFilter" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"></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" @change="handleQuery"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发仓')" prop="startWarehouseId"> <el-form-item :label="$t('始发仓')" prop="startWarehouseId">
<el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')" clearable @change="handleQuery"> <el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')" clearable @change="handleQuery">
...@@ -35,18 +35,18 @@ ...@@ -35,18 +35,18 @@
<el-form-item :label="$t('提单号')" prop="tidanNo"> <el-form-item :label="$t('提单号')" prop="tidanNo">
<el-input v-model="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货人')" prop="consignorId"> <el-form-item :label="$t('发货人')" prop="consignorKey">
<el-input v-model="queryParams.consignorId" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.consignorKey" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人')" prop="consigneeId"> <el-form-item :label="$t('收货人')" prop="consigneeKey">
<el-input v-model="queryParams.consigneeId" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('报关方式')" prop="customsType"> <el-form-item :label="$t('报关方式')" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('唛头')" prop="marks"> <el-form-item :label="$t('唛头')" prop="marks">
<el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
...@@ -66,11 +66,11 @@ ...@@ -66,11 +66,11 @@
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="2"> <el-col :span="2">
<el-button type="primary" plain icon="el-icon-setting" size="mini" :disabled="multiple" @click="batchReview">{{$t('批量复核')}}</el-button> <el-button v-hasPermi="['ecw:cargo_control:batch_review']" type="primary" plain icon="el-icon-setting" size="mini" :disabled="multiple" @click="batchReview">{{$t('批量复核')}}</el-button>
</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>
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
...@@ -108,36 +108,36 @@ ...@@ -108,36 +108,36 @@
<dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" /> <dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="150px"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<!--控货中,已入仓--> <!--控货中,已入仓-->
<template v-if="[0,2].indexOf(scope.row.cargoControlStatus) > -1 && scope.row.sumNum > 0"> <template v-if="[0,2].indexOf(scope.row.cargoControlStatus) > -1 && scope.row.sumNum > 0">
<el-button type="text" size="mini" @click="showReleaseOrderId=scope.row.orderId">{{$t('放货')}}</el-button> <el-button type="text" size="mini" @click="showReleaseOrderId=scope.row.orderId" v-hasPermi="['ecw:cargo_control:release']">{{$t('放货')}}</el-button>
<el-button type="text" size="mini" @click="showTransferOrder = scope.row" >{{$t('控货权转移')}}</el-button> <el-button type="text" size="mini" @click="showTransferOrder = scope.row" v-hasPermi="['ecw:cargo_control:transfer']">{{$t('控货权转移')}}</el-button>
</template> </template>
<!--部分控货--> <!--部分控货-->
<template v-if="scope.row.cargoControlStatus == 2"> <template v-if="scope.row.cargoControlStatus == 2">
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('修改')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:update']">{{$t('修改')}}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('取消')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:cancel']">{{$t('取消')}}</el-button>
<el-button type="text" size="mini" @click="review(scope.row)" v-if="scope.row.isToReview">{{$t('放货复核')}}</el-button> <el-button type="text" size="mini" @click="review(scope.row)" v-if="scope.row.isToReview" v-hasPermi="['ecw:cargo_control:review']">{{$t('放货复核')}}</el-button>
</template> </template>
<!--已全部放货,但是未复核--> <!--已全部放货,但是未复核-->
<template v-if="scope.row.cargoControlStatus == 1 && scope.row.isToReview"> <template v-if="scope.row.cargoControlStatus == 1 && scope.row.isToReview">
<el-button type="text" size="mini" @click="review(scope.row)">{{$t('放货复核')}}</el-button> <el-button type="text" size="mini" @click="review(scope.row)" v-hasPermi="['ecw:cargo_control:review']">{{$t('放货复核')}}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('修改')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:update']">{{$t('修改')}}</el-button>
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('取消')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:cancel']">{{$t('取消')}}</el-button>
</template> </template>
<!--已完成放货,且没有待复核;真正的放货完成--> <!--已完成放货,且没有待复核;真正的放货完成-->
<template v-if="scope.row.cargoControlStatus == 1 && !scope.row.isToReview"> <template v-if="scope.row.cargoControlStatus == 1 && !scope.row.isToReview">
<!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> --> <!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> -->
<el-button type="text" size="mini" @click="cargoTransfer(scope.row)" >{{$t('调货')}}</el-button> <el-button type="text" size="mini" @click="cargoTransfer(scope.row)" v-hasPermi="['ecw:cargo_control:cargo_transfer']">{{$t('调货')}}</el-button>
<el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods">{{$t('反复核')}}</el-button> <el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods" v-hasPermi="['ecw:cargo_control:fallback']">{{$t('反复核')}}</el-button>
</template> </template>
<el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -161,12 +161,12 @@ import CustomerSelector from '@/components/CustomerSelector' ...@@ -161,12 +161,12 @@ import CustomerSelector from '@/components/CustomerSelector'
import Transfer from '@/views/ecw/order/components/Transfer' import Transfer from '@/views/ecw/order/components/Transfer'
import Release from './components/Release' import Release from './components/Release'
import CargoControlEdit from './components/CargoControlEdit' import CargoControlEdit from './components/CargoControlEdit'
import { getCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo } from "@/api/ecw/orderCargoControl" import { getCargoControlOrderPage, batchReview, orderReview, getPickRleaseInfo, exportCargoControl } from "@/api/ecw/orderCargoControl"
import TransferCargo from '@/views/ecw/order/components/TransferCargo' import TransferCargo from '@/views/ecw/order/components/TransferCargo'
import Fallback from './components/Fallback' import Fallback from './components/Fallback'
import {getWarehouseList} from '@/api/ecw/warehouse' import {getWarehouseList} from '@/api/ecw/warehouse'
export default { export default {
name: "EcwOrderCargonControl", name: "EcwOrderCargocontrol",
components: { components: {
CustomerSelector, ProductSelector, Selector, Transfer, Release,CargoControlEdit, TransferCargo, Fallback CustomerSelector, ProductSelector, Selector, Transfer, Release,CargoControlEdit, TransferCargo, Fallback
}, },
...@@ -246,15 +246,20 @@ export default { ...@@ -246,15 +246,20 @@ export default {
this.loading = true; this.loading = true;
// 执行查询 // 执行查询
getCargoControlOrderPage(this.combinedQueryParams).then(response => { getCargoControlOrderPage(this.combinedQueryParams).then(response => {
this.list = response.data.list; this.list = []
this.total = response.data.total; // 直接更细数据,可能因为elTable的部分渲染产生bug,比如权限控制异常
this.$nextTick( () => {
this.list = response.data.list;
this.total = response.data.total;
})
this.loading = false; this.loading = false;
}); });
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNo = 1; this.queryParams.page = 1;
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
...@@ -262,16 +267,16 @@ export default { ...@@ -262,16 +267,16 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
// 执行导出 // 执行导出
this.$modal.confirm('是否确认导出所有订单数据项?').then(() => { this.$modal.confirm('是否确认导出所有订单数据项?').then(() => {
this.exportLoading = true; this.exportLoading = true;
return exportOrderExcel(this.combinedQueryParams); return exportCargoControl(this.combinedQueryParams);
}).then(response => { }).then(response => {
this.$download.excel(response, '${table.classComment}.xls'); this.$download.excel(response, this.$t('控货订单') + '.xlsx');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => { }); }).catch(() => { });
}, },
......
...@@ -42,7 +42,11 @@ ...@@ -42,7 +42,11 @@
<template slot-scope="scope">{{scope.$index + 1}}</template> <template slot-scope="scope">{{scope.$index + 1}}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收货人')" prop="consigneeName" /> <el-table-column :label="$t('收货人')" prop="consigneeName" />
<el-table-column :label="$t('收货人电话')" prop="consigneePhone" /> <el-table-column :label="$t('收货人电话')" prop="consigneePhone">
<template slot-scope="{row}">
+{{row.consigneeCountryCode}} {{row.consigneePhone}}
</template>
</el-table-column>
<el-table-column :label="$t('控货箱数')" prop="controlNum"></el-table-column> <el-table-column :label="$t('控货箱数')" prop="controlNum"></el-table-column>
<el-table-column :label="$t('放货箱数')" prop="pickNum"></el-table-column> <el-table-column :label="$t('放货箱数')" prop="pickNum"></el-table-column>
<el-table-column :label="$t('体积') + '(m³)'" prop="pickVolume"></el-table-column> <el-table-column :label="$t('体积') + '(m³)'" prop="pickVolume"></el-table-column>
...@@ -67,7 +71,7 @@ ...@@ -67,7 +71,7 @@
<el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button> <el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button>
<el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button> <el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.id)">{{$t('审核详情')}}</el-button> <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.formId)">{{$t('审核详情')}}</el-button>
<el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button> <el-button v-if="[2,4, 5, 6].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">{{$t('取消审核')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -181,8 +185,8 @@ export default { ...@@ -181,8 +185,8 @@ export default {
this.loadData() this.loadData()
}, },
// 查看审核详情 // 查看审核详情
showApprovalDetail(id){ showApprovalDetail(formId){
this.$router.push('/bpm/process-instance/detail?id=' + this.getApproval(id, 'formId')) this.$router.push('/bpm/process-instance/detail?id=' + formId)
}, },
// 取消审核 // 取消审核
cancelApproval(id){ cancelApproval(id){
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货手机号')"> <el-form-item :label="$t('控货手机号')">
+{{detail.countryCode}} {{detail.phone}} +{{detail.dialCode}} {{detail.phone}}
</el-form-item> </el-form-item>
<el-form-item :label="$t('手机验证码')"> <el-form-item :label="$t('手机验证码')">
<el-input v-model="formData.code" placeholder="" style="width: 100px; margin-right:10px"></el-input> <el-input v-model="formData.code" placeholder="" style="width: 100px; margin-right:10px"></el-input>
......
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
<el-form-item :label="$t('结束标签')" prop="end" required> <el-form-item :label="$t('结束标签')" prop="end" required>
<el-input v-model.number="form.end" type="number"></el-input> <el-input v-model.number="form.end" type="number"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('标签范围')" v-if="tags.length">
<el-input :value="tags[0].labels" disabled></el-input>
</el-form-item>
<el-form-item label=""> <el-form-item label="">
<el-button type="primary" @click="showPreview">{{$t('去打印')}}</el-button> <el-button type="primary" @click="showPreview">{{$t('去打印')}}</el-button>
</el-form-item> </el-form-item>
...@@ -19,7 +22,7 @@ ...@@ -19,7 +22,7 @@
<div v-if="step=='preview'" style="height:250px; overflow-y:hidden"> <div v-if="step=='preview'" style="height:250px; overflow-y:hidden">
<div <div
class="order-print-tag-item" class="order-print-tag-item"
v-for="(item, index) in tags.filter(tag => tag.num >= form.start && tag.num <= form.end)" v-for="(item, index) in printTags"
style="width: 80mm; margin: 0 auto;" :id="'order-print-tag' + item.num" style="width: 80mm; margin: 0 auto;" :id="'order-print-tag' + item.num"
:style="{display: index == 0 ? 'block':'none' }" :style="{display: index == 0 ? 'block':'none' }"
:key="item.num"> :key="item.num">
...@@ -89,6 +92,9 @@ export default { ...@@ -89,6 +92,9 @@ export default {
} }
}, },
computed:{ computed:{
printTags(){
return this.tags.filter(tag => tag.num >= this.form.start && tag.num <= this.form.end)
},
detail(){ detail(){
return this.tags.length ? this.tags[0] : null return this.tags.length ? this.tags[0] : null
}, },
...@@ -108,7 +114,8 @@ export default { ...@@ -108,7 +114,8 @@ export default {
loadData(){ loadData(){
printTag(this.orderId).then(res => { printTag(this.orderId).then(res => {
this.$set(this, 'tags', res.data) this.$set(this, 'tags', res.data)
this.form.end = res.data.length this.form.start = res.data[0].num
this.form.end = res.data[res.data.length-1].num
}) })
}, },
closeDialog(){ closeDialog(){
...@@ -117,9 +124,12 @@ export default { ...@@ -117,9 +124,12 @@ export default {
this.$emit('close'); this.$emit('close');
}, },
showPreview(){ showPreview(){
if(this.form.end > this.tags.length){ if(this.form.end > this.tags[this.tags.length-1].num){
return this.$message.error(this.$t('结束标签不对')) return this.$message.error(this.$t('结束标签不对'))
} }
if(!this.printTags.length){
return this.$message.error(this.$t('指定区域无可打印标签'))
}
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (!valid) { if (!valid) {
return; return;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<p style="padding-bottom:10px;font-size:16px;"> <p style="padding-bottom:10px;font-size:16px;">
{{$t('订单号')}}{{detail.orderNo}} {{$t('订单号')}}{{detail.orderNo}}
&nbsp;&nbsp;&nbsp;{{$t('发货人电话')}}{{detail.consignorVO.countryCode}} {{detail.consignorVO.phone}} &nbsp;&nbsp;&nbsp;{{$t('发货人电话')}}{{detail.consignorVO.countryCode}} {{detail.consignorVO.phone}}
&nbsp;&nbsp;&nbsp;{{$t('提货地点')}}{{objective.titleZh}} &nbsp;&nbsp;&nbsp;{{$t('提货地点')}}{{$l(objective, 'title')}}
<img :src="qrcode" style="margin-left: 10px;width:17mm;vertical-align:middle" /> <img :src="qrcode" style="margin-left: 10px;width:17mm;vertical-align:middle" />
</p> </p>
<div id="table1" width="205mm"> <div id="table1" width="205mm">
...@@ -100,10 +100,14 @@ export default { ...@@ -100,10 +100,14 @@ export default {
return t return t
}, },
objective(){ objective(){
if(this.detail && this.detail.orderObjectiveVO && this.detail.orderObjectiveVO.objective){ return {
titleZh: this.detail.logisticsInfoDto.destTitleZh,
titleEn: this.detail.logisticsInfoDto.destTitleEn
}
/* if(this.detail && this.detail.orderObjectiveVO && this.detail.orderObjectiveVO.objective){
return JSON.parse(this.detail.orderObjectiveVO.objective) return JSON.parse(this.detail.orderObjectiveVO.objective)
} }
return {} return {} */
}, },
items(){ items(){
let arr = [] let arr = []
...@@ -165,8 +169,8 @@ export default { ...@@ -165,8 +169,8 @@ export default {
LODOP.SET_PREVIEW_WINDOW(1,0,0,'410mm','139mm',""); LODOP.SET_PREVIEW_WINDOW(1,0,0,'410mm','139mm',"");
LODOP.SET_PRINT_PAGESIZE(0,'203.9mm','178mm',""); LODOP.SET_PRINT_PAGESIZE(0,'203.9mm','178mm',"");
LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW",true); /* LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW",true);
LODOP.SET_PRINT_MODE("FULL_HEIGHT_FOR_OVERFLOW",true); LODOP.SET_PRINT_MODE("FULL_HEIGHT_FOR_OVERFLOW",true); */
LODOP.ADD_PRINT_HTM('40mm',0,'204mm','148mm', document.getElementById("myproa").innerHTML); LODOP.ADD_PRINT_HTM('40mm',0,'204mm','148mm', document.getElementById("myproa").innerHTML);
LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW", true); LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW", true);
......
...@@ -42,7 +42,8 @@ ...@@ -42,7 +42,8 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('品牌')"> <el-table-column :label="$t('品牌')">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" /> <template v-if="row.brandName">{{row.brandName}}</template>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="row.feeType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('体积')"> <el-table-column :label="$t('体积')">
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<el-table-column :label="$t('体积') + '(m³)'" prop="volume" /> <el-table-column :label="$t('体积') + '(m³)'" prop="volume" />
<el-table-column :label="$t('重量') + '(kg)'" prop="weight" /> <el-table-column :label="$t('重量') + '(kg)'" prop="weight" />
<el-table-column :label="$t('数量(个)')" prop="quantityAll" /> <el-table-column :label="$t('数量(个)')" prop="quantityAll" />
<el-table-column :label="$t('快递单号')" prop="expressNo" /> <el-table-column :label="$t('入仓快递单号')" prop="expressNo" />
<el-table-column :label="$t('入仓时间')" prop="inTime" > <el-table-column :label="$t('入仓时间')" prop="inTime" >
<template slot-scope="{row}">{{row.inTime|parseTime}}</template> <template slot-scope="{row}">{{row.inTime|parseTime}}</template>
</el-table-column> </el-table-column>
......
<template>
<index dept />
</template>
<script>
import Index from './index'
export default {
name: 'EcwOrderDept',
components: {Index}
}
</script>
\ No newline at end of file
...@@ -186,10 +186,10 @@ ...@@ -186,10 +186,10 @@
<template slot-scope="{row}"> <template slot-scope="{row}">
<template v-if="row.charging ==1"> <template v-if="row.charging ==1">
<template v-if="!row.seaFreight">{{ $t('未报价') }}</template> <template v-if="!row.oneSeaFreight">{{ $t('未报价') }}</template>
<el-link type="primary" @click="showFeeDetail(row, 'clearance')" v-else>{{$t('全包价')}} {{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</el-link> <el-link type="primary" @click="showFeeDetail(row, 'clearance')" v-else>{{$t('全包价')}} {{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</el-link>
</template> </template>
<template v-else-if="!row.seaFreight && !row.clearanceFreight">{{ $t('未报价') }}</template> <template v-else-if="!row.oneSeaFreight && !row.oneClearanceFreight">{{ $t('未报价') }}</template>
<template v-else> <template v-else>
<el-link type="primary" @click="showFeeDetail(row, 'freight')"> <el-link type="primary" @click="showFeeDetail(row, 'freight')">
{{$t('运费')}}{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}} {{$t('运费')}}{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" :label="$t('快递单号')"> <el-table-column prop="" :label="$t('填单快递单号')">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ row.expressNo }} {{ row.expressNo }}
</template> </template>
...@@ -211,15 +211,16 @@ ...@@ -211,15 +211,16 @@
<el-timeline v-if="order.orderTimeVOList && order.orderTimeVOList.length" :reverse="true"> <el-timeline v-if="order.orderTimeVOList && order.orderTimeVOList.length" :reverse="true">
<el-timeline-item v-for="(activity, index) in order.orderTimeVOList" :key="index" :timestamp="activity.timestamp"> <el-timeline-item v-for="(activity, index) in order.orderTimeVOList" :key="index" :timestamp="activity.timestamp">
{{ activity.titleZh }} {{ activity.titleZh }}
<div>{{$l(activity, 'remarks')}}</div>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
<el-result v-else icon="info " :title="$t('暂无数据')" :subTitle="$t('暂无订单动态数据')" /> <el-result v-else icon="info " :title="$t('暂无数据')" :subTitle="$t('暂无订单动态数据')" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('运单资料/提货单')" name="three"> <el-tab-pane :label="$t('运单资料/提货单')" name="three">
<!--inWarehouseState 1待入库,2多了,3少了,4到齐--> <!--inWarehouseState 1待入库,2多了,3少了,4到齐-->
<el-button type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState == 0 && order.shipmentState == 0">{{$t('查看入仓单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_receipt']" type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState == 0 && order.shipmentState == 0">{{$t('查看入仓单')}}</el-button>
<el-button type="text" @click.native="showLadingBill=true" :disabled="!order.ladingState">{{$t('查看提货单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_landing']" type="text" @click.native="showLadingBill=true" :disabled="!order.ladingState">{{$t('查看提货单')}}</el-button>
<el-button :disabled="!order.packingListUrl" type="text" @click="downloadPackingList">{{$t('装箱单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_packing']" :disabled="!order.packingListUrl" type="text" @click="downloadPackingList">{{$t('装箱单')}}</el-button>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('费用明细')" name="four"> <el-tab-pane :label="$t('费用明细')" name="four">
<el-table :data="feeList"> <el-table :data="feeList">
......
...@@ -100,8 +100,8 @@ ...@@ -100,8 +100,8 @@
<el-card class="mt-10"> <el-card class="mt-10">
<div slot="header" class="card-title"> <div slot="header" class="card-title">
<div class="card-name">{{$t('商品信息')}}</div> <div class="card-name">{{$t('商品信息')}}</div>
<el-button type="primary" size="mini" @click="addProduct(null)" :disabled="!canAddProduct">{{$t('添加货物')}}</el-button> <el-button type="primary" size="mini" @click="addProduct(null)" :disabled="!canAddProduct || !productEditable">{{$t('添加货物')}}</el-button>
<el-button type="primary" size="mini" @click="showBatchImportDialog=true" :disabled="!canAddProduct">{{$t('批量添加货物')}}</el-button> <el-button type="primary" size="mini" @click="showBatchImportDialog=true" :disabled="!canAddProduct || !productEditable">{{$t('批量添加货物')}}</el-button>
</div> </div>
<el-table :data="form.orderItemVOList" border class="product-list" v-if="!initing"> <el-table :data="form.orderItemVOList" border class="product-list" v-if="!initing">
<el-table-column :label="$t('序号')" width="60px" fixed> <el-table-column :label="$t('序号')" width="60px" fixed>
...@@ -253,7 +253,7 @@ ...@@ -253,7 +253,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" width="80px" fixed="right"> <el-table-column :label="$t('操作')" width="80px" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="danger" @click="delProduct(scope.$index)">{{$t('删除')}}</el-button> <el-button size="mini" type="danger" @click="delProduct(scope.$index)" :disabled="!productEditable">{{$t('删除')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -629,7 +629,7 @@ export default { ...@@ -629,7 +629,7 @@ export default {
}, },
// 是否已完成入仓 // 是否已完成入仓
inWarehouse(){ inWarehouse(){
return !!this.form.inWarehouseState && this.form.inWarehouseState > 201 return (!!this.form.inWarehouseState && this.form.inWarehouseState > 201) || this.form.shipmentState > 0
}, },
exportCityList(){ exportCityList(){
return this.tradeCityList.filter(item => item.type == 2 || item.type == 3) return this.tradeCityList.filter(item => item.type == 2 || item.type == 3)
...@@ -833,7 +833,10 @@ export default { ...@@ -833,7 +833,10 @@ export default {
} }
}, },
'form.isCargoControl'(isCargoControl){ 'form.isCargoControl'(isCargoControl){
this.$set(this.form, 'drawee', isCargoControl ? 1 : 2) console.log('form.isCargoControl', this.form.isCargoControl, this.initing)
if(!this.initing){
this.$set(this.form, 'drawee', isCargoControl ? 2 : 2)
}
}, },
/* 'form.orderItemVOList'(){ /* 'form.orderItemVOList'(){
console.log('form.orderItemVOList', this.form.orderItemVOList.length, this.form.orderItemVOList) console.log('form.orderItemVOList', this.form.orderItemVOList.length, this.form.orderItemVOList)
...@@ -849,6 +852,12 @@ export default { ...@@ -849,6 +852,12 @@ export default {
} }
}) })
},
// 送货上门变化后需要判断当前选择的收货方式,如果选择了送货上门但是当前不支持送货上门则需要重置
homeDeliveryService(enable){
if(!enable && this.form.harvestMethod != 1){
this.form.harvestMethod = 1
}
} }
}, },
activated(){ activated(){
...@@ -875,11 +884,14 @@ export default { ...@@ -875,11 +884,14 @@ export default {
if(this.$route.query.id){ if(this.$route.query.id){
this.getOrder() this.getOrder()
}else this.addProduct() }else{
this.addProduct()
this.$nextTick(() => {
this.initing = false
})
}
this.$nextTick(() => {
this.initing = false
})
}, },
methods: { methods: {
onTableMounted(e){ onTableMounted(e){
...@@ -887,7 +899,7 @@ export default { ...@@ -887,7 +899,7 @@ export default {
}, },
getOrder(){ getOrder(){
getUpdateInfo(this.$route.query.id).then(res => { getUpdateInfo(this.$route.query.id).then(res => {
this.form = Object.assign({}, res.data, {orderItemVOList: []}) this.form = Object.assign({}, {...res.data}, {orderItemVOList: []})
/* this.form.orderItemVOList = []; */ /* this.form.orderItemVOList = []; */
...@@ -926,6 +938,13 @@ export default { ...@@ -926,6 +938,13 @@ export default {
this.showWorkFlow = true this.showWorkFlow = true
} }
// 如果是自定义付款人,则需要同步具体发货人信息
if(this.form.drawee == 3){
this.customDraweeList.forEach(item => {
item.value = this.form.customDraweeVOList.find(it => it.name == item.name)?.value || item.value
})
}
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单 // 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
this.$nextTick(() => { this.$nextTick(() => {
res.data.orderItemVOList.forEach(item => { res.data.orderItemVOList.forEach(item => {
......
...@@ -95,7 +95,10 @@ ...@@ -95,7 +95,10 @@
<!-- 操作工具栏 --> <!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <el-col :span="12">
<el-button type="primary" size="mini" @click="exportSearch" v-hasPermi="['ecw:exception:export']">导出</el-button>
</el-col>
<el-col :span="12"><right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar></el-col>
</el-row> </el-row>
<!-- 列表 --> <!-- 列表 -->
...@@ -169,8 +172,23 @@ ...@@ -169,8 +172,23 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.orderExceptionStatus<2" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('查看')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-share" @click="handEdit(scope.row.orderId)">{{$t('查看')}}</el-button> <!-- <el-button size="mini" type="text" icon="el-icon-share" @click="handEdit(scope.row.orderId)">{{$t('查看')}}</el-button> -->
<el-button v-if="scope.row.orderExceptionType=='order_superfluous_box_exception'" v-hasPermi="['ecw:exception:superfluousBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_lack_box_exception'" v-hasPermi="['ecw:exception:lackBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_pay_exception'" v-hasPermi="['ecw:exception:pay']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_miss_exception'" v-hasPermi="['ecw:exception:miss']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_superfluous_goods_exception'" v-hasPermi="['ecw:exception:superfluousGoods']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_in_water_exception'" v-hasPermi="['ecw:exception:inWater']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_damage_exception'" v-hasPermi="['ecw:exception:damaged']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_heavy_cargo_exception'" v-hasPermi="['ecw:exception:heavyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_doc_exception'" v-hasPermi="['ecw:exception:doc']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_consignor_exception'" v-hasPermi="['ecw:exception:consignor']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_other_exception'" v-hasPermi="['ecw:exception:other']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_cod_exception'" v-hasPermi="['ecw:exception:cod']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_no_quote_exception'" v-hasPermi="['ecw:exception:noQuote']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_bulky_cargo_exception'" v-hasPermi="['ecw:exception:bulkyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -181,7 +199,7 @@ ...@@ -181,7 +199,7 @@
</template> </template>
<script> <script>
import {getOrderExceptionPage} from "@/api/ecw/orderException" import {getOrderExceptionPage, exportExcel} from "@/api/ecw/orderException"
import {getTradeCityList} from '@/api/ecw/region' import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
// import { userList } from "@/api/system/user" // import { userList } from "@/api/system/user"
...@@ -302,7 +320,22 @@ export default { ...@@ -302,7 +320,22 @@ export default {
tag += this.$t('(空)') tag += this.$t('(空)')
} }
return tag return tag
} },
exportSearch(){
this.exportExcel(exportExcel, this.queryParams, this.$t('异常订单'))
},
// 通用导出函数
exportExcel(func, params, fileName = null){
this.exportLoading = true;
func(params).then(res => {
if(!fileName){
fileName = this.$t('订单')
}
this.$download.excel(res, fileName + '.xls');
}).finally(() => {
this.exportLoading = false
})
},
} }
} }
</script> </script>
This diff is collapsed.
...@@ -98,6 +98,11 @@ ...@@ -98,6 +98,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('处理人')" align="center" prop="userName" /> <el-table-column :label="$t('处理人')" align="center" prop="userName" />
<el-table-column :label="$t('创建时间')" align="center">
<template slot-scope="scope">
<span>{{parseTime(scope.row.createTime)}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('处理时间')" align="center"> <el-table-column :label="$t('处理时间')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{parseTime(scope.row.handlerTime)}}</span> <span>{{parseTime(scope.row.handlerTime)}}</span>
...@@ -106,7 +111,21 @@ ...@@ -106,7 +111,21 @@
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.orderExceptionStatus==2">{{$t('已完成')}}</el-tag> <el-tag v-if="scope.row.orderExceptionStatus==2">{{$t('已完成')}}</el-tag>
<el-button v-else size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_superfluous_box_exception'" v-hasPermi="['ecw:exception:superfluousBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_lack_box_exception'" v-hasPermi="['ecw:exception:lackBox']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_pay_exception'" v-hasPermi="['ecw:exception:pay']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_miss_exception'" v-hasPermi="['ecw:exception:miss']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_superfluous_goods_exception'" v-hasPermi="['ecw:exception:superfluousGoods']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_in_water_exception'" v-hasPermi="['ecw:exception:inWater']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_damage_exception'" v-hasPermi="['ecw:exception:damaged']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_heavy_cargo_exception'" v-hasPermi="['ecw:exception:heavyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_doc_exception'" v-hasPermi="['ecw:exception:doc']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_consignor_exception'" v-hasPermi="['ecw:exception:consignor']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_other_exception'" v-hasPermi="['ecw:exception:other']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_cod_exception'" v-hasPermi="['ecw:exception:cod']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_no_quote_exception'" v-hasPermi="['ecw:exception:noQuote']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_bulky_cargo_exception'" v-hasPermi="['ecw:exception:bulkyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
This diff is collapsed.
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.pickType" form-type="radio" formatter="number"></dict-selector> <dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.pickType" form-type="radio" formatter="number"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('提货时间')" v-if="form.pickType == 1"> <el-form-item :label="$t('提货时间')" v-if="form.pickType == 1">
<el-date-picker v-model="form.pickTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="form.pickTime" placeholder="" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<template v-if="form.pickType == 2"> <template v-if="form.pickType == 2">
...@@ -49,14 +49,14 @@ ...@@ -49,14 +49,14 @@
<el-form-item :label="$t('附件')"> <el-form-item :label="$t('附件')">
<image-upload v-model="form.attachment" /> <image-upload v-model="form.attachment" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('备注')"> <el-form-item :label="$t('备注')">
<el-input v-model="form.remark" type="textarea" placeholder=""></el-input> <el-input v-model="form.remark" type="textarea" placeholder=""></el-input>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<el-button type="primary" @click="submit">{{$t('确认放货')}}</el-button> <el-button type="primary" @click="submit">{{$t('确认放货')}}</el-button>
<el-button type="default" @click="$router.back()">{{$t('取消')}}</el-button> <el-button type="default" @click="$router.back()">{{$t('取消')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</template> </template>
...@@ -87,7 +87,8 @@ export default { ...@@ -87,7 +87,8 @@ export default {
getOrder(this.$route.query.orderId).then(res => { getOrder(this.$route.query.orderId).then(res => {
this.order = res.data this.order = res.data
this.$set(this.form, 'pickType', this.order.consigneeVO.harvestMethod) this.$set(this.form, 'pickType', this.order.consigneeVO.harvestMethod)
}) });
this.form.pickTime = new Date().format('yyyy-MM-dd hh:mm:ss');
}, },
submit(){ submit(){
create(Object.assign({orderId: this.order.orderNo}, this.form)).then(res => { create(Object.assign({orderId: this.order.orderNo}, this.form)).then(res => {
...@@ -98,4 +99,4 @@ export default { ...@@ -98,4 +99,4 @@ export default {
} }
} }
} }
</script> </script>
\ No newline at end of file
...@@ -31,7 +31,11 @@ ...@@ -31,7 +31,11 @@
:label="$t('入库货物属性')"> :label="$t('入库货物属性')">
<template v-slot="{row}"> <template v-slot="{row}">
<template v-if="row.warehouseInInfoVO"> <template v-if="row.warehouseInInfoVO">
{{$t('品牌')}}<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.feeType" /><br> {{$t('品牌')}}
<!-- 23-03-27 根据需求方要求,按照详情页一样的规则显示 -->
<template v-if="row.brandName">{{row.brandName}}</template>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" />
<!-- <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.feeType" /> --><br>
{{$t('箱数')}}:{{ row.warehouseInInfoVO.cartonsNum }}<br> {{$t('箱数')}}:{{ row.warehouseInInfoVO.cartonsNum }}<br>
{{$t('体积')}}:{{ row.warehouseInInfoVO.volume }}m³<br> {{$t('体积')}}:{{ row.warehouseInInfoVO.volume }}m³<br>
{{$t('重量')}}:{{ row.warehouseInInfoVO.weight }}Kg {{$t('重量')}}:{{ row.warehouseInInfoVO.weight }}Kg
...@@ -92,8 +96,8 @@ ...@@ -92,8 +96,8 @@
prop="address" prop="address"
:label="$t('操作')"> :label="$t('操作')">
<template v-slot="{row}"> <template v-slot="{row}">
<el-button v-if="row.originalSeaFreight" size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="showDiscountItem=row">{{$t('优惠申请')}}</el-button> <el-button v-if="row.originalSeaFreight" size="mini" type="text" v-hasPermi="['ecw:order:reduce']" @click="showDiscountItem=row">{{$t('优惠申请')}}</el-button>
<el-button v-if="row.originalSeaFreight" size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="showCommissionItem=row">{{$t('佣金规则')}}</el-button> <el-button v-if="row.originalSeaFreight" size="mini" type="text" v-hasPermi="['ecw:order:commission']" @click="showCommissionItem=row">{{$t('佣金规则')}}</el-button>
<el-button v-if="row.originalSeaFreight" size="mini" type="text" v-hasPermi="['ecw:order:discount']" @click="showAllowanceItem=row">{{$t('管理折扣')}}</el-button> <el-button v-if="row.originalSeaFreight" size="mini" type="text" v-hasPermi="['ecw:order:discount']" @click="showAllowanceItem=row">{{$t('管理折扣')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -105,8 +109,8 @@ ...@@ -105,8 +109,8 @@
1.海运整柜、海运拼柜显示重货优惠 1,2 1.海运整柜、海运拼柜显示重货优惠 1,2
2.空运专线、海空联运显示泡货优惠 3,4 2.空运专线、海空联运显示泡货优惠 3,4
--> -->
<el-button type="primary" @click="showPreferentialType=4" v-if="order.transportId === 1 || order.transportId === 2">{{$t('申请重货优惠')}}</el-button> <el-button v-hasPermi="['ecw:order:heavy']" type="primary" @click="showPreferentialType=4" v-if="order.transportId === 1 || order.transportId === 2">{{$t('申请重货优惠')}}</el-button>
<el-button type="primary" @click="showPreferentialType=5" v-else>{{$t('申请泡货优惠')}}</el-button> <el-button v-hasPermi="['ecw:order:bulky']" type="primary" @click="showPreferentialType=5" v-else>{{$t('申请泡货优惠')}}</el-button>
<el-button type="primary" @click="$tab.closePage()">{{$t('关闭窗口')}}</el-button> <el-button type="primary" @click="$tab.closePage()">{{$t('关闭窗口')}}</el-button>
</div> </div>
</el-card> </el-card>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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