bding 1 rok temu
rodzic
commit
a918c2fd27

+ 26 - 0
src/api/modules/rai/YanXuanApi.js

@@ -0,0 +1,26 @@
+import http from "@/api/http.js";
+/* 权益小程序管理 报告模块*/
+const YanXuanApi = {
+  // 作者列表
+  yanxuan_specialAuthorList: (params) => {
+    return http.get("/cygx/yanxuan_special/author/list", params);
+  },
+  // 新增研选专栏作者
+  yanxuan_specialAuthorAdd: (params) => {
+    return http.post("/cygx/yanxuan_special/author/add", params);
+  },
+  // 禁用/启用研选专栏作者
+  yanxuan_specialAuthorEnable: (params) => {
+    return http.post("/cygx/yanxuan_special/author/enable", params);
+  },
+  // 审核列表
+  yanxuan_specialList: (params) => {
+    return http.get("/cygx/yanxuan_special/list", params);
+  },
+  // 审批研选专栏
+  yanxuan_specialEnable: (params) => {
+    return http.post("/cygx/yanxuan_special/enable", params);
+  },
+};
+
+export default YanXuanApi;

+ 3 - 1
src/api/modules/rai/raiApi.js

@@ -3,8 +3,9 @@ import timeLineApi from "./timeLine.js";
 import raiReport from "./reportApi";
 import raiBanner from "./bannerApi.js";
 import internalInterface from "./internalApi.js";
-import lableApi from "./lableApi.js"
+import lableApi from "./lableApi.js";
 import raiPoints from "./pointsApi.js";
+import YanXuanApi from "./YanXuanApi.js";
 /* 权益小程序管理 */
 const raiInterface = {
   ...raiReport,
@@ -13,6 +14,7 @@ const raiInterface = {
   ...internalInterface,
   ...lableApi,
   ...raiPoints,
+  ...YanXuanApi,
   /* 
 		优化建议列表
 		PageSize CurrentIndex KeyWord  

+ 1 - 1
src/views/rai_manage/cygxManage/lableManage.vue

@@ -119,7 +119,7 @@
 import Sortable from "sortablejs";
 import mPage from "@/components/mPage.vue";
 import { raiInterface } from "@/api/api.js";
-import { async } from "@antv/x6/lib/registry/marker/async";
+// import { async } from "@antv/x6/lib/registry/marker/async";
 export default {
   name: "",
   components: { mPage },

+ 32 - 4
src/views/rai_manage/reportManage/components/specialDlg.vue

@@ -38,6 +38,10 @@ export default {
       default: false,
       type: Boolean,
     },
+    submitRejectId: {
+      default: 0,
+      type: Number,
+    },
   },
   data() {
     return {
@@ -77,17 +81,41 @@ export default {
       }
     },
     // 作者添加的事件
-    addAuthorHandler() {
+    async addAuthorHandler() {
       const isKey = this.companyList.some((item) => item.value === this.keyAuthor);
       if (!isKey) return this.$message.error("请输入客户姓名!");
+      let params = this.companyList.filter((item) => item.value === this.keyAuthor);
+      const res = await raiInterface.yanxuan_specialAuthorAdd({
+        UserId: params[0].UserId,
+        RealName: params[0].RealName,
+        Mobile: params[0].Mobile,
+      });
+      if (res.Ret === 200) {
+        this.handleCloseAuthor();
+        this.$message.success("添加成功!");
+        this.$parent.getAuthorList();
+      }
     },
     /* **************************************************** */
     // 驳回的弹框关闭事件
-    handleCloseReject() {},
+    handleCloseReject() {
+      this.textReject = "";
+      this.$emit("update:submitRejectDlgVisible", false);
+    },
     // 驳回的弹框确定事件
-    submitRejectHandler() {
-      if (!textReject) return;
+    async submitRejectHandler() {
+      if (!this.textReject) return;
       // 提交成功后刷新页面
+      const res = await raiInterface.yanxuan_specialEnable({
+        Id: this.submitRejectId,
+        Status: 2,
+        Reason: this.textReject,
+      });
+      if (res.Ret === 200) {
+        this.handleCloseReject();
+        this.$message.success("操作成功!");
+        this.$parent.getSpecialList();
+      }
     },
   },
 };

+ 105 - 52
src/views/rai_manage/reportManage/yanXuanSpecial.vue

@@ -6,64 +6,67 @@
         <el-button type="primary" @click="addAuthorDlgVisible = true">新建作者</el-button>
       </div>
       <div class="author-ul">
-        <div class="author-li">
+        <div class="author-li" v-for="item in authorInfoData" :key="item.Id">
           <div class="avatar">
-            <img src="~@/assets/img/document_m/default-img.png" alt="" />
+            <img :src="item.HeadImg" alt="" />
           </div>
           <div class="info-content">
-            <p class="info-name">沈瑛岚-15757749952</p>
-            <p>昵称:Yoya</p>
-            <p>公司名称公司名称</p>
+            <p class="info-name">{{ item.RealName }} - {{ item.Mobile }}</p>
+            <p>昵称:{{ item.NickName }}</p>
+            <p>{{ item.CompanyName }}</p>
           </div>
           <div class="switch-box">
-            <!-- <el-switch style="display: block" v-model="value2" active-color="#13ce66" inactive-color="#ff4949" active-text="启用" inactive-text="禁用"> </el-switch> -->
-            <el-switch style="display: block" v-model="value2" active-color="#13ce66" inactive-color="#ff4949"> </el-switch>
+            <el-switch style="display: block" @change="switchAuthorChange(item)" v-model="item.Status" :active-value="1" :inactive-value="2" active-color="#13ce66" inactive-color="#ff4949">
+            </el-switch>
           </div>
         </div>
-        <div class="divider-box"></div>
       </div>
     </div>
     <div class="examine-content">
-      <p style="margin-bottom: 20px">待审核内容</p>
-      <div class="info-box" style="margin-bottom: 20px">
-        <div class="avatar">
-          <img src="~@/assets/img/document_m/default-img.png" alt="" />
+      <p>待审核内容</p>
+      <template v-if="specialListData.length > 0">
+        <div class="content-box-examine" v-for="item in specialListData" :key="item.Id">
+          <div class="info-box" style="margin-bottom: 20px">
+            <div class="avatar">
+              <img :src="item.HeadImg" alt="" />
+            </div>
+            <div class="info-content">
+              <p class="info-name">{{ item.NickName || item.RealName }}</p>
+              <p>{{ item.PublishTime }}</p>
+            </div>
+          </div>
+          <div class="content-detial">
+            {{ item.Content }}
+          </div>
+          <div class="look-all-txt" v-if="item.ContentHasImg">查看全文</div>
+          <div class="file-box">文件文件{{item.DocUrl}}</div>
+          <div class="img-box">
+            <img v-for="(key, index) in item.ImgUrl.split(',')" :key="index" :src="key" alt="" />
+          </div>
+          <div>
+            <div class="lable-li" v-for="(key, index) in item.Tags.split(',')" :key="index">{{ key }}</div>
+          </div>
+          <div class="bottom-button">
+            <div @click="submitRejectDlgHandler(item)">驳回</div>
+            <div @click="openMessage(item)">通过</div>
+          </div>
         </div>
-        <div class="info-content">
-          <p class="info-name">作者昵称作者昵称</p>
-          <p>2023.08.01 14:13:12</p>
+      </template>
+      <div class="no-data" v-else>
+        <div style="text-align: center">
+          <img src="~@/assets/img/data_m/table_no.png" alt="" style="display: block; width: 135px; height: 112px; margin: 0 auto" />
+          <span>暂无数据</span>
         </div>
       </div>
-      <div class="content-detial">
-        笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容
-        笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容
-        笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容
-        笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容
-        笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容笔记内容
-      </div>
-      <div class="look-all-txt">查看全文</div>
-      <div class="file-box">文件文件</div>
-      <div class="img-box">
-        <img src="~@/assets/img/document_m/default-img.png" alt="" />
-      </div>
-      <div>
-        <div class="lable-li">标签1</div>
-        <div class="lable-li">标签1</div>
-        <div class="lable-li">标签1</div>
-        <div class="lable-li">标签1</div>
-        <div class="lable-li">标签1</div>
-      </div>
-      <div class="bottom-button">
-        <div @click="submitRejectDlgVisible = true">驳回</div>
-        <div @click="openMessage">通过</div>
-      </div>
     </div>
-    <special-dlg :addAuthorDlgVisible.sync="addAuthorDlgVisible" :submitRejectDlgVisible.sync="submitRejectDlgVisible" />
+    <special-dlg :addAuthorDlgVisible.sync="addAuthorDlgVisible" :submitRejectDlgVisible.sync="submitRejectDlgVisible" :submitRejectId="submitRejectId" />
   </div>
 </template>
 
 <script>
 import SpecialDlg from "./components/specialDlg.vue";
+import { raiInterface } from "@/api/api.js";
+import { async } from "@antv/x6/lib/registry/marker/async";
 export default {
   name: "",
   components: { SpecialDlg },
@@ -71,26 +74,36 @@ export default {
   data() {
     return {
       addAuthorDlgVisible: false,
-      submitRejectDlgVisible: false,
+      submitRejectDlgVisible: false, // 驳回的显示
+      submitRejectId: 0, // 驳回的ID
+      authorInfoData: [], // 作者信息列表
+      specialListData: [], // 审核列表
     };
   },
   computed: {},
   watch: {},
   created() {},
-  mounted() {},
+  mounted() {
+    this.getAuthorList();
+    this.getSpecialList();
+  },
   methods: {
     // 审核通过的确认按钮
-    openMessage() {
+    openMessage(item) {
       this.$confirm("确定通过此内容在小程序展示吗?", "审核通过", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
       })
-        .then(() => {
-          this.$message({
-            type: "success",
-            message: "删除成功!",
+        .then(async () => {
+          const res = await raiInterface.yanxuan_specialEnable({
+            Id: item.Id,
+            Status: 1,
           });
+          if (res.Ret === 200) {
+            this.$message.success("审核成功!");
+            this.getSpecialList();
+          }
         })
         .catch(() => {
           this.$message({
@@ -99,6 +112,35 @@ export default {
           });
         });
     },
+    // 获取作者列表
+    async getAuthorList() {
+      const res = await raiInterface.yanxuan_specialAuthorList();
+      if (res.Ret === 200) {
+        this.authorInfoData = res.Data || [];
+      }
+    },
+    // 作者的关闭或者打开
+    async switchAuthorChange(item) {
+      const res = await raiInterface.yanxuan_specialAuthorEnable({
+        UserId: item.UserId,
+        Status: item.Status,
+      });
+      if (res.Ret === 200) {
+        this.$message.success("操作成功!");
+      }
+    },
+    // 审核列表
+    async getSpecialList() {
+      const res = await raiInterface.yanxuan_specialList();
+      if (res.Ret === 200) {
+        this.specialListData = res.Data || [];
+      }
+    },
+    // 驳回的弹框显示
+    submitRejectDlgHandler(item) {
+      this.submitRejectId = item.Id;
+      this.submitRejectDlgVisible = true;
+    },
   },
 };
 </script>
@@ -132,7 +174,8 @@ div {
         padding: 20px;
         display: flex;
         justify-content: space-between;
-
+        border-bottom: 1px solid #dcdfe6;
+        margin: 10px 0;
         .switch-box {
           width: 30px;
           flex-shrink: 0;
@@ -140,10 +183,6 @@ div {
       }
     }
   }
-  .divider-box {
-    margin: 10px 0;
-    border: 1px solid #dcdfe6;
-  }
   .info-content {
     flex: 1;
     padding-left: 16px;
@@ -174,6 +213,17 @@ div {
     padding: 20px;
     flex: 1;
     background: #fff;
+    .no-data {
+      width: 100%;
+      height: 100%;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+    .content-box-examine {
+      padding: 30px 0;
+      border-bottom: 1px solid #dcdfe6;
+    }
     .info-box {
       display: flex;
     }
@@ -187,10 +237,11 @@ div {
     .look-all-txt {
       color: #409eff;
       font-size: 16px;
-      margin: 20px 0;
+      margin-top: 20px ;
       cursor: pointer;
     }
     .file-box {
+      margin-top: 20px;
       height: 64px;
     }
     .img-box {
@@ -213,8 +264,10 @@ div {
       color: #409eff;
     }
     .bottom-button {
+      margin: 50px;
       display: flex;
       justify-content: center;
+      color: #fff;
       div {
         cursor: pointer;
         width: 120px;