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/discussionManageChild.vue |  691 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 388 insertions(+), 303 deletions(-)

diff --git a/src/views/article/components/discussionManageChild.vue b/src/views/article/components/discussionManageChild.vue
index 92ec700..3adc6a6 100644
--- a/src/views/article/components/discussionManageChild.vue
+++ b/src/views/article/components/discussionManageChild.vue
@@ -1,336 +1,421 @@
 <template>
   <div>
-    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
-      <avue-form ref="DisCussFrom" :option="option" v-model="disCussFrom" @submit="handleSubmit"></avue-form>
+    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose"
+      @close="handleClose" @open="opens">
+      <avue-form ref="DisCussFrom" :option="option" v-model="froms" @submit="handleSubmit"></avue-form>
     </el-dialog>
+
+    <userList ref="userList" @selectPersonList="selectPersonList"></userList>
+
   </div>
 </template>
 
 <script>
-import {
-  getPersonPublicSelect
-} from "@/api/public"
+  import {
+    getPersonPublicSelect
+  } from "@/api/public"
 
-import {
-  getListPd,
-  getDetailPd,
-  addPd,
-  updatePd,
-  removePd
-} from "@/api/discuss/publicDiscuss"
+  import {
+    getListPd,
+    getDetailPd,
+    addPd,
+    updatePd,
+    removePd
+  } from "@/api/discuss/publicDiscuss"
 
-import {
-  getPage
-} from "@/api/discuss/userTopics"
+  import option from "@/option/discuss/publicDiscuss"
+  import {
+    mapGetters
+  } from "vuex"
+  import {
+    getDictionary
+  } from '@/api/system/dict'
+  import userList from "./userList.vue";
 
-import option from "@/option/discuss/publicDiscuss"
-import {
-  mapGetters
-} from "vuex"
-import {
-  getDictionary
-} from '@/api/system/dict'
 
-import {
-  getList as getHouseholdList,
-  getDetatils as getHouseholdDetail
-} from "@/api/userHouse/list/houseHold"
+  // import {
+  //   getList as getHouseholdList,
+  //   getDetatils as getHouseholdDetail
+  // } from "@/api/userHouse/list/houseHold"
 
-import { getUserlnfoByDistrictlds } from "@/api/system/user"
+  import {
+    getUserlnfoByDistrictlds
+  } from "@/api/system/user"
 
-export default {
-  data() {
-    return {
-      dialogVisibles: false,
-      userParams: {},
-      // 分页信息
-      pageUser: {
-        pageSize: 10,
-        pageSizes: [10, 20, 30, 50, 100],
-        currentPage: 1,
-        total: 0
-      },
-      discussForm: {},
-      dialogVisiblesEdit: false,
-      dialogVisiblesUser: false,
-      editFlag: false,
-      ontitle: '编辑议题',
-      // 弹框标题
-      title: '',
-      // 是否展示弹框
-      box: false,
-      // 是否显示查询
-      search: true,
-      // 加载中
-      loading: true,
-      // 是否为查看模式
-      view: false,
-      // 查询信息
-      query: {},
-      // 分页信息
-      page: {
-        pageSize: 10,
-        pageSizes: [10, 20, 30, 50, 100],
-        currentPage: 1,
-        total: 0
-      },
+  let formData = {}
+  export default {
+    components: {
+      userList
+    },
+    data() {
+      return {
+        dialogVisibles: false,
+        userParams: {},
+        // 弹框标题
+        title: '',
+        // 是否展示弹框
+        box: false,
+        // 是否显示查询
+        search: true,
+        // 加载中
+        loading: true,
+        // 是否为查看模式
+        view: false,
+        // 查询信息
+        query: {},
 
-      // 选择行
-      selectionList: [],
-      // 表单配置
-      option: {
-        height: "auto",
-        calcHeight: 54,
-        align: 'center',
-        menuAlign: 'center',
-        addBtn: false,
-        searchMenuSpan: 3,
-        menuWidth: 500,
-        column: [{
-          label: '开启投票',
-          prop: 'openFlag',
-          type: 'radio',
-          button: true,
-          row: true,
-          span: 12,
-          offset: 8,
-          value: 0,
-          dicData: [{
-            label: '开启',
-            value: 0
-          }, {
-            label: '不开启',
-            value: 1
-          }],
-          rules: [{
-            required: true,
-            message: "请选择开启状态",
-            trigger: "blur",
-          },],
-        }, {
-          label: '投票限制',
-          prop: 'voteRestrictions',
-          type: 'radio',
-          button: true,
-          row: true,
-          span: 12,
-          offset: 8,
-          dicData: [{
-            label: '一人一票',
-            value: 0
-          }, {
-            label: '一户一票',
-            value: 1
-          }],
-          rules: [{
-            required: true,
-            message: "请选择投票限制",
-            trigger: "blur",
-          },],
-          value: 0
-        }, {
-          label: '签名',
-          prop: 'signatureFlag',
-          type: 'radio',
-          button: true,
-          row: true,
-          span: 12,
-          offset: 8,
-          dicData: [{
-            label: '不需要',
-            value: 0
-          }, {
-            label: '需要',
-            value: 1
-          }],
-          rules: [{
-            required: true,
-            message: "请选择是否签名",
-            trigger: "blur",
-          },],
-          value: 0
+        // 选择行
+        selectionList: [],
+        // 表单配置
+        option: {
+          height: "auto",
+          calcHeight: 54,
+          align: 'center',
+          menuAlign: 'center',
+          addBtn: false,
+          searchMenuSpan: 3,
+          menuWidth: 500,
+          column: [{
+              label: '开启投票',
+              prop: 'openFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              span: 12,
+              offset: 8,
+              value: 0,
+              dicData: [{
+                label: '开启',
+                value: 0
+              }, {
+                label: '不开启',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择开启状态",
+                trigger: "blur",
+              }, ],
+            }, {
+              label: '投票限制',
+              prop: 'voteRestrictions',
+              type: 'radio',
+              button: true,
+              row: true,
+              span: 12,
+              offset: 8,
+              dicData: [{
+                label: '一人一票',
+                value: 0
+              }, {
+                label: '一户一票',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择投票限制",
+                trigger: "blur",
+              }, ],
+              value: 0
+            }, {
+              label: '签名',
+              prop: 'signatureFlag',
+              type: 'radio',
+              button: true,
+              row: true,
+              span: 12,
+              offset: 8,
+              dicData: [{
+                label: '不需要',
+                value: 0
+              }, {
+                label: '需要',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择是否签名",
+                trigger: "blur",
+              }, ],
+              value: 0
+            },
+            {
+              label: '票数公开',
+              prop: 'voteNumberPublic',
+              type: 'radio',
+              button: true,
+              row: true,
+              span: 12,
+              offset: 8,
+              dicData: [{
+                label: '不需要',
+                value: 0
+              }, {
+                label: '需要',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择是否票数公开",
+                trigger: "blur",
+              }, ],
+              value: 0
+            },
+            {
+              label: '指定用户',
+              prop: 'appointUser',
+              type: 'radio',
+              button: true,
+              row: true,
+              span: 12,
+              offset: 8,
+              dicData: [{
+                label: '不限制',
+                value: 0
+              }, {
+                label: '指定用户',
+                value: 1
+              }],
+              rules: [{
+                required: true,
+                message: "请选择是否指定用户",
+                trigger: "blur",
+              }, ],
+              value: 0
+            },
+            {
+              display: false,
+              label: "选择用户",
+              prop: "userName",
+              tags: true,
+              type: "input",
+              multiple: true,
+              span: 12,
+              offset: 8,
+              remote: true,
+              hide: true,
+              row: true,
+              // dicUrl: `/api/blade-system/user/getUserlnfoByDistrictlds?districtlds={{}}`,
+              // props: {
+              //   label: 'name',
+              //   value: 'id',
+              // },
+              // dicData: [],
+              rules: [{
+                required: true,
+                message: '请输入姓名',
+                trigger: 'blur'
+              }],
+              focus: ({
+                value,
+                column
+              }) => {
+                // this.$message.success('focus事件查看控制台')
+                // console.log('获取焦点', value, column)
+                // this.$refs.userList && this.$refs.userList.resetForm()
+                this.$refs.userList.show(this.discussion.articleRange)
+              },
+            },
+
+            {
+              label: "截止时间",
+              span: 12,
+              offset: 8,
+              row: true,
+              prop: "endTime",
+              type: "datetime",
+              format: "yyyy-MM-dd HH:mm:ss",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              // format: "yyyy-MM-dd hh:mm:ss",
+              // valueFormat: "yyyy-MM-dd hh:mm:ss",
+              rules: [{
+                required: true,
+                message: "请选择截止时间",
+                trigger: "blur",
+              }, ],
+            }
+          ]
         },
-        {
-          label: '指定用户',
-          prop: 'appointUser',
-          type: 'radio',
-          button: true,
-          row: true,
-          span: 12,
-          offset: 8,
-          dicData: [{
-            label: '不限制',
-            value: 0
-          }, {
-            label: '指定用户',
-            value: 1
-          }],
-          rules: [{
-            required: true,
-            message: "请选择是否指定用户",
-            trigger: "blur",
-          },],
-          value: 0
-        },
-        {
-          display: false,
-          label: "选择用户",
-          prop: "userIds",
-          tags: true,
-          type: "tree",
-          multiple: true,
-          span: 12,
-          offset: 8,
-          remote: true,
-          hide: true,
-          row: true,
-          // dicUrl: `/api/blade-system/user/getUserlnfoByDistrictlds?districtlds={{}}`,
-          props: {
-            label: 'name',
-            value: 'id',
-          },
-          dicData: [],
-          rules: [{
-            required: true,
-            message: '请输入姓名',
-            trigger: 'blur'
-          }],
-        },
+        // 表单列表
+        froms: {
+          openFlag: 0,
+          voteRestrictions: 1,
+          signatureFlag: 1,
+          voteNumberPublic: 1,
+          appointUser: 0,
 
-        {
-          label: "截止时间",
-          span: 12,
-          offset: 8,
-          row: true,
-          prop: "endTime",
-          type: "datetime",
-          format: "yyyy-MM-dd HH:mm:ss",
-          valueFormat: "yyyy-MM-dd HH:mm:ss",
-          // format: "yyyy-MM-dd hh:mm:ss",
-          // valueFormat: "yyyy-MM-dd hh:mm:ss",
-          rules: [{
-            required: true,
-            message: "请选择截止时间",
-            trigger: "blur",
-          },],
-        }
-        ]
+        },
+        dialogVisibles: false,
+        articleId: '',
+        discussion: {},
+        id: "",
+        personList: [],
+      }
+    },
+    created() {
+      // this.getUserList()
+    },
+
+    mounted() {
+
+    },
+
+    watch: {
+      'froms.appointUser': {
+        handler(newData) {
+          const column = this.findObject(this.option.column, "userName")
+          if (newData == 1) {
+            column.display = true
+            // this.$refs.userList.show()
+          } else {
+            column.display = false
+          }
+        },
       },
-      // 表单列表
-      disCussFrom: {},
-      dialogVisibles: false,
-      articleId: '',
-      discussion: {},
-    }
-  },
-  created() {
-    this.getUserList()
-  },
-
-  mounted() {
-
-  },
-
-  watch: {
-    'disCussFrom.appointUser': {
-      handler(newData) {
+    },
+    computed: {
+      ...mapGetters(["permission"]),
+      ids() {
+        let ids = []
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id)
+        })
+        return ids.join(",")
+      }
+    },
+    methods: {
+      selectPersonList(personList) {
+        console.log(personList, "++++++++++++")
+        this.personList = personList
+        let nameList = personList.map(e => {
+          return e.name
+        })
+        this.froms.userName = nameList.join(",")
+      },
+      getuserInfoByDistrictId() {
+        getUserlnfoByDistrictlds(this.discussion.articleRange).then(res => {
+          const column = this.findObject(this.option.column, "userIds")
+          column.dicData = res.data.data.records
+        })
+      },
+      getUserList() {
+        let dicUrl = `/api/blade-household/household/selectHouseholdList?searchKey={{key}}&limit=20`
         const column = this.findObject(this.option.column, "userIds")
-        if (newData == 1) {
-          column.display = true
-        } else {
-          column.display = false
+        column.dicUrl = dicUrl
+      },
+
+      handleSubmit(form, done) {
+        form.articleId = this.articleId
+        form.eventType = 1
+        form.userIds = this.personList.map(e => e.id).join(",")
+        // form.userIds = JSON.stringify(form.userIds)
+        if (form.appointUser == 0) {
+          form.userIds = ''
+        }
+
+        form.id = this.id
+
+        addPd(form).then(
+          () => {
+            // this.onLoad(this.discussion)
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            })
+            done()
+            this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+            this.froms = {
+              openFlag: 0,
+              voteRestrictions: 1,
+              signatureFlag: 1,
+              appointUser: 0,
+
+            }
+            this.dialogVisibles = false
+          },
+          (error) => {
+            window.console.log(error)
+          }
+        )
+      },
+      init(data) {
+        console.log("===init===", data)
+        this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+        this.dialogVisibles = true
+        this.froms = {
+          openFlag: 0,
+          voteRestrictions: 1,
+          signatureFlag: 1,
+          appointUser: 0,
+        }
+        this.discussion = data
+        this.articleId = data.id
+        this.onLoad(data)
+      },
+
+      handleClose() {
+        console.log("******handleClose*******")
+        this.dialogVisibles = false
+        this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+        this.froms = {
+          openFlag: 0,
+          voteRestrictions: 1,
+          signatureFlag: 1,
+          appointUser: 0,
         }
       },
-    },
-  },
-  computed: {
-    ...mapGetters(["permission"]),
-    ids() {
-      let ids = []
-      this.selectionList.forEach(ele => {
-        ids.push(ele.id)
-      })
-      return ids.join(",")
-    }
-  },
-  methods: {
-    getUserList() {
-      let dicUrl = `/api/blade-household/household/selectHouseholdList?searchKey={{key}}&limit=20`
-      const column = this.findObject(this.option.column, "userIds")
-      column.dicUrl = dicUrl
-    },
 
-    handleSubmit(row, done) {
-      row.articleId = this.articleId
-      row.eventType = 1
-      row.userIds = JSON.stringify(row.userIds)
-      addPd(row).then(
-        () => {
-          this.onLoad(this.discussion)
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          })
-          done()
-          this.dialogVisibles = false
-        },
-        (error) => {
-          window.console.log(error)
+      opens() {
+        console.log("******opens*******")
+        // this.dialogVisibles = false
+        this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+        this.froms = {
+          openFlag: 0,
+          voteRestrictions: 1,
+          signatureFlag: 1,
+          appointUser: 0,
         }
-      )
-    },
-    init(data) {
-      console.log("====>", data);
-      this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
-      this.dialogVisibles = true
-      this.disCussFrom = {}
-      // this.disCussFrom = data;
-      this.discussion = data
-      this.articleId = data.id
-      this.onLoad(data)
-    },
+      },
 
-    handleClose() {
-      this.dialogVisibles = false
-      this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+      onLoad(row, params = {
+        eventType: 1,
+        articleId: row.id
+      }) {
+        // this.loading = true
+        getListPd(1, 10, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data
+          this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+          if (data.records.length <= 0) {
+            console.log("--------onLoad------------")
+            this.id = ''
+            this.froms = {
+              openFlag: 0,
+              voteRestrictions: 1,
+              signatureFlag: 1,
+              appointUser: 0,
+            }
+          } else {
+            console.log(">>>>>onLoad", data.records[0])
+            this.froms = data.records[0]
 
-      console.log(this.$refs, 90999)
-    },
+            this.id = data.records[0].id
+            formData = data.records[0]
+            if (this.froms && this.froms.userIds) {
+              this.froms.userIds = JSON.parse(this.froms.userIds)
+            }
+          }
+          // this.getuserInfoByDistrictId()
 
-    onLoad(data, params = {
-      eventType: 1,
-      articleId: data.id
-    }) {
-      this.loading = true
+        })
+      },
 
 
-
-      getListPd(1, 10, Object.assign(params, this.query)).then(res => {
-        const data = res.data.data
-        this.page.total = data.total
-        this.disCussFrom = data.records[0]
-        if (this.disCussFrom.userIds) {
-          // getPersonPublicSelect({
-          //   id: this.disCussFrom.userIds
-          // }).then(res => {
-          //   const column = this.findObject(this.option.column, "userIds")
-          //   column.dicData = res.data.data
-          //   this.loading = false
-          // })
-          getUserlnfoByDistrictlds(data.articleRange).then(res => {
-            console.log(res);
-            const column = this.findObject(this.option.column, "userIds")
-            column.dicData = res.data.data
-          })
-        }
-      })
     }
   }
-}
 </script>
 
 <style lang="scss" scoped>
-.el-pagination {
-  margin-top: 20px;
-}
+  .el-pagination {
+    margin-top: 20px;
+  }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3