封禁bug

This commit is contained in:
helen 2024-12-27 14:18:06 +08:00
parent 95a14f596c
commit 9768b04c88
7 changed files with 214 additions and 21 deletions

View File

@ -43,9 +43,9 @@ export const addBanned = (data: BannedForm) => {
* *
* @param data * @param data
*/ */
export const updateBanned = (data: BannedForm) => { export const updatemanage = (data: BannedForm) => {
return request({ return request({
url: '/manage/banned', url: '/manage/report',
method: 'put', method: 'put',
data: data data: data
}); });

View File

@ -95,3 +95,14 @@ export const productCategoryall = (query?: MkJigsawQuery): AxiosPromise<MkJigsaw
params: query params: query
}); });
}; };
/**
*
* @param query
*/
export const mkJoinlist = (query?: MkJigsawQuery): AxiosPromise<MkJigsawVO[]> => {
return request({
url: '/manage/mkJoin/list',
method: 'get',
params: query
});
};

View File

@ -136,7 +136,7 @@ const onClick = (e: any) => {
data.result.address_component.city + data.result.address_component.city +
data.result.address_component.district + data.result.address_component.district +
data.result.address_component.street + data.result.address_component.street +
data.result.address_component.street_number +data.result.title; data.result.address_component.street_number + data.result.formatted_addresses.recommend;
form.value.latitude = data.result.location.lat; form.value.latitude = data.result.location.lat;
form.value.longitude = data.result.location.lng; form.value.longitude = data.result.location.lng;
// form.value.address = data.result.formatted_addresses.recommend; // form.value.address = data.result.formatted_addresses.recommend;

View File

@ -10,7 +10,8 @@
<el-form-item label="发布状态" prop="status"> <el-form-item label="发布状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择发布状态" style="width: 200px" @keyup.enter="handleQuery"> <el-select v-model="queryParams.status" placeholder="请选择发布状态" style="width: 200px" @keyup.enter="handleQuery">
<el-option label="未发布" value="0" /> <el-option label="未发布" value="0" />
<el-option label="已发布" value="1" /> <el-option label="已发布" value="2" />
<el-option label="审核中" value="1" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -36,7 +37,8 @@
<el-table-column label="联系方式" align="center" prop="number" /> <el-table-column label="联系方式" align="center" prop="number" />
<el-table-column label="状态" align="center" prop="status"> <el-table-column label="状态" align="center" prop="status">
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.status == 1" type="primary">已发布</el-tag> <el-tag v-if="scope.row.status == 1" type="success">审核中</el-tag>
<el-tag v-if="scope.row.status == 2" type="primary">已发布</el-tag>
<el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag> <el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag>
</template> </template>
</el-table-column> </el-table-column>
@ -44,16 +46,16 @@
<el-table-column label="更新时间" align="center" prop="updateTime" width="180" /> <el-table-column label="更新时间" align="center" prop="updateTime" width="180" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-tooltip v-if="scope.row.status != 1" content="编辑" placement="top"> <el-tooltip v-if="scope.row.status == 0" content="编辑" placement="top">
<el-button v-hasPermi="['manage:hotel:edit']" link type="primary" @click="handleUpdate(scope.row)">编辑</el-button> <el-button v-hasPermi="['manage:hotel:edit']" link type="primary" @click="handleUpdate(scope.row)">编辑</el-button>
</el-tooltip> </el-tooltip>
<el-tooltip v-if="scope.row.status != 1" content="删除" placement="top"> <el-tooltip v-if="scope.row.status == 0" content="删除" placement="top">
<el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleDelete(scope.row)">删除</el-button> <el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleDelete(scope.row)">删除</el-button>
</el-tooltip> </el-tooltip>
<el-tooltip v-if="scope.row.status == 0" content="发布" placement="top"> <el-tooltip v-if="scope.row.status == 0" content="发布" placement="top">
<el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleEdit(scope.row)">发布</el-button> <el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleEdit(scope.row)">发布</el-button>
</el-tooltip> </el-tooltip>
<el-tooltip v-if="scope.row.status == 1" content="撤销发布" placement="top"> <el-tooltip v-if="scope.row.status == 2" content="撤销发布" placement="top">
<el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleEdit(scope.row)">撤销发布</el-button> <el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleEdit(scope.row)">撤销发布</el-button>
</el-tooltip> </el-tooltip>
</template> </template>
@ -282,6 +284,7 @@ const handleUpdate = async (row?: HotelVO) => {
Object.assign(form.value, res.data); Object.assign(form.value, res.data);
center.value = { lat: row.latitude, lng: row.longitude }; center.value = { lat: row.latitude, lng: row.longitude };
geometries.value = [{ styleId: 'marker', position: { lat: row.latitude, lng: row.longitude } }]; geometries.value = [{ styleId: 'marker', position: { lat: row.latitude, lng: row.longitude } }];
searchLocation.value = form.value.address;
dialog.visible = true; dialog.visible = true;
dialog.title = '修改住宿'; dialog.title = '修改住宿';
}; };
@ -416,7 +419,7 @@ const onClick = (e: any) => {
data.result.address_component.district + data.result.address_component.district +
data.result.address_component.street + data.result.address_component.street +
data.result.address_component.street_number + data.result.address_component.street_number +
data.result.title; data.result.formatted_addresses.recommend;
form.value.latitude = data.result.location.lat; form.value.latitude = data.result.location.lat;
form.value.longitude = data.result.location.lng; form.value.longitude = data.result.location.lng;
// form.value.province = data.result.address_component.province; // form.value.province = data.result.address_component.province;

View File

@ -47,12 +47,12 @@
<el-table-column label="设置得奖人数" align="center" prop="awardConfigCount" /> <el-table-column label="设置得奖人数" align="center" prop="awardConfigCount" />
<el-table-column label="参与人数" align="center" prop="joinCount"> <el-table-column label="参与人数" align="center" prop="joinCount">
<template #default="scope"> <template #default="scope">
<el-button type="primary" link>{{ scope.row.joinCount }}</el-button> <el-button type="primary" link @click="handleJoin(scope.row)">{{ scope.row.joinCount }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="实际得奖人数" align="center" prop="awardCount"> <el-table-column label="实际得奖人数" align="center" prop="awardCount">
<template #default="scope"> <template #default="scope">
<el-button type="primary" link>{{ scope.row.awardCount }}</el-button> <el-button link type="primary" @click="handleAward(scope.row)">{{ scope.row.awardCount }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="拼图碎片获得人数" align="center" prop="awardCount"> <el-table-column label="拼图碎片获得人数" align="center" prop="awardCount">
@ -222,6 +222,64 @@
<el-table-column prop="joinCount" label="获得人数" /> <el-table-column prop="joinCount" label="获得人数" />
</el-table> </el-table>
</el-dialog> </el-dialog>
<!-- 获奖人员 -->
<el-dialog v-model="mkReward.visible" title="获奖人员" width="600px" append-to-body>
<div>
<el-table :data="mkRewardUserLists" border style="width: 100%">
<el-table-column prop="userId" label="用户ID" />
<el-table-column prop="nickName" label="昵称" />
<el-table-column prop="" label="获得奖品">
<template #default="scope">
<el-button link type="primary" @click="getproductInfo(scope.row.productId)">查看详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
<!-- 奖品详情 -->
<el-dialog v-model="productInfo.visible" title="奖品详情" width="600px" append-to-body>
<div>
<el-form ref="" :model="productInfo.form" label-width="70px">
<el-row :gutter="10" style="margin-bottom: 10px; margin-right: 5px !important">
<el-col :span="8">
<el-form-item label="商品名称" prop="">
<span>{{ productInfo.form.productName }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="商品类别" prop="">
<span>{{ formatCategoryName(productInfo.form.categoryId) }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="供应商" prop="">
<span>{{ formatVendorName(productInfo.form.vendorId) }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="商品图片" prop="">
<image-preview :src="productInfo.form.image" :width="100" :height="100" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商品说明" prop="">
<span>{{ productInfo.form.productShows }}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="cancelProductInfo()"> </el-button>
</div>
</template>
</el-dialog>
</div> </div>
</template> </template>
@ -234,9 +292,12 @@ import {
updateMkJigsaw, updateMkJigsaw,
productall, productall,
mkJigsawDetaillist, mkJigsawDetaillist,
productCategoryall productCategoryall, mkJoinlist
} from '@/api/manage/mkJigsaw'; } from "@/api/manage/mkJigsaw";
import { MkJigsawVO, MkJigsawQuery, MkJigsawForm } from '@/api/manage/mkJigsaw/types'; import { MkJigsawVO, MkJigsawQuery, MkJigsawForm } from '@/api/manage/mkJigsaw/types';
import { mkRewardUserList } from '@/api/manage/mkConfig';
import { listProductCategory } from '@/api/manage/productCategory';
import { getProduct } from '@/api/manage/product';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { mk_jigsaw_task_catagory } = toRefs<any>(proxy?.useDict('mk_jigsaw_task_catagory')); const { mk_jigsaw_task_catagory } = toRefs<any>(proxy?.useDict('mk_jigsaw_task_catagory'));
@ -266,7 +327,24 @@ const dialog = reactive<DialogOption>({
visible: false, visible: false,
title: '' title: ''
}); });
const mkRewardUserParams = reactive({
pageNum: 1,
pageSize: 10,
bizId: null
});
const mkReward = reactive({
visible: false
});
const productInfo = reactive({
visible: false,
form: {
image: null,
vendorId: null,
categoryId: null,
productName: null,
productShows: null
}
});
const mksave = reactive<DialogOption>({ const mksave = reactive<DialogOption>({
visible: false, visible: false,
title: '拼图详情' title: '拼图详情'
@ -364,6 +442,7 @@ const getList = async () => {
const cancel = () => { const cancel = () => {
reset(); reset();
dialog.visible = false; dialog.visible = false;
mkReward.visible = false;
}; };
/** 表单重置 */ /** 表单重置 */
@ -570,10 +649,80 @@ const mkdatetime = () => {
form.value.endDate = value2.value[1]; form.value.endDate = value2.value[1];
} }
}; };
//
const handleJoin = async () => {
const res = await mkJoinlist()
};
//
const cancelProductInfo = () => {
productInfo.visible = false;
};
/**
* 查看奖品详情
* @param productId
*/
const getproductInfo = async (productId: any) => {
const res = await getProduct(productId);
productInfo.form = res.data;
productInfo.visible = true;
};
const mkRewardUserLists = ref([]);
const handleAward = async (row: any) => {
loading.value = true;
mkRewardUserParams.bizId = row.id;
const res = await mkRewardUserList(mkRewardUserParams).finally(() => (loading.value = false));
mkRewardUserLists.value = res.rows;
mkReward.visible = true;
// dialog.title = "";
};
/**
* 供应商列表
*/
const listVendorList = ref([]);
const getlistVendor = async () => {
let res = await listVendor({ pageNum: 1, pageSize: 9999 });
listVendorList.value = res.rows;
};
/**
* 格式化 供应商名称
* @param id
*/
const formatVendorName = (id: any) => {
for (let i = 0; i < listVendorList.value.length; i++) {
const element = listVendorList.value[i];
if (element.id == id) {
return element.vendorName;
}
}
};
/**
* 商品类别列表
*/
const productCategoryList = ref([]);
const getProductCategoryList = async () => {
let res = await listProductCategory({ pageNum: 1, pageSize: 9999 });
productCategoryList.value = res.rows;
};
/**
* 格式化商品类别名称
* @param row
*/
const formatCategoryName = (id: any) => {
for (let i = 0; i < productCategoryList.value.length; i++) {
const element = productCategoryList.value[i];
if (element.id == id) {
return element.category;
}
}
};
onMounted(() => { onMounted(() => {
getList(); getList();
getproductall(); getproductall();
goodleibie(); goodleibie();
getlistVendor(); //
getProductCategoryList(); //
}); });
</script> </script>
<style> <style>

View File

@ -76,6 +76,13 @@
<el-table-column label="举报时间" align="center" prop="createTime" width="200px" /> <el-table-column label="举报时间" align="center" prop="createTime" width="200px" />
<el-table-column label="操作时间" align="center" prop="updateTime" width="200px" /> <el-table-column label="操作时间" align="center" prop="updateTime" width="200px" />
<el-table-column label="操作人" align="center" prop="updateName" width="150px" /> <el-table-column label="操作人" align="center" prop="updateName" width="150px" />
<el-table-column label="用户状态" align="center" prop="status" width="150px" >
<template #default="scope">
<el-tag v-if="scope.row.status == 1" type="info">禁言</el-tag>
<el-tag v-if="scope.row.status == 2" type="warning">封禁</el-tag>
<el-tag v-if="scope.row.status == 0" type="primary">正常</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="handlingStatus"> <el-table-column label="状态" align="center" prop="handlingStatus">
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.handlingStatus == 0" type="info">未处理</el-tag> <el-tag v-if="scope.row.handlingStatus == 0" type="info">未处理</el-tag>
@ -85,13 +92,31 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150px"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150px">
<template #default="scope"> <template #default="scope">
<el-button v-hasPermi="['manage:report:edit']" link type="primary" @click="handleUpdate(scope.row)">封禁</el-button> <el-button v-hasPermi="['manage:report:edit']" link type="primary" @click="handleUpdate(scope.row)">封禁</el-button>
<el-button v-if="queryParams.type == 1" v-hasPermi="['manage:report:remove']" link type="primary" @click="handleDelete(scope.row)" <el-button
v-if="queryParams.type == 1"
v-hasPermi="['manage:report:remove']"
link
type="primary"
:disabled="scope.row.status == 1"
@click="handleDelete(scope.row)"
>删除笔记</el-button >删除笔记</el-button
> >
<el-button v-if="queryParams.type == 2" v-hasPermi="['manage:report:remove']" link type="primary" @click="handleDelete(scope.row)" <el-button
v-if="queryParams.type == 2"
v-hasPermi="['manage:report:remove']"
link
type="primary"
:disabled="scope.row.status == 1"
@click="handleDelete(scope.row)"
>删除活动</el-button >删除活动</el-button
> >
<el-button v-if="queryParams.type == 3" v-hasPermi="['manage:report:remove']" link type="primary" @click="handleDelete(scope.row)" <el-button
v-if="queryParams.type == 3"
v-hasPermi="['manage:report:remove']"
link
type="primary"
:disabled="scope.row.status == 1"
@click="handleDelete(scope.row)"
>删除评论</el-button >删除评论</el-button
> >
</template> </template>
@ -131,7 +156,7 @@
</template> </template>
<script setup name="Banned" lang="ts"> <script setup name="Banned" lang="ts">
import { listBanned, getBanned, delBanned, addBanned, updateBanned, userLevelall } from '@/api/manage/banned'; import { listBanned, getBanned, delBanned, addBanned, updatemanage, userLevelall } from '@/api/manage/banned';
import { BannedVO, BannedQuery, BannedForm } from '@/api/manage/banned/types'; import { BannedVO, BannedQuery, BannedForm } from '@/api/manage/banned/types';
import { delNotebook } from '@/api/manage/notebook'; import { delNotebook } from '@/api/manage/notebook';
@ -292,9 +317,14 @@ const submitForm = () => {
const handleDelete = async (row?: BannedVO) => { const handleDelete = async (row?: BannedVO) => {
const _ids = row?.contentId; const _ids = row?.contentId;
const _idsname = row?.contentName; const _idsname = row?.contentName;
const arr = {
id: row?.contentId,
type: queryParams.value.type,
handlingStatus: 1
};
const text = queryParams.value.type == 1 ? '笔记名称为“' : queryParams.value.type == 2 ? '活动名称为“' : '评论内容为“'; const text = queryParams.value.type == 1 ? '笔记名称为“' : queryParams.value.type == 2 ? '活动名称为“' : '评论内容为“';
await proxy?.$modal.confirm('是否确认删除' + text + _idsname + '"的数据项?').finally(() => (loading.value = false)); await proxy?.$modal.confirm('是否确认删除' + text + _idsname + '"的数据项?').finally(() => (loading.value = false));
await delNotebook(_ids); await updatemanage(arr);
proxy?.$modal.msgSuccess('删除成功'); proxy?.$modal.msgSuccess('删除成功');
await getList(); await getList();
}; };

View File

@ -25,8 +25,8 @@ export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => {
open: true, open: true,
proxy: { proxy: {
[env.VITE_APP_BASE_API]: { [env.VITE_APP_BASE_API]: {
// target: 'http://192.168.18.23:8080', //维嘉 target: 'http://192.168.18.23:8080', //维嘉
target: 'http://192.168.18.113:8080',//华伟 // target: 'http://192.168.18.113:8080',//华伟
changeOrigin: true, changeOrigin: true,
ws: true, ws: true,
rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '') rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')