From ebfc739bdbbc0dd0fccd0bf47b7d2d5397c3c511 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Fri, 22 Mar 2024 12:44:21 +0800
Subject: [PATCH] 轮播图片

---
 src/views/article/components/deitDiscussion.vue |  233 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 168 insertions(+), 65 deletions(-)

diff --git a/src/views/article/components/deitDiscussion.vue b/src/views/article/components/deitDiscussion.vue
index 9c45f1e..b254595 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,7 +31,15 @@
     </el-dialog>
 
     <el-dialog title="" append-to-body :visible.sync="popupTableUserShow" width="80%" :before-close="userHandleClose">
-      <avue-crud :data="userData" :page="userPage" :option="userOption"></avue-crud>
+      <basic-container>
+        <avue-crud :data="userData" :page="userPage" :option="userOption" @search-change="searchChange"
+          @search-reset="searchReset">
+          <template slot-scope="{type,size,row }" slot="menuLeft">
+            <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
+            </el-button>
+          </template>
+        </avue-crud>
+      </basic-container>
     </el-dialog>
   </div>
 </template>
@@ -58,7 +56,21 @@
   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 {
+    dateNow
+  } from "@/util/date"
   import website from '@/config/website'
 
 
@@ -81,7 +93,7 @@
 
         ontitle: '编辑议题',
         editFlag: false,
-
+        disCussFromListClone: {},
         disCussFrom: {
           discussContent: '',
           optionRange: 0,
@@ -114,11 +126,17 @@
               prop: 'discussContent',
               type: 'input',
               row: true,
+              rules: [{
+                required: true,
+                message: '请输入议题',
+                trigger: 'blur'
+              }],
             },
             {
               label: '选项范围',
               prop: 'optionRange',
               type: 'radio',
+              value: 0,
               button: true,
               row: true,
               dicData: [{
@@ -127,13 +145,19 @@
               }, {
                 label: '单选',
                 value: 0
-              }]
-            },
-            {
-              label: '排序',
-              prop: 'sort',
-              controlsPosition: '',
-              type: 'number'
+              }],
+              rules: [{
+                required: true,
+                message: '请选项范围',
+                trigger: 'blur'
+              }],
+            }, {
+              label: '最多选择数',
+              prop: 'optionNumber',
+              min: 1,
+              type: 'number',
+              step: 1,
+              value: 1
             },
             {
               label: '选项内容',
@@ -161,7 +185,9 @@
         },
 
         // 表单数据
-        form: {},
+        form: {
+          optionRange: 0,
+        },
         data: [],
         optionList: {
           headerAlign: 'center',
@@ -193,27 +219,32 @@
           searchShow: true,
           searchMenuSpan: 3,
           // menuWidth: 500,
-
+          menu: false,
           height: "auto",
           calcHeight: 54,
           dialogWidth: 950,
           tip: false,
-          border: false,
+          border: true,
           //stripe:true,
           index: true,
           editBtn: false,
           addBtn: false,
           viewBtn: false,
           selection: true,
+          delBtn: false,
           excelBtn: true,
           dialogClickModal: false,
+          header: true,
           column: [{
             label: '姓名',
             prop: 'name',
             searchSpan: 4,
             search: true,
+            searchLabelWidth: 46,
           }, {
             label: '头像',
+            type: 'upload',
+            listType: "picture-img",
             prop: 'avatar'
           }, {
             label: '手机',
@@ -232,6 +263,9 @@
             listType: "picture-img",
             prop: 'signaturePath'
           }, {
+            label: '投票项',
+            prop: 'optionContent'
+          }, {
             label: '时间',
             prop: 'createTime'
           }]
@@ -244,12 +278,55 @@
           total: 0
         },
         query: {},
+        type: '',
+        newData: {},
+        articleRange: {},
+        tops: {},
       }
     },
 
-    watch: {},
+    watch: {
+      'froms.optionRange': {
+        handler(newData) {
+          console.log('** ** ** ** ** ** **', newData)
+          const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+          if (newData == 1) {
+            column.display = true
+          } else {
+            column.display = false
+          }
+        },
+      },
+    },
 
     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() {
 
@@ -257,31 +334,63 @@
       },
 
       searchReset() {
-        this.query = {}
-        this.getUserPage(this.userPage)
+        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)
       },
 
       searchChange(params, done) {
         this.query = params
+        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, params)
+        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
         this.articleId = newData.id
         this.query.level = 1
         this.query.articleId = this.articleId
+        this.newData = newData
+        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
@@ -291,7 +400,17 @@
       handleSubmit(form, done) {
         done()
         form.articleId = this.articleId
-
+        if (this.disCussFromListClone.length > 0) {
+          this.disCussFromListClone.forEach(item => {
+            if (form.children.length > 0) {
+              let same = form.children.find(array => array.id === item.id)
+              if (!same) {
+                item.deleteFlag = 1
+                form.children.push(item)
+              }
+            }
+          })
+        }
         add(form).then(
           () => {
             this.$message({
@@ -300,12 +419,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
@@ -370,42 +487,28 @@
 
       edit(row) {
         this.disCussFrom = row
+        this.disCussFromListClone = [].concat(row.children)
         this.editFlag = true
       },
 
       deletes(row) {
         this.$confirm("确定将选择数据删除?", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          return remove(row.id)
+        }).then(() => {
+          let param = {}
+          this.onLoad(this.userPage, param)
+          this.$message({
+            type: "success",
+            message: "操作成功!"
           })
-          .then(() => {
-            return remove(row.id)
-          })
-          .then(() => {
-            this.onLoad()
-
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            })
-          })
+        })
       },
 
-      openUser(row, type = 0) {
-        this.popupTableUserShow = true
-        this.query = {}
-        if (type == 0) {
-          this.userParams = {
-            articleId: row.id
-          }
-        } else {
-          this.userParams = {
-            topicsId: row.id
-          }
-        }
-        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