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 | 673 ++++++++++++++++++++++++++++++++------------------------
1 files changed, 385 insertions(+), 288 deletions(-)
diff --git a/src/views/article/components/discussionManageChild.vue b/src/views/article/components/discussionManageChild.vue
index ec9ad87..3adc6a6 100644
--- a/src/views/article/components/discussionManageChild.vue
+++ b/src/views/article/components/discussionManageChild.vue
@@ -1,324 +1,421 @@
<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="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 {
+ import {
getListPd,
getDetailPd,
addPd,
updatePd,
removePd
-} from "@/api/discuss/publicDiscuss"
+ } from "@/api/discuss/publicDiscuss"
-import {
- getPage
-} 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'
-
-import {
- getList as getHouseholdList,
- getDetatils as getHouseholdDetail
-} from "@/api/userHouse/list/houseHold"
+ } from '@/api/system/dict'
+ import userList from "./userList.vue";
+ // import {
+ // getList as getHouseholdList,
+ // getDetatils as getHouseholdDetail
+ // } 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
- },
+ import {
+ getUserlnfoByDistrictlds
+ } from "@/api/system/user"
- // 选择行
- 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: [],
- 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: {},
- }
+ let formData = {}
+ export default {
+ components: {
+ userList
},
- created () {
- this.getUserList()
+ 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
+ },
+ {
+ 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",
+ }, ],
+ }
+ ]
+ },
+ // 表单列表
+ froms: {
+ openFlag: 0,
+ voteRestrictions: 1,
+ signatureFlag: 1,
+ voteNumberPublic: 1,
+ appointUser: 0,
+
+ },
+ dialogVisibles: false,
+ articleId: '',
+ discussion: {},
+ id: "",
+ personList: [],
+ }
+ },
+ created() {
+ // this.getUserList()
},
- mounted () {
+ mounted() {
},
watch: {
- 'disCussFrom.appointUser': {
- handler (newData) {
- const column = this.findObject(this.option.column, "userIds")
- if (newData == 1) {
- column.display = true
- } else {
- column.display = false
- }
- },
+ '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
+ }
},
+ },
},
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: {
- getUserList () {
- let dicUrl = `/api/blade-household/household/selectHouseholdList?searchKey={{key}}&limit=20`
- const column = this.findObject(this.option.column, "userIds")
- column.dicUrl = dicUrl
- },
+ 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")
+ 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
- this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
-
- 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]
-
- getPersonPublicSelect({
- id: this.disCussFrom.userIds
- }).then(res => {
- const column = this.findObject(this.option.column, "userIds")
- column.dicData = res.data.data
-
- this.loading = false
- })
- })
+ 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,
+ }
+ },
+
+ opens() {
+ console.log("******opens*******")
+ // this.dialogVisibles = false
+ this.$refs.DisCussFrom && this.$refs.DisCussFrom.resetForm()
+ this.froms = {
+ openFlag: 0,
+ voteRestrictions: 1,
+ signatureFlag: 1,
+ appointUser: 0,
+ }
+ },
+
+ 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]
+
+ 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()
+
+ })
+ },
+
+
}
-}
+ }
</script>
<style lang="scss" scoped>
-.el-pagination {
+ .el-pagination {
margin-top: 20px;
-}
-</style>
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3