From 16567c73dda0cefb9b1176bf29dff2f23871413e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 23 Nov 2023 17:54:35 +0800
Subject: [PATCH] 议题议事+公益报名
---
src/views/article/article.vue | 527 ++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 404 insertions(+), 123 deletions(-)
diff --git a/src/views/article/article.vue b/src/views/article/article.vue
index 679dade..247ac47 100644
--- a/src/views/article/article.vue
+++ b/src/views/article/article.vue
@@ -1,56 +1,25 @@
<template>
<basic-container>
- <avue-crud
- :option="option"
- :table-loading="loading"
- :data="data"
- :page.sync="page"
- ref="crud"
- @row-del="rowDel"
- v-model="form"
- :permission="permissionList"
- @row-update="rowUpdate"
- @row-save="rowSave"
- :before-open="beforeOpen"
- @search-change="searchChange"
- @search-reset="searchReset"
- @selection-change="selectionChange"
- @current-change="currentChange"
- @size-change="sizeChange"
- @refresh-change="refreshChange"
- @on-load="onLoad"
- >
+ <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
+ v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+ @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+ @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<template slot="menuLeft">
- <el-button
-
- size="small"
- icon="el-icon-delete"
- plain
- v-if="permission.article_delete"
- @click="handleDelete"
- >删 除
+ <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删 除
</el-button>
- <el-button
-
- size="small"
- icon="el-icon-s-order"
- plain
- @click="kqcomment"
- >开启评论
+ <el-button size="small" icon="el-icon-s-order" plain @click="kqcomment">开启评论
</el-button>
- <el-button
-
- size="small"
- icon="el-icon-s-release"
- plain
- @click="gbcomment"
- >关闭评论
+ <el-button size="small" icon="el-icon-s-release" plain @click="gbcomment">关闭评论
</el-button>
-
-
</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,0)">
+ 公益报名
+ </el-button>
+ <el-button icon="el-icon-circle-plus-outline" :size="size" :type="type" @click.stop="openDilog(row,1)">
+ 创建议题
+ </el-button>
<el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
撤销
</el-button>
@@ -60,32 +29,96 @@
</template>
<template slot-scope="{ row }" slot="publish">
- <el-tag
- >{{
+ <el-tag>{{
row.publish == "1" ? "已发布" : row.publish == "0" ? "未发布" : "未发布"
}}
</el-tag>
</template>
<template slot-scope="{ row }" slot="iscomment">
- <el-tag
- >{{
+ <el-tag>{{
row.iscomment == "1" ? "开启" : row.iscomment == "0" ? "关闭" : "关闭"
}}
</el-tag>
</template>
-
</avue-crud>
+
+
+
+ <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
+ <span slot="title" class="dialog-footer">
+ {{discussForm.ontitle}}
+ </span>
+ <div id="" v-if="discussForm.eventType == 2">
+ <avue-form @submit="handleSubmit" :option="optionDiscuss" v-model="discussForm"></avue-form>
+ </div>
+
+ <div id="" v-else>
+ <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
+ </avue-form>
+ </div>
+
+ </el-dialog>
+
+ <!-- <el-dialog title="用户数据导入" append-to-body :visible.sync="dialogVisibles" width="555px">
+ <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
+ </el-button>
+ </template>
+ </avue-form>
+ </el-dialog> -->
+
+
+
</basic-container>
</template>
<script>
- import {getList, remove, update, add, getNotice, upcomment} from "@/api/article/article";
- import {mapGetters} from "vuex";
+ import {
+ getList,
+ remove,
+ update,
+ add,
+ getNotice,
+ upcomment
+ } from "@/api/article/article";
+
+ import {
+ getListPd,
+ removePd,
+ updatePd,
+ addPd,
+ getNoticePd,
+ upcommentPd
+ } from "@/api/discuss/publicDiscuss";
+ import {
+ mapGetters
+ } from "vuex";
export default {
data() {
return {
+ discussForm: {
+ ontitle: '',
+ title: '',
+ openFlag: 0,
+ numberRestrictions: 0,
+ voteRestrictions: 0,
+ userRestrictions: 0,
+ endTime: '',
+ articleId: '',
+ createTime: '',
+ updateTime: '',
+ deleteFlag: '',
+ repeatVote: 0,
+ voteNumberPublic: 0,
+ appointUser: '',
+ userIds: '',
+ eventType: 1,
+ },
+ dialogVisibles: false,
form: {},
query: {},
loading: true,
@@ -103,7 +136,7 @@
tip: false,
searchShow: true,
searchMenuSpan: 3,
- menuWidth: 350,
+ menuWidth: 450,
border: false,
//stripe:true,
index: true,
@@ -111,21 +144,18 @@
selection: true,
excelBtn: true,
dialogClickModal: false,
- column: [
- {
+ column: [{
label: "资讯标题",
prop: "title",
span: 24,
row: true,
searchSpan: 4,
search: true,
- rules: [
- {
- required: true,
- message: "请输入资讯标题",
- trigger: "blur",
- },
- ],
+ rules: [{
+ required: true,
+ message: "请输入资讯标题",
+ trigger: "blur",
+ }, ],
},
{
label: "资讯封面",
@@ -148,13 +178,11 @@
search: true,
searchSpan: 4,
span: 24,
- rules: [
- {
- required: true,
- message: "请输入资讯类型",
- trigger: "blur",
- },
- ],
+ rules: [{
+ required: true,
+ message: "请输入资讯类型",
+ trigger: "blur",
+ }, ],
},
{
label: "资讯类型",
@@ -171,13 +199,11 @@
},
search: true,
type: "tree",
- rules: [
- {
- required: true,
- message: "请选择资讯类型",
- trigger: "blur",
- },
- ],
+ rules: [{
+ required: true,
+ message: "请选择资讯类型",
+ trigger: "blur",
+ }, ],
},
{
label: "发布时间",
@@ -192,13 +218,11 @@
editDisplay: false,
viewDisplay: false,
search: true,
- rules: [
- {
- required: true,
- message: "请选择发布时间",
- trigger: "blur",
- },
- ],
+ rules: [{
+ required: true,
+ message: "请选择发布时间",
+ trigger: "blur",
+ }, ],
},
{
label: "发布时间",
@@ -216,15 +240,12 @@
slot: true,
search: true,
type: "select",
- rules: [
- {
- required: true,
- message: "请选择发布状态",
- trigger: "blur",
- },
- ],
- dicData: [
- {
+ rules: [{
+ required: true,
+ message: "请选择发布状态",
+ trigger: "blur",
+ }, ],
+ dicData: [{
label: "未发布",
value: "0",
},
@@ -240,8 +261,7 @@
width: 80,
slot: true,
type: "select",
- dicData: [
- {
+ dicData: [{
label: "关闭",
value: "0",
},
@@ -286,6 +306,228 @@
],
},
data: [],
+ optionEnroll: {
+ 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: 'numberRestrictions',
+ type: 'number',
+ button: true,
+ row: true,
+ min: 0,
+ max: 99999999,
+ controlsPosition: '',
+ step: 10,
+ offset: 6,
+ }, {
+ labelWidth: 100,
+ label: '投票限制',
+ prop: 'voteRestrictions',
+ type: 'radio',
+ button: true,
+ row: true,
+ offset: 6,
+ dicData: [{
+ label: '一人一票',
+ value: 0
+ }, {
+ label: '一户一票',
+ value: 1
+ }]
+ }, {
+ labelWidth: 100,
+ label: '用户限制',
+ prop: 'userRestrictions',
+ type: 'radio',
+ button: true,
+ row: true,
+ offset: 6,
+ dicData: [{
+ label: '不限制',
+ value: 0
+ }, {
+ label: '必须绑定手机',
+ value: 1
+ }, {
+ label: '必须绑定房屋',
+ value: 2
+ }]
+ },
+ {
+ label: "截止时间",
+ row: true,
+ offset: 6,
+ prop: "endTime",
+ type: "datetime",
+ format: "yyyy-MM-dd hh:mm:ss",
+ valueFormat: "timestamp",
+ },
+ ]
+ },
+ optionDiscuss: {
+ column: [{
+ label: "",
+ // labelWidth: 20,
+ type: 'title',
+ prop: "title",
+ span: 24,
+ row: true,
+ offset: 2,
+ styles: {
+ // color: 'red',
+ 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: 'repeatVote',
+ type: 'radio',
+ button: true,
+ row: true,
+ offset: 6,
+ dicData: [{
+ label: '不可以',
+ value: 0
+ }, {
+ label: '可以',
+ value: 1
+ }]
+ }, {
+ labelWidth: 100,
+ label: '投票限制',
+ prop: 'voteRestrictions',
+ type: 'radio',
+ button: true,
+ row: true,
+ offset: 6,
+ dicData: [{
+ label: '一人一票',
+ value: 0
+ }, {
+ label: '一户一票',
+ value: 1
+ }]
+ }, {
+ labelWidth: 100,
+ label: '用户限制',
+ prop: 'userRestrictions',
+ type: 'radio',
+ button: true,
+ row: true,
+ offset: 6,
+ dicData: [{
+ label: '不限制',
+ value: 0
+ }, {
+ label: '必须绑定手机',
+ value: 1
+ }, {
+ label: '必须绑定房屋',
+ value: 2
+ }]
+ }, {
+ labelWidth: 100,
+ label: '票数公开',
+ prop: 'voteNumberPublic',
+ type: 'radio',
+ button: true,
+ row: true,
+ offset: 6,
+ dicData: [{
+ label: '全程公开',
+ value: 0
+ }, {
+ label: '投票后公开',
+ value: 1
+ }, {
+ label: '投票结束后公开',
+ value: 2
+ }, {
+ label: '不公开',
+ value: 3
+ }]
+ },
+ {
+ label: "截止时间",
+ row: true,
+ offset: 6,
+ prop: "endTime",
+ type: "datetime",
+ format: "yyyy-MM-dd hh:mm:ss",
+ valueFormat: "timestamp",
+ },
+ // {
+ // labelWidth: 100,
+ // label: '人数限制',
+ // prop: 'numberRestrictions',
+ // type: 'number',
+ // button: true,
+ // row: true,
+ // min: 0,
+ // max: 99999999,
+ // controlsPosition: '',
+ // step: 10,
+ // offset: 6,
+ // },
+ // {
+ // labelWidth: 100,
+ // label: '指定用户',
+ // prop: 'appointUser',
+ // type: 'radio',
+ // button: true,
+ // row: true,
+ // offset: 6,
+ // dicData: [{
+ // label: '不限制',
+ // value: 0
+ // }, {
+ // label: '指定用户可见',
+ // value: 1
+ // }]
+ // },
+ ]
+ },
};
},
watch: {
@@ -297,13 +539,11 @@
if (val.indexOf('ksp') != -1) {
videoUrl.display = true;
content.display = false;
- videoUrl.rules = [
- {
- required: false,
- message: "请选择视频",
- trigger: "blur",
- },
- ];
+ videoUrl.rules = [{
+ required: false,
+ message: "请选择视频",
+ trigger: "blur",
+ }, ];
} else {
videoUrl.display = false;
content.display = true;
@@ -315,7 +555,7 @@
}
},
computed: {
- ...mapGetters(["permission","userInfo"]),
+ ...mapGetters(["permission", "userInfo"]),
permissionList() {
return {
addBtn: this.vaildData(this.permission.article_add, true),
@@ -333,11 +573,50 @@
},
},
methods: {
+
+ openDilog(row, type) {
+ this.dialogVisibles = true
+ 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) {
if (row.videoUrl.length == 0) {
row.videoUrl = "";
}
- row.userid=this.userInfo.user_id;
+ row.userid = this.userInfo.user_id;
add(row).then(
() => {
this.onLoad(this.page);
@@ -371,10 +650,10 @@
},
rowDel(row) {
this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
.then(() => {
return remove(row.id);
})
@@ -409,10 +688,10 @@
return;
}
this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
.then(() => {
return remove(this.ids);
})
@@ -444,7 +723,9 @@
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
- const {dateTime} = this.query;
+ const {
+ dateTime
+ } = this.query;
let values = {
...params,
};
@@ -493,12 +774,12 @@
return;
}
this.$confirm("确定将选择数据开启评论?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- }).then(() => {
- return upcomment(this.ids, "1");
- })
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ }).then(() => {
+ return upcomment(this.ids, "1");
+ })
.then(() => {
this.onLoad(this.page);
this.$message({
@@ -514,12 +795,12 @@
return;
}
this.$confirm("确定将选择数据开启评论?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- }).then(() => {
- return upcomment(this.ids, "0");
- })
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ }).then(() => {
+ return upcomment(this.ids, "0");
+ })
.then(() => {
this.onLoad(this.page);
this.$message({
--
Gitblit v1.9.3