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