This commit is contained in:
dute7liang
2024-01-20 01:43:40 +08:00
parent 3e45791613
commit 4a7d83fb62
9 changed files with 113 additions and 47 deletions

View File

@@ -60,7 +60,9 @@
<el-table-column label="业务操作" align="center" prop="cateAdminName" /> <el-table-column label="业务操作" align="center" prop="cateAdminName" />
<el-table-column label="说明" align="center" prop="cateAdminName" min-width="200"> <el-table-column label="说明" align="center" prop="cateAdminName" min-width="200">
<template v-slot="scope"> <template v-slot="scope">
<span>{{scope.row.showMessage}}</span><image-preview v-if="scope.row.tarImg" :src="scope.row.tarImg" :width="30" :height="30"/> <div class="context-avatar-center">
<span>{{scope.row.showMessage}}</span><image-preview v-if="scope.row.tarImg" :src="scope.row.tarImg" :width="32" :height="32"/>
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="变动" align="center" prop="changeValue" /> <el-table-column label="变动" align="center" prop="changeValue" />
@@ -225,3 +227,11 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped>
.context-avatar-center {
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中 */
}
</style>

View File

@@ -63,6 +63,15 @@
<el-descriptions-item label="最后登录时间"> <el-descriptions-item label="最后登录时间">
{{info.userInfo.lastLoginTime}} {{info.userInfo.lastLoginTime}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="视频分成">
{{info.anchor.videoRate}}
</el-descriptions-item>
<el-descriptions-item label="守护分成">
{{info.anchor.guardRate}}
</el-descriptions-item>
<el-descriptions-item label="礼物分成">
{{info.anchor.giftRate}}
</el-descriptions-item>
<el-descriptions-item label="最后登录位置"> <el-descriptions-item label="最后登录位置">
{{info.userInfo.lastLocation}} {{info.userInfo.lastLocation}}
</el-descriptions-item> </el-descriptions-item>

View File

@@ -90,9 +90,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="评分" align="center" prop="giveScore" /> <el-table-column label="评分" align="center" prop="giveScore" />
<el-table-column label="视频分成" align="center" prop="videoRate" /> <!-- <el-table-column label="视频分成" align="center" prop="videoRate" />
<el-table-column label="守护分成" align="center" prop="guardRate" /> <el-table-column label="守护分成" align="center" prop="guardRate" />
<el-table-column label="礼物分成" align="center" prop="giftRate" /> <el-table-column label="礼物分成" align="center" prop="giftRate" />-->
<el-table-column label="服务总次数" align="center" prop="serviceCount" /> <el-table-column label="服务总次数" align="center" prop="serviceCount" />
<el-table-column label="服务总时长" align="center" prop="serviceTime" /> <el-table-column label="服务总时长" align="center" prop="serviceTime" />
<el-table-column label="状态" align="center" prop="status" > <el-table-column label="状态" align="center" prop="status" >

View File

@@ -5,13 +5,13 @@
<el-input v-model="form.usercode" disabled /> <el-input v-model="form.usercode" disabled />
</el-form-item> </el-form-item>
<el-form-item label="守护分成" prop="guardRate"> <el-form-item label="守护分成" prop="guardRate">
<el-input v-model="form.guardRate" /> <el-input-number v-model="form.guardRate" :precision="2" :step="0.01" :min="0" :max="0.6" style="width: 90%"/>
</el-form-item> </el-form-item>
<el-form-item label="礼物分成" prop="giftRate"> <el-form-item label="礼物分成" prop="giftRate">
<el-input v-model="form.giftRate" /> <el-input-number v-model="form.giftRate" :precision="2" :step="0.01" :min="0" :max="0.6" style="width: 90%"/>
</el-form-item> </el-form-item>
<el-form-item label="视频分成" prop="videoRate"> <el-form-item label="视频分成" prop="videoRate">
<el-input v-model="form.videoRate" /> <el-input-number v-model="form.videoRate" :precision="2" :step="0.01" :min="0" :max="0.6" style="width: 90%"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">

View File

@@ -57,9 +57,9 @@
</el-table-column> </el-table-column>
<el-table-column label="拦截对象" align="center" prop="member"> <el-table-column label="拦截对象" align="center" prop="member">
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.type === 1"> <div class="context-avatar-center" v-if="scope.row.type === 1">
{{scope.row.memberNickname}}{{scope.row.member}}<image-avatar :src="scope.row.memberAvatar"/> {{scope.row.memberNickname}}{{scope.row.member}}<image-avatar :src="scope.row.memberAvatar"/>
</span> </div>
<span v-if="scope.row.type !== 1"> <span v-if="scope.row.type !== 1">
{{scope.row.member}} {{scope.row.member}}
</span> </span>
@@ -161,3 +161,10 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped>
.context-avatar-center {
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中 */
}
</style>

View File

@@ -2,10 +2,18 @@
<el-dialog title="封禁" :close-on-click-modal="false" :visible.sync="open" width="700px" append-to-body> <el-dialog title="封禁" :close-on-click-modal="false" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="封禁用户" prop=""> <el-form-item label="封禁用户" prop="">
{{ info.nickname }} {{ info.usercode }} <image-avatar :src="info.avatar"/> <div class="context-avatar-center">
{{ info.nickname }} {{ info.usercode }} <image-avatar :src="info.avatar"/>
</div>
</el-form-item>
<el-form-item label="封禁IP确认" v-if="ipShow">
<el-input v-model="info.lastLoginIp" disabled />
</el-form-item>
<el-form-item label="封禁设备确认" v-if="uuidShow">
<el-input v-model="info.mic" disabled />
</el-form-item> </el-form-item>
<el-form-item label="封禁类型" prop="type"> <el-form-item label="封禁类型" prop="type">
<el-checkbox-group v-model="form.type"> <el-checkbox-group v-model="form.type" @change="typeChange">
<el-checkbox :label="1">用户</el-checkbox> <el-checkbox :label="1">用户</el-checkbox>
<el-checkbox :label="2">设备</el-checkbox> <el-checkbox :label="2">设备</el-checkbox>
<el-checkbox :label="3">登录IP</el-checkbox> <el-checkbox :label="3">登录IP</el-checkbox>
@@ -21,7 +29,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="理由" prop="reason"> <el-form-item label="理由" prop="reason">
<el-input v-model="form.reason" placeholder="请输入理由" /> <el-input v-model="form.reason" placeholder="请输入理由" type="textarea" :rows="2"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -68,6 +76,8 @@ export default {
] ]
}, },
buttonLoading: false, buttonLoading: false,
ipShow: false,
uuidShow: false
} }
}, },
created() { created() {
@@ -79,8 +89,14 @@ export default {
this.form.type = [] this.form.type = []
this.form.forbidTime = undefined this.form.forbidTime = undefined
this.form.reason = undefined this.form.reason = undefined
this.ipShow = false
this.uuidShow = false
this.open = true; this.open = true;
}, },
typeChange(value){
this.ipShow = value.includes(3)
this.uuidShow = value.includes(2)
},
// 表单提交 // 表单提交
submitForm () { submitForm () {
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
@@ -100,3 +116,10 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped>
.context-avatar-center {
display: flex;
align-items: center; /* 垂直居中 */
//justify-content: center; /* 水平居中 */
}
</style>

View File

@@ -26,57 +26,60 @@
</el-form> </el-form>
<el-table v-loading="loading" :data="userForbidList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userForbidList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center"/>
<el-table-column label="类型" align="center" prop="type" > <el-table-column label="类型" align="center" prop="type">
<template v-slot="scope"> <template v-slot="scope">
<cai-dict-tag :options="forbidTypeList" :value="scope.row.type" /> <cai-dict-tag :options="forbidTypeList" :value="scope.row.type"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="封号对象" align="center" prop="member"> <el-table-column label="封号对象" align="center" prop="member">
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.type === 1"> <div class="context-avatar-center" v-if="scope.row.type === 1">
{{scope.row.nickname}}{{scope.row.member}}<image-avatar :src="scope.row.avatar"/> {{ scope.row.nickname }}{{ scope.row.member }}
</span> <image-avatar :src="scope.row.avatar"/>
</div>
<span v-if="scope.row.type !== 1"> <span v-if="scope.row.type !== 1">
{{scope.row.member}} {{ scope.row.member }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="开始时间" align="center" prop="beginTime" /> <el-table-column label="开始时间" align="center" prop="beginTime"/>
<el-table-column label="结束时间" align="center" prop="endTime" /> <el-table-column label="结束时间" align="center" prop="endTime"/>
<el-table-column label="最后封禁理由" align="center" prop="reason" /> <el-table-column label="最后封禁理由" align="center" prop="reason"/>
<el-table-column label="状态" align="center" prop="forbidStatus" > <el-table-column label="状态" align="center" prop="forbidStatus">
<template v-slot="scope"> <template v-slot="scope">
<cai-dict-tag :options="forbidStatusList" :value="scope.row.forbidStatus" /> <cai-dict-tag :options="forbidStatusList" :value="scope.row.forbidStatus"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="120"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="120">
<template v-slot="scope"> <template v-slot="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
v-if="scope.row.forbidStatus === 1" v-if="scope.row.forbidStatus === 1"
@click="handleForbid(scope.row)" @click="handleForbid(scope.row)"
>解封</el-button> >解封
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@click="handleForbidLogInfo(scope.row)" @click="handleForbidLogInfo(scope.row)"
>封禁记录</el-button> >封禁记录
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<user-forbid-log-list v-if="userForbidLogListVisible" ref="userForbidLogList" /> <user-forbid-log-list v-if="userForbidLogListVisible" ref="userForbidLogList"/>
</div> </div>
</template> </template>
@@ -87,12 +90,12 @@ import UserForbidLogList from "@/views/cai/userForbid/user-forbid-log-list";
export default { export default {
name: "UserForbid", name: "UserForbid",
components:{ components: {
UserForbidLogList UserForbidLogList
}, },
data() { data() {
return { return {
forbidTimeList,forbidTypeList,forbidStatusList, forbidTimeList, forbidTypeList, forbidStatusList,
userForbidLogListVisible: false, userForbidLogListVisible: false,
// 遮罩层 // 遮罩层
loading: true, loading: true,
@@ -145,10 +148,10 @@ export default {
// 多选框选中数据 // 多选框选中数据
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.id) this.ids = selection.map(item => item.id)
this.single = selection.length!==1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
handleForbid(row){ handleForbid(row) {
this.$modal.confirm('是否确认解封对象:"' + row.member + '"的数据项?').then(() => { this.$modal.confirm('是否确认解封对象:"' + row.member + '"的数据项?').then(() => {
this.loading = true; this.loading = true;
return unForbid(row.id); return unForbid(row.id);
@@ -161,7 +164,7 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
handleForbidLogInfo(row){ handleForbidLogInfo(row) {
this.userForbidLogListVisible = true this.userForbidLogListVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.userForbidLogList.init(row.member) this.$refs.userForbidLogList.init(row.member)
@@ -170,3 +173,10 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped>
.context-avatar-center {
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中 */
}
</style>

View File

@@ -45,9 +45,9 @@
</el-table-column> </el-table-column>
<el-table-column label="封号对象" align="center" prop="member" > <el-table-column label="封号对象" align="center" prop="member" >
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.type === 1"> <div class="context-avatar-center" v-if="scope.row.type === 1">
{{scope.row.nickname}}{{scope.row.member}}<image-avatar :src="scope.row.avatar"/> {{scope.row.nickname}}{{scope.row.member}}<image-avatar :src="scope.row.avatar"/>
</span> </div>
<span v-if="scope.row.type !== 1"> <span v-if="scope.row.type !== 1">
{{scope.row.member}} {{scope.row.member}}
</span> </span>
@@ -137,3 +137,10 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped>
.context-avatar-center {
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中 */
}
</style>

View File

@@ -5,16 +5,16 @@
<el-input v-model="form.usercode" disabled /> <el-input v-model="form.usercode" disabled />
</el-form-item> </el-form-item>
<el-form-item label="好友守护分成" prop="guardIncomeRate"> <el-form-item label="好友守护分成" prop="guardIncomeRate">
<el-input v-model="form.guardIncomeRate" /> <el-input-number v-model="form.guardIncomeRate" :precision="2" :step="0.01" :min="0" :max="0.6" style="width: 90%"/>
</el-form-item> </el-form-item>
<el-form-item label="好友礼物分成" prop="giftIncomeRate"> <el-form-item label="好友礼物分成" prop="giftIncomeRate">
<el-input v-model="form.giftIncomeRate" /> <el-input-number v-model="form.giftIncomeRate" :precision="2" :step="0.01" :min="0" :max="0.6" style="width: 90%"/>
</el-form-item> </el-form-item>
<el-form-item label="好友视频分成" prop="videoIncomeRate"> <el-form-item label="好友视频分成" prop="videoIncomeRate">
<el-input v-model="form.videoIncomeRate" /> <el-input-number v-model="form.videoIncomeRate" :precision="2" :step="0.01" :min="0" :max="0.6" style="width: 90%"/>
</el-form-item> </el-form-item>
<el-form-item label="好友充值分成" prop="payIncomeRate"> <el-form-item label="好友充值分成" prop="payIncomeRate">
<el-input v-model="form.payIncomeRate" /> <el-input-number v-model="form.payIncomeRate" :precision="2" :step="0.01" :min="0" :max="0.6" style="width: 90%"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">