This commit is contained in:
linfso 2024-05-15 11:46:06 +08:00
parent 3d33038568
commit bb5f5b22f3
5 changed files with 92 additions and 361 deletions

View File

@ -1,8 +1,10 @@
import {listEmisCountry} from '@/api/emis/emisCountry'
// 获取国家名称
export function getEmisCountryByCode(code) {
return new Promise((resolve, reject) => {
import request from '@/utils/request'
// 智能地址解析
export function parseAddress(content) {
return request({
url: '/emis/common/parseAddress',
method: 'get',
params: {content:content}
})
}

View File

@ -1,251 +0,0 @@
<template>
<div >
<el-row :gutter="0">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-col :span="24">
<el-form-item label="客户user_id" prop="userId">
<el-input v-model="form.userId" placeholder="请输入客户user_id" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="别名" prop="alias">
<el-input v-model="form.alias" placeholder="请输入别名" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="地址类型" prop="addressType">
<el-input v-model="form.addressType" placeholder="请输入地址类型" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="省" prop="province">
<el-input v-model="form.province" placeholder="请输入省" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="市" prop="city">
<el-input v-model="form.city" placeholder="请输入市" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="区" prop="district">
<el-input v-model="form.district" placeholder="请输入区" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="城镇" prop="town">
<el-input v-model="form.town" placeholder="请输入城镇" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="邮编" prop="postCode">
<el-input v-model="form.postCode" placeholder="请输入邮编" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="国家" prop="country">
<el-input v-model="form.country" placeholder="请输入国家" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="email" prop="email">
<el-input v-model="form.email" placeholder="请输入email" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="公司" prop="company">
<el-input v-model="form.company" placeholder="请输入公司" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否默认" prop="blDefaultFlag">
<el-input v-model="form.blDefaultFlag" placeholder="请输入是否默认" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="排序" prop="orderNum">
<el-input v-model="form.orderNum" placeholder="请输入排序" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-form-item label="上级字典">
<treeselect
ref="tree"
v-model="form.parentId"
:options="emisCustomerAddressOptions"
:normalizer="normalizer"
:default-expand-level="1"
:show-count="true"
placeholder="选择上级"
/>
</el-form-item>
</el-form>
</el-row>
<div style="text-align: center;margin-bottom: 10px;">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</div>
</template>
<script>
import { listEmisCustomerAddress, getEmisCustomerAddress, delEmisCustomerAddress, addEmisCustomerAddress, updateEmisCustomerAddress } from "@/api/emis/emisCustomerAddress";
export default {
name: "emisCustomerAddressForm",
props:{
id:undefined
},
components: { },
dicts: [
],
data() {
return {
emisCustomerAddressOptions: [],
// 遮罩层
loading: true,
// 表单参数
form: {},
// 表单校验
rules: {
userId: [
{ required: true, message: "客户user_id不能为空", trigger: "blur" }
],
alias: [
{ required: true, message: "别名不能为空", trigger: "blur" }
],
addressType: [
{ required: true, message: "地址类型不能为空", trigger: "blur" }
],
}
};
},
watch: {
"id": {
handler (newValue, oldValue) {
this.id = newValue;
this.initData();
},
deep: true
}
},
created() {
this.initData();
},
methods: {
initData() {
this.reset();
if(this.id !=undefined) {
this.loading = true;
getEmisCustomerAddress(this.id).then(response => {
this.form = response.data;
this.loading = false;
});
}
this.getTreeselect();
},
// 取消按钮
cancel() {
this.reset();
this.$emit("on-cancel");
},
// 表单重置
reset() {
this.form = {
id: null,
userId: null,
alias: null,
addressType: null,
province: null,
city: null,
district: null,
town: null,
address: null,
postCode: null,
name: null,
phone: null,
country: null,
email: null,
company: null,
blDefaultFlag: null,
orderNum: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateEmisCustomerAddress(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.$emit("on-changed");
});
} else {
addEmisCustomerAddress(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.$emit("on-changed");
});
}
}
});
},
/** 转换菜单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.idName,
children: node.children
};
},
/** 查询菜单下拉树结构 */
getTreeselect() {
const queryParams = {}
listEmisCustomerAddress(queryParams).then(response => {
this.emisCustomerAddressOptions = [];
const rootItem = { idId: 0, emisCustomerAddressName: '-', children: [] };
rootItem.children = this.handleTree(response.data, "id");
this.emisCustomerAddressOptions.push(rootItem);
if(this.parentId != undefined) {
this.form.parentId = this.parentId;
}
});
},
}
};
</script>

View File

@ -1,24 +1,44 @@
<template>
<div class="app-container">
<SearchForm :model="queryParams" ref="queryForm" size="small" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="" prop="customerCode">
<el-form-item label="收件人" prop="name">
<el-input
v-model="queryParams.name"
:placeholder="$t('收件人')"
clearable
@keyup.enter.native="handleQuery"
@input="handleQuery"
/>
</el-form-item>
<el-form-item label="收件电话" prop="phone">
<el-input
v-model="queryParams.phone"
:placeholder="$t('收件电话')"
clearable
@keyup.enter.native="handleQuery"
@input="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('所属国家')" prop="country">
<CountryPicker :placeholder="$t('所属国家')" v-model="queryParams.country" @onChange="handleQuery"></CountryPicker>
</el-form-item>
<!-- <el-form-item label="" prop="customerCode">
<el-input
v-model="queryParams.customerCode"
:placeholder="$t('客户编码')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="shortName">
</el-form-item> -->
<!-- <el-form-item label="" prop="shortName">
<el-input
v-model="queryParams.shortName"
:placeholder="$t('客户名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="alias">
</el-form-item> -->
<!-- <el-form-item label="" prop="alias">
<el-input
v-model="queryParams.alias"
:placeholder="$t('地址别名')"
@ -42,22 +62,8 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="name">
<el-input
v-model="queryParams.name"
:placeholder="$t('姓名')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="phone">
<el-input
v-model="queryParams.phone"
:placeholder="$t('电话')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="province">
<el-input
v-model="queryParams.province"
@ -177,7 +183,7 @@
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item> -->
</SearchForm>
@ -255,52 +261,41 @@
</template>
</el-table-column>
<el-table-column label="结算状态" align="center" prop="settleStatus" :sort-orders="['descending','ascending']" sortable="custom" min-width="80">
<template slot-scope="scope">
<div v-if="scope.row.settleStatus == 0" style="color:red;">
<span class="el-tag el-tag--info">未结算</span>
</div>
<div v-if="scope.row.settleStatus == 10" style="color:red;">
<span class="el-tag">待确认</span>
</div>
<div v-if="scope.row.settleStatus == 11" style="color:green;">
<span class="el-tag el-tag--success el-tag--light">已确认</span>
</div>
<div v-if="scope.row.settleStatus == 20" >
<span class="el-tag el-tag--warning el-tag--light">待打款</span>
</div>
<div v-if="scope.row.settleStatus == 21" style="color:green;">
<span class="el-tag el-tag--success el-tag--light">已打款</span>
</div>
<div v-if="scope.row.settleStatus == 40" style="color:red;">
<span class="el-tag el-tag--danger">已拒绝</span>
</div>
</template>
</el-table-column>
-->
<el-table-column :label="$t('客户编码')" align="center" prop="customerCode" min-width="100" />
<el-table-column :label="$t('客户名称')" align="center" prop="shortName" min-width="100" />
<el-table-column :label="$t('地址别名')" align="center" prop="alias" min-width="100" />
<el-table-column :label="$t('地址类型')" align="center" prop="addressType" min-width="100" />
<el-table-column :label="$t('国家')" align="center" prop="country" min-width="100" />
<el-table-column :label="$t('姓名')" align="center" prop="name" min-width="100" />
<el-table-column :label="$t('电话')" align="center" prop="phone" min-width="100" />
<el-table-column :label="$t('省')" align="center" prop="province" min-width="100" />
<el-table-column :label="$t('市')" align="center" prop="city" min-width="100" />
<el-table-column :label="$t('区')" align="center" prop="county" min-width="100" />
<el-table-column :label="$t('城镇')" align="center" prop="town" min-width="100" />
<el-table-column :label="$t('地址')" align="center" prop="address" min-width="100" />
<el-table-column :label="$t('邮编')" align="center" prop="postCode" min-width="100" />
<el-table-column :label="$t('email')" align="center" prop="email" min-width="100" />
<!-- <el-table-column :label="$t('客户编码')" align="center" prop="customerCode" min-width="100" /> -->
<el-table-column :label="$t('收件人')" align="left" prop="name" width="100" >
<template slot-scope="scope">
<div class="link-type" @click="handleUpdate(scope.row)">{{scope.row.name}}</div>
</template>
</el-table-column>
<el-table-column :label="$t('收件电话')" align="center" prop="phone" min-width="100" />
<!-- <el-table-column :label="$t('客户名称')" align="center" prop="shortName" min-width="100" /> -->
<!-- <el-table-column :label="$t('地址别名')" align="center" prop="alias" min-width="100" /> -->
<!-- <el-table-column :label="$t('地址类型')" align="center" prop="addressType" min-width="100" /> -->
<el-table-column :label="$t('国家')" align="center" prop="countryName" width="80" />
<el-table-column :label="$t('地区')" align="center" prop="provinceName" width="100" :show-overflow-tooltip="true">
<template slot-scope="scope">
<div>{{scope.row.provinceName}} {{scope.row.cityName}} {{scope.row.countyName}} </div>
</template>
</el-table-column>
<!-- <el-table-column :label="$t('市')" align="center" prop="city" min-width="100" /> -->
<!-- <el-table-column :label="$t('区')" align="center" prop="county" min-width="100" /> -->
<!-- <el-table-column :label="$t('城镇')" align="center" prop="town" min-width="100" /> -->
<el-table-column :label="$t('地址')" align="left" prop="address" min-width="200" :show-overflow-tooltip="true" />
<!-- <el-table-column :label="$t('邮编')" align="center" prop="postCode" min-width="100" /> -->
<el-table-column :label="$t('公司')" align="center" prop="company" min-width="100" />
<el-table-column :label="$t('是否默认')" align="center" prop="blDefaultFlag" min-width="100" />
<el-table-column :label="$t('排序')" align="center" prop="orderNum" min-width="100" />
<el-table-column :label="$t('使用站点是否默认')" align="center" prop="blSiteDefaultFlag" min-width="100" />
<el-table-column :label="$t('使用站点名称')" align="center" prop="useSite" min-width="100" />
<el-table-column :label="$t('使用站点代码')" align="center" prop="useSiteCode" min-width="100" />
<el-table-column :label="$t('删除标志(0代表存在')" align="center" prop="delFlag" min-width="100" />
<el-table-column :label="$t('备注')" align="center" prop="remark" min-width="100" />
<el-table-column :label="$t('email')" align="center" prop="email" min-width="100" />
<!-- <el-table-column :label="$t('是否默认')" align="center" prop="blDefaultFlag" min-width="100" /> -->
<!-- <el-table-column :label="$t('排序')" align="center" prop="orderNum" min-width="100" /> -->
<!-- <el-table-column :label="$t('使用站点是否默认')" align="center" prop="blSiteDefaultFlag" min-width="100" /> -->
<el-table-column :label="$t('所属站点')" align="center" prop="useSite" min-width="100" />
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" min-width="170" />
<!-- <el-table-column :label="$t('使用站点代码')" align="center" prop="useSiteCode" min-width="100" /> -->
<!-- <el-table-column :label="$t('删除标志(0代表存在')" align="center" prop="delFlag" min-width="100" /> -->
<!-- <el-table-column :label="$t('备注')" align="center" prop="remark" min-width="100" /> -->
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -323,16 +318,10 @@
</XdTable>
<el-dialog :title="titleForm" :visible.sync="openForm" width="50%" :destroy-on-close="true" v-dialogDrag append-to-body>
<emisCustomerAddressForm :id="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></EmisCustomerAddressForm>
<recipientAddressForm :id="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></recipientAddressForm>
</el-dialog>
<!--
<el-dialog :title="titleView" :visible.sync="openView" width="60%" :close-on-click-modal="false" v-dialogDrag append-to-body>
<emisCustomerAddressView :id="id" ></EmisCustomerAddressView>
</el-dialog>
-->
</div>
</template>
@ -340,11 +329,12 @@
import { listEmisCustomerAddress, getEmisCustomerAddress, delEmisCustomerAddress, addEmisCustomerAddress, updateEmisCustomerAddress } from "@/api/emis/emisCustomerAddress";
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
// import emisCustomerAddressView from '@/views/emis/emisCustomerAddress/emisCustomerAddressView';
import emisCustomerAddressForm from '@/views/emis/emisCustomerAddress/emisCustomerAddressForm';
import recipientAddressForm from '@/views/emis/emisCustomerAddress/recipientAddressForm';
import CountryPicker from '@/views/emis/EmisBaseTools/CountryPicker.vue';
export default {
name: "emisCustomerAddress",
components: { elDateSimplePicker,emisCustomerAddressForm },
name: "RecipientAddress",
components: { elDateSimplePicker,recipientAddressForm,CountryPicker },
dicts: [
],
data() {
@ -385,7 +375,7 @@ export default {
customerCode: null,
shortName: null,
alias: null,
addressType: null,
addressType: 2,
country: null,
name: null,
phone: null,

View File

@ -146,32 +146,6 @@
</el-col>
<!-- <el-col :span="8">
<el-form-item label="国家" prop="country">
<el-input v-model="form.country" placeholder="请输入国家" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="省份" prop="province">
<el-input v-model="form.province" placeholder="请输入省份" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="城市" prop="city">
<el-input v-model="form.city" placeholder="请输入城市" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="区县" prop="county">
<el-input v-model="form.county" placeholder="请输入区县" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="镇" prop="town">
<el-input v-model="form.town" placeholder="请输入镇" />
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" type="textarea" placeholder="请输入地址" />

View File

@ -63,7 +63,7 @@
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
:disabled="multiple"
@click="handleBatchUpdate"
v-hasPermi="['emis:emisCustomerUser:edit']"
>批量修改</el-button>
@ -189,6 +189,9 @@
<monthUserForm :id="currentId" customerType="2" @on-changed="handleFormChanged" @on-cancel="cancelForm"></monthUserForm>
</el-dialog>
<el-dialog :title="titleForm" :visible.sync="openBatchUpdateForm" width="50%" :destroy-on-close="true" :close-on-click-modal="false" v-dialogDrag append-to-body>
<batchUpdateForm :ids="ids" @on-changed="handleFormChanged" @on-cancel="cancelForm"></batchUpdateForm>
</el-dialog>
</div>
</template>
@ -198,10 +201,12 @@ import { listEmisCustomerUser, getEmisCustomerUser, delEmisCustomerUser, addEmis
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
// import emisCustomerUserView from '@/views/emis/emisCustomerUser/emisCustomerUserView';
import monthUserForm from '@/views/emis/emisCustomerUser/monthUserForm';
import batchUpdateForm from '@/views/emis/emisCustomerUser/batchUpdateForm';
export default {
name: "monthUserList",
components: { elDateSimplePicker,monthUserForm },
components: { elDateSimplePicker,monthUserForm,batchUpdateForm },
dicts: [
],
data() {
@ -225,6 +230,7 @@ export default {
currentId:null,
openForm: false,
openBatchUpdateForm:false,
titleForm: "",
customerType:1,
@ -301,11 +307,19 @@ export default {
this.moreInputVisible = !this.moreInputVisible;
},
/** 修改按钮操作 */
handleBatchUpdate(row) {
this.currentId= row.id;
this.openBatchUpdateForm = true;
this.titleForm = "批量修改";
},
handleUpdate(row) {
this.currentId= row.id;
this.openForm = true;
this.titleForm = "修改月结客户";
},
handleView(row) {
this.id=row.id;
this.titleView="查看";
@ -314,9 +328,11 @@ export default {
},
handleFormChanged(){
this.openForm = false;
this.openBatchUpdateForm = false;
this.getList();
},
cancelForm(){
this.openBatchUpdateForm = false;
this.openForm = false;
},
/** 删除按钮操作 */