3
0
Fork 0

feat(memberRetailRegion): 收益区域配置逻辑调整

This commit is contained in:
woody 2025-07-10 16:33:41 +08:00
parent db651039dc
commit 04a5f057c2
2 changed files with 244 additions and 209 deletions

View File

@ -7,10 +7,10 @@
<el-col :span="4">
<el-form-item :label="'会员编号'" prop="memberCode">
<el-input
clearable
v-model="queryParams.memberCode"
clearable
:placeholder="'请输入'"
></el-input>
/>
</el-form-item>
</el-col>
<el-col :span="4">
@ -20,36 +20,36 @@
clearable
placeholder=""
>
<el-option label="是" value="0"></el-option>
<el-option label="否" value="1"></el-option>
<el-option label="是" value="0" />
<el-option label="否" value="1" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="签呈来源">
<el-select
v-model="queryParams.source"
clearable
:placeholder="'请选择'"
v-model="queryParams.source"
>
<el-option
v-for="item in sourceList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('收益区域')" prop="accountStatus">
<el-cascader
clearable
@change="flChange"
v-model="address"
clearable
:options="areaData"
:placeholder="'请选择省市区'"
:props="regionParams"
@change="flChange"
/>
</el-form-item>
</el-col>
@ -80,7 +80,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item :label="$t('生效结束时间')" prop="creationTime">
<el-date-picker
v-model="effectiveTime"
@ -91,18 +91,15 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="changeTime2"
>
</el-date-picker>
/>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="4">
<div class="searchbox">
<el-button class="my_search" @click="research()">
{{ '搜索' }}</el-button
>
{{ '搜索' }}</el-button>
<el-button class="my_reset" @click="reChongzhi">
{{ '重置' }}</el-button
>
{{ '重置' }}</el-button>
</div>
</el-col>
</el-row>
@ -112,27 +109,25 @@
<div class="maintop">
<div class="mainbtn">
<el-button
v-hasButtons="['memberRetailRegionAdd']"
size="small"
style="background-color: #48b2fd"
class="thebtn1"
v-hasButtons="['memberRetailRegionAdd']"
@click="addRules"
>{{ '添加' }}</el-button
>
>{{ '添加' }}</el-button>
<el-button
size="small"
v-hasButtons="['memberRetailRegionExport']"
size="small"
class="thebtn2"
@click="handleExport"
>
{{ '导出' }}</el-button
>
{{ '导出' }}</el-button>
</div>
</div>
<div class="maintable">
<el-table
:data="tableData"
v-loading="loading"
:data="tableData"
height="730px"
style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }"
@ -186,35 +181,37 @@
align="center"
prop="creationTime"
:label="$t('创建时间')"
width="160"
/>
<el-table-column
align="center"
prop="modifiedTime"
:label="$t('修改时间')"
width="160"
/>
<el-table-column
<!-- <el-table-column
align="center"
prop="effectiveEndDate"
:label="$t('生效结束时间')"
/>
/> -->
<el-table-column align="center" :label="'操作'" width="150">
<template slot-scope="scope">
<el-button
v-has-buttons="['memberRetailRegionUpdate']"
class="colors"
type="text"
size="small"
style="color: #ffad41"
v-has-buttons="['memberRetailRegionUpdate']"
@click.native.prevent="updateShow(scope.row)"
>
{{ $t("修改") }}
</el-button>
<el-button
v-has-buttons="['memberRetailRegionDel']"
class="colors"
type="text"
size="small"
style="color: #c73030"
v-has-buttons="['memberRetailRegionDel']"
@click.native.prevent="delRole(scope.row)"
>
{{ '删除' }}
@ -235,34 +232,34 @@
<el-form ref="forms" :rules="rules" :model="table" label-width="100px">
<el-form-item :label="$t('会员编号')" prop="memberCode">
<el-input
v-model="table.memberCode"
style="width: 460px"
clearable
:disabled="types == 2 ? true : false"
v-model="table.memberCode"
@input="getmemberinfo"
:placeholder="'请输入'"
></el-input>
@input="getmemberinfo"
/>
</el-form-item>
<el-form-item :label="$t('收益区域')" prop="addressd">
<el-cascader
style="width: 460px"
@change="flChange1"
v-model="table.addressd"
:options="areaData"
:disabled="areaDataFilter.length === 0"
style="width: 460px"
:options="areaDataFilter"
:placeholder="'请选择省市区'"
:props="regionParams"
@change="flChange1"
/>
</el-form-item>
<el-form-item :label="$t('生效结束时间')" prop="addressd">
<!-- <el-form-item :label="$t('生效结束时间')" prop="addressd">
<el-date-picker
v-model="table.effectiveEndDate"
:picker-options="pickerOptions"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
@change="changeTime3"
>
</el-date-picker>
</el-form-item>
/>
</el-form-item> -->
<div style="padding-top: 30px; display: flex; justify-content: center">
<el-button
type="text"
@ -270,8 +267,7 @@
class="button-style"
@click="handleClose"
>
{{ '取消' }}</el-button
>
{{ '取消' }}</el-button>
<el-button
v-preventReClick="3000"
type="text"
@ -296,20 +292,20 @@
</template>
<script>
import topBar from "@/components/topBar";
import { getbdmenuList, getPubenumsList } from "@/api/system";
import { getgradeRanglist, getAwardsListChiose } from "@/api/level";
import * as con from "@/api/configManage.js";
import * as api from "@/api/manage.js";
import { Message } from "element-ui";
import { deleteAgreement } from "@/api/configManage";
import ImageUpload from "@/components/ImageUpload";
import { areaList } from "@/api/site";
import topBar from '@/components/topBar'
import { getbdmenuList, getPubenumsList } from '@/api/system'
import { getgradeRanglist, getAwardsListChiose } from '@/api/level'
import * as con from '@/api/configManage.js'
import * as api from '@/api/manage.js'
import { Message } from 'element-ui'
import { deleteAgreement } from '@/api/configManage'
import ImageUpload from '@/components/ImageUpload'
import { areaList } from '@/api/site'
export default {
name: "Qxpz",
name: 'Qxpz',
components: {
topBar,
ImageUpload,
ImageUpload
},
data() {
return {
@ -318,253 +314,293 @@ export default {
effectiveTime: [],
sourceList: [],
regionParams: {
label: "name",
value: "id",
children: "children",
expandTrigger: "hover",
label: 'name',
value: 'id',
children: 'children',
expandTrigger: 'hover'
},
title: '添加',
forms: "",
forms: '',
pickerOptions: {
disabledDate(time) {
const now = new Date();
now.setHours(0, 0, 0, 0); // Reset to start of today
return time.getTime() < now.getTime(); // Disable only dates before today
},
const now = new Date()
now.setHours(0, 0, 0, 0) // Reset to start of today
return time.getTime() < now.getTime() // Disable only dates before today
}
},
rules: {
memberCode: [
{ required: true, message: '请选择发布位置', trigger: "blur" },
],
{ required: true, message: '请选择发布位置', trigger: 'blur' }
]
},
table: {
memberCode: "",
pkMember: "",
addressd: ["", "", ""],
effectiveEndDate: "",
memberCode: '',
pkMember: '',
addressd: ['', '', ''],
effectiveEndDate: ''
},
ruleShow: false,
moren: "memberRetailRegion",
moren: 'memberRetailRegion',
topList: [
{
name: this.$t("收益区域配置"),
path: "memberRetailRegion",
},
name: this.$t('收益区域配置'),
path: 'memberRetailRegion'
}
],
defaultParams: {
label: "label",
value: "value",
children: "enumList",
label: 'label',
value: 'value',
children: 'enumList'
},
multipleSelection: [],
queryParams: {
pageNum: 1,
pageSize: 50,
effective: "0",
effective: '0'
},
gradeRangList: [],
awardsList: [],
statusList: [
{ name: '立即发送', id: "1" },
{ name: '定时发送', id: "2" },
{ name: '立即发送', id: '1' },
{ name: '定时发送', id: '2' }
],
statusList1: [
{ name: '未发送', id: "0" },
{ name: '已发送', id: "1" },
{ name: '未发送', id: '0' },
{ name: '已发送', id: '1' }
],
menuOptions: [],
loading: false,
tableData: [],
total: 0,
types: "",
formId: "",
types: '',
formId: '',
getPostionList: [],
address: "",
address: '',
areaData: [],
pkIds: "",
};
pkIds: '',
memberInfo: {}
}
},
computed: {
// BL30720213
areaDataFilter() {
if (!this.memberInfo || Object.keys(this.memberInfo).length === 0 || ![60, 70, 80].includes(this.memberInfo.pkSettleGradeValue)) {
return []
}
console.log(this.memberInfo.pkSettleGradeValue, 'memberInfo')
if ([60, 70].includes(this.memberInfo.pkSettleGradeValue)) {
return this.areaData
}
const list = this.areaData.map(item => {
const province = item
let city = null
if (province.children && province.children.length > 0) {
city = province.children.map(child => {
return {
...child,
children: null
}
})
}
return {
...province,
children: city
}
})
return list
}
},
created() {
this.research();
this.getsignSource();
this.getAllArea();
this.research()
this.getsignSource()
this.getAllArea()
},
methods: {
handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: "warning",
type: 'warning'
}).then((_) => {
this.download(
"/member/manage/cu-member-retail-region/export",
'/member/manage/cu-member-retail-region/export',
{ ...this.queryParams },
`${this.$t("会员收益区域配置")}}${new Date().getTime()}.xlsx`
);
});
`${this.$t('会员收益区域配置')}}${new Date().getTime()}.xlsx`
)
})
},
getmemberinfo(member) {
con.getQueryMemberInfo({ memberCode: member }).then((res) => {
this.table.pkMember = res.data.pkId;
});
if (res.code === 200) {
this.table.pkMember = res.data.pkId
this.memberInfo = res.data
} else {
this.memberInfo = {}
}
})
},
getAllArea() {
areaList().then((res) => {
this.areaData = res.data;
});
this.areaData = res.data
})
},
flChange(value) {
this.queryParams.county = "";
this.queryParams.province = "";
this.queryParams.city = "";
this.queryParams.county = ''
this.queryParams.province = ''
this.queryParams.city = ''
this.queryParams.province = value[0];
this.queryParams.city = value[1];
this.queryParams.county = value[2];
this.queryParams.province = value[0]
this.queryParams.city = value[1]
this.queryParams.county = value[2]
},
flChange1(value) {
this.table.county = "";
this.table.province = "";
this.table.city = "";
this.table.province = value[0];
this.table.city = value[1];
this.table.county = value[2];
this.table.county = ''
this.table.province = ''
this.table.city = ''
this.table.province = value[0]
this.table.city = value[1]
this.table.county = value[2]
},
getsignSource() {
api.noticeWebsiteType().then((res) => {
this.sourceList = res.data;
});
this.sourceList = res.data
})
},
addRules() {
this.types = 1;
this.ruleShow = true;
this.title = '添加';
this.types = 1
this.ruleShow = true
this.title = '添加'
},
submitBtn() {
//
this.ruleSubmit();
this.ruleSubmit()
},
updateShow(item) {
this.types = 2;
this.title = '修改';
this.table = item;
let arr = [item.province + "", item.city + "", (item.county || "") + ""];
arr = arr.filter((item) => item != "");
this.$set(this.table, "addressd", arr);
this.$forceUpdate();
console.log(this.table.addressd, "table");
this.pkIds = item.pkId;
this.ruleShow = true;
this.getmemberinfo(item.memberCode)
this.types = 2
this.title = '修改'
this.table = item
let arr = [item.province + '', item.city + '']
if (item.county && item.county !== -1) {
arr.push(item.county + '')
}
arr = arr.filter((item) => item != '')
this.$set(this.table, 'addressd', arr)
this.$forceUpdate()
console.log(this.table.addressd, 'table')
this.pkIds = item.pkId
this.ruleShow = true
},
delRole(item) {
this.$confirm(this.$t("确认要删除该配置吗?"), '提示', {
this.$confirm(this.$t('确认要删除该配置吗?'), '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: "warning",
type: 'warning'
}).then(() => {
con.delRetailRegion(item.pkId).then((res) => {
if (res.code === 200) {
Message({
message: res.msg,
type: "success",
});
this.research();
type: 'success'
})
this.research()
} else {
Message({
message: res.msg,
type: "error",
});
type: 'error'
})
}
});
});
})
})
},
ruleSubmit() {
const datas = {};
const that = this;
this.$refs["forms"].validate((valid) => {
const datas = {}
const that = this
this.$refs['forms'].validate((valid) => {
if (!valid) {
return false;
return false
} else {
if (this.types === 1) {
datas.pkMember = this.table.pkMember;
datas.province = this.table.addressd[0];
datas.city = this.table.addressd[1];
datas.county = this.table.addressd[2];
datas.effectiveEndDate = this.table.effectiveEndDate;
datas.pkMember = this.table.pkMember
datas.province = this.table.addressd[0]
datas.city = this.table.addressd[1]
datas.county = this.table.addressd[2]
datas.effectiveEndDate = this.table.effectiveEndDate
con.retailRegionAdd(datas).then((res) => {
if (res.code === 200) {
Message({
message: res.msg,
type: "success",
});
that.ruleShow = false;
type: 'success'
})
that.ruleShow = false
that.table = {
pkMember: "",
addressd: ["", "", ""],
};
that.research();
pkMember: '',
addressd: ['', '', '']
}
that.research()
}
});
})
}
if (this.types === 2) {
datas.pkMember = this.table.pkMember;
datas.pkId = this.pkIds;
datas.province = this.table.addressd[0];
datas.city = this.table.addressd[1];
datas.county = this.table.addressd[2];
datas.effectiveEndDate = this.table.effectiveEndDate;
datas.pkMember = this.table.pkMember
datas.pkId = this.pkIds
datas.province = this.table.addressd[0]
datas.city = this.table.addressd[1]
datas.county = this.table.addressd[2]
datas.effectiveEndDate = this.table.effectiveEndDate
con.retailRegionUpdate(datas).then((res) => {
if (res.code === 200) {
Message({
message: res.msg,
type: "success",
});
that.ruleShow = false;
type: 'success'
})
that.ruleShow = false
that.table = {
pkMember: "",
addressd: ["", "", ""],
};
that.research();
pkMember: '',
addressd: ['', '', '']
}
that.research()
}
});
})
}
}
});
})
},
statusChange(value) {
if (this.table.status.length > 1) {
this.table.status.splice(0, 1);
this.table.status.splice(0, 1)
}
},
handleClose() {
this.ruleShow = false;
this.ruleShow = false
this.table = {
pkMember: "",
addressd: ["", "", ""],
};
pkMember: '',
addressd: ['', '', '']
}
},
changeBox(row) {
console.error(row);
console.error(row)
},
addFrom() {},
addRule() {},
changeTime(value) {
this.queryParams.startDate = value[0] ? value[0] : "";
this.queryParams.endDate = value[1] ? value[1] : "";
this.queryParams.startDate = value[0] ? value[0] : ''
this.queryParams.endDate = value[1] ? value[1] : ''
},
changeTime1(value) {
this.queryParams.startDateModify = value[0] ? value[0] : "";
this.queryParams.endDateModify = value[1] ? value[1] : "";
this.queryParams.startDateModify = value[0] ? value[0] : ''
this.queryParams.endDateModify = value[1] ? value[1] : ''
},
changeTime2(value) {
this.queryParams.effectiveStaDateStr = value[0] ? value[0] : "";
this.queryParams.effectiveEndDateStr = value[1] ? value[1] : "";
this.queryParams.effectiveStaDateStr = value[0] ? value[0] : ''
this.queryParams.effectiveEndDateStr = value[1] ? value[1] : ''
},
changeTime3(value) {
this.table.effectiveEndDate = value;
this.table.effectiveEndDate = value
},
disabledDates(time) {
const now = new Date(); //
const now = new Date() //
const currentDateTime = new Date(
now.getFullYear(),
now.getMonth(),
@ -572,30 +608,30 @@ export default {
now.getHours(),
now.getMinutes(),
now.getSeconds()
);
return time.getTime() < currentDateTime.getTime(); //
)
return time.getTime() < currentDateTime.getTime() //
},
handleChangeMunu(value) {
console.log("🌈", value[value.length - 1]);
this.queryParams.menuId = value[value.length - 1];
console.log('🌈', value[value.length - 1])
this.queryParams.menuId = value[value.length - 1]
},
//
getPubenumsList() {
getPubenumsList().then((res) => {
this.menuOptions = res.data;
});
this.menuOptions = res.data
})
},
//
getgradeRanglist() {
getgradeRanglist().then((res) => {
this.gradeRangList = res.data;
});
this.gradeRangList = res.data
})
},
//
getAwardsListChiose() {
getAwardsListChiose().then((res) => {
this.awardsList = res.rows;
});
this.awardsList = res.rows
})
},
research() {
// //
@ -603,27 +639,27 @@ export default {
// this.queryParams.creationTimeStart = this.queryParams.creationTime[0];
// this.queryParams.creationTimeEnd = this.queryParams.creationTime[1];
// }
this.loading = true;
this.loading = true
con.getRetailRegionList(this.queryParams).then((res) => {
this.tableData = res.rows;
this.total = res.total;
this.loading = false;
});
this.tableData = res.rows
this.total = res.total
this.loading = false
})
},
reChongzhi() {
this.queryParams = {
pageNum: 1,
pageSize: 50,
};
this.modifiedTime = [];
this.modifiedTime1 = [];
this.effectiveTime = [];
this.address = [];
this.research();
pageSize: 50
}
this.modifiedTime = []
this.modifiedTime1 = []
this.effectiveTime = []
this.address = []
this.research()
},
handleSelectionChange(val) {
this.multipleSelection = val;
this.multipleSelection = val
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
// if (columnIndex === 0) {
@ -642,14 +678,14 @@ export default {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
return 'warning-row'
} else if (rowIndex % 2 == 0) {
return "success-row";
return 'success-row'
}
return "";
},
},
};
return ''
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-upload--picture-card {

View File

@ -195,14 +195,13 @@
<el-input v-model="scope.row.newPhone" clearable />
</template>
</el-table-column>
<el-table-column
<!-- <el-table-column
min-width="210px"
align="center"
prop="areaId"
label="分公司所属省份"
>
<template slot-scope="scope">
<!-- 155 -->
<el-select
v-model="scope.row.areaId"
placeholder="请选择分公司所属省份"
@ -217,7 +216,7 @@
/>
</el-select>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column
align="center"
prop="memberName"