From c9b3952131b7273bf4f29c00975b6d737a3aae64 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 08 Jan 2024 14:46:39 +0800
Subject: [PATCH] 走访日志和议事管理,人员选择更改

---
 src/views/article/components/discussionManageChild.vue |  669 ++++++++++++++++++++++++-------------------------------
 1 files changed, 291 insertions(+), 378 deletions(-)

diff --git a/src/views/article/components/discussionManageChild.vue b/src/views/article/components/discussionManageChild.vue
index 807e7a0..84fcfae 100644
--- a/src/views/article/components/discussionManageChild.vue
+++ b/src/views/article/components/discussionManageChild.vue
@@ -1,421 +1,334 @@
 <template>
-  <div>
-    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="60%" :before-close="handleClose">
-      <avue-form ref="DisCussFrom" :option="option" v-model="disCussFrom" @submit="handleSubmit"></avue-form>
-    </el-dialog>
-  </div>
+    <div>
+        <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="60%" :before-close="handleClose">
+            <avue-form ref="DisCussFrom" :option="option" v-model="disCussFrom" @submit="handleSubmit"></avue-form>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
-  import {
+import { getPersonPublicSelect } from "@/api/public"
+
+import {
     getListPd,
     getDetailPd,
     addPd,
     updatePd,
     removePd
-  } from "@/api/discuss/publicDiscuss"
+} from "@/api/discuss/publicDiscuss"
 
-  import {
+import {
     getPage
-  } from "@/api/discuss/userTopics"
+} from "@/api/discuss/userTopics"
 
-  import option from "@/option/discuss/publicDiscuss"
-  import {
+import option from "@/option/discuss/publicDiscuss"
+import {
     mapGetters
-  } from "vuex"
-  import {
+} from "vuex"
+import {
     getDictionary
-  } from '@/api/system/dict'
+} from '@/api/system/dict'
 
-  import {
+import {
     getList as getHouseholdList,
     getDetatils as getHouseholdDetail
-  } from "@/api/userHouse/list/houseHold"
+} from "@/api/userHouse/list/houseHold"
 
 
 
-  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
-        },
-
-        // 选择行
-        selectionList: [],
-        // 表单配置
-        option: {
-          height: "auto",
-          calcHeight: 54,
-          align: 'center',
-          menuAlign: 'center',
-          addBtn: false,
-          searchMenuSpan: 3,
-          menuWidth: 500,
-          column: [{
-              label: '标题',
-              prop: 'title',
-              searchSpan: 4,
-              span: 6,
-            },
-            {
-              label: '参与人数',
-              prop: 'topsCount',
-              searchSpan: 4,
-              display: false,
-              span: 6,
-            },
-            {
-              label: '开启投票',
-              prop: 'openFlag',
-              type: 'radio',
-              button: true,
-              span: 6,
-              value: 0,
-              dicData: [{
-                label: '开启',
-                value: 0
-              }, {
-                label: '不开启',
-                value: 1
-              }],
-              rules: [{
-                required: true,
-                message: "请选择开启状态",
-                trigger: "blur",
-              }, ],
-            }, {
-              label: '投票限制',
-              prop: 'voteRestrictions',
-              type: 'radio',
-              button: true,
-              span: 6,
-              dicData: [{
-                label: '一人一票',
-                value: 0
-              }, {
-                label: '一户一票',
-                value: 1
-              }],
-              rules: [{
-                required: true,
-                message: "请选择投票限制",
-                trigger: "blur",
-              }, ],
-              value: 0
-            }, {
-              label: '签名',
-              prop: 'signatureFlag',
-              type: 'radio',
-              button: true,
-              span: 6,
-              dicData: [{
-                label: '不需要',
-                value: 0
-              }, {
-                label: '需要',
-                value: 1
-              }],
-              rules: [{
-                required: true,
-                message: "请选择是否签名",
-                trigger: "blur",
-              }, ],
-              value: 0
-            }, {
-              label: '指定用户',
-              prop: 'appointUser',
-              type: 'radio',
-              button: true,
-              span: 6,
-              dicData: [{
-                label: '不限制',
-                value: 0
-              }, {
-                label: '指定用户',
-                value: 1
-              }],
-              rules: [{
-                required: true,
-                message: "请选择是否指定用户",
-                trigger: "blur",
-              }, ],
-              value: 0
-            },
-            {
-              label: "选择用户",
-              prop: "userIds",
-              hide: true,
-              type: "table",
-              display: false,
-              span: 6,
-              // labelWidth: 120,
-              searchSpan: 4,
-              search: true,
-              children: {
-                border: true,
-                height: 400,
-                searchShow: true,
-                searchMenuSpan: 6,
-                submitText: "确定",
-                selection: true,
-                column: [{
-                    label: "社区",
-                    prop: "neiName",
-                    // search: true,
-                    searchSpan: 4,
-                  }, {
-                    label: "姓名",
-                    prop: "name",
-                    searchSpan: 4,
-                    rules: [{
-                      required: true,
-                      message: "请输入姓名",
-                      trigger: "blur",
-                    }, ],
-                    display: true,
-                    hide: true,
-                  },
-                  {
-                    label: "小区",
-                    prop: "aoiCode",
-                    searchSpan: 5,
-                    type: 'tree',
-                    search: true,
-                    parent: false,
-                    dicUrl: `/api/blade-district/district/getDistrictTree`,
-                    props: {
-                      label: "name",
-                      value: "aoiCode"
-                    },
-                    // defaultExpandedKeys: ["361102003"],
-                    span: 12,
-                    labelWidth: 120,
-                    width: 220,
-                    // overHidden: true,
-                    rules: [{
-                      required: true,
-                      message: "请选择小区",
-                      trigger: "blur",
-                    }, ],
-                    // disabled: true
-                    display: true,
-                    // hide: true,
-                  },
-
-                  {
-                    label: "楼栋",
-                    prop: "building",
-                    search: true,
-                    searchSpan: 4,
-                  },
-                  {
-                    label: "单元",
-                    prop: "unit",
-                    search: true,
-                    searchSpan: 4,
-                  },
-                  {
-                    label: "地址",
-                    // search: true,
-                    searchSpan: 8,
-                    prop: "currentAddress",
-                    display: false
-                  },
-                ],
-              },
-              page: {
+export default {
+    data () {
+        return {
+            dialogVisibles: false,
+            userParams: {},
+            // 分页信息
+            pageUser: {
                 pageSize: 10,
+                pageSizes: [10, 20, 30, 50, 100],
                 currentPage: 1,
                 total: 0
-              },
-              formatter: (row) => {
-                // this.form.phoneNumber =  row.phoneNumber
-                return row.name
-              },
-              onLoad: ({
-                page,
-                value,
-                data
-              }, callback) => {
-                //首次加载去查询对应的值
-                if (value) {
-                  getHouseholdDetail(value).then(res => {
-                    var resData = res.data.data
-                    // 查询对应行数据
-                    callback(resData)
-                    return
-                  })
-                }
-                if (page) {
-                  this.loading = true
-                  var params = {
-                    ...data,
-                    // townStreetCode: "361102005"
-                  }
-                  getHouseholdList(page.currentPage, page.pageSize, Object.assign(params)).then(res => {
-                    const resData = res.data.data
-                    var total = resData.total
-                    var data = resData.records
-                    this.loading = false
-                    //分页查询信息
-                    callback({
-                      total: total,
-                      data: data
-                    })
-                  })
-                }
-              },
-              props: {
-                label: 'name',
-                value: 'id'
-              }
             },
-            {
-              label: "截止时间",
-              span: 6,
-              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",
-              }, ],
-            }
-          ]
-        },
-        // 表单列表
-        disCussFrom: {},
-        dialogVisibles: false,
-        articleId: '',
-        discussion: {},
-      }
+            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
+            },
+
+            // 选择行
+            selectionList: [],
+            // 表单配置
+            option: {
+                height: "auto",
+                calcHeight: 54,
+                align: 'center',
+                menuAlign: 'center',
+                addBtn: false,
+                searchMenuSpan: 3,
+                menuWidth: 500,
+                column: [{
+                    label: '标题',
+                    prop: 'title',
+                    searchSpan: 4,
+                    span: 6,
+                },
+                {
+                    label: '参与人数',
+                    prop: 'topsCount',
+                    searchSpan: 4,
+                    display: false,
+                    span: 6,
+                },
+                {
+                    label: '开启投票',
+                    prop: 'openFlag',
+                    type: 'radio',
+                    button: true,
+                    span: 6,
+                    value: 0,
+                    dicData: [{
+                        label: '开启',
+                        value: 0
+                    }, {
+                        label: '不开启',
+                        value: 1
+                    }],
+                    rules: [{
+                        required: true,
+                        message: "请选择开启状态",
+                        trigger: "blur",
+                    },],
+                }, {
+                    label: '投票限制',
+                    prop: 'voteRestrictions',
+                    type: 'radio',
+                    button: true,
+                    span: 6,
+                    dicData: [{
+                        label: '一人一票',
+                        value: 0
+                    }, {
+                        label: '一户一票',
+                        value: 1
+                    }],
+                    rules: [{
+                        required: true,
+                        message: "请选择投票限制",
+                        trigger: "blur",
+                    },],
+                    value: 0
+                }, {
+                    label: '签名',
+                    prop: 'signatureFlag',
+                    type: 'radio',
+                    button: true,
+                    span: 6,
+                    dicData: [{
+                        label: '不需要',
+                        value: 0
+                    }, {
+                        label: '需要',
+                        value: 1
+                    }],
+                    rules: [{
+                        required: true,
+                        message: "请选择是否签名",
+                        trigger: "blur",
+                    },],
+                    value: 0
+                }, {
+                    label: '指定用户',
+                    prop: 'appointUser',
+                    type: 'radio',
+                    button: true,
+                    span: 6,
+                    dicData: [{
+                        label: '不限制',
+                        value: 0
+                    }, {
+                        label: '指定用户',
+                        value: 1
+                    }],
+                    rules: [{
+                        required: true,
+                        message: "请选择是否指定用户",
+                        trigger: "blur",
+                    },],
+                    value: 0
+                },
+
+                {
+                    display: false,
+                    label: "选择用户",
+                    prop: "userIds",
+                    type: 'select',
+                    span: 6,
+                    remote: true,
+                    hide: true,
+                    dicUrl: "",
+                    props: {
+                        label: 'name',
+                        value: 'id',
+                    },
+                    dicData: [],
+                    formatter: (row) => {
+                        console.log(row, 1212213)
+                        return row.name
+                    },
+                    rules: [
+                        {
+                            required: true,
+                            message: '请输入姓名',
+                            trigger: 'blur'
+                        }
+                    ],
+                },
+
+                {
+                    label: "截止时间",
+                    span: 6,
+                    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",
+                    },],
+                }
+                ]
+            },
+            // 表单列表
+            disCussFrom: {},
+            dialogVisibles: false,
+            articleId: '',
+            discussion: {},
+        }
     },
-    mounted() {
+    created () {
+        this.getUserList()
+    },
+
+    mounted () {
 
     },
+
     watch: {
-      'disCussFrom.appointUser': {
-        handler(newData) {
-          const column = this.findObject(this.option.column, "userIds")
-          if (newData == 1) {
-            column.display = true
-          } else {
-            column.display = false
-          }
+        "disCussFrom.userIds": {
+            handler (val) {
+                if (val) {
+
+                    getPersonPublicSelect({
+                        id: val
+                    }).then(res => {
+                        const column = this.findObject(this.option.column, "userIds")
+                        column.dicData = res.data.data
+                    })
+
+                }
+            }
         },
-      },
-      "disCussFrom.userIds": {
-        // form是表单或者表格绑定的数据集,v-model='form'
-        handler(val) {
-          this.$nextTick(() => {
-            console.log(this.$refs, 66666)
-            // getHouseholdDetail(val).then(res => {
-            //   const data = res.data.data
-            //   this.form.phoneNumber = data.phoneNumber
-            //   this.form.currentAddress = data.currentAddress
-            // })
-          })
+        'disCussFrom.appointUser': {
+            handler (newData) {
+                const column = this.findObject(this.option.column, "userIds")
+                if (newData == 1) {
+                    column.display = true
+                } else {
+                    column.display = false
+                }
+            },
         },
-        immediate: true,
-      },
     },
     computed: {
-      ...mapGetters(["permission"]),
-      ids() {
-        let ids = []
-        this.selectionList.forEach(ele => {
-          ids.push(ele.id)
-        })
-        return ids.join(",")
-      }
+        ...mapGetters(["permission"]),
+        ids () {
+            let ids = []
+            this.selectionList.forEach(ele => {
+                ids.push(ele.id)
+            })
+            return ids.join(",")
+        }
     },
     methods: {
-      handleSubmit(row, done) {
-        row.articleId = this.articleId
-        row.eventType = 1
-        addPd(row).then(
-          () => {
-            this.onLoad(this.discussion)
-            this.$message({
-              type: "success",
-              message: "操作成功!",
-            })
-            done()
+        getUserList () {
+            let dicUrl = `/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
+            addPd(row).then(
+                () => {
+                    this.onLoad(this.discussion)
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    })
+                    done()
+                    this.dialogVisibles = false
+                },
+                (error) => {
+                    window.console.log(error)
+                }
+            )
+        },
+        init (data) {
+            this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+            this.dialogVisibles = true
+            this.disCussFrom = {}
+            this.discussion = data
+            this.articleId = data.id
+            this.onLoad(data)
+        },
+
+        handleClose () {
             this.dialogVisibles = false
-          },
-          (error) => {
-            window.console.log(error)
-          }
-        )
-      },
-      init(data) {
-        this.dialogVisibles = true
-        this.disCussFrom = {}
-        this.discussion = data
-        this.articleId = data.id
-        this.onLoad(data)
-      },
+            this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
 
-      handleClose() {
-        this.dialogVisibles = false
-        this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+            console.log(this.$refs, 90999)
+        },
 
-        console.log(this.$refs, 90999)
-      },
-
-      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]
-          this.loading = false
-        })
-      }
+        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]
+                this.loading = false
+            })
+        }
     }
-  }
+}
 </script>
 
 <style lang="scss" scoped>
-  .el-pagination {
+.el-pagination {
     margin-top: 20px;
-  }
+}
 </style>

--
Gitblit v1.9.3