lin
2024-02-28 34dbf82112e28c111ffb2efdf2653ee42df80b21
src/views/article/discussionManage.vue
@@ -12,9 +12,9 @@
            </template>
            <template slot-scope="{type,size,row }" slot="menu">
                <!-- <el-button icon="el-icon-circle-plus-outline" :size="size" :type="type" @click.stop="openDilog(row, 1)">
                    创建议题
                </el-button> -->
                <el-button icon="el-icon-s-tools" :size="size" :type="type" @click.stop="openDilog(row, 1)">
                    设置
                </el-button>
                <el-button icon="el-icon-edit" :size="size" :type="type" @click.stop="openEditPopup(row, 1)">
                    编辑议题
@@ -35,34 +35,23 @@
                </el-button>
            </template>
            <template slot-scope="{ row }" slot="publish">
                <el-tag>{{ row.publish == "1" ? "已发布" : row.publish == "0" ? "未发布" : "未发布" }}
            <template slot-scope="{ row, size }" slot="publish">
                <el-tag :size="size" :type="showStatus(row.publish, 1).type" v-text="showStatus(row.publish, 1).text">
                </el-tag>
            </template>
            <template slot-scope="{ row }" slot="iscomment">
                <el-tag>{{ row.iscomment == "1" ? "开启" : row.iscomment == "0" ? "关闭" : "关闭" }}
                </el-tag>
            <template slot-scope="{ row, size }" slot="iscomment">
                <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
                    :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
                </el-switch>
            </template>
        </avue-crud>
        <deitDiscussion ref="DeitDiscussion">
        </deitDiscussion>
        <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="80%" :before-close="handleClose">
            <discussionManageChild ref="discussionManageChild" />
            <!-- <span slot="title" class="dialog-footer">
        {{discussForm.ontitle}}
      </span> -->
            <!--  <div id="" v-if="discussForm.eventType == 1">
        <avue-form @submit="handleSubmit" :option="optionDiscuss" v-model="discussForm"></avue-form>
      </div> -->
        <discussionManageChild ref="discussionManageChild" />
            <!-- <div id="" v-else>
        <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
        </avue-form>
      </div> -->
        </el-dialog>
    </basic-container>
</template>
@@ -121,7 +110,6 @@
                userIds: '',
                eventType: 1,
            },
            dialogVisibles: false,
            form: {},
            query: {},
            loading: true,
@@ -133,27 +121,32 @@
            datetime: "",
            selectionList: [],
            option: {
                labelWidth: 96,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 500,
                height: "auto",
                calcHeight: 54,
                dialogWidth: 950,
                tip: false,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 450,
                border: false,
                border: true,
                //stripe:true,
                index: true,
                viewBtn: true,
                viewBtn: false,
                selection: true,
                excelBtn: true,
                dialogClickModal: false,
                column: [{
                    overHidden: true,
                    label: "议事标题",
                    prop: "title",
                    span: 24,
                    row: true,
                    searchSpan: 4,
                    search: true,
                    searchLabelWidth: 76,
                    rules: [{
                        required: true,
                        message: "请输入议事标题",
@@ -165,6 +158,7 @@
                    prop: "articleList",
                    span: 24,
                    minRows: 2,
                    tags: true,
                    type: "tree",
                    multiple: true,
                    dicData: [],
@@ -180,29 +174,10 @@
                    hide: true,
                },
                {
                    label: "发布时间",
                    prop: "dateTime",
                    type: "datetime",
                    format: "yyyy-MM-dd",
                    valueFormat: "yyyy-MM-dd",
                    searchSpan: 5,
                    searchRange: true,
                    hide: true,
                    addDisplay: false,
                    editDisplay: false,
                    viewDisplay: false,
                    search: true,
                    rules: [{
                        required: true,
                        message: "请选择发布时间",
                        trigger: "blur",
                    },],
                },
                {
                    width: 110,
                    label: "封面",
                    prop: "url",
                    // align:'center',
                    width: 80,
                    type: "upload",
                    listType: "picture-img",
                    action: "/api/blade-resource/oss/endpoint/put-file",
@@ -214,11 +189,81 @@
                    span: 24,
                },
                {
                    width: 110,
                    label: "议事类型",
                    prop: "articleType",
                    addDisplay: true,
                    editDisplay: true,
                    viewDisplay: true,
                    searchSpan: 4,
                    checkStrictly: true,
                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=investigateType",
                    props: {
                        label: "dictValue",
                        value: "dictKey",
                    },
                    search: true,
                    type: "tree",
                    rules: [{
                        required: true,
                        message: "请选择议事类型",
                        trigger: "blur",
                    },],
                },
                // {
                //   label: "发布时间",
                //   prop: "dateTime",
                //   type: "daterange",
                //   format: "yyyy-MM-dd",
                //   valueFormat: "yyyy-MM-dd",
                //   searchSpan: 6,
                //   searchRange: true,
                //   hide: true,
                //   addDisplay: false,
                //   editDisplay: false,
                //   viewDisplay: false,
                //   search: true,
                //   rules: [{
                //     required: true,
                //     message: "请选择发布时间",
                //     trigger: "blur",
                //   }, ],
                // },
                {
                    width: 100,
                    label: "发布时间",
                    prop: "createTime",
                    type: "date",
                    format: "yyyy-MM-dd",
                    valueFormat: "yyyy-MM-dd HH:mm:ss",
                    search: true,
                    addDisplay: false,
                    editDisplay: false,
                    viewDisplay: false,
                },
                {
                    width: 100,
                    label: "发布状态",
                    prop: "publish",
                    searchSpan: 4,
                    value: "0",
                    slot: true,
                    search: true,
                    type: "select",
                    rules: [{
                        required: true,
                        message: "请选择发布状态",
                        trigger: "blur",
                    },],
                    dicData: [{
                        label: "未发布",
                        value: "0",
                    },
                    {
                        label: "已发布",
                        value: "1",
                    }
                    ],
                },
                {
                    span: 24,
@@ -420,6 +465,7 @@
                editBtn: this.vaildData(this.permission.article_edit, true),
            }
        },
        ids () {
            let ids = []
            this.selectionList.forEach((ele) => {
@@ -427,10 +473,47 @@
            })
            return ids.join(",")
        },
        showStatus () {
            return (data, type) => {
                if (data == 0) {
                    return {
                        text: type == 1 ? '未发布' : '关闭',
                        type: 'info'
                    }
                } else if (data == 1) {
                    return {
                        text: type == 1 ? '已发布' : '开启',
                        type: 'success'
                    }
                }
            }
        }
    },
    methods: {
        iscommentInput (e, data) {
            upcomment(data.id, e).then(() => {
                this.$message({
                    type: "success",
                    message: "操作成功!",
                })
            })
        },
        openEditPopup (row) {
            this.$refs.DeitDiscussion.initData(row)
            getListPd(1, 10, {
                eventType: 1,
                articleId: row.id
            }).then(res => {
                if (res.data.data.records.length == 0) {
                    this.$message.warning('请先设置议事规则!')
                    setTimeout(() => {
                        this.openDilog(row, 1)
                    }, 200)
                } else {
                    this.$refs.DeitDiscussion.initData(row)
                }
            })
        },
        openUserPopup (row) {
@@ -439,48 +522,12 @@
        openDilog (row, type) {
            var that = this
            this.dialogVisibles = true
            this.$nextTick(() => {
                that.$refs.discussionManageChild.init(row)
            })
            // this.discussForm.eventType = type
            // this.discussForm.articleId = row.id
            // this.discussForm.title = row.title
            // if (type == 0) {
            //   this.discussForm.ontitle = '公益报名'
            // } else {
            //   this.discussForm.ontitle = '创建议题'
            // }
        },
        handleSubmit (form, done) {
            done()
            addPd(form).then(
                () => {
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    })
                    this.dialogVisibles = false
                    done()
                },
                (error) => {
                    window.console.log(error)
                    // loading();
                }
            )
        },
        handleClose (done) {
            done()
            // this.$confirm('确认关闭?')
            //   .then(_ => {
            //     done();
            //   })
            //   .catch(_ => {});
        },
        rowSave (row, done, loading) {
            console.log(row, 9999)
            if (row.videoUrl.length == 0) {
                row.videoUrl = ""
            }
@@ -497,7 +544,7 @@
            }
            // 类型  0:文章 1经营性收支,2:物业招标 3:公益报名 4:选举调查
            row.type = 4
            row.publish = 1
            // row.publish = 1
            add(row).then(
                () => {
@@ -653,6 +700,7 @@
                this.page.total = data.total
                this.data = data.records
                this.data.forEach(item => {
                    // item.articleRange = JSON.parse(item.articleRange)
                    if (item.url.length > 0) {
                        var urls = []
                        var names = item.url.split(",")