shuishen
2024-01-29 2cec09706b01d65def3f945bdcde13e620a71c2e
src/views/article/components/deitDiscussion.vue
@@ -4,9 +4,9 @@
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-01-04 17:13:22
 * @FilePath: \jczz_web\src\views\article\components\deitDiscussion.vue
 * @Description:
 *
 * Copyright (c) 2024 by shuishen, All Rights Reserved.
 * @Description:
 *
 * Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<template>
    <div>
@@ -41,8 +41,9 @@
            </div>
        </el-dialog>
        <el-dialog title="" append-to-body :visible.sync="popupTableUserShow" width="50%" :before-close="userHandleClose">
            <avue-crud :data="userData" :page="userPage" :option="userOption"></avue-crud>
        <el-dialog title="" append-to-body :visible.sync="popupTableUserShow" width="80%" :before-close="userHandleClose">
            <avue-crud :data="userData" :page="userPage" :option="userOption" @search-change="searchChange"
                @search-reset="searchReset"></avue-crud>
        </el-dialog>
    </div>
</template>
@@ -59,6 +60,8 @@
import {
    getPage
} from "@/api/discuss/userTopics"
import website from '@/config/website'
import {
@@ -91,7 +94,7 @@
                createTime: '',
                updateTime: '',
                deleteFlag: '',
                publicDiscussId: '',
                articleId: '',
                parentId: '',
                level: '',
                children: [{
@@ -101,62 +104,72 @@
                    createTime: '',
                    updateTime: '',
                    deleteFlag: '',
                    publicDiscussId: '',
                    articleId: '',
                    parentId: '',
                    level: '',
                }]
            },
            optionDiscuss: {
                emptyText: '取消',
                column: [
                    {
                        label: '议题',
                        prop: 'discussContent',
                        type: 'input',
                        row: true,
                    },
                    {
                        label: '选项范围',
                        prop: 'optionRange',
                        type: 'radio',
                        button: true,
                        row: true,
                        dicData: [{
                            label: '多选',
                            value: 1
                        }, {
                            label: '单选',
                            value: 0
                        }]
                    },
                    {
                        label: '排序',
                        prop: 'sort',
                        controlsPosition: '',
                        type: 'number'
                    },
                    {
                        label: '选项内容',
                        prop: 'children',
                        type: 'dynamic',
                        span: 24,
                        children: {
                            column: [{
                                label: '选项标题',
                                prop: 'optionContent',
                                type: 'input',
                                rules: [{
                                    required: true,
                                    message: '请输入选项标题',
                                    trigger: 'blur'
                                }]
                            }, {
                                label: '选项说明',
                                prop: 'optionDetail',
                                type: 'input',
                column: [{
                    label: '议题',
                    prop: 'discussContent',
                    type: 'input',
                    row: true,
                    rules: [{
                        required: true,
                        message: '请输入议题',
                        trigger: 'blur'
                    }],
                },
                {
                    label: '选项范围',
                    prop: 'optionRange',
                    type: 'radio',
                    value: 0,
                    button: true,
                    row: true,
                    dicData: [{
                        label: '多选',
                        value: 1
                    }, {
                        label: '单选',
                        value: 0
                    }],
                    rules: [{
                        required: true,
                        message: '请选项范围',
                        trigger: 'blur'
                    }],
                },
                // {
                //   label: '排序',
                //   prop: 'sort',
                //   controlsPosition: '',
                //   type: 'number'
                // },
                {
                    label: '选项内容',
                    prop: 'children',
                    type: 'dynamic',
                    span: 24,
                    children: {
                        column: [{
                            label: '选项标题',
                            prop: 'optionContent',
                            type: 'input',
                            rules: [{
                                required: true,
                                message: '请输入选项标题',
                                trigger: 'blur'
                            }]
                        }
                    },
                        }, {
                            label: '选项说明',
                            prop: 'optionDetail',
                            type: 'input',
                        }]
                    }
                },
                ]
            },
@@ -173,39 +186,68 @@
                defaultExpandAll: true,
                rowKey: 'id',
                rowParentKey: 'parentId',
                column: [
                    {
                        label: '标题',
                        prop: 'discussContent',
                    },
                    {
                        label: '选项内容',
                        prop: 'optionContent',
                    }
                column: [{
                    label: '标题',
                    prop: 'discussContent',
                },
                {
                    label: '选项内容',
                    prop: 'optionContent',
                }
                ]
            },
            publicDiscussId: '',
            articleId: '',
            userData: [],
            userOption: {
                addBtn: false,
                labelWidth: 96,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                // menuWidth: 500,
                menu: false,
                height: "auto",
                calcHeight: 54,
                dialogWidth: 950,
                tip: false,
                border: true,
                //stripe:true,
                index: true,
                editBtn: false,
                addBtn: false,
                viewBtn: false,
                selection: true,
                delBtn: false,
                excelBtn: true,
                dialogClickModal: false,
                column: [{
                    label: '姓名',
                    prop: 'name'
                    prop: 'name',
                    searchSpan: 4,
                    search: true,
                }, {
                    label: '头像',
                    type: 'upload',
                    listType: "picture-img",
                    prop: 'avatar'
                }, {
                    label: '手机',
                    prop: 'phone'
                    prop: 'phone',
                    searchSpan: 4,
                    search: true,
                }, {
                    label: '小区',
                    prop: 'aoiName'
                }, {
                    label: '地址',
                    prop: 'addressName'
                }, {
                    label: '签名',
                    type: 'upload',
                    listType: "picture-img",
                    prop: 'signaturePath'
                }, {
                    label: '时间',
                    prop: 'createTime'
@@ -218,20 +260,45 @@
                currentPage: 1,
                total: 0
            },
            query: {},
        }
    },
    watch: {
    },
    watch: {},
    methods: {
        userHandleClose () {
            this.popupTableUserShow = false
        },
        searchReset () {
            this.query = {}
            this.getUserPage(this.userPage)
        },
        searchChange (params, done) {
            this.query = params
            this.userPage.currentPage = 1
            this.getUserPage(this.userPage, params)
            done()
        },
        initData (newData) {
            this.editFlag = false
            this.popupTableShow = true
            this.publicDiscussId = newData.id
            this.onLoad()
            this.articleId = newData.id
            this.query.level = 1
            this.query.articleId = this.articleId
            this.onLoad(this.userPage, this.query)
        },
        // initData(newData) {
        //   this.editFlag = false
        //   this.popupTableShow = true
        //   this.articleId = newData.id
        //   this.onLoad()
        // },
        handleClose () {
            this.popupTableShow = false
@@ -240,7 +307,7 @@
        handleSubmit (form, done) {
            done()
            form.publicDiscussId = this.publicDiscussId
            form.articleId = this.articleId
            add(form).then(
                () => {
@@ -253,7 +320,7 @@
                    let params = {
                        level: 1,
                        publicDiscussId: this.publicDiscussId
                        articleId: this.articleId
                    }
                    getLists(1, 100, Object.assign(params, this.query)).then(res => {
@@ -305,7 +372,7 @@
                    return remove(row.id)
                })
                .then(() => {
                    this.onLoad()
                    this.getUserPage(this.userPage)
                    this.$message({
                        type: "success",
@@ -344,10 +411,10 @@
        openUser (row, type = 0) {
            this.popupTableUserShow = true
            this.query = {}
            if (type == 0) {
                this.userParams = {
                    publicDiscussId: row.id
                    articleId: row.id
                }
            } else {
                this.userParams = {
@@ -362,18 +429,21 @@
                const data = res.data.data
                this.userPage.total = data.total
                this.userData = data.records
                this.userData.forEach(item => {
                    if (item.avatar.length > 0) {
                        item.avatar = website.minioUrl + item.avatar
                    }
                    if (item.signaturePath && item.signaturePath.length > 0) {
                        item.signaturePath = website.minioUrl + item.signaturePath
                        // console.log("=====>", item.signaturePath)
                    }
                })
            })
        },
        onLoad () {
        onLoad (page, params = {}) {
            this.loading = true
            let params = {
                level: 1,
                publicDiscussId: this.publicDiscussId
            }
            getLists(1, 100, Object.assign(params, this.query)).then(res => {
            getLists(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
                const data = res.data.data
                this.data = data
                this.loading = false