feat(区域配置页): 新增两个可修改“值”的身份

This commit is contained in:
hzj 2025-09-25 18:48:43 +08:00
parent db7bc0a97b
commit 1158fac5a7

View File

@ -1,6 +1,5 @@
<template>
<div class="app-container-assist">
<div class="filter-container">
<el-select
v-model="listQuery.sysOrigin"
@ -15,11 +14,21 @@
:label="item.label"
:value="item.value"
>
<span style="float: left;"> <sys-origin-icon :icon="item.value" :desc="item.value" /></span>
<span style="float: left;">
<sys-origin-icon :icon="item.value" :desc="item.value"
/></span>
<span style="float: left;margin-left:10px">{{ item.label }}</span>
</el-option>
</el-select>
<el-select v-model="listQuery.regionId" v-loading="loading" clearable style="width:150px;" class="filter-item" placeholder="请选择" @change="handleSearch">
<el-select
v-model="listQuery.regionId"
v-loading="loading"
clearable
style="width:150px;"
class="filter-item"
placeholder="请选择"
@change="handleSearch"
>
<el-option
v-for="(item, index) in regions"
:key="index"
@ -35,7 +44,12 @@
class="filter-item"
@change="handleSearch"
>
<el-option v-for="(item) in regionAssistTypes" :key="item.value" :label="item.name" :value="item.value" />
<el-option
v-for="item in regionAssistTypes"
:key="item.value"
:label="item.name"
:value="item.value"
/>
</el-select>
<el-button
class="filter-item"
@ -80,8 +94,12 @@
<i class="el-icon-more" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="handleUpdate(scope.row)">修改</el-dropdown-item>
<el-dropdown-item @click.native="handleDelete(scope.row)">删除</el-dropdown-item>
<el-dropdown-item @click.native="handleUpdate(scope.row)"
>修改</el-dropdown-item
>
<el-dropdown-item @click.native="handleDelete(scope.row)"
>删除</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</template>
@ -89,7 +107,7 @@
</el-table>
<el-drawer
:title="textOptTitle + '('+listQuery.sysOrigin+')'"
:title="textOptTitle + '(' + listQuery.sysOrigin + ')'"
:visible.sync="formVisible"
:before-close="handleClose"
:close-on-press-escape="false"
@ -111,13 +129,25 @@
class="filter-item"
:disabled="form.id !== ''"
>
<el-option v-for="(item) in regionAssistTypes" :key="item.value" :label="item.name" :value="item.value" />
<el-option
v-for="item in regionAssistTypes"
:key="item.value"
:label="item.name"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item prop="regionId" label="区域">
<el-select v-model="form.regionId" v-loading="loading" style="width:100%;" class="filter-item" placeholder="请选择" :disabled="form.id !== ''">
<el-select
v-model="form.regionId"
v-loading="loading"
style="width:100%;"
class="filter-item"
placeholder="请选择"
:disabled="form.id !== ''"
>
<el-option
v-for="(item, index) in regions"
:key="index"
@ -127,28 +157,55 @@
</el-select>
</el-form-item>
</el-col>
</el-form-item>
<el-form-item v-if="'DIAMOND_EXCHANGE_GOLD' === form.type" label-width="110px">
<el-input v-model="form.data" v-number placeholder="钻石兑换金币比例(%)" />
<el-form-item
v-if="'DIAMOND_EXCHANGE_GOLD' === form.type"
label-width="110px"
>
<el-input
v-model="form.data"
v-number
placeholder="钻石兑换金币比例(%)"
/>
</el-form-item>
<el-form-item v-if="'MIN_EXCHANGE_DIAMOND' === form.type" label-width="110px">
<el-input v-model="form.data" v-number placeholder="钻石起兑最小数量" />
<el-form-item
v-if="'MIN_EXCHANGE_DIAMOND' === form.type"
label-width="110px"
>
<el-input
v-model="form.data"
v-number
placeholder="钻石起兑最小数量"
/>
</el-form-item>
<el-form-item v-if="'WITHDRAW_PROPORTION_TIPS' === form.type" label-width="0">
<el-form-item
v-if="'WITHDRAW_PROPORTION_TIPS' === form.type"
label-width="0"
>
<el-col :md="12" :sm="24">
<el-form-item label=">=美元">
<el-input v-model="data.start" v-number placeholder="大于等于多少美元" />
<el-input
v-model="data.start"
v-number
placeholder="大于等于多少美元"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="<=美元">
<el-input v-model="data.end" v-number placeholder="小于等于多少美元" />
<el-input
v-model="data.end"
v-number
placeholder="小于等于多少美元"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="1$:金币">
<el-input v-model="data.value" placeholder="1$可获得金币数量" />
<el-input
v-model="data.value"
placeholder="1$可获得金币数量"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
@ -158,20 +215,34 @@
</el-col>
</el-form-item>
<el-form-item v-if="'COIN_SELLER_WITHDRAW_PROPORTION_TIPS' === form.type" label-width="0">
<el-form-item
v-if="'COIN_SELLER_WITHDRAW_PROPORTION_TIPS' === form.type"
label-width="0"
>
<el-col :md="12" :sm="24">
<el-form-item label=">=美元">
<el-input v-model="data.start" v-number placeholder="大于等于多少美元" />
<el-input
v-model="data.start"
v-number
placeholder="大于等于多少美元"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="<=美元">
<el-input v-model="data.end" v-number placeholder="小于等于多少美元" />
<el-input
v-model="data.end"
v-number
placeholder="小于等于多少美元"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="1$:金币">
<el-input v-model="data.value" placeholder="1$可获得金币数量" />
<el-input
v-model="data.value"
placeholder="1$可获得金币数量"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
@ -181,20 +252,34 @@
</el-col>
</el-form-item>
<el-form-item v-if="'WITHDRAW_PROPORTION_DIAMOND_TIPS' === form.type" label-width="0">
<el-form-item
v-if="'WITHDRAW_PROPORTION_DIAMOND_TIPS' === form.type"
label-width="0"
>
<el-col :md="12" :sm="24">
<el-form-item label=">=钻石">
<el-input v-model="data.start" v-number placeholder="大于等于多少钻石" />
<el-input
v-model="data.start"
v-number
placeholder="大于等于多少钻石"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="<=钻石">
<el-input v-model="data.end" v-number placeholder="小于等于多少钻石" />
<el-input
v-model="data.end"
v-number
placeholder="小于等于多少钻石"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="1钻石:金币">
<el-input v-model="data.value" placeholder="1钻石可获得金币数量" />
<el-input
v-model="data.value"
placeholder="1钻石可获得金币数量"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
@ -204,20 +289,34 @@
</el-col>
</el-form-item>
<el-form-item v-if="'WITHDRAW_PROPORTION_DIAMOND_USD_TIPS' === form.type" label-width="0">
<el-form-item
v-if="'WITHDRAW_PROPORTION_DIAMOND_USD_TIPS' === form.type"
label-width="0"
>
<el-col :md="12" :sm="24">
<el-form-item label=">=钻石">
<el-input v-model="data.start" v-number placeholder="大于等于多少钻石" />
<el-input
v-model="data.start"
v-number
placeholder="大于等于多少钻石"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="<=钻石">
<el-input v-model="data.end" v-number placeholder="小于等于多少钻石" />
<el-input
v-model="data.end"
v-number
placeholder="小于等于多少钻石"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="1$:钻石">
<el-input v-model="data.value" placeholder="1美金需要多少钻石数量" />
<el-input
v-model="data.value"
placeholder="1美金需要多少钻石数量"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
@ -228,22 +327,53 @@
</el-form-item>
<el-form-item label-width="0">
<el-col v-if="'RESIDUE_TARGET_EXCHANGE_PROPORTION' === form.type" :md="12" :sm="24">
<el-form-item :label="(form.data > 0 ? form.data : '?') + '目标=1美元$'" prop="data">
<el-input v-model="form.data" v-number placeholder="目标数量" />
<el-col
v-if="'RESIDUE_TARGET_EXCHANGE_PROPORTION' === form.type"
:md="12"
:sm="24"
>
<el-form-item
:label="(form.data > 0 ? form.data : '?') + '目标=1美元$'"
prop="data"
>
<el-input
v-model="form.data"
v-number
placeholder="目标数量"
/>
</el-form-item>
</el-col>
<el-col
v-if="'ROOM_CONTRIBUTION_ACTIVITY_RATIO' === form.type || 'GIFT_TO_OWN_GOLD_RATIO' === form.type || 'GIFT_TO_OTHER_GOLD_RATIO' === form.type || 'HOST_TERMINATION_FEE' === form.type || 'WITHDRAWAL_COMMISSION_RATIO' === form.type || 'GIFT_TO_OTHER_DIAMOND_RATIO'=== form.type || 'GIFT_TO_OTHER_DIAMOND_RATIO_AGENCY' === form.type
||'GIFT_TO_OWN_GOLD_RATIO_AGENCY' === form.type||'GIFT_TO_OTHER_GOLD_RATIO_AGENCY' === form.type ||'GIFT_TARGET_RATIO' === form.type"
v-if="
'ROOM_CONTRIBUTION_ACTIVITY_RATIO' === form.type ||
'GIFT_TO_OWN_GOLD_RATIO' === form.type ||
'GIFT_TO_OTHER_GOLD_RATIO' === form.type ||
'HOST_TERMINATION_FEE' === form.type ||
'WITHDRAWAL_COMMISSION_RATIO' === form.type ||
'GIFT_TO_OTHER_DIAMOND_RATIO' === form.type ||
'GIFT_TO_OTHER_DIAMOND_RATIO_AGENCY' === form.type ||
'GIFT_TO_OWN_GOLD_RATIO_AGENCY' === form.type ||
'GIFT_TO_OTHER_GOLD_RATIO_AGENCY' === form.type ||
'GIFT_TARGET_RATIO' === form.type ||
'GIFT_TO_OTHER_GOLD_RATIO_NORMAL' === form.type ||
'GIFT_TO_OWN_GOLD_RATIO_NORMAL' === form.type
"
:md="12"
:sm="24">
:sm="24"
>
<el-form-item label="值" prop="data">
<el-input v-model="form.data" v-number placeholder="请输入内容" />
<el-input
v-model="form.data"
v-number
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-form-item>
<el-form-item v-if="'ROOM_CONTRIBUTION_ACTIVITY_RATIO' === form.type" label-width="0">
<el-form-item
v-if="'ROOM_CONTRIBUTION_ACTIVITY_RATIO' === form.type"
label-width="0"
>
<el-col :md="12" :sm="24">
<el-form-item label="图片">
<upload-image
@ -261,27 +391,32 @@
</div>
</div>
</el-drawer>
</div>
</template>
<script>
import { regionAssistConfigTable, updateRegionAssistConfig, addRegionAssistConfig, deleteRegionAssistConfig, regionConfigTable } from '@/api/sys'
import { regionAssistTypes } from '@/constant/type'
import { mapGetters } from 'vuex'
import {
regionAssistConfigTable,
updateRegionAssistConfig,
addRegionAssistConfig,
deleteRegionAssistConfig,
regionConfigTable
} from "@/api/sys";
import { regionAssistTypes } from "@/constant/type";
import { mapGetters } from "vuex";
function getFormData() {
return {
id: '',
sysOrigin: '',
regionId: '',
type: '',
data: '',
imgUrl: ''
}
id: "",
sysOrigin: "",
regionId: "",
type: "",
data: "",
imgUrl: ""
};
}
export default {
name: 'RegionAssistConfig',
name: "RegionAssistConfig",
data() {
return {
list: [],
@ -289,158 +424,192 @@ export default {
regions: [],
loading: false,
listQuery: {
sysOrigin: 'HALAR',
type: '',
regionId: ''
sysOrigin: "HALAR",
type: "",
regionId: ""
},
formVisible: false,
textOptTitle: '',
textOptTitle: "",
form: getFormData(),
submitLoading: false,
rules: {
regionId: [
{ required: true, message: '请选择区域', trigger: 'blur' }
],
type: [
{ required: true, message: '请选择业务类型', trigger: 'blur' }
],
data: [
{ required: true, message: '请填写值', trigger: 'blur' }
]
regionId: [{ required: true, message: "请选择区域", trigger: "blur" }],
type: [{ required: true, message: "请选择业务类型", trigger: "blur" }],
data: [{ required: true, message: "请填写值", trigger: "blur" }]
},
data: {},
listLoading: true
}
};
},
//
directives: {
number: {
bind(el) {
el.addEventListener('input', (e) => {
el.addEventListener("input", e => {
e.target.value = e.target.value
.replace(/[^0-9.]/g, '')
.replace(/(\..*)\./g, '$1');
.replace(/[^0-9.]/g, "")
.replace(/(\..*)\./g, "$1");
});
}
}
},
computed: {
...mapGetters(['permissionsSysOriginPlatforms'])
...mapGetters(["permissionsSysOriginPlatforms"])
},
created() {
this.listRegion()
this.renderData()
this.listRegion();
this.renderData();
},
methods: {
renderData() {
const that = this
that.listLoading = true
const that = this;
that.listLoading = true;
regionAssistConfigTable(that.listQuery).then(res => {
const { body } = res
that.list = body
that.listLoading = false
})
const { body } = res;
that.list = body;
that.listLoading = false;
});
},
handleSearch() {
this.renderData()
this.renderData();
},
handleSysOriginSearch() {
this.listRegion()
this.renderData()
this.listRegion();
this.renderData();
},
listRegion() {
const that = this
that.loading = true
regionConfigTable({ 'sysOrigin': that.listQuery.sysOrigin }).then(res => {
that.regions = res.body || []
that.loading = false
}).catch(er => {
that.loading = false
})
const that = this;
that.loading = true;
regionConfigTable({ sysOrigin: that.listQuery.sysOrigin })
.then(res => {
that.regions = res.body || [];
that.loading = false;
})
.catch(er => {
that.loading = false;
});
},
submitForm() {
const that = this
if (that.form.type === 'WITHDRAW_PROPORTION_TIPS' ||that.form.type==='COIN_SELLER_WITHDRAW_PROPORTION_TIPS' || that.form.type === 'WITHDRAW_PROPORTION_DIAMOND_TIPS' || that.form.type === 'WITHDRAW_PROPORTION_DIAMOND_USD_TIPS') {
that.form.data = JSON.stringify(that.data)
const that = this;
if (
that.form.type === "WITHDRAW_PROPORTION_TIPS" ||
that.form.type === "COIN_SELLER_WITHDRAW_PROPORTION_TIPS" ||
that.form.type === "WITHDRAW_PROPORTION_DIAMOND_TIPS" ||
that.form.type === "WITHDRAW_PROPORTION_DIAMOND_USD_TIPS"
) {
that.form.data = JSON.stringify(that.data);
}
that.$refs.form.validate(valid => {
if (valid) {
that.submitLoading = true
that.form.sysOrigin = that.listQuery.sysOrigin
that.submitLoading = true;
that.form.sysOrigin = that.listQuery.sysOrigin;
if (that.form.id) {
updateRegionAssistConfig(that.form).then(res => {
that.submitLoading = false
that.formVisible = false
that.form = getFormData()
that.renderData()
}).catch(er => {
that.submitLoading = false
console.error(er)
this.$emit('fail')
})
return
updateRegionAssistConfig(that.form)
.then(res => {
that.submitLoading = false;
that.formVisible = false;
that.form = getFormData();
that.renderData();
})
.catch(er => {
that.submitLoading = false;
console.error(er);
this.$emit("fail");
});
return;
}
addRegionAssistConfig(that.form).then(res => {
that.submitLoading = false
that.formVisible = false
that.form = getFormData()
that.renderData()
}).catch(er => {
that.submitLoading = false
console.error(er)
})
addRegionAssistConfig(that.form)
.then(res => {
that.submitLoading = false;
that.formVisible = false;
that.form = getFormData();
that.renderData();
})
.catch(er => {
that.submitLoading = false;
console.error(er);
});
} else {
console.error('error submit!!')
return false
console.error("error submit!!");
return false;
}
})
});
},
handleClose() {
this.formVisible = false
this.formVisible = false;
},
handleCreate() {
this.formVisible = true
this.textOptTitle = '添加'
this.form = getFormData()
this.formVisible = true;
this.textOptTitle = "添加";
this.form = getFormData();
},
getDesc(row) {
if (row.type === 'WITHDRAW_PROPORTION_TIPS'|| row.type === 'COIN_SELLER_WITHDRAW_PROPORTION_TIPS') {
const obj = JSON.parse(row.data)
return '(1$ : ' + obj.value + ') 范围:' + obj.start + '~' + obj.end + ' 提示:' + obj.text
if (
row.type === "WITHDRAW_PROPORTION_TIPS" ||
row.type === "COIN_SELLER_WITHDRAW_PROPORTION_TIPS"
) {
const obj = JSON.parse(row.data);
return (
"(1$ : " +
obj.value +
") 范围:" +
obj.start +
"~" +
obj.end +
" 提示:" +
obj.text
);
}
if (row.type === 'WITHDRAW_PROPORTION_DIAMOND_TIPS' || row.type === 'WITHDRAW_PROPORTION_DIAMOND_USD_TIPS') {
const obj = JSON.parse(row.data)
return '(1钻石 : ' + obj.value + ') 范围:' + obj.start + '~' + obj.end + ' 提示:' + obj.text
if (
row.type === "WITHDRAW_PROPORTION_DIAMOND_TIPS" ||
row.type === "WITHDRAW_PROPORTION_DIAMOND_USD_TIPS"
) {
const obj = JSON.parse(row.data);
return (
"(1钻石 : " +
obj.value +
") 范围:" +
obj.start +
"~" +
obj.end +
" 提示:" +
obj.text
);
}
return row.data
return row.data;
},
handleUpdate(row) {
this.textOptTitle = '修改'
this.formVisible = true
this.textOptTitle = "修改";
this.formVisible = true;
const resForm = Object.assign({}, row)
this.form = resForm
if (resForm.type === 'WITHDRAW_PROPORTION_TIPS' ||resForm.type==='COIN_SELLER_WITHDRAW_PROPORTION_TIPS' || row.type === 'WITHDRAW_PROPORTION_DIAMOND_TIPS' || row.type === 'WITHDRAW_PROPORTION_DIAMOND_USD_TIPS') {
this.data = JSON.parse(resForm.data)
const resForm = Object.assign({}, row);
this.form = resForm;
if (
resForm.type === "WITHDRAW_PROPORTION_TIPS" ||
resForm.type === "COIN_SELLER_WITHDRAW_PROPORTION_TIPS" ||
row.type === "WITHDRAW_PROPORTION_DIAMOND_TIPS" ||
row.type === "WITHDRAW_PROPORTION_DIAMOND_USD_TIPS"
) {
this.data = JSON.parse(resForm.data);
}
},
handleDelete(row) {
const that = this
that.$confirm('确认删除吗?', '提示', {
type: 'warning'
}).then(() => {
that.listLoading = true
deleteRegionAssistConfig(row.id).then((res) => {
that.listLoading = false
that.$message.success('删除成功')
that.renderData()
const that = this;
that
.$confirm("确认删除吗?", "提示", {
type: "warning"
})
}).catch(() => {
})
.then(() => {
that.listLoading = true;
deleteRegionAssistConfig(row.id).then(res => {
that.listLoading = false;
that.$message.success("删除成功");
that.renderData();
});
})
.catch(() => {});
}
}
}
};
</script>