From af37ee88ef6d9647fa2b368271dcf53f656ea4fa Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Mon, 18 Dec 2023 11:18:29 +0800
Subject: [PATCH] 按钮隐藏
---
src/views/article/article.vue | 475 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 350 insertions(+), 125 deletions(-)
diff --git a/src/views/article/article.vue b/src/views/article/article.vue
index 679dade..abbdc13 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,94 @@
</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 == 1">
+ <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>
+
+
+
+
</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 website from '@/config/website';
+
+
+ import {
+ getDistrictTree
+ } from "@/api/district/index";
+
+ 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 +134,7 @@
tip: false,
searchShow: true,
searchMenuSpan: 3,
- menuWidth: 350,
+ menuWidth: 450,
border: false,
//stripe:true,
index: true,
@@ -111,21 +142,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 +176,25 @@
search: true,
searchSpan: 4,
span: 24,
- rules: [
- {
- required: true,
- message: "请输入资讯类型",
- trigger: "blur",
- },
- ],
+ rules: [{
+ required: true,
+ message: "请输入资讯类型",
+ trigger: "blur",
+ }, ],
+ }, {
+ label: "资讯范围",
+ prop: "articleList",
+ span: 12,
+ minRows: 2,
+ type: "cascader",
+ multiple: true,
+ tags: true,
+ dicData: [],
+ props: {
+ label: "name",
+ value: 'id'
+ },
+ hide: true,
},
{
label: "资讯类型",
@@ -171,13 +211,11 @@
},
search: true,
type: "tree",
- rules: [
- {
- required: true,
- message: "请选择资讯类型",
- trigger: "blur",
- },
- ],
+ rules: [{
+ required: true,
+ message: "请选择资讯类型",
+ trigger: "blur",
+ }, ],
},
{
label: "发布时间",
@@ -192,13 +230,11 @@
editDisplay: false,
viewDisplay: false,
search: true,
- rules: [
- {
- required: true,
- message: "请选择发布时间",
- trigger: "blur",
- },
- ],
+ rules: [{
+ required: true,
+ message: "请选择发布时间",
+ trigger: "blur",
+ }, ],
},
{
label: "发布时间",
@@ -216,15 +252,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 +273,7 @@
width: 80,
slot: true,
type: "select",
- dicData: [
- {
+ dicData: [{
label: "关闭",
value: "0",
},
@@ -286,6 +318,99 @@
],
},
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
+ }]
+ },
+
+ {
+ label: "截止时间",
+ row: true,
+ offset: 6,
+ prop: "endTime",
+ type: "datetime",
+ format: "yyyy-MM-dd hh:mm:ss",
+ valueFormat: "timestamp",
+ },
+ ]
+ },
+ optionDiscuss: {
+ 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",
+ },
+ ]
+ },
+ districtTree: [],
};
},
watch: {
@@ -297,13 +422,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 +438,7 @@
}
},
computed: {
- ...mapGetters(["permission","userInfo"]),
+ ...mapGetters(["permission", "userInfo"]),
permissionList() {
return {
addBtn: this.vaildData(this.permission.article_add, true),
@@ -333,11 +456,60 @@
},
},
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;
+ row.articleRange = JSON.stringify(row.articleList)
+ if (row.url.length > 0) {
+ var urls = []
+ var split = row.url.split(",");
+ split.forEach(url => {
+ var names = url.split("jczz/");
+ urls.push(names[1])
+ })
+ row.url = urls.join(",")
+ }
add(row).then(
() => {
this.onLoad(this.page);
@@ -354,6 +526,17 @@
);
},
rowUpdate(row, index, done, loading) {
+ row.articleRange = JSON.stringify(row.articleList)
+ if (row.url.length > 0) {
+ var urls = []
+ var split = row.url.split(",");
+ split.forEach(url => {
+ var names = url.split("jczz/");
+ urls.push(names[1])
+ })
+ row.url = urls.join(",")
+ }
+
update(row).then(
() => {
this.onLoad(this.page);
@@ -371,10 +554,10 @@
},
rowDel(row) {
this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
.then(() => {
return remove(row.id);
})
@@ -409,10 +592,10 @@
return;
}
this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
.then(() => {
return remove(this.ids);
})
@@ -428,7 +611,18 @@
beforeOpen(done, type) {
if (["edit", "view"].includes(type)) {
getNotice(this.form.id).then((res) => {
- this.form = res.data.data;
+ let data = res.data.data
+ // data.forEach(item=>{
+ if (data.url.length > 0) {
+ var urls = []
+ var names = data.url.split(",");
+ names.forEach(name => {
+ urls.push(website.minioUrl + name)
+ })
+ data.url = urls.join(",")
+ }
+ // })
+ this.form = data;
});
}
// con
@@ -444,7 +638,9 @@
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
- const {dateTime} = this.query;
+ const {
+ dateTime
+ } = this.query;
let values = {
...params,
};
@@ -457,13 +653,31 @@
};
values.dateTime = null;
}
+ values.type = 0
this.loading = true;
getList(page.currentPage, page.pageSize, values).then((res) => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
+ this.data.forEach(item => {
+ if (item.url.length > 0) {
+ var urls = []
+ var names = item.url.split(",");
+ names.forEach(name => {
+ urls.push(website.minioUrl + name)
+ })
+ item.url = urls.join(",")
+ }
+ })
this.loading = false;
this.selectionClear();
+ });
+ getDistrictTree(params = {}).then((res) => {
+ const data = res.data.data;
+ this.districtTree = data;
+ const column = this.findObject(this.option.column, "articleList");
+ column.dicData = res.data.data;
+ this.loading = false;
});
},
updateFb(row) {
@@ -472,6 +686,17 @@
} else {
row.publish = "0";
}
+
+ if (row.url.length > 0) {
+ var urls = []
+ var split = row.url.split(",");
+ split.forEach(url => {
+ var names = url.split("jczz/");
+ urls.push(names[1])
+ })
+ row.url = urls.join(",")
+ }
+
update(row).then(
() => {
this.onLoad(this.page);
@@ -493,12 +718,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 +739,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({
@@ -537,4 +762,4 @@
.avue-upload__icon {
line-height: 6;
}
-</style>
+</style>
\ No newline at end of file
--
Gitblit v1.9.3