This commit is contained in:
PQZ 2025-03-22 00:06:11 +08:00
parent aaa95008cf
commit d5b6bc69a7
8 changed files with 647 additions and 83 deletions

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询博主名片列表
export function listCard(query) {
return request({
url: '/member/busiCard/list',
method: 'get',
params: query
})
}
// 查询博主名片详细
export function getCard(id) {
return request({
url: '/member/busiCard/' + id,
method: 'get'
})
}
// 新增博主名片
export function addCard(data) {
return request({
url: '/member/busiCard',
method: 'post',
data: data
})
}
// 修改博主名片
export function updateCard(data) {
return request({
url: '/member/busiCard',
method: 'put',
data: data
})
}
// 删除博主名片
export function delCard(id) {
return request({
url: '/member/busiCard/' + id,
method: 'delete'
})
}

View File

@ -47,9 +47,6 @@
<el-tag v-if="scope.row.status == 0" type="success">正常</el-tag>
<el-tag v-if="scope.row.status == 1" type="danger">冻结</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status">
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">

View File

@ -83,12 +83,12 @@
<el-row>
<el-col :span="12">
<el-form-item label="通告主" prop="nickname">
<el-input :disabled="true" v-model="form.nickname" placeholder="请输入申请者昵称"/>
<el-input :readonly="true" v-model="form.nickname" placeholder="请输入申请者昵称"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份类型" prop="identityType">
<el-select :disabled="true" v-model="form.identityType" placeholder="请选择申请认证的通告主身份类型">
<el-select :readonly="true" v-model="form.identityType" placeholder="请选择申请认证的通告主身份类型">
<el-option
v-for="dict in dict.type.dl_identity_type"
:key="dict.value"
@ -100,17 +100,17 @@
</el-col>
<el-col :span="24">
<el-form-item label="申请描述">
<el-input :disabled="true" type="textarea" v-model="form.content" placeholder="请输入申请描述"/>
<el-input :readonly="true" type="textarea" v-model="form.content" placeholder="请输入申请描述"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input :disabled="true" type="textarea" v-model="form.remark" placeholder="请输入内容"/>
<el-input :readonly="true" type="textarea" v-model="form.remark" placeholder="请输入内容"/>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="附件" prop="images">
<ImageUpload v-model="form.images" :disabled="true"></ImageUpload>
<ImageUpload v-model="form.images" :isShowTip="false" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
@ -122,8 +122,8 @@
</div>
<el-row>
<el-col :span="12">
<el-form-item label="审核状态" prop="identityType">
<el-select :disabled="true" v-model="form.approvalStatus" placeholder="待审核">
<el-form-item label="审核状态" prop="approvalStatus">
<el-select :readonly="true" v-model="form.approvalStatus" placeholder="待审核">
<el-option
v-for="item in statusOptions"
:key="item.value"
@ -135,7 +135,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="审核备注" prop="approvalRemark">
<el-input :disabled="true" v-model="form.approvalRemark" type="textarea" placeholder="请输入内容"/>
<el-input :readonly="true" v-model="form.approvalRemark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-row>
@ -166,7 +166,7 @@ export default {
value: '1',
label: '通过'
}, {
value: '2',
value: '9',
label: '不通过'
}],
//
@ -268,5 +268,13 @@ export default {
</script>
<style scoped>
/deep/.el-dialog__body {
padding: 0px 10px;
color: #606266;
font-size: 14px;
word-break: break-all;
}
/deep/.el-form-item {
margin-bottom: 10px;
}
</style>

View File

@ -130,7 +130,7 @@
</el-col>
<el-col>
<el-form-item label="附件" prop="images">
<ImageUpload v-model="form.images" :disabled="true"></ImageUpload>
<ImageUpload v-model="form.images" :isShowTip="false" :disabled="true"></ImageUpload>
</el-form-item>
</el-col>
</el-row>
@ -138,11 +138,11 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>审核信息</span>
<span style="color:red">*</span><span>审核信息</span>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="审核状态" prop="identityType">
<el-form-item label="审核状态" prop="approvalStatus">
<el-select v-model="form.approvalStatus" placeholder="待审核">
<el-option
v-for="item in statusOptions"
@ -335,3 +335,14 @@ export default {
}
};
</script>
<style scoped>
/deep/.el-dialog__body {
padding: 0px 10px;
color: #606266;
font-size: 14px;
word-break: break-all;
}
/deep/.el-form-item {
margin-bottom: 10px;
}
</style>

View File

@ -5,7 +5,7 @@
<el-form-item label="昵称" prop="nickName">
<el-input
v-model="queryParams.nickName"
placeholder="请输入博主姓名"
placeholder="请输入博主昵称"
clearable
@keyup.enter.native="handleQuery"
/>
@ -22,7 +22,13 @@
<el-table-column label="昵称" align="center" prop="nickName" />
<el-table-column label="会员" align="center" prop="memberCardName" />
<el-table-column label="联系方式" align="center" prop="tel" />
<el-table-column label="剩余积分" align="center" prop="bPoints" />
<el-table-column label="剩余积分" align="center" prop="bpoints" />
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 0" type="success">正常</el-tag>
<el-tag v-if="scope.row.status == 1" type="danger">冻结</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -32,11 +38,19 @@
v-hasPermi="['member:member:edit']"
>查看</el-button>
<el-button
v-if="scope.row.status == 0"
size="mini"
type="text"
@click="update(scope.row)"
@click="update(scope.row.userId,1)"
v-hasPermi="['member:member:remove']"
>冻结</el-button>
<el-button
v-if="scope.row.status == 1"
size="mini"
type="text"
@click="update(scope.row.userId,0)"
v-hasPermi="['member:member:remove']"
>解冻</el-button>
</template>
</el-table-column>
</el-table>
@ -49,45 +63,12 @@
@pagination="getList"
/>
<!-- 添加或修改会员对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="联系方式" prop="tel">
<el-input v-model="form.tel" placeholder="请输入联系方式" />
</el-form-item>
<el-form-item label="博主-本月通告发布剩余额度" prop="tRemaining">
<el-input v-model="form.tRemaining" placeholder="请输入博主-本月通告发布剩余额度" />
</el-form-item>
<el-form-item label="博主-个人累计已发布通告数量" prop="tTotalNum">
<el-input v-model="form.tTotalNum" placeholder="请输入博主-个人累计已发布通告数量" />
</el-form-item>
<el-form-item label="博主-个人粉丝数量" prop="tFansNum">
<el-input v-model="form.tFansNum" placeholder="请输入博主-个人粉丝数量" />
</el-form-item>
<el-form-item label="博主-是否开启报名免打扰(0否|1开启)" prop="tOpenDisturb">
<el-input v-model="form.tOpenDisturb" placeholder="请输入博主-是否开启报名免打扰(0否|1开启)" />
</el-form-item>
<el-form-item label="博主-收款码姓名" prop="tRecipientName">
<el-input v-model="form.tRecipientName" placeholder="请输入博主-收款码姓名" />
</el-form-item>
<el-form-item label="博主-收款码图片地址" prop="tRecipientImage">
<image-upload v-model="form.tRecipientImage"/>
</el-form-item>
<el-form-item label="博主-剩余积分" prop="bPoints">
<el-input v-model="form.bPoints" placeholder="请输入博主-剩余积分" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listMember, getMember, delMember, addMember, updateMember } from "@/api/member/member";
import { changeUserStatus } from "@/api/system/user";
export default {
name: "Blogger",
dicts: ['dl_identity_type'],
@ -139,34 +120,15 @@ export default {
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
userType: null,
identityType: null,
userId: null,
tel: null,
tRemaining: null,
tTotalNum: null,
tFansNum: null,
tOpenDisturb: null,
tRecipientName: null,
tRecipientImage: null,
bPoints: null,
creator: null,
createTime: null,
updater: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
/**冻结解冻*/
update(userId,status){
changeUserStatus(userId,status).then(response => {
this.$modal.msgSuccess("处理成功");
this.open = false;
this.getList();
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -181,7 +143,6 @@ export default {
/** 修改按钮操作 */
detail(row) {
this.reset();
// const id = row.id || this.ids
// getMember(id).then(response => {
// this.form = response.data;
@ -190,9 +151,7 @@ export default {
// });
},
update(){
},

View File

@ -0,0 +1,226 @@
<template>
<el-drawer title="博主名片审核" :append-to-body="true" :visible.sync="drawer" size="55%">
<el-card class="box-card">
<el-descriptions class="margin-top" :column="3" size="medium" border>
<el-descriptions-item>
<template slot="label">
昵称
</template>
{{ form.nickname }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
平台
</template>
{{ form.platformName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
账号id
</template>
{{ form.accountNumber }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
账号昵称
</template>
{{ form.accountName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
粉丝数量
</template>
{{ form.fansNum }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
粉丝数量
</template>
{{ form.tel }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
商单自报价
</template>
{{ form.price }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
收货地址
</template>
{{ form.address }}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>其他内容</span>
</div>
<el-input
type="textarea"
:rows="2"
placeholder="无"
readonly
v-model="form.content">
</el-input>
</el-card>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>佐证材料</span>
</div>
<ImageUpload v-model="form.image" :isShowTip="false" :disabled="true"></ImageUpload>
</el-card>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="color:red">*</span><span>审核信息</span>
</div>
<el-row>
<el-form ref="form" :model="form" label-width="80px">
<el-col :span="12">
<el-form-item label="审核状态" prop="identityType">
<el-select :readonly="isDetail" v-model="form.approvalStatus" placeholder="待审核">
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="审核备注" prop="approvalRemark">
<el-input :readonly="isDetail" v-model="form.approvalRemark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-form>
</el-row>
</el-card>
<div v-if="!isDetail" style="text-align: right;margin-right: 20px;margin-top:20px">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-drawer>
</template>
<script>
import {getCard,updateCard} from "@/api/member/busiCard";
export default {
name: "BusiCardForm",
props:{
/**是否详情 */
isDetail: {
type: Boolean,
default: false,
},
},
data() {
return {
//
drawer: false,
//id
id: null,
//
form: {},
statusOptions: [{
value: '0',
label: '待审核'
}, {
value: '1',
label: '通过'
}, {
value: '9',
label: '不通过'
}],
}
},
methods: {
/**初始化抽屉*/
initDraw(id) {
this.drawer = true
this.getCardById(id)
},
/**表单重置*/
reset() {
this.form = {
id: null,
userId: null,
nickname: null,
platformCode: null,
platformName: null,
accountNumber: null,
accountName: null,
fansNum: null,
image: null,
tel: null,
price: null,
content: null,
addrId: null,
approvalStatus: null,
approvalUserId: null,
approvalTime: null,
approvalRemark: null,
creator: null,
createTime: null,
updater: null,
updateTime: null,
delFlag: null
};
},
/**取消按钮*/
cancel() {
this.drawer = false;
this.reset();
},
/** 查看名片片详情 */
getCardById(id) {
this.reset();
getCard(id).then(response => {
this.form = response.data;
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateCard(this.form).then(response => {
this.$modal.msgSuccess("审核成功");
this.drawer = false;
this.$emit('success')
});
}
}
});
},
}
}
</script>
<style scoped>
/deep/.el-drawer__header {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
color: #72767b;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
margin-bottom: 10px;
padding: 10px;
padding-bottom: 0;
}
/deep/.el-card__body {
padding: 5px 5px 5px 9px;
}
/deep/.el-card__header {
padding: 7px 5px 5px;
min-height: 35px;
}
</style>

View File

@ -0,0 +1,157 @@
<template>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="80%" >
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="博主昵称" prop="nickname">
<el-input
v-model="queryParams.nickname"
placeholder="请输入博主昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="平台名称" prop="platformName">
<el-input
v-model="queryParams.platformName"
placeholder="请输入平台名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="平台昵称" prop="accountName">
<el-input
v-model="queryParams.accountName"
placeholder="请输入账号昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="cardList">
<el-table-column label="博主昵称" align="center" prop="nickname" />
<el-table-column label="平台名称" align="center" prop="platformName" />
<el-table-column label="账号id" align="center" prop="accountNumber" />
<el-table-column label="平台昵称" align="center" prop="accountName" />
<el-table-column label="粉丝数量" align="center" prop="fansNum" />
<el-table-column label="联系方式" align="center" prop="tel" />
<el-table-column label="商单自报价" align="center" prop="price" />
<el-table-column label="审核状态" align="center" prop="approvalStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.dl_approval_status" :value="scope.row.approvalStatus"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="detail(scope.row.id)"
>查看详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
<BusiCardForm ref="refForm" :isDetail="true" @success="getList"/>
</el-dialog>
</template>
<script>
import { listCard } from "@/api/member/busiCard";
import BusiCardForm from "@/views/member/busiCard/form/busiCardForm.vue"
export default {
name: "CardCheckHis",
dicts: ['dl_approval_status'],
components: {
BusiCardForm
},
data(){
return{
//
dialogTitle: "审核历史",
//
dialogVisible: false,
open:false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
nickname: null,
platformName: null,
accountName: null,
approvalStatus: 10,
},
//
loading: true,
//
showSearch: true,
//
total: 0,
//
cardList: [],
}
},
methods: {
initForm(){
this.dialogVisible = true;
this.getList()
},
/** 查询通告主认证申请列表 */
getList() {
this.loading = true;
this.loading = true;
listCard(this.queryParams).then(response => {
this.cardList = response.data.records;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.startEndTime = []
this.resetForm("queryForm");
this.handleQuery();
},
/** 详情 */
detail(id) {
this.$refs['refForm'].initDraw(id)
},
}
}
</script>
<style scoped>
/deep/.el-dialog__body {
padding: 0px 10px;
color: #606266;
font-size: 14px;
word-break: break-all;
}
</style>

View File

@ -0,0 +1,162 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="博主昵称" prop="nickname">
<el-input
v-model="queryParams.nickname"
placeholder="请输入博主昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="平台名称" prop="platformName">
<el-input
v-model="queryParams.platformName"
placeholder="请输入平台名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="平台昵称" prop="accountName">
<el-input
v-model="queryParams.accountName"
placeholder="请输入账号昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="info"
plain
size="mini"
@click="openHis"
>审核历史
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="cardList">
<el-table-column label="博主昵称" align="center" prop="nickname" />
<el-table-column label="平台名称" align="center" prop="platformName" />
<el-table-column label="账号id" align="center" prop="accountNumber" />
<el-table-column label="平台昵称" align="center" prop="accountName" />
<el-table-column label="粉丝数量" align="center" prop="fansNum" />
<el-table-column label="联系方式" align="center" prop="tel" />
<el-table-column label="商单自报价" align="center" prop="price" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleCheck(scope.row.id)"
>审核</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<BusiCardForm ref="refForm" @success="getList"/>
<CardCheckHis ref="hisFormRef" @success="getList"/>
</div>
</template>
<script>
import { listCard, getCard, delCard, addCard, updateCard } from "@/api/member/busiCard";
import BusiCardForm from "@/views/member/busiCard/form/busiCardForm.vue"
import CardCheckHis from "@/views/member/busiCard/form/cardCheckHis.vue"
export default {
name: "BusiCard",
components: {
BusiCardForm,CardCheckHis
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
cardList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
nickname: null,
platformName: null,
accountName: null,
approvalStatus: 0,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询博主名片列表 */
getList() {
this.loading = true;
listCard(this.queryParams).then(response => {
this.cardList = response.data.records;
this.total = response.data.total;
this.loading = false;
});
},
/** 跳转审核界面*/
handleCheck(id){
this.$refs['refForm'].initDraw(id)
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 审核历史*/
openHis(){
this.$refs["hisFormRef"].initForm()
},
/** 导出按钮操作 */
handleExport() {
this.download('member/card/export', {
...this.queryParams
}, `card_${new Date().getTime()}.xlsx`)
}
}
};
</script>