Commit b706f640 authored by dragondean@qq.com's avatar dragondean@qq.com

Merge branch 'dev'

parents 96f9d231 8da5c2a3
捷道项目管理后台-前端 捷道项目管理后台-前端
后台:
本地运行:npm run dev
测试环境:npm run build:dev
生产环境:npm run build:prod
\ No newline at end of file
...@@ -79,7 +79,7 @@ export default { ...@@ -79,7 +79,7 @@ export default {
data() { data() {
return { return {
unreadMessage, unreadMessage,
locale: getLocale(), // locale: getLocale(),
// 枚举 // 枚举
// langDatas: LangEnum.LANG, // langDatas: LangEnum.LANG,
notReadTotal:0,//要去取VUEX里面的未读数据总数,我不会,登录之后要调得到当前人未读记录总数接口放到VUEX中 notReadTotal:0,//要去取VUEX里面的未读数据总数,我不会,登录之后要调得到当前人未读记录总数接口放到VUEX中
...@@ -87,8 +87,10 @@ export default { ...@@ -87,8 +87,10 @@ export default {
} }
}, },
created() { created() {
setInterval(() => {
this.$store.dispatch('getNotMessage'); this.$store.dispatch('getNotMessage');
this.$store.dispatch('getToDoList'); this.$store.dispatch('getToDoList');
}, 3000)
}, },
components: { components: {
Breadcrumb, Breadcrumb,
...@@ -128,7 +130,6 @@ export default { ...@@ -128,7 +130,6 @@ export default {
matterNum(){ matterNum(){
return this.$store.state.user.matterNum return this.$store.state.user.matterNum
} }
}, },
watch:{ watch:{
lang(val){ lang(val){
......
...@@ -255,7 +255,7 @@ export const constantRoutes = [ ...@@ -255,7 +255,7 @@ export const constantRoutes = [
path: '/customerCommissionInfo/:dictId(\\d+)', path: '/customerCommissionInfo/:dictId(\\d+)',
component: (resolve) => require(['@/views/ecw/customerCommissionInfo/index'], resolve), component: (resolve) => require(['@/views/ecw/customerCommissionInfo/index'], resolve),
name: 'customerCommissionInfo', name: 'customerCommissionInfo',
meta: {title: '佣金详情', icon: '', activeMenu: '/customer/customerCommissionInfo'} meta: {title: '佣金设置', icon: '', activeMenu: '/customer/customerCommissionInfo'}
}, },
{ {
path: 'edit/:customerId(\\d+)', path: 'edit/:customerId(\\d+)',
......
...@@ -34,10 +34,10 @@ const user = { ...@@ -34,10 +34,10 @@ const user = {
SET_PERMISSIONS: (state, permissions) => { SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions state.permissions = permissions
}, },
NOt_MESSAGE:(state, notMessage)=>{ SET_UNREAD:(state, notMessage)=>{
state.notMessage = notMessage; state.notMessage = notMessage;
}, },
GET_MAATER:(state, matterNum) => { SET_TODO:(state, matterNum) => {
state.matterNum = matterNum; state.matterNum = matterNum;
} }
}, },
...@@ -161,7 +161,7 @@ const user = { ...@@ -161,7 +161,7 @@ const user = {
getNotMessage({commit}){ getNotMessage({commit}){
return new Promise((resolve, reject) =>{ return new Promise((resolve, reject) =>{
getNotReadInternalMessageTotal().then((r)=>{ getNotReadInternalMessageTotal().then((r)=>{
commit('NOt_MESSAGE',r.data); commit('SET_UNREAD',r.data);
resolve() resolve()
}).catch(error =>{ }).catch(error =>{
reject(error); reject(error);
...@@ -172,7 +172,7 @@ const user = { ...@@ -172,7 +172,7 @@ const user = {
getToDoList({commit}){ getToDoList({commit}){
return new Promise((resolve,reject) =>{ return new Promise((resolve,reject) =>{
taskTodoCount().then(r => { taskTodoCount().then(r => {
commit('GET_MAATER',r.data) commit('SET_TODO',r.data)
resolve() resolve()
}).catch(err => { }).catch(err => {
reject(err) reject(err)
......
...@@ -12,6 +12,7 @@ export const DICT_TYPE = { ...@@ -12,6 +12,7 @@ export const DICT_TYPE = {
AUDIT_STATUS: 'audit_status', AUDIT_STATUS: 'audit_status',
ADVANCE_STATUS: 'advance_status', ADVANCE_STATUS: 'advance_status',
BOX_SHIPMENT_STATUS: 'box_shipment_status', BOX_SHIPMENT_STATUS: 'box_shipment_status',
BOX_SEA_AIR_SHIPMENT_STATUS: 'shipment_sea_air_state',
// ========== SYSTEM 模块 ========== // ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX: 'system_user_sex', SYSTEM_USER_SEX: 'system_user_sex',
......
...@@ -568,14 +568,14 @@ export default { ...@@ -568,14 +568,14 @@ export default {
if (pass) { if (pass) {
approveTask(data).then(response => { approveTask(data).then(response => {
let p = this.matterNum let p = this.matterNum
this.$store.commit('GET_MAATER', --p) //this.$store.commit('GET_MAATER', --p)
this.$modal.msgSuccess("审批通过成功!"); this.$modal.msgSuccess("审批通过成功!");
this.getDetail(); // 获得最新详情 this.getDetail(); // 获得最新详情
}); });
} else { } else {
rejectTask(data).then(response => { rejectTask(data).then(response => {
let p = this.matterNum let p = this.matterNum
this.$store.commit('GET_MAATER', --p) //this.$store.commit('GET_MAATER', --p)
this.$modal.msgSuccess("审批不通过成功!"); this.$modal.msgSuccess("审批不通过成功!");
this.getDetail(); // 获得最新详情 this.getDetail(); // 获得最新详情
}); });
...@@ -599,7 +599,7 @@ export default { ...@@ -599,7 +599,7 @@ export default {
updateTaskAssignee(this.updateAssignee.form).then(response => { updateTaskAssignee(this.updateAssignee.form).then(response => {
this.$modal.msgSuccess("转派任务成功!"); this.$modal.msgSuccess("转派任务成功!");
let p = this.matterNum let p = this.matterNum
this.$store.commit('GET_MAATER', --p) // this.$store.commit('GET_MAATER', --p)
this.updateAssignee.open = false; this.updateAssignee.open = false;
this.getDetail(); // 获得最新详情 this.getDetail(); // 获得最新详情
}); });
......
...@@ -2,34 +2,37 @@ ...@@ -2,34 +2,37 @@
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="任务名称" prop="name"> <el-form-item :label="$t('流程编号')" prop="name">
<el-input v-model="queryParams.name" placeholder="任务名称" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.processDefinitionId" :placeholder="$t('流程编号')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="流程分类" prop="category"> <el-form-item :label="$t('流程名称')" prop="name">
<el-select v-model="queryParams.category" placeholder="请选择流程分类" clearable> <el-input v-model="queryParams.name" :placeholder="$t('任务名称')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('流程分类')" prop="category">
<el-select v-model="queryParams.category" :placeholder="$t('请选择流程分类')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="提交时间"> <el-form-item :label="$t('提交时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> type="daterange" range-separator="-" start-:placeholder="$t('开始日期')" end-:placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item :label="$t('状态')" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable> <el-select v-model="queryParams.status" :placeholder="$t('请选择状态')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="结果" prop="result"> <el-form-item :label="$t('结果')" prop="result">
<el-select v-model="queryParams.result" placeholder="请选择流结果" clearable> <el-select v-model="queryParams.result" :placeholder="$t('请选择流结果')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -37,54 +40,55 @@ ...@@ -37,54 +40,55 @@
<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="['bpm:process-instance:query']">发起流程</el-button> v-hasPermi="['bpm:process-instance:query']">{{$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"> <el-table v-loading="loading" :data="list">
<el-table-column label="编号" align="center" prop="id" width="320" /> <el-table-column :label="$t('流程编号')" align="center" prop="id" width="320" />
<el-table-column label="任务名称" align="center" prop="name" /> <el-table-column :label="$t('流程名称')" align="center" prop="name" />
<el-table-column label="流程分类" align="center" prop="category"> <el-table-column :label="$t('业务编号')" align="center" prop="businessNo" />
<el-table-column :label="$t('流程分类')" align="center" prop="category">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category" /> <dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="当前审批任务" align="center" prop="tasks"> <el-table-column :label="$t('当前审批节点')" align="center" prop="tasks">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-for="(task, taskIndex) in scope.row.tasks" type="text" @click="handleFormDetail(task.id)" :key="taskIndex"> <el-button v-for="(task, taskIndex) in scope.row.tasks" type="text" @click="handleFormDetail(task.id)" :key="taskIndex">
<span>{{ task.name }}</span> <span>{{ task.name }}</span>
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" 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.BPM_PROCESS_INSTANCE_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="结果" align="center" prop="result"> <el-table-column :label="$t('结果')" align="center" prop="result">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/> <dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="提交时间" align="center" prop="createTime" width="180"> <el-table-column :label="$t('提交时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="结束时间" align="center" prop="createTime" width="180"> <el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime) }}</span> <span>{{ parseTime(scope.row.endTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" 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="120px">
<template slot-scope="scope"> <div slot-scope="scope" style="white-space:nowrap">
<el-button type="text" size="small" icon="el-icon-delete" v-if="scope.row.result === 1" <el-button type="text" size="small" icon="el-icon-delete" v-if="scope.row.result === 1"
v-hasPermi="['bpm:process-instance:cancel']" @click="handleCancel(scope.row)">取消</el-button> v-hasPermi="['bpm:process-instance:cancel']" @click="handleCancel(scope.row)">{{$t('取消')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)"
v-hasPermi="['bpm:process-instance:query']">详情</el-button> v-hasPermi="['bpm:process-instance:query']">{{$t('详情')}}</el-button>
</template> </div>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
...@@ -160,17 +164,17 @@ export default { ...@@ -160,17 +164,17 @@ export default {
/** 取消按钮操作 */ /** 取消按钮操作 */
handleCancel(row) { handleCancel(row) {
const id = row.id; const id = row.id;
this.$prompt('请输入取消原因?', "取消流程", { this.$prompt(this.$t('请输入取消原因?'), this.$t("取消流程"), {
type: 'warning', type: 'warning',
confirmButtonText: "确定", confirmButtonText: this.$t("确定"),
cancelButtonText: "取消", cancelButtonText: this.$t("取消"),
inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格 inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格
inputErrorMessage: "取消原因不能为空", inputErrorMessage: this.$t("取消原因不能为空"),
}).then(({ value }) => { }).then(({ value }) => {
return cancelProcessInstance(id, value); return cancelProcessInstance(id, value);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("取消成功"); this.$modal.msgSuccess(this.$t("取消成功"));
}) })
}, },
/** 处理详情按钮 */ /** 处理详情按钮 */
......
...@@ -2,21 +2,21 @@ ...@@ -2,21 +2,21 @@
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="任务编号" prop="processId"> <el-form-item :label="$t('流程编号')" prop="processId">
<el-input v-model="queryParams.instanceId" placeholder="请输入任务编号" clearable/> <el-input v-model="queryParams.instanceId" :placeholder="$t('请输入流程编号')" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="流程分类" prop="processName"> <el-form-item :label="$t('流程名称')" prop="processName">
<el-select v-model="queryParams.categoryId" placeholder="请选择流程分类" clearable> <el-input v-model="queryParams.processName" :placeholder="$t('请输入任务名称')" clearable/>
</el-form-item>
<el-form-item :label="$t('流程分类')" prop="processName">
<el-select v-model="queryParams.categoryId" :placeholder="$t('请选择流程分类')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务名称" prop="processName">
<el-input v-model="queryParams.processName" placeholder="请输入任务名称" clearable/>
</el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"/> type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')"/>
</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>
...@@ -26,23 +26,33 @@ ...@@ -26,23 +26,33 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="任务编号" align="center" prop="instanceId" width="320"/> <el-table-column :label="$t('流程编号')" align="center" prop="instanceId" width="320"/>
<el-table-column label="流程分类" align="center" prop="categoryId"> <el-table-column :label="$t('流程名称')" align="center" prop="processName"/>
<!-- <el-table-column :label="$t('业务编号')" align="center" prop="processName"/> -->
<el-table-column :label="$t('流程分类')" align="center" prop="categoryId">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.categoryId" /> <dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.categoryId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="任务名称" align="center" prop="processName"/> <!-- <el-table-column :label="$t('当前审批节点')" align="center" prop="originatorName"/>
<el-table-column label="流程发起人" align="center" prop="originatorName"/> <el-table-column :label="$t('状态')" align="center" prop="originatorName"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column :label="$t('结果')" align="center" prop="originatorName"/> -->
<!-- <el-table-column :label="$t('流程发起人')" align="center" prop="originatorName"/> -->
<el-table-column :label="$t('提交时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</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">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleAudit(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleAudit(scope.row)"
v-hasPermi="['bpm:task:query']">详情 v-hasPermi="['bpm:task:query']">{{$t('详情')}}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -3,29 +3,28 @@ ...@@ -3,29 +3,28 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<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="编号" prop="processInstanceId"> <el-form-item label="流程编号" prop="processInstanceId">
<el-input v-model="queryParams.processInstanceId" :placeholder="$t('编号')" clearable <el-input v-model="queryParams.processInstanceId" :placeholder="$t('流程编号')" clearable
@keyup.enter.native="handleQuery"/> @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('流程名')" prop="name"> <el-form-item :label="$t('流程名')" prop="name">
<el-input v-model="queryParams.name" :placeholder="$t('流程名')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.name" :placeholder="$t('流程名')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('流程分类')" prop="category"> <el-form-item :label="$t('流程分类')" prop="category">
<el-select v-model="queryParams.category" :placeholder="$t('请选择流程分类')" clearable> <el-select v-model="queryParams.category" :placeholder="$t('请选择流程分类')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable
@keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('提交时间')"> <el-form-item :label="$t('提交时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"/> :end-placeholder="$t('结束日期')"/>
</el-form-item> </el-form-item>
<<!-- el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable
@keyup.enter.native="handleQuery"/>
</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>
...@@ -34,19 +33,20 @@ ...@@ -34,19 +33,20 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('编号')" align="center" prop="id" width="320" fixed/> <el-table-column :label="$t('流程编号')" align="center" prop="processInstance.id" width="320" fixed/>
<el-table-column :label="$t('流程名')" align="center" prop="processInstance.name" width="200"/> <el-table-column :label="$t('流程名')" align="center" prop="processInstance.name" width="200"/>
<el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/> <el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/>
<el-table-column :label="$t('流程分类')" align="center" prop="category" width="200"> <el-table-column :label="$t('流程分类')" align="center" prop="category" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/> <dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('当前审批节点')" align="center" prop="name" width="200"/> <el-table-column :label="$t('当前审批节点')" align="center" prop="name" width="200"/>
<!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" > <!-- <el-table-column :label="$t('状态')" align="center" prop="" width="200" >
缺少字段 缺少字段
</el-table-column> --> </el-table-column> -->
<el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname" width="120"/> <!-- <el-table-column :label="$t('流程发起人')" align="center" prop="processInstance.startUserNickname" width="120"/>-->
<el-table-column :label="$t('结果')" align="center" prop="result"> <el-table-column :label="$t('结果')" align="center" prop="result">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/> <dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/>
......
...@@ -2,31 +2,28 @@ ...@@ -2,31 +2,28 @@
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="流程编号" prop="processInstanceId"> <el-form-item :label="$t('流程编号')" prop="processInstanceId">
<el-input v-model="queryParams.processInstanceId" :placeholder="$t('流程编号')" clearable <el-input v-model="queryParams.processInstanceId" :placeholder="$t('流程编号')" clearable
@keyup.enter.native="handleQuery"/> @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('任务名称')" prop="name"> <el-form-item :label="$t('流程名称')" prop="name">
<el-input v-model="queryParams.name" :placeholder="$t('任务名称')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.name" :placeholder="$t('任务名称')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('流程分类')" prop="category"> <el-form-item :label="$t('流程分类')" prop="category">
<el-select v-model="queryParams.category" :placeholder="$t('请选择流程分类')" clearable> <el-select v-model="queryParams.category" :placeholder="$t('请选择流程分类')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable
@keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('提交时间')"> <el-form-item :label="$t('提交时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"/> :end-placeholder="$t('结束日期')"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务编号')" prop="businessNo">
<el-input v-model="queryParams.businessNo" :placeholder="$t('请输入业务编号')" clearable
@keyup.enter.native="handleQuery"/>
</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>
...@@ -36,44 +33,51 @@ ...@@ -36,44 +33,51 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('任务编号')" align="center" prop="id" width="320"/> <el-table-column :label="$t('流程编号')" align="center" prop="processInstance.id" width="320"/>
<el-table-column :label="$t('任务名称')" align="center" prop="processInstance.name" width="320"/> <el-table-column :label="$t('流程名称')" align="center" prop="processInstance.name" width="320"/>
<el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/>
<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">
<dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/> <dict-tag :type="DICT_TYPE.BPM_MODEL_CATEGORY" :value="scope.row.category"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('业务编号')" align="center" prop="businessNo"/>
<el-table-column :label="$t('当前审批节点')" align="center" prop="name"/> <el-table-column :label="$t('当前审批节点')" align="center" prop="name"/>
<el-table-column :label="$t('状态')" align="center" prop="version" width="80"> <!-- <el-table-column :label="$t('状态')" align="center" prop="version" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="success" v-if="scope.row.suspensionState === 1">{{ $t('激活') }}</el-tag> <el-tag type="success" v-if="scope.row.suspensionState === 1">{{ $t('激活') }}</el-tag>
<el-tag type="warning" v-if="scope.row.suspensionState === 2">{{ $t('挂起') }}</el-tag> <el-tag type="warning" v-if="scope.row.suspensionState === 2">{{ $t('挂起') }}</el-tag>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column :label="$t('结果')" align="center" prop="result"> <!-- <el-table-column :label="$t('结果')" align="center" prop="result">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/> <dict-tag :type="DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT" :value="scope.row.result"/>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column :label="$t('提交时间')" align="center" prop="createTime" width="180"> <el-table-column :label="$t('提交时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180"> <!-- <el-table-column :label="$t('结束时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<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">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleCancel(scope.row)"
v-hasPermi="['bpm:task:update']">{{ $t('取消') }}
</el-button> -->
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleAudit(scope.row)"
v-hasPermi="['bpm:task:update']">{{ $t('详情') }}
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleAudit(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleAudit(scope.row)"
v-hasPermi="['bpm:task:update']">{{ $t('审批') }} v-hasPermi="['bpm:task:update']">{{ $t('审批') }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -86,7 +90,7 @@ ...@@ -86,7 +90,7 @@
<script> <script>
import {getTodoTaskPage} from '@/api/bpm/task' import {getTodoTaskPage} from '@/api/bpm/task'
import { cancelProcessInstance } from "@/api/bpm/processInstance";
export default { export default {
name: "Todo", name: "Todo",
components: {}, components: {},
...@@ -142,6 +146,21 @@ export default { ...@@ -142,6 +146,21 @@ export default {
handleAudit(row) { handleAudit(row) {
this.$router.push({path: "/bpm/process-instance/detail", query: {id: row.processInstance.id}}); this.$router.push({path: "/bpm/process-instance/detail", query: {id: row.processInstance.id}});
}, },
handleCancel(row) {
const id = row.id;
this.$prompt(this.$t('请输入取消原因?'), this.$t("取消流程"), {
type: 'warning',
confirmButtonText: this.$t("确定"),
cancelButtonText: this.$t("取消"),
inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格
inputErrorMessage: this.$t("取消原因不能为空"),
}).then(({ value }) => {
return cancelProcessInstance(id, value);
}).then(() => {
this.getList();
this.$modal.msgSuccess(this.$t("取消成功"));
})
},
} }
}; };
</script> </script>
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<div class="card-panel-text"> <div class="card-panel-text">
{{$t('待办事项')}} {{$t('待办事项')}}
</div> </div>
<count-to :start-val="0" :end-val="data.todoCount" :duration="3200" class="card-panel-num" /> <count-to :start-val="0" :end-val="todoCount" :duration="3200" class="card-panel-num" />
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -72,13 +72,15 @@ ...@@ -72,13 +72,15 @@
import CountTo from 'vue-count-to' import CountTo from 'vue-count-to'
import {panelData} from '@/api/system/pannel' import {panelData} from '@/api/system/pannel'
import {checkPermi} from '@/utils/permission' import {checkPermi} from '@/utils/permission'
import {taskTodoCount} from '@/api/bpm/task'
export default { export default {
components: { components: {
CountTo CountTo
}, },
data(){ data(){
return { return {
data: null data: null,
todoCount: 0
} }
}, },
methods: { methods: {
...@@ -91,6 +93,9 @@ export default { ...@@ -91,6 +93,9 @@ export default {
panelData().then(res => { panelData().then(res => {
this.data = res.data this.data = res.data
}) })
taskTodoCount().then(res => {
this.todoCount = res.data
})
} }
} }
</script> </script>
......
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
size="small" size="small"
> >
<el-option <el-option
v-for="dict in this.getDictDatas(DICT_TYPE.BOX_ORDER_SHIPMENT_STATE)" v-for="dict in this.getDictDatas(DICT_TYPE.BOX_SEA_AIR_SHIPMENT_STATUS)"
:key="dict.value" :key="dict.value"
:label="$l(dict, 'label')" :label="$l(dict, 'label')"
:value="dict.value" :value="dict.value"
...@@ -481,6 +481,9 @@ export default { ...@@ -481,6 +481,9 @@ export default {
this.$set(this.dialogCfg, "width", "600px"); this.$set(this.dialogCfg, "width", "600px");
this.$set(this.dialogCfg, "fullscreen", false); this.$set(this.dialogCfg, "fullscreen", false);
this.$set(this.dialogCfg, "open", true); this.$set(this.dialogCfg, "open", true);
this.currRow = {
transportType: "4",
};
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
{{getCabinetLabel(shipmentObj.cabinetId)}} {{getCabinetLabel(shipmentObj.cabinetId)}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('状态')"> <el-descriptions-item :label="$t('状态')">
{{getBoxStatus(shipmentObj)}} {{shipmentObj.shipmentStatusText}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总计')"> <el-descriptions-item :label="$t('总计')">
{{getBoxSum(shipmentObj.boxStatistics)}} {{getBoxSum(shipmentObj.boxStatistics)}}
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="readonly">
<el-form-item label="类型" prop="type" :rules='[{required: true, message: "请选择类型"}]'> <el-form-item :label="$t('类型')" prop="type" :rules='[{required: true, message: $t("请选择类型")}]'>
<dict-selector <dict-selector
:type="DICT_TYPE.ECW_COUPON_TYPE" :type="DICT_TYPE.ECW_COUPON_TYPE"
v-model.number="form.type" v-model.number="form.type"
placeholder="请选择类型" :placeholder="$t('请选择类型')"
:disabled="!!form.couponId" :disabled="!!form.couponId"
/> />
</el-form-item> </el-form-item>
<el-form-item label="标题中文" prop="titleZh" :rules='[{required: true, message: "不能为空"}]'> <el-form-item :label="$t('标题中文')" prop="titleZh" :rules='[{required: true, message: $t("不能为空")}]'>
<el-input <el-input
v-model="form.titleZh" v-model="form.titleZh"
placeholder="请输入标题-中文" :placeholder="$t('请输入中文标题')"
/> />
</el-form-item> </el-form-item>
<el-form-item label="标题英文" prop="titleEn" :rules='[{required: true, message: "不能为空"}]'> <el-form-item :label="$t('标题英文')" prop="titleEn" :rules='[{required: true, message: $t("不能为空")}]'>
<el-input <el-input
v-model="form.titleEn" v-model="form.titleEn"
placeholder="请输入标题-英文" :placeholder="$t('请输入英文标题')"
/> />
</el-form-item> </el-form-item>
<el-form-item label="有效期" prop="titleEn"> <el-form-item :label="$t('有效期')" prop="titleEn">
<el-date-picker <el-date-picker
clearable clearable
v-model="form.startTime" v-model="form.startTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择开始时间" :placeholder="$t('选择开始时间')"
/> />
~ ~
<el-date-picker <el-date-picker
...@@ -35,27 +35,27 @@ ...@@ -35,27 +35,27 @@
v-model="form.endTime" v-model="form.endTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择结束时间" :placeholder="$t('选择结束时间')"
/> />
注意:留空则表示永久有效 {{$t('注意:留空则表示永久有效')}}
</el-form-item> </el-form-item>
<!--1:优惠卷 2:金额-满减 3:方数-满减 4 折扣 5优惠 6 特价 7区间价--> <!--1:优惠卷 2:金额-满减 3:方数-满减 4 折扣 5优惠 6 特价 7区间价-->
<el-form-item label="优惠券金额" v-if="form.type == 1"> <el-form-item :label="$t('优惠券金额')" v-if="form.type == 1">
<div class="fee-item"> <div class="fee-item">
<el-input v-model="form.reduceAmount" style="width:100px" /> <el-input v-model="form.reduceAmount" style="width:100px" />
<selector v-model="form.reduceCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <selector v-model="form.reduceCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<span></span> <span>{{$t('')}}</span>
<el-input type="number" v-model="form.cashCondition" style="width:100px" /> <el-input type="number" v-model="form.cashCondition" style="width:100px" />
<span>使用</span> <span>{{$t('使用')}}</span>
<span style="color:red">注意:留空则表示不受满金额限制</span> <span style="color:red">{{$t('注意:留空则表示不受满金额限制')}}</span>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="*运费" v-if="[2,3,4,5,6,7].indexOf(form.type) > -1"> <el-form-item label="*运费" v-if="[2,3,4,5,6,7].indexOf(form.type) > -1">
<div class="fee-item" v-for="(item, index) in fee[1]" :key="index"> <div class="fee-item" v-for="(item, index) in fee[1]" :key="index">
<template v-if="[1,2,3,4,5].indexOf(form.type) > -1"> <template v-if="[1,2,3,4,5].indexOf(form.type) > -1">
{{$t('')}}
<el-input v-model="item.fullAmount" type="number" style="width:100px" /> <el-input v-model="item.fullAmount" type="number" style="width:100px" />
<!-- <el-select v-model="item.fullCurrencyId" style="width:100px" > <!-- <el-select v-model="item.fullCurrencyId" style="width:100px" >
<el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" /> <el-option v-for="item in currencyList" :key="item.id" :label="item.titleZh" :value="item.id" />
...@@ -63,10 +63,10 @@ ...@@ -63,10 +63,10 @@
<selector v-if="[4,5].indexOf(form.type) > -1" v-model="item.fullCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <selector v-if="[4,5].indexOf(form.type) > -1" v-model="item.fullCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<selector v-if="form.type == 2" v-model="item.combUnit" :options="combUnitList" label-field="label" value-field="value" defaultable style="width:100px" /> <selector v-if="form.type == 2" v-model="item.combUnit" :options="combUnitList" label-field="label" value-field="value" defaultable style="width:100px" />
<span v-if="[2].indexOf(form.type) > -1"></span> <span v-if="[2].indexOf(form.type) > -1">{{$t('')}}</span>
<span v-if="[4].indexOf(form.type) > -1">折扣率</span> <span v-if="[4].indexOf(form.type) > -1">{{$t('折扣率')}}</span>
<span v-if="[5].indexOf(form.type) > -1"></span> <span v-if="[5].indexOf(form.type) > -1">{{$t('')}}</span>
<el-input v-if="[2,3,4].indexOf(form.type) > -1" type="number" v-model="item.reduceAmount" style="width:100px" /> <el-input v-if="[2,3,4].indexOf(form.type) > -1" type="number" v-model="item.reduceAmount" style="width:100px" />
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
> <el-input v-model="item.startAmount" type="number" style="width:100px" /> > <el-input v-model="item.startAmount" type="number" style="width:100px" />
<el-input v-model="item.endAmount" type="number" style="width:100px" /> <el-input v-model="item.endAmount" type="number" style="width:100px" />
<selector v-model="item.startAndEndCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <selector v-model="item.startAndEndCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
价格 {{$t('价格')}}
</template> </template>
<el-input v-if="[5,6,7].indexOf(form.type) > -1" type="number" v-model="item.netReceiptsAmount" style="width:100px" /> <el-input v-if="[5,6,7].indexOf(form.type) > -1" type="number" v-model="item.netReceiptsAmount" style="width:100px" />
...@@ -93,18 +93,18 @@ ...@@ -93,18 +93,18 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="清关费" v-if="[2,3,4,5,6,7].indexOf(form.type) > -1"> <el-form-item :label="$t('清关费')" v-if="[2,3,4,5,6,7].indexOf(form.type) > -1">
<div class="fee-item" v-for="(item, index) in fee[2]" :key="index"> <div class="fee-item" v-for="(item, index) in fee[2]" :key="index">
<template v-if="[1,2,3,4,5].indexOf(form.type) > -1"> <template v-if="[1,2,3,4,5].indexOf(form.type) > -1">
{{$t('')}}
<el-input v-model="item.fullAmount" type="number" style="width:100px" /> <el-input v-model="item.fullAmount" type="number" style="width:100px" />
<selector v-if="[2,4,5].indexOf(form.type) > -1" v-model="item.fullCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <selector v-if="[2,4,5].indexOf(form.type) > -1" v-model="item.fullCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<selector v-if="form.type == 3" v-model="item.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <selector v-if="form.type == 3" v-model="item.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
<span v-if="[2].indexOf(form.type) > -1"></span> <span v-if="[2].indexOf(form.type) > -1">{{$t('')}}</span>
<span v-if="[4].indexOf(form.type) > -1">折扣率</span> <span v-if="[4].indexOf(form.type) > -1">{{$t('折扣率')}}</span>
<span v-if="[5].indexOf(form.type) > -1"></span> <span v-if="[5].indexOf(form.type) > -1">{{$t('')}}</span>
<el-input v-if="[2,3,4].indexOf(form.type) > -1" type="number" v-model="item.reduceAmount" style="width:100px" /> <el-input v-if="[2,3,4].indexOf(form.type) > -1" type="number" v-model="item.reduceAmount" style="width:100px" />
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
> <el-input v-model="item.startAmount" type="number" style="width:100px" /> > <el-input v-model="item.startAmount" type="number" style="width:100px" />
<el-input v-model="item.endAmount" type="number" style="width:100px" /> <el-input v-model="item.endAmount" type="number" style="width:100px" />
<Selector v-model="item.startAndEndCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" /> <Selector v-model="item.startAndEndCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
价格 {{$t('价格')}}
</template> </template>
<el-input v-if="[5,6,7].indexOf(form.type) > -1" type="number" v-model="item.netReceiptsAmount" style="width:100px" /> <el-input v-if="[5,6,7].indexOf(form.type) > -1" type="number" v-model="item.netReceiptsAmount" style="width:100px" />
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
</el-form-item> </el-form-item>
<el-form-item label="叠加优惠" prop="discountDetailed"> <el-form-item :label="$t('叠加优惠')" prop="discountDetailed">
<div class="coupon-list"> <div class="coupon-list">
<el-checkbox-group v-model="couponIds"> <el-checkbox-group v-model="couponIds">
<div class="coupon-item" v-for="item in availCouponList" :key="item.couponId"> <div class="coupon-item" v-for="item in availCouponList" :key="item.couponId">
...@@ -140,12 +140,12 @@ ...@@ -140,12 +140,12 @@
</div> </div>
</el-checkbox-group> </el-checkbox-group>
<div v-if="!availCouponList.length" style="padding:50px"> <div v-if="!availCouponList.length" style="padding:50px">
暂无可用优惠券 {{$t('暂无可用优惠券')}}
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="同类优惠不叠加" :label="$t('同类优惠不叠加')"
prop="isSimilarSuperposition" prop="isSimilarSuperposition"
v-if="form.type != 1" v-if="form.type != 1"
> >
...@@ -154,19 +154,19 @@ ...@@ -154,19 +154,19 @@
:type="DICT_TYPE.ECW_YESNO" :type="DICT_TYPE.ECW_YESNO"
v-model="form.isSimilarSuperposition" v-model="form.isSimilarSuperposition"
formatter="bool" formatter="bool"
placeholder="请选择类型" :placeholder="$t('请选择类型')"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="可叠加优惠劵列表" prop="couponIds" v-if="form.type != 1"> <!-- <el-form-item :label="$t('可叠加优惠劵列表')" prop="couponIds" v-if="form.type != 1">
<el-input <el-input
v-model="form.couponIds" v-model="form.couponIds"
placeholder="请输入可叠加优惠劵列表" :placeholder="$t('请输入可叠加优惠劵列表')"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item <el-form-item
label="适用用户" :label="$t('适用用户')"
prop="suitableUserType" prop="suitableUserType"
> >
<dict-selector v-if="form.type != 1" :type="DICT_TYPE.ECW_SUITABLE_USER_TYPE" v-model="form.suitableUserType" defaultable /> <dict-selector v-if="form.type != 1" :type="DICT_TYPE.ECW_SUITABLE_USER_TYPE" v-model="form.suitableUserType" defaultable />
...@@ -174,7 +174,7 @@ ...@@ -174,7 +174,7 @@
<customer-contacts-selector v-if="showCustomerSelector" v-model="form.customerIds" style="margin-top:5px" /> <customer-contacts-selector v-if="showCustomerSelector" v-model="form.customerIds" style="margin-top:5px" />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="适用线路类型" :label="$t('适用线路类型')"
prop="suitableLineType" prop="suitableLineType"
v-if="form.type != 1" v-if="form.type != 1"
> >
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
<routers-selector v-if="showRouterSelector" v-model="form.lineIds" style="margin-top:5px" /> <routers-selector v-if="showRouterSelector" v-model="form.lineIds" style="margin-top:5px" />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="适用商品" :label="$t('适用商品')"
prop="prodIds" prop="prodIds"
v-if="form.type != 1" v-if="form.type != 1"
> >
...@@ -190,50 +190,51 @@ ...@@ -190,50 +190,51 @@
<products-selector v-model="form.prodIds" /> <products-selector v-model="form.prodIds" />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="订单属性" :label="$t('订单属性')"
prop="orderAttr" prop="orderAttr"
v-if="form.type != 1" v-if="form.type != 1"
> >
<dict-selector form-type="checkbox" :type="DICT_TYPE.ECW_ORDER_ATTR" v-model="form.orderAttrArr" multiple /> <dict-selector form-type="checkbox" :type="DICT_TYPE.ECW_ORDER_ATTR" v-model="form.orderAttrArr" multiple />
</el-form-item> </el-form-item>
<!-- <el-form-item label="是否发送站内信" prop="isSiteContent"> <!-- <el-form-item :label="$t('是否发送站内信')" prop="isSiteContent">
<dict-selector formatter="bool" form-type="radio" :type="DICT_TYPE.ECW_YESNO" v-model="form.isSiteContent" :formater="Boolean" /> <dict-selector formatter="bool" form-type="radio" :type="DICT_TYPE.ECW_YESNO" v-model="form.isSiteContent" :formater="Boolean" />
</el-form-item> --> </el-form-item> -->
<el-form-item label="中文内容" prop="contentZh" :rules='[{required: true, message: "不能为空"}]'> <el-form-item :label="$t('中文内容')" prop="contentZh" :rules='[{required: true, message: $t("不能为空")}]'>
<editor v-model="form.contentZh" :min-height="192" /> <editor v-model="form.contentZh" :min-height="192" />
</el-form-item> </el-form-item>
<el-form-item label="英文内容" prop="contentEn" :rules='[{required: true, message: "不能为空"}]'> <el-form-item :label="$t('英文内容')" prop="contentEn" :rules='[{required: true, message: $t("不能为空")}]'>
<editor v-model="form.contentEn" :min-height="192" /> <editor v-model="form.contentEn" :min-height="192" />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="品牌" :label="$t('品牌')"
prop="brand" prop="brand"
v-if="form.type != 1" v-if="form.type != 1"
> >
<dict-selector form-type="checkbox" :type="DICT_TYPE.BRAND_REG_TYPE" v-model="form.brandArr" multiple /> <dict-selector form-type="checkbox" :type="DICT_TYPE.BRAND_REG_TYPE" v-model="form.brandArr" multiple />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="是否控货" :label="$t('是否控货')"
prop="isCargoControl" prop="isCargoControl"
v-if="form.type != 1" v-if="form.type != 1"
> >
<dict-selector form-type="checkbox" :type="DICT_TYPE.ECW_YESNO" v-model="form.isCargoControlArr" multiple /> <dict-selector form-type="checkbox" :type="DICT_TYPE.ECW_YESNO" v-model="form.isCargoControlArr" multiple />
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="单证报关" :label="$t('单证报关')"
prop="documentDeclaration" prop="documentDeclaration"
v-if="form.type != 1" v-if="form.type != 1"
> >
<dict-selector form-type="checkbox" :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.documentDeclarationArr" multiple /> <dict-selector form-type="checkbox" :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.documentDeclarationArr" multiple />
</el-form-item> </el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm(0)">保 存</el-button>
<el-button type="primary" @click="submitForm(1)">发 布</el-button>
<el-button @click="$router.back()">返 回</el-button>
<el-button type="default" @click="reset">重 置</el-button>
</el-form-item>
</el-form> </el-form>
<div class="pl-100">
<template v-if="!readonly">
<el-button type="primary" @click="submitForm(0)">{{$t('保存')}}</el-button>
<el-button type="primary" @click="submitForm(1)">{{$t('发布')}}</el-button>
<el-button type="default" @click="reset">{{$t('重置')}}</el-button>
</template>
<el-button @click="$router.back()">{{$t('返回')}}</el-button>
</div>
</div> </div>
</template> </template>
<script> <script>
...@@ -261,16 +262,17 @@ export default { ...@@ -261,16 +262,17 @@ export default {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
readonly: false,
// 表单参数 // 表单参数
form: { form: {
status: 1, status: 1,
}, },
// 表单校验 // 表单校验
rules: { rules: {
isCargoControl: [{required: true, message: '请选择是否控货'}], isCargoControl: [{required: true, message: this.$t('请选择是否控货')}],
brand: [{required: true, message: '请选择品牌'}], brand: [{required: true, message: this.$t('请选择品牌')}],
orderAttr: [{required: true, message: '请选择订单属性'}], orderAttr: [{required: true, message: this.$t('请选择订单属性')}],
documentDeclaration: [{required: true, message: '请选择单证报关'}] documentDeclaration: [{required: true, message: this.$t('请选择单证报关')}]
}, },
currencyList:[], currencyList:[],
/* clearanceFeeList:[{},{}], /* clearanceFeeList:[{},{}],
...@@ -280,9 +282,9 @@ export default { ...@@ -280,9 +282,9 @@ export default {
couponList: [], // 优惠券列表 couponList: [], // 优惠券列表
couponIds:[], couponIds:[],
fee:{ fee:{
1: [{type:1},{type:1}], // 运费 1: [],
2: [{type:2},{type:2}], // 清关费 2: [],
3: [{}] // 优惠券专用 3: []
} }
}; };
}, },
...@@ -383,6 +385,9 @@ export default { ...@@ -383,6 +385,9 @@ export default {
} }
}, },
created() { created() {
if(this.$route.query.readonly == 1){
this.readonly = true
}
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
if (this.$route.query.id) { if (this.$route.query.id) {
getCoupon(this.$route.query.id).then((res) => { getCoupon(this.$route.query.id).then((res) => {
...@@ -397,12 +402,15 @@ export default { ...@@ -397,12 +402,15 @@ export default {
if(this.form.discountDetailedVOs){ if(this.form.discountDetailedVOs){
/* this[['clearanceFeeList', 'freightFeeList', 'discountList'][]] */ /* this[['clearanceFeeList', 'freightFeeList', 'discountList'][]] */
this.fee[this.form.costType] = this.form.discountDetailedVOs // this.fee[this.form.costType] = this.form.discountDetailedVOs.filter(item => item.type == this.form.costType)
} }
if(this.costType != this.form.costType){ this.form.discountDetailedVOs.forEach(item => {
this.fee[item.type].push(item)
})
/* 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.$alert(this.$t('费用类型冲突'))
} } */
// 非优惠券需要查询出优惠券作为叠加备选 // 非优惠券需要查询出优惠券作为叠加备选
if(this.form.type != 1){ if(this.form.type != 1){
this.getCouponSelect() this.getCouponSelect()
...@@ -412,8 +420,15 @@ export default { ...@@ -412,8 +420,15 @@ export default {
if(this.$route.query.action == 'copy'){ if(this.$route.query.action == 'copy'){
this.form.couponId = null this.form.couponId = null
} }
})
}
// 不是编辑查看则给默认的费用表格
else{
this.fee = {
1: [{type:1},{type:1}], // 运费
2: [{type:2},{type:2}], // 清关费
3: [{}] // 优惠券专用
} }
);
} }
this.reset() this.reset()
}, },
...@@ -469,7 +484,7 @@ export default { ...@@ -469,7 +484,7 @@ export default {
return; return;
} }
if(!this.costType){ if(!this.costType){
return this.$message('暂无费用设置') return this.$message(this.$t('暂无费用设置'))
} }
// 非有优惠券需要把运费和清关费一起提交 // 非有优惠券需要把运费和清关费一起提交
let discountDetailedVOs = this.costType == 3 ? this.fee[3] : this.fee[1].concat(this.fee[2]).filter(item => item.netReceiptsAmount || item.fullAmount) let discountDetailedVOs = this.costType == 3 ? this.fee[3] : this.fee[1].concat(this.fee[2]).filter(item => item.netReceiptsAmount || item.fullAmount)
...@@ -494,14 +509,14 @@ export default { ...@@ -494,14 +509,14 @@ export default {
// 修改的提交 // 修改的提交
if (data.couponId != null) { if (data.couponId != null) {
updateCoupon(data).then((response) => { updateCoupon(data).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess(this.$t("修改成功"));
this.$redirect("index"); this.$redirect("index");
}); });
return; return;
} }
// 添加的提交 // 添加的提交
createCoupon(data).then((response) => { createCoupon(data).then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess(this.$t("新增成功"));
this.$redirect("index"); this.$redirect("index");
}); });
}); });
......
...@@ -161,6 +161,8 @@ ...@@ -161,6 +161,8 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" fixed="right" 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, true)"
v-hasPermi="['ecw:coupon:update']">查看</el-button>
<el-button v-if="scope.row.status != 1" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button v-if="scope.row.status != 1" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:coupon:update']">编辑</el-button> v-hasPermi="['ecw:coupon:update']">编辑</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCopy(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleCopy(scope.row)"
...@@ -277,9 +279,13 @@ export default { ...@@ -277,9 +279,13 @@ export default {
return this.$router.push('edit') return this.$router.push('edit')
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row, readonly) {
const couponId = row.couponId; const couponId = row.couponId;
return this.$router.push('edit?id=' + couponId) let url = 'edit?id=' + couponId
if(readonly){
url += '&readonly=1'
}
return this.$router.push(url)
}, },
handleCopy(row){ handleCopy(row){
this.$router.push('edit?action=copy&id=' + row.couponId) this.$router.push('edit?action=copy&id=' + row.couponId)
......
<template xmlns=""> <template xmlns="">
<div> <div>
<el-row type="flex" style="margin-top: 15px;margin-bottom: 15px" justify="center"> <el-row type="flex" style="margin-top: 15px;margin-bottom: 15px" justify="center">
<el-col :xs="24" :sm="24" :md="24" :lg="22" :xl="20"> <el-col :xs="24" :sm="24" :md="24" :lg="22" :xl="20">
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-form ref="form" :model="form" :rules="rules" label-width="150px">
...@@ -103,7 +102,7 @@ ...@@ -103,7 +102,7 @@
</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' && form.customerService)"> <el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="(!!(customerId !== '0' && form.customerService) || isCustomerServiceConfirmed)">
<el-option v-for="item in serviceUserList" <el-option v-for="item in serviceUserList"
:key="item.id" :label="item.nickname" :value="item.id" /> :key="item.id" :label="item.nickname" :value="item.id" />
</el-select> </el-select>
...@@ -169,7 +168,7 @@ ...@@ -169,7 +168,7 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="$t('到仓确认')" prop="arrivalConfirm"> <el-form-item :label="$t('到仓确认')" prop="arrivalConfirm">
<el-switch v-model="form.arrivalConfirm" :active-value="0" :inactive-value="1" /> <el-switch v-model="form.arrivalConfirm" :active-value="1" :inactive-value="0" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="13"> <el-col :span="13">
...@@ -282,7 +281,7 @@ ...@@ -282,7 +281,7 @@
> >
<template v-slot = "{row}"> <template v-slot = "{row}">
<el-form-item label=""> <el-form-item label="">
<el-select v-model="row.userid" remote :remote-method="getUserMemberUserFn" @change="selectBD" size="mini" filterable> <el-select v-model="row.userid" clearable remote :remote-method="getUserMemberUserFn" @change="selectBD" size="mini" filterable>
<el-option v-for="(item,index) in userMemberUser" :value="item.id" :key="index" :label="item.nickname + '(' + item.mobile + ')'" ></el-option> <el-option v-for="(item,index) in userMemberUser" :value="item.id" :key="index" :label="item.nickname + '(' + item.mobile + ')'" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -430,7 +429,7 @@ import {customerDropDownList} from "@/api/ecw/customerCommissionInfo"; ...@@ -430,7 +429,7 @@ import {customerDropDownList} from "@/api/ecw/customerCommissionInfo";
export default { export default {
name: "edit", name: "edit",
props: { props: {
customerId: String customerId: String,
}, },
components: { components: {
Template, Template,
...@@ -438,6 +437,7 @@ export default { ...@@ -438,6 +437,7 @@ export default {
CustomerLineTable CustomerLineTable
}, },
created() { created() {
this.isCustomerServiceConfirmed = this.$route.query.isCustomerServiceConfirmed ? true : false
this.getCustomerSelect() this.getCustomerSelect()
this.reset() this.reset()
this.getUserMemberUserFn() this.getUserMemberUserFn()
...@@ -462,6 +462,10 @@ export default { ...@@ -462,6 +462,10 @@ export default {
} else { } else {
// 新建客户 // 新建客户
this.handleAddContact() this.handleAddContact()
if(this.isCustomerServiceConfirmed){
console.log(this.userId);
this.form.customerService = this.userId
}
} }
getNodeList().then(r => { getNodeList().then(r => {
...@@ -489,6 +493,7 @@ export default { ...@@ -489,6 +493,7 @@ export default {
}, },
data(){ data(){
return { return {
isCustomerServiceConfirmed:false,
getDictDatas, getDictDatas,
DICT_TYPE, DICT_TYPE,
...@@ -595,6 +600,9 @@ export default { ...@@ -595,6 +600,9 @@ export default {
} }
}, },
selectBD(val){ selectBD(val){
if(!val){
return
}
let i = this.selectMemberList.find(item => item.id === val); let i = this.selectMemberList.find(item => item.id === val);
if(i === undefined){ if(i === undefined){
this.selectMemberList.push(this.memberList.find(item => item.id === val)) this.selectMemberList.push(this.memberList.find(item => item.id === val))
...@@ -642,6 +650,8 @@ export default { ...@@ -642,6 +650,8 @@ export default {
return; return;
} }
// 添加的提交 // 添加的提交
//我的客户页面跳转直接
form.isCustomerServiceConfirmed = true;
createCustomer(form).then(response => { createCustomer(form).then(response => {
this.$modal.msgSuccess(this.$t('新增成功')); this.$modal.msgSuccess(this.$t('新增成功'));
this.open = false; this.open = false;
...@@ -752,6 +762,9 @@ export default { ...@@ -752,6 +762,9 @@ export default {
} }
}, },
computed: { computed: {
userId(){
return this.$store.state.user.id
},
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
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国家')" prop="source"> <el-form-item :label="$t('国家')" prop="source">
<el-select clearable v-model="form.country" :placeholder="$t('请选择国家')"> <el-select clearable v-model="queryParams.country" :placeholder="$t('请选择国家')">
<el-option v-for="dict in countryList" <el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" /> :key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select> </el-select>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="daterange" 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="form.level" > <el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button> v-hasPermi="['ecw:customer:export']">{{$t('导出')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5" > <el-col :span="1.5" >
<el-button :disabled="selectCustomerList.length === 0" type="primary" size="mini" @click="transferShow = true;" :loading="exportLoading" <el-button :disabled="selectCustomerList.length === 0" type="primary" size="mini" @click="transferShow = true;"
v-hasPermi="['ecw:customer:export']">{{$t('批量移交')}}</el-button> v-hasPermi="['ecw:customer: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>
...@@ -529,6 +529,8 @@ export default { ...@@ -529,6 +529,8 @@ export default {
customerService: null, customerService: null,
status: null, status: null,
department: null, department: null,
creditLevel:null,
country:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -651,6 +653,19 @@ export default { ...@@ -651,6 +653,19 @@ export default {
resetQuery() { resetQuery() {
this.dateRangeCreateTime = []; this.dateRangeCreateTime = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams = {
pageNo: 1,
pageSize: 10,
number: null,
name: null,
level: null,
source: null,
customerService: null,
status: null,
department: null,
creditLevel:null,
country:null,
}
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-card class="box-card" style="padding: 10px"> <el-card class="box-card" style="padding: 10px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<el-row> <el-row>
<el-col :span="5"> <el-col :span="8">
<el-form-item :label="$t('客户名称')" prop="customerId"> <el-form-item :label="$t('客户名称')" prop="customerId">
<div style="display: flex"> <div style="display: flex">
<el-input readonly="readonly" :placeholder="$t('请输入选择客户')" v-model="customerName"></el-input> <el-input readonly="readonly" :placeholder="$t('请输入选择客户')" v-model="customerName"></el-input>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="daterange" 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="form.level" > <el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -67,6 +67,10 @@ ...@@ -67,6 +67,10 @@
<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:export']">{{$t('导出')}}</el-button>
</el-col> </el-col>
<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,}})"
v-hasPermi="['ecw:customer:create']">{{$t('新增')}}</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
...@@ -364,6 +368,8 @@ export default { ...@@ -364,6 +368,8 @@ export default {
customerService: null, customerService: null,
status: null, status: null,
department: null, department: null,
creditLevel:null,
country:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -479,6 +485,19 @@ export default { ...@@ -479,6 +485,19 @@ export default {
resetQuery() { resetQuery() {
this.dateRangeCreateTime = []; this.dateRangeCreateTime = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams = {
pageNo: 1,
pageSize: 10,
number: null,
name: null,
level: null,
source: null,
customerService: null,
status: null,
department: null,
creditLevel:null,
country:null,
}
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国家')" prop="source"> <el-form-item :label="$t('国家')" prop="source">
<el-select clearable v-model="form.country" :placeholder="$t('请选择国家')"> <el-select clearable v-model="queryParams.country" :placeholder="$t('请选择国家')">
<el-option v-for="dict in countryList" <el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" /> :key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select> </el-select>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="daterange" 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="form.level" > <el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
</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;" :loading="exportLoading" <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:export']">{{$t('批量移交')}}</el-button>
</el-col> </el-col>
</el-col> </el-col>
...@@ -193,6 +193,8 @@ export default { ...@@ -193,6 +193,8 @@ export default {
customerService: null, customerService: null,
status: null, status: null,
department: null, department: null,
creditLevel:null,
country:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -312,6 +314,19 @@ export default { ...@@ -312,6 +314,19 @@ export default {
resetQuery() { resetQuery() {
this.dateRangeCreateTime = []; this.dateRangeCreateTime = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams = {
pageNo: 1,
pageSize: 10,
number: null,
name: null,
level: null,
source: null,
customerService: null,
status: null,
department: null,
creditLevel:null,
country:null,
}
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
...@@ -106,11 +106,15 @@ ...@@ -106,11 +106,15 @@
</el-select> --> </el-select> -->
<dict-selector :type="DICT_TYPE.TARGET_TYPE" v-model="form.targetType" :placeholder="$t('请选择目标类型')" /> <dict-selector :type="DICT_TYPE.TARGET_TYPE" v-model="form.targetType" :placeholder="$t('请选择目标类型')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('计算周期')" prop="targetPeriodName"> <div class="flex">
<el-select v-model="form.targetPeriodName" :placeholder="$t('请选择计算周期')" @change="setTime"> <el-form-item :label="$t('计算周期')" prop="startTime">
<el-option v-for="item in targetPeriod" :label="item.name" :value="item.name" :key="item.name"></el-option> <el-date-picker v-model="form.startTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-150"></el-date-picker>
</el-select> </el-form-item>
<div class="ml-10 mr-10 flex flex-center" style="margin-bottom:22px">-</div>
<el-form-item prop="endTime" label-width="0">
<el-date-picker v-model="form.endTime" placeholder="" value-format="yyyy-MM-dd HH:mm:ss" class="w-150"></el-date-picker>
</el-form-item> </el-form-item>
</div>
<el-form-item :label="$t('运输方式')" prop="transportType"> <el-form-item :label="$t('运输方式')" prop="transportType">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportType" formatter="number" @change="showChannel"/> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportType" formatter="number" @change="showChannel"/>
</el-form-item> </el-form-item>
...@@ -147,6 +151,7 @@ ...@@ -147,6 +151,7 @@
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 dayjs from "dayjs"; import dayjs from "dayjs";
import { parseTime } from '@/utils/ruoyi';
export default { export default {
name: "DeptTarget", name: "DeptTarget",
...@@ -213,6 +218,8 @@ ...@@ -213,6 +218,8 @@
targetPeriodName: [{required: true, message: this.$t("计算周期不能为空"), trigger: "change"}], targetPeriodName: [{required: true, message: this.$t("计算周期不能为空"), trigger: "change"}],
transportType: [{required: true, message: this.$t("运输方式不能为空"), trigger: "change"}], transportType: [{required: true, message: this.$t("运输方式不能为空"), trigger: "change"}],
cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}], cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}],
startTime: [{required: true, message: this.$t("起始时间不能为空"), trigger: "change"}],
endTime: [{required: true, message: this.$t("截止时间不能为空"), trigger: "change"}],
} }
}; };
}, },
...@@ -372,6 +379,10 @@ ...@@ -372,6 +379,10 @@
} else { } else {
this.targetPeriod = this.yearList; this.targetPeriod = this.yearList;
} }
this.form.startTime = parseTime(this.form.startTime)
this.form.endTime = parseTime(this.form.endTime)
this.open = true; this.open = true;
this.title = this.$t("修改部门业绩目标设置"); this.title = this.$t("修改部门业绩目标设置");
}); });
......
...@@ -5,17 +5,18 @@ ...@@ -5,17 +5,18 @@
:model="form" :model="form"
label-width="120px" label-width="120px"
label-position="left" label-position="left"
:inline="true"
> >
<el-card> <el-card>
<div v-if="id" slot="header" class="card-title">{{ $t('修改收款单') }}</div> <div v-if="id" slot="header" class="card-title">{{ $t('修改收款单') }}</div>
<div v-else slot="header" class="card-title">{{ $t('新增收款单') }}</div> <div v-else slot="header" class="card-title">{{ $t('新增收款单') }}</div>
<el-descriptions :column="3" border> <!-- <el-descriptions :column="3" border> -->
<el-descriptions-item :label="$t('客户')"> <!-- <el-descriptions-item > -->
<el-form-item <el-form-item
label="" :label="$t('客户')"
label-width="0" style="margin-bottom: 0;margin-top: 20px;"
style="margin-bottom: 0"
prop="customerId" prop="customerId"
:span="4"
:rules="{ required: true, trigger: ['blur', 'change'], message: $t('客户不能为空') }" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('客户不能为空') }"
> >
<customer-selector <customer-selector
...@@ -23,13 +24,13 @@ ...@@ -23,13 +24,13 @@
@change="customerChange" @change="customerChange"
/> />
</el-form-item> </el-form-item>
</el-descriptions-item> <!-- </el-descriptions-item>
<el-descriptions-item :label="$t('部门')"> <el-descriptions-item > -->
<el-form-item <el-form-item
label="" :label="$t('部门')"
label-width="0" style="margin-bottom: 0;margin-top: 20px;"
style="margin-bottom: 0"
prop="departmentId" prop="departmentId"
:span="4"
:rules="{ required: true, trigger: ['blur', 'change'], message: $t('部门不能为空') }" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('部门不能为空') }"
> >
<el-select <el-select
...@@ -45,13 +46,11 @@ ...@@ -45,13 +46,11 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('业务员')">
<el-form-item <el-form-item
label="" :label="$t('业务员')"
label-width="0" style="margin-bottom: 0;margin-top: 20px;"
style="margin-bottom: 0"
prop="salesmanId" prop="salesmanId"
:span="4"
:rules="{ required: true, trigger: ['blur', 'change'], message: $t('业务员不能为空') }" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('业务员不能为空') }"
> >
<el-select v-model="form.salesmanId" :placeholder="$t('请选择业务员')" @change="v => form.salesmanName = creatorData.find(t => t.id === v).nickname"> <el-select v-model="form.salesmanId" :placeholder="$t('请选择业务员')" @change="v => form.salesmanName = creatorData.find(t => t.id === v).nickname">
...@@ -63,12 +62,11 @@ ...@@ -63,12 +62,11 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> <!-- </el-descriptions-item> -->
<el-descriptions-item :label="$t('手续费(RMB)')"> <!-- <el-descriptions-item > -->
<el-form-item <!-- <el-form-item
label="" :label="$t('手续费(RMB)')"
label-width="0" style="margin-bottom: 0;margin-top: 20px;"
style="margin-bottom: 0"
prop="feeRate" prop="feeRate"
:rules="{ required: true, trigger: ['blur', 'change'], message: $t('手续费不能为空') }" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('手续费不能为空') }"
> >
...@@ -76,19 +74,18 @@ ...@@ -76,19 +74,18 @@
v-model="form.feeRate" v-model="form.feeRate"
:placeholder="$t('请输入手续费')" :placeholder="$t('请输入手续费')"
></el-input> ></el-input>
</el-form-item> </el-form-item> -->
</el-descriptions-item> <!-- </el-descriptions-item>
<el-descriptions-item :label="$t('备注')"> <el-descriptions-item > -->
<el-form-item <el-form-item
label="" :label="$t('备注')"
label-width="0" style="margin-bottom: 0;margin-top: 20px;"
style="margin-bottom: 0"
prop="remark" prop="remark"
> >
<el-input v-model="form.remark" :placeholder="$t('备注')"></el-input> <el-input v-model="form.remark" :placeholder="$t('备注')"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> <!-- </el-descriptions-item> -->
</el-descriptions> <!-- </el-descriptions> -->
</el-card> </el-card>
<el-card class="card amountCard"> <el-card class="card amountCard">
<div slot="header" class="card-title">{{ $t('订单信息') }}</div> <div slot="header" class="card-title">{{ $t('订单信息') }}</div>
...@@ -151,13 +148,13 @@ ...@@ -151,13 +148,13 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-descriptions :column="2" border class="card"> <!-- <el-descriptions :column="2" border class="card">
<el-descriptions-item :label="$t('是否需要开票')"> <el-descriptions-item > -->
<el-form-item <el-form-item
label="" :label="$t('是否需要开票')+':'"
label-width="0" style="margin-bottom: 0;margin-top: 20px;"
style="margin-bottom: 0"
prop="openInvoice" prop="openInvoice"
required
:rules="{ required: true, trigger: ['blur', 'change'], message: $t('请选择是否需要开票') }" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('请选择是否需要开票') }"
> >
<el-select <el-select
...@@ -168,11 +165,17 @@ ...@@ -168,11 +165,17 @@
<el-option :value="0" :label="$t('否')"></el-option> <el-option :value="0" :label="$t('否')"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> <el-form-item
<el-descriptions-item :label="$t('核销基准币种')"> :label="$t('核销基准币种')+':'"
style="margin-bottom: 0;margin-top: 20px;"
>
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="showCurrencyId" /> <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="showCurrencyId" />
</el-form-item>
<!-- </el-descriptions-item>
<el-descriptions-item :label="$t('核销基准币种')">
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions> -->
</el-card> </el-card>
<el-card v-if="showInvoice" class="card"> <el-card v-if="showInvoice" class="card">
<div slot="header" class="card-title">{{ $t('开票资料') }}</div> <div slot="header" class="card-title">{{ $t('开票资料') }}</div>
...@@ -328,11 +331,23 @@ ...@@ -328,11 +331,23 @@
style="margin-bottom: 0" style="margin-bottom: 0"
:prop="`receiptAccountList.${scope.$index}.collectionCurrencyId`" :prop="`receiptAccountList.${scope.$index}.collectionCurrencyId`"
> >
<dict-selector <el-select
:type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT"
v-model="scope.row.collectionCurrencyId" v-model="scope.row.collectionCurrencyId"
:placeholder="$t('请选择')"
@change="val => currencyIdChange(val, scope.row, scope.$index)" @change="val => currencyIdChange(val, scope.row, scope.$index)"
>
<el-option
v-for="item in currencyList"
:key="item.id"
:label="item.titleZh"
:value="item.id"
/> />
</el-select>
<!-- <dict-selector
:type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT"
v-model="scope.row.collectionCurrencyId"
@change="val => currencyIdChange(val, scope.row, scope.$index)"
/> -->
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
...@@ -397,6 +412,7 @@ ...@@ -397,6 +412,7 @@
<!-- <div slot="header" class="card-title">添加未收客户款项</div> --> <!-- <div slot="header" class="card-title">添加未收客户款项</div> -->
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form <el-form
v-if="open"
:model="queryParams" :model="queryParams"
ref="queryForm" ref="queryForm"
size="small" size="small"
...@@ -503,7 +519,6 @@ ...@@ -503,7 +519,6 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
row-key="id" row-key="id"
height="calc(100vh - 480px)" height="calc(100vh - 480px)"
:key="dialogTableKey"
> >
<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="orderNo" /> <el-table-column :label="$t('订单号')" align="center" prop="orderNo" />
...@@ -648,6 +663,7 @@ import { getTradeCityList } from "@/api/ecw/region"; ...@@ -648,6 +663,7 @@ import { getTradeCityList } from "@/api/ecw/region";
import { createReceipt, getReceivableList, getReceivableInfoByIds, getReceiptInfoByIds, getReceiptAccountList, getInvoicingItem, updateReceipt, updateReceivableDiscountById, getReceivableDiscountLogById } from "@/api/ecw/financial"; import { createReceipt, 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 { getCurrencyPage } from "@/api/ecw/currency"; import { getCurrencyPage } from "@/api/ecw/currency";
import ret from "bluebird/js/release/util"; import ret from "bluebird/js/release/util";
import dayjs from "dayjs"; import dayjs from "dayjs";
...@@ -702,7 +718,7 @@ export default { ...@@ -702,7 +718,7 @@ export default {
discountForm: {}, discountForm: {},
selectListRow: {}, selectListRow: {},
selectListIndex: 0, selectListIndex: 0,
flag: false flag: false,
}; };
}, },
async created() { async created() {
...@@ -762,6 +778,11 @@ export default { ...@@ -762,6 +778,11 @@ export default {
getReceivableInfoByIds({ id: this.receiptId }).then(res => { getReceivableInfoByIds({ id: this.receiptId }).then(res => {
this.list = [{...res.data}] this.list = [{...res.data}]
this.calculation() this.calculation()
getOrder(res.data.orderId).then(response => {
// console.log(response.data)
if(response.data.customerId) this.$set(this.form,'customerId',response.data.customerId)
})
}) })
} }
...@@ -828,7 +849,6 @@ export default { ...@@ -828,7 +849,6 @@ export default {
}, },
methods: { methods: {
checkDiscount(e){ checkDiscount(e){
console.log(e)
if(e>this.selectListRow.totalAmount){ if(e>this.selectListRow.totalAmount){
this.discountForm.discountTotal = this.selectListRow.totalAmount this.discountForm.discountTotal = this.selectListRow.totalAmount
} }
...@@ -837,12 +857,12 @@ export default { ...@@ -837,12 +857,12 @@ export default {
row.collectionCurrencyId = val row.collectionCurrencyId = val
if (val == row.currencyId) row.collectionRate = 1 if (val == row.currencyId) row.collectionRate = 1
else { else {
if (row.currencyId == 1 && val == 2) row.collectionRate = this.UStoRMB() if (row.currencyId == 1 && val == 3) row.collectionRate = this.UStoRMB()
if (row.currencyId == 1 && val == 3) row.collectionRate = this.UStoNAN() if (row.currencyId == 1 && val == 2) row.collectionRate = this.UStoNAN()
if (row.currencyId == 2 && val == 1) row.collectionRate = this.RMBtoUS() if (row.currencyId == 3 && val == 1) row.collectionRate = this.RMBtoUS()
if (row.currencyId == 2 && val == 3) row.collectionRate = this.RMBtoNAN() if (row.currencyId == 3 && val == 2) row.collectionRate = this.RMBtoNAN()
if (row.currencyId == 3 && val == 1) row.collectionRate = this.NANtoUS() if (row.currencyId == 2 && val == 1) row.collectionRate = this.NANtoUS()
if (row.currencyId == 3 && val == 2) row.collectionRate = this.NANtoRMB() if (row.currencyId == 2 && val == 3) row.collectionRate = this.NANtoRMB()
} }
this.rateChange(row, index) this.rateChange(row, index)
...@@ -888,8 +908,8 @@ export default { ...@@ -888,8 +908,8 @@ export default {
receivableAmount: dollar, receivableAmount: dollar,
writeOffRate: t?.writeOffRate || (this.showCurrencyId === 1 ? 1 : this.showCurrencyId === 2 ? this.UStoRMB() : this.UStoNAN()), writeOffRate: t?.writeOffRate || (this.showCurrencyId === 1 ? 1 : this.showCurrencyId === 2 ? this.UStoRMB() : this.UStoNAN()),
platformAccountId: t?.platformAccountId || '', platformAccountId: t?.platformAccountId || '',
collectionCurrencyId: t?.collectionCurrencyId || '', collectionCurrencyId: t?.collectionCurrencyId || 1,
collectionRate: t?.collectionRate || '' collectionRate: t?.collectionRate || 1
} }
] ]
this.calculationCount(NP.minus(dollar, discountDollar), 1) this.calculationCount(NP.minus(dollar, discountDollar), 1)
...@@ -929,7 +949,8 @@ export default { ...@@ -929,7 +949,8 @@ export default {
writeOffRate: t?.writeOffRate || (this.showCurrencyId === 1 ? this.NANtoUS() : this.showCurrencyId === 2 ? this.NANtoRMB() : 1), writeOffRate: t?.writeOffRate || (this.showCurrencyId === 1 ? this.NANtoUS() : this.showCurrencyId === 2 ? this.NANtoRMB() : 1),
platformAccountId: t?.platformAccountId || '', platformAccountId: t?.platformAccountId || '',
collectionCurrencyId: t?.collectionCurrencyId || '', collectionCurrencyId: t?.collectionCurrencyId || '',
collectionRate: t?.collectionRate || '' collectionRate: t?.collectionRate || '',
collectionAmount:discountNaira
} }
] ]
this.calculationCount(NP.minus(naira, discountNaira), 3) this.calculationCount(NP.minus(naira, discountNaira), 3)
...@@ -940,7 +961,7 @@ export default { ...@@ -940,7 +961,7 @@ export default {
this.form.receiptAccountList = [...this.form.receiptAccountList, { this.form.receiptAccountList = [...this.form.receiptAccountList, {
type: 'total', type: 'total',
writeOffAmount: totalt, writeOffAmount: totalt,
collectionAmount: [0, 0, 0] collectionAmount: [this.form.receiptAccountList.discountNaira, 0, 0]
}] }]
this.form.receivableTotalAmount = totalt this.form.receivableTotalAmount = totalt
...@@ -1023,9 +1044,6 @@ export default { ...@@ -1023,9 +1044,6 @@ export default {
addressPhone: `${res.data.billingAddress || ''}/${res.data.billingTell || ''}`, addressPhone: `${res.data.billingAddress || ''}/${res.data.billingTell || ''}`,
} }
}) })
},
getReceivableListByIds() {
}, },
cancelDiscount() { cancelDiscount() {
this.discountVisible = false this.discountVisible = false
...@@ -1109,20 +1127,41 @@ export default { ...@@ -1109,20 +1127,41 @@ export default {
submitForm(addType) { submitForm(addType) {
const params = {...this.form} const params = {...this.form}
params.addType = addType params.addType = addType
params.receiptAccountList.length = params.receiptAccountList.length - 1
params.receiptAccountList.map(v => {
delete v.discountTotal
v.writeOffRate = Number(v.writeOffRate)
return v
})
// params.receiptAccountList = params.receiptAccountList.map(v => Object.assign(v, { })) // params.receiptAccountList = params.receiptAccountList.map(v => Object.assign(v, { }))
delete params.receivableDetail
if (this.list && this.list.length > 0) { if (this.list && this.list.length > 0) {
params.receivableVOList = this.list params.receivableVOList = this.list
}else{ }else{
this.saveBtnLoading = false
this.$modal.msgError(this.$t('请添加未收客户款项')); this.$modal.msgError(this.$t('请添加未收客户款项'));
return return
} }
// params.receiptAccountList.length = params.receiptAccountList.length - 1
params.receiptAccountList.splice(params.receiptAccountList.length - 1,1)
var saveStatus = true
params.receiptAccountList.map(v => {
if(!v.platformAccountId){
saveStatus = false
}
var bankname = this.bankData.filter(item=>item.id == v.platformAccountId)
if(bankname.length>0){
v.platformAccountName = bankname[0].baAccountName
v.platformAccountNo = bankname[0].baAccountNum
v.platformAccountBlankName = bankname[0].baBankName
}
delete v.discountTotal
v.writeOffRate = Number(v.writeOffRate)
return v
})
if(!saveStatus){
this.$modal.msgError(this.$t('请添加收款账户'));
return
}
delete params.receivableDetail
if (addType === 1) { if (addType === 1) {
let fieldsToValidate = ['customerId', 'departmentId', 'salesmanId']; // 部分字段校验 保存草稿用 let fieldsToValidate = ['customerId', 'departmentId', 'salesmanId']; // 部分字段校验 保存草稿用
Promise.all( Promise.all(
...@@ -1139,7 +1178,7 @@ export default { ...@@ -1139,7 +1178,7 @@ export default {
}); });
if (valid) { if (valid) {
this.saveBtnLoading = true this.saveBtnLoading = true
if (this.id && this.id !== '0') { if (this.id && this.id != 0) {
updateReceipt(params).then(res => { updateReceipt(params).then(res => {
this.$modal.msgSuccess(this.$t('修改成功')); this.$modal.msgSuccess(this.$t('修改成功'));
this.$router.back(); this.$router.back();
...@@ -1162,7 +1201,7 @@ export default { ...@@ -1162,7 +1201,7 @@ export default {
this.$refs.form.validate ((valid)=>{ this.$refs.form.validate ((valid)=>{
if (valid) { if (valid) {
this.saveBtnLoading = true this.saveBtnLoading = true
if (this.id && this.id !== '0') { if (this.id && this.id != 0) {
if(params.state==0) params.state = 1 if(params.state==0) params.state = 1
updateReceipt(params).then(res => { updateReceipt(params).then(res => {
this.$modal.msgSuccess(this.$t('修改成功')); this.$modal.msgSuccess(this.$t('修改成功'));
......
...@@ -460,7 +460,8 @@ export default { ...@@ -460,7 +460,8 @@ export default {
if (that.$route.query.payableId && that.$route.query.payableId !== '0') { if (that.$route.query.payableId && that.$route.query.payableId !== '0') {
this.payableId = this.$route.query.payableId; this.payableId = this.$route.query.payableId;
getPayableInfoByIds({ id: this.payableId }).then(res => { getPayableInfoByIds({ id: this.payableId }).then(res => {
this.list = [{...res.data}] this.handleSelectionChange([res.data])
this.list = this.multipleSelection
this.$set(this.form, 'supplierId', res.data.supplierId) this.$set(this.form, 'supplierId', res.data.supplierId)
}) })
} }
......
...@@ -9,15 +9,18 @@ ...@@ -9,15 +9,18 @@
</div> </div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('申请日期') }}</div> <span>{{ form.applicationAt || '-' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('申请日期') }}</div> <span>{{ form.applicationAt || '-' }}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('结算方式') }}</div><span>{{ form.settlementType || '-' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('结算方式') }}</div><span> <dict-tag
:type="DICT_TYPE.CUSTOMER_BALANCE"
v-model="form.settlementType"
/></span></div>
</div> </div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('付款公司') }}</div><span>{{ form.supplierName || '-' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('付款公司') }}</div><span>{{ form.supplierName || '-' }}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行户名') }}</div><span>{{ findBank(form.supplierBankAccount).baAccountName || '-' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行户名') }}</div><span>{{ form.supplierBankAccountName || '-' }}</span></div>
</div> </div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行名称') }}</div><span>{{ findBank(form.supplierBankAccount).baBankName || '-' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行名称') }}</div><span>{{ form.supplierBank|| '-' }}</span></div>
<div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行账号') }}</div><span>{{ findBank(form.supplierBankAccount).baAccountNum || '-' }}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;display:inline-block;">{{ $t('银行账号') }}</div><span>{{ form.supplierBankAccount || '-' }}</span></div>
</div> </div>
<!-- <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;"> <!-- <div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><div style="width: 120px;text-align: right;">水单号:</div><span>{{form?form.accountBank:''}}</span></div> <div style="flex:1"><div style="width: 120px;text-align: right;">水单号:</div><span>{{form?form.accountBank:''}}</span></div>
...@@ -174,6 +177,7 @@ ...@@ -174,6 +177,7 @@
}, },
findBank(val) { findBank(val) {
const t = this.bankData.find(v => v.id == val) const t = this.bankData.find(v => v.id == val)
console.log(t)
return t || {} return t || {}
}, },
totalMoney() { totalMoney() {
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</tr> </tr>
<tr v-for="(item, index) in list" :key="index"> <tr v-for="(item, index) in list" :key="index">
<td>{{ index + 1 }}</td> <td>{{ index + 1 }}</td>
<td>{{ item.receiptNo||''}}</td> <td>{{ orderData.tidanNo||''}}</td>
<td>{{ item.orderNo }}</td> <td>{{ item.orderNo }}</td>
<td>{{ item.titleZh }}</td> <td>{{ item.titleZh }}</td>
<td><dict-tag :value="item.feeType" :type="DICT_TYPE.FEE_TYPE"></dict-tag></td> <td><dict-tag :value="item.feeType" :type="DICT_TYPE.FEE_TYPE"></dict-tag></td>
...@@ -44,39 +44,28 @@ ...@@ -44,39 +44,28 @@
<td>{{ item.discountTotal||0 }}</td> <td>{{ item.discountTotal||0 }}</td>
</tr> </tr>
<tr v-for="(items, indexs) in receiptAccountList" :key="indexs"> <tr v-for="(items, indexs) in receiptAccountList" :key="indexs">
<td><dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.collectionCurrencyId" />应收合计</td> <td><dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.currencyId" />应收合计</td>
<td >{{ `${item.receivableAmount - item.discountTotal }(${item.receivableAmount} - ${item.discountTotal})` }}</td> <td ><span v-if="items.discountTotal>0">{{ `${items.receivableAmount - items.discountTotal }(${items.receivableAmount} - ${items.discountTotal})` }}</span>
<span v-else>{{ `${items.receivableAmount - items.discountTotal }` }}</span>
</td>
<td>汇率</td> <td>汇率</td>
<td>{{ items.collectionRate.toFixed(6)}}</td> <td>{{ items.collectionRate}}</td>
<td>收款金额(<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.collectionCurrencyId" />)</td> <td>收款金额(<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.collectionCurrencyId" />)</td>
<td colspan="3">{{ items.collectionAmount.toFixed(6)}}</td> <td colspan="3">{{ items.collectionAmount}}</td>
</tr> </tr>
</table> </table>
<div style="text-align: center;border-left:1px solid #666;border-right: 1px solid #666;height: 36px;line-height: 36px;"> <div style="text-align: center;border-left:1px solid #666;border-right: 1px solid #666;height: 36px;line-height: 36px;">
银行信息 银行信息
</div> </div>
<div style="display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;"> <div style="display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;" v-for="(bankTiem,index) in detailed" :key="index">
<div style="padding:6px 0;width: 12.5%;text-align: center;border-right: 1px solid #666;"> <div style="padding:6px 0;width: 12.5%;text-align: center;border-right: 1px solid #666;" >
<p style="margin: 0;word-break: break-all;">户名:</p> <p style="margin: 0;word-break: break-all;">户名:{{bankTiem.accountName}}</p>
<p style="margin: 0;word-break: break-all;">银行名称:</p> <p style="margin: 0;word-break: break-all;">银行名称:{{bankTiem.accountBankName||''}}</p>
<p style="margin: 0;word-break: break-all;">A/C NO</p> <p style="margin: 0;word-break: break-all;">A/C NO{{bankTiem.accountNo}}</p>
</div> </div>
<div style="padding:6px 0;width: 87.5%;text-align: center;"> <div style="padding:6px 0;width: 87.5%;text-align: center;">
<p style="margin: 0;">应收人民币:¥</p> <p style="margin: 0;">实收<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="bankTiem.currencyId" />{{bankTiem.writeOffAmount}}¥</p>
<p style="margin: 0;">优惠后人民币:¥</p> <!-- <p style="margin: 0;">未收:¥{{bankTiem.noReceipt}}</p> -->
<p style="margin: 0;">未收:¥</p>
</div>
</div>
<div style="display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;">
<div style="padding:6px 0;width: 12.5%;text-align: center;border-right: 1px solid #666;">
<p style="margin: 0;word-break: break-all;">户名:</p>
<p style="margin: 0;word-break: break-all;">银行名称:</p>
<p style="margin: 0;word-break: break-all;">A/C NO</p>
</div>
<div style="padding:6px 0;width: 87.5%;text-align: center;">
<p style="margin: 0;">应收美元:$</p>
<p style="margin: 0;">优惠后美元:$</p>
<p style="margin: 0;">未收:$</p>
</div> </div>
</div> </div>
<div style="display: flex;align-items: center;border: 1px solid #666;"> <div style="display: flex;align-items: center;border: 1px solid #666;">
...@@ -106,7 +95,7 @@ ...@@ -106,7 +95,7 @@
import lodop from '@/utils/lodop' import lodop from '@/utils/lodop'
import NP from 'number-precision' import NP from 'number-precision'
import {getOrder} from '@/api/ecw/order' import {getOrder} from '@/api/ecw/order'
import { getReceiptInfoByIds, getInvoicingItem,getReceiptAccountList } from "@/api/ecw/financial"; import { getReceiptInfoByIds, getInvoicingItem,getReceiptAccountList,getReceivableItem} from "@/api/ecw/financial";
export default { export default {
name: "PrintVoucher", name: "PrintVoucher",
...@@ -118,7 +107,7 @@ ...@@ -118,7 +107,7 @@
loadings: false, loadings: false,
form:{}, form:{},
title:'收款单', title:'收款单',
creatorData:[], // creatorData:[],
list:[], list:[],
fileList:[], fileList:[],
bankData:[], bankData:[],
...@@ -130,13 +119,14 @@ ...@@ -130,13 +119,14 @@
deptData:[], deptData:[],
deptArr:[], deptArr:[],
id:0, id:0,
orderData:[] orderData:{},
detailed:[]
} }
}, },
async created() { async created() {
let that = this let that = this
listSimpleUsers().then(res =>that.creatorData = res.data) // listSimpleUsers().then(res =>that.creatorData = res.data)
getBankAccountPage(that.params).then(res =>that.bankData = res.data.list) // getBankAccountPage(that.params).then(res =>that.bankData = res.data.list)
await listSimpleDepts().then(res =>{ await listSimpleDepts().then(res =>{
res.data.forEach((item)=>{ res.data.forEach((item)=>{
if(item.parentId==0){ if(item.parentId==0){
...@@ -159,31 +149,32 @@ ...@@ -159,31 +149,32 @@
if(that.$route.query.id){ if(that.$route.query.id){
that.id = that.$route.query.id that.id = that.$route.query.id
that.getCollectionData() that.getCollectionData()
that.getList()
getInvoicingItem({id: this.id}).then(res => { getInvoicingItem({id: this.id}).then(res => {
this.list = res.data this.list = res.data
if(this.list.length>0) this.getOrder(this.list[0].orderId) if(this.list.length>0) this.getOrder(this.list[0].orderId)
}) })
} }
getReceiptAccountList({ id: this.id }).then(res => { getReceiptAccountList({ id: this.id }).then(res => {
if (res.data.length > 0) { // if (res.data.length > 0) {
// totalAmount // // totalAmount
res.data = [...res.data, { // res.data = [...res.data, {
type: 'total', // type: 'total',
writeOffAmount: res.data.reduce((total, currentValue) => NP.plus(total, currentValue.writeOffAmount || 0), 0), // writeOffAmount: res.data.reduce((total, currentValue) => NP.plus(total, currentValue.writeOffAmount || 0), 0),
collectionAmount: [0, 0, 0] // collectionAmount: [0, 0, 0]
}] // }]
} // }
// 收款总计 // 收款总计
const dollarList = res.data.filter(v => v.collectionCurrencyId == 1) // const dollarList = res.data.filter(v => v.collectionCurrencyId == 1)
const dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0) // const dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const rmbList = res.data.filter(v => v.collectionCurrencyId == 2) // const rmbList = res.data.filter(v => v.collectionCurrencyId == 2)
const rmb = rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0) // const rmb = rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const nairaList = res.data.filter(v => v.collectionCurrencyId == 3) // const nairaList = res.data.filter(v => v.collectionCurrencyId == 3)
const naira = nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0) // const naira = nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
res.data[res.data.length -1].collectionAmount = [dollar, rmb, naira] // res.data[res.data.length -1].collectionAmount = [dollar, rmb, naira]
// this.$set(this.form, 'receiptAccountList', [...this.form.receiptAccountList]) // this.$set(this.form, 'receiptAccountList', [...this.form.receiptAccountList])
const dollarListByList = this.list.filter(v => v.currencyId === 1) const dollarListByList = this.list.filter(v => v.currencyId === 1)
...@@ -201,8 +192,8 @@ ...@@ -201,8 +192,8 @@
const n = res.data.find(v => v.currencyId == 3) const n = res.data.find(v => v.currencyId == 3)
n && (n.discountTotal = discountNaira) n && (n.discountTotal = discountNaira)
console.log(res.data)
this.$set(this.form, 'receiptAccountList', [...res.data]) this.$set(this, 'receiptAccountList', [...res.data])
this.$nextTick(() => { this.$nextTick(() => {
// this.form.receiptAccountList.forEach((item, index) => { // this.form.receiptAccountList.forEach((item, index) => {
// this.rateChange(item, index) // this.rateChange(item, index)
...@@ -212,6 +203,11 @@ ...@@ -212,6 +203,11 @@
}, },
methods: { methods: {
getList() {
getReceivableItem({ id: this.id }).then(res => {
this.detailed = res.data
})
},
getCollectionData(){ getCollectionData(){
let that = this let that = this
getReceiptInfoByIds({id:that.id}).then(res =>{ getReceiptInfoByIds({id:that.id}).then(res =>{
...@@ -219,6 +215,31 @@ ...@@ -219,6 +215,31 @@
that.form.departmentName = that.deptData.find(v => v.id == that.form.departmentId).name that.form.departmentName = that.deptData.find(v => v.id == that.form.departmentId).name
}) })
}, },
getRecep(id){
var total = 0
if(id){
var data = this.detailed.filter(item=>item.currencyId==id)
data.forEach(item => {
total = NP.plus(total, item.writeOffAmount)
})
}
return total
},
handleAddReceiptItem() {
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.receiptAccountList.forEach(item => {
if(recepted[item.currencyId]){
item.noReceipt = +parseFloat(item.receivableAmount-recepted[item.currencyId])
}
})
},
getOrder(orderId){ getOrder(orderId){
getOrder(orderId).then(response => { getOrder(orderId).then(response => {
this.orderData = response.data this.orderData = response.data
...@@ -333,7 +354,7 @@ ...@@ -333,7 +354,7 @@
} }
} }
if(chineseStr == ''){ if(chineseStr == ''){
chineseStr += cnNums[0] + cnIntLast + cnInteger; chineseStr = cnNums[0] + cnIntLast + cnInteger
}else if(decimalNum == ''){ }else if(decimalNum == ''){
chineseStr += cnInteger; chineseStr += cnInteger;
} }
......
...@@ -192,7 +192,8 @@ ...@@ -192,7 +192,8 @@
</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">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.collectionCurrencyId" /> <!-- <dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.collectionCurrencyId" /> -->
{{getCurrencyLabel(scope.row.collectionCurrencyId)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('期望收款汇率')" align="center"> <el-table-column :label="$t('期望收款汇率')" align="center">
...@@ -259,13 +260,13 @@ ...@@ -259,13 +260,13 @@
<template slot="label"> <template slot="label">
{{ $t('核销基准金额') }}<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="showCurrencyId" /> {{ $t('核销基准金额') }}<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="showCurrencyId" />
</template> </template>
{{ verificationData.writtenOff.toFixed(6) }} {{ writeOffAmount}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
{{ $t('已核销比例') }}<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="showCurrencyId" /> {{ $t('已核销比例') }}<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="showCurrencyId" />
</template> </template>
{{ verificationData.WriteOffProportion }}% {{ WriteOffProportion }}%
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -278,14 +279,18 @@ ...@@ -278,14 +279,18 @@
<el-form ref="addForm" :model="addForm" label-width="150px"> <el-form ref="addForm" :model="addForm" label-width="150px">
<el-form-item :label="$t('收款单号')">{{ form.receiptNo }}</el-form-item> <el-form-item :label="$t('收款单号')">{{ form.receiptNo }}</el-form-item>
<el-form-item :label="$t('剩余应收金额')"> <el-form-item :label="$t('剩余应收金额')">
<div> <template v-if="surplusData.length==0">
<div>{{ remainingAmount.usAmount.toFixed(6) }}{{ $t('美元') }}</div> 0
<div>{{ remainingAmount.rmbAmount.toFixed(6) }}{{ $t('人民币') }}</div> </template>
<div>{{ remainingAmount.nairaAmount.toFixed(6) }}{{ $t('奈拉') }}</div> <div v-else>
<div v-for="(amount, currency) in surplusData" :key="currency">
<span v-if="amount"> {{amount}}<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="currency" /></span>
</div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收款账户')" prop="accountNo" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('收款账户不能为空') }"> <el-form-item :label="$t('收款账户')" prop="accountNo" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('收款账户不能为空') }">
<el-select v-if="!isView" v-model="addForm.accountNo" :placeholder="$t('请选择收款账户')" style="width: 220px" @change="accountChange"> <el-select v-if="!isView" v-model="addForm.accountId" :placeholder="$t('请选择收款账户')" style="width: 220px" @change="accountChange">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName + '(' + item.baAccountNum + ')'" :value="item.id" /> <el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName + '(' + item.baAccountNum + ')'" :value="item.id" />
</el-select> </el-select>
<span v-else>{{ addForm.accountNo }}</span> <span v-else>{{ addForm.accountNo }}</span>
...@@ -320,9 +325,22 @@ ...@@ -320,9 +325,22 @@
prop="currencyId" prop="currencyId"
:rules="{ required: true, trigger: ['blur', 'change'], message: $t('币种不能为空') }" :rules="{ required: true, trigger: ['blur', 'change'], message: $t('币种不能为空') }"
> >
<dict-selector v-if="!isView" :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" v-model="addForm.currencyId" @change="val => currencyIdChange(val)"/> <el-select
v-model="addForm.currencyId"
:placeholder="$t('请选择')"
:disabled="isView"
@change="val => currencyIdChange(val)"
>
<el-option
v-for="item in currencyList"
:key="item.id"
:label="item.titleZh"
:value="item.id"
/>
</el-select>
<!-- <dict-selector v-if="!isView" :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" v-model="addForm.currencyId" @change="val => currencyIdChange(val)"/> -->
<!-- <span v-else>{{ addForm.currencyId }}</span> --> <!-- <span v-else>{{ addForm.currencyId }}</span> -->
<dict-tag v-else :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="addForm.currencyId" /> <!-- <dict-tag v-else :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="addForm.currencyId" /> -->
</el-form-item> </el-form-item>
</div> </div>
<el-form-item <el-form-item
...@@ -439,7 +457,8 @@ export default { ...@@ -439,7 +457,8 @@ export default {
usAmount: 0, usAmount: 0,
rmbAmount: 0, rmbAmount: 0,
nairaAmount: 0 nairaAmount: 0
} },
surplusData:[]
} }
}, },
computed: { computed: {
...@@ -474,6 +493,22 @@ export default { ...@@ -474,6 +493,22 @@ export default {
} }
}) })
return total return total
},
// 已核销总金额
writeOffAmount(){
let total = 0
this.detailed.forEach(item => {
total = NP.plus(total, item.writeOffAmount)
})
return total.toFixed(6)
},
WriteOffProportion(){
let total = 0
this.detailed.forEach(item => {
total = NP.plus(total, item.writeOffAmount)
})
let portion = NP.divide(total,this.form.receiptAccountList.find(item=>item.type=='total').writeOffAmount)
return (portion*100).toFixed(2)
} }
}, },
watch: { watch: {
...@@ -512,10 +547,10 @@ export default { ...@@ -512,10 +547,10 @@ export default {
const dollarList = res.data.filter(v => v.collectionCurrencyId == 1) const dollarList = res.data.filter(v => v.collectionCurrencyId == 1)
const dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0) const dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const rmbList = res.data.filter(v => v.collectionCurrencyId == 2) const rmbList = res.data.filter(v => v.collectionCurrencyId == 3)
const rmb = rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0) const rmb = rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const nairaList = res.data.filter(v => v.collectionCurrencyId == 3) const nairaList = res.data.filter(v => v.collectionCurrencyId == 2)
const naira = nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0) const naira = nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
res.data[res.data.length -1].collectionAmount = [dollar, rmb, naira] res.data[res.data.length -1].collectionAmount = [dollar, rmb, naira]
...@@ -526,14 +561,14 @@ export default { ...@@ -526,14 +561,14 @@ export default {
const d = res.data.find(v => v.currencyId == 1) const d = res.data.find(v => v.currencyId == 1)
d && (d.discountTotal = discountDollar) d && (d.discountTotal = discountDollar)
const rmbListByList = this.list.filter(v => v.currencyId === 2) const rmbListByList = this.list.filter(v => v.currencyId === 3)
const discountRmb = rmbListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0) const discountRmb = rmbListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
const r = res.data.find(v => v.currencyId == 2) const r = res.data.find(v => v.currencyId == 3)
r && (r.discountTotal = discountRmb) r && (r.discountTotal = discountRmb)
const nairaListByList = this.list.filter(v => v.currencyId === 3) const nairaListByList = this.list.filter(v => v.currencyId === 2)
const discountNaira = nairaListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0) const discountNaira = nairaListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
const n = res.data.find(v => v.currencyId == 3) const n = res.data.find(v => v.currencyId == 2)
n && (n.discountTotal = discountNaira) n && (n.discountTotal = discountNaira)
...@@ -552,55 +587,68 @@ export default { ...@@ -552,55 +587,68 @@ export default {
setWriteOffAmount() { setWriteOffAmount() {
this.$set(this.addForm, 'writeOffAmount', NP.times(this.addForm.rate || 0, this.addForm.amount || 0)) this.$set(this.addForm, 'writeOffAmount', NP.times(this.addForm.rate || 0, this.addForm.amount || 0))
}, },
getCurrencyLabel(id){
var label = this.currencyList.filter(item=>item.id == id)
if(label.length>0) return label[0].titleZh
return ''
},
calculation() { calculation() {
const verificationList = this.detailed.filter(v => v.status === 1) const verificationList = this.detailed.filter(v => v.status === 1)
const dollarList = verificationList.filter(v => v.currencyId === 1) const dollarList = verificationList.filter(v => v.currencyId === 1)
const dollar = dollarList.length > 0 ? dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.amount || 0), 0) : 0 const dollar = dollarList.length > 0 ? dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.amount || 0), 0) : 0
const rmbList = verificationList.filter(v => v.currencyId === 2) const rmbList = verificationList.filter(v => v.currencyId === 3)
const rmb = rmbList.length > 0 ? rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.amount || 0), 0) : 0 const rmb = rmbList.length > 0 ? rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.amount || 0), 0) : 0
const nairaList = verificationList.filter(v => v.currencyId === 3) const nairaList = verificationList.filter(v => v.currencyId === 2)
const naira = nairaList.length > 0 ? nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.amount || 0), 0) : 0 const naira = nairaList.length > 0 ? nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.amount || 0), 0) : 0
const usCount = NP.plus(dollar, NP.times(this.RMBtoUS(), rmb), NP.times(this.NANtoUS(), naira)) // const usCount = NP.plus(dollar, NP.times(this.RMBtoUS(), rmb), NP.times(this.NANtoUS(), naira))
const rmbCount = NP.plus(rmb, NP.times(this.UStoRMB(), dollar), NP.times(this.NANtoRMB(), naira)) // const rmbCount = NP.plus(rmb, NP.times(this.UStoRMB(), dollar), NP.times(this.NANtoRMB(), naira))
const nairaCount = NP.plus(naira, NP.times(this.UStoNAN(), dollar), NP.times(this.RMBtoNAN(), rmb)) // const nairaCount = NP.plus(naira, NP.times(this.UStoNAN(), dollar), NP.times(this.RMBtoNAN(), rmb))
this.verificationData.usCount = usCount // this.verificationData.usCount = usCount
this.verificationData.rmbCount = rmbCount // this.verificationData.rmbCount = rmbCount
this.verificationData.nairaCount = nairaCount // this.verificationData.nairaCount = nairaCount
this.verificationData.usCount = dollar
this.verificationData.rmbCount = rmb
this.verificationData.nairaCount = naira
if (this.showCurrencyId === 1) { // 美元 if (verificationList.indexOf(1)>-1) { // 美元
this.verificationData.writtenOff = usCount this.verificationData.writtenOff = dollar
this.verificationData.WriteOffProportion = NP.times(NP.divide(usCount, this.form.receivableTotalAmount), 100) this.verificationData.WriteOffProportion = NP.times(NP.divide(dollar, this.form.receivableTotalAmount), 100)
const remaining = NP.minus(this.form.receivableTotalAmount, usCount) const remaining = NP.minus(this.form.receivableTotalAmount, dollar)
this.remainingAmount = { // this.remainingAmount = {
usAmount: remaining, // usAmount: remaining,
rmbAmount: NP.times(this.UStoRMB(), remaining), // rmbAmount: NP.times(this.UStoRMB(), remaining),
nairaAmount: NP.times(this.UStoNAN(), remaining) // nairaAmount: NP.times(this.UStoNAN(), remaining)
} // }
this.remainingAmount.usAmount = remaining
} else if (this.showCurrencyId === 2) { // 人民币 } else if (this.showCurrencyId === 2) { // 人民币
this.verificationData.writtenOff = rmbCount this.verificationData.writtenOff = rmb
this.verificationData.WriteOffProportion = NP.times(NP.divide(rmbCount, this.form.receivableTotalAmount), 100) this.verificationData.WriteOffProportion = NP.times(NP.divide(rmb, this.form.receivableTotalAmount), 100)
const remaining = NP.minus(this.form.receivableTotalAmount, rmbCount) const remaining = NP.minus(this.form.receivableTotalAmount, rmb)
this.remainingAmount = { // this.remainingAmount = {
usAmount: NP.times(this.RMBtoUS(), remaining), // usAmount: NP.times(this.RMBtoUS(), remaining),
rmbAmount: remaining, // rmbAmount: remaining,
nairaAmount: NP.times(this.RMBtoNAN(), remaining) // nairaAmount: NP.times(this.RMBtoNAN(), remaining)
} // }
this.remainingAmount.rmbAmount = remaining
} else if (this.showCurrencyId === 3) { // 奈拉 } else if (this.showCurrencyId === 3) { // 奈拉
this.verificationData.writtenOff = nairaCount this.verificationData.writtenOff = naira
this.verificationData.WriteOffProportion = NP.times(NP.divide(nairaCount, this.form.receivableTotalAmount), 100) this.verificationData.WriteOffProportion = NP.times(NP.divide(naira, this.form.receivableTotalAmount), 100)
const remaining = NP.minus(this.form.receivableTotalAmount, nairaCount) const remaining = NP.minus(this.form.receivableTotalAmount, naira)
this.remainingAmount = { // this.remainingAmount = {
usAmount: NP.times(this.NANtoUS(), remaining), // usAmount: NP.times(this.NANtoUS(), remaining),
rmbAmount: NP.times(this.NANtoRMB(), remaining), // rmbAmount: NP.times(this.NANtoRMB(), remaining),
nairaAmount: remaining // nairaAmount: remaining
} // }
this.remainingAmount.nairaAmount = remaining
} }
}, },
accountChange(val){ accountChange(val){
var data = this.bankData.find(item=>item.id==val) var data = this.bankData.find(item=>item.id==val)
this.$set(this.addForm,'accountName',data.baAccountName) this.$set(this.addForm,'accountName',data.baAccountName)
this.$set(this.addForm,'accountNo',data.baAccountNum)
this.$set(this.addForm,'accountBankName',data.baBankName)
}, },
RMBtoUS() { RMBtoUS() {
return NP.divide(100, this.currencyList.find(v => v.titleEn === 'USD').huilv) return NP.divide(100, this.currencyList.find(v => v.titleEn === 'USD').huilv)
...@@ -626,12 +674,12 @@ export default { ...@@ -626,12 +674,12 @@ export default {
if(val === this.showCurrencyId) { if(val === this.showCurrencyId) {
rate = 1 rate = 1
} else { } else {
if (this.showCurrencyId === 1 && val === 2) rate = this.RMBtoUS() if (this.showCurrencyId === 1 && val === 3) rate = this.RMBtoUS()
else if (this.showCurrencyId === 1 && val === 3) rate = this.NANtoUS() else if (this.showCurrencyId === 1 && val === 2) rate = this.NANtoUS()
else if (this.showCurrencyId === 2 && val === 1) rate = this.UStoRMB() else if (this.showCurrencyId === 3 && val === 1) rate = this.UStoRMB()
else if (this.showCurrencyId === 2 && val === 3) rate = this.NANtoRMB() else if (this.showCurrencyId === 3 && val === 2) rate = this.NANtoRMB()
else if (this.showCurrencyId === 3 && val === 1) rate = this.UStoNAN() else if (this.showCurrencyId === 2 && val === 1) rate = this.UStoNAN()
else if (this.showCurrencyId === 3 && val === 2) rate = this.RMBtoNAN() else if (this.showCurrencyId === 2 && val === 3) rate = this.RMBtoNAN()
} }
this.$set(this.addForm, 'rate', rate) this.$set(this.addForm, 'rate', rate)
}, },
...@@ -760,7 +808,7 @@ export default { ...@@ -760,7 +808,7 @@ export default {
}) })
.then(() => { .then(() => {
this.$modal.msgSuccess(this.$t('核销成功')); this.$modal.msgSuccess(this.$t('核销成功'));
this.$router.back(); this.$store.dispatch('tagsView/delCurrentView');
}) })
.catch(() => {}); .catch(() => {});
}, },
...@@ -768,6 +816,47 @@ export default { ...@@ -768,6 +816,47 @@ export default {
this.openAddDialog = false this.openAddDialog = false
}, },
handleAddReceiptItem() { 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.form.receiptAccountList.forEach(item => {
if(item.type!='total'){
if(!collom[item.currencyId]){
collom[item.currencyId] = item.receivableAmount-item.discountTotal
}else collom[item.currencyId] = NP.plus(collom[item.currencyId], item.receivableAmount)
}
})
console.log('collom',collom)
if(recepted.length>collom.length){
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
}
}
})
}else{
collom.forEach((amount,currency)=>{
if(amount){
if(recepted[currency]){
if((amount-recepted[currency])!=0) this.surplusData[currency] = +parseFloat((amount-recepted[currency]).toPrecision(12))
}else{
this.surplusData[currency] = amount
}
}
})
}
console.log(this.surplusData)
this.addForm = {} this.addForm = {}
this.openAddDialog = true this.openAddDialog = true
this.isView = false this.isView = false
......
...@@ -193,7 +193,11 @@ ...@@ -193,7 +193,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="num" /> <el-table-column :label="$t('箱数')" align="center" prop="num" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight" /> <el-table-column :label="$t('体积/重量')" align="center" prop="weight" >
<template slot-scope="scope">
{{ scope.row.volume}}/ {{ scope.row.weight}}
</template>
</el-table-column>
<el-table-column :label="$t('发货人')" align="center" prop="consignorName" /> <el-table-column :label="$t('发货人')" align="center" prop="consignorName" />
<el-table-column :label="$t('收货人')" align="center" prop="consigneeName" /> <el-table-column :label="$t('收货人')" align="center" prop="consigneeName" />
<el-table-column :label="$t('订单状态')" align="center" prop="status"> <el-table-column :label="$t('订单状态')" align="center" prop="status">
......
...@@ -193,13 +193,13 @@ ...@@ -193,13 +193,13 @@
> >
<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" size="mini" type="text" @click="verificationCancelClick(scope.row)">{{ $t('收款') }}</el-button>
<el-button v-if="scope.row.state == 0 || scope.row.state == 1" size="mini" type="text" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button> <el-button v-if="scope.row.state == 0 || scope.row.state == 1" size="mini" type="text" @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)"
>{{ $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"
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国家')" prop="source"> <el-form-item :label="$t('国家')" prop="source">
<el-select clearable v-model="form.country" :placeholder="$t('请选择国家')"> <el-select clearable v-model="queryParams.country" :placeholder="$t('请选择国家')">
<el-option v-for="dict in countryList" <el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" /> :key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select> </el-select>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="daterange" 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="form.level" > <el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -179,6 +179,8 @@ export default { ...@@ -179,6 +179,8 @@ export default {
customerService: null, customerService: null,
status: null, status: null,
department: null, department: null,
creditLevel:null,
country:null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -299,11 +301,24 @@ export default { ...@@ -299,11 +301,24 @@ export default {
resetQuery() { resetQuery() {
this.dateRangeCreateTime = []; this.dateRangeCreateTime = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams = {
pageNo: 1,
pageSize: 10,
number: null,
name: null,
level: null,
source: null,
customerService: null,
status: null,
department: null,
creditLevel:null,
country:null,
}
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.$router.push('/customer/add-edit/0') this.$router.push({path:'/customer/add-edit/0',query:{isCustomerServiceConfirmed:true,}})
// this.reset(); // this.reset();
// this.open = true; // this.open = true;
// this.title = "添加客户"; // this.title = "添加客户";
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type"></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small"> <el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国家')" prop="source"> <el-form-item :label="$t('国家')" prop="source">
<el-select clearable v-model="form.country" :placeholder="$t('请选择国家')"> <el-select clearable v-model="queryParams.country" :placeholder="$t('请选择国家')">
<el-option v-for="dict in countryList" <el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" /> :key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select> </el-select>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> type="daterange" 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="form.level" > <el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option> <el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -295,6 +295,19 @@ export default { ...@@ -295,6 +295,19 @@ export default {
resetQuery() { resetQuery() {
this.dateRangeCreateTime = []; this.dateRangeCreateTime = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams = {
pageNo: 1,
pageSize: 10,
number: null,
name: null,
level: null,
source: null,
customerService: null,
status: null,
department: null,
creditLevel:null,
country:null,
}
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
{{form.orgSeaFreight}} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }} {{form.orgSeaFreight}} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item> </el-form-item>
<el-form-item :label="$t('佣金类型')" prop="commissionType"> <el-form-item :label="$t('佣金类型')" prop="commissionType">
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" v-model="form.commissionType" form-type="radio" /> <dict-selector :type="DICT_TYPE.COMMISSION_TYPE" v-model="form.commissionType" form-type="radio" formatter="number" />
</el-form-item> </el-form-item>
<!-- 明佣或者明佣+暗佣才显示 --> <!-- 明佣或者明佣+暗佣才显示 -->
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<div v-if="form.applyStatus != 1"> <div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button> <el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div> </div>
<div v-else> <div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)"> <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
...@@ -133,6 +133,20 @@ export default { ...@@ -133,6 +133,20 @@ export default {
} }
}, },
computed: { computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgLightCommissionAmount', 'lightCommissionAmount'],
['orgShadeCommissionAmount', 'shadeCommissionAmount'],
['commissionType', 'orgCommissionType']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名 // 根据渠道id显示渠道名
getChannelNameById(){ getChannelNameById(){
return channelId => { return channelId => {
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<div class="page-title">审批流程</div> <div class="page-title">审批流程</div>
<work-flow xmlkey="sheet_sale" v-model="ccIdArr" /> <work-flow xmlkey="sheet_sale" v-model="ccIdArr" />
<div v-if="form.applyStatus != 1"> <div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button> <el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div> </div>
<div v-else> <div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)"> <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
...@@ -107,6 +107,7 @@ export default { ...@@ -107,6 +107,7 @@ export default {
form: { form: {
type: 1 type: 1
}, },
orignal: {}, // 原始数据,用来判断是否做了修改
rules:{ rules:{
seaFreight : {required: true, message: '运费不能为空'}, seaFreight : {required: true, message: '运费不能为空'},
clearanceFreight: {required: true, message: '清关费不能为空'} clearanceFreight: {required: true, message: '清关费不能为空'}
...@@ -130,6 +131,7 @@ export default { ...@@ -130,6 +131,7 @@ export default {
getOfferSpecial(){ getOfferSpecial(){
getOfferSpecial(this.offerProdId, {type: 1}).then(r => { getOfferSpecial(this.offerProdId, {type: 1}).then(r => {
this.form = r.data this.form = r.data
this.orignal = r.data
}) })
}, },
getProductTypeNameById(id){ getProductTypeNameById(id){
...@@ -140,6 +142,19 @@ export default { ...@@ -140,6 +142,19 @@ export default {
} }
}, },
computed: { computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgClearanceFreight', 'clearanceFreight'],
['orgSeaFreight', 'seaFreight']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名 // 根据渠道id显示渠道名
getChannelNameById(){ getChannelNameById(){
return channelId => { return channelId => {
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="120px" inline> <el-form ref="form" :model="form" :rules="rules" label-width="120px" inline :validate-on-rule-change="false">
<el-card> <el-card>
<div slot="header" class="card-title">{{$t('新建报价单')}}</div> <div slot="header" class="card-title">{{$t('新建报价单')}}</div>
<el-form-item :label="$t('所属人')" prop="relation"> <el-form-item :label="$t('所属人')" prop="relation">
...@@ -552,7 +552,19 @@ export default { ...@@ -552,7 +552,19 @@ export default {
transportVO: {} transportVO: {}
}, },
// 表单校验 // 表单校验
rules: {
labelStyle: 'width:120px',
productNames: {}, // 品名id和名称对应关系
couponAvailableGroupDtoList: [], // 可用优惠
couponTotalAmountList: [], // 优惠总额
contactChooseType: null, // 联系人选择对象consignor(发货人) 或者 consignee(收货人)
quickCreateType: null, // 快速新建客户类型,1发货人,2收货人
getOpenedRouterListHandler: undefined
};
},
computed:{
rules(){
let rules = {
marks: [ marks: [
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
...@@ -565,8 +577,8 @@ export default { ...@@ -565,8 +577,8 @@ export default {
} }
], ],
lineId: [{ required: true, message: "请选择线路"}], lineId: [{ required: true, message: "请选择线路"}],
consignorId: [{ required: true, message: "发货人不能为空",}], /* consignorId: [{ required: true, message: "发货人不能为空",}],
consigneeId: [{ required: true, message: "收货人不能为空"}], consigneeId: [{ required: true, message: "收货人不能为空"}], */
startTime: [{ required: true, message: "有效期开始时间不能为空"}], startTime: [{ required: true, message: "有效期开始时间不能为空"}],
endTime: [{ required: true, message: "有效期结束时间不能为空"}], endTime: [{ required: true, message: "有效期结束时间不能为空"}],
transportId: [{ required: true, message: "选择运输方式"}], transportId: [{ required: true, message: "选择运输方式"}],
...@@ -575,18 +587,15 @@ export default { ...@@ -575,18 +587,15 @@ export default {
relation: [{ required: true, message: "请选择所属人"}], relation: [{ required: true, message: "请选择所属人"}],
control: [{ required: true, message: "请选择是否控货"}], control: [{ required: true, message: "请选择是否控货"}],
importance: [{ required: true, message: "请选择重要成都"}] importance: [{ required: true, message: "请选择重要成都"}]
/*sendstatus: [{ required: true, message: "站内信状态,0未发送,1已发送不能为空", trigger: "blur" }], */ }
}, if(this.form.relation == 1){
labelStyle: 'width:120px', rules.consignorId = [{ required: true, message: "发货人不能为空",}]
productNames: {}, // 品名id和名称对应关系 }
couponAvailableGroupDtoList: [], // 可用优惠 if(this.form.relation == 2){
couponTotalAmountList: [], // 优惠总额 rules.consigneeId = [{ required: true, message: "收货人不能为空",}]
contactChooseType: null, // 联系人选择对象consignor(发货人) 或者 consignee(收货人) }
quickCreateType: null, // 快速新建客户类型,1发货人,2收货人 return rules
getOpenedRouterListHandler: undefined
};
}, },
computed:{
exportCityList(){ exportCityList(){
return this.tradeCityList.filter(item => item.type == 2) return this.tradeCityList.filter(item => item.type == 2)
}, },
......
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('控货状态')" align="center" prop="transportId"> <el-table-column :label="$t('控货状态')" align="center" prop="transportId">
<template slot-scope="{row}"> <template slot-scope="{row}">
<template v-if="row.cargoControlStatus == 1 && row.isToReview">放货中</template> <template v-if="row.cargoControlStatus == 1 && row.isToReview">{{$t('放货中')}}</template>
<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>
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
</div> </div>
<el-table :data="[formData]" border class="release-table"> <el-table :data="[formData]" border class="release-table">
<el-table-column :label="$t('控货箱数')"> <el-table-column :label="$t('控货箱数')">
{{detail.sumNum}} {{detail.sumNum - detail.releaseNum }}
</el-table-column> </el-table-column>
<el-table-column :label="$t('放货箱数')"> <el-table-column :label="$t('放货箱数')">
<template slot-scope="{row}"> <template slot-scope="{row}">
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-input v-model="cargoControlName" disabled></el-input> <el-input v-model="cargoControlName" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('原控货手机号')"> <el-form-item :label="$t('原控货手机号')">
<el-input :value="consigneeCountryCode + ' ' + cargoControlPhone" disabled></el-input> <el-input :value="'+' + cargoControlCountryCode + ' ' + cargoControlPhone" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('新控货人')" prop="name"> <el-form-item :label="$t('新控货人')" prop="name">
...@@ -14,15 +14,14 @@ ...@@ -14,15 +14,14 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('新控货手机号')" prop="phone"> <el-form-item :label="$t('新控货手机号')" prop="phone">
<area-code-selector v-model="form.dialCodeSrc" /> <area-code-selector v-model="form.dialCodeSrc" />
<el-input v-model="form.phone" type="tel" class="ml-10 w-200" /> <el-input v-model="form.phone" type="tel" maxlength="11" class="ml-10 w-200" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('新控货人邮箱')" prop="email"> <el-form-item :label="$t('新控货人邮箱')" prop="email">
<el-input v-model="form.email" type="email"></el-input> <el-input v-model="form.email" type="email"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('手机验证码')" prop="code"> <el-form-item :label="$t('手机验证码')" prop="code">
<el-input v-model.number="form.code" type="number"> <el-input v-model.number="form.code" type="number" class="w-200 mr-10"></el-input>
<send-sms-code slot="append" :order-id="orderId" scene="4" /> <send-sms-code :order-id="orderId" scene="4" />
</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>
...@@ -49,9 +48,8 @@ export default { ...@@ -49,9 +48,8 @@ export default {
orderId: [String, Number], orderId: [String, Number],
cargoControlName: String, cargoControlName: String,
cargoControlPhone: String, cargoControlPhone: String,
consigneeCountryCode: String, cargoControlCountryCode: String,
orderNo: String, orderNo: String,
}, },
components: {SendSmsCode, NeedKnow, AreaCodeSelector}, components: {SendSmsCode, NeedKnow, AreaCodeSelector},
data(){ data(){
......
...@@ -121,6 +121,10 @@ ...@@ -121,6 +121,10 @@
<div v-if="type === 2"> <div v-if="type === 2">
<p>申请理由</p> <p>申请理由</p>
<div> <div>
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="FeeDetails.feeType" />
{{FeeDetails.applicationFee}}
<dict-tag :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" :value="FeeDetails.applicationFeeCurrency" />
<dict-tag :value="FeeDetails.payType" :type="DICT_TYPE.PAYMENT_TYPE" ></dict-tag>
{{FeeDetails.remarks}} {{FeeDetails.remarks}}
</div> </div>
</div> </div>
...@@ -162,6 +166,7 @@ import { ...@@ -162,6 +166,7 @@ import {
import { getChannelList } from '@/api/ecw/channel'; import { getChannelList } from '@/api/ecw/channel';
import Template from "@/views/cms/template"; import Template from "@/views/cms/template";
import {getSupplierPage} from "@/api/ecw/supplier"; import {getSupplierPage} from "@/api/ecw/supplier";
import { DICT_TYPE } from "@/utils/dict";
export default { export default {
components: {Template}, components: {Template},
props:{ props:{
...@@ -176,6 +181,7 @@ export default { ...@@ -176,6 +181,7 @@ export default {
name: "warehouseDetails", name: "warehouseDetails",
data(){ data(){
return{ return{
DICT_TYPE,
FeeDetails:{ FeeDetails:{
orderBackVO:{}, orderBackVO:{},
logisticsInfoDto:{} logisticsInfoDto:{}
......
<template> <template>
<div> <div>
<el-dialog <el-dialog
...@@ -9,12 +8,12 @@ ...@@ -9,12 +8,12 @@
v-bind="$attrs" v-bind="$attrs"
> >
<el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}"> <el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}">
<el-tab-pane v-if="item.warehouseId === warehouseId" :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="item.id + index"> <el-tab-pane v-if="item.warehouseId === warehouseId" :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="index">
<div> <div>
<div style="text-align: center">区域</div> <div style="text-align: center">区域</div>
<div style="background-color: #efefef;padding: 10px 10px 0;border: #dcdcdc solid 1px;border-radius: 2px"> <div style="background-color: #efefef;padding: 10px 10px 0;border: #dcdcdc solid 1px;border-radius: 2px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12" v-for="(warehouse, i) in item.children" :key="warehouse.id + i"> <el-col :span="12" v-for="warehouse in item.children" :key="warehouse.id">
<div <div
class="warehouse-block" class="warehouse-block"
:class="{'warehouse-block-selected': warehouse.selected, 'warehouse-block-active': warehouse.id === activeWarehouse.id}" :class="{'warehouse-block-selected': warehouse.selected, 'warehouse-block-active': warehouse.id === activeWarehouse.id}"
...@@ -29,14 +28,25 @@ ...@@ -29,14 +28,25 @@
<div> <div>
<div style="text-align: center">仓位</div> <div style="text-align: center">仓位</div>
<div class="position-group"> <div class="position-group">
<div class="position" v-for="(position ,index) in activeWarehouse.positionList" :key="item.id + index "> <div class="position" v-for="position in activeWarehouse.positionList" :key="position.id" @click="handleSelectPosition(position)">
<template v-if="position.children">
<div <div
class="position-item" class="position-item"
v-for="item in position.children" v-for="item in position.children"
@click="handleSelectPosition(item)" :key="item.id"
@click.stop="handleSelectPositionChild(item)"
:class="{'position-item-active': item.selected}"> :class="{'position-item-active': item.selected}">
{{ item.code }} {{ item.code }}
</div> </div>
</template>
<template v-else>
<div
class="position-item"
:class="{'position-item-active': position.selected}">
{{ position.code }}
</div>
</template>
</div> </div>
</div> </div>
</div> </div>
...@@ -57,7 +67,7 @@ ...@@ -57,7 +67,7 @@
import { getByWarehouseId } from '@/api/ecw/warehouseArea' import { getByWarehouseId } from '@/api/ecw/warehouseArea'
export default { export default {
name: 'warehouseLocation', name: 'WarehouseAreaDialog',
props: { props: {
visible: { visible: {
type: Boolean, type: Boolean,
...@@ -72,7 +82,7 @@ export default { ...@@ -72,7 +82,7 @@ export default {
warehouseId: { warehouseId: {
type: Number, type: Number,
default: undefined default: undefined
}, }
}, },
data() { data() {
...@@ -83,7 +93,8 @@ export default { ...@@ -83,7 +93,8 @@ export default {
activeName: '0', activeName: '0',
selectedWarehouse: [], selectedWarehouse: [],
selectedPosition: [], selectedPosition: [],
activeWarehouse: {} activeWarehouse: {},
activeWarehouseId: undefined
}; };
}, },
...@@ -92,16 +103,17 @@ export default { ...@@ -92,16 +103,17 @@ export default {
if (val) { if (val) {
this.opened = true this.opened = true
getByWarehouseId({cityId: this.cityId,}).then(r => { if (this.area.length === 0) getByWarehouseId({cityId: this.cityId,warehouseId: this.warehouseId }).then(r => {
const area = r.data const area = r.data
area.forEach(e => { area.forEach(e => {
// 仓库 // 仓库
e.children.forEach(f => { e.children?.forEach(f => {
// 区域 // 区域
f.selected = false f.selected = false
if(f.positionList) f.positionList.forEach(g => { if(f.positionList) f.positionList.forEach(g => {
// 位置 // 位置
if(g.children)g.children.forEach(k => { g.selected = false
g.children?.forEach(k => {
// 子位置 // 子位置
k.selected = false k.selected = false
}) })
...@@ -131,18 +143,25 @@ export default { ...@@ -131,18 +143,25 @@ export default {
this.activeWarehouse = warehouse this.activeWarehouse = warehouse
if (!!warehouse.selected) { if (!!warehouse.selected) {
warehouse.selected = false warehouse.selected = false
} else { return
} else if(this.activeWarehouseId !== warehouse.id) {
this.activeWarehouseId = warehouse.id
console.log(this.inputValue.find(e => e.areaId === warehouse.id), warehouse.id)
if (this.inputValue.find(e => e.areaId === warehouse.id)){
return
}
}
warehouse.selected = true warehouse.selected = true
// 区域被选,清空该区域下的位置 // 区域被选,清空该区域下的位置
if(warehouse.positionList) warehouse.positionList.forEach(g => { if(warehouse.positionList) warehouse.positionList?.forEach(g => {
if(g.children)g.children.forEach(k => { g.selected = false
g.children?.forEach(k => {
k.selected = false k.selected = false
}) })
}) })
}
}, },
handleSelectPosition(position) { handleSelectPositionChild(position) {
if (!!position.selected) { if (!!position.selected) {
position.selected = false position.selected = false
...@@ -151,9 +170,9 @@ export default { ...@@ -151,9 +170,9 @@ export default {
if (!parentAre.selected) { if (!parentAre.selected) {
// 检查父区域下是否所有位置被反选 // 检查父区域下是否所有位置被反选
let hasSelected = false let hasSelected = false
parentAre.positionList.forEach(g => { parentAre.positionList?.forEach(g => {
// 位置 // 位置
g.children.forEach(k => { g.children?.forEach(k => {
// 子位置 // 子位置
if (k.selected) hasSelected = true if (k.selected) hasSelected = true
}) })
...@@ -167,6 +186,17 @@ export default { ...@@ -167,6 +186,17 @@ export default {
// 选位置时,父区域反选 // 选位置时,父区域反选
this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId).selected = false this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId).selected = false
}
},
handleSelectPosition(position) {
if (!!position.selected) {
position.selected = false
} else {
position.selected = true
// 选位置时,父区域反选
this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId).selected = false
} }
} }
}, },
...@@ -180,17 +210,17 @@ export default { ...@@ -180,17 +210,17 @@ export default {
selected() { selected() {
const result = [] const result = []
this.area.forEach(e => { this.area?.forEach(e => {
// 仓库 // 仓库
e.children.forEach(f => { e.children?.forEach(f => {
// 区域 // 区域
if (f.selected) result.push(f.code) if (f.selected) result.push(f.code)
else if(f.positionList) f.positionList.forEach(g => { else f.positionList?.forEach(g => {
// 位置 // 位置
if (g.selected) result.push(k.code) if (g.selected) result.push(f.code + g.code)
if(g.children)g.children.forEach(k => { else if(g.children) g.children?.forEach(k => {
// 子位置 // 子位置
if (k.selected) result.push(k.code) if (k.selected) result.push(f.code + k.code)
}) })
}) })
}) })
...@@ -201,16 +231,17 @@ export default { ...@@ -201,16 +231,17 @@ export default {
inputValue(){ inputValue(){
const result = [] const result = []
this.area.forEach(e => { this.area?.forEach(e => {
// 仓库 // 仓库
e.children.forEach(f => { e.children?.forEach(f => {
// 区域 // 区域
if (f.selected) result.push({ if (f.selected) result.push({
orderId: this.orderId, orderId: this.orderId,
wareId: f.pid, wareId: f.pid,
areaId: f.id areaId: f.id
}) })
else if(f.positionList) f.positionList.forEach(g => { else {
f.positionList?.forEach(g => {
// 位置 // 位置
if (g.selected) result.push({ if (g.selected) result.push({
orderId: this.orderId, orderId: this.orderId,
...@@ -218,7 +249,7 @@ export default { ...@@ -218,7 +249,7 @@ export default {
areaId: g.areaId, areaId: g.areaId,
locationId: g.id locationId: g.id
}) })
else if(g.children)g.children.forEach(k => { else g.children?.forEach(k => {
// 子位置 // 子位置
if (k.selected) result.push({ if (k.selected) result.push({
orderId: this.orderId, orderId: this.orderId,
...@@ -228,6 +259,7 @@ export default { ...@@ -228,6 +259,7 @@ export default {
}) })
}) })
}) })
}
}) })
}) })
...@@ -272,9 +304,10 @@ export default { ...@@ -272,9 +304,10 @@ export default {
border: 1px #EFEFEF solid; border: 1px #EFEFEF solid;
gap: 1px; gap: 1px;
min-height: 64px; min-height: 64px;
flex-flow: wrap;
} }
.position{ .position{
width: 20%; width: calc(20% - 1px);
height: 64px; height: 64px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
......
...@@ -89,12 +89,17 @@ ...@@ -89,12 +89,17 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('代收货款')"> <el-descriptions-item :label="$t('代收货款')">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCollection" /> <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCollection" />
<template v-if="order.isCollection == 1">({{order.collectionProxy}}{{currencyMap[order.collectionProxyCurrency]}})</template>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('集运仓库')"> <el-descriptions-item :label="$t('集运仓库')">
{{isExternalWarehouse ? '自有仓' : '外部仓'}} {{order.isExternalWarehouse ? $t('外部仓') : $t('自有仓') }}
<div v-for="(item, index) in order.externalWarehouseDtoList" :key="index"> <template v-for="(item, index) in order.externalWarehouseDtoList" >
装柜时间: {{item.estLoadingTime}} 装柜地址:{{item.loadingAddress}} <div v-if="item.estLoadingTime || item.loadingAddress" :key="index">
<!-- {{$t('装柜时间')}}{{item.estLoadingTime}} -->
{{$t('装柜地址')}}{{item.loadingAddress}}
</div> </div>
</template>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -196,10 +201,14 @@ ...@@ -196,10 +201,14 @@
{{objective.titleZh || '-'}} {{objective.titleZh || '-'}}
</el-table-column> </el-table-column>
<el-table-column :label="$t('品名')" prop="titleZh"></el-table-column> <el-table-column :label="$t('品名')" prop="titleZh"></el-table-column>
<el-table-column :label="$t('箱数')" prop="num"></el-table-column> <el-table-column :label="$t('箱数')" prop="num">
<template slot-scope="{row}">
{{row.num || '-'}}
</template>
</el-table-column>
<el-table-column :label="$t('体积/重量')"> <el-table-column :label="$t('体积/重量')">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.volume}} / {{row.weight}} {{row.volume || '-'}} / {{row.weight || '-'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收款类型')"> <el-table-column :label="$t('收款类型')">
......
...@@ -291,11 +291,11 @@ ...@@ -291,11 +291,11 @@
</div> </div>
<div> <div>
<el-form-item :label="$t('外部仓库')" prop="isExternalWarehouse"> <el-form-item :label="$t('外部仓库')" prop="isExternalWarehouse">
<el-checkbox label="" :checked="!!form.isExternalWarehouse" @change="form.isExternalWarehouse=$event" :disabled="false"></el-checkbox> <el-checkbox label="" v-model="form.isExternalWarehouse" @change="form.isExternalWarehouse=$event" :disabled="false"></el-checkbox>
</el-form-item> </el-form-item>
<div v-if="form.isExternalWarehouse" class="pl-50"> <div v-if="form.isExternalWarehouse" class="pl-50">
<div v-for="(item, index) in form.externalWarehouseDtoList" class="flex" :key="index"> <div v-for="(item, index) in form.externalWarehouseDtoList" class="flex" :key="index">
<div class="w-300"> <!-- <div class="w-300">
<el-form-item :label="$t('装货时间')" <el-form-item :label="$t('装货时间')"
:prop="'externalWarehouseDtoList.' + index + '.estLoadingTime'" :prop="'externalWarehouseDtoList.' + index + '.estLoadingTime'"
:rules="{ :rules="{
...@@ -304,8 +304,8 @@ ...@@ -304,8 +304,8 @@
> >
<el-date-picker v-model="item.estLoadingTime" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker> <el-date-picker v-model="item.estLoadingTime" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker>
</el-form-item> </el-form-item>
</div> </div> -->
<div class="w-300 ml-10"> <div class="w-300">
<el-form-item :label="$t('装货地址')" <el-form-item :label="$t('装货地址')"
:prop="'externalWarehouseDtoList.' + index + '.loadingAddress'" :prop="'externalWarehouseDtoList.' + index + '.loadingAddress'"
:rules="{ :rules="{
...@@ -535,7 +535,7 @@ export default { ...@@ -535,7 +535,7 @@ export default {
isCollection: false, isCollection: false,
type:[], type:[],
isExternalWarehouse: false, isExternalWarehouse: false,
externalWarehouseDtoList:[{}], externalWarehouseDtoList:[],
orderItemVOList:[], orderItemVOList:[],
drawee: 2 drawee: 2
}, },
...@@ -583,7 +583,7 @@ export default { ...@@ -583,7 +583,7 @@ export default {
computed:{ computed:{
// 是否已完成入仓 // 是否已完成入仓
inWarehouse(){ inWarehouse(){
return this.form.inWarehouseState && this.form.inWarehouseState > 201 return !!this.form.inWarehouseState && this.form.inWarehouseState > 201
}, },
exportCityList(){ exportCityList(){
return this.tradeCityList.filter(item => item.type == 2 || item.type == 3) return this.tradeCityList.filter(item => item.type == 2 || item.type == 3)
...@@ -733,9 +733,22 @@ export default { ...@@ -733,9 +733,22 @@ export default {
if(!router) return if(!router) return
this.$set(this.form, 'departureId', router.startCityId) this.$set(this.form, 'departureId', router.startCityId)
this.$set(this.form, 'objectiveId', router.destCityId) this.$set(this.form, 'objectiveId', router.destCityId)
this.calculationPrice()
}, },
'form.packageTypeArr'(val){ 'form.packageTypeArr'(val){
console.log('packageType', val, val.length)
this.$set(this.form, 'packageType', val ? val.join(',') : '') this.$set(this.form, 'packageType', val ? val.join(',') : '')
},
'form.isExternalWarehouse'(isExternalWarehouse){
// 勾选外部仓则添加一个默认的,取消则删除默认的空的
if(!isExternalWarehouse){
this.$set(this.form, 'externalWarehouseDtoList', [])
}else if(!this.form.externalWarehouseDtoList.length){
this.$set(this.form, 'externalWarehouseDtoList', [{}])
}
}, },
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择 // 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
selectedRouter(val){ selectedRouter(val){
...@@ -777,12 +790,12 @@ export default { ...@@ -777,12 +790,12 @@ export default {
methods: { methods: {
getOrder(){ getOrder(){
getUpdateInfo(this.$route.query.id).then(res => { getUpdateInfo(this.$route.query.id).then(res => {
this.form = res.data this.form = {...res.data}
this.form.orderItemVOList = [];
this.form.orderItemVOList.forEach(item => {
item.prodAttrArr = item.prodAttrIds.split(',').filter(item => item != '')
})
this.form.type = this.form.type ? this.form.type.split(',').filter(item => item != '') : [] this.form.type = this.form.type ? this.form.type.split(',').filter(item => item != '') : []
this.form.packageTypeArr = this.form.packageType ? this.form.packageType.split(',').filter(item => item != '') : []
this.$set(this.form, 'consignorCompany', res.data.consignorVO.company) this.$set(this.form, 'consignorCompany', res.data.consignorVO.company)
this.$set(this.form, 'consignorContactsId', res.data.consignorVO.customerContactsId) this.$set(this.form, 'consignorContactsId', res.data.consignorVO.customerContactsId)
this.$set(this.form, 'consignorCountryCode', res.data.consignorVO.countryCode.replace('+', '')) this.$set(this.form, 'consignorCountryCode', res.data.consignorVO.countryCode.replace('+', ''))
...@@ -808,7 +821,12 @@ export default { ...@@ -808,7 +821,12 @@ export default {
} }
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单 // 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
this.$nextTick(res => { this.$nextTick(() => {
res.data.orderItemVOList.forEach(item => {
item.prodAttrArr = item.prodAttrIds.split(',').filter(item => item != '').map(attrId => +attrId)
this.form.orderItemVOList.push({...item})
})
if(this.inWarehouse){ if(this.inWarehouse){
Object.keys(this.rules).forEach(field => { Object.keys(this.rules).forEach(field => {
console.log("watch", field) console.log("watch", field)
...@@ -898,7 +916,9 @@ export default { ...@@ -898,7 +916,9 @@ export default {
onProductChange(row, product){ onProductChange(row, product){
console.log(product) console.log(product)
// row.goodsType = product ? product.typeId : null // row.goodsType = product ? product.typeId : null
if(product.id != row.prodId){
row.prodAttrArr = !product ? [] : product.attrId.split(',').filter(item => item !== '').map(item => +item) row.prodAttrArr = !product ? [] : product.attrId.split(',').filter(item => item !== '').map(item => +item)
}
row.prodTitleEn = product.titleEn row.prodTitleEn = product.titleEn
row.prodTitleZh = product.titleZh row.prodTitleZh = product.titleZh
this.calculationPrice() this.calculationPrice()
...@@ -962,8 +982,8 @@ export default { ...@@ -962,8 +982,8 @@ export default {
if(this.form.harvestMethod == 2){ if(this.form.harvestMethod == 2){
if(!this.form.country || !this.form.province || !this.form.city){ if(!this.form.country || !this.form.province || !this.form.city){
return this.$notify({ return this.$notify({
title: '提示', title: this.$t('提示'),
message: "收货地区填写不完整", message: this.$t("收货地区填写不完整"),
type: 'warning' type: 'warning'
}); });
} }
......
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
<el-table-column :label="$t('运输方式/目的地')" align="center"> <el-table-column :label="$t('运输方式/目的地')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag> <span><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
{{'/'+scope.row.destinationZh}}</span> / {{$l(scope.row, 'destination')}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('控货')" align="center"> <el-table-column :label="$t('控货')" align="center">
......
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
<el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName"> <el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.startWarehouseName}} {{row.startWarehouseName}}
<template v-if="row.isExternalWarehouse">({{$t('外部仓')}})</template> <span style="color:red" v-if="row.isExternalWarehouse">({{$t('外部仓')}})</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('运输方式/目的地')" align="center" prop="transportId"> <el-table-column :label="$t('运输方式/目的地')" align="center" prop="transportId">
......
...@@ -209,7 +209,7 @@ ...@@ -209,7 +209,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('预付商品货值占佣金额比例')+':'" label-width="200px"> <el-form-item :label="$t('预付商品货值占总货值比例')+':'" label-width="200px">
{{orderFee.paymentGoodsWorthScale}}% {{orderFee.paymentGoodsWorthScale}}%
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -232,7 +232,7 @@ ...@@ -232,7 +232,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :span="8" v-if="orderExceptionData.orderExceptionType=='order_doc_exception'"> <el-row :span="8" v-if="orderExceptionData.orderExceptionType=='order_doc_exception'">
<el-form-item :label="$t('报关资料')+':'" size="medium"> <el-form-item :label="$t('报关资料')+':'" size="medium" :require="true">
<file-upload v-model="handlerParams.fileList" :value="orderExceptionData.file" ></file-upload> <file-upload v-model="handlerParams.fileList" :value="orderExceptionData.file" ></file-upload>
</el-form-item> </el-form-item>
</el-row> </el-row>
...@@ -384,7 +384,7 @@ ...@@ -384,7 +384,7 @@
'handlerParams.orderExceptionHandlerResult'(val){ 'handlerParams.orderExceptionHandlerResult'(val){
if(val == 'no_pay'){ if(val == 'no_pay'){
this.showWorkFlow = true this.showWorkFlow = true
} }else this.showWorkFlow = false
} }
}, },
computed: { computed: {
...@@ -470,6 +470,12 @@ ...@@ -470,6 +470,12 @@
this.$modal.msgError(this.$t('请选择处理结果')); this.$modal.msgError(this.$t('请选择处理结果'));
return return
} }
if(this.orderExceptionData.orderExceptionType=='order_doc_exception'){
if(!this.handlerParams.fileList||this.handlerParams.fileList.length==0){
this.$modal.msgError(this.$t('请上传报关资料'));
return
}
}
handlerExceptionByExceptionId(this.handlerParams).then(res=>{ handlerExceptionByExceptionId(this.handlerParams).then(res=>{
this.$modal.msgSuccess(this.$t('提交成功')); this.$modal.msgSuccess(this.$t('提交成功'));
this.$redirect('/order/pending?id=' + this.orderData.orderId) this.$redirect('/order/pending?id=' + this.orderData.orderId)
......
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
</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">
{{scope.row.abnormalState!=0?$t('异常'):$t('正常')}} <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -180,6 +180,7 @@ export default { ...@@ -180,6 +180,7 @@ export default {
}, },
data() { data() {
return { return {
DICT_TYPE,
checked:false, checked:false,
orderData:{}, orderData:{},
// 订单异常列表 // 订单异常列表
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
<div class="page-title">审批流程</div> <div class="page-title">审批流程</div>
<work-flow xmlkey="commission_config" v-model="ccIdArr" /> <work-flow xmlkey="commission_config" v-model="ccIdArr" />
<div v-if="form.applyStatus != 1"> <div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button> <el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div> </div>
<div v-else> <div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)"> <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
...@@ -199,6 +199,20 @@ export default { ...@@ -199,6 +199,20 @@ export default {
} }
}, },
computed: { computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgLightCommissionAmount', 'lightCommissionAmount'],
['orgShadeCommissionAmount', 'shadeCommissionAmount'],
['commissionType', 'orgCommissionType']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名 // 根据渠道id显示渠道名
getChannelNameById(){ getChannelNameById(){
return channelId => { return channelId => {
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<div class="page-title">审批流程</div> <div class="page-title">审批流程</div>
<work-flow xmlkey="special_apply" v-model="ccIdArr" /> <work-flow xmlkey="special_apply" v-model="ccIdArr" />
<div v-if="form.applyStatus != 1"> <div v-if="form.applyStatus != 1">
<el-button type="primary" @click="handleSubmit">提交</el-button> <el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
</div> </div>
<div v-else> <div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)"> <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
...@@ -148,6 +148,19 @@ export default { ...@@ -148,6 +148,19 @@ export default {
} }
}, },
computed: { computed: {
// 是否可以提交
submitable(){
let submitable = false;
[
['orgClearanceFreight', 'clearanceFreight'],
['orgFreight', 'freight']
].forEach(item => {
if(this.form[item[0]] != this.form[item[1]]){
submitable = true
}
})
return submitable
},
// 根据渠道id显示渠道名 // 根据渠道id显示渠道名
getChannelNameById(){ getChannelNameById(){
return channelId => { return channelId => {
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
<el-descriptions style="margin-top: 20px" :column="4" border> <el-descriptions style="margin-top: 20px" :column="4" border>
<el-descriptions-item :label="$t('集运仓库')">{{ warehouseDetails && warehouseDetails.warehouseOutName ? warehouseDetails.warehouseOutName : '' }}</el-descriptions-item> <el-descriptions-item :label="$t('集运仓库')">{{ warehouseDetails && warehouseDetails.warehouseOutName ? warehouseDetails.warehouseOutName : '' }}</el-descriptions-item>
<el-descriptions-item :label="$t('储位')"> <el-descriptions-item :label="$t('储位')">
<div v-for="item in storageSpaceList" style="display: flex;"><div>{{item.warehouseName ? item.warehouseName : ''}}</div><div>{{item.warehouseName ? item.regionName :''}} {{$t('区')}}</div> <div>{{item.code}}</div></div> <div v-for="item in storageSpaceList" style="display: flex;"><div>{{item.warehouseName ? item.warehouseName : ''}}{{$t('仓')}}</div><div>{{item.warehouseName ? item.regionName :''}} {{$t('区')}}</div> <div>{{item.code}}</div></div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if="type == 2" :label="$t('选择储位')"> <el-descriptions-item v-if="type == 2" :label="$t('选择储位')">
<div @click="areaVisible = true" style="color: #0a84ff;cursor: pointer;">{{$t('选择储位')}}</div> <div @click="areaVisible = true" style="color: #0a84ff;cursor: pointer;">{{$t('选择储位')}}</div>
...@@ -383,18 +383,17 @@ export default { ...@@ -383,18 +383,17 @@ export default {
}, },
watch:{ watch:{
'params.orderLocationCreateReqVOList'(val){ 'params.orderLocationCreateReqVOList'(val){
console.log(val,'123') console.log(val,'val');
getByWarehouseId().then(r =>{ getByWarehouseId().then(r =>{
console.log(r,'仓库')
let obj = []; let obj = [];
val.forEach(item => { val.forEach(item => {
r.data.forEach(itemm => { r.data.forEach(itemm => {
if(item.wareId === itemm.id){ if(item.wareId === itemm.id){
itemm.children.forEach(itemmm => { itemm.children.forEach(itemmm => {
if(itemmm.id === item.areaId){ if(itemmm.id === item.areaId){
if(itemmm.positionList.length > 0){ if(itemmm.positionList && itemmm.positionList.length > 0){
itemmm.positionList.forEach(ic =>{ itemmm.positionList.forEach(ic =>{
if(ic.children.length > 0){ if(ic.children && ic.children.length > 0){
ic.children.forEach(icc => { ic.children.forEach(icc => {
if(icc.id === item.locationId){ if(icc.id === item.locationId){
obj.push({ obj.push({
...@@ -412,7 +411,6 @@ export default { ...@@ -412,7 +411,6 @@ export default {
} }
}) })
}) })
console.log(obj,'obj')
this.storageSpaceList = obj; this.storageSpaceList = obj;
}) })
} }
......
...@@ -586,7 +586,7 @@ export default { ...@@ -586,7 +586,7 @@ export default {
} }
return orderWarehouseIn({ return orderWarehouseIn({
...this.form1, ...this.form1,
brandType: this.form1.brand ? 1 : 0, brandType: this.warehousing.brandType,
orderId: this.warehousing.orderId, orderId: this.warehousing.orderId,
orderItemId: undefined, orderItemId: undefined,
orderNo: this.warehousing.orderNo, orderNo: this.warehousing.orderNo,
...@@ -616,7 +616,7 @@ export default { ...@@ -616,7 +616,7 @@ export default {
// 入仓修改 // 入仓修改
return orderWarehouseInUpdateApply({ return orderWarehouseInUpdateApply({
...this.form, ...this.form,
brandType: this.form.brand ? 1 : 0, brandType: this.warehousing.brandType,
orderId: this.warehousing.orderId, orderId: this.warehousing.orderId,
orderItemId: this.warehousing.orderItemId, orderItemId: this.warehousing.orderItemId,
orderNo: this.warehousing.orderNo, orderNo: this.warehousing.orderNo,
...@@ -643,7 +643,7 @@ export default { ...@@ -643,7 +643,7 @@ export default {
// 首次入仓 // 首次入仓
return orderWarehouseIn({ return orderWarehouseIn({
...this.form, ...this.form,
brandType: (this.form.brand && this.form.brand !== '0') ? 1 : 0, brandType: this.warehousing.brandType,
orderId: this.warehousing.orderId, orderId: this.warehousing.orderId,
orderItemId: this.warehousing.orderItemId, orderItemId: this.warehousing.orderItemId,
orderNo: this.warehousing.orderNo, orderNo: this.warehousing.orderNo,
......
...@@ -140,7 +140,7 @@ ...@@ -140,7 +140,7 @@
</el-form> </el-form>
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList" <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
:order-id="orderId" :city-id="cityId"></warehouse-area-dialog> :order-id="orderId" :warehouse-id="warehouseId"></warehouse-area-dialog>
<edit-dialog :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit"></edit-dialog> <edit-dialog :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit"></edit-dialog>
...@@ -431,8 +431,8 @@ export default { ...@@ -431,8 +431,8 @@ export default {
}) })
return result return result
}, },
cityId(){ warehouseId(){
return this.order?.departureVO?.departureId return this.order?.logisticsInfoDto?.startWarehouseId
} }
} }
} }
......
...@@ -9,12 +9,18 @@ ...@@ -9,12 +9,18 @@
<div slot="header" style="font-size:20px;"> <div slot="header" style="font-size:20px;">
{{$t('价格设置')}} {{$t('价格设置')}}
<span> <span>
<el-checkbox label="" @change="form.advanceStatus=$event ? 1 : 0">{{$t('预付')}}</el-checkbox> <!-- <el-checkbox label="" @change="form.needPay=$event ? 1 : 0">{{$t('预付')}}</el-checkbox> -->
<el-checkbox label="" @change="form.stepPrice=$event ? 1 : 0">{{$t('阶梯订单')}}</el-checkbox> <el-checkbox label="" @change="form.stepPrice=$event ? 1 : 0">{{$t('阶梯订单')}}</el-checkbox>
</span> </span>
</div> </div>
<el-form-item :label="$t('预付')" prop="needPay" >
<el-radio-group v-model="form.needPay">
<el-radio :label="1">预付</el-radio>
<el-radio :label="0">均可</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="$t('单价模式')" prop="priceType"> <el-form-item :label="$t('单价模式')" prop="priceType">
<dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" defaultable /> <dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" />
</el-form-item> </el-form-item>
<!--阶梯订单--> <!--阶梯订单-->
<template v-if="form.stepPrice==1" > <template v-if="form.stepPrice==1" >
...@@ -32,60 +38,60 @@ ...@@ -32,60 +38,60 @@
- -
<el-input v-model="item.endNum" type="number" placeholder="" class="w100"></el-input> <el-input v-model="item.endNum" type="number" placeholder="" class="w100"></el-input>
/ /
<selector v-model="form.weightUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> <selector v-model="form.weightUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('默认运费')" v-if="form.priceType != 1"> <el-form-item :label="$t('默认运费')" v-if="form.priceType != 1">
<inputor default="0" v-model.number="item.transportPrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" /> <inputor default2="0" v-model.number="item.transportPrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" />
<selector v-model="item.transportPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> <selector v-model="item.transportPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="item.transportVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> / <selector v-model="item.transportVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('默认清关费')" v-if="form.priceType != 1"> <el-form-item :label="$t('默认清关费')" v-if="form.priceType != 1">
<inputor default="0" v-model.number="item.clearancePrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" /> <inputor default2="0" v-model.number="item.clearancePrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" />
<selector v-model="item.clearancePriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> <selector v-model="item.clearancePriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="item.clearanceVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> / <selector v-model="item.clearanceVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('默认全包价')" v-if="form.priceType == 1"> <el-form-item :label="$t('默认全包价')" v-if="form.priceType == 1">
<inputor default="0" v-model.number="item.allPrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" /> <inputor default2="0" v-model.number="item.allPrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" />
<selector v-model="item.allPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> <selector v-model="item.allPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="item.allVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> / <selector v-model="item.allVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
</el-form-item> </el-form-item>
</div> </div>
</template> </template>
<template v-else> <template v-else>
<el-form-item :label="$t('默认全包价')" v-if="form.priceType == 1"> <el-form-item :label="$t('默认全包价')" v-if="form.priceType == 1">
<inputor default="0" v-model.number="form.allPrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" /> <inputor default2="0" v-model.number="form.allPrice" type="number" :placeholder="$t('整数或者两位小数')" class="w100 mr10" />
<selector v-model="form.allPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> <selector v-model="form.allPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
/ <selector v-model="form.allVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w100" /> / <selector v-model="form.allVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w100" />
</el-form-item> </el-form-item>
<template v-else> <template v-else>
<el-form-item :label="$t('默认运费')" prop="transportPrice"> <el-form-item :label="$t('默认运费')" prop="transportPrice">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4"> <el-col :span="4">
<selector v-model="form.transportPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> <selector v-model="form.transportPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<inputor default="0" v-model.number="form.transportPrice" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor default2="0" v-model.number="form.transportPrice" type="number" :placeholder="$t('整数或者两位小数')" />
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
/ <selector v-model="form.transportVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> / <selector v-model="form.transportVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item :label="$t('默认清关费')" prop="clearancePrice"> <el-form-item :label="$t('默认清关费')" prop="clearancePrice">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4"> <el-col :span="4">
<selector v-model="form.clearancePriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> <selector v-model="form.clearancePriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<inputor default="0" v-model.number="form.clearancePrice" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor default2="0" v-model.number="form.clearancePrice" type="number" :placeholder="$t('整数或者两位小数')" />
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
/ /
<selector v-model="form.clearanceVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> <selector v-model="form.clearanceVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
...@@ -100,15 +106,15 @@ ...@@ -100,15 +106,15 @@
:key="specialIndex + 'transport'"> :key="specialIndex + 'transport'">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4"> <el-col :span="4">
<selector v-model="special.allPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> <selector v-model="special.allPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<inputor default="0" v-model.number="special.allPrice" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor default2="0" v-model.number="special.allPrice" type="number" :placeholder="$t('整数或者两位小数')" />
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
/ <selector v-model="special.allVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> / <selector v-model="special.allVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
...@@ -119,15 +125,15 @@ ...@@ -119,15 +125,15 @@
:key="specialIndex + 'transport'"> :key="specialIndex + 'transport'">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4"> <el-col :span="4">
<selector v-model="special.transportPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> <selector v-model="special.transportPriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<inputor default="0" v-model.number="special.transportPrice" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor default2="0" v-model.number="special.transportPrice" type="number" :placeholder="$t('整数或者两位小数')" />
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
/ <selector v-model="special.transportVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> / <selector v-model="special.transportVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
...@@ -136,15 +142,15 @@ ...@@ -136,15 +142,15 @@
:key="specialIndex + 'clearance'"> :key="specialIndex + 'clearance'">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="4"> <el-col :span="4">
<selector v-model="special.clearancePriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> <selector v-model="special.clearancePriceUnit" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<inputor default="0" v-model.number="special.clearancePrice" type="number" :placeholder="$t('整数或者两位小数')" /> <inputor default2="0" v-model.number="special.clearancePrice" type="number" :placeholder="$t('整数或者两位小数')" />
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
/ <selector v-model="special.clearanceVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100" /> / <selector v-model="special.clearanceVolumeUnit" :options="unitList" :label-field="$l('title')" value-field="id" defaultable2 class="w-100" />
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
...@@ -187,7 +193,7 @@ ...@@ -187,7 +193,7 @@
</el-form> </el-form>
<div style="margin: 20px 0"> <div style="margin: 20px 0">
<el-button @click="submitForm" type="primary">{{$t('确认提交')}}</el-button> <el-button @click="submitForm" type="primary" :loading="loading">{{$t('确认提交')}}</el-button>
<el-button type="default" @click="$router.back()">{{$t('返回上一页')}}</el-button> <el-button type="default" @click="$router.back()">{{$t('返回上一页')}}</el-button>
</div> </div>
</div> </div>
...@@ -211,7 +217,7 @@ export default { ...@@ -211,7 +217,7 @@ export default {
checkList: [], checkList: [],
selectedRoutes: [], // 勾选的路线渠道 selectedRoutes: [], // 勾选的路线渠道
form: { form: {
stepPrice: 0, // stepPrice: 0,
// advanceStatus: 0, // advanceStatus: 0,
// needBook: 0, // needBook: 0,
// dayLimit: 10000 // dayLimit: 10000
...@@ -223,9 +229,9 @@ export default { ...@@ -223,9 +229,9 @@ export default {
/* typeId: [{ required: true, message: "产品类型不能为空", trigger: "blur" }], /* typeId: [{ required: true, message: "产品类型不能为空", trigger: "blur" }],
titleZh: [{ required: true, message: "产品名称不能为空", trigger: "blur" }], titleZh: [{ required: true, message: "产品名称不能为空", trigger: "blur" }],
titleEn: [{ required: true, message: "英文名称不能为空", trigger: "blur" }], */ titleEn: [{ required: true, message: "英文名称不能为空", trigger: "blur" }], */
transportPrice: [{ required: true, message: this.$t("海运费不能为空"), trigger: "blur" }], /* transportPrice: [{ required: true, message: this.$t("海运费不能为空"), trigger: "blur" }],
clearancePrice: [{ required: true, message: this.$t("清关费不能为空"), trigger: "blur" }], clearancePrice: [{ required: true, message: this.$t("清关费不能为空"), trigger: "blur" }], */
advanceStatus: [{ required: true, message: this.$t("是否预付不能为空"), trigger: "blur" }], /* advanceStatus: [{ required: true, message: this.$t("是否预付不能为空"), trigger: "blur" }], */
//containerLocation: [{ required: true, message: "货柜位置不能为空", trigger: "blur" }], //containerLocation: [{ required: true, message: "货柜位置不能为空", trigger: "blur" }],
//square: [{ required: true, message: "方数不能为空", trigger: "blur" }], //square: [{ required: true, message: "方数不能为空", trigger: "blur" }],
// zhongLinjie:[{ required: true, message: "默认重货标准不能为空", trigger: "blur" }], // zhongLinjie:[{ required: true, message: "默认重货标准不能为空", trigger: "blur" }],
...@@ -238,7 +244,8 @@ export default { ...@@ -238,7 +244,8 @@ export default {
unitList: [], unitList: [],
productTypeList: [], productTypeList: [],
productDisabled: true, productDisabled: true,
lineList: [] //路线数组 lineList: [], //路线数组
loading: false
} }
}, },
computed: { computed: {
...@@ -326,11 +333,11 @@ export default { ...@@ -326,11 +333,11 @@ export default {
} }
*/ */
// 默认今天起,两年有效 // 默认今天起,两年有效
this.form.validateStartDate = parseTime(Date.now()) /* this.form.validateStartDate = parseTime(Date.now())
this.form.validateEndDate = parseTime(Date.now() + 86400*365*2*1000) this.form.validateEndDate = parseTime(Date.now() + 86400*365*2*1000) */
// 默认费用单位 // 默认费用单位
this.setDefaultVolumeUnit(7) //this.setDefaultVolumeUnit(7)
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
...@@ -378,10 +385,12 @@ export default { ...@@ -378,10 +385,12 @@ export default {
if(data.lineChannelList.length < 1){ if(data.lineChannelList.length < 1){
return this.$message.error(this.$t('请选择需要修改的路线')) return this.$message.error(this.$t('请选择需要修改的路线'))
} }
this.loading = true
batchUpdateProductPrice(data).then(response => { batchUpdateProductPrice(data).then(response => {
this.$modal.msgSuccess(this.$t("修改成功")); this.$modal.msgSuccess(this.$t("修改成功"));
this.$router.replace('/lineProject/product-price?' + (new URLSearchParams(this.$route.query)).toString()) this.$router.replace('/lineProject/product-price?' + (new URLSearchParams(this.$route.query)).toString())
}) })
.finally(res => this.loading = false)
}); });
}, },
} }
......
...@@ -63,10 +63,16 @@ ...@@ -63,10 +63,16 @@
<div slot="header" style="font-size:20px;"> <div slot="header" style="font-size:20px;">
{{$t('价格设置')}} {{$t('价格设置')}}
<span> <span>
<el-checkbox label="" v-model="needPay">{{$t('预付')}}</el-checkbox> <el-checkbox v-if="$route.query.action != 'batchUpdate'" label="" v-model="needPay">{{$t('预付')}}</el-checkbox>
<el-checkbox label="" v-model="stepPrice">{{$t('阶梯定价')}}</el-checkbox> <el-checkbox label="" v-model="stepPrice">{{$t('阶梯定价')}}</el-checkbox>
</span> </span>
</div> </div>
<el-form-item :label="$t('预付')" prop="needPay" v-if="$route.query.action == 'batchUpdate'" >
<el-radio-group v-model="form.needPay">
<el-radio :label="1">预付</el-radio>
<el-radio :label="0">均可</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="$t('单价模式')" prop="priceType"> <el-form-item :label="$t('单价模式')" prop="priceType">
<dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" formatter="number" defaultable /> <dict-selector :type="DICT_TYPE.ECW_PRICE_TYPE" v-model="form.priceType" form-type="radio" formatter="number" defaultable />
</el-form-item> </el-form-item>
...@@ -194,7 +200,7 @@ ...@@ -194,7 +200,7 @@
</el-form> </el-form>
<div style="margin: 20px 0"> <div style="margin: 20px 0">
<el-button @click="submitForm" type="primary" v-if="!readonly">{{$t('确认提交')}}</el-button> <el-button @click="submitForm" type="primary" v-if="!readonly" :loading="loading">{{$t('确认提交')}}</el-button>
<el-button type="default" @click="$router.back()">{{$t('返回上一页')}}</el-button> <el-button type="default" @click="$router.back()">{{$t('返回上一页')}}</el-button>
</div> </div>
</div> </div>
...@@ -241,7 +247,8 @@ export default { ...@@ -241,7 +247,8 @@ export default {
productTypeList: [], productTypeList: [],
productDisabled: true, productDisabled: true,
readonly: false, readonly: false,
lineList: [] //路线数组 lineList: [], //路线数组
loading: false
} }
}, },
computed: { computed: {
...@@ -309,6 +316,11 @@ export default { ...@@ -309,6 +316,11 @@ export default {
item.clearancePriceUnit = val item.clearancePriceUnit = val
}) })
}, },
'form.allPriceUnit'(val){
this.specialProducts.forEach(item => {
item.allPriceUnit = val
})
},
'form.allVolumeUnit'(val){ 'form.allVolumeUnit'(val){
this.specialProducts.forEach(item => { this.specialProducts.forEach(item => {
item.allVolumeUnit = val item.allVolumeUnit = val
...@@ -455,10 +467,11 @@ export default { ...@@ -455,10 +467,11 @@ export default {
// 修改单条路线 // 修改单条路线
if (this.$route.query.action == 'update') { if (this.$route.query.action == 'update') {
this.loading = true
return updateProductPrice(data).then(res => { return updateProductPrice(data).then(res => {
this.$modal.msgSuccess(this.$t("请求成功")); this.$modal.msgSuccess(this.$t("请求成功"));
this.$router.back() this.$router.back()
}) }).finally(res => this.loading = false)
} }
// 批量修改(单个商品的单个路线,多个路线,或者全部路线)的提交 // 批量修改(单个商品的单个路线,多个路线,或者全部路线)的提交
...@@ -491,10 +504,11 @@ export default { ...@@ -491,10 +504,11 @@ export default {
return this.$message.error(this.$t('请选择需要修改的路线')) return this.$message.error(this.$t('请选择需要修改的路线'))
} }
data.productIdList = [this.form.productId] data.productIdList = [this.form.productId]
this.loading = true
batchUpdateProductPrice(data).then(response => { batchUpdateProductPrice(data).then(response => {
this.$modal.msgSuccess(this.$t("修改成功")); this.$modal.msgSuccess(this.$t("修改成功"));
this.$router.replace('/product/product-price?' + (new URLSearchParams(this.$route.query)).toString()) this.$router.replace('/product/product-price?' + (new URLSearchParams(this.$route.query)).toString())
}) }).finally(res => this.loading = false)
return; return;
} }
// 添加的提交 // 添加的提交
...@@ -504,10 +518,11 @@ export default { ...@@ -504,10 +518,11 @@ export default {
if((this.form.priceType == 0 && !this.form.transportPrice) || (this.form.priceType == 1 && !this.form.allPrice)){ if((this.form.priceType == 0 && !this.form.transportPrice) || (this.form.priceType == 1 && !this.form.allPrice)){
return this.$message.error(this.$t('运费/全包价不能为0')) return this.$message.error(this.$t('运费/全包价不能为0'))
} }
this.loading = true
createProductPrice(data).then(response => { createProductPrice(data).then(response => {
this.$modal.msgSuccess(this.$t("请求成功")); this.$modal.msgSuccess(this.$t("请求成功"));
this.$router.replace('/product/product-price?' + (new URLSearchParams(this.$route.query)).toString()) this.$router.replace('/product/product-price?' + (new URLSearchParams(this.$route.query)).toString())
}); }).finally(res => this.loading = false);
}); });
}, },
} }
......
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