Commit f0e4a1a4 authored by Administrator's avatar Administrator

Merge branch 'pre-release' into 'jd_dev'

Pre release最新代码合并到jd_dev20241108

See merge request !96
parents dea494a4 94746a9e
...@@ -291,6 +291,14 @@ export function infoListOrderPage(params){ ...@@ -291,6 +291,14 @@ export function infoListOrderPage(params){
params params
}) })
} }
//客户详情订单统计
export function infoListStatisticsOrder(params){
return request({
url:'/ecw/order/customer-statistics-order',
method:'get',
params
})
}
//客户详情 --- 报价 //客户详情 --- 报价
export function infoListOfferPage(params){ export function infoListOfferPage(params){
return request({ return request({
...@@ -544,10 +552,20 @@ export function addCompetitor(data){ ...@@ -544,10 +552,20 @@ export function addCompetitor(data){
}) })
} }
export function competitorListAll(){
// 获得客户
export function getCompetitor(id) {
return request({
url: '/customer/competitor/get?id=' + id,
method: 'get'
})
}
export function competitorListAll(params){
return request({ return request({
url:'customer/competitor/listAll', url:'customer/competitor/listAll',
method:'get' method:'get',
params
}) })
} }
...@@ -557,4 +575,4 @@ export function customerMergeCus(params){ ...@@ -557,4 +575,4 @@ export function customerMergeCus(params){
method:'get', method:'get',
params params
}) })
} }
\ No newline at end of file
...@@ -91,6 +91,13 @@ export function editCustomerFollow(data) { ...@@ -91,6 +91,13 @@ export function editCustomerFollow(data) {
data data
}) })
} }
export function updateCustomerFollowupStatus(data) {
return request({
url: "/customer/followup/update-status",
method: "put",
data
})
}
export function exportCustomerFollow(params) { export function exportCustomerFollow(params) {
return request({ return request({
......
...@@ -359,6 +359,13 @@ export function feeApplicationGet(params) { ...@@ -359,6 +359,13 @@ export function feeApplicationGet(params) {
params params
}) })
} }
export function approvalFeeApplicationGet(params) {
return request({
url: "/order/fee-application/approval/get",
method: "get",
params
})
}
//获得调仓明细 //获得调仓明细
export function orderWarehouseInGetAdjustInfo(params) { export function orderWarehouseInGetAdjustInfo(params) {
...@@ -1081,8 +1088,9 @@ export function copyOrder(orderId) { ...@@ -1081,8 +1088,9 @@ export function copyOrder(orderId) {
// 强制到仓 // 强制到仓
export function order_warehouse_check_force(data) { export function order_warehouse_check_force(data) {
return request({ return request({
url: "/order/order-warehouse-check/force/" + data.orderId, url: "/order/order-warehouse-check/force",
method: "post" method: "post",
data
}) })
} }
......
<template>
<el-select
v-model="valueSync"
filterable
:clearable="clearable"
:multiple="multiple"
remote
reserve-keyword
:placeholder="$t('请输入关键词')"
@change="(val) => $emit('change', val)"
:remote-method="remoteMethod"
@focus="onFocus"
@clear="onClear"
:loading="loading">
<el-option
v-for="(item, index) in list"
:key="item.id"
:label="`${item.name}`"
:value="index">
</el-option>
</el-select>
</template>
<script>
import {competitorListAll, getCompetitor} from '@/api/ecw/customer'
export default {
props: {
value: [String, Number, Array, Boolean],
multiple: Boolean,
clearable: Boolean,
placeholder: String,
},
data() {
return {
list: [],
loading: false,
valueSync: this.value
}
},
watch: {
index(val) {
let id = null
if (val){
let data = this.list[val]
console.log('选中的竞争对手', data)
id = data.id
}
// let id = val !== '' && val !== null ? this.list[val].id : null
this.$emit('input', id)
},
value(val) {
// console.log('初始化内容', val)
this.init()
},
},
created() {
this.init()
},
methods: {
init() {
if (!this.value) {
this.index = null
return
}
let index = this.list.findIndex(item => item.id == this.value)
if (index < 0) {
getCompetitor(this.value).then(res => {
this.list.unshift(res.data)
this.$nextTick(() => {
this.index = 0
})
})
} else this.index = index
},
onFocus() {
this.$emit('focus')
if (!this.list.length) {
this.remoteMethod()
}
},
onClear() {
this.list = []
},
remoteMethod(keyword) {
let params = {}
params.searchKey = keyword
this.loading = true
competitorListAll(params)
.then(res => {
console.log('初始化内容', res),
this.list = res.data
})
.finally(() => this.loading = false)
}
}
}
</script>
...@@ -96,6 +96,7 @@ import '@/icons' ...@@ -96,6 +96,7 @@ import '@/icons'
import axios from 'axios' import axios from 'axios'
Vue.prototype.$axios = axios Vue.prototype.$axios = axios
import '@/styles/index.scss' import '@/styles/index.scss'
import '@/styles/custom.scss'
/** /**
* If you don't want to use mock-server * If you don't want to use mock-server
......
.search-z {
.el-form-item--small.el-form-item {
width: 360px;
}
}
.search-time {
.el-form-item--small.el-form-item {
width: 520px;
}
}
.flex-c-c {
display: flex;
justify-content: center;
align-items: center;
}
$editorTabsborderColor: #121315; $editorTabsborderColor: #121315;
body, html{
body,
html {
margin: 0; margin: 0;
padding: 0; padding: 0;
background: #fff; background: #fff;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
} }
input, textarea{ input,
font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji; textarea {
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
} }
.editor-tabs{ .editor-tabs {
background: $editorTabsborderColor; background: $editorTabsborderColor;
.el-tabs__header{
.el-tabs__header {
margin: 0; margin: 0;
border-bottom-color: $editorTabsborderColor; border-bottom-color: $editorTabsborderColor;
.el-tabs__nav{
.el-tabs__nav {
border-color: $editorTabsborderColor; border-color: $editorTabsborderColor;
} }
} }
.el-tabs__item{
.el-tabs__item {
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
color: #888a8e; color: #888a8e;
border-left: 1px solid $editorTabsborderColor!important; border-left: 1px solid $editorTabsborderColor !important;
background: #363636; background: #363636;
margin-right: 5px; margin-right: 5px;
user-select: none; user-select: none;
} }
.el-tabs__item.is-active{
.el-tabs__item.is-active {
background: #1e1e1e; background: #1e1e1e;
border-bottom-color: #1e1e1e!important; border-bottom-color: #1e1e1e !important;
color: #fff; color: #fff;
} }
.el-icon-edit{
.el-icon-edit {
color: #f1fa8c; color: #f1fa8c;
} }
.el-icon-document{
.el-icon-document {
color: #a95812; color: #a95812;
} }
:focus.is-active.is-focus:not(:active) { :focus.is-active.is-focus:not(:active) {
box-shadow: none; box-shadow: none;
border-radius: 0; border-radius: 0;
...@@ -54,29 +64,35 @@ input, textarea{ ...@@ -54,29 +64,35 @@ input, textarea{
padding: 12px 18px 15px 15px; padding: 12px 18px 15px 15px;
} }
} }
.el-scrollbar__wrap { .el-scrollbar__wrap {
box-sizing: border-box; box-sizing: border-box;
overflow-x: hidden !important; overflow-x: hidden !important;
margin-bottom: 0 !important; margin-bottom: 0 !important;
} }
.center-tabs{
.el-tabs__header{ .center-tabs {
margin-bottom: 0!important; .el-tabs__header {
margin-bottom: 0 !important;
} }
.el-tabs__item{
.el-tabs__item {
width: 50%; width: 50%;
text-align: center; text-align: center;
} }
.el-tabs__nav{
.el-tabs__nav {
width: 100%; width: 100%;
} }
} }
.reg-item{
.reg-item {
padding: 12px 6px; padding: 12px 6px;
background: #f8f8f8; background: #f8f8f8;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
.close-btn{
.close-btn {
position: absolute; position: absolute;
right: -6px; right: -6px;
top: -6px; top: -6px;
...@@ -91,18 +107,22 @@ input, textarea{ ...@@ -91,18 +107,22 @@ input, textarea{
z-index: 1; z-index: 1;
cursor: pointer; cursor: pointer;
font-size: 12px; font-size: 12px;
&:hover{
background: rgba(210, 23, 23, 0.5) &:hover {
background: rgba(210, 23, 23, 0.5);
} }
} }
& + .reg-item{
&+.reg-item {
margin-top: 18px; margin-top: 18px;
} }
} }
.action-bar{
.action-bar {
& .el-button+.el-button { & .el-button+.el-button {
margin-left: 15px; margin-left: 15px;
} }
& i { & i {
font-size: 20px; font-size: 20px;
vertical-align: middle; vertical-align: middle;
...@@ -111,31 +131,32 @@ input, textarea{ ...@@ -111,31 +131,32 @@ input, textarea{
} }
} }
.custom-tree-node{ .custom-tree-node {
width: 100%; width: 100%;
font-size: 14px; font-size: 14px;
.node-operation{
.node-operation {
float: right; float: right;
} }
i[class*="el-icon"] + i[class*="el-icon"]{
i[class*="el-icon"]+i[class*="el-icon"] {
margin-left: 6px; margin-left: 6px;
} }
.el-icon-plus{
color: #409EFF; .el-icon-plus {
color: #409eff;
} }
.el-icon-delete{
.el-icon-delete {
color: #157a0c; color: #157a0c;
} }
} }
.el-scrollbar__view{ .el-rate {
/*overflow-x: hidden;*/
}
.el-rate{
display: inline-block; display: inline-block;
vertical-align: text-top; vertical-align: text-top;
} }
.el-upload__tip{
.el-upload__tip {
line-height: 1.2; line-height: 1.2;
} }
\ No newline at end of file
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('状态')" prop="shipmentStatusAir"> <el-form-item :label="$t('状态')" prop="shipmentStatusAirList">
<el-select v-model="queryParams.shipmentStatusAir" :placeholder="$t('请选择状态')" clearable size="small"> <el-select v-model="queryParams.shipmentStatusAirList" :placeholder="$t('请选择状态')" clearable size="small" multiple collapse-tags>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BOX_AIR_SHIPMENT_STATE)" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value" /> <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BOX_AIR_SHIPMENT_STATE)" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('发货方式')" prop="deliveryType" v-show="showSearch"> <el-form-item :label="$t('发货方式')" prop="deliveryType" v-show="showSearch">
<el-select v-model="queryParams.deliveryType" :placeholder="$t('请选择发货方式')" clearable size="small"> <el-select v-model="queryParams.deliveryType" :placeholder="$t('请选择发货方式')" clearable size="small" multiple collapse-tags>
<el-option v-for="item in deliveryTypeData" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in deliveryTypeData" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
...@@ -750,6 +750,26 @@ export default { ...@@ -750,6 +750,26 @@ export default {
} }
}); });
}, },
formatQuery() {
let obj = {}
//始发仓
// if (this.startWarehouseId != null && this.startWarehouseId != "") {
// obj.startWarehouseIds = this.startWarehouseId
// }
//目的国
if (this.countryIdList != null && this.countryIdList != "") {
obj.countryIdLists = this.countryIdList
}
//目的城市
if (this.destCityIdList != null && this.destCityIdList != "") {
obj.destCityIdLists = this.destCityIdList
}
//目的仓
if (this.destWarehouseIdList != null && this.destWarehouseIdList != "") {
obj.destWarehouseIdList = this.destWarehouseIdList
}
return obj
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true this.loading = true
...@@ -760,7 +780,7 @@ export default { ...@@ -760,7 +780,7 @@ export default {
this.addBeginAndEndTimeNew(params, params.flyBeginTime, 'fly');// 预计起飞时间 this.addBeginAndEndTimeNew(params, params.flyBeginTime, 'fly');// 预计起飞时间
this.addBeginAndEndTimeNew(params, params.dcPassBeginTime, 'dcPass');// 放行时间 this.addBeginAndEndTimeNew(params, params.dcPassBeginTime, 'dcPass');// 放行时间
// 执行查询 // 执行查询
getboxPage(params).then((response) => { getboxPage({...params, ...this.formatQuery()}).then((response) => {
this.list = response.data.list this.list = response.data.list
this.total = response.data.total this.total = response.data.total
// var lineParams = [] // var lineParams = []
...@@ -795,6 +815,9 @@ export default { ...@@ -795,6 +815,9 @@ export default {
destWarehouseIdList: undefined, destWarehouseIdList: undefined,
transportType: undefined transportType: undefined
} }
this.countryIdList = null;
this.destCityIdList = null;
this.destWarehouseIdList = null;
this.resetForm('form') this.resetForm('form')
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
...@@ -863,7 +886,7 @@ export default { ...@@ -863,7 +886,7 @@ export default {
.confirm(this.$t('是否确认导出所有出货数据项?')) .confirm(this.$t('是否确认导出所有出货数据项?'))
.then(() => { .then(() => {
this.exportLoading = true this.exportLoading = true
return exportboxExcel(params) return exportboxExcel({...params, ...this.formatQuery()})
}) })
.then((response) => { .then((response) => {
this.$download.excel(response, this.$t("空运管理") + ".xls"); this.$download.excel(response, this.$t("空运管理") + ".xls");
......
...@@ -108,9 +108,9 @@ ...@@ -108,9 +108,9 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('状态')" prop="boxStatusList"> <el-form-item :label="$t('状态')" prop="shipmentStatusList">
<el-select <el-select
v-model="queryParams.boxStatusList" v-model="queryParams.shipmentStatusList"
:placeholder="$t('请选择状态')" :placeholder="$t('请选择状态')"
clearable clearable
multiple multiple
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="dateRangeCreateTime"> <el-form-item label="" prop="dateRangeCreateTime">
<el-date-picker <el-date-picker
v-model="queryParams.dateRangeCreateTime" v-model="queryParams.dateRangeCreateTime"
...@@ -961,6 +961,26 @@ export default { ...@@ -961,6 +961,26 @@ export default {
this.countryList = response.data; this.countryList = response.data;
}); });
}, },
formatQuery() {
let obj = {}
//始发仓
// if (this.startWarehouseId != null && this.startWarehouseId != "") {
// obj.startWarehouseIds = this.startWarehouseId
// }
//目的国
if (this.countryIdList != null && this.countryIdList != "") {
obj.countryIdLists = this.countryIdList
}
//目的城市
if (this.destCityIdList != null && this.destCityIdList != "") {
obj.destCityIdLists = this.destCityIdList
}
//目的仓
if (this.destWarehouseIdList != null && this.destWarehouseIdList != "") {
obj.destWarehouseIdList = this.destWarehouseIdList
}
return obj
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
...@@ -978,7 +998,7 @@ export default { ...@@ -978,7 +998,7 @@ export default {
this.addBeginAndEndTimeNew(params, params.estBeginTime, 'est');// 预计到港时间 this.addBeginAndEndTimeNew(params, params.estBeginTime, 'est');// 预计到港时间
this.addBeginAndEndTimeNew(params, params.dcPassBeginTime, 'dcPass');// 放行时间 this.addBeginAndEndTimeNew(params, params.dcPassBeginTime, 'dcPass');// 放行时间
// 执行查询 // 执行查询
getboxPage(params).then((response) => { getboxPage({...params, ...this.formatQuery()}).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;
...@@ -993,6 +1013,9 @@ export default { ...@@ -993,6 +1013,9 @@ export default {
resetQuery() { resetQuery() {
this.queryParams = {}; this.queryParams = {};
this.dateRangeCreateTime = []; this.dateRangeCreateTime = [];
this.countryIdList = null;
this.destCityIdList = null;
this.destWarehouseIdList = null;
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
...@@ -1058,7 +1081,7 @@ export default { ...@@ -1058,7 +1081,7 @@ export default {
.confirm(this.$t("是否确认导出所有出货数据项?")) .confirm(this.$t("是否确认导出所有出货数据项?"))
.then(() => { .then(() => {
this.exportLoading = true; this.exportLoading = true;
return exportboxExcel(params); return exportboxExcel({...params, ...this.formatQuery()});
}) })
.then((response) => { .then((response) => {
this.$download.excel(response, this.$t("海运管理") + ".xls"); this.$download.excel(response, this.$t("海运管理") + ".xls");
......
...@@ -74,6 +74,24 @@ ...@@ -74,6 +74,24 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('品牌')" align="center">
<template v-if="scope.row.brandName && scope.row.brandName!=='无' && scope.row.brandName!=='无牌'" slot-scope="scope">
<template v-if="scope.row.brandName">{{scope.row.brandName}}</template>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brand" />
</template>
</el-table-column>
<el-table-column :label="$t('包装类型')" align="center" prop="">
<template slot-scope="scope">
<span v-for="(unit,index) in scope.row.units.split(',')" :key="index">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="unit" /><span v-if="index<scope.row.units.split(',').length-1">, </span>
</span>
</template>
</el-table-column>
<el-table-column :label="$t('特性')" align="center" prop="warehouseInAttrNameList" width="120">
<template slot-scope="scope">
{{scope.row.warehouseInAttrNameList?scope.row.warehouseInAttrNameList.toString():""}}
</template>
</el-table-column>
<el-table-column :label="$t('计划/已理')" align="center" prop="warehouseInInfo.cartonsNum"> <el-table-column :label="$t('计划/已理')" align="center" prop="warehouseInInfo.cartonsNum">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" @click.native="orderClick(scope.row)"> <el-link type="primary" @click.native="orderClick(scope.row)">
......
...@@ -118,6 +118,9 @@ ...@@ -118,6 +118,9 @@
<el-table-column :label="$t('清关状态')" align="center" prop=""> <el-table-column :label="$t('清关状态')" align="center" prop="">
<template slot-scope="scope">{{ clearStatus(scope.row) }}</template> <template slot-scope="scope">{{ clearStatus(scope.row) }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('卸柜/到仓时间')" align="center" prop="">
<template slot-scope="scope">{{ scope.row.unloadTime }}</template>
</el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" /> <el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" />
<el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" /> <el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" />
<el-table-column :label="$t('体积')" align="center" prop="volume" /> <el-table-column :label="$t('体积')" align="center" prop="volume" />
...@@ -143,7 +146,7 @@ ...@@ -143,7 +146,7 @@
<el-button type="danger" size="small" @click="openError(scope.row)">{{ $t("异常") }}</el-button> <el-button type="danger" size="small" @click="openError(scope.row)">{{ $t("异常") }}</el-button>
<el-button v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2" plain type="primary" size="small" @click="$router.push('/order/warehousing-update?id=' + scope.row.orderId)">{{ $t("入仓修改 ") }}</el-button> <el-button v-if="pageData.boxCustomsBackVO && pageData.boxCustomsBackVO.overMachineStatus == 2 && pageData.boxCustomsBackVO.overMachineAbnormalStatus == 2" plain type="primary" size="small" @click="$router.push('/order/warehousing-update?id=' + scope.row.orderId)">{{ $t("入仓修改 ") }}</el-button>
<el-button type="primary" size="small" @click="order_warehouse_check_revoke(scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("撤销到仓") }}</el-button> <el-button type="primary" size="small" @click="order_warehouse_check_revoke(scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("撤销到仓") }}</el-button>
<el-button type="primary" size="small" @click="order_warehouse_check_force(scope.row.orderId)" v-if="scope.row.installNum > scope.row.unloadNum">{{ $t("强制到仓") }}</el-button> <el-button type="primary" size="small" @click="order_warehouse_check_force(scope.row.orderId)" v-if="scope.row.inWarehouseState == 0 && scope.row.unloadNum > 0 && scope.row.installNum > scope.row.unloadNum">{{ $t("强制到仓") }}</el-button>
<el-button type="primary" size="small" @click="$router.push('/order/warehousingTo-update?id=' + scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("到仓修改") }}</el-button> <el-button type="primary" size="small" @click="$router.push('/order/warehousingTo-update?id=' + scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("到仓修改") }}</el-button>
</div> </div>
</template> </template>
...@@ -305,10 +308,23 @@ export default { ...@@ -305,10 +308,23 @@ export default {
}) })
}, },
order_warehouse_check_force(orderId) { order_warehouse_check_force(orderId) {
if (!this.ulWarehouseTime) {
this.$message.error(this.$t("请选择到仓时间"))
return
}
this.$confirm(this.$t("确定要强制到仓么?")).then(async () => { this.$confirm(this.$t("确定要强制到仓么?")).then(async () => {
let r = await order_warehouse_check_force({ orderId }) let params = {}
this.getLoadGoodsList() params.orderId = orderId
params.unloadTime = this.ulWarehouseTime
await order_warehouse_check_force(params).then((res) => {
if (res.data){
this.$router.push('/order/warehousingTo-update?id=' + orderId)
}
})
}) })
}, },
getTotlContent, getTotlContent,
getOrders(id) { getOrders(id) {
......
...@@ -62,6 +62,24 @@ ...@@ -62,6 +62,24 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('品牌')" align="center">
<template v-if="scope.row.brandName && scope.row.brandName!=='无' && scope.row.brandName!=='无牌'" slot-scope="scope">
<template v-if="scope.row.brandName">{{scope.row.brandName}}</template>
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brand" />
</template>
</el-table-column>
<el-table-column :label="$t('包装类型')" align="center" prop="">
<template slot-scope="scope">
<span v-for="(unit,index) in scope.row.units.split(',')" :key="index">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="unit" /><span v-if="index<scope.row.units.split(',').length-1">, </span>
</span>
</template>
</el-table-column>
<el-table-column :label="$t('特性')" align="center" prop="warehouseInAttrNameList" width="120">
<template slot-scope="scope">
{{scope.row.warehouseInAttrNameList?scope.row.warehouseInAttrNameList.toString():""}}
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="warehouseInInfo.cartonsNum"> <el-table-column :label="$t('箱数')" align="center" prop="warehouseInInfo.cartonsNum">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" @click.native="showWarehouseLogs(scope.row)"> <el-link type="primary" @click.native="showWarehouseLogs(scope.row)">
......
...@@ -109,6 +109,9 @@ ...@@ -109,6 +109,9 @@
<el-table-column :label="$t('清关状态')" align="center" prop=""> <el-table-column :label="$t('清关状态')" align="center" prop="">
<template slot-scope="scope">{{ clearStatus(scope.row) }}</template> <template slot-scope="scope">{{ clearStatus(scope.row) }}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('卸柜/到仓时间')" align="center" prop="">
<template slot-scope="scope">{{ scope.row.unloadTime }}</template>
</el-table-column>
<el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" /> <el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName" />
<el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" /> <el-table-column :label="$t('目的仓')" align="center" prop="destWarehouseName" />
<el-table-column :label="$t('体积')" align="center" prop="volume" /> <el-table-column :label="$t('体积')" align="center" prop="volume" />
...@@ -133,7 +136,7 @@ ...@@ -133,7 +136,7 @@
<div class="btns"> <div class="btns">
<el-button type="danger" size="small" @click="openError(scope.row)">{{ $t("异常") }}</el-button> <el-button type="danger" size="small" @click="openError(scope.row)">{{ $t("异常") }}</el-button>
<el-button type="primary" size="small" @click="order_warehouse_check_revoke(scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("撤销到仓") }}</el-button> <el-button type="primary" size="small" @click="order_warehouse_check_revoke(scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("撤销到仓") }}</el-button>
<el-button type="primary" size="small" @click="order_warehouse_check_force(scope.row.orderId)" v-if="scope.row.installNum > scope.row.unloadNum">{{ $t("强制到仓") }}</el-button> <el-button type="primary" size="small" @click="order_warehouse_check_force(scope.row.orderId)" v-if="scope.row.inWarehouseState == 0 && scope.row.unloadNum > 0 && scope.row.installNum > scope.row.unloadNum">{{ $t("强制到仓") }}</el-button>
<el-button type="primary" size="small" @click="$router.push('/order/warehousingTo-update?id=' + scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("到仓修改") }}</el-button> <el-button type="primary" size="small" @click="$router.push('/order/warehousingTo-update?id=' + scope.row.orderId)" v-if="scope.row.inWarehouseState == 218">{{ $t("到仓修改") }}</el-button>
</div> </div>
</template> </template>
...@@ -287,9 +290,19 @@ export default { ...@@ -287,9 +290,19 @@ export default {
}) })
}, },
order_warehouse_check_force(orderId) { order_warehouse_check_force(orderId) {
if (!this.ulWarehouseTime) {
this.$message.error(this.$t("请选择到仓时间"))
return
}
this.$confirm(this.$t("确定要强制到仓么?")).then(async () => { this.$confirm(this.$t("确定要强制到仓么?")).then(async () => {
let r = await order_warehouse_check_force({ orderId }) let params = {}
this.getLoadGoodsList() params.orderId = orderId
params.unloadTime = this.ulWarehouseTime
await order_warehouse_check_force(params).then((res) => {
if (res.data){
this.$router.push('/order/warehousingTo-update?id=' + orderId)
}
})
}) })
}, },
getTotlContent, getTotlContent,
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('跟进类型')" required> <el-form-item :label="$t('跟进类型')" required>
<el-select v-model="form.followType" clearable :placeholder="$t('请选择')" @change="handleFollowType" :disabled="isView"> <el-select v-model="form.followType" clearable :placeholder="$t('请选择')" @change="handleFollowType" :disabled="isView || !!offerId">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" /> <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<el-col :span="12" v-else> <el-col :span="12" v-else>
<el-form-item :label="$t('联系人')" required> <el-form-item :label="$t('联系人')" required>
<div class="contact"> <div class="contact">
<el-input :value="form.contactName" placeholder="" disabled /> <el-input v-model="form.contactName" :value="form.customerContactsId" placeholder="" disabled />
<img src="@/assets/svg/contacts.svg" class="phonebook" @click="ChooseContactDialog = true" /> <img src="@/assets/svg/contacts.svg" class="phonebook" @click="ChooseContactDialog = true" />
</div> </div>
</el-form-item> </el-form-item>
...@@ -88,13 +88,6 @@ ...@@ -88,13 +88,6 @@
<el-input rows="3" class="text_style" type="textarea" v-model="form.feedback" maxlength="500" show-word-limit :disabled="isView" /> <el-input rows="3" class="text_style" type="textarea" v-model="form.feedback" maxlength="500" show-word-limit :disabled="isView" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="20" v-if="isView">
<el-form-item>
<div style="text-align: right">
<el-button size="mini" icon="el-icon-collection" type="primary" @click="$emit('handleCustomerFollowAdd', form)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="20"> <el-col :span="20">
<el-form-item :label="$t('附件')" prop="attatchment"> <el-form-item :label="$t('附件')" prop="attatchment">
<FileUpload :limit="5" :isShowTip="true" v-model="form.attatchment" :fileType="fileType" :disabled="isView" /> <FileUpload :limit="5" :isShowTip="true" v-model="form.attatchment" :fileType="fileType" :disabled="isView" />
...@@ -110,6 +103,14 @@ ...@@ -110,6 +103,14 @@
<el-input type="textarea" :rows="3" v-model="form.nextPlan" :placeholder="$t('请输入下一步计划')" maxlength="500" show-word-limit :disabled="isView" /> <el-input type="textarea" :rows="3" v-model="form.nextPlan" :placeholder="$t('请输入下一步计划')" maxlength="500" show-word-limit :disabled="isView" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="20" v-if="isView">
<el-form-item>
<div style="text-align: right">
<!-- <el-button size="mini" icon="el-icon-collection" type="primary" @click="$emit('handleCustomerFollowAdd', form)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>-->
<el-button size="mini" type="text" icon="el-icon-collection" @click="handleUpdate(form, true)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('创建人')" prop="founder"> <el-form-item :label="$t('创建人')" prop="founder">
<el-select v-model="form.creatorName" disabled :placeholder="$t('请选择')"> <el-select v-model="form.creatorName" disabled :placeholder="$t('请选择')">
...@@ -146,6 +147,7 @@ ...@@ -146,6 +147,7 @@
</div> </div>
</el-dialog> </el-dialog>
<choose-contact-dialog v-if="ChooseContactDialog" :type="2" @choose="changeAllContactUser" @close="ChooseContactDialog = false" /> <choose-contact-dialog v-if="ChooseContactDialog" :type="2" @choose="changeAllContactUser" @close="ChooseContactDialog = false" />
<CustomerFollowSelectOffer v-if="CustomerFollowSelectOffer" :customer-id="customerId" ref="customerFollowSelectOffer" @select="selectOffer" @close="CustomerFollowSelectOffer = false" />
</div> </div>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -172,6 +174,7 @@ import { parseTime } from "@/utils/ruoyi" ...@@ -172,6 +174,7 @@ import { parseTime } from "@/utils/ruoyi"
import FileUpload from "@/components/FileUpload/fileUpload" import FileUpload from "@/components/FileUpload/fileUpload"
import { formatDate } from "@/utils/index" import { formatDate } from "@/utils/index"
import ChooseContactDialog from "@/components/ChooseContactDialog" import ChooseContactDialog from "@/components/ChooseContactDialog"
import CustomerFollowSelectOffer from "./customerFollowSelectOffer"
export default { export default {
/** /**
* 客户跟进 * 客户跟进
...@@ -182,16 +185,19 @@ export default { ...@@ -182,16 +185,19 @@ export default {
/** /**
* 如果是客户投诉跟进,则id为客户投诉id;如果是客户跟进,则id为客户id * 如果是客户投诉跟进,则id为客户投诉id;如果是客户跟进,则id为客户id
*/ */
offerId: Number,
customerId: Number, customerId: Number,
customerNumber: String, customerNumber: String,
customerService: Number customerService: Number
}, },
components: { components: {
ChooseContactDialog, ChooseContactDialog,
CustomerFollowSelectOffer,
FileUpload FileUpload
}, },
data() { data() {
return { return {
CustomerFollowSelectOffer: false,
ChooseContactDialog: false, ChooseContactDialog: false,
fileType: ["doc", "xls", "ppt", "txt", "pdf", "png", "jpg", "jpeg"], fileType: ["doc", "xls", "ppt", "txt", "pdf", "png", "jpg", "jpeg"],
DICT_TYPE, DICT_TYPE,
...@@ -203,7 +209,7 @@ export default { ...@@ -203,7 +209,7 @@ export default {
customerFollow: { customerFollow: {
dialogVisible: false, dialogVisible: false,
form: { form: {
followType: "3" followType: 3
} }
}, },
offerDialogVisible: true, offerDialogVisible: true,
...@@ -242,6 +248,9 @@ export default { ...@@ -242,6 +248,9 @@ export default {
}) })
}, },
methods: { methods: {
selectOffer(offerId) {
this.form.offerId = offerId
},
init() { init() {
if (this.form.customerId) { if (this.form.customerId) {
getCustomerContactsListByCustomer({ getCustomerContactsListByCustomer({
...@@ -268,12 +277,14 @@ export default { ...@@ -268,12 +277,14 @@ export default {
console.log(item) console.log(item)
if (item) { if (item) {
this.form.contactId = item.customerContactsId
this.form.contactName = item.contactsName this.form.contactName = item.contactsName
this.form.customerId = item.customerId this.form.customerId = item.customerId
this.form.contactPhone = "+" + item.areaCode + item.phoneNew this.form.contactPhone = "+" + item.areaCode + item.phoneNew
if (item.customerService) this.form.followUserId = item.customerService if (item.customerService) this.form.followUserId = item.customerService
if (item.customerNumber) this.form.customerNumber = item.customerNumber if (item.customerNumber) this.form.customerNumber = item.customerNumber
} else { } else {
this.form.contactId = null
this.form.contactName = null this.form.contactName = null
this.form.contactPhone = null this.form.contactPhone = null
} }
...@@ -283,6 +294,7 @@ export default { ...@@ -283,6 +294,7 @@ export default {
if (val) { if (val) {
for (const item of this.customerContactsList) { for (const item of this.customerContactsList) {
if (item.id == val) { if (item.id == val) {
this.form.contactId = item.id
this.form.contactName = item.name this.form.contactName = item.name
this.form.customerId = item.customerId this.form.customerId = item.customerId
this.form.contactPhone = "+" + item.areaCode + item.phoneNew this.form.contactPhone = "+" + item.areaCode + item.phoneNew
...@@ -304,8 +316,8 @@ export default { ...@@ -304,8 +316,8 @@ export default {
}, },
handleFollowType(val) { handleFollowType(val) {
console.log(val) console.log(val)
if (val == "2") { if (val == 2) {
this.$refs["customerFollowSelectOffer"].offerDialogVisible = true this.CustomerFollowSelectOffer = true
} else { } else {
this.form.offerId = undefined this.form.offerId = undefined
} }
...@@ -321,12 +333,12 @@ export default { ...@@ -321,12 +333,12 @@ export default {
feedback: undefined, feedback: undefined,
followMethod: undefined, followMethod: undefined,
followTime: new Date().getTime(), followTime: new Date().getTime(),
followType: undefined, followType: this.offerId ? 2 : undefined,
followUserId: this.customerService, followUserId: this.customerService,
nextPlan: undefined, nextPlan: undefined,
nextTime: undefined, nextTime: undefined,
number: undefined, number: undefined,
offerId: undefined, offerId: this.offerId,
parentId: undefined, parentId: undefined,
parentNumber: undefined, parentNumber: undefined,
purpose: undefined, purpose: undefined,
...@@ -412,10 +424,11 @@ export default { ...@@ -412,10 +424,11 @@ export default {
}, },
customerFollowClose() { customerFollowClose() {
this.customerFollow.dialogVisible = false this.customerFollow.dialogVisible = false
this.$emit("close")
}, },
handleView(row) { handleView(row) {
this.isView = true
this.form = row this.form = row
this.isView = this.form.status === 1
this.customerFollow.dialogVisible = true this.customerFollow.dialogVisible = true
}, },
async handleAdd() { async handleAdd() {
......
<template> <template>
<el-dialog append-to-body :title="$t('报价单')" :visible.sync="offerDialogVisible" :close-on-click-modal="false" width="80%"> <el-dialog append-to-body :title="$t('报价单')" :visible.sync="offerDialogVisible" :close-on-click-modal="false" width="80%" @close="$emit('close')">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item :label="$t('编号')" prop="searchNumber"> <el-form-item :label="$t('编号')" prop="searchNumber">
<el-input v-model="queryParams.searchNumber" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.searchNumber" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户')" prop="searchCustomer"> <el-form-item :label="$t('客户')" prop="searchCustomer">
<el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="followUpSalesmanId"> <el-form-item :label="$t('客户经理')" prop="followUpSalesmanId">
<user-selector v-model="queryParams.followUpSalesmanId" clearable /> <user-selector v-model="queryParams.followUpSalesmanId" clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{ $t("重置") }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table :data="offerList" border size="mini"> <el-table :data="offerList" border size="mini">
<el-table-column align="center" width="80"> <el-table-column align="center" width="80">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<el-radio v-model="offerId" :label="row.offerId">&nbsp;</el-radio> <el-radio v-model="offerId" :label="row.offerId">&nbsp;</el-radio>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('报价单号')" min-width="160px"> <el-table-column :label="$t('报价单号')" min-width="160px">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<el-link type="primary" @click.native="$router.push('/offer/detail?offerId=' + row.offerId)">{{row.number}}</el-link> <el-link type="primary" @click.native="$router.push('/offer/detail?offerId=' + row.offerId)">{{ row.number }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('销售阶段')" min-width="120"> <el-table-column :label="$t('销售阶段')" min-width="120">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="row.status" /> <dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('订单编号')" min-width="150px"> <el-table-column :label="$t('订单编号')" min-width="150px">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<el-link type="primary" @click.native="$router.push('/order/detail?orderId=' + row.orderId)">{{row.orderNo}}</el-link> <el-link type="primary" @click.native="$router.push('/order/detail?orderId=' + row.orderId)">{{ row.orderNo }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('客户编号')" align="center" min-width="100"> <el-table-column :label="$t('客户编号')" align="center" min-width="100">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<el-link type="primary" @click.native="$router.push('/customer/query/' + row.relationId)">{{row.customerNumber}}</el-link> <el-link type="primary" @click.native="$router.push('/customer/query/' + row.relationId)">{{ row.customerNumber }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('客户名称')" align="center" prop="relationName" min-width="100" /> <el-table-column :label="$t('客户名称')" align="center" prop="relationName" min-width="100" />
<el-table-column :label="$t('联系方式')"> <el-table-column :label="$t('联系方式')">
<template slot-scope="scope"> <template slot-scope="scope"> +{{ scope.row.relationAreaCode }}{{ scope.row.relationPhone }} </template>
+{{ scope.row.relationAreaCode }}{{ scope.row.relationPhone }}
</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('运输方式')"> <el-table-column :label="$t('运输方式')">
<template slot-scope="scope" > <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('渠道')" align="center" min-width="120" prop="channelName"> <el-table-column :label="$t('渠道')" align="center" min-width="120" prop="channelName"> </el-table-column>
</el-table-column> <el-table-column :label="$t('始发地')" align="center" min-width="120" prop="departureName"> </el-table-column>
<el-table-column :label="$t('始发地')" align="center" min-width="120" prop="departureName">
</el-table-column>
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" min-width="120" /> <el-table-column :label="$t('目的地')" align="center" prop="objectiveName" min-width="120" />
<el-table-column :label="$t('预计销售额')" min-width="160"> <el-table-column :label="$t('预计销售额')" min-width="160">
<template slot-scope="{row}"> <template slot-scope="{ row }">
<div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex"> <div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex">
<dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" /> <dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" />
{{item.amount}} {{currencyMap[item.currencyId]}} {{ item.amount }} {{ currencyMap[item.currencyId] }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -73,18 +69,17 @@ ...@@ -73,18 +69,17 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="offerTotal > 0" :total="offerTotal" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" <pagination v-show="offerTotal > 0" :total="offerTotal" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getOfferList" />
@pagination="getOfferList"/>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirm">{{$t('确 定')}}</el-button> <el-button type="primary" @click="confirm">{{ $t("确 定") }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { getCurrencyList } from '@/api/ecw/currency'; import { getCurrencyList } from "@/api/ecw/currency"
import { getOfferPage } from "@/api/ecw/offer" import { getOfferPage } from "@/api/ecw/offer"
import UserSelector from '@/components/UserSelector' import UserSelector from "@/components/UserSelector"
export default { export default {
name: "CustomerFollowSelectOffer", name: "CustomerFollowSelectOffer",
...@@ -104,35 +99,36 @@ export default { ...@@ -104,35 +99,36 @@ export default {
}, },
offerList: [], offerList: [],
offerTotal: 0, offerTotal: 0,
currencyList: [], currencyList: []
} }
}, },
created() { created() {
getCurrencyList().then(res => { getCurrencyList().then((res) => {
this.currencyList = res.data this.currencyList = res.data
}) })
this.getOfferList() this.getOfferList()
this.offerDialogVisible = true
}, },
computed:{ computed: {
currencyMap(){ currencyMap() {
let map = {} let map = {}
this.currencyList.forEach(item => { this.currencyList.forEach((item) => {
map[item.id] = this.$l(item, 'title') map[item.id] = this.$l(item, "title")
}) })
return map return map
}, },
exportCityList() { exportCityList() {
return this.tradeCityList.filter(item => item.type == 2) return this.tradeCityList.filter((item) => item.type == 2)
}, },
importCityList() { importCityList() {
return this.tradeCityList.filter(item => item.type == 1) return this.tradeCityList.filter((item) => item.type == 1)
}, }
}, },
methods: { methods: {
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1
this.getOfferList() this.getOfferList()
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
...@@ -141,20 +137,20 @@ export default { ...@@ -141,20 +137,20 @@ export default {
pageNo: 1, pageNo: 1,
pageSize: 10 pageSize: 10
} }
this.handleQuery(); this.handleQuery()
}, },
getOfferList() { getOfferList() {
getOfferPage({ getOfferPage({
...this.queryParams, ...this.queryParams,
customerId: this.customerId customerId: this.customerId
}).then(response => { }).then((response) => {
this.offerList = response.data.list; this.offerList = response.data.list
this.offerTotal = response.data.total; this.offerTotal = response.data.total
}); })
}, },
confirm() { confirm() {
if (this.offerId) { if (this.offerId) {
this.$emit('select', this.offerId) this.$emit("select", this.offerId)
this.offerDialogVisible = false this.offerDialogVisible = false
} else { } else {
this.$message.error(this.$t("请选择报价单")) this.$message.error(this.$t("请选择报价单"))
...@@ -162,4 +158,4 @@ export default { ...@@ -162,4 +158,4 @@ export default {
} }
} }
} }
</script> </script>
\ No newline at end of file
<template>
<el-dialog
center
:title="$t('修改跟进状态')"
:visible="show"
@close="customerFollowUpdateStatusClose"
width="30%">
<div style="width: 100%;min-height: 60px;text-align: center">
<el-form label-width="120px">
<el-col :span="20">
<el-form-item :label="$t('跟进状态')">
<el-select v-model="status" :placeholder="$t('请选择')" size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)" :key="dict.value"
:label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)"/>
</el-select>
</el-form-item>
</el-col>
</el-form>
<!-- <el-select clearable v-model="status" :placeholder="$t('请选择')" size="small" >-->
<!-- <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" />-->
<!-- </el-select>-->
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="$emit('update:show',false)">{{ $t('取 消') }}</el-button>
<el-button type="primary" @click="submit">{{ $t('确 定') }}</el-button>
</span>
</el-dialog>
</template>
<script>
import {DICT_TYPE, getDictDatas, getDictDatas2} from "@/utils/dict";
import {getCustomerFollowList, updateCustomerFollowupStatus} from "@/api/ecw/customerFollow";
export default {
name: "customerFollowUpdateStatus",
props: {
show: {
type: Boolean,
default: false
},
followupIds: [Array, String],
tableName: String
},
computed: {
isChinese() {
return this.$i18n.locale === "zh_CN"
},
getFollowupIds() {
console.log(this.followupIds, 'this.followupIds')
if (this.followupIds instanceof Array) return this.followupIds
else return this.followupIds.split(',')
}
},
data() {
return {
getDictDatas,
getDictDatas2,
DICT_TYPE,
status: null
}
},
methods: {
submit() {
if (!this.status) {
return this.$message.warning(this.$t('请选择修改的状态!'));
}
console.log(this.followupIds, 'this.followupIds')
updateCustomerFollowupStatus({
ids: this.getFollowupIds,
status: this.status
}).then(r => {
if (r.code === 0) {
this.$message.success(this.$t('修改成功!'))
this.$emit("refresh")
this.customerFollowUpdateStatusClose()
}
})
},
getCustomerFollowList() {
this.loading = true
getCustomerFollowList({
...this.followForm,
...this.formatQuery()
}).then((r) => {
this.customerFollowList = r.data.list
this.customerFollowTotal = r.data.total
this.loading = false
})
},
customerFollowUpdateStatusClose() {
this.status = null;
this.$emit('update:show', false)
},
}
}
</script>
<style scoped>
</style>
...@@ -234,9 +234,9 @@ ...@@ -234,9 +234,9 @@
<el-input-number v-model="form.weightYearly" :min="1" /> <el-input-number v-model="form.weightYearly" :min="1" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('主要竞争对手')" prop="competitorIds"> <el-form-item :label="$t('主要竞争对手')" prop="competitorIds">
<el-select clearable v-model="form.competitorIds" :placeholder="$t('请选择')" @change="changeCompetitor"> <el-select filterable clearable v-model="form.competitorIds" :placeholder="$t('请选择')" @change="changeCompetitor">
<el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.id" />
<el-option :label="$t('其他')" :value="0" /> <el-option :label="$t('其他')" :value="0" />
</el-select> </el-select>
...@@ -1005,7 +1005,6 @@ export default { ...@@ -1005,7 +1005,6 @@ export default {
this.$refs.bankForm.validate((valid3, err3) => { this.$refs.bankForm.validate((valid3, err3) => {
console.log(valid3, "valid3", err3) console.log(valid3, "valid3", err3)
if (!valid1 || !valid2 || !valid3) { if (!valid1 || !valid2 || !valid3) {
console.log(333)
this.$showFormValidateErrors({ ...err1, ...err2, ...err3 }) this.$showFormValidateErrors({ ...err1, ...err2, ...err3 })
this.showBaseFlag = true this.showBaseFlag = true
......
This diff is collapsed.
...@@ -21,10 +21,7 @@ ...@@ -21,10 +21,7 @@
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number" @change="handleQuery"></dict-selector> <dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number" @change="handleQuery"></dict-selector>
</el-form-item> </el-form-item>
...@@ -58,6 +55,10 @@ ...@@ -58,6 +55,10 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item> <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>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -411,7 +411,7 @@ ...@@ -411,7 +411,7 @@
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('竞争对手')" prop="competitor"> <el-form-item :label="$t('竞争对手')" prop="competitor">
<el-select clearable v-model="form.competitor" :placeholder="$t('请选择')" class="w-200" @change="changeCompetitor"> <el-select filterable clearable v-model="form.competitor" :placeholder="$t('请选择')" class="w-200" @change="changeCompetitor">
<el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.name" /> <el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.name" />
<el-option :label="$t('其他')" :value="0" /> <el-option :label="$t('其他')" :value="0" />
</el-select> </el-select>
...@@ -1185,6 +1185,8 @@ export default { ...@@ -1185,6 +1185,8 @@ export default {
formData.stopTime = "" formData.stopTime = ""
} }
formData.channelId = formData.channelId || null
this.$set(this, "form", formData) this.$set(this, "form", formData)
// 接口只返回了发货人和收货人ID,还需要调用接口获取详细信息回显 // 接口只返回了发货人和收货人ID,还需要调用接口获取详细信息回显
getCustomerContactsSelect({ getCustomerContactsSelect({
......
...@@ -52,10 +52,6 @@ ...@@ -52,10 +52,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker v-model="queryTmp.createTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch"> <el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" multiple formatter="number" clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" multiple formatter="number" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
...@@ -82,11 +78,14 @@ ...@@ -82,11 +78,14 @@
<el-form-item :label="$t('客户来源')" prop="sourceIds" v-show="showSearch"> <el-form-item :label="$t('客户来源')" prop="sourceIds" v-show="showSearch">
<dict-selector :type="DICT_TYPE.CUSTOMER_SOURCE" multiple v-model="queryParams.sourceIds" clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.CUSTOMER_SOURCE" multiple v-model="queryParams.sourceIds" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker v-model="queryTmp.createTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item :label="$t('有效期开始')" v-show="showSearch"> <el-form-item :label="$t('有效期开始')" v-show="showSearch">
<el-date-picker v-model="queryTmp.startTime" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd" @change="handleQuery"> </el-date-picker> <el-date-picker v-model="queryTmp.startTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('有效期结束')" v-show="showSearch"> <el-form-item :label="$t('有效期结束')" v-show="showSearch">
<el-date-picker v-model="queryTmp.endTime" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd" @change="handleQuery"> </el-date-picker> <el-date-picker v-model="queryTmp.endTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('预计结束时间')" v-show="showSearch"> <el-form-item :label="$t('预计结束时间')" v-show="showSearch">
...@@ -180,7 +179,7 @@ ...@@ -180,7 +179,7 @@
<el-dropdown-item @click.native="$router.push('detail?offerId=' + scope.row.offerId)" v-hasPermi="['ecw:offer:show']">{{ $t("详情") }}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('detail?offerId=' + scope.row.offerId)" v-hasPermi="['ecw:offer:show']">{{ $t("详情") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('edit?id=' + scope.row.offerId)" v-if="[1, 2, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{ $t("编辑") }}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('edit?id=' + scope.row.offerId)" v-if="[1, 2, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{ $t("编辑") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('create?copyId=' + scope.row.offerId)" v-if="[1, 2, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{ $t("复制") }}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('create?copyId=' + scope.row.offerId)" v-if="[1, 2, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{ $t("复制") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push(`logList?offerId=${scope.row.offerId}&customerId=${scope.row.customerId}`)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:loglist']">{{ $t("跟进") }}</el-dropdown-item> <el-dropdown-item @click.native="handleAddOffer(scope.row)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1">{{ $t("跟进") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" v-if="[3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:result']">{{ $t("结果") }}</el-dropdown-item> <el-dropdown-item @click.native="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" v-if="[3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:result']">{{ $t("结果") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('/offer/special?offerId=' + scope.row.offerId)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:discount', 'ecw:offer:commission']">{{ $t("特价") }}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('/offer/special?offerId=' + scope.row.offerId)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:discount', 'ecw:offer:commission']">{{ $t("特价") }}</el-dropdown-item>
<el-dropdown-item @click.native="cancel(scope.row.offerId)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:cancel']">{{ $t("取消") }}</el-dropdown-item> <el-dropdown-item @click.native="cancel(scope.row.offerId)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:cancel']">{{ $t("取消") }}</el-dropdown-item>
...@@ -193,6 +192,7 @@ ...@@ -193,6 +192,7 @@
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
<CustomerFollow ref="customerFollow" @refresh="handleQuery" v-if="customerFollowVisible" @close="customerFollowVisible = false" :customer-id="curData.relationId" :customerService="curData.salesmanId" :customerNumber="curData.customerNumber" :offerId="curData.offerId" />
</div> </div>
</template> </template>
...@@ -205,16 +205,19 @@ import { getTradeCityList } from "@/api/ecw/region" ...@@ -205,16 +205,19 @@ import { getTradeCityList } from "@/api/ecw/region"
import { getWarehouseList } from "@/api/ecw/warehouse" import { getWarehouseList } from "@/api/ecw/warehouse"
import UserSelector from "@/components/UserSelector" import UserSelector from "@/components/UserSelector"
import Selector from "@/components/Selector" import Selector from "@/components/Selector"
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue"
import CustomerFollow from "@/views/ecw/customer/components/customerFollow"
export default { export default {
name: "EcwOfferIndex", name: "EcwOfferIndex",
components: { components: {
Template, Template,
Selector, Selector,
UserSelector UserSelector,
CustomerFollow
}, },
data() { data() {
return { return {
customerFollowVisible: false,
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 导出遮罩层 // 导出遮罩层
...@@ -259,6 +262,7 @@ export default { ...@@ -259,6 +262,7 @@ export default {
cityList: [], cityList: [],
//目的仓 //目的仓
destWarehouseList: [], destWarehouseList: [],
curData: {},
dept: false // 是否部门订单 dept: false // 是否部门订单
} }
}, },
...@@ -440,6 +444,14 @@ export default { ...@@ -440,6 +444,14 @@ export default {
} }
}, },
methods: { methods: {
handleAddOffer(row) {
console.log(row)
this.curData = row
this.customerFollowVisible = true
this.$nextTick(() => {
this.$refs["customerFollow"].handleAdd()
})
},
init() { init() {
//加载时发起请求获取所有省份值 //加载时发起请求获取所有省份值
getRegionList(1, 1) getRegionList(1, 1)
......
This diff is collapsed.
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="140px">
<el-form-item :label="$t('编号')" prop="orderNo"> <el-form-item :label="$t('编号')" prop="orderNo">
<el-input v-model.trim="noParam.value" :placeholder="$t('请输入订单号、唛头、提单号')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(noParam, 'value')"> <el-input v-model.trim="noParam.value" :placeholder="$t('请输入订单号、唛头、提单号')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(noParam, 'value')">
<template slot="prepend"> <template slot="prepend">
...@@ -9,9 +9,14 @@ ...@@ -9,9 +9,14 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('日期筛选')"> <el-form-item :label="$t('发货人')" prop="consignorKey">
<dict-selector defaultable :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" class="w-100 mr-10" /> <el-input v-model.trim="queryParams.consignorKey" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(queryParams, 'consignorKey')" />
<el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"></el-date-picker> </el-form-item>
<el-form-item :label="$t('收货人')" prop="consigneeKey">
<el-input v-model.trim="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(queryParams, 'consigneeKey')" />
</el-form-item>
<el-form-item :label="$t('控货状态')" prop="isCargoControl">
<dict-selector v-model="queryParams.cargoControlStatusList" multiple :type="DICT_TYPE.CONTROL_GOODS_STATUS" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<div> <div>
<el-form-item :label="$t('始发仓')" prop="startWarehouseIds"> <el-form-item :label="$t('始发仓')" prop="startWarehouseIds">
...@@ -54,21 +59,14 @@ ...@@ -54,21 +59,14 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货状态')" prop="isCargoControl">
<dict-selector v-model="queryParams.cargoControlStatusList" multiple :type="DICT_TYPE.CONTROL_GOODS_STATUS" clearable @change="handleQuery" />
</el-form-item>
<el-form-item :label="$t('订单状态')" prop="statusList" v-show="showSearch"> <el-form-item :label="$t('订单状态')" prop="statusList" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" multiple v-model="queryParams.statusList" @keyup.enter.native="handleQuery" clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.ORDER_STATUS" multiple v-model="queryParams.statusList" @keyup.enter.native="handleQuery" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<!--<el-form-item :label="$t('提单号')" prop="tidanNo"> <!--<el-form-item :label="$t('提单号')" prop="tidanNo">
<el-input v-model.trim="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model.trim="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>--> </el-form-item>-->
<el-form-item :label="$t('发货人')" prop="consignorKey">
<el-input v-model.trim="queryParams.consignorKey" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(queryParams, 'consignorKey')" />
</el-form-item>
<el-form-item :label="$t('收货人')" prop="consigneeKey">
<el-input v-model.trim="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(queryParams, 'consigneeKey')" />
</el-form-item>
<el-form-item :label="$t('报关方式')" prop="customsTypes"> <el-form-item :label="$t('报关方式')" prop="customsTypes">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" multiple v-model="queryParams.customsTypes" clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" multiple v-model="queryParams.customsTypes" clearable @change="handleQuery" />
...@@ -116,12 +114,6 @@ ...@@ -116,12 +114,6 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单限制修改收货人')" prop="isLimitUpdateConsignee">
<el-select v-model="queryParams.isLimitUpdateConsignee" :placeholder="$t('请选择')" clearable @change="handleQuery">
<el-option :label="$t('是')" :value="1"></el-option>
<el-option :label="$t('否')" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('特需')" prop="packageTypeArr" v-show="showSearch"> <el-form-item :label="$t('特需')" prop="packageTypeArr" v-show="showSearch">
<el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable> <el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable>
<template v-for="item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)"> <template v-for="item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)">
...@@ -129,6 +121,17 @@ ...@@ -129,6 +121,17 @@
</template> </template>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单限制修改收货人')" prop="isLimitUpdateConsignee">
<el-select v-model="queryParams.isLimitUpdateConsignee" :placeholder="$t('请选择')" clearable @change="handleQuery">
<el-option :label="$t('是')" :value="1"></el-option>
<el-option :label="$t('否')" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('日期筛选')">
<dict-selector defaultable :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" class="w-100 mr-10" />
<el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"></el-date-picker>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" v-hasPermi="['ecw:cargo:export:search']">{{ $t("导出") }}</el-button> <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" v-hasPermi="['ecw:cargo:export:search']">{{ $t("导出") }}</el-button>
......
...@@ -165,7 +165,7 @@ import { ...@@ -165,7 +165,7 @@ import {
warehouseAreaPositionList warehouseAreaPositionList
} from "@/api/ecw/batchSingleApplication"; } from "@/api/ecw/batchSingleApplication";
import { import {
applicationGetOrderByProcessId, applicationGetOrderByProcessId, approvalFeeApplicationGet,
feeApplicationGet, feeApplicationGet,
getOrder, getOrder,
getOrderPage, getOrderPage,
...@@ -229,10 +229,12 @@ export default { ...@@ -229,10 +229,12 @@ export default {
getChannelList().then(r => this.channelList = r.data); getChannelList().then(r => this.channelList = r.data);
warehouseAreaPositionList().then(r => this.warehouseList = r.data) warehouseAreaPositionList().then(r => this.warehouseList = r.data)
if(this.type === 2){ if(this.type === 2){
feeApplicationGet({id:this.processId}).then(r => { // feeApplicationGet({id:this.processId}).then(r => {
approvalFeeApplicationGet({id:this.processId}).then(r => {
if(r.code === 0){ if(r.code === 0){
this.processInstanceID = r.data.bpmProcessId; // this.processInstanceID = r.data.bpmProcessId;
this.getDetails() // this.getDetails()
this.FeeDetails = r.data
} }
}) })
}else { }else {
...@@ -268,13 +270,13 @@ export default { ...@@ -268,13 +270,13 @@ export default {
}); });
break; break;
case 2: // case 2:
// 费用申请 // // 费用申请
applicationGetOrderByProcessId({processId:this.processInstanceID}).then(r => { // applicationGetOrderByProcessId({processId:this.processInstanceID}).then(r => {
this.FeeDetails = r.data // this.FeeDetails = r.data
console.log(this.FeeDetails,'FeeDetails') // console.log(this.FeeDetails,'FeeDetails')
}) // })
break; // break;
case 3: case 3:
//退仓 //退仓
warehouseApprovalGetByFormId({formId:this.processInstanceID}).then( res => { warehouseApprovalGetByFormId({formId:this.processInstanceID}).then( res => {
......
This diff is collapsed.
This diff is collapsed.
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
> >
<el-button <el-button
type="text" type="text"
v-if="scope.row.id && scope.row.applicationFee === 0" v-if="scope.row.id && scope.row.applicationFee === 0 && scope.row.status === 2 && !scope.row.editMode"
@click="deleteByFeeIsZero(scope.row.id)" @click="deleteByFeeIsZero(scope.row.id)"
>删除 >删除
</el-button </el-button
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item :label="$t('编号')" prop="orderNo"> <el-form-item :label="$t('编号')" prop="orderNo">
<el-input v-model.trim="noParam.value" :placeholder="$t('请输入订单号、唛头、提单号')" clearable @input="replaceSpace(noParam, 'value')" @keyup.enter.native="handleQuery"> <el-input v-model.trim="noParam.value" :placeholder="$t('请输入订单号、唛头、提单号')" clearable @input="replaceSpace(noParam, 'value')" @keyup.enter.native="handleQuery">
<template slot="prepend"> <template slot="prepend">
...@@ -18,11 +18,10 @@ ...@@ -18,11 +18,10 @@
<el-form-item :label="$t('收货人')" prop="consigneeKey"> <el-form-item :label="$t('收货人')" prop="consigneeKey">
<el-input v-model.trim="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(queryParams, 'consigneeKey')" /> <el-input v-model.trim="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" @input="replaceSpace(queryParams, 'consigneeKey')" />
</el-form-item> </el-form-item>
<el-form-item label="">
<dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" :filter="(item) => item.value != 'PickTime'" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" />
<el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item :label="$t('控货')" prop="isCargoControl" v-show="showSearch">
<dict-selector v-model="queryParams.isCargoControl" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" clearable @change="handleQuery" />
</el-form-item>
<div> <div>
<el-form-item :label="$t('始发仓')" prop="startWarehouseIds"> <el-form-item :label="$t('始发仓')" prop="startWarehouseIds">
<el-select v-model="queryParams.startWarehouseIds" multiple :placeholder="$t('请选择始发仓')" clearable @change="handleQuery"> <el-select v-model="queryParams.startWarehouseIds" multiple :placeholder="$t('请选择始发仓')" clearable @change="handleQuery">
...@@ -71,9 +70,6 @@ ...@@ -71,9 +70,6 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货')" prop="isCargoControl" v-show="showSearch">
<dict-selector v-model="queryParams.isCargoControl" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" clearable @change="handleQuery" />
</el-form-item>
<el-form-item :label="$t('入仓类型')" prop="warehouseType" v-show="showSearch"> <el-form-item :label="$t('入仓类型')" prop="warehouseType" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="queryParams.warehouseTypes" multiple clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="queryParams.warehouseTypes" multiple clearable @change="handleQuery" />
</el-form-item> </el-form-item>
...@@ -151,6 +147,11 @@ ...@@ -151,6 +147,11 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="">
<dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" :filter="(item) => item.value != 'PickTime'" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" />
<el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery" :loading="loading">{{ $t("搜索") }}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery" :loading="loading">{{ $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>
......
This diff is collapsed.
This diff is collapsed.
...@@ -234,7 +234,7 @@ import WarehouseAreaSelect from "@/components/WarehouseAreaSelect" ...@@ -234,7 +234,7 @@ import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
import { getFeeTypeByOrderProduct, getProductBrankPage } from "@/api/ecw/productBrank" import { getFeeTypeByOrderProduct, getProductBrankPage } from "@/api/ecw/productBrank"
import { cancelProcessInstance } from "@/api/bpm/processInstance" import { cancelProcessInstance } from "@/api/bpm/processInstance"
import { DICT_TYPE, getDictDataLabel, getDictDatas } from "@/utils/dict" import { DICT_TYPE, getDictDataLabel, getDictDatas } from "@/utils/dict"
import { orderWarehouseIn, orderWarehouseInUpdateApply, warehousePictureDelete, warehousePictureList, order_warehouse_check_update } from "@/api/ecw/order" import { orderWarehouseIn, orderWarehouseInUpdateApply, warehousePictureDelete, warehousePictureList, order_warehouse_check_update, order_warehouse_check_query } from "@/api/ecw/order"
import { getProductAttrList } from "@/api/ecw/productAttr" import { getProductAttrList } from "@/api/ecw/productAttr"
import { getProductTypeList } from "@/api/ecw/productType" import { getProductTypeList } from "@/api/ecw/productType"
import { addProduct } from "@/api/ecw/product" import { addProduct } from "@/api/ecw/product"
...@@ -446,7 +446,7 @@ export default { ...@@ -446,7 +446,7 @@ export default {
}, },
methods: { methods: {
init() { async init() {
this.form.brandType = this.warehousing.brandType this.form.brandType = this.warehousing.brandType
this.form.orderId = this.warehousing.orderId this.form.orderId = this.warehousing.orderId
this.form.orderItemId = this.warehousing.orderNo this.form.orderItemId = this.warehousing.orderNo
...@@ -474,13 +474,29 @@ export default { ...@@ -474,13 +474,29 @@ export default {
if (this.form.usageIds.length > 0 && this.form.usageIds[0] === "") { if (this.form.usageIds.length > 0 && this.form.usageIds[0] === "") {
this.usageIds.splice(0, 1) this.usageIds.splice(0, 1)
} }
this.warehousing.orderWarehouseInBackItemDoList.forEach((e) => { // this.warehousing.orderWarehouseInBackItemDoList.forEach((e) => {
// let bg = {}
// if (e.boxGauge) {
// const boxGauge = e.boxGauge.split("*")
// // e.boxGauge1 = boxGauge[0]
// // e.boxGauge2 = boxGauge[1]
// // e.boxGauge3 = boxGauge[2]
// bg = {
// boxGauge1: boxGauge[0],
// boxGauge2: boxGauge[1],
// boxGauge3: boxGauge[2]
// }
// }
// this.form.table.push({ ...e, ...bg })
// })
let r = await order_warehouse_check_query(this.warehousing.orderItemId)
console.log(r)
r.data.forEach((e) => {
let bg = {} let bg = {}
if (e.boxGauge) { if (e.boxGauge) {
const boxGauge = e.boxGauge.split("*") const boxGauge = e.boxGauge.split("*")
// e.boxGauge1 = boxGauge[0]
// e.boxGauge2 = boxGauge[1]
// e.boxGauge3 = boxGauge[2]
bg = { bg = {
boxGauge1: boxGauge[0], boxGauge1: boxGauge[0],
boxGauge2: boxGauge[1], boxGauge2: boxGauge[1],
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment