Commit 1df20f6a authored by 我在何方's avatar 我在何方
parents 50fe2f07 275abef7
...@@ -610,6 +610,20 @@ export function boxUpdate(data) { ...@@ -610,6 +610,20 @@ export function boxUpdate(data) {
}); });
} }
/**
* 拆单审核
*
* @param {*} params
* @returns
*/
export function createApproval(data) {
return request({
url: "/ecw/box-approval/create",
method: "post",
data,
});
}
/***************************** 装柜 end **********************************/ /***************************** 装柜 end **********************************/
/***************************** 卸柜 start **********************************/ /***************************** 卸柜 start **********************************/
......
...@@ -40,10 +40,6 @@ export default { ...@@ -40,10 +40,6 @@ export default {
type: [Function, String], type: [Function, String],
default: String default: String
}, },
/* forceString: {
type: Boolean,
default: true
}, */
defaultable: Boolean, // 是否默认选择第一个 defaultable: Boolean, // 是否默认选择第一个
disabled: Boolean, disabled: Boolean,
/** /**
...@@ -80,11 +76,10 @@ export default { ...@@ -80,11 +76,10 @@ export default {
}, },
watch:{ watch:{
valueSync(val){ valueSync(val){
//this.$emit('input', this.forceString ? String(this.valueSync) : this.valueSync) this.$emit('input', val)
this.$emit('input', this.format(val))
}, },
value(val){ value(val){
this.setValueSync() if(val != this.valueSync)this.setValueSync()
}, },
dictList(){ dictList(){
this.setDefault() this.setDefault()
...@@ -96,7 +91,7 @@ export default { ...@@ -96,7 +91,7 @@ export default {
}, },
methods:{ methods:{
format(val){ format(val){
if(val === null || val == undefined) return val if(val === null || val == undefined || val == '') return val
let formatter = typeof this.formatter == 'function' ? this.formatter : FORMATTERS[this.formatter] let formatter = typeof this.formatter == 'function' ? this.formatter : FORMATTERS[this.formatter]
if(!formatter){ if(!formatter){
console.warn('格式器无效', this.formatter) console.warn('格式器无效', this.formatter)
...@@ -108,7 +103,9 @@ export default { ...@@ -108,7 +103,9 @@ export default {
this.valueSync = val this.valueSync = val
}, },
setValueSync(){ setValueSync(){
if(this.value === null || this.value === undefined || this.value === '') return if(this.value === null || this.value === undefined || this.value === ''){
return this.valueSync = this.multiple ? [] : this.value
}
if(this.multiple){ if(this.multiple){
let value = [] let value = []
if(typeof this.value == 'string'){ if(typeof this.value == 'string'){
...@@ -118,17 +115,13 @@ export default { ...@@ -118,17 +115,13 @@ export default {
}else{ }else{
this.valueSync = this.format(this.value) this.valueSync = this.format(this.value)
} }
/* if(this.forceString && this.multiple){
this.valueSync = this.value.split(',')
}else this.valueSync = this.forceString ? String(this.value) : this.value */
}, },
getList(){ getList(){
return this.getDictDatas(this.type) return this.getDictDatas(this.type)
}, },
setDefault(){ setDefault(){
if(!this.defaultable) return if(!this.defaultable) return
if(this.dictList.length && (this.valueSync === null || this.valueSync == '')){ if(this.dictList.length && (this.valueSync === null || this.valueSync == undefined || this.valueSync == '')){
this.valueSync = this.multiple ? [] : this.formattedList[0].value this.valueSync = this.multiple ? [] : this.formattedList[0].value
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<el-select <el-select
v-model="index" v-model="index"
filterable filterable
clearable :clearable="clearable"
remote remote
reserve-keyword reserve-keyword
placeholder="请选择" placeholder="请选择"
...@@ -20,7 +20,8 @@ import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customer ...@@ -20,7 +20,8 @@ import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customer
import {listSimpleUsers} from '@/api/system/user' import {listSimpleUsers} from '@/api/system/user'
export default { export default {
props:{ props:{
value: [String, Number] value: [String, Number],
clearable: Boolean
}, },
data(){ data(){
return { return {
...@@ -36,7 +37,10 @@ export default { ...@@ -36,7 +37,10 @@ export default {
this.$emit('change', val !== null ? this.list[val]: null) this.$emit('change', val !== null ? this.list[val]: null)
}, },
value(val){ value(val){
// this.init() this.resetIndex()
},
list(){
this.resetIndex()
} }
}, },
created(){ created(){
...@@ -46,6 +50,11 @@ export default { ...@@ -46,6 +50,11 @@ export default {
// this.init() // this.init()
}, },
methods:{ methods:{
resetIndex(){
let index = this.list.findIndex(item => item.id == this.value)
if(index < 0) this.index = null
else this.index = index
}
/* init(){ /* init(){
console.log('初始化联系人选择', this.value) console.log('初始化联系人选择', this.value)
if(!this.value) return if(!this.value) return
......
...@@ -317,8 +317,7 @@ export default { ...@@ -317,8 +317,7 @@ export default {
}; };
</script> </script>
<style> <style scoped>
/** 处理中 */ /** 处理中 */
.highlight-todo.djs-connection > .djs-visual > path { .highlight-todo.djs-connection > .djs-visual > path {
stroke: #1890ff !important; stroke: #1890ff !important;
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
</el-col> </el-col>
</el-card> </el-card>
<!-- 申请信息 --> <!-- 申请信息 -->
<el-card class="box-card" v-loading="processInstanceLoading"> <el-card class="box-card mt-10" v-loading="processInstanceLoading">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="el-icon-document">申请信息【{{ processInstance.name }}</span> <span class="el-icon-document">申请信息【{{ processInstance.name }}</span>
</div> </div>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
</div> </div>
</el-card> </el-card>
<el-card class="box-card" v-loading="tasksLoad"> <el-card class="box-card mt-10" v-loading="tasksLoad">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="el-icon-picture-outline">审批记录</span> <span class="el-icon-picture-outline">审批记录</span>
</div> </div>
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
</el-card> </el-card>
<!-- 高亮流程图 --> <!-- 高亮流程图 -->
<el-card class="box-card" v-loading="processInstanceLoading"> <el-card class="box-card mt-10" v-loading="processInstanceLoading">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="el-icon-picture-outline">流程图</span> <span class="el-icon-picture-outline">流程图</span>
</div> </div>
...@@ -594,7 +594,7 @@ export default { ...@@ -594,7 +594,7 @@ export default {
}; };
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
.my-process-designer { .my-process-designer {
height: calc(100vh - 200px); height: calc(100vh - 200px);
} }
......
...@@ -7,16 +7,16 @@ ...@@ -7,16 +7,16 @@
<!-- <el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small"> <!-- <el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small">
<el-option v-for="dict in transportTypes" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in transportTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select> --> </el-select> -->
<dict-selector :type="DICT_TYPE.TRANSPORT_TYPE" v-model="queryParams.transportType" /> <dict-selector :type="DICT_TYPE.TRANSPORT_TYPE" v-model="queryParams.transportType" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="始发仓" prop="startWarehouseId"> <el-form-item label="始发仓" prop="startWarehouseId">
<el-select v-model="queryParams.startWarehouseId" placeholder="请选择始发地"> <el-select v-model="queryParams.startWarehouseId" placeholder="请选择始发地" clearable>
<el-option v-for="item in exportWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="目的仓" prop="destWarehouseId"> <el-form-item label="目的仓" prop="destWarehouseId">
<el-select v-model="queryParams.destWarehouseId" placeholder="请选择目的地"> <el-select v-model="queryParams.destWarehouseId" placeholder="请选择目的地" clearable>
<el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -179,6 +179,7 @@ import {getCabinetPage} from "@/api/ecw/cabinet"; ...@@ -179,6 +179,7 @@ import {getCabinetPage} from "@/api/ecw/cabinet";
import { getChannelList } from '@/api/ecw/channel'; import { getChannelList } from '@/api/ecw/channel';
import { getWarehouseList } from "@/api/ecw/warehouse" import { getWarehouseList } from "@/api/ecw/warehouse"
import {getTradeCityList} from '@/api/ecw/region' import {getTradeCityList} from '@/api/ecw/region'
import Decimal from 'decimal.js'
export default { export default {
name: "indexFutureBox", name: "indexFutureBox",
components: { components: {
...@@ -327,11 +328,11 @@ export default { ...@@ -327,11 +328,11 @@ export default {
}, },
'form.warehousedNumber'(){ 'form.warehousedNumber'(){
//在仓 = 已入仓-已封柜 //在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', this.form.warehousedNumber - this.form.loadingNumber) this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
}, },
'form.loadingNumber'(){ 'form.loadingNumber'(){
//在仓 = 已入仓-已封柜 //在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', this.form.warehousedNumber - this.form.loadingNumber) this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
} }
}, },
methods: { methods: {
......
...@@ -175,7 +175,11 @@ export default { ...@@ -175,7 +175,11 @@ export default {
this.$set(this.dialogCfg, "visible", true); this.$set(this.dialogCfg, "visible", true);
}, },
makeBill(row) { makeBill(row) {
makeBillService({ orderId: row.orderId }).then((res) => { const { bookSeaInfo } = this.shipmentObj;
makeBillService({
orderId: row.orderId,
zgDate: bookSeaInfo.sailTime,
}).then((res) => {
const { data } = res; const { data } = res;
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {}; const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
let billContent = `${titleZh}${contentZh}`, let billContent = `${titleZh}${contentZh}`,
......
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">移出</el-button> <el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">移出</el-button>
<!-- <el-button type="text" size="small" v-if="isShowSplitOrder(scope.row)" @click="handlerSplitOrder(scope.row, 'splitOrder','拆单')">拆单</el-button> --> <el-button type="text" size="small" v-if="isShowSplitOrder(scope.row)" @click="handlerSplitOrder(scope.row, 'splitOrder','拆单')">拆单</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
</el-row> </el-row>
</template> </template>
<!-- 拆单 --> <!-- 拆单 -->
<splitOrder v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible" :currRow="currRow" @closeDialog="closeDialog" /> <splitOrder v-bind="$attrs" :shipmentObj="shipmentObj" v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible" :currRow="currRow" @closeDialog="closeDialog" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
......
...@@ -2,11 +2,12 @@ ...@@ -2,11 +2,12 @@
<div> <div>
<el-form ref="reviewForm" :model="reviewObj" label-width="120px"> <el-form ref="reviewForm" :model="reviewObj" label-width="120px">
<el-form-item label="申请理由"> <el-form-item label="申请理由">
<el-input v-model="reviewObj.applyReason" type="textarea" rows="2" placeholder="请输入申请理由"></el-input> <el-input v-model="reviewObj.applyReason" type="textarea" rows="2" placeholder="请输入申请理由" :disabled="isReview"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="success" @click="onSubmit">发起申请</el-button> <el-button type="success" @click="onSubmit" :disabled="isReview">发起申请</el-button>
<el-button type="primary" @click="jumpReviewDetail" :disabled="!isReview">审核中</el-button>
<el-button @click="cancel">关闭</el-button> <el-button @click="cancel">关闭</el-button>
</el-row> </el-row>
</div> </div>
...@@ -14,7 +15,7 @@ ...@@ -14,7 +15,7 @@
<script> <script>
import { approvalCreate } from "@/api/ecw/boxSea"; import { approvalCreate } from "@/api/ecw/boxSea";
import { serviceMsg } from "../utils"; import { serviceMsg, toReviewDetail } from "../utils";
/** /**
* 反审 * 反审
...@@ -26,9 +27,29 @@ export default { ...@@ -26,9 +27,29 @@ export default {
return { return {
// 反审对象 // 反审对象
reviewObj: {}, reviewObj: {},
isReview: false,
bpmProcessId: "",
}; };
}, },
created() {
const { currNode, shipmentObj } = this.$attrs;
if (currNode.type === "preinstall") {
this.isReview = shipmentObj["preInstallBackInfo"] ? true : false;
this.bpmProcessId = shipmentObj["preInstallBackInfo"]?.bpmProcessId;
}
if (currNode.type === "unloading") {
this.isReview = shipmentObj["cabinetUnloadBackApprovalInfo"]
? true
: false;
this.bpmProcessId =
shipmentObj["cabinetUnloadBackApprovalInfo"]?.bpmProcessId;
}
},
methods: { methods: {
jumpReviewDetail() {
toReviewDetail.apply(this, [this.bpmProcessId]);
this.$emit("closeDialog");
},
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
this.$refs["reviewForm"].validate((valid) => { this.$refs["reviewForm"].validate((valid) => {
......
...@@ -229,21 +229,11 @@ export default { ...@@ -229,21 +229,11 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
return this.$router.push('edit') return this.$router.push('create_channel')
this.reset();
this.open = true;
this.title = "添加渠道管理";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
return this.$router.push('edit?id=' + row.channelId) return this.$router.push('edit_channel?id=' + row.channelId)
this.reset();
const channelId = row.channelId;
getChannel(channelId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改渠道管理";
});
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
......
...@@ -10,36 +10,50 @@ ...@@ -10,36 +10,50 @@
<el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="客户等级" prop="level"> <el-form-item label="客户等级" prop="level">
<el-select v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small"> <el-select clearable v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
: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-input placeholder="请输入联系方式" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item>
<el-form-item label="客户类别" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector>
</el-form-item>
<el-form-item label="客户经理" prop="customerService">
<el-select clearable v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item>
<el-form-item label="客户来源" prop="source"> <el-form-item label="客户来源" prop="source">
<el-select v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small"> <el-select clearable v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
: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="客户经理" prop="customerService"> <el-form-item label="国家" prop="source">
<el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small"> <el-select clearable v-model="form.country" placeholder="请选择国家">
<el-option v-for="dict in customerServiceList" <el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/> :key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small"> <el-select clearable v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
: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="部门" prop="department">
<el-input v-model="queryParams.department" placeholder="请输入部门" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item> </el-form-item>
<el-form-item label="信用等级" prop="department">
<el-select clearable v-model="form.level" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
...@@ -56,36 +70,42 @@ ...@@ -56,36 +70,42 @@
<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']">导出</el-button> v-hasPermi="['ecw:customer:export']">导出</el-button>
</el-col> </el-col>
<el-col :span="1.5" >
<el-button :disabled="selectCustomerList.length === 0" type="warning" plain icon="el-icon-download" size="mini" @click="transferShow = true;" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">批量移交</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>
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table ref="multipleTable" v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column label="客户编号" align="center" prop="number" /> <el-table-column label="客户编号" align="center" prop="number" />
<el-table-column label="客户名称" align="center" prop="name" /> <el-table-column label="客户名称" align="center" prop="name" />
<el-table-column label="客户等级" align="center" prop="level"> <el-table-column label="客户等级" align="center" prop="vipLevelNameZh">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" /> <dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="国家" align="center" prop="country" :formatter="countryFormatter"></el-table-column> <el-table-column label="信用等级" prop="creditLevelNameZh"></el-table-column>
<el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column>
<el-table-column label="客户状态" align="center" prop="status"> <el-table-column label="客户状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="部门" align="center" prop="department"> <el-table-column label="主联系人" prop="defaultContactName"></el-table-column>
<template v-slot:default="scope"> <el-table-column label="主联系方式" prop="defaultContactPhone"></el-table-column>
{{scope.row.department}}
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column>
<el-table-column label="国家" align="center" prop="country" :formatter="countryFormatter"></el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)" <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
...@@ -451,6 +471,7 @@ ...@@ -451,6 +471,7 @@
</el-dialog> </el-dialog>
<customer-follow-list :customer-id="customerId" :id="customerId" ref="CustomerFollowList"></customer-follow-list> <customer-follow-list :customer-id="customerId" :id="customerId" ref="CustomerFollowList"></customer-follow-list>
<customer-complaints :customer-id="customerId" ref="customerComplaints"></customer-complaints> <customer-complaints :customer-id="customerId" ref="customerComplaints"></customer-complaints>
<transfer-customer :show.sync="transferShow" :customer-ids.sync="selectCustomerList"></transfer-customer>
</div> </div>
</template> </template>
...@@ -467,13 +488,16 @@ import CustomerFollowList from "@/components/CustomerFollowList" ...@@ -467,13 +488,16 @@ import CustomerFollowList from "@/components/CustomerFollowList"
import customerComplaints from "@/components/customerComplaints" import customerComplaints from "@/components/customerComplaints"
import {listServiceUser} from "@/api/system/user"; import {listServiceUser} from "@/api/system/user";
import { getCountryListAll } from '@/api/ecw/country' import { getCountryListAll } from '@/api/ecw/country'
import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer";
export default { export default {
name: "Customer", name: "Customer",
components: { components: {
upload, upload,
CustomerFollowList, CustomerFollowList,
customerComplaints customerComplaints,
transferCustomer
}, },
data() { data() {
return { return {
...@@ -525,11 +549,16 @@ export default { ...@@ -525,11 +549,16 @@ export default {
showLine: false, showLine: false,
customerId:undefined, customerId:undefined,
customerServiceList:[], customerServiceList:[],
countryList: [],
countryList: [] creditList:[],
selectCustomerList:[],
transferShow:false
}; };
}, },
created() { created() {
getCreditPage({page:1,rows:999}).then(r => {
this.creditList = r.data.list
})
this.getList(); this.getList();
// getNodeList().then(r => { // getNodeList().then(r => {
// this.nodeList = r.data // this.nodeList = r.data
...@@ -682,7 +711,6 @@ export default { ...@@ -682,7 +711,6 @@ export default {
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = {...this.queryParams};
params.pageNo = undefined; params.pageNo = undefined;
params.pageSize = undefined; params.pageSize = undefined;
...@@ -693,6 +721,8 @@ export default { ...@@ -693,6 +721,8 @@ export default {
return exportCustomerExcel(params); return exportCustomerExcel(params);
}).then(response => { }).then(response => {
this.$download.excel(response, '客户信息.xls'); this.$download.excel(response, '客户信息.xls');
console.log(response,'response')
this.$download.excel(response, '全部客户信息.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
}, },
...@@ -707,7 +737,19 @@ export default { ...@@ -707,7 +737,19 @@ export default {
this.$nextTick(()=>{ this.$nextTick(()=>{
this.$refs.customerComplaints.handleAdd(); this.$refs.customerComplaints.handleAdd();
}) })
},
handleSelectionChange(val){
this.selectCustomerList = val.map(i => i.id);
} }
},
watch:{
selectCustomerList(val){
if(val.length === 0){
this.getList()
this.$refs.multipleTable.clearSelection();
}
},
} }
}; };
</script> </script>
<template>
<el-dialog
center
title="客服"
:visible.sync="show"
width="30%">
<div style="width: 100%;min-height: 200px;text-align: center">
<el-select filterable v-model="service">
<el-option v-for="(item,index) in customerServiceList" :key="index" :label="item.nickname" :value="item.id"></el-option>
</el-select>
</div>
<span slot="footer" class="dialog-footer">
<el-button >取 消</el-button>
<el-button type="primary" @click="submit">确 定</el-button>
</span>
</el-dialog>
</template>
<script>
import {listServiceUser} from "@/api/system/user";
import {handOverCustomer} from "@/api/ecw/customer";
export default {
name: "transferCustomer",
props:{
show:{
type:Boolean ,
default:false
},
customerIds:[Array,String],
tableName:String
},
created() {
listServiceUser().then(r=>{
this.customerServiceList = r.data;
})
},
computed:{
getCustomerIds(){
if(this.customerIds instanceof Array) return this.customerIds
else return this.customerIds.split(',')
}
},
data(){
return {
customerServiceList:[],
service:'',
}
},
methods:{
submit(){
if(!this.service){
return this.$message.warning('请选择客户经理!');
}
handOverCustomer({
customerServiceId:this.service,
customerIdList:this.getCustomerIds
}).then(r=>{
if(r.code === 0){
this.$emit('update:show',false)
this.$emit('update:customerIds',[])
this.$message.success('用户批量转移成功!')
}
})
},
}
}
</script>
<style scoped>
</style>
...@@ -315,8 +315,8 @@ ...@@ -315,8 +315,8 @@
setTime(item) { setTime(item) {
this.targetPeriod.forEach((i, index) => { this.targetPeriod.forEach((i, index) => {
if (i.name === item) { if (i.name === item) {
this.form.startTime = i.startDate; this.form.startTime = i.startDate + " 00:00:00";
this.form.endTime = i.endDate; this.form.endTime = i.endDate + " 23:59:59";
} }
}) })
}, },
......
...@@ -11,30 +11,50 @@ ...@@ -11,30 +11,50 @@
<el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="客户等级" prop="level"> <el-form-item label="客户等级" prop="level">
<el-select v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small"> <el-select clearable v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
: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-input placeholder="请输入联系方式" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item>
<el-form-item label="客户类别" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector>
</el-form-item>
<el-form-item label="客户经理" prop="customerService">
<el-select clearable v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item>
<el-form-item label="客户来源" prop="source"> <el-form-item label="客户来源" prop="source">
<el-select v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small"> <el-select clearable v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
: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="国家" prop="source">
<el-select clearable v-model="form.country" placeholder="请选择国家">
<el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select>
</el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small"> <el-select clearable v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
: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="部门" prop="department">
<el-input v-model="queryParams.department" placeholder="请输入部门" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item> </el-form-item>
<el-form-item label="信用等级" prop="department">
<el-select clearable v-model="form.level" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
...@@ -51,34 +71,42 @@ ...@@ -51,34 +71,42 @@
<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']">导出</el-button> v-hasPermi="['ecw:customer:export']">导出</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button :disabled="selectCustomerList.length === 0" type="warning" plain icon="el-icon-download" size="mini" @click="show = true;" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">批量移交</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>
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table ref="multipleTable" v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column label="客户编号" align="center" prop="number" /> <el-table-column label="客户编号" align="center" prop="number" />
<el-table-column label="客户名称" align="center" prop="name" /> <el-table-column label="客户名称" align="center" prop="name" />
<el-table-column label="客户等级" align="center" prop="level"> <el-table-column label="客户等级" align="center" prop="vipLevelNameZh">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" /> <dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="国家" align="center" prop="country"> <el-table-column label="信用等级" prop="creditLevelNameZh"></el-table-column>
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" />
</template>
</el-table-column>
<el-table-column label="客户状态" align="center" prop="status"> <el-table-column label="客户状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="部门" align="center" prop="department" /> <el-table-column label="主联系人" prop="defaultContactName"></el-table-column>
<el-table-column label="主联系方式" prop="defaultContactPhone"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column>
<el-table-column label="国家" align="center" prop="country" :formatter="countryFormatter"></el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)" <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
...@@ -98,6 +126,7 @@ ...@@ -98,6 +126,7 @@
@pagination="getList"/> @pagination="getList"/>
<customer-follow-list ref="customerFollowList" :customer-id="customerId" :id="customerId"></customer-follow-list> <customer-follow-list ref="customerFollowList" :customer-id="customerId" :id="customerId"></customer-follow-list>
<customer-complaints ref="customerComplaint" :customer-id.sync="customerId"></customer-complaints> <customer-complaints ref="customerComplaint" :customer-id.sync="customerId"></customer-complaints>
<transfer-customer :show.sync="show" :customer-ids.sync="selectCustomerList"></transfer-customer>
</div> </div>
</template> </template>
...@@ -108,15 +137,24 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict'; ...@@ -108,15 +137,24 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import upload from '@/components/ImageUpload' import upload from '@/components/ImageUpload'
import customerFollowList from "@/components/CustomerFollowList"; import customerFollowList from "@/components/CustomerFollowList";
import customerComplaints from "@/components/customerComplaints"; import customerComplaints from "@/components/customerComplaints";
import {listServiceUser} from "@/api/system/user";
import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer";
export default { export default {
name: "myCustomerService", name: "myCustomerService",
components: { components: {
upload, upload,
customerFollowList, customerFollowList,
customerComplaints customerComplaints,
transferCustomer
}, },
data() { data() {
return { return {
show:false,
creditList:[],
countryList:[],
customerServiceList:[],
getDictDatas, getDictDatas,
DICT_TYPE, DICT_TYPE,
// 遮罩层 // 遮罩层
...@@ -163,6 +201,7 @@ export default { ...@@ -163,6 +201,7 @@ export default {
nodeList: [], nodeList: [],
showLine: false, showLine: false,
customerId:undefined, customerId:undefined,
selectCustomerList:[],
}; };
}, },
created() { created() {
...@@ -170,8 +209,32 @@ export default { ...@@ -170,8 +209,32 @@ export default {
// getNodeList().then(r => { // getNodeList().then(r => {
// this.nodeList = r.data // this.nodeList = r.data
// }) // })
getCreditPage({page:1,rows:999}).then(r => {
this.creditList = r.data.list
})
listServiceUser().then(r=>{
this.customerServiceList = r.data;
})
getCountryListAll().then(r => {
this.countryList = r.data
})
}, },
methods: { methods: {
handleSelectionChange(val){
this.selectCustomerList = val.map(i => i.id);
},
countryFormatter(row, column, cellValue) {
const country = this.countryList.find((e) => e.id === cellValue)
return country?.nameZh
},
customerServiceFn(val){
if(this.customerServiceList.length > 0){
let index =this.customerServiceList.findIndex(item => item.id === val.customerService);
return index !== -1 ? this.customerServiceList[index]?.nickname :''
}else {
return ''
}
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
...@@ -323,6 +386,15 @@ export default { ...@@ -323,6 +386,15 @@ export default {
this.$refs['customerComplaint'].handleAdd() this.$refs['customerComplaint'].handleAdd()
}) })
} }
},
watch:{
selectCustomerList(val){
if(val.length === 0){
this.getList()
this.$refs.multipleTable.clearSelection();
}
},
} }
}; };
</script> </script>
...@@ -499,7 +499,7 @@ import ChooseContactDialog from '@/components/ChooseContactDialog' ...@@ -499,7 +499,7 @@ import ChooseContactDialog from '@/components/ChooseContactDialog'
import QuickCreateCustomer from '@/components/QuickCreateCustomer' import QuickCreateCustomer from '@/components/QuickCreateCustomer'
import {getCustomerContactsSelect} from '@/api/ecw/customerContacts' import {getCustomerContactsSelect} from '@/api/ecw/customerContacts'
import Decimal from 'decimal.js' import Decimal from 'decimal.js'
window.Decimal= Decimal
export default { export default {
name: "EcwOfferEdit", name: "EcwOfferEdit",
components: { components: {
...@@ -657,26 +657,61 @@ export default { ...@@ -657,26 +657,61 @@ export default {
originalFeeList(){ originalFeeList(){
let arr = [] let arr = []
this.clearanceFeeList.forEach(item => { this.clearanceFeeList.forEach(item => {
let it = {...item} let it = {
src: '清关费',
currencyId: item.currencyId,
amount: Decimal(item.amount)
}
let freight = this.freightFeeList.find(fee => fee.currencyId == item.currencyId) let freight = this.freightFeeList.find(fee => fee.currencyId == item.currencyId)
if(freight){ if(freight){
it.amount += freight.amount it.amount = it.amount.plus(freight.amount)
} }
arr.push(it) arr.push(it)
}) })
// 判断是否有运费单位不在清关费里的
this.freightFeeList.forEach(item => {
if(!arr.find(arrItem => arrItem.currencyId == item.currencyId)){
arr.push({
src: '未计算的运费',
currencyId: item.currencyId,
amount: Decimal(item.amount)
})
}
})
return arr return arr
}, },
// 预计费用(原价 - 优惠金额) // 预计费用(原价 - 优惠金额 + 其他费用 + 保价费)
estimatedCosts(){ estimatedCosts(){
let arr = [] let arr = []
let withInsuranceFee = false
this.originalFeeList.forEach(item => { this.originalFeeList.forEach(item => {
let it = {...item} let it = {
currencyId: item.currencyId,
amount: Decimal(item.amount)
}
let coupon = this.couponList.find(coupon => coupon.reduceCurrencyId == item.currencyId) let coupon = this.couponList.find(coupon => coupon.reduceCurrencyId == item.currencyId)
if(coupon){ if(coupon){
it.amount -= coupon.reduceAmount it.amount = it.amount.minus(coupon.reduceAmount)
}
if(this.form.otherFee && this.form.otherFeeCurrencyId == item.currencyId){
it.amount = it.amount.plus(this.form.otherFee)
}
// 保价费(美元)
if(item.currencyId == 1 && this.fee && this.fee.insuranceFee){
it.amount = it.amount.plus(this.fee.insuranceFee)
withInsuranceFee = true
} }
arr.push(it) arr.push(it)
}) })
// 没有累加保价费(没有美元计价)但是有保价费则需要加上去
if(!withInsuranceFee && this.fee && this.fee.insuranceFee){
arr.push({
currencyId: 1,
amount: Decimal(this.fee.insuranceFee)
})
}
return arr return arr
}, },
// 路线开通的服务 // 路线开通的服务
...@@ -935,8 +970,11 @@ export default { ...@@ -935,8 +970,11 @@ export default {
orderType: this.form.orderType, orderType: this.form.orderType,
}).then(res => { }).then(res => {
this.$set(this, 'fee', res.data.costDto) this.$set(this, 'fee', res.data.costDto)
this.$set(this, 'couponTotalAmountList', res.data.availableDto.couponTotalAmountList) if(res.data.availableDto){
this.$set(this, 'couponAvailableGroupDtoList', res.data.availableDto.couponAvailableGroupDtoList) this.$set(this, 'couponTotalAmountList', res.data.availableDto.couponTotalAmountList)
this.$set(this, 'couponAvailableGroupDtoList', res.data.availableDto.couponAvailableGroupDtoList)
}
this.form.prodCreateReqVOList.map((item, index) => { this.form.prodCreateReqVOList.map((item, index) => {
this.$set(item, 'fee', res.data.prodCostDtoList[index] || null) this.$set(item, 'fee', res.data.prodCostDtoList[index] || null)
......
...@@ -18,33 +18,33 @@ ...@@ -18,33 +18,33 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发地')" prop="departureId"> <el-form-item :label="$t('始发地')" prop="departureId">
<el-select v-model="queryParams.departureId" :placeholder="$t('请选择始发地')"> <el-select v-model="queryParams.departureId" :placeholder="$t('请选择始发地')" clearable>
<el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的地')" prop="objectiveId"> <el-form-item :label="$t('目的地')" prop="objectiveId">
<el-select v-model="queryParams.objectiveId" :placeholder="$t('请选择目的地')"> <el-select v-model="queryParams.objectiveId" :placeholder="$t('请选择目的地')" clearable>
<el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId"> <el-form-item :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('商品')" prop="prodTitle"> <el-form-item :label="$t('商品')" prop="prodTitle">
<el-input v-model="queryParams.prodTitle" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.prodTitle" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货')" prop="control"> <el-form-item :label="$t('控货')" prop="control">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" /> <dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="followUpSalesmanId"> <el-form-item :label="$t('客户经理')" prop="followUpSalesmanId">
<user-selector v-model="queryParams.followUpSalesmanId" /> <user-selector v-model="queryParams.followUpSalesmanId" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('销售阶段')" prop="status"> <el-form-item :label="$t('销售阶段')" prop="status">
<dict-selector :type="DICT_TYPE.ECW_OFFER_STATUS" v-model="queryParams.status" /> <dict-selector :type="DICT_TYPE.ECW_OFFER_STATUS" v-model="queryParams.status" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('报关方式')" prop="customsType"> <el-form-item :label="$t('报关方式')" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" /> <dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable />
</el-form-item> </el-form-item>
<div> <div>
...@@ -164,44 +164,10 @@ export default { ...@@ -164,44 +164,10 @@ export default {
total: 0, total: 0,
// 报价单管理列表 // 报价单管理列表
list: [], list: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
dateRangeStopTime: [],
dateRangeStartTime: [],
dateRangeEndTime: [],
dateRangeCreateTime: [],
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10
number: null,
orderIds: null,
orderNo: null,
consignorId: null,
consigneeId: null,
marks: null,
customsType: null,
departureId: null,
departure: null,
objectiveId: null,
objective: null,
control: null,
competitor: null,
importance: null,
tradeType: null,
tradeAdress: null,
remarks: null,
status: null,
oldStatus: null,
relation: null,
relationId: null,
commissionType: null,
warehousingType: null,
reason: null,
estCost: null,
sendstatus: null,
}, },
currencyList: [], currencyList: [],
tradeCityList:[] tradeCityList:[]
...@@ -236,14 +202,8 @@ export default { ...@@ -236,14 +202,8 @@ export default {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeStopTime, 'stopTime');
this.addBeginAndEndTime(params, this.dateRangeStartTime, 'startTime');
this.addBeginAndEndTime(params, this.dateRangeEndTime, 'endTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行查询 // 执行查询
getOfferPage(params).then(response => { getOfferPage(this.queryParams).then(response => {
this.list = response.data.list; this.list = response.data.list;
this.total = response.data.total; this.total = response.data.total;
this.loading = false; this.loading = false;
...@@ -257,16 +217,15 @@ export default { ...@@ -257,16 +217,15 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.dateRangeStopTime = []; this.queryParams = {
this.dateRangeStartTime = []; pageNo: 1,
this.dateRangeEndTime = []; pageSize: 10
this.dateRangeCreateTime = []; }
this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
return this.$router.push('edit') return this.$router.push('create')
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
...@@ -289,16 +248,12 @@ export default { ...@@ -289,16 +248,12 @@ export default {
let params = {...this.queryParams}; let params = {...this.queryParams};
params.pageNo = undefined; params.pageNo = undefined;
params.pageSize = undefined; params.pageSize = undefined;
this.addBeginAndEndTime(params, this.dateRangeStopTime, 'stopTime');
this.addBeginAndEndTime(params, this.dateRangeStartTime, 'startTime');
this.addBeginAndEndTime(params, this.dateRangeEndTime, 'endTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行导出 // 执行导出
this.$modal.confirm(this.$t('是否确认导出所有报价单管理数据项?')).then(() => { this.$modal.confirm(this.$t('是否确认导出所有报价单管理数据项?')).then(() => {
this.exportLoading = true; this.exportLoading = true;
return exportOfferExcel(params); return exportOfferExcel(params);
}).then(response => { }).then(response => {
this.$download.excel(response, '${table.classComment}.xls'); this.$download.excel(response, '报价列表.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
}, },
......
...@@ -87,11 +87,12 @@ export default { ...@@ -87,11 +87,12 @@ export default {
} }
let data = Object.assign({}, this.form) let data = Object.assign({}, this.form)
updateOfferResult(data).then(response => { updateOfferResult(data).then(response => {
this.$modal.msgSuccess(this.$t("赢单成功"));
if(response.data > 0){ if(response.data > 0){
this.$message.success(this.$t('赢单成功'))
this.$redirect('../order/edit?id=' + response.data) this.$redirect('../order/edit?id=' + response.data)
return return
} }
this.$message.success(this.$t('输单成功'))
this.$router.back(); this.$router.back();
}); });
}); });
......
编辑
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
status != 20,21
shipmentState != 320,322,323
inWarehouseState != 212, 218, 213, 214, 215 && status != 5,8
取消
status = 0,2
费用申请
status != 0,
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState != 320,322,323
特需,关联,互斥
status != 0,
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
status > 5
inWarehouseState == 204
特价
status !=0
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState != 320,322,323
确认提货
status != 0,2
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState != 320,322,323
合单,拆单
status != 0,2
abnormalState != 1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
shipmentState > 320
入仓操作
status == 0,2
abnormalState == 1
入仓补充
inWarehouseState == 201,202, 208, 202, 210, 202, 211, 202, 213, 214, 215, 216
abnormalState != 99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14
入仓修改
inWarehouseState == 202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216, 204, 205, 206
退仓
inWarehouseState == 201, 202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216
abnormalState != 1
调仓
inWarehouseState == 201, 202, 208, 202, 210, 202, 211, 202, 213, 215, 216
取消调仓
inWarehouseState == 212,213,214
调拨出仓
inWarehouseState == 213
调拨到仓
inWarehouseState= 214
打印标签
status != 0
shipmentState != 320,322,323
abnormalState !=5,6,7,8
打印入仓单
status != 0,2
abnormalState != 1,5,6,7,8
shipmentState != 320,322,323
打印提单
...@@ -8,29 +8,29 @@ ...@@ -8,29 +8,29 @@
<el-date-picker v-model="dateFilter" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker v-model="dateFilter" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发地')" prop="startWarehouseId"> <el-form-item :label="$t('始发地')" prop="startWarehouseId">
<el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')"> <el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')" clearable>
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的地')" prop="destWarehouseId"> <el-form-item :label="$t('目的地')" prop="destWarehouseId">
<el-select v-model="queryParams.destWarehouseId" :placeholder="$t('请选择目的地')"> <el-select v-model="queryParams.destWarehouseId" :placeholder="$t('请选择目的地')" clearable>
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId"> <el-form-item :label="$t('运输方式')" prop="transportId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model.number="queryParams.transportId" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单编号')" prop="orderNo"> <el-form-item :label="$t('订单编号')" prop="orderNo">
<el-input v-model="queryParams.orderNo" :placeholder="$t('订单编号')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.orderNo" :placeholder="$t('订单编号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('品名')" prop="prodId"> <el-form-item :label="$t('品名')" prop="prodId">
<product-selector v-model="queryParams.prodId" @keyup.enter.native="handleQuery" /> <product-selector v-model="queryParams.prodId" @keyup.enter.native="handleQuery" clearable/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货')" prop="isCargoControl"> <el-form-item :label="$t('控货')" prop="isCargoControl">
<dict-selector v-model="queryParams.isCargoControl" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" /> <dict-selector v-model="queryParams.isCargoControl" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单状态')" prop="status"> <el-form-item :label="$t('订单状态')" prop="status">
<dict-selector :type="DICT_TYPE.PAY_ORDER_STATUS" v-model="queryParams.status" <dict-selector :type="DICT_TYPE.PAY_ORDER_STATUS" v-model="queryParams.status" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('提单号')" prop="tidanNo"> <el-form-item :label="$t('提单号')" prop="tidanNo">
......
...@@ -409,7 +409,7 @@ ...@@ -409,7 +409,7 @@
<div v-if="[2,3,4].indexOf(+form.transportId) > -1"> <div v-if="[2,3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('是否双清')"> <el-form-item :label="$t('是否双清')">
<dict-selector v-model="form.doubleClear" form-type="radio" :type="DICT_TYPE.ECW_DOUBLE_CLEAR" /> <dict-selector v-model="form.doubleClear" form-type="radio" :type="DICT_TYPE.ECW_DOUBLE_CLEAR" defaultable />
</el-form-item> </el-form-item>
</div> </div>
...@@ -425,7 +425,7 @@ ...@@ -425,7 +425,7 @@
</div> </div>
<div v-if="[2,3,4].indexOf(+form.transportId) > -1"> <div v-if="[2,3,4].indexOf(+form.transportId) > -1">
<el-form-item :label="$t('清关证书')"> <el-form-item :label="$t('清关证书')">
<dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" /> <dict-selector v-model="form.customsClearCert" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" defaultable />
</el-form-item> </el-form-item>
<el-form-item label="清关证书备注" > <el-form-item label="清关证书备注" >
<el-input v-model="form.remarks" ></el-input> <el-input v-model="form.remarks" ></el-input>
...@@ -433,18 +433,18 @@ ...@@ -433,18 +433,18 @@
</div> </div>
<div v-if="[3,4].indexOf(+form.transportId) > -1"> <div v-if="[3,4].indexOf(+form.transportId) > -1">
<el-form-item label="是否拆包"> <el-form-item label="是否拆包">
<dict-selector v-model="form.isUnpack" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" /> <dict-selector v-model="form.isUnpack" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" defaultable />
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('单票立刻转运')" v-if="[3,4].indexOf(+form.transportId) > -1"> <el-form-item :label="$t('单票立刻转运')" v-if="[3,4].indexOf(+form.transportId) > -1">
<dict-selector v-model="form.isSingleTicketTransport" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" /> <dict-selector v-model="form.isSingleTicketTransport" form-type="radio" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" defaultable />
<span style="margin-left:10px">{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}</span> <span style="margin-left:10px">{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}</span>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('特殊要求')" > <el-form-item :label="$t('特殊要求')" >
<dict-selector v-model="form.packageType" form-type="checkbox" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" multiple /> <dict-selector v-model="form.packageTypeArr" form-type="checkbox" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" multiple />
</el-form-item> </el-form-item>
</div> </div>
<el-form-item :label="$t('特殊要求备注')"> <el-form-item :label="$t('特殊要求备注')">
...@@ -462,7 +462,7 @@ ...@@ -462,7 +462,7 @@
<el-dialog :title="$t('批量导入')" :visible.sync="showBatchImportDialog" width="1000px" :close-on-click-modal="false"> <el-dialog :title="$t('批量导入')" :visible.sync="showBatchImportDialog" width="1000px" :close-on-click-modal="false">
<el-steps :active="importList.length > 0 ? 1 : 0" finish-status="success" class="w-500" style="margin: 20px auto"> <el-steps :active="importList.length > 0 ? 1 : 0" finish-status="success" class="w-500" style="margin: 20px auto">
<el-step :title="$t('上传集装箱')"></el-step> <el-step :title="$t('上传装箱单')"></el-step>
<el-step :title="$t('开始导入')"></el-step> <el-step :title="$t('开始导入')"></el-step>
<el-step :title="$t('完成')"></el-step> <el-step :title="$t('完成')"></el-step>
</el-steps> </el-steps>
...@@ -718,6 +718,9 @@ export default { ...@@ -718,6 +718,9 @@ export default {
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)
}, },
'form.packageTypeArr'(val){
this.$set(this.form, 'form.packageType', val.join(','))
},
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择 // 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
selectedRouter(val){ selectedRouter(val){
if(!val) return if(!val) return
......
This diff is collapsed.
...@@ -214,6 +214,8 @@ export default { ...@@ -214,6 +214,8 @@ export default {
getOrderSpecial(){ getOrderSpecial(){
getOrderSpecial(this.form.orderItemId).then(r => { getOrderSpecial(this.form.orderItemId).then(r => {
this.form = r.data this.form = r.data
this.form.freight = ''
this.form.clearanceFreight = ''
}) })
}, },
getOrderSpecialByApproveId(){ getOrderSpecialByApproveId(){
......
...@@ -79,9 +79,11 @@ ...@@ -79,9 +79,11 @@
prop="address" prop="address"
label="操作"> label="操作">
<template v-slot="{row}"> <template v-slot="{row}">
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount/${row.orderItemId}?orderId=${row.orderId}`)">优惠申请</el-button> <template v-if="row.originalSeaFreight !== 0 && row.originalClearanceFreight !== 0">
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/specialCommission/${row.orderItemId}`)">佣金规则</el-button> <el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount/${row.orderItemId}?orderId=${row.orderId}`)">优惠申请</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount1/${row.orderItemId}?orderId=${row.orderId}&discount=1`)">管理折扣</el-button> <el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/specialCommission/${row.orderItemId}`)">佣金规则</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount1/${row.orderItemId}?orderId=${row.orderId}&discount=1`)">管理折扣</el-button>
</template>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -76,11 +76,12 @@ ...@@ -76,11 +76,12 @@
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
<el-button v-if="order.status === 5" size="mini" type="text" @click="handleWarehousing($index)">修改</el-button> <el-button v-if="order.status === 5" size="mini" type="text" @click="handleWarehousing($index)">修改</el-button>
<template v-else> <template v-else>
<el-button v-if="orderItemList[$index] && orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0" size="mini" type="text" @click="handleWarehousing($index)">追加</el-button> <template v-if="orderItemList[$index] && orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0">
<el-button size="mini" type="text" @click="handleWarehousing($index)">追加</el-button>
<el-button size="mini" type="text" @click="handleWarehousingReturn(row)">退仓</el-button>
</template>
<el-button v-else size="mini" type="text" @click="handleWarehousing($index)">入仓</el-button> <el-button v-else size="mini" type="text" @click="handleWarehousing($index)">入仓</el-button>
<el-button size="mini" type="text" @click="handleWarehousingReturn(row)">退仓</el-button>
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -29,27 +29,27 @@ ...@@ -29,27 +29,27 @@
// TODO // TODO
</el-form-item> --> </el-form-item> -->
<el-form-item :label="$t('运输方式')" prop="transportType"> <el-form-item :label="$t('运输方式')" prop="transportType">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportType" formatter="number" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportType" formatter="number" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="shippingChannelId"> <el-form-item :label="$t('出货渠道')" prop="shippingChannelId">
<el-select v-model="queryParams.shippingChannelId" clearable> <el-select v-model="queryParams.shippingChannelId" clearable>
<el-option v-for="item in channelList" :key="item.id" :label="item.nameZh" :value="item.channelId" /> <el-option v-for="item in channelList" :key="item.id" :label="$l(item, 'name')" :value="item.channelId" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发地')" prop="startCityId"> <el-form-item :label="$t('始发地')" prop="startCityId">
<el-select v-model="queryParams.startCityId" clearable> <el-select v-model="queryParams.startCityId" clearable>
<el-option v-for="city in startCityList" :key="city.id" :label="city.titleZh" :value="city.id" /> <el-option v-for="city in startCityList" :key="city.id" :label="$l(city, 'title')" :value="city.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的地')" prop="destCityId"> <el-form-item :label="$t('目的地')" prop="destCityId">
<el-select v-model="queryParams.destCityId" clearable> <el-select v-model="queryParams.destCityId" clearable>
<el-option v-for="city in destCityList" :key="city.id" :label="city.titleZh" :value="city.id" /> <el-option v-for="city in destCityList" :key="city.id" :label="$l(city, 'title')" :value="city.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('审核状态')" prop="auditStatus"> <el-form-item :label="$t('审核状态')" prop="auditStatus">
<dict-selector :type="DICT_TYPE.ECW_PRICE_AUDIT_STATUS" v-model="queryParams.auditStatus" /> <dict-selector :type="DICT_TYPE.ECW_PRICE_AUDIT_STATUS" v-model="queryParams.auditStatus" clearable/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('状态')" prop="status"> <el-form-item :label="$t('状态')" prop="status">
// TODO // TODO
......
...@@ -44,10 +44,10 @@ ...@@ -44,10 +44,10 @@
<el-option v-for="dict in this.getDictDatas('company_type')" <el-option v-for="dict in this.getDictDatas('company_type')"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select--> </el-select-->
<dict-selector :type="DICT_TYPE.ECW_COMPANY_TYPE" v-model="queryParams.companyType" /> <dict-selector :type="DICT_TYPE.ECW_COMPANY_TYPE" v-model="queryParams.companyType" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('合作类型')" prop="cooperationType"> <el-form-item :label="$t('合作类型')" prop="cooperationType">
<dict-selector :type="DICT_TYPE.ECW_COOPERATION_TYPE" v-model="queryParams.cooperationType" /> <dict-selector :type="DICT_TYPE.ECW_COOPERATION_TYPE" v-model="queryParams.cooperationType" clearable/>
<!--el-select v-model="queryParams.cooperationType" placeholder="请选择合作类型" clearable size="small"> <!--el-select v-model="queryParams.cooperationType" placeholder="请选择合作类型" clearable size="small">
<el-option label="请选择字典生成" value="" /> <el-option label="请选择字典生成" value="" />
</el-select--> </el-select-->
......
...@@ -318,7 +318,7 @@ export default { ...@@ -318,7 +318,7 @@ export default {
|| this.form.type === SystemMenuTypeEnum.MENU) { || this.form.type === SystemMenuTypeEnum.MENU) {
// 如果是外链,则不进行校验 // 如果是外链,则不进行校验
const path = this.form.path const path = this.form.path
if (path.indexOf('http://') === -1 || path.indexOf('https://') === -1) { if (path && path.indexOf('http://') === -1 || path.indexOf('https://') === -1) {
// 父权限为根节点,path 必须以 / 开头 // 父权限为根节点,path 必须以 / 开头
if (this.form.parentId === 0 && path.charAt(0) !== '/') { if (this.form.parentId === 0 && path.charAt(0) !== '/') {
this.$modal.msgSuccess('前端必须以 / 开头') this.$modal.msgSuccess('前端必须以 / 开头')
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<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="fromId"> <!-- <el-form-item label="来源" prop="fromId">
<el-input v-model="queryParams.fromId" placeholder="请输入站内信来源" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.fromId" placeholder="请输入站内信来源" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>-->
<el-form-item label="发送时间"> <el-form-item label="发送时间">
<el-date-picker v-model="dateRangeSendTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker v-model="dateRangeSendTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="" align="center" prop="id" /> <el-table-column label="" align="center" prop="id" />
<el-table-column label="来源" align="center" prop="fromId" /> <!-- <el-table-column label="来源" align="center" prop="fromId" />-->
<el-table-column label="发送时间" align="center" prop="sendTime" width="180"> <el-table-column label="发送时间" align="center" prop="sendTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.sendTime) }}</span> <span>{{ parseTime(scope.row.sendTime) }}</span>
......
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