Merge branch 'feat/area-select' of gitee.com:cabbage_qd/web-base-admin into bd-dev

This commit is contained in:
woody 2025-07-25 10:32:17 +08:00
commit cff42baffb
17 changed files with 1457 additions and 728 deletions

View File

@ -4,11 +4,11 @@ import request from '@/utils/request'
export function getExpandList() {
return request({
url: '/system/manage/grade/expandList',
method: 'get',
method: 'get'
})
}
//修改拓展配置列表
// 修改拓展配置列表
export function updateExpand(data) {
return request({
url: '/system/manage/grade/updateExpand',
@ -17,32 +17,31 @@ export function updateExpand(data) {
})
}
//4-N配置列表
// 4-N配置列表
export function getbdBonusExpand() {
return request({
url: '/system/manage/bd-bonus-expand/list',
method: 'get',
method: 'get'
})
}
//辅导分红列表
// 辅导分红列表
export function getcoachBonusList() {
return request({
url: '/system/manage/awards/coachBonusList',
method: 'get',
method: 'get'
})
}
//考核类型下拉选
// 考核类型下拉选
export function getAssessmentType() {
return request({
url: '/system/pub/enums/assessmentType',
method: 'get',
method: 'get'
})
}
//修改辅导分红
// 修改辅导分红
export function updateCoachBonus(data) {
return request({
url: '/system/manage/awards/updateCoachBonus',
@ -51,15 +50,15 @@ export function updateCoachBonus(data) {
})
}
//获取环球积分、车奖积分列表
// 获取环球积分、车奖积分列表
export function getintegralList() {
return request({
url: '/system/manage/awards/integralList',
method: 'get',
method: 'get'
})
}
//修改环球积分
// 修改环球积分
export function updategLobalIntegral(data) {
return request({
url: '/system/manage/awards/updategLobalIntegral',
@ -68,7 +67,7 @@ export function updategLobalIntegral(data) {
})
}
//修改车奖积分
// 修改车奖积分
export function updategCarAwardPoints(data) {
return request({
url: '/system/manage/awards/updategCarAwardPoints',
@ -77,15 +76,15 @@ export function updategCarAwardPoints(data) {
})
}
//云代配置列表获取
// 云代配置列表获取
export function getCloudList() {
return request({
url: '/system/manage/bd-bonus-cloud/list',
method: 'get',
method: 'get'
})
}
//修改云代配置
// 修改云代配置
export function updateCloud(data) {
return request({
url: '/system/manage/bd-bonus-cloud/save',
@ -94,15 +93,15 @@ export function updateCloud(data) {
})
}
//服务补贴配置列表
// 服务补贴配置列表
export function getServiceList() {
return request({
url: '/system/manage/bonus-service/list',
method: 'get',
method: 'get'
})
}
//修改服务补贴配置
// 修改服务补贴配置
export function updateService(data) {
return request({
url: '/system/manage/bonus-service/update',
@ -111,23 +110,23 @@ export function updateService(data) {
})
}
//服务补贴类型枚举值
// 服务补贴类型枚举值
export function getServiceTypeList() {
return request({
url: '/system/pub/enums/get-service-type',
method: 'get',
method: 'get'
})
}
//奖金扣项列表
// 奖金扣项列表
export function getDeductList() {
return request({
url: '/system/manage/bonus-deduct/list',
method: 'get',
method: 'get'
})
}
//奖金扣项修改
// 奖金扣项修改
export function updateDeduct(data) {
return request({
url: '/system/manage/bonus-deduct/update',
@ -136,24 +135,24 @@ export function updateDeduct(data) {
})
}
//奖金扣项枚举查询
// 奖金扣项枚举查询
export function getDeductTypeList() {
return request({
url: '/system/pub/enums/get-bonus-deduct',
method: 'get',
method: 'get'
})
}
// 奖金来源
export function bonusSource(data,data1) {
export function bonusSource(data, data1) {
return request({
url: '/bonus/manage/bonus/query-bonus-source'+data1,
url: '/bonus/manage/bonus/query-bonus-source' + data1,
method: 'post',
data
})
}
// 奖金计算
export function listPeriod(data,data1) {
export function listPeriod(data, data1) {
return request({
url: '/bonus/manage/settle/list-period' + data1,
method: 'post',
@ -161,7 +160,7 @@ export function listPeriod(data,data1) {
})
}
// 奖金明细
export function queryBonusDetail(data,data1) {
export function queryBonusDetail(data, data1) {
return request({
url: '/bonus/manage/bonus/query-bonus-detail' + data1,
method: 'post',
@ -169,7 +168,7 @@ export function queryBonusDetail(data,data1) {
})
}
// 奖金汇总
export function queryBonusTotal(data,data1) {
export function queryBonusTotal(data, data1) {
return request({
url: '/bonus/manage/bonus/query-bonus-total' + data1,
method: 'post',
@ -177,40 +176,39 @@ export function queryBonusTotal(data,data1) {
})
}
//获取直推配置列表
// 获取直推配置列表
export function getdirectLoopList() {
return request({
url: '/system/manage/bd-bonus-direct-loop/list',
method: 'get',
method: 'get'
})
}
//级差枚举类型列表1等级2奖衔
// 级差枚举类型列表1等级2奖衔
export function getrangeTypeList() {
return request({
url: '/system/pub/enums/range-type',
method: 'get',
method: 'get'
})
}
//计算类型枚举值
// 计算类型枚举值
export function getcellTypeList() {
return request({
url: '/system/pub/enums/cal-type',
method: 'get',
method: 'get'
})
}
//取值类型枚举
// 取值类型枚举
export function getTakeValueTypeList() {
return request({
url: '/system/pub/enums/take-value-type',
method: 'get',
method: 'get'
})
}
//保存修改直推配置
// 保存修改直推配置
export function updateDirectLoop(data) {
return request({
url: '/system/manage/bd-bonus-direct-loop/save',
@ -219,7 +217,7 @@ export function updateDirectLoop(data) {
})
}
//奖项配置列表
// 奖项配置列表
export function getbonusList(params) {
return request({
url: '/system/manage/bd-bonus-items/list',
@ -228,41 +226,41 @@ export function getbonusList(params) {
})
}
//删除奖项配置
// 删除奖项配置
export function deletebonusList(pkId) {
return request({
url: '/system/manage/bd-bonus-items/'+pkId,
method: 'delete',
url: '/system/manage/bd-bonus-items/' + pkId,
method: 'delete'
})
}
//获取单条奖项配置列表
// 获取单条奖项配置列表
export function getOneBounsList(pkId) {
return request({
url: '/system/manage/bd-bonus-items/getOne/'+pkId,
method: 'get',
url: '/system/manage/bd-bonus-items/getOne/' + pkId,
method: 'get'
})
}
//生成奖项配置列表
// 生成奖项配置列表
export function scBonusList(data) {
return request({
url: '/system/manage/bd-bonus-items/generate',
method: 'post',
data
url: '/system/manage/bd-bonus-items/generate',
method: 'post',
data
})
}
//修改奖项配置列表
// 修改奖项配置列表
export function updateBonus(data) {
return request({
url: '/system/manage/bd-bonus-items/update',
method: 'post',
data
url: '/system/manage/bd-bonus-items/update',
method: 'post',
data
})
}
//结算周期枚举列表
// 结算周期枚举列表
export function getsettlement(params) {
return request({
url: '/system/pub/enums/settlement-cycle',
@ -271,7 +269,7 @@ export function getsettlement(params) {
})
}
//公布日期、发布日期、可提现日期 枚举
// 公布日期、发布日期、可提现日期 枚举
export function getPublishDate(params) {
return request({
url: '/system/pub/enums/publish-date',
@ -280,7 +278,7 @@ export function getPublishDate(params) {
})
}
//直推配置-获取代数列表
// 直推配置-获取代数列表
export function getAlgebra(params) {
return request({
url: '/system/pub/enums/algebra',
@ -289,4 +287,18 @@ export function getAlgebra(params) {
})
}
export function getAreaRegionConfig() {
return request({
url: '/system/manage/bd-awards-region-config/list',
method: 'get'
})
}
export function updateAreaRegionConfig(data) {
return request({
url: '/system/manage/bd-awards-region-config/update',
method: 'post',
data
})
}

View File

@ -937,3 +937,42 @@ export function updateransferWhite(data) {
})
}
export function getQueryMemberInfo(data) {
return request({
url: '/member/manager/member/query-member-info',
method: 'post',
data
})
}
export function delRetailRegion(id) {
return request({
url: '/member/manage/cu-member-region/' + id,
method: 'delete'
})
}
export function retailRegionAdd(data) {
return request({
url: '/member/manage/cu-member-region/save',
method: 'post',
data
})
}
// 会员收益区域-列表
export function getRetailRegionList(params) {
return request({
url: '/member/manage/cu-member-region/list',
method: 'get',
params
})
}
export function retailRegionUpdate(data) {
return request({
url: '/member/manage/cu-member-region/update',
method: 'post',
data
})
}

View File

@ -801,3 +801,12 @@ export function freeLogin(data) {
data
})
}
// 来源下拉
export function noticeWebsiteType(params) {
return request({
url: '/system/pub/enums/notice-website-type',
method: 'get',
params
})
}

View File

@ -1354,7 +1354,13 @@ export const constantRoutes = [
meta: { title: '辅导分红', icon: 'table' },
hidden: true
},
{
path: 'areaRegionConfig',
name: 'AreaRegionConfig',
component: () => import('@/views/configManage/bonus/areaRegionConfig'),
meta: { title: '收益区域配置', icon: 'table' },
hidden: true
},
{
path: 'fwbt',
name: 'ServiceSubsidies',
@ -1767,6 +1773,22 @@ export const constantRoutes = [
]
},
{
path: 'memberRetailRegion',
name: 'memberRetailRegion',
meta: { title: i18n.t('收益区域配置') },
component: ParentView,
redirect: 'memberRetailRegion/index',
children: [
{
path: 'memberRetailRegion',
name: 'memberRetailRegion',
component: () => import('@/views/configManage/memberRetailRegion/index'),
meta: { title: i18n.t('收益区域配置') }
}
]
},
{
path: 'freePostageAreas',
name: 'FreePostageAreas',

View File

@ -0,0 +1,148 @@
<template>
<div class="page">
<topBar
v-if="topList.length > 0"
:top-list="topList"
:moren="moren"
/>
<div class="main">
<div class="maintable">
<el-table
:data="tableData"
style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
>
<el-table-column width="200px" align="center" prop="areaType" label="区域">
<template slot-scope="scope">
{{ getAreaTextByType(scope.row.areaType) }}
</template>
</el-table-column>
<el-table-column width="200px" align="center" prop="cloudTypeVal" label="奖衔">
<template slot-scope="scope">
<el-select v-model="scope.row.awardsValue" clearable :disabled="ifupdate">
<el-option v-for="item in awardsList" :key="item.awardsValue" :label="item.awardsName" :value="item.awardsValue" />
</el-select>
</template>
</el-table-column>
<el-table-column align="center" prop="cloudRatio" label="比例">
<template slot-scope="scope">
<el-input v-model="scope.row.rate" style="width: 200px" clearable :disabled="ifupdate" />
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="footer">
<div style="margin: 0 auto">
<el-button class="thebtn btn1" @click="ifupdate=false"> {{ '修改' }}</el-button>
<el-button class="thebtn btn2" @click="savedate">{{ '保存' }}</el-button>
</div>
</div>
</div>
</template>
<script>
import topBar from '@/components/topBar'
import { getAreaRegionConfig, updateAreaRegionConfig } from '@/api/bonus'
import mixin from './mixin'
import {
getAwardsListChiose
} from '@/api/level'
export default {
name: 'AreaRegionConfig',
components: {
topBar
},
mixins: [mixin],
data() {
return {
moren: 'areaRegionConfig',
tableData: [],
ifupdate: true
}
},
created() {
this.getAreaRegionConfig()
this.getAwardsListChiose()
},
methods: {
getAreaRegionConfig() {
getAreaRegionConfig().then(res => {
this.tableData = res.rows
})
},
getAreaTextByType(type) {
const areaList = ['省', '市', '区']
return areaList[type - 1]
},
getAwardsListChiose() {
getAwardsListChiose().then((res) => {
this.awardsList = res.rows
})
},
//
savedate() {
this.ifupdate = true
updateAreaRegionConfig(this.tableData).then(res => {
if (res.code === 200) {
this.$message({
message: res.msg,
type: 'success'
})
}
this.getAreaRegionConfig()
})
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 === 1) {
return 'warning-row'
} else if (rowIndex % 2 === 0) {
return 'success-row'
}
return ''
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-table thead {
color: #000000;
}
::v-deep .el-table .warning-row {
background: #f9f9f9;
}
::v-deep .el-table .success-row {
background: #ffffff;
}
.page {
padding: 20px;
background: #f9f9f9;
font-size: 14px;
.main {
background: #ffffff;
border-radius: 8px;
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
}
.footer {
display: flex;
margin-top: 20px;
.thebtn {
width: 120px;
height: 48px;
color: #ffffff;
font-size: 14px;
font-weight: bold;
}
.btn1 {
background: #4391fd;
margin-right: 80px;
}
.btn2 {
background: #ffad41;
}
}
}
</style>

View File

@ -82,53 +82,16 @@
<script>
import topBar from '@/components/topBar'
import { getcoachBonusList, updateCoachBonus } from '@/api/bonus'
import mixin from './mixin'
export default {
name: 'Fdfh',
components: {
topBar
},
mixins: [mixin],
data() {
return {
moren: 'fdfh',
topList: [
{
name: '奖项配置',
path: 'bonus'
},
{
name: '直推配置',
path: 'ztpz'
},
{
name: '拓展配置',
path: 'kzpz'
},
{
name: '辅导分红',
path: 'fdfh'
},
{
name: '服务补贴',
path: 'fwbt'
},
{
name: '奖金扣项',
path: 'jjkx'
},
{
name: '云代配置',
path: 'ydpz'
},
{
name: '环球积分',
path: 'hqjf'
},
{
name: '车奖积分',
path: 'njjf'
}
],
tableData: [],
ifupdate: true
}

View File

@ -2,9 +2,9 @@
<div class="page">
<topBar
v-if="topList.length > 0"
:topList="topList"
:top-list="topList"
:moren="moren"
></topBar>
/>
<div class="main">
<div class="maintable">
<el-table
@ -19,8 +19,7 @@
:formatter="checkTypeList"
prop="serviceType"
:label="'服务类型'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="serviceRadio"
@ -28,11 +27,11 @@
>
<template slot-scope="scope">
<el-input
v-model="scope.row.serviceRadio"
clearable
class="theinput"
:disabled="ifupdate"
v-model="scope.row.serviceRadio"
></el-input>
/>
</template>
</el-table-column>
<el-table-column
@ -42,16 +41,16 @@
>
<template slot-scope="scope">
<el-select
v-model="scope.row.assessmentType"
clearable
:disabled="ifupdate"
v-model="scope.row.assessmentType"
>
<el-option
v-for="item in ssessmentTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
/>
</el-select>
</template>
</el-table-column>
@ -72,131 +71,93 @@
</template>
<script>
import topBar from "@/components/topBar";
import topBar from '@/components/topBar'
import {
getServiceList,
updateService,
getServiceTypeList,
getAssessmentType,
} from "@/api/bonus";
getAssessmentType
} from '@/api/bonus'
import mixin from './mixin'
export default {
name: "Fwbt",
name: 'Fwbt',
components: {
topBar,
topBar
},
mixins: [mixin],
data() {
return {
moren: "fwbt",
topList: [
{
name: '奖项配置',
path: "bonus",
},
{
name: '直推配置',
path: "ztpz",
},
{
name: '拓展配置',
path: "kzpz",
},
{
name: '辅导分红',
path: "fdfh",
},
{
name: '服务补贴',
path: "fwbt",
},
{
name: '奖金扣项',
path: "jjkx",
},
{
name: '云代配置',
path: "ydpz",
},
{
name: '环球积分',
path: "hqjf",
},
{
name: '车奖积分',
path: "njjf",
},
],
moren: 'fwbt',
tableData: [
{
name: "asads",
put: 2,
},
name: 'asads',
put: 2
}
],
ifupdate: true,
serviceTypeList: [],
ssessmentTypeList: [],
};
ssessmentTypeList: []
}
},
created() {
this.getServiceList();
this.getServiceTypeList();
this.getServiceList()
this.getServiceTypeList()
},
methods: {
//
//
getServiceList() {
getServiceList().then((res) => {
this.tableData = res.rows;
});
this.tableData = res.rows
})
},
//
//
getServiceTypeList() {
getServiceTypeList().then((res) => {
this.serviceTypeList = res.data;
});
//
this.serviceTypeList = res.data
})
//
getAssessmentType().then((res) => {
this.ssessmentTypeList = res.data;
});
this.ssessmentTypeList = res.data
})
},
//
//
checkTypeList(row) {
let state = "";
let state = ''
this.serviceTypeList.forEach((item) => {
if (item.value == row.serviceType) {
state = item.label;
state = item.label
}
});
return state;
})
return state
},
//
//
savedate() {
this.ifupdate = true;
this.ifupdate = true
updateService({ bdBonusServiceList: this.tableData }).then((res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: "success",
});
type: 'success'
})
} else {
this.$message({
message: res.msg,
type: "warning",
});
type: 'warning'
})
}
this.getServiceList();
});
this.getServiceList()
})
},
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>

View File

@ -2,9 +2,9 @@
<div class="page">
<topBar
v-if="topList.length > 0"
:topList="topList"
:top-list="topList"
:moren="moren"
></topBar>
/>
<div class="main">
<div class="maintable">
<el-table
@ -13,11 +13,10 @@
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
>
<el-table-column width="200px" align="center" prop="awardsName" :label="'真实奖衔'">
</el-table-column>
<el-table-column align="center" prop="globalIntegral" :label="'环球比例' +'(%)'">
<el-table-column width="200px" align="center" prop="awardsName" :label="'真实奖衔'" />
<el-table-column align="center" prop="globalIntegral" :label="'环球比例' +'(%)'">
<template slot-scope="scope">
<el-input clearable :disabled="ifupdate" v-model="scope.row.globalIntegral"></el-input>
<el-input v-model="scope.row.globalIntegral" clearable :disabled="ifupdate" />
</template>
</el-table-column>
</el-table>
@ -25,106 +24,67 @@
</div>
<div class="footer">
<div style="margin: 0 auto">
<el-button class="thebtn btn1" @click="ifupdate=false">{{'修改'}}</el-button>
<el-button class="thebtn btn2" @click="savedate">{{'保存'}}</el-button>
<el-button class="thebtn btn1" @click="ifupdate=false">{{ '修改' }}</el-button>
<el-button class="thebtn btn2" @click="savedate">{{ '保存' }}</el-button>
</div>
</div>
</div>
</template>
<script>
import topBar from "@/components/topBar";
import {getintegralList,updategLobalIntegral} from '@/api/bonus'
import topBar from '@/components/topBar'
import { getintegralList, updategLobalIntegral } from '@/api/bonus'
import mixin from './mixin'
export default {
name: "Hqjf",
name: 'Hqjf',
components: {
topBar,
topBar
},
mixins: [mixin],
data() {
return {
moren: "hqjf",
topList: [
{
name: '奖项配置',
path: "bonus",
},
{
name: '直推配置',
path: "ztpz",
},
{
name: '拓展配置',
path: "kzpz",
},
{
name: '辅导分红',
path: "fdfh",
},
{
name: '服务补贴',
path: "fwbt",
},
{
name: '奖金扣项',
path: "jjkx",
},
{
name: '云代配置',
path: "ydpz",
},
{
name: '环球积分',
path: "hqjf",
},
{
name: '车奖积分',
path: "njjf",
},
],
moren: 'hqjf',
tableData: [],
ifupdate:true,
};
ifupdate: true
}
},
created(){
created() {
this.getintegralList()
},
methods: {
getintegralList(){
getintegralList().then(res=>{
getintegralList() {
getintegralList().then(res => {
this.tableData = res.rows
})
},
//
savedate(){
//
savedate() {
this.ifupdate = true
updategLobalIntegral({lobalIntegralList:this.tableData}).then(res=>{
updategLobalIntegral({ lobalIntegralList: this.tableData }).then(res => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: "success",
});
type: 'success'
})
} else {
this.$message({
message: res.msg,
type: "warning",
});
type: 'warning'
})
}
this.getintegralList()
})
},
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>

View File

@ -3,81 +3,77 @@
<div class="page">
<topBar
v-if="topList.length > 0"
:topList="topList"
:top-list="topList"
:moren="moren"
></topBar>
/>
<div class="main">
<div class="maintop">
<div class="mainbtn">
<el-button size="mini" class="thebtn1" @click="adddate"
> {{ '生成' }}</el-button
>
<el-button
size="mini"
class="thebtn1"
@click="adddate"
> {{ '生成' }}</el-button>
<el-button size="mini" class="thebtn2" @click="handleExport"> {{ '导出' }}</el-button>
</div>
<div class="maintitle">{{ '基于报单时间,往后延期天数' }}</div>
</div>
<div class="maintable">
<el-table
v-loading="loading"
height="750px"
:data="tableData"
v-loading="loading"
style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column type="selection" width="55" />
<el-table-column
align="center"
prop="bonusName"
:label="'奖项名称'"
width="180"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="settleType2"
:label="'结算周期'"
width="180"
>
</el-table-column>
<el-table-column align="center" prop="publishTime" :label="'公布时间'">
</el-table-column>
/>
<el-table-column align="center" prop="publishTime" :label="'公布时间'" />
<el-table-column
align="center"
prop="publishDate2"
:label="'公布日期(天)'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="grantDate2"
:label="'发放日期(天)'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="withdrawalDate2"
:label="'可提现日期(天)'"
>
</el-table-column>
<el-table-column align="center" prop="time" :label="'操作'" fixed="right" >
/>
<el-table-column align="center" prop="time" :label="'操作'" fixed="right">
<template slot-scope="scope">
<el-button
@click.native.prevent="update(scope.row)"
type="text"
size="small"
class="button-s"
style="color:#6962F6"
@click.native.prevent="update(scope.row)"
>
{{ '修改' }}
</el-button>
<el-button
class="button-s"
@click.native.prevent="deleteRow(scope.row)"
type="text"
size="small"
style="color: #c73030"
@click.native.prevent="deleteRow(scope.row)"
>
{{ '删除' }}
</el-button>
@ -104,21 +100,22 @@
<el-row style="display: flex;justify-content:space-between ">
<el-col :span="12">
<el-form-item :label="'奖项名称'" prop="bonusName">
<el-input clearable
<el-input
v-model="form.bonusName"
clearable
:placeholder="'请输入奖项名称'"
></el-input>
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'结算周期'" prop="settleType">
<el-select clearable v-model="form.settleType" :placeholder="'请选择结算周期'">
<el-form-item :label="'结算周期'" prop="settleType">
<el-select v-model="form.settleType" clearable :placeholder="'请选择结算周期'">
<el-option
v-for="item in settleList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
/>
</el-select>
</el-form-item>
</el-col>
@ -130,14 +127,14 @@
v-model="form.publishTime"
:placeholder="'请选择公布时间'"
value-format="HH:mm:ss"
>
</el-time-picker>
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'公布日期(天)'" prop="publishDate">
<el-select clearable
<el-select
v-model="form.publishDate"
clearable
:placeholder="'请选择公布日期(天)'"
>
<el-option
@ -145,7 +142,7 @@
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
/>
</el-select>
</el-form-item>
</el-col>
@ -153,8 +150,9 @@
<el-row>
<el-col :span="12">
<el-form-item :label="'发布日期(天)'" prop="grantDate">
<el-select clearable
<el-select
v-model="form.grantDate"
clearable
:placeholder="'请选择发布日期(天)'"
>
<el-option
@ -162,14 +160,15 @@
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'可提现日期(天)'" prop="withdrawalDate">
<el-select clearable
<el-select
v-model="form.withdrawalDate"
clearable
:placeholder="'请选择可提现日期(天)'"
>
<el-option
@ -177,7 +176,7 @@
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
/>
</el-select>
</el-form-item>
</el-col>
@ -185,14 +184,14 @@
</el-form>
<span slot="footer" class="dialog-footer">
<el-button class="cancels" @click="handleClose"> {{ '取消' }}</el-button>
<el-button class="submit" style="margin-left: 40px" @click="onSubmit('form')">{{'确定'}}</el-button>
<el-button class="submit" style="margin-left: 40px" @click="onSubmit('form')">{{ '确定' }}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import topBar from "@/components/topBar";
import topBar from '@/components/topBar'
import {
getbonusList,
deletebonusList,
@ -200,89 +199,52 @@ import {
scBonusList,
updateBonus,
getsettlement,
getPublishDate,
} from "@/api/bonus";
getPublishDate
} from '@/api/bonus'
import mixin from './mixin'
export default {
name: "Bonus",
name: 'Bonus',
components: {
topBar,
topBar
},
mixins: [mixin],
data() {
return {
moren: "bonus",
topList: [
{
name: '奖项配置',
path: "bonus",
},
{
name: '直推配置',
path: "ztpz",
},
{
name: '拓展配置',
path: "kzpz",
},
{
name: '辅导分红',
path: "fdfh",
},
{
name: '服务补贴',
path: "fwbt",
},
{
name: '奖金扣项',
path: "jjkx",
},
{
name: '云代配置',
path: "ydpz",
},
{
name: '环球积分',
path: "hqjf",
},
{
name: '车奖积分',
path: "njjf",
},
],
moren: 'bonus',
tableData: [],
loading:false,
loading: false,
multipleSelection: [],
updateShow: false,
total: 0,
queryParams: {
pageNum: 1,
pageSize: 50,
pageSize: 50
},
settleList: [], //
publishDate: [], //
settleList: [], //
publishDate: [], //
form: {
bonusName: "", //
settleType: "", //
publishTime: "", //
publishDate: "", //()
grantDate: "", //()
withdrawalDate: "", //()
bonusName: '', //
settleType: '', //
publishTime: '', //
publishDate: '', // ()
grantDate: '', // ()
withdrawalDate: '' // ()
},
rules: {},
};
rules: {}
}
},
created() {
this.getbonusList();
this.getsettlement();
this.getPublishDate();
this.getbonusList()
this.getsettlement()
this.getPublishDate()
},
methods: {
/** 导出按钮操作 */
handleExport() {
this.$confirm( '是否确认导出所有数据项?', '警告', {
/** 导出按钮操作 */
handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
type: 'warning'
}).then((_) => {
this.download(
'/system/manage/bd-bonus-items/export',
@ -291,117 +253,117 @@ export default {
)
})
},
//
//
getPublishDate() {
getPublishDate().then((res) => {
this.publishDate = res.data;
});
this.publishDate = res.data
})
},
//
//
getsettlement() {
getsettlement().then((res) => {
this.settleList = res.data;
});
this.settleList = res.data
})
},
//
//
onSubmit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
//
//
updateBonus(this.form).then((res) => {
if (res.code == 200) {
this.updateShow = false;
this.updateShow = false
this.$message({
message: res.msg,
type: "success",
});
this.getbonusList();
type: 'success'
})
this.getbonusList()
} else {
this.$message({
message: res.msg,
type: "warning",
});
type: 'warning'
})
}
});
})
} else {
return false;
return false
}
});
})
},
//
//
adddate() {
scBonusList({}).then((res) => {
if (res.code == 200) {
this.getbonusList();
this.getbonusList()
}
});
})
},
//
//
update(row) {
this.updateShow = true;
this.updateShow = true
getOneBounsList(row.pkId).then((res) => {
this.form = res.data;
});
this.form = res.data
})
},
//
//
getbonusList() {
this.loading = true
getbonusList(this.queryParams).then((res) => {
res.rows.forEach((element) => {
this.settleList.forEach((item) => {
if (element.settleType == item.value) {
element.settleType2 = item.label;
element.settleType2 = item.label
}
});
})
this.publishDate.forEach((child) => {
if (element.publishDate == child.value) {
element.publishDate2 = child.label;
element.publishDate2 = child.label
}
if (element.grantDate == child.value) {
element.grantDate2 = child.label;
element.grantDate2 = child.label
}
if (element.withdrawalDate == child.value) {
element.withdrawalDate2 = child.label;
element.withdrawalDate2 = child.label
}
});
});
this.tableData = res.rows;
this.total = res.total;
})
})
this.tableData = res.rows
this.total = res.total
this.loading = false
});
})
},
handleSelectionChange(val) {
this.multipleSelection = val;
this.multipleSelection = val
},
handleClose() {
this.updateShow = false;
this.$refs["form"].clearValidate();
this.$refs["form"].resetFields();
this.updateShow = false
this.$refs['form'].clearValidate()
this.$refs['form'].resetFields()
},
//
//
deleteRow(row) {
this.$confirm('确定删除?').then((_) => {
deletebonusList(row.pkId).then((res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: "success",
});
this.getbonusList();
type: 'success'
})
this.getbonusList()
}
});
});
})
})
},
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 scoped lang="scss">
.el-date-editor.el-input, .el-date-editor.el-input__inner{

View File

@ -2,9 +2,9 @@
<div class="page">
<topBar
v-if="topList.length > 0"
:topList="topList"
:top-list="topList"
:moren="moren"
></topBar>
/>
<div class="main">
<div class="maintable">
<el-table
@ -19,31 +19,31 @@
align="center"
prop="bonusName"
:label="'奖金名称'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="backRatio"
:label="'重复消费'+'(%)'"
>
<template slot-scope="scope">
<el-input clearable
:disabled="ifupdate"
<el-input
v-model="scope.row.backRatio"
></el-input>
clearable
:disabled="ifupdate"
/>
</template>
</el-table-column>
<el-table-column
align="center"
prop="platformRatio"
:label="'平台消费'+'(%)'"
>
<template slot-scope="scope">
<el-input clearable
:disabled="ifupdate"
<el-input
v-model="scope.row.platformRatio"
></el-input>
clearable
:disabled="ifupdate"
/>
</template>
</el-table-column>
</el-table>
@ -51,82 +51,45 @@
</div>
<div class="footer">
<div style="margin: 0 auto">
<el-button class="thebtn btn1" @click="ifupdate = false"
> {{ '修改' }}</el-button
>
<el-button class="thebtn btn2" @click="savedate">{{'保存'}}</el-button>
<el-button
class="thebtn btn1"
@click="ifupdate = false"
> {{ '修改' }}</el-button>
<el-button class="thebtn btn2" @click="savedate">{{ '保存' }}</el-button>
</div>
</div>
</div>
</template>
<script>
import topBar from "@/components/topBar";
import { getDeductList, updateDeduct, getDeductTypeList } from "@/api/bonus";
import topBar from '@/components/topBar'
import { getDeductList, updateDeduct, getDeductTypeList } from '@/api/bonus'
import mixin from './mixin'
export default {
name: "Jjkx",
name: 'Jjkx',
components: {
topBar,
topBar
},
mixins: [mixin],
data() {
return {
moren: "jjkx",
topList: [
{
name: '奖项配置',
path: "bonus",
},
{
name: '直推配置',
path: "ztpz",
},
{
name: '拓展配置',
path: "kzpz",
},
{
name: '辅导分红',
path: "fdfh",
},
{
name: '服务补贴',
path: "fwbt",
},
{
name: '奖金扣项',
path: "jjkx",
},
{
name: '云代配置',
path: "ydpz",
},
{
name: '环球积分',
path: "hqjf",
},
{
name: '车奖积分',
path: "njjf",
},
],
moren: 'jjkx',
tableData: [
{
name: "asads",
put: 2,
},
name: 'asads',
put: 2
}
],
ifupdate: true,
deductTypeList: [],
};
deductTypeList: []
}
},
created() {
this.getDeductList();
this.getDeductTypeList();
this.getDeductList()
this.getDeductTypeList()
},
methods: {
//
//
// checkType(row){
// let state = "";
// this.deductTypeList.forEach(item=>{
@ -136,46 +99,46 @@ export default {
// })
// return state
// },
//
//
getDeductList() {
getDeductList().then((res) => {
this.tableData = res.data;
});
this.tableData = res.data
})
},
//
//
getDeductTypeList() {
getDeductTypeList().then((res) => {
this.deductTypeList = res.data;
});
this.deductTypeList = res.data
})
},
//
//
savedate() {
this.ifupdate = true;
this.ifupdate = true
updateDeduct({ bonusDeductList: this.tableData }).then((res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: "success",
});
type: 'success'
})
} else {
this.$message({
message: res.msg,
type: "warning",
});
type: 'warning'
})
}
this.getDeductList();
});
this.getDeductList()
})
},
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>

View File

@ -271,53 +271,16 @@ import { getExpandList, updateExpand, getbdBonusExpand, getAssessmentType } from
import { getzccsList } from '@/api/siteConfig'
import { saveYfpz } from '@/api/system'
import { isLocals } from '@/utils/numberToCurrency'
import mixin from './mixin'
export default {
name: 'Kzpz',
components: {
topBar
},
mixins: [mixin],
data() {
return {
moren: 'kzpz',
topList: [
{
name: '奖项配置',
path: 'bonus'
},
{
name: '直推配置',
path: 'ztpz'
},
{
name: '拓展配置',
path: 'kzpz'
},
{
name: '辅导分红',
path: 'fdfh'
},
{
name: '服务补贴',
path: 'fwbt'
},
{
name: '奖金扣项',
path: 'jjkx'
},
{
name: '云代配置',
path: 'ydpz'
},
{
name: '环球积分',
path: 'hqjf'
},
{
name: '车奖积分',
path: 'njjf'
}
],
tableData: [],
tableData2: [],
tableData3: [],

View File

@ -0,0 +1,48 @@
export default {
data() {
return {
topList: [
{
name: '奖项配置',
path: 'bonus'
},
{
name: '直推配置',
path: 'ztpz'
},
{
name: '拓展配置',
path: 'kzpz'
},
{
name: '收益区域配置',
path: 'areaRegionConfig'
},
{
name: '辅导分红',
path: 'fdfh'
},
{
name: '服务补贴',
path: 'fwbt'
},
{
name: '奖金扣项',
path: 'jjkx'
},
{
name: '云代配置',
path: 'ydpz'
},
{
name: '环球积分',
path: 'hqjf'
},
{
name: '车奖积分',
path: 'njjf'
}
]
}
}
}

View File

@ -2,9 +2,9 @@
<div class="page">
<topBar
v-if="topList.length > 0"
:topList="topList"
:top-list="topList"
:moren="moren"
></topBar>
/>
<div class="main">
<div class="maintable">
<el-table
@ -18,18 +18,18 @@
align="center"
prop="awardsName"
:label="'真实奖衔'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="carAwardPoints"
:label="'车奖比例'+'(%)'"
>
<template slot-scope="scope">
<el-input clearable
:disabled="ifupdate"
<el-input
v-model="scope.row.carAwardPoints"
></el-input>
clearable
:disabled="ifupdate"
/>
</template>
</el-table-column>
</el-table>
@ -37,114 +37,78 @@
</div>
<div class="footer">
<div style="margin: 0 auto">
<el-button class="thebtn btn1" @click="ifupdate = false"
>{{'修改'}}</el-button
>
<el-button class="thebtn btn2" @click="savedate">{{'保存'}}</el-button>
<el-button
class="thebtn btn1"
@click="ifupdate = false"
>{{ '修改' }}</el-button>
<el-button class="thebtn btn2" @click="savedate">{{ '保存' }}</el-button>
</div>
</div>
</div>
</template>
<script>
import topBar from "@/components/topBar";
import { getintegralList, updategCarAwardPoints } from "@/api/bonus";
import topBar from '@/components/topBar'
import { getintegralList, updategCarAwardPoints } from '@/api/bonus'
import mixin from './mixin'
export default {
name: "Njjf",
name: 'Njjf',
components: {
topBar,
topBar
},
mixins: [mixin],
data() {
return {
moren: "njjf",
topList: [
{
name: '奖项配置',
path: "bonus",
},
{
name: '直推配置',
path: "ztpz",
},
{
name: '拓展配置',
path: "kzpz",
},
{
name: '辅导分红',
path: "fdfh",
},
{
name: '服务补贴',
path: "fwbt",
},
{
name: '奖金扣项',
path: "jjkx",
},
{
name: '云代配置',
path: "ydpz",
},
{
name: '环球积分',
path: "hqjf",
},
{
name: '车奖积分',
path: "njjf",
},
],
moren: 'njjf',
tableData: [
{
name: "asads",
put: 2,
},
name: 'asads',
put: 2
}
],
ifupdate: true,
};
ifupdate: true
}
},
created() {
this.getintegralList();
this.getintegralList()
},
methods: {
getintegralList() {
getintegralList().then((res) => {
this.tableData = res.rows;
});
this.tableData = res.rows
})
},
//
//
savedate() {
this.ifupdate = true;
this.ifupdate = true
updategCarAwardPoints({ carAwardPointsList: this.tableData }).then(
(res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: "success",
});
type: 'success'
})
} else {
this.$message({
message: res.msg,
type: "warning",
});
type: 'warning'
})
}
this.getintegralList()
}
);
)
},
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>

View File

@ -2,9 +2,9 @@
<div class="page">
<topBar
v-if="topList.length > 0"
:topList="topList"
:top-list="topList"
:moren="moren"
></topBar>
/>
<div class="main">
<div class="maintable">
<el-table
@ -13,11 +13,10 @@
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
>
<el-table-column width="200px" align="center" prop="cloudTypeVal" :label="'云代收益'">
</el-table-column>
<el-table-column align="center" prop="cloudRatio" :label="'比例'+'(%)'">
<el-table-column width="200px" align="center" prop="cloudTypeVal" :label="'云代收益'" />
<el-table-column align="center" prop="cloudRatio" :label="'比例'+'(%)'">
<template slot-scope="scope">
<el-input clearable :disabled="ifupdate" v-model="scope.row.cloudRatio"></el-input>
<el-input v-model="scope.row.cloudRatio" clearable :disabled="ifupdate" />
</template>
</el-table-column>
</el-table>
@ -26,103 +25,66 @@
<div class="footer">
<div style="margin: 0 auto">
<el-button class="thebtn btn1" @click="ifupdate=false"> {{ '修改' }}</el-button>
<el-button class="thebtn btn2" @click="savedate">{{'保存'}}</el-button>
<el-button class="thebtn btn2" @click="savedate">{{ '保存' }}</el-button>
</div>
</div>
</div>
</template>
<script>
import topBar from "@/components/topBar";
import {getCloudList,updateCloud} from '@/api/bonus'
import topBar from '@/components/topBar'
import { getCloudList, updateCloud } from '@/api/bonus'
import mixin from './mixin'
export default {
name: "Ydpz",
name: 'Ydpz',
components: {
topBar,
topBar
},
mixins: [mixin],
data() {
return {
moren: "ydpz",
topList: [
{
name: '奖项配置',
path: "bonus",
},
{
name: '直推配置',
path: "ztpz",
},
{
name: '拓展配置',
path: "kzpz",
},
{
name: '辅导分红',
path: "fdfh",
},
{
name: '服务补贴',
path: "fwbt",
},
{
name: '奖金扣项',
path: "jjkx",
},
{
name: '云代配置',
path: "ydpz",
},
{
name: '环球积分',
path: "hqjf",
},
{
name: '车奖积分',
path: "njjf",
},
],
moren: 'ydpz',
tableData: [],
ifupdate:true,
};
ifupdate: true
}
},
created(){
created() {
this.getCloudList()
},
methods: {
getCloudList(){
getCloudList().then(res=>{
this.tableData = res.rows
})
getCloudList() {
getCloudList().then(res => {
this.tableData = res.rows
})
},
//
savedate(){
//
savedate() {
this.ifupdate = true
updateCloud({bonusCloudList:this.tableData}).then(res=>{
updateCloud({ bonusCloudList: this.tableData }).then(res => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: "success",
});
type: 'success'
})
} else {
this.$message({
message: res.msg,
type: "warning",
});
type: 'warning'
})
}
this.getCloudList()
})
},
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>

View File

@ -101,7 +101,7 @@
<div class="linetitle">
<div class="tit" />
{{'直推奖励配置'}}
{{ '直推奖励配置' }}
</div>
<div class="maincontent">
<el-row>
@ -171,7 +171,7 @@
<div class="linetitle">
<div class="tit" />
{{'复购直推配置'}}
{{ '复购直推配置' }}
</div>
<div class="maincontent">
<el-row>
@ -436,53 +436,16 @@ import {
getTakeValueTypeList,
getAlgebra
} from '@/api/bonus'
import mixin from './mixin'
export default {
name: 'Ztpz',
components: {
topBar
},
mixins: [mixin],
data() {
return {
moren: 'ztpz',
topList: [
{
name: '奖项配置',
path: 'bonus'
},
{
name: '直推配置',
path: 'ztpz'
},
{
name: '拓展配置',
path: 'kzpz'
},
{
name: '辅导分红',
path: 'fdfh'
},
{
name: '服务补贴',
path: 'fwbt'
},
{
name: '奖金扣项',
path: 'jjkx'
},
{
name: '云代配置',
path: 'ydpz'
},
{
name: '环球积分',
path: 'hqjf'
},
{
name: '车奖积分',
path: 'njjf'
}
],
form: {
bonusDirectLoopExtsList: [
{

View File

@ -0,0 +1,790 @@
<template>
<div class="page">
<topBar v-if="topList.length > 0" :top-list="topList" :moren="moren" />
<div class="thetopbox">
<el-form ref="form" :model="queryParams" label-width="100px">
<el-row>
<el-col :span="4">
<el-form-item :label="'会员编号'" prop="memberCode">
<el-input
v-model="queryParams.memberCode"
clearable
:placeholder="'请输入'"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('是否生效')" prop="status">
<el-select
v-model="queryParams.effective"
clearable
placeholder=""
>
<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="'请选择'"
>
<el-option
v-for="item in sourceList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('收益区域')" prop="accountStatus">
<el-cascader
v-model="address"
style="width: 100%"
clearable
:options="areaData"
:placeholder="'请选择省市区'"
:props="regionParams"
@change="flChange"
/>
</el-form-item>
</el-col>
<!-- <el-col :span="4">
<el-form-item :label="$t('收益区域分组')" prop="regionVertexPkId">
<el-select v-model="queryParams.regionVertexPkId" clearable>
<el-option v-for="item in groupList" :key="item.pkId" :label="item.name" :value="item.pkId" />
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item :label="$t('创建时间')" prop="creationTime">
<el-date-picker
v-model="modifiedTime"
value-format="yyyy-MM-dd"
type="datetimerange"
range-separator=""
:start-placeholder="'开始日期'"
:end-placeholder="'结束日期'"
@change="changeTime"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('修改时间')" prop="creationTime">
<el-date-picker
v-model="modifiedTime1"
value-format="yyyy-MM-dd"
type="datetimerange"
range-separator=""
:start-placeholder="'开始日期'"
:end-placeholder="'结束日期'"
@change="changeTime1"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<div class="searchbox">
<el-button class="my_search" @click="searchHandle()">
{{ '搜索' }}</el-button>
<el-button class="my_reset" @click="resetHandle">
{{ '重置' }}</el-button>
</div>
</el-col>
</el-row>
</el-form>
</div>
<div class="main">
<div class="maintop">
<div class="mainbtn">
<!-- <el-button
v-hasButtons="['memberRetailRegionAdd']"
size="small"
style="background-color: #48b2fd"
class="thebtn1"
@click="addRules"
>{{ '添加' }}</el-button> -->
<el-button
v-hasButtons="['memberRetailRegionExport']"
size="small"
class="thebtn2"
@click="handleExport"
>
{{ '导出' }}</el-button>
</div>
</div>
<div class="maintable">
<el-table
v-loading="loading"
:data="tableData"
height="730px"
style="width: 100%"
:header-cell-style="{ background: '#EEEEEE' }"
:row-class-name="tableRowClassName"
:span-method="objectSpanMethod"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column
align="center"
prop="memberCode"
:label="$t('会员编号')"
width="130"
/>
<el-table-column
align="center"
prop="memberName"
:label="$t('会员姓名')"
/>
<el-table-column
align="center"
prop="awardsName"
label="奖衔"
/>
<el-table-column
align="center"
prop="provinceVal"
width="160"
:label="$t('收益区域')"
>
<template slot-scope="scope">
{{ scope.row.provinceVal }}{{ scope.row.cityVal
}}{{ scope.row.countyVal }}
</template>
</el-table-column>
<!-- <el-table-column
align="center"
prop="regionVertexName"
width="160"
label="收益区域分组"
/> -->
<el-table-column
align="center"
prop="effective"
:label="$t('是否生效')"
>
<template slot-scope="scope">
<span v-if="scope.row.effective == 0"></span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column
align="center"
prop="sourceVal"
:label="$t('来源')"
/>
<el-table-column
align="center"
prop="creationTime"
:label="$t('创建时间')"
width="160"
/>
<el-table-column
align="center"
prop="modifiedTime"
: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"
@click.native.prevent="updateShow(scope.row)"
>
{{ $t("修改") }}
</el-button> -->
<el-button
v-has-buttons="['memberRetailRegionDel']"
class="colors"
type="text"
size="small"
style="color: #c73030"
@click.native.prevent="delRole(scope.row)"
>
{{ '删除' }}
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-dialog
:title="title"
:visible.sync="ruleShow"
width="50%"
center
:close-on-click-modal="false"
:before-close="handleClose"
>
<el-form ref="forms" :rules="rules" :model="table" label-width="120px">
<el-form-item :label="$t('会员编号')" prop="memberCode">
<el-input
v-model="table.memberCode"
style="width: 460px"
clearable
:disabled="types == 2 ? true : false"
:placeholder="'请输入'"
@input="getmemberinfo"
/>
</el-form-item>
<el-form-item :label="$t('收益区域')" prop="addressd">
<el-cascader
v-model="table.addressd"
style="width: 460px"
:options="areaData"
:placeholder="'请选择省市区'"
:props="regionParams"
@change="flChange1"
/>
</el-form-item>
<el-form-item :label="$t('生效结束时间')" prop="effectiveEndDate">
<el-date-picker
v-model="table.effectiveEndDate"
:picker-options="pickerOptions"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
@change="changeTime3"
/>
</el-form-item>
<div style="padding-top: 30px; display: flex; justify-content: center">
<el-button
type="text"
size="small"
class="button-style"
@click="handleClose"
>
{{ '取消' }}</el-button>
<el-button
v-preventReClick="3000"
type="text"
size="small"
class="button-style"
style="margin-left: 40px; background-color: #c8161d"
@click="submitBtn()"
>
{{ '确认' }}
</el-button>
</div>
</el-form>
</el-dialog>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="searchHandle"
/>
</div>
</template>
<script>
import topBar from '@/components/topBar'
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 { areaList } from '@/api/site'
import { getGroupConfigurationList } from '@/api/systemconfiguration'
export default {
name: 'MemberRetailRegion',
components: {
topBar
},
data() {
return {
modifiedTime: [],
modifiedTime1: [],
effectiveTime: [],
sourceList: [],
regionParams: {
label: 'name',
value: 'id',
children: 'children',
expandTrigger: 'hover',
checkStrictly: true
},
title: '添加',
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
}
},
rules: {
memberCode: [
{ required: true, message: '请输入会员编号', trigger: 'blur' }
],
addressd: [
{ required: true, message: '请选择收益区域', trigger: 'blur' }
],
effectiveEndDate: [
{ required: true, message: '请选择生效结束时间', trigger: 'blur' }
]
},
table: {
memberCode: '',
pkMember: '',
addressd: ['', '', ''],
effectiveEndDate: ''
},
ruleShow: false,
moren: 'memberRetailRegion',
topList: [
{
name: this.$t('收益区域配置'),
path: 'memberRetailRegion'
}
],
defaultParams: {
label: 'label',
value: 'value',
children: 'enumList'
},
multipleSelection: [],
queryParams: {
pageNum: 1,
pageSize: 50,
effective: '0'
// regionVertexPkId: ''
},
gradeRangList: [],
awardsList: [],
statusList: [
{ name: '立即发送', id: '1' },
{ name: '定时发送', id: '2' }
],
statusList1: [
{ name: '未发送', id: '0' },
{ name: '已发送', id: '1' }
],
menuOptions: [],
loading: false,
tableData: [],
total: 0,
types: '',
formId: '',
getPostionList: [],
address: '',
areaData: [],
pkIds: '',
groupList: []
}
},
created() {
this.searchHandle()
this.getsignSource()
this.getAllArea()
// this.getGroupList()
},
methods: {
getGroupList() {
getGroupConfigurationList({
pageNum: 1,
pageSize: 999
}).then((res) => {
this.groupList = res.rows
})
},
handleExport() {
this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then((_) => {
this.download(
'/member/manage/cu-member-region/export',
{ ...this.queryParams },
`${this.$t('会员收益区域配置')}${new Date().getTime()}.xlsx`
)
})
},
getmemberinfo(member) {
con.getQueryMemberInfo({ memberCode: member }).then((res) => {
this.table.pkMember = res.data.pkId
})
},
getAllArea() {
areaList().then((res) => {
this.areaData = res.data
})
},
flChange(value) {
this.queryParams.county = ''
this.queryParams.province = ''
this.queryParams.city = ''
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]
},
getsignSource() {
api.noticeWebsiteType().then((res) => {
this.sourceList = res.data
})
},
addRules() {
this.types = 1
this.ruleShow = true
this.title = '添加'
},
submitBtn() {
//
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
},
delRole(item) {
this.$confirm(this.$t('确认要删除该配置吗?'), '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
con.delRetailRegion(item.pkId).then((res) => {
if (res.code === 200) {
Message({
message: res.msg,
type: 'success'
})
this.searchHandle()
} else {
Message({
message: res.msg,
type: 'error'
})
}
})
})
},
ruleSubmit() {
const datas = {}
const that = this
this.$refs['forms'].validate((valid) => {
if (!valid) {
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
con.retailRegionAdd(datas).then((res) => {
if (res.code === 200) {
Message({
message: res.msg,
type: 'success'
})
that.ruleShow = false
that.table = {
pkMember: '',
addressd: ['', '', '']
}
that.searchHandle()
}
})
}
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
con.retailRegionUpdate(datas).then((res) => {
if (res.code === 200) {
Message({
message: res.msg,
type: 'success'
})
that.ruleShow = false
that.table = {
pkMember: '',
addressd: ['', '', '']
}
that.searchHandle()
}
})
}
}
})
},
statusChange(value) {
if (this.table.status.length > 1) {
this.table.status.splice(0, 1)
}
},
handleClose() {
this.ruleShow = false
this.table = {
pkMember: '',
addressd: ['', '', '']
}
},
changeBox(row) {
console.error(row)
},
addFrom() {},
addRule() {},
changeTime(value) {
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] : ''
},
changeTime2(value) {
this.queryParams.effectiveStaDateStr = value[0] ? value[0] : ''
this.queryParams.effectiveEndDateStr = value[1] ? value[1] : ''
},
changeTime3(value) {
this.table.effectiveEndDate = value
},
disabledDates(time) {
const now = new Date() //
const currentDateTime = new Date(
now.getFullYear(),
now.getMonth(),
now.getDate(),
now.getHours(),
now.getMinutes(),
now.getSeconds()
)
return time.getTime() < currentDateTime.getTime() //
},
handleChangeMunu(value) {
console.log('🌈', value[value.length - 1])
this.queryParams.menuId = value[value.length - 1]
},
//
getgradeRanglist() {
getgradeRanglist().then((res) => {
this.gradeRangList = res.data
})
},
//
getAwardsListChiose() {
getAwardsListChiose().then((res) => {
this.awardsList = res.rows
})
},
searchHandle() {
// //
// if ("" != this.queryParams.creationTime) {
// this.queryParams.creationTimeStart = this.queryParams.creationTime[0];
// this.queryParams.creationTimeEnd = this.queryParams.creationTime[1];
// }
this.loading = true
con.getRetailRegionList(this.queryParams).then((res) => {
this.tableData = res.rows
this.total = res.total
this.loading = false
})
},
resetHandle() {
this.queryParams = {
pageNum: 1,
pageSize: 50
}
this.modifiedTime = []
this.modifiedTime1 = []
this.effectiveTime = []
this.address = []
this.searchHandle()
},
handleSelectionChange(val) {
this.multipleSelection = val
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
// if (columnIndex === 0) {
// if (rowIndex % 2 === 0) {
// return {
// rowspan: 2,
// colspan: 1,
// };
// } else {
// return {
// rowspan: 0,
// colspan: 0,
// };
// }
// }
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row'
} else if (rowIndex % 2 == 0) {
return 'success-row'
}
return ''
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-upload--picture-card {
min-width: 80px !important;
min-height: 80px !important;
border: 1px solid #ccc;
border-radius: 4px;
}
::v-deep .el-select {
width: 100%;
}
::v-deep .el-range-editor.el-input__inner {
width: 100%;
}
::v-deep .colors {
padding: 5px !important;
}
::v-deep .banner .el-form-item__error {
left: 100px;
margin-top: 10px;
}
.avatar-uploader {
width: 68px !important;
height: 68px !important;
}
::v-deep .input-s .el-input {
//width:637px;
}
.button-style {
width: 209px;
height: 48px;
background: #cccccc;
border-radius: 5px 5px 5px 5px;
opacity: 1;
line-height: 48px;
padding: 0 !important;
color: #fff;
font-size: 18px;
}
::v-deep .el-dialog__title {
font-weight: bold;
}
::v-deep .el-dialog__header {
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.button-s {
padding: 0 2px !important;
}
::v-deep .el-button {
padding: 10px 20px;
}
::v-deep .el-date-editor .el-range__close-icon {
margin-top: -10px;
}
::v-deep .el-date-editor .el-range-separator {
margin-top: -10px;
}
::v-deep .el-date-editor .el-range__icon {
margin-top: -10px;
}
::v-deep .el-input__inner {
//height:28px;
//line-height: 28px;
}
::v-deep .el-form-item {
margin-bottom: 15px;
}
::v-deep .el-form-item__label {
color: #333;
font-weight: inherit;
}
::v-deep .el-row {
//margin-top: 20px;
}
::v-deep .el-table .warning-row {
background: #f9f9f9;
}
::v-deep .el-table .success-row {
background: #ffffff;
}
::v-deep .el-table thead {
color: #000000;
}
.thebtn2 {
color: #ffffff;
background: #ffad41;
}
.openClose {
margin-top: 10px;
margin-right: 10px;
color: #666666;
text-align: center;
}
.page {
padding: 20px;
background: #f9f9f9;
font-size: 14px;
.thetopbox {
background: #ffffff;
border-radius: 8px;
padding-bottom: 10px;
.searchbox {
display: flex;
align-items: center;
.searchtitle {
margin-right: 10px;
}
.searchbtn {
background: #08143f;
color: #ffffff;
}
}
}
.main {
//margin-top: 20px;
background: #f9f9f9;
//border-radius: 8px;
//box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
.maintop {
display: flex;
padding: 0px 0;
justify-content: space-between;
align-items: center;
.mainbtn {
.thebtn1 {
color: #ffffff;
background: #3181e5;
width: 68px;
//height: 32px;
}
}
}
}
}
</style>

View File

@ -44,7 +44,7 @@ module.exports = {
},
proxy: {
'/prod-api': {
target: 'http://localhost:8080/',
target: 'http://192.168.0.86:8080/',
changeOrigin: true,
pathRewrite: {
'^/prod-api': ''