增加管理员删除操作

This commit is contained in:
A1300399510 2024-08-26 16:58:58 +08:00
parent 98301d80fe
commit 11056a74a4
15 changed files with 143 additions and 10 deletions

1
dist/css/116.145ce8ac.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/css/878.0c2853cd.css vendored Normal file
View File

@ -0,0 +1 @@
.container[data-v-500ea229]{padding-top:1.3rem;padding-bottom:1.3rem}.container .search-input-box[data-v-500ea229]{margin-left:.32rem}.container .search-input-box .search-input[data-v-500ea229]{width:8.2rem;height:.96rem;border-radius:2.56rem;background:#ebebeb}.container .search-input-box .search-input .search-input-cross[data-v-500ea229],.container .search-input-box .search-input .search-input-icon[data-v-500ea229]{width:.4rem;height:.4rem}.container .search-input-box .search-input .search-input-icon[data-v-500ea229]{padding:0 .4rem}.container .search-input-box .search-input .search-input-cross[data-v-500ea229]{padding-right:.4rem}.container .search-input-box .search-input .search-input-input[data-v-500ea229]{height:100%;font-size:.4rem}.container .search-input-box .search-input-cancel[data-v-500ea229]{color:#000;font-size:.36rem;padding-left:.46rem;width:.74rem}.container .numberResults[data-v-500ea229]{font-size:.32rem;color:#555;margin:.64rem .32rem .48rem}.container .numberResults .number[data-v-500ea229]{color:#000;font-weight:650;margin:0 .1667rem}.container .result-box[data-v-500ea229]{justify-content:center;flex-direction:column;overflow:auto}.container .result-box .result-item[data-v-500ea229]{margin-bottom:.32rem;width:9.36rem;height:3.96rem;background-color:#fff;border:none;border-radius:.32rem;box-shadow:0 0 .16rem rgba(0,0,0,.08);padding:.4rem;box-sizing:border-box;flex-direction:column;position:relative}.container .result-box .result-item .result-header[data-v-500ea229]{margin-bottom:.32rem}.container .result-box .result-item .result-header .result-label[data-v-500ea229]{font-size:.28rem;height:.52rem;line-height:.52rem;background:#333;color:#fff;display:inline-block;border-radius:.16rem;padding:0 .12rem;margin-right:.12rem}.container .result-box .result-item .result-header .result-title[data-v-500ea229]{color:#000;font-size:.37333rem;line-height:.65rem;display:inline}.container .result-box .result-item .result-header .result-title[data-v-500ea229] em{color:#f95d5d}.container .result-box .result-item .result-content[data-v-500ea229]{line-height:.52rem;font-size:.3rem;color:#7f7f7f;height:1.04rem}.container .result-box .result-item .reply-visible[data-v-500ea229]{font-size:.32rem;height:1.04rem;background:hsla(0,0%,95%,.7)}.container .result-box .result-item .result-info[data-v-500ea229]{align-items:self-end;justify-content:space-between}.container .result-box .result-item .result-info .user-info .icon-head[data-v-500ea229]{width:.64rem;height:.64rem;border-radius:50%}.container .result-box .result-item .result-info .user-info .user-name[data-v-500ea229]{font-size:.32rem;color:#333;margin-left:.2rem}.container .result-box .result-item .result-info .item-data[data-v-500ea229]{font-size:.28rem}.container .result-box .result-item .result-info .item-data .item-data-item[data-v-500ea229]:last-of-type{margin-left:.4rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-look[data-v-500ea229]{width:.4267rem;height:.18rem;margin-right:.16rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-msg[data-v-500ea229]{width:.32rem;height:.28rem;margin-right:.16rem}.container .paging[data-v-500ea229]{margin-top:.48rem}.container .paging[data-v-500ea229] .el-pagination.is-background .el-pager li:not(.disabled).active{background:#62b1ff;border-radius:50%}.container .paging[data-v-500ea229] .el-pagination .btn-next .el-icon,.container .paging[data-v-500ea229] .el-pagination .btn-prev .el-icon{font-size:.4rem}.container .result-empty-box[data-v-500ea229]{height:70vh;width:9.36rem;background:#fff;margin:0 auto;border-radius:.32rem}.container .result-empty-box .result-empty-icon[data-v-500ea229]{width:2.04rem;height:2.4rem}

View File

@ -1 +0,0 @@
.container[data-v-128503e4]{padding-top:1.3rem;padding-bottom:1.3rem}.container .search-input-box[data-v-128503e4]{margin-left:.32rem}.container .search-input-box .search-input[data-v-128503e4]{width:8.2rem;height:.96rem;border-radius:2.56rem;background:#ebebeb}.container .search-input-box .search-input .search-input-cross[data-v-128503e4],.container .search-input-box .search-input .search-input-icon[data-v-128503e4]{width:.4rem;height:.4rem}.container .search-input-box .search-input .search-input-icon[data-v-128503e4]{padding:0 .4rem}.container .search-input-box .search-input .search-input-cross[data-v-128503e4]{padding-right:.4rem}.container .search-input-box .search-input .search-input-input[data-v-128503e4]{height:100%;font-size:.4rem}.container .search-input-box .search-input-cancel[data-v-128503e4]{color:#000;font-size:.36rem;padding-left:.46rem;width:.74rem}.container .numberResults[data-v-128503e4]{font-size:.32rem;color:#555;margin:.64rem .32rem .48rem}.container .numberResults .number[data-v-128503e4]{color:#000;font-weight:650;margin:0 .1667rem}.container .result-box[data-v-128503e4]{justify-content:center;flex-direction:column;overflow:auto}.container .result-box .result-item[data-v-128503e4]{margin-bottom:.32rem;width:9.36rem;height:3.96rem;background-color:#fff;border:none;border-radius:.32rem;box-shadow:0 0 .16rem rgba(0,0,0,.08);padding:.4rem;box-sizing:border-box;flex-direction:column;position:relative}.container .result-box .result-item .result-header[data-v-128503e4]{margin-bottom:.32rem}.container .result-box .result-item .result-header .result-label[data-v-128503e4]{font-size:.28rem;height:.52rem;line-height:.52rem;background:#333;color:#fff;display:inline-block;border-radius:.16rem;padding:0 .12rem;margin-right:.12rem}.container .result-box .result-item .result-header .result-title[data-v-128503e4]{color:#000;font-size:.37333rem;line-height:.65rem;display:inline}.container .result-box .result-item .result-header .result-title[data-v-128503e4] em{color:#f95d5d}.container .result-box .result-item .result-content[data-v-128503e4]{line-height:.52rem;font-size:.3rem;color:#7f7f7f;height:1.04rem}.container .result-box .result-item .reply-visible[data-v-128503e4]{font-size:.32rem;height:1.04rem;background:hsla(0,0%,95%,.7)}.container .result-box .result-item .result-info[data-v-128503e4]{align-items:self-end;justify-content:space-between}.container .result-box .result-item .result-info .user-info .icon-head[data-v-128503e4]{width:.64rem;height:.64rem;border-radius:50%}.container .result-box .result-item .result-info .user-info .user-name[data-v-128503e4]{font-size:.32rem;color:#333;margin-left:.2rem}.container .result-box .result-item .result-info .item-data[data-v-128503e4]{font-size:.28rem}.container .result-box .result-item .result-info .item-data .item-data-item[data-v-128503e4]:last-of-type{margin-left:.4rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-look[data-v-128503e4]{width:.4267rem;height:.18rem;margin-right:.16rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-msg[data-v-128503e4]{width:.32rem;height:.28rem;margin-right:.16rem}.container .paging[data-v-128503e4]{margin-top:.48rem}.container .paging[data-v-128503e4] .el-pagination.is-background .el-pager li:not(.disabled).active{background:#62b1ff;border-radius:50%}.container .paging[data-v-128503e4] .el-pagination .btn-next .el-icon,.container .paging[data-v-128503e4] .el-pagination .btn-prev .el-icon{font-size:.4rem}.container .result-empty-box[data-v-128503e4]{height:70vh;width:9.36rem;background:#fff;margin:0 auto;border-radius:.32rem}.container .result-empty-box .result-empty-icon[data-v-128503e4]{width:2.04rem;height:2.4rem}

2
dist/index.html vendored

File diff suppressed because one or more lines are too long

1
dist/js/116.4eb5bccf.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/js/192.73429f3c.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/878.25f811f5.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@ import Vue from 'vue'
import App from './App.vue' import App from './App.vue'
import router from './router' import router from './router'
import store from './store' import store from './store'
import { Message, Pagination, Alert, Loading } from 'element-ui'; import { Message, Pagination, Alert, Loading, Dialog } from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css'; import 'element-ui/lib/theme-chalk/index.css';
import { skipUrl, pageStop, pageMove, goTologin, copy, startupUnderLoading, closeUnderLoading, formattedDate, updateURLSearchParams, clearCookies } from "@/utils/common.js" import { skipUrl, pageStop, pageMove, goTologin, copy, startupUnderLoading, closeUnderLoading, formattedDate, updateURLSearchParams, clearCookies } from "@/utils/common.js"
import http from "@/utils/request" import http from "@/utils/request"
@ -44,6 +44,7 @@ if (!Array.isArray) {
Vue.use(Pagination); Vue.use(Pagination);
Vue.use(Alert); Vue.use(Alert);
Vue.use(Loading); Vue.use(Loading);
Vue.use(Dialog);
// v-focus // v-focus
Vue.directive('focus', { Vue.directive('focus', {

View File

@ -32,7 +32,7 @@ service.interceptors.request.use(
// config['headers']['authorization'] = "661aiz52k5e6vqgmkxnz0wvbv8nciz8h" // config['headers']['authorization'] = "661aiz52k5e6vqgmkxnz0wvbv8nciz8h"
// if (process.env.NODE_ENV == "development") config['headers']['authorization'] = "0h870ovk2xckoqfsh8a3t3sg4sg5z7eg" // if (process.env.NODE_ENV == "development") config['headers']['authorization'] = "0h870ovk2xckoqfsh8a3t3sg4sg5z7eg"
if (process.env.NODE_ENV == "development") config["headers"]["authorization"] = "95paemsnrr393p9vikpp16qo72" if (process.env.NODE_ENV == "development") config["headers"]["authorization"] = "d515090446191e8cc90d98f9a216af1c"
return config return config
}, },

View File

@ -29,6 +29,21 @@
<a class="edit-box flexcenter" v-if="info.isauthor == 1" :href="`https://www.gter.net/bbs/post/edit.html?tid=${tid}&pid=${info.pid}`"> <a class="edit-box flexcenter" v-if="info.isauthor == 1" :href="`https://www.gter.net/bbs/post/edit.html?tid=${tid}&pid=${info.pid}`">
<img class="edit-icom" src="@/assets/img/detail/edit.png" /> <img class="edit-icom" src="@/assets/img/detail/edit.png" />
</a> </a>
<div class="manager-box" v-if="managementauthority">
<div class="dot-box flexflex" @click="openAdminOperate(null)">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<template v-if="adminOperateState">
<div class="operate-mask" @click="closeAdminOperate"></div>
<div class="operate">
<div class="item" @click="popUupDialog(0)">删除该帖</div>
<div class="item" @click="popUupDialog(1)">删帖且禁言</div>
</div>
</template>
</div>
</div> </div>
<template v-if="type == 5"> <template v-if="type == 5">
<div class="summary-content"> <div class="summary-content">
@ -165,6 +180,20 @@
<div class="edit-box flexcenter" v-if="item.ismyself == 1" @click.stop="openEditPop(item)"> <div class="edit-box flexcenter" v-if="item.ismyself == 1" @click.stop="openEditPop(item)">
<img class="edit-icom" src="@/assets/img/detail/edit.png" /> <img class="edit-icom" src="@/assets/img/detail/edit.png" />
</div> </div>
<div class="manager-box" v-if="managementauthority">
<div class="dot-box flexflex" @click="openAdminOperate(index)">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<template v-if="item.adminOperateState">
<div class="operate-mask" @click="closeAdminOperate"></div>
<div class="operate">
<div class="item" @click="popUupDialog(0)">删除该楼</div>
<div class="item" @click="popUupDialog(1)">删楼且禁言</div>
</div>
</template>
</div>
</div> </div>
<div class="card-content flex1" @click.stop="handleReplyPop(item)" v-html="item.message"></div> <div class="card-content flex1" @click.stop="handleReplyPop(item)" v-html="item.message"></div>
@ -527,6 +556,10 @@ export default {
9: "CS/EE", 9: "CS/EE",
10: "生农医药", 10: "生农医药",
}, },
adminOperateState: false, //
deletePostToken: "",
managementauthority: 0, //
} }
}, },
@ -569,7 +602,7 @@ export default {
let data = res.data let data = res.data
let info = data.info let info = data.info
console.log(data.type) this.managementauthority = data.managementauthority
info["message"] = info["message"].trim() info["message"] = info["message"].trim()
@ -1165,6 +1198,53 @@ export default {
this.locationThreadData = obj1 this.locationThreadData = obj1
}) })
}, },
//
openAdminOperate(index) {
this.deletePostToken = ""
if (index == null) {
this.adminOperateState = true
this.deletePostToken = this.token
return
}
this.postList.list[index]["adminOperateState"] = true
this.deletePostToken = this.postList.list[index].token
this.$forceUpdate()
// this.postList = this.token
},
//
closeAdminOperate() {
this.adminOperateState = false
this.postList.list.forEach(element => {
element["adminOperateState"] = false
})
this.$forceUpdate()
},
//
popUupDialog(hackinguser) {
this.closeAdminOperate()
const userConfirmed = confirm(`确定要${hackinguser ? "删除且禁言" : "删除"}?`)
if (userConfirmed) {
this.deletePost(hackinguser)
}
},
//
deletePost(hackinguser) {
this.$http.post("/api/manage/delete", { token: this.deletePostToken, hackinguser }).then(res => {
if (res.code != 200) return
if (document.referrer) window.history.back()
else window.location.href = "/"
this.openHintBox("res.message")
this.deletePostToken = ""
})
},
}, },
components: { components: {
@ -1338,6 +1418,57 @@ export default {
width: 0.4rem; width: 0.4rem;
} }
} }
.manager-box {
position: relative;
.dot-box {
margin-left: 0.4533rem;
height: 0.8rem;
align-items: center;
.item {
width: 0.1333rem;
height: 0.1333rem;
border-radius: 50%;
background: #8a8a8a;
border: 0.0133rem #7f7f7f solid;
&:not(:last-of-type) {
margin-right: 0.04rem;
}
}
}
.operate-mask {
width: 100vw;
height: 100vh;
background: rgba(138, 138, 138, 0.6);
position: fixed;
top: 0;
left: 0;
}
.operate {
box-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.1);
background: #fff;
position: absolute;
top: 0.8rem;
right: 0;
font-size: 0.36rem;
width: 2.9067rem;
border-radius: 0.1rem;
.item {
height: 1.0667rem;
line-height: 1.0667rem;
text-align: center;
color: #333;
&:not(:last-of-type) {
border-bottom: 0.0133rem solid #f0f0f0;
}
}
}
}
} }
.card-content { .card-content {

View File

@ -55,7 +55,7 @@
<div v-if="count > limit" class="paging flexcenter"> <div v-if="count > limit" class="paging flexcenter">
<el-pagination small background layout="prev, pager, next" @current-change="currentChange()" <el-pagination small background layout="prev, pager, next" @current-change="currentChange()"
:current-page.sync="page" :page-size="limit" :total="count"> :current-page.sync="page" :page-size="limit" :total="count * 1">
</el-pagination> </el-pagination>
</div> </div>