| | |
| | | </template> |
| | | |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button type="text" icon="el-icon-circle-plus-outline" size="small" |
| | | @click.stop="openDilog(scope.row,scope.index)">编辑议题 |
| | | <el-button type="text" icon="el-icon-edit" size="small" @click.stop="openEdit(scope.row,scope.index)">编辑 |
| | | </el-button> |
| | | <el-button type="primary" icon="el-icon-edit" size="small" @click.stop="openDilog(scope.row,scope.index)">编辑议题 |
| | | </el-button> |
| | | <el-button type="primary" icon="el-icon-edit" size="small" @click.stop="openUser(scope.row,0)">参与用户 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | |
| | | <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose"> |
| | | <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="60%" :before-close="handleClose"> |
| | | <span slot="title" class="dialog-footer"> |
| | | {{ontitle}} |
| | | </span> |
| | | <avue-form @submit="handleSubmit" :option="optionDiscuss" v-model="disCussFrom"> |
| | | </avue-form> |
| | | |
| | | <div id="" v-if="editFlag"> |
| | | <avue-form @submit="handleSubmit" :option="optionDiscuss" @reset-change="handleReset" v-model="disCussFrom"> |
| | | </avue-form> |
| | | </div> |
| | | |
| | | <div id=""> |
| | | <avue-crud :option="optionList" :data="form" ref="crud" @row-save="rowSave" @row-update="rowUpdate" |
| | | @row-del="rowDel"> |
| | | <template slot="menuLeft" v-if="!editFlag"> |
| | | <el-button type="primary" size="small" plain icon="el-icon-circle-plus-outline" @click="add()">添加 |
| | | </el-button> |
| | | </template> |
| | | <template #icon="scope"> |
| | | <i :class="scope.row.icon" style="font-size:14px"></i> |
| | | </template> |
| | | <template #menu="{row,size}"> |
| | | <el-button v-if="row.level === 1" :size="size" text type="primary" @click="edit(row)">编辑</el-button> |
| | | <el-button v-if="row.level === 1" :size="size" text type="danger" @click="deletes(row)">删除</el-button> |
| | | <el-button v-if="row.level === 2" :size="size" text type="primary" @click="openUser(row,1)">选择此项人数 |
| | | :{{row.number}} 详情</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="" append-to-body :visible.sync="dialogVisiblesEdit" width="50%" :before-close="editHandleClose"> |
| | | <span slot="title" class="dialog-footer"> |
| | | 编辑议题 |
| | | </span> |
| | | <div id=""> |
| | | <avue-form @submit="handleSubmitEdit" :option="optionDiscussEdit" v-model="discussForm"></avue-form> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="" append-to-body :visible.sync="dialogVisiblesUser" width="50%" :before-close="userHandleClose"> |
| | | <!-- <span slot="title" class="dialog-footer"> |
| | | {{discussForm.ontitle}} |
| | | </span> --> |
| | | <avue-crud :data="userData" :page="pageUser" :option="option1" @on-load="getUser"></avue-crud> |
| | | </el-dialog> |
| | | |
| | | </basicContainer> |
| | | </template> |
| | | |
| | |
| | | } from "@/api/discuss/publicDiscuss"; |
| | | |
| | | import { |
| | | getLists, |
| | | getList, |
| | | getDetail, |
| | | add, |
| | | update, |
| | | remove |
| | | } from "@/api/discuss/topics"; |
| | | |
| | | import { |
| | | getPage |
| | | } from "@/api/discuss/userTopics"; |
| | | |
| | | import option from "@/option/discuss/publicDiscuss"; |
| | | import { |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | option1: { |
| | | addBtn: false, |
| | | menu: false, |
| | | column: [{ |
| | | label: '姓名', |
| | | prop: 'name' |
| | | }, { |
| | | label: '头像', |
| | | prop: 'avatar' |
| | | }, { |
| | | label: '手机', |
| | | prop: 'phone' |
| | | }, { |
| | | label: '小区', |
| | | prop: 'aoiName' |
| | | }, { |
| | | label: '地址', |
| | | prop: 'addressName' |
| | | }, { |
| | | label: '时间', |
| | | prop: 'createTime' |
| | | }] |
| | | }, |
| | | userParams: {}, |
| | | // 分页信息 |
| | | pageUser: { |
| | | pageSize: 10, |
| | | pageSizes: [10, 20, 30, 50, 100], |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | discussForm: { |
| | | title: '', |
| | | openFlag: 0, |
| | | numberRestrictions: 0, |
| | | voteRestrictions: 0, |
| | | userRestrictions: 0, |
| | | endTime: '', |
| | | articleId: '', |
| | | createTime: '', |
| | | updateTime: '', |
| | | deleteFlag: '', |
| | | repeatVote: 0, |
| | | voteNumberPublic: 0, |
| | | appointUser: '', |
| | | userIds: '', |
| | | eventType: 1, |
| | | }, |
| | | dialogVisiblesEdit: false, |
| | | dialogVisiblesUser: false, |
| | | editFlag: false, |
| | | optionList: { |
| | | headerAlign: 'center', |
| | | align: 'center', |
| | | border: true, |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | defaultExpandAll: true, |
| | | rowKey: 'id', |
| | | rowParentKey: 'parentId', |
| | | column: [{ |
| | | label: '标题', |
| | | prop: 'discussContent', |
| | | }, |
| | | { |
| | | label: '选项内容', |
| | | prop: 'optionContent', |
| | | } |
| | | ] |
| | | }, |
| | | optionDiscuss: { |
| | | emptyText: '取消', |
| | | column: [{ |
| | | label: '议题', |
| | | prop: 'discussContent', |
| | |
| | | row: true, |
| | | }, { |
| | | label: '选项范围', |
| | | prop: 'option', |
| | | prop: 'optionRange', |
| | | type: 'radio', |
| | | button: true, |
| | | row: true, |
| | | dicData: [{ |
| | | label: '多选', |
| | | value: 0 |
| | | value: 1 |
| | | }, { |
| | | label: '单选', |
| | | value: 1 |
| | | value: 0 |
| | | }] |
| | | }, { |
| | | label: '排序', |
| | |
| | | } |
| | | }, |
| | | ] |
| | | |
| | | }, |
| | | optionDiscussEdit: { |
| | | column: [{ |
| | | label: "", |
| | | type: 'title', |
| | | prop: "title", |
| | | span: 24, |
| | | row: true, |
| | | offset: 2, |
| | | styles: { |
| | | fontSize: '24px' |
| | | } |
| | | }, { |
| | | labelWidth: 100, |
| | | label: '开启投票', |
| | | prop: 'openFlag', |
| | | type: 'radio', |
| | | button: true, |
| | | row: true, |
| | | offset: 6, |
| | | dicData: [{ |
| | | label: '开启', |
| | | value: 0 |
| | | }, { |
| | | label: '不开启', |
| | | value: 1 |
| | | }] |
| | | }, { |
| | | labelWidth: 100, |
| | | label: '开启签名', |
| | | prop: 'signatureFlag', |
| | | type: 'radio', |
| | | button: true, |
| | | row: true, |
| | | offset: 6, |
| | | dicData: [{ |
| | | label: '开启', |
| | | value: 0 |
| | | }, { |
| | | label: '不开启', |
| | | value: 1 |
| | | }] |
| | | }, |
| | | { |
| | | label: "截止时间", |
| | | row: true, |
| | | offset: 6, |
| | | prop: "endTime", |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd hh:mm:ss", |
| | | valueFormat: "timestamp", |
| | | }, |
| | | ] |
| | | }, |
| | | disCussFrom: { |
| | | discussContent: '', |
| | | option: 0, |
| | | optionRange: 0, |
| | | sort: 1, |
| | | optionContent: '', |
| | | optionDetail: '', |
| | |
| | | total: 0 |
| | | }, |
| | | // 表单数据 |
| | | form: {}, |
| | | form: [], |
| | | // 选择行 |
| | | selectionList: [], |
| | | // 表单配置 |
| | | option: option, |
| | | option: { |
| | | selection: true, |
| | | height: "auto", |
| | | calcHeight: 54, |
| | | align: 'center', |
| | | menuAlign: 'center', |
| | | addBtn: false, |
| | | editBtn: false, |
| | | searchMenuSpan: 3, |
| | | searchBtn: true, |
| | | menuWidth: 500, |
| | | column: [{ |
| | | label: 'ID', |
| | | prop: 'id', |
| | | searchSpan: 4, |
| | | // search: true, |
| | | }, |
| | | { |
| | | label: '标题', |
| | | prop: 'title', |
| | | searchSpan: 4, |
| | | search: true, |
| | | }, |
| | | { |
| | | label: '参与人数', |
| | | prop: 'topsCount', |
| | | searchSpan: 4, |
| | | search: true, |
| | | }, |
| | | { |
| | | label: '截止时间', |
| | | prop: 'endTime', |
| | | searchSpan: 4, |
| | | search: true, |
| | | } |
| | | ] |
| | | }, |
| | | // 表单列表 |
| | | data: [], |
| | | userData: [], |
| | | dataTop: [], |
| | | dialogVisibles: false, |
| | | publicDiscussId: '', |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | }, |
| | | methods: { |
| | | |
| | | openUser(row, type) { |
| | | console.table(row) |
| | | this.dialogVisiblesUser = true |
| | | if (type == 0) { |
| | | this.userParams = { |
| | | publicDiscussId: row.id |
| | | } |
| | | } else { |
| | | this.userParams = { |
| | | topicsId: row.id |
| | | } |
| | | } |
| | | this.getUserPage(this.pageUser, this.userParams) |
| | | }, |
| | | |
| | | getUserPage(page, params = {}) { |
| | | getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.pageUser.total = data.total; |
| | | this.userData = data.records; |
| | | }); |
| | | }, |
| | | |
| | | openEdit(row) { |
| | | this.discussForm = row |
| | | let times = new Date(row.endTime).getTime(); |
| | | this.discussForm.endTime = times |
| | | this.dialogVisiblesEdit = true |
| | | }, |
| | | // 提交修改 |
| | | handleSubmitEdit(form, done) { |
| | | done() |
| | | if (!this.discussForm.id) { |
| | | addPd(this.discussForm).then(() => { |
| | | this.dialogVisiblesEdit = false |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }); |
| | | } else { |
| | | updatePd(this.discussForm).then(() => { |
| | | this.dialogVisiblesEdit = false |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | deletes(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | // this.onLoad(this.page); |
| | | this.dialogVisibles = false |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | handleClose() { |
| | | this.editFlag = false |
| | | this.dialogVisibles = false |
| | | this.disCussFrom = {} |
| | | }, |
| | | |
| | | edithandleClose() { |
| | | this.dialogVisiblesEdit = false |
| | | }, |
| | | |
| | | edit(row) { |
| | | this.disCussFrom = row |
| | | this.editFlag = true |
| | | }, |
| | | |
| | | add() { |
| | | this.editFlag = true |
| | | }, |
| | | |
| | | handleReset() { |
| | | this.editFlag = false |
| | | }, |
| | | |
| | | openDilog(row, type) { |
| | | this.dialogVisibles = true |
| | | this.loading = true; |
| | | let params = {} |
| | | getList(1, 100, Object.assign(params, this.query)).then(res => { |
| | | this.publicDiscussId = row.id |
| | | let params = { |
| | | level: 1, |
| | | publicDiscussId: row.id |
| | | } |
| | | getLists(1, 100, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.dataTop = data.records; |
| | | this.form = data; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }) |
| | |
| | | |
| | | handleSubmit(form, done) { |
| | | done(); |
| | | form.publicDiscussId = this.publicDiscussId |
| | | add(form).then( |
| | | () => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.dialogVisibles = false |
| | | done(); |
| | | this.editFlag = false |
| | | let params = { |
| | | level: 1, |
| | | publicDiscussId: this.publicDiscussId |
| | | } |
| | | getLists(1, 100, Object.assign(params, this.query)).then(res => { |
| | | const data = res.data.data; |
| | | this.form = data; |
| | | }) |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | |
| | | .el-pagination { |
| | | margin-top: 20px; |
| | | } |
| | | </style> |
| | | </style> |