From 5f00696dfb25bc90034448ceb634ed1ef256681a Mon Sep 17 00:00:00 2001 From: qiyunfeng-create <1940665526@qq.com> Date: 星期四, 21 八月 2025 21:13:35 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/xiehe_website --- src/views/classManage/infoList.vue | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 254 insertions(+), 0 deletions(-) diff --git a/src/views/classManage/infoList.vue b/src/views/classManage/infoList.vue new file mode 100644 index 0000000..5e86ce5 --- /dev/null +++ b/src/views/classManage/infoList.vue @@ -0,0 +1,254 @@ +<template> + <div class="classManagePage-box"> + <div class="classManagePage-nav"> + <el-breadcrumb :separator-icon="ArrowRight"> + <el-breadcrumb-item>鎴戠殑鐝骇</el-breadcrumb-item> + <el-breadcrumb-item>{{ classInfo?.name }}</el-breadcrumb-item> + <el-breadcrumb-item>鐝骇閫氱煡瀹℃牳</el-breadcrumb-item> + </el-breadcrumb> + </div> + <div class="classManagePage-content"> + <div class="backBtn"> + <el-button @click="goBack()" type="primary" link> + <el-icon style="margin-right: 5px"><ArrowLeftBold /></el-icon> 杩斿洖 + </el-button> + </div> + <div class="contentBox"> + <div class="titleOptions"> + <span>鐝骇閫氱煡瀹℃牳鍒楄〃</span> + </div> + <div class="content-tab-box"> + <div class="content-list-box"> + <el-table + :header-cell-style="{ background: '#eee' }" + :data="dataList" + max-height="600px" + style="width: 100%" + v-loading="pages.loading" + > + <el-table-column prop="id" label="搴忓彿" width="70" /> + <el-table-column prop="name" label="閫氱煡" width="500" /> + <el-table-column prop="state" label="鐘舵��" #default="scope"> + <span style="color: #ff6d00" v-if="scope.row.state == 'WaitAudit'">寰呭鏍�</span> + <span style="color: #67c23a" v-if="scope.row.state == 'Normal'">宸查�氳繃</span> + <span style="color: red" v-if="scope.row.state == 'Reject'">宸叉嫆缁�</span> + </el-table-column> + <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" /> + <el-table-column label="鎿嶄綔" #default="scope"> + <el-button + link + v-if="scope.row.state != 'Normal'" + type="success" + size="small" + @click="successMessage(scope.row)" + > + 鍙戝竷 + </el-button> + <el-button link type="danger" size="small" @click="removeMessage(scope.row)"> + 鍒犻櫎 + </el-button> + </el-table-column> + </el-table> + <div class="pageBox"> + <el-pagination + style="float: right" + v-model:current-page="pages.currentPage" + :page-size="pages.pageSize" + :size="'small'" + :disabled="pages.count <= 1" + layout="total, prev, pager, next" + :total="pages.count" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </div> + </div> + </div> + </div> + </div> +</template> + +<script setup lang="ts"> +import { useRoute, useRouter } from 'vue-router' +import { inject, onMounted, reactive, ref } from 'vue' +import { Search, UserFilled, ArrowRight } from '@element-plus/icons-vue' +import { ElMessage } from 'element-plus' +import moment from 'moment' + +const route: any = useRoute() +const router = useRouter() +const classInfo = JSON.parse(route.query.classInfo) +const MG: any = inject('MG') +const config: any = inject('config') +const tool: any = inject('toolClass') + +let pages = reactive({ + currentPage: 1, + page: 1, + pageSize: 15, + count: 0, + loading: true +}) + +const dataList: any = ref([]) + +// 鑾峰彇鐝骇閫氱煡 +const getNotice = () => { + const data = { + start: (pages.page - 1) * pages.pageSize, + size: pages.pageSize, + appRefCode: config.appRefCode, + topicIdOrRefCode: String(sessionStorage.messageId), + sort: { + type: 'Desc', + field: 'CreateDate', + subSorts: [] + } + } + MG.ugc + .getTopicMessageList(data) + .then((res: any) => { + pages.loading = false + pages.count = res.totalSize + const list = res.datas + dataList.value = list.map((item: any) => { + return { + ...item, + createDate: moment(item.createDate).format('YYYY-MM-DD') + } + }) + }) + .catch((err: any) => { + pages.loading = false + console.log(err) + }) +} + +// 閫氳繃 +const successMessage = (item: any) => { + const data = { + id: item.id, + name: item.name, + description: item.description, + icon: item.icon, + type: item.type, + state: 'Normal', + content: JSON.stringify(item.publicText), + newDataRequests: [], + updateDataRequests: [] + } + MG.ugc + .updateTopicMessage(data) + .then((res: any) => { + if (res) { + ElMessage({ + type: 'success', + message: '宸插彂甯�' + }) + getNotice() + } + }) + .catch((err: any) => { + console.log(err, '瀹℃牳璇濋') + }) +} + +// 鍒犻櫎 +const removeMessage = (item: any) => { + const data = { + messageIds: [item.id] + } + MG.ugc + .delTopicMessage(data) + .then((res: any) => { + if (res) { + ElMessage.success('宸插垹闄�') + getNotice() + } + }) + .catch((err: any) => { + ElMessage.error('鍒犻櫎澶辫触锛岃绋嶅悗鍐嶈瘯') + console.log(err) + }) +} + +// 鍒嗛〉 +const handleSizeChange = (val: number) => { + pages.pageSize = val + getNotice() +} + +const handleCurrentChange = (val: number) => { + pages.page = val + pages.currentPage = val + getNotice() +} + +const goBack = () => { + router.go(-1) +} + +onMounted(() => { + getNotice() +}) +</script> + +<style lang="less" scoped> +.classManagePage-box { + background: #fff; + + .classManagePage-nav { + width: 100%; + padding: 0 20px; + height: 40px; + border-bottom: 1px solid #e6e8ed; + position: sticky; + top: 0; + z-index: 999; + display: flex; + align-items: center; + background: #fff; + } + .classManagePage-content { + width: 100%; + position: relative; + .backBtn { + width: 100%; + height: 45px; + margin-bottom: 10px; + padding: 0 20px; + display: flex; + align-items: center; + position: sticky; + top: 40px; + z-index: 99; + background: #fff; + box-shadow: 0px 0px 20px 1px #eeeeee83; + } + .contentBox { + width: 100%; + padding: 0 20px; + box-sizing: border-box; + .titleOptions { + width: 160px; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + span { + height: 30px; + font-family: PingFang SC; + font-weight: bold; + font-size: 16px; + color: #333; + line-height: 30px; + text-align: left; + border-left: 6px solid #ff6c00; + padding-left: 10px; + } + } + } + } +} +</style> -- Gitblit v1.9.1