From 4522ab3fe8bd45ee753ef187448c1e884bbc601f Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 18 Apr 2024 11:09:27 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_web

---
 src/views/article/components/deitDiscussion.vue |  193 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 169 insertions(+), 24 deletions(-)

diff --git a/src/views/article/components/deitDiscussion.vue b/src/views/article/components/deitDiscussion.vue
index a706041..cfa2392 100644
--- a/src/views/article/components/deitDiscussion.vue
+++ b/src/views/article/components/deitDiscussion.vue
@@ -107,17 +107,7 @@
           articleId: '',
           parentId: '',
           level: '',
-          children: [{
-            optionContent: '',
-            optionDetail: '',
-            number: '',
-            createTime: '',
-            updateTime: '',
-            deleteFlag: '',
-            articleId: '',
-            parentId: '',
-            level: '',
-          }]
+          children: []
         },
         optionDiscuss: {
           emptyText: '取消',
@@ -133,6 +123,26 @@
               }],
             },
             {
+              label: '议题必填',
+              prop: 'mandatoryFlag',
+              type: 'radio',
+              value: 1,
+              button: true,
+              row: true,
+              dicData: [{
+                label: '否',
+                value: 1
+              }, {
+                label: '是',
+                value: 2
+              }],
+              rules: [{
+                required: true,
+                message: '请选择是否必填',
+                trigger: 'blur'
+              }],
+            },
+            {
               label: '选项范围',
               prop: 'optionRange',
               type: 'radio',
@@ -140,11 +150,11 @@
               button: true,
               row: true,
               dicData: [{
-                label: '多选',
-                value: 1
-              }, {
                 label: '单选',
                 value: 0
+              }, {
+                label: '多选',
+                value: 1
               }],
               rules: [{
                 required: true,
@@ -153,13 +163,54 @@
               }],
             },
             {
-              label: '最多选择数',
+              label: '最少选',
+              prop: 'optionNumberMin',
+              display: false,
+              row: true,
+              min: 1,
+              max: 10,
+              type: 'number',
+              step: 1,
+              value: 1,
+              rules: [{
+                required: true,
+                message: '请输入最少可选择数量',
+                trigger: 'blur'
+              }],
+              span: 3,
+            },
+            {
+              label: '最多选',
               prop: 'optionNumber',
               display: false,
               min: 1,
+              row: true,
+              max: 10,
               type: 'number',
               step: 1,
-              value: 1
+              value: 1,
+              rules: [{
+                required: true,
+                message: '请输入最多可选择数量',
+                trigger: 'blur'
+              }],
+              span: 3,
+            },
+            {
+              width: 110,
+              labelWidth: 100,
+              label: "附件",
+              prop: "attachment",
+              type: "upload",
+              listType: "text",
+              action: "/api/blade-resource/oss/endpoint/put-pdfFile",
+              accept: "application/pdf",
+              propsHttp: {
+                res: "data",
+                name: 'name',
+                url: "link",
+              },
+              span: 24,
             },
             {
               label: '选项内容',
@@ -167,6 +218,18 @@
               type: 'dynamic',
               span: 24,
               children: {
+                rowAdd: (done) => {
+                  // this.$message.success('新增回调' + this.disCussFrom.children.length);
+                  this.addC(this.disCussFrom.children.length)
+                  done({
+                    input: '默认值'
+                  });
+                },
+                rowDel: (row, done) => {
+                  // this.$message.success('删除回调' + this.disCussFrom.children.length);
+                  this.reduceC(this.disCussFrom.children.length)
+                  done();
+                },
                 column: [{
                   label: '选项标题',
                   prop: 'optionContent',
@@ -292,16 +355,55 @@
         handler(newData) {
           // console.log('** ** ** ** ** ** **', newData)
           const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+          const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
           if (newData == 1) {
             column.display = true
+            columnMin.display = true
           } else {
             column.display = false
+            columnMin.display = false
           }
         },
       },
     },
 
     methods: {
+
+      addC(number) {
+        console.log("******************", number)
+        const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+        const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
+        column.max = number + 1
+        columnMin.max = number + 1
+        if (this.disCussFrom.optionNumber > number + 1) {
+          this.disCussFrom.optionNumber = number + 1
+        }
+        if (this.disCussFrom.optionNumberMin > number + 1) {
+          this.disCussFrom.optionNumberMin = number + 1
+        }
+      },
+
+      editC(number) {
+        console.log("******************", number)
+        const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+        const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
+        column.max = number
+        columnMin.max = number
+      },
+
+
+      reduceC(number) {
+        const column = this.findObject(this.optionDiscuss.column, "optionNumber")
+        const columnMin = this.findObject(this.optionDiscuss.column, "optionNumberMin")
+        columnMin.max = number - 1
+        column.max = number - 1
+        if (this.disCussFrom.optionNumber > number - 1) {
+          this.disCussFrom.optionNumber = number - 1
+        }
+        if (this.disCussFrom.optionNumberMin > number - 1) {
+          this.disCussFrom.optionNumberMin = number - 1
+        }
+      },
 
       handleExport() {
         this.$confirm("是否导出投票人员数据?", "提示", {
@@ -322,11 +424,13 @@
           }
           data = Qs.stringify(data)
           exportBlob(
-            `/api/blade-userTopics/userTopics/exportUser?${this.website.tokenHeader}=${getToken()}&` + data).then(
-            res => {
-              downloadXls(res.data, `投票人员${dateNow()}.xlsx`)
-              NProgress.done()
-            })
+              `/api/blade-userTopics/userTopics/exportUser?${this.website.tokenHeader}=${getToken()}&` + data)
+            .then(
+              res => {
+                downloadXls(res.data, `投票人员${dateNow()}.xlsx`)
+                NProgress.done()
+              })
+
         })
       },
 
@@ -359,7 +463,7 @@
         done()
       },
 
-      openUser(row, type = 0) {
+      openUser(row, type) {
         this.type = type
         this.popupTableUserShow = true
         this.query = {}
@@ -384,6 +488,7 @@
       },
 
       initData(newData) {
+        console.log("======>", newData);
         this.editFlag = false
         this.popupTableShow = true
         this.articleId = newData.id
@@ -402,6 +507,33 @@
       handleSubmit(form, done) {
         done()
         form.articleId = this.articleId
+        console.log("form===>", form);
+
+
+        if (this.editFlag && Array.isArray(form.attachment)) {
+          if (form.attachment.length > 0) {
+            var urls = []
+            // var split = form.attachment.split(",")
+            form.attachment.forEach(url => {
+              var names = url.split("jczz/")
+              urls.push(names[1])
+            })
+            form.attachment = urls.join(",")
+          } else {
+            form.attachment = "";
+          }
+        } else {
+          if (form.attachment) {
+            var urls = [];
+            var splits = form.attachment.split(",");
+            splits.forEach(url => {
+              var names = url.split("jczz/")
+              urls.push(names[1])
+            })
+            form.attachment = urls.join(",")
+          }
+        }
+
         if (this.disCussFromListClone.length > 0) {
           this.disCussFromListClone.forEach(item => {
             if (form.children.length > 0) {
@@ -443,6 +575,17 @@
       // 提交修改
       rowUpdate(row, index, done, loading) {
         done()
+
+        if (row.attachment.length > 0) {
+          var urls = []
+          var split = row.attachment.split(",")
+          split.forEach(url => {
+            var names = url.split("jczz/")
+            urls.push(names[1])
+          })
+          row.attachment = urls.join(",")
+        }
+
         if (!row.id) {
           addPd(row).then(() => {
             this.onLoad()
@@ -484,6 +627,7 @@
       },
 
       add() {
+        this.disCussFrom = {}
         this.editFlag = true
       },
 
@@ -491,6 +635,7 @@
         this.disCussFrom = row
         this.disCussFromListClone = [].concat(row.children)
         this.editFlag = true
+        this.editC(this.disCussFrom.children.length)
       },
 
       deletes(row) {
@@ -518,7 +663,7 @@
           this.userPage.total = data.total
           this.userData = data.records
           this.userData.forEach(item => {
-            if (item.avatar.length > 0) {
+            if (item.avatar) {
               item.avatar = website.minioUrl + item.avatar
             }
             if (item.signaturePath && item.signaturePath.length > 0) {
@@ -541,4 +686,4 @@
   }
 </script>
 
-<style lang="scss" scoped></style>
\ No newline at end of file
+<style lang="scss" scoped></style>

--
Gitblit v1.9.3