Commit 63f9fe0c authored by dragondean@qq.com's avatar dragondean@qq.com

Merge branch 'dev'

parents ae0340a5 de0b00b0
......@@ -530,6 +530,21 @@ export function createGoods(data) {
});
}
/**
* 预装关联订单
*
* @export
* @param {*} data
* @return {*}
*/
export function loadRelationOrder(data) {
return request({
url: "/ecw/box-preload-goods/loadRelationOrder",
method: "post",
data,
});
}
/***************************** 预装 end **********************************/
/***************************** 装柜 start **********************************/
......
......@@ -165,6 +165,7 @@ export default {
this.customerFollow.form.bizId = this.id
})
listServiceUser().then(r => {
console.log( r.data,'r.data跟进业务')
this.serviceUserList = r.data
})
this.getCustomerFollowList()
......@@ -223,7 +224,8 @@ export default {
"followTime": undefined,
"followType": undefined,
"followUserId": undefined,
"result": undefined
"result": undefined,
"customerId":this.customerId
}
this.$refs.dictType.changeValue(this.customerFollow.form.followType);
this.$refs.dictMethod.changeValue(this.customerFollow.form.followMethod);
......
......@@ -6,7 +6,7 @@
<el-table-column
width="250px"
label="始发地">
<template v-slot="{ row, column, $index }">
<template v-slot="{ row, column, $index }">
<el-checkbox v-model="row.checked" @change="updateValue(true)">{{ warehouseList[$index].titleZh }}</el-checkbox>
</template>
</el-table-column>
......@@ -58,6 +58,7 @@ export default {
let bar = this.tableData.length > 0 ? this.tableData[index] : {
departureId: e.id,
objectiveIds: [],
tradeType:e.tradeType,
checked: false
}
const valueIndex = this.value.findIndex(v => v.departureId === e.id)
......@@ -73,7 +74,8 @@ export default {
foo.push(bar)
index++
})
this.tableData = foo
this.tableData = foo.filter(i => i.tradeType === '2');
},
/**
* 更新 value
......
......@@ -33,8 +33,8 @@ export default {
},
watch:{
index(val){
this.$emit('input', val !== null ? this.list[val].id: null)
this.$emit('change', val !== null ? this.list[val]: null)
this.$emit('input', (val!==''&&val !== null) ? this.list[val].id: null)
this.$emit('change', (val!==''&&val !== null) ? this.list[val]: null)
},
value(val){
this.init()
......@@ -64,4 +64,4 @@ export default {
}
}
}
</script>
\ No newline at end of file
</script>
......@@ -13,13 +13,13 @@
<el-button type="primary" @click="reLoad">{{$t('搜索')}}</el-button>
<div v-if="showAll">
<el-checkbox :label="$t('全选(最多500)')" @change="toggleAll"></el-checkbox>
<el-checkbox :label="$t('全选(最多500)')" @change="toggleAll" :disabled="isAllProduct"></el-checkbox>
<el-checkbox :label="$t('全选库内商品(共{cnt}个)', {cnt: total})" v-model="isAllProduct"></el-checkbox>
</div>
</div>
<div class="list">
<div class="item" v-for="item in list" :key="item.id">
<el-checkbox @change="toggleCheck(item, $event)" :value="ids.indexOf(item.id) > -1" /> {{item.titleZh}}
<el-checkbox @change="toggleCheck(item, $event)" :value="ids.indexOf(item.id) > -1" :disabled="isAllProduct" /> {{item.titleZh}}
<div>{{item.titleEn}}</div>
</div>
</div>
......@@ -32,7 +32,7 @@
</div>
<div class="list">
<div class="item" v-for="(choosed) in choosedList" :key="choosed.id" :data-data="JSON.stringify(choosed)">
<el-link class="el-icon-delete" @click="remove(choosed)" /> {{choosed.titleZh}}
<el-link class="el-icon-delete" @click="remove(choosed)" :disabled="isAllProduct"/> {{choosed.titleZh}}
<div>{{choosed.titleEn}}</div>
</div>
</div>
......
......@@ -12,10 +12,11 @@
<el-input v-model="form.customerContacts[0].name" placeholder="请输入联系人" />
</el-form-item>
<el-form-item label="手机号" prop="customerContacts.0.phoneNew">
<el-select v-model="form.customerContacts[0].areaCode" placeholder="请选择区号" filterable class="w-200">
<!-- <el-select v-model="form.customerContacts[0].areaCode" placeholder="请选择区号" filterable class="w-200">
<el-option v-for="(item, index) in countryList"
:key="index" :label="item.nameShort + item.nameZh + '(' + item.tel + ')'" :value="item.tel" />
</el-select>
</el-select> -->
<area-code-selector v-model="form.customerContacts[0].areaCode" />
<el-input v-model="form.customerContacts[0].phoneNew" maxlength="11" placeholder="请输入联系方式" class="w-150 ml-10"/>
</el-form-item>
......@@ -56,9 +57,10 @@ import {createCustomer} from '@/api/ecw/customer'
import {listServiceUser} from "@/api/system/user"
import { getCountryListAll } from '@/api/ecw/country'
import {getCustomerContactsSelect} from '@/api/ecw/customerContacts'
import AreaCodeSelector from '@/components/AreaCodeSelector'
export default {
name: "quickCreateCustomer",
components: {AreaCodeSelector},
props:{
type: String,
},
......@@ -69,7 +71,7 @@ export default {
// 表单参数
form: {
customerContacts:[{}]
customerContacts:[{isDefault: 1}]
},
// 表单校验
rules: {
......
......@@ -262,14 +262,14 @@ export const constantRoutes = [
component: (resolve) => import('@/views/ecw/customer/edit'),
props: true,
name: 'customerEdit',
meta: {title: '编辑客户', icon: '', activeMenu: '/customer/customer'}
meta: {title: '编辑客户', icon: ''}
},
{
path: 'add-edit/:customerId(\\d+)',
component: (resolve) => import('@/views/ecw/customer/edit'),
props: true,
name: 'customerEdit',
meta: {title: '新建客户', icon: '', activeMenu: '/customer/customer'}
meta: {title: '新建客户', icon: ''}
},
{
path: 'query/:customerId(\\d+)',
......
......@@ -100,6 +100,7 @@ export const DICT_TYPE = {
ECW_OFFER_TYPE: 'offer_type', // 跟进类型
ECW_OFFER_METHOD: 'offer_method', // 跟进方式
ECW_RECEIPT_STATE: 'receipt_state',//收款单状态
ECW_RECEIVABLE_STATE: 'receivable_state',//应收明细状态
ECW_SUING_METHOD: 'suing_method', // 出单方式
ECW_HARVEST_METHOD: 'harvest_method', // 收货方式
ECW_PAY_ADVANCE: 'pay_advance', // 是否预付
......
......@@ -318,6 +318,7 @@ import {
changeSection,
approvalCreate,
approvalCancel,
loadRelationOrder,
} from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue";
import {
......@@ -583,9 +584,25 @@ export default {
};
createGoods(params).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
})
const { data } = res;
if(data.relationMsg) {
const msg = data.relationMsg.replaceAll(',',"");
this.$confirm(msg, this.$t("提示"), {
type: "warning",
})
.then((_) => {
loadRelationOrder(data).then((res) => {
serviceMsg(res, this).then(() => {
this.queryAllData();
})
})
})
.catch((_) => {});
} else {
serviceMsg(res, this).then(() => {
this.queryAllData();
})
}
}).catch((res) => {
if(res.code === 555) {
const msg = res.msg && res.msg.replaceAll(',',"");
......
......@@ -11,7 +11,7 @@
</el-col>
<el-col :span="12">
<el-form-item :label="$t('国家')" prop="country">
<el-select v-model="form.country" :placeholder="$t('请选择国家')">
<el-select filterable clearable v-model="form.country" :placeholder="$t('请选择国家')">
<el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select>
......@@ -43,9 +43,9 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="13" v-show="form.type && form.type.indexOf('3') !== -1">
<el-col :span="13" v-show="form.type && form.type.indexOf('2') !== -1">
<el-form-item :label="$t('所属代理')" prop="agentId">
<el-select v-model="form.agentId" :placeholder="$t('请选择所属代理')">
<el-select filterable clearable v-model="form.agentId" :placeholder="$t('请选择所属代理')">
<el-option v-for="item in serviceUserList"
:key="item.id" :label="item.nickname" :value="item.id" />
</el-select>
......
......@@ -5,9 +5,8 @@
<div style="display: flex;justify-content: space-between;align-items: flex-end;">
<h2>{{$t('查看')}}</h2>
<div>
<el-button type="primary" size="small">{{$t('添加优惠')}}</el-button>
<el-button type="primary" size="small" @click="$router.push('/customer/edit/' + id)">{{$t('编辑')}}</el-button>
<el-button type="primary" size="small">{{$t('报价')}}</el-button>
<el-button @click="$router.push('/offer/create')" type="primary" size="small">{{$t('报价')}}</el-button>
<el-button type="primary" size="small" @click="$refs['customerFollow'].customerFollow.dialogVisible = true">{{$t('跟进')}}</el-button>
<el-button type="primary" size="small" @click="$refs['customerComplaint'].handleAdd()">{{$t('客诉')}}</el-button>
<el-button type="danger" size="small">{{$t('删除')}}</el-button>
......
......@@ -1085,14 +1085,19 @@ export default {
orderNo: this.selectListRow.orderNo,
orderId: this.selectListRow.orderId,
}
updateReceivableDiscountById(params).then(res => {
updateReceivableDiscountById(params).then(res => {
if (this.selectListRow.discountTotal) {
this.$modal.msgSuccess(this.$t('修改成功'));
} else {
this.$modal.msgSuccess(this.$t('新增成功'));
}
getReceivableInfoByIds({ id: this.selectListRow.id }).then(res => {
this.$set(this.list, this.selectListIndex, {...res.data})
// getReceivableInfoByIds({ id: this.selectListRow.id }).then(res => {
// this.$set(this.list, this.selectListIndex, {...res.data})
// this.cancelDiscount()
// this.calculation()
// })
getInvoicingItem({ id: this.id }).then(res => {
this.list = [...res.data]
this.cancelDiscount()
this.calculation()
})
......
......@@ -24,7 +24,8 @@
<el-form-item :label="$t('客户名称')">
<customer-selector
v-model="queryParams.customerId"
@change="consignor = $event"
@change="changeCustomerId"
clearable
/>
</el-form-item>
<el-form-item :label="$t('状态')">
......@@ -321,6 +322,9 @@ export default {
this.loading = false;
});
},
changeCustomerId(e){
this.$set(this.queryParams,'customerId',e.id)
},
verificationClick(row) {
const id = row.id;
return this.$router.push("receiptDetail?id=" + id);
......
......@@ -56,7 +56,7 @@
<el-card class="card">
<el-descriptions class="mr-10" border :title="$t('基础信息')" :column="2">
<el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
<el-descriptions-item :label="$t('送货时间')">{{order.deliveryDate}}</el-descriptions-item>
<el-descriptions-item :label="$t('送货时间')" v-if="!order.isExternalWarehouse">{{order.deliveryDate}}</el-descriptions-item>
<el-descriptions-item :label="$t('是否控货')">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCargoControl" />
</el-descriptions-item>
......
......@@ -3,7 +3,7 @@
<el-form ref="form" :model="form" :rules="rules" label-position="left" inline>
<el-card>
<div slot="header" class="card-title">{{ editMode ? this.$t('编辑订单') : this.$t('新建订单')}}</div>
<div slot="header" class="card-title">{{ editMode ? $t('编辑订单') + '-' + form.orderNo : $t('新建订单')}}</div>
<!--默认显示类型(selectedRouter==null),如果选择路线后没开通则隐藏-->
<el-form-item :label="$t('订单类型')" v-if="!selectedRouter || routeOtherServices.indexOf('1') > -1 || routeOtherServices.indexOf('4') > -1">
<el-checkbox-group v-model="form.type" :disabled="inWarehouse">
......@@ -725,7 +725,7 @@ export default {
'form.objectiveId'(){
this.getOpenedRouterList()
},
'form.transportId'(){
'form.transportId'(transportId){
// 海运拼柜给表单默认值
if(this.form.transportId == 4){
this.$nextTick(() => {
......@@ -738,7 +738,10 @@ export default {
})
}
// 更换运输方式之后,之前选择的路线会失效,需要重新选择
this.$set(this.form, 'lineId', undefined)
if(transportId != this.selectedRouter?.transportType){
this.$set(this.form, 'lineId', undefined)
}
this.getOpenedRouterList()
},
'form.channelId'(){
......@@ -866,7 +869,7 @@ export default {
console.log('选择联系人', contact)
if(!this.contactChooseType && !this.quickCreateType) return
if(!this.contactChooseType && this.quickCreateType){
this.contactChooseType = this.quickCreateType == 1 ? 'consignor' : 'consignee'
this.contactChooseType = this.quickCreateType == 0 ? 'consignor' : 'consignee'
}
this.$set(this.form, this.contactChooseType + 'Company', contact.company)
this.$set(this.form, this.contactChooseType + 'ContactsId', contact.customerContactsId)
......
......@@ -43,7 +43,7 @@
</el-table-column>
<el-table-column :label="$t('确认收款')">
<template v-slot:default ="scope">
<dict-tag :type="DICT_TYPE.RECEIVE_FLAG" :value="scope.row.receiveFlag" />
<dict-tag :type="DICT_TYPE.ECW_RECEIVABLE_STATE" :value="scope.row.receiveFlag" />
</template>
</el-table-column>
<el-table-column :label="$t('申请人')">
......
......@@ -102,6 +102,9 @@
<el-option v-for="dict in regionTypeDatas" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="国家城市代码" prop="labelCode" v-if="form.type == '1' || form.type == '3' ">
<el-input v-model="form.labelCode" placeholder="请输入国家代码-城市代码" />
</el-form-item>
<el-form-item label="显示顺序" prop="sort">
<el-input v-model="form.sort" placeholder="请输入显示顺序" />
</el-form-item>
......@@ -185,6 +188,7 @@ export default {
titleEn: [{ required: true, message: "英文名称不能为空", trigger: "blur" }],
shortName: [{ required: true, message: "简称不能为空", trigger: "blur" }],
// language: [{ required: true, message: "语言不能为空", trigger: "blur" }],
// labelCode: [{ required: true, message: "国家城市代码不能为空", trigger: "blur" }],
// type: [{ required: true, message: "类型不能为空", trigger: "change" }],
// parentId: [{ required: true, message: "父区域id不能为空", trigger: "blur" }],
sort: [{ required: true, message: "显示顺序不能为空", trigger: "blur" }],
......
......@@ -3,74 +3,23 @@
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item :label="$t('公司名称')" prop="companyZh">
<el-input v-model="queryParams.companyZh" :placeholder="$t('请输入公司名称')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('英文名称')" prop="companyEn">
<el-input v-model="queryParams.companyEn" :placeholder="$t('请输入英文名称')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('供应商代码')" prop="companyCode">
<el-input v-model="queryParams.companyCode" :placeholder="$t('请输入供应商代码')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('代理商名称')" prop="agentName">
<el-input v-model="queryParams.agentName" :placeholder="$t('请输入代理商名称')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('公司电话')" prop="tell">
<el-input v-model="queryParams.tell" :placeholder="$t('请输入公司电话')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('国家')" prop="country">
<el-input v-model="queryParams.country" :placeholder="$t('请输入国家')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('省')" prop="province">
<el-input v-model="queryParams.province" :placeholder="$t('请输入省')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('市')" prop="city">
<el-input v-model="queryParams.city" :placeholder="$t('请输入市')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<!--el-form-item label="详细地址" prop="area">
<el-input v-model="queryParams.area" placeholder="请输入详细地址" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="省市区+详细地址" prop="address">
<el-input v-model="queryParams.address" placeholder="请输入省市区+详细地址" clearable @keyup.enter.native="handleQuery"/>
</el-form-item-->
<el-form-item :label="$t('备注')" prop="remark">
<el-input v-model="queryParams.remark" :placeholder="$t('请输入备注')" clearable @keyup.enter.native="handleQuery"/>
<el-form-item :label="$t('创建时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('供应商类别')" prop="companyType">
<!--el-select v-model="queryParams.companyType" placeholder="请选择供应商类别" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select-->
<!--el-select v-model="form.code" placeholder="请选择渠道编码" clearable>
<el-option v-for="dict in this.getDictDatas('company_type')"
:key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select-->
<dict-selector :type="DICT_TYPE.ECW_COMPANY_TYPE" v-model="queryParams.companyType" clearable />
</el-form-item>
<el-form-item :label="$t('合作类型')" prop="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-option label="请选择字典生成" value="" />
</el-select-->
</el-form-item>
<el-form-item :label="$t('营业执照')" prop="license">
<el-input v-model="queryParams.license" :placeholder="$t('请输入营业执照')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('合同')" prop="contract">
<el-input v-model="queryParams.contract" :placeholder="$t('请输入合同')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('统一信用代码')" prop="licenseNumber">
<el-input v-model="queryParams.licenseNumber" :placeholder="$t('请输入社会信用统一代码')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item :label="$t('是否展示')" prop="status">
<!-- <el-select v-model="queryParams.status" placeholder="请选择是否展示 默认为展示" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select> -->
<dict-selector :type="DICT_TYPE.ECW_YES_NO" v-model="queryParams.status" />
</el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
<el-form-item :label="$t('名称/代码')" prop="keyword">
<el-input v-model="queryParams.keyword" :placeholder="$t('名称/代码')" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -83,27 +32,20 @@
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['ecw:supplier:create']">{{$t('新增')}}</el-button>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:supplier:export']">{{$t('导出')}}</el-button>
</el-col>
</el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table v-loading="loading" :data="list">
<el-table-column label="" align="center" prop="id" />
<el-table-column :label="$t('供应商代码')" align="center" prop="companyCode" />
<el-table-column :label="$t('公司名称')" align="center" :prop="$l('company')" />
<!--el-table-column label="英文名称" align="center" prop="companyEn" /-->
<el-table-column :label="$t('供应商代码')" align="center" prop="companyCode" />
<el-table-column :label="$t('代理商名称')" align="center" prop="agentName" />
<el-table-column :label="$t('公司电话')" align="center" prop="tell" />
<el-table-column :label="$t('国家')" align="center" prop="country" />
<el-table-column :label="$t('省')" align="center" prop="province" />
<el-table-column :label="$t('市')" align="center" prop="city" />
<el-table-column :label="$t('区')" align="center" prop="area" />
<el-table-column :label="$t('详细地址')" align="center" prop="address" />
<el-table-column :label="$t('备注')" align="center" prop="remark" />
<el-table-column :label="$t('供应商类别')" align="center" prop="companyType" >
<template slot-scope="{row}">
<template v-for="type in row.companyType.split(',')">
......@@ -116,10 +58,7 @@
<dict-tag type="cooperation_type" :value="row.cooperationType" />
</template>
</el-table-column>
<!-- <el-table-column label="营业执照" align="center" prop="license" />
<el-table-column label="合同" align="center" prop="contract" /> -->
<el-table-column :label="$t('统一信用代码')" align="center" prop="licenseNumber" />
<el-table-column :label="$t('是否展示')" align="center" prop="status" />
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
......
......@@ -72,8 +72,8 @@ export default {
captchaEnable: true,
tenantEnable: false,
loginForm: {
username: "admin",
password: "admin123",
username: "",
password: "",
rememberMe: false,
code: "",
uuid: "",
......
......@@ -375,7 +375,8 @@ export default {
if(val.indexOf(i.id) > -1) return i
}).map(v => v.code).join(',');
if(codes){
userList(codes).then(r => {
// console.log("codes:"+JSON.stringify(codes));
userList('documentary customer service').then(r => {
this.followUpList = r.data;
})
}else {
......@@ -388,7 +389,7 @@ export default {
if(!this.form.postIds) return false
let has = false
this.postOptions.forEach(item => {
if(this.form.postIds.indexOf(item.id) > -1 && item.code == 'documentary customer service'){
if(this.form.postIds.indexOf(item.id) > -1 && item.code == 'customer service'){
has = true
}
})
......
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