From cf59b5b39c0cd818484d6f686ddc293d98cfb4ee Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Fri, 01 Mar 2024 11:49:37 +0800
Subject: [PATCH] 议事管理优化

---
 src/views/article/components/deitDiscussion.vue |  152 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 94 insertions(+), 58 deletions(-)

diff --git a/src/views/article/components/deitDiscussion.vue b/src/views/article/components/deitDiscussion.vue
index bcdef3c..c7fec88 100644
--- a/src/views/article/components/deitDiscussion.vue
+++ b/src/views/article/components/deitDiscussion.vue
@@ -1,13 +1,3 @@
-<!--
- * @Author: shuishen 1109946754@qq.com
- * @Date: 2024-01-04 15:18:13
- * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-01-04 17:13:22
- * @FilePath: \jczz_web\src\views\article\components\deitDiscussion.vue
- * @Description:
- *
- * Copyright (c) 2024 by shuishen, All Rights Reserved.
--->
 <template>
   <div>
     <el-dialog title="" append-to-body :visible.sync="popupTableShow" width="80%" :before-close="handleClose">
@@ -41,8 +31,17 @@
     </el-dialog>
 
     <el-dialog title="" append-to-body :visible.sync="popupTableUserShow" width="80%" :before-close="userHandleClose">
-      <avue-crud :data="userData" :page="userPage" :option="userOption" @search-change="searchChange"
-        @search-reset="searchReset"></avue-crud>
+      <basic-container>
+        <div>
+          <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
+          </el-button>
+        </div>
+        <avue-crud :data="userData" :page="userPage" :option="userOption" @search-change="searchChange"
+          @search-reset="searchReset">
+
+
+        </avue-crud>
+      </basic-container>
     </el-dialog>
   </div>
 </template>
@@ -59,7 +58,18 @@
   import {
     getPage
   } from "@/api/discuss/userTopics"
-
+  import NProgress from 'nprogress'
+  import 'nprogress/nprogress.css'
+  import Qs from "qs"
+  import {
+    exportBlob
+  } from "@/api/common"
+  import {
+    getToken
+  } from '@/util/auth'
+  import {
+    downloadXls
+  } from "@/util/util"
   import website from '@/config/website'
 
 
@@ -141,12 +151,6 @@
                 trigger: 'blur'
               }],
             },
-            // {
-            //   label: '排序',
-            //   prop: 'sort',
-            //   controlsPosition: '',
-            //   type: 'number'
-            // },
             {
               label: '选项内容',
               prop: 'children',
@@ -206,7 +210,6 @@
           searchMenuSpan: 3,
           // menuWidth: 500,
           menu: false,
-
           height: "auto",
           calcHeight: 54,
           dialogWidth: 950,
@@ -221,7 +224,7 @@
           delBtn: false,
           excelBtn: true,
           dialogClickModal: false,
-          header:false,
+          header: false,
           column: [{
             label: '姓名',
             prop: 'name',
@@ -249,6 +252,9 @@
             listType: "picture-img",
             prop: 'signaturePath'
           }, {
+            label: '投票项',
+            prop: 'optionContent'
+          }, {
             label: '时间',
             prop: 'createTime'
           }]
@@ -261,8 +267,10 @@
           total: 0
         },
         query: {},
+        type: '',
         newData: {},
         articleRange: {},
+        tops: {},
       }
     },
 
@@ -270,30 +278,87 @@
 
     methods: {
 
+      handleExport() {
+        this.$confirm("是否导出投票人员数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          NProgress.start()
+          this.query = {}
+          this.query.districtId = this.newData.articleRange
+          if (this.type == 0) {
+            this.query.articleId = this.articleId
+          } else {
+            this.query.topicsId = this.tops.id
+          }
+          var data = {
+            ...this.query
+          }
+          data = Qs.stringify(data)
+          exportBlob(
+            `/api/blade-userTopics/userTopics/exportUser?${this.website.tokenHeader}=${getToken()}&` +
+            data
+          ).then(res => {
+            downloadXls(res.data, `投票人员${dateNow()}.xlsx`)
+            NProgress.done()
+          })
+        })
+      },
+
       userHandleClose() {
 
         this.popupTableUserShow = false
       },
 
       searchReset() {
-        if (this.articleRange) {
-          this.query.districtId = this.newData.articleRange
+        this.query.districtId = this.newData.articleRange
+        if (this.type == 0) {
+          this.query.articleId = this.articleId
+        } else {
+          this.query.topicsId = this.tops.id
         }
-        this.query.articleId = this.articleId
         this.userPage.currentPage = 1
         this.getUserPage(this.userPage, this.query)
       },
 
       searchChange(params, done) {
-        if (this.articleRange) {
-          this.query.districtId = this.newData.articleRange
-        }
         this.query = params
-        this.query.articleId = this.articleId
+        this.query.districtId = this.newData.articleRange
+        if (this.type == 0) {
+          this.query.articleId = this.articleId
+        } else {
+          this.query.topicsId = this.tops.id
+        }
         this.userPage.currentPage = 1
         this.getUserPage(this.userPage, this.query)
         done()
       },
+
+      openUser(row, type = 0) {
+        this.type = type
+        this.popupTableUserShow = true
+        this.query = {}
+        this.articleId = row.id
+        let districtId
+        if (type == 0) {
+          this.newData = row
+          districtId = this.newData.articleRange
+          this.userParams = {
+            articleId: row.id,
+            districtId: districtId
+          }
+        } else {
+          districtId = this.newData.articleRange
+          this.tops = row
+          this.userParams = {
+            topicsId: row.id,
+            districtId: districtId
+          }
+        }
+        this.getUserPage(this.userPage, this.userParams)
+      },
+
       initData(newData) {
         this.editFlag = false
         this.popupTableShow = true
@@ -304,13 +369,6 @@
         this.query.districtId = newData.articleRange
         this.onLoad(this.userPage, this.query)
       },
-      // initData(newData) {
-      //   this.editFlag = false
-      //   this.popupTableShow = true
-      //   this.articleId = newData.id
-
-      //   this.onLoad()
-      // },
 
       handleClose() {
         this.popupTableShow = false
@@ -329,12 +387,10 @@
             })
             form = {}
             this.editFlag = false
-
             let params = {
               level: 1,
               articleId: this.articleId
             }
-
             getLists(1, 100, Object.assign(params, this.query)).then(res => {
               const data = res.data.data
               this.data = data
@@ -421,27 +477,7 @@
           })
       },
 
-      openUser(row, type = 0) {
-        this.popupTableUserShow = true
-        this.query = {}
-        this.articleId = row.id
-        let districtId
-        if (type == 0) {
-          this.newData = row
-          districtId = this.newData.articleRange
-          this.userParams = {
-            articleId: row.id,
-            districtId: districtId
-          }
-        } else {
-          districtId = this.newData.articleRange
-          this.userParams = {
-            topicsId: row.id,
-            districtId: districtId
-          }
-        }
-        this.getUserPage(this.userPage, this.userParams)
-      },
+
 
       getUserPage(page, params = {}) {
         getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {

--
Gitblit v1.9.3