| | |
| | | <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> |