main
parent
e070925cf8
commit
67c042df6f
@ -0,0 +1,114 @@
|
|||||||
|
export const formItem = [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
label:'标题',
|
||||||
|
prop:'title',
|
||||||
|
placeholder:'请输入'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label:'推送对象',
|
||||||
|
prop:'object',
|
||||||
|
option:[{ id:1,name:'全部'},{ id:2,name:'住户'},{ id:3,name:'业主'},{ id:4,name:'租户'},{ id:5,name:'管家'}],
|
||||||
|
placeholder:'请选择'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label:'发布状态',
|
||||||
|
prop:'status',
|
||||||
|
option:[{ id:1,name:'未发布'},{ id:2,name:'已发布'}],
|
||||||
|
placeholder:'请选择'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'time',
|
||||||
|
label:'更新时间',
|
||||||
|
start: 'modifyStartTime',
|
||||||
|
end:'modifyEndTime'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const columns = [
|
||||||
|
{
|
||||||
|
title: "标题",
|
||||||
|
dataIndex: "title",
|
||||||
|
width: "16%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "推送对象",
|
||||||
|
dataIndex: "object",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (object) {
|
||||||
|
switch (object) {
|
||||||
|
case 1:
|
||||||
|
return '全部'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '住户'
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
return '业主'
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
return '租户'
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
return '管家'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "状态",
|
||||||
|
dataIndex: "status",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (status) {
|
||||||
|
switch (status) {
|
||||||
|
case 1:
|
||||||
|
return '未发布'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '已发布'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "内容",
|
||||||
|
dataIndex: "content",
|
||||||
|
width: "13%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "阅读量",
|
||||||
|
dataIndex: "readingVolume",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "附件下载次数",
|
||||||
|
dataIndex: "downloadNum",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "更新时间",
|
||||||
|
dataIndex: "modifyDate",
|
||||||
|
width: "14%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "action",
|
||||||
|
key: "action",
|
||||||
|
width: "180",
|
||||||
|
fixed: "right",
|
||||||
|
scopedSlots: { customRender: "action" },
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const pagination = {
|
||||||
|
current: 1,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 10,
|
||||||
|
showTotal: (total) => `共 ${total} 条`,
|
||||||
|
showSizeChanger: true,
|
||||||
|
showQuickJumper: true,
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
export const form = {
|
||||||
|
id:undefined,
|
||||||
|
title:undefined,
|
||||||
|
object:undefined,
|
||||||
|
status:undefined,
|
||||||
|
content:undefined,
|
||||||
|
coverImgUrls:[],
|
||||||
|
annexUrls:[],
|
||||||
|
}
|
||||||
|
export const rules = {
|
||||||
|
title:[{required:true,message:'请输入标题',trigger:'blur'}],
|
||||||
|
object:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
status:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
content:[{required:true,message:'请输入标题',trigger:'blur'}],
|
||||||
|
}
|
||||||
|
export const options = {
|
||||||
|
status:[
|
||||||
|
{ id:1, name:'未发布' },
|
||||||
|
{ id:2, name:'已发布' },
|
||||||
|
],
|
||||||
|
object:[
|
||||||
|
{ id:1, name:'全部' },
|
||||||
|
{ id:2, name:'住户' },
|
||||||
|
{ id:3, name:'业主' },
|
||||||
|
{ id:4, name:'租户' },
|
||||||
|
{ id:5, name:'管家' },
|
||||||
|
],
|
||||||
|
}
|
@ -0,0 +1,241 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-drawer
|
||||||
|
:title="title"
|
||||||
|
:width="720"
|
||||||
|
:visible="show"
|
||||||
|
:body-style="{ paddingBottom: '80px' }"
|
||||||
|
@close="addClose"
|
||||||
|
>
|
||||||
|
<div class="drawer-content">
|
||||||
|
基本信息
|
||||||
|
<a-divider></a-divider>
|
||||||
|
<a-form-model
|
||||||
|
ref="ruleForm"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
layout="vertical"
|
||||||
|
>
|
||||||
|
<a-form-model-item prop="title" label="标题">
|
||||||
|
<a-input
|
||||||
|
v-model="form.title"
|
||||||
|
placeholder="请输入标题"
|
||||||
|
style="width: 80%"
|
||||||
|
></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="object" label="推送对象">
|
||||||
|
<a-select
|
||||||
|
v-model="form.object"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 80%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.object"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="status" label="状态">
|
||||||
|
<a-select
|
||||||
|
v-model="form.status"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 80%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.status"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="content" label="内容">
|
||||||
|
<a-textarea
|
||||||
|
v-model="form.content"
|
||||||
|
placeholder="请输入内容"
|
||||||
|
style="width: 80%"
|
||||||
|
></a-textarea>
|
||||||
|
</a-form-model-item>
|
||||||
|
封面图片
|
||||||
|
<commonUpload
|
||||||
|
:fileList="fileList"
|
||||||
|
@handleChange="handleChange"
|
||||||
|
></commonUpload>
|
||||||
|
附件
|
||||||
|
<a-upload
|
||||||
|
name="file"
|
||||||
|
:multiple="true"
|
||||||
|
:action="`${$upload}`"
|
||||||
|
:file-list="documentList"
|
||||||
|
accept=".doc,.DOC,.xls,.XLS,.xlsx,.XLSX,.pdf,.PDF"
|
||||||
|
:headers="uploadHeaders"
|
||||||
|
@change="changeFile"
|
||||||
|
>
|
||||||
|
<a-button> <a-icon type="upload" /> 上传附件</a-button>
|
||||||
|
</a-upload>
|
||||||
|
</a-form-model>
|
||||||
|
</div>
|
||||||
|
<div class="drawer-footer">
|
||||||
|
<a-button :style="{ marginRight: '8px' }" @click="addClose">
|
||||||
|
关闭
|
||||||
|
</a-button>
|
||||||
|
<a-button type="primary" @click="submit"> 提交 </a-button>
|
||||||
|
</div>
|
||||||
|
</a-drawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import store from "@/store";
|
||||||
|
import { form, rules, options } from "./form.js";
|
||||||
|
import {
|
||||||
|
announcementInsert,
|
||||||
|
announcementUpdate,
|
||||||
|
announcementInfo,
|
||||||
|
} from "@/api/operation/announcement";
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
editId: Number,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: "新增公告",
|
||||||
|
form,
|
||||||
|
rules,
|
||||||
|
options,
|
||||||
|
fileList: [],
|
||||||
|
documentList: [],
|
||||||
|
uploadHeaders: {
|
||||||
|
"manage-login-token": store.getters.getToken,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addClose() {
|
||||||
|
this.$refs.ruleForm.resetFields();
|
||||||
|
this.fileList = [];
|
||||||
|
this.documentList = [];
|
||||||
|
this.form.coverImgUrls = [];
|
||||||
|
this.form.annexUrls = [];
|
||||||
|
this.$emit("addClose");
|
||||||
|
},
|
||||||
|
success() {
|
||||||
|
this.$emit("success");
|
||||||
|
this.addClose();
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
console.log(this.documentList);
|
||||||
|
let arr = [];
|
||||||
|
for (let k of this.documentList) {
|
||||||
|
if (k.response) {
|
||||||
|
arr.push(k.response.data);
|
||||||
|
} else {
|
||||||
|
arr.push(k.url.split("/")[k.url.split("/").length - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.form.annexUrls = arr;
|
||||||
|
console.log(this.form);
|
||||||
|
this.$refs.ruleForm.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.editId === null) {
|
||||||
|
let res = await announcementInsert(this.form);
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success(res.msg);
|
||||||
|
this.success();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log(this.form);
|
||||||
|
let res = await announcementUpdate(this.form);
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success(res.msg);
|
||||||
|
this.success();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
changeFile(info) {
|
||||||
|
this.documentList = info.fileList;
|
||||||
|
if (info.file.status !== "uploading") {
|
||||||
|
console.log(info.file, info.fileList);
|
||||||
|
}
|
||||||
|
if (info.file.status === "done") {
|
||||||
|
this.$message.success(`${info.file.name} 上传成功`);
|
||||||
|
// this.form.annexUrls.push(info.file.response.data);
|
||||||
|
} else if (info.file.status === "error") {
|
||||||
|
this.$message.error(`${info.file.name} 上传失败`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleChange(data) {
|
||||||
|
this.fileList = data;
|
||||||
|
this.form.coverImgUrls = [];
|
||||||
|
if (data[0].status === "done") {
|
||||||
|
console.log("-------done-------");
|
||||||
|
this.form.coverImgUrls.push(data[0].response.data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
editId: {
|
||||||
|
handler(val) {
|
||||||
|
if (val !== null) {
|
||||||
|
this.title = "修改公告";
|
||||||
|
this.form.id = val;
|
||||||
|
announcementInfo({ announcementId: val }).then((res) => {
|
||||||
|
this.form = res.data;
|
||||||
|
if (res.data.coverImgList.length > 0) {
|
||||||
|
console.log(res.data.coverImgList);
|
||||||
|
const pic = [];
|
||||||
|
for (let item of res.data.coverImgList) {
|
||||||
|
let obj = {
|
||||||
|
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
|
||||||
|
url: this.$ImgUrl(item.url),
|
||||||
|
uid: item.url.split("_")[1],
|
||||||
|
status: "done",
|
||||||
|
thumbUrl: this.$ImgUrl(item.url),
|
||||||
|
};
|
||||||
|
pic.push(obj);
|
||||||
|
}
|
||||||
|
this.fileList = pic;
|
||||||
|
} else {
|
||||||
|
this.form.coverImgList = [];
|
||||||
|
}
|
||||||
|
if (res.data.annexImgList.length > 0) {
|
||||||
|
console.log(res.data.annexImgList);
|
||||||
|
const file = [];
|
||||||
|
for (let item of res.data.annexImgList) {
|
||||||
|
let obj = {
|
||||||
|
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
|
||||||
|
url: this.$ImgUrl(item.url),
|
||||||
|
uid: item.url.split("_")[1],
|
||||||
|
status: "done",
|
||||||
|
thumbUrl: this.$ImgUrl(item.url),
|
||||||
|
};
|
||||||
|
file.push(obj);
|
||||||
|
}
|
||||||
|
this.documentList = file;
|
||||||
|
} else {
|
||||||
|
this.form.coverImgList = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.title = "新增公告";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
@ -0,0 +1,114 @@
|
|||||||
|
export const formItem = [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
label:'标题',
|
||||||
|
prop:'title',
|
||||||
|
placeholder:'请输入'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label:'推送对象',
|
||||||
|
prop:'object',
|
||||||
|
option:[{ id:1,name:'全部'},{ id:2,name:'住户'},{ id:3,name:'业主'},{ id:4,name:'租户'},{ id:5,name:'管家'}],
|
||||||
|
placeholder:'请选择'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label:'发布状态',
|
||||||
|
prop:'status',
|
||||||
|
option:[{ id:1,name:'未发布'},{ id:2,name:'已发布'}],
|
||||||
|
placeholder:'请选择'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'time',
|
||||||
|
label:'更新时间',
|
||||||
|
start: 'modifyStartTime',
|
||||||
|
end:'modifyEndTime'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const columns = [
|
||||||
|
{
|
||||||
|
title: "标题",
|
||||||
|
dataIndex: "title",
|
||||||
|
width: "16%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "推送对象",
|
||||||
|
dataIndex: "object",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (object) {
|
||||||
|
switch (object) {
|
||||||
|
case 1:
|
||||||
|
return '全部'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '住户'
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
return '业主'
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
return '租户'
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
return '管家'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "状态",
|
||||||
|
dataIndex: "status",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (status) {
|
||||||
|
switch (status) {
|
||||||
|
case 1:
|
||||||
|
return '未发布'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '已发布'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "内容",
|
||||||
|
dataIndex: "content",
|
||||||
|
width: "13%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "阅读量",
|
||||||
|
dataIndex: "readingVolume",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "附件下载次数",
|
||||||
|
dataIndex: "downloadNum",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "更新时间",
|
||||||
|
dataIndex: "modifyDate",
|
||||||
|
width: "14%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "action",
|
||||||
|
key: "action",
|
||||||
|
width: "180",
|
||||||
|
fixed: "right",
|
||||||
|
scopedSlots: { customRender: "action" },
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const pagination = {
|
||||||
|
current: 1,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 10,
|
||||||
|
showTotal: (total) => `共 ${total} 条`,
|
||||||
|
showSizeChanger: true,
|
||||||
|
showQuickJumper: true,
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
export const form = {
|
||||||
|
id:undefined,
|
||||||
|
title:undefined,
|
||||||
|
object:undefined,
|
||||||
|
status:undefined,
|
||||||
|
content:undefined,
|
||||||
|
coverImgUrls:[],
|
||||||
|
annexUrls:[],
|
||||||
|
}
|
||||||
|
export const rules = {
|
||||||
|
title:[{required:true,message:'请输入标题',trigger:'blur'}],
|
||||||
|
object:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
status:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
content:[{required:true,message:'请输入标题',trigger:'blur'}],
|
||||||
|
}
|
||||||
|
export const options = {
|
||||||
|
status:[
|
||||||
|
{ id:1, name:'未发布' },
|
||||||
|
{ id:2, name:'已发布' },
|
||||||
|
],
|
||||||
|
object:[
|
||||||
|
{ id:1, name:'全部' },
|
||||||
|
{ id:2, name:'住户' },
|
||||||
|
{ id:3, name:'业主' },
|
||||||
|
{ id:4, name:'租户' },
|
||||||
|
{ id:5, name:'管家' },
|
||||||
|
],
|
||||||
|
}
|
@ -0,0 +1,241 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-drawer
|
||||||
|
:title="title"
|
||||||
|
:width="720"
|
||||||
|
:visible="show"
|
||||||
|
:body-style="{ paddingBottom: '80px' }"
|
||||||
|
@close="addClose"
|
||||||
|
>
|
||||||
|
<div class="drawer-content">
|
||||||
|
基本信息
|
||||||
|
<a-divider></a-divider>
|
||||||
|
<a-form-model
|
||||||
|
ref="ruleForm"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
layout="vertical"
|
||||||
|
>
|
||||||
|
<a-form-model-item prop="title" label="标题">
|
||||||
|
<a-input
|
||||||
|
v-model="form.title"
|
||||||
|
placeholder="请输入标题"
|
||||||
|
style="width: 80%"
|
||||||
|
></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="object" label="推送对象">
|
||||||
|
<a-select
|
||||||
|
v-model="form.object"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 80%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.object"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="status" label="状态">
|
||||||
|
<a-select
|
||||||
|
v-model="form.status"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 80%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.status"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="content" label="内容">
|
||||||
|
<a-textarea
|
||||||
|
v-model="form.content"
|
||||||
|
placeholder="请输入内容"
|
||||||
|
style="width: 80%"
|
||||||
|
></a-textarea>
|
||||||
|
</a-form-model-item>
|
||||||
|
封面图片
|
||||||
|
<commonUpload
|
||||||
|
:fileList="fileList"
|
||||||
|
@handleChange="handleChange"
|
||||||
|
></commonUpload>
|
||||||
|
附件
|
||||||
|
<a-upload
|
||||||
|
name="file"
|
||||||
|
:multiple="true"
|
||||||
|
:action="`${$upload}`"
|
||||||
|
:file-list="documentList"
|
||||||
|
accept=".doc,.DOC,.xls,.XLS,.xlsx,.XLSX,.pdf,.PDF"
|
||||||
|
:headers="uploadHeaders"
|
||||||
|
@change="changeFile"
|
||||||
|
>
|
||||||
|
<a-button> <a-icon type="upload" /> 上传附件</a-button>
|
||||||
|
</a-upload>
|
||||||
|
</a-form-model>
|
||||||
|
</div>
|
||||||
|
<div class="drawer-footer">
|
||||||
|
<a-button :style="{ marginRight: '8px' }" @click="addClose">
|
||||||
|
关闭
|
||||||
|
</a-button>
|
||||||
|
<a-button type="primary" @click="submit"> 提交 </a-button>
|
||||||
|
</div>
|
||||||
|
</a-drawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import store from "@/store";
|
||||||
|
import { form, rules, options } from "./form.js";
|
||||||
|
import {
|
||||||
|
announcementInsert,
|
||||||
|
announcementUpdate,
|
||||||
|
announcementInfo,
|
||||||
|
} from "@/api/operation/announcement";
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
editId: Number,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: "新增公告",
|
||||||
|
form,
|
||||||
|
rules,
|
||||||
|
options,
|
||||||
|
fileList: [],
|
||||||
|
documentList: [],
|
||||||
|
uploadHeaders: {
|
||||||
|
"manage-login-token": store.getters.getToken,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addClose() {
|
||||||
|
this.$refs.ruleForm.resetFields();
|
||||||
|
this.fileList = [];
|
||||||
|
this.documentList = [];
|
||||||
|
this.form.coverImgUrls = [];
|
||||||
|
this.form.annexUrls = [];
|
||||||
|
this.$emit("addClose");
|
||||||
|
},
|
||||||
|
success() {
|
||||||
|
this.$emit("success");
|
||||||
|
this.addClose();
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
console.log(this.documentList);
|
||||||
|
let arr = [];
|
||||||
|
for (let k of this.documentList) {
|
||||||
|
if (k.response) {
|
||||||
|
arr.push(k.response.data);
|
||||||
|
} else {
|
||||||
|
arr.push(k.url.split("/")[k.url.split("/").length - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.form.annexUrls = arr;
|
||||||
|
console.log(this.form);
|
||||||
|
this.$refs.ruleForm.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.editId === null) {
|
||||||
|
let res = await announcementInsert(this.form);
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success(res.msg);
|
||||||
|
this.success();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log(this.form);
|
||||||
|
let res = await announcementUpdate(this.form);
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success(res.msg);
|
||||||
|
this.success();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
changeFile(info) {
|
||||||
|
this.documentList = info.fileList;
|
||||||
|
if (info.file.status !== "uploading") {
|
||||||
|
console.log(info.file, info.fileList);
|
||||||
|
}
|
||||||
|
if (info.file.status === "done") {
|
||||||
|
this.$message.success(`${info.file.name} 上传成功`);
|
||||||
|
// this.form.annexUrls.push(info.file.response.data);
|
||||||
|
} else if (info.file.status === "error") {
|
||||||
|
this.$message.error(`${info.file.name} 上传失败`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleChange(data) {
|
||||||
|
this.fileList = data;
|
||||||
|
this.form.coverImgUrls = [];
|
||||||
|
if (data[0].status === "done") {
|
||||||
|
console.log("-------done-------");
|
||||||
|
this.form.coverImgUrls.push(data[0].response.data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
editId: {
|
||||||
|
handler(val) {
|
||||||
|
if (val !== null) {
|
||||||
|
this.title = "修改公告";
|
||||||
|
this.form.id = val;
|
||||||
|
announcementInfo({ announcementId: val }).then((res) => {
|
||||||
|
this.form = res.data;
|
||||||
|
if (res.data.coverImgList.length > 0) {
|
||||||
|
console.log(res.data.coverImgList);
|
||||||
|
const pic = [];
|
||||||
|
for (let item of res.data.coverImgList) {
|
||||||
|
let obj = {
|
||||||
|
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
|
||||||
|
url: this.$ImgUrl(item.url),
|
||||||
|
uid: item.url.split("_")[1],
|
||||||
|
status: "done",
|
||||||
|
thumbUrl: this.$ImgUrl(item.url),
|
||||||
|
};
|
||||||
|
pic.push(obj);
|
||||||
|
}
|
||||||
|
this.fileList = pic;
|
||||||
|
} else {
|
||||||
|
this.form.coverImgList = [];
|
||||||
|
}
|
||||||
|
if (res.data.annexImgList.length > 0) {
|
||||||
|
console.log(res.data.annexImgList);
|
||||||
|
const file = [];
|
||||||
|
for (let item of res.data.annexImgList) {
|
||||||
|
let obj = {
|
||||||
|
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
|
||||||
|
url: this.$ImgUrl(item.url),
|
||||||
|
uid: item.url.split("_")[1],
|
||||||
|
status: "done",
|
||||||
|
thumbUrl: this.$ImgUrl(item.url),
|
||||||
|
};
|
||||||
|
file.push(obj);
|
||||||
|
}
|
||||||
|
this.documentList = file;
|
||||||
|
} else {
|
||||||
|
this.form.coverImgList = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.title = "新增公告";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
@ -0,0 +1,114 @@
|
|||||||
|
export const formItem = [
|
||||||
|
{
|
||||||
|
type: 'input',
|
||||||
|
label:'标题',
|
||||||
|
prop:'title',
|
||||||
|
placeholder:'请输入'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label:'推送对象',
|
||||||
|
prop:'object',
|
||||||
|
option:[{ id:1,name:'全部'},{ id:2,name:'住户'},{ id:3,name:'业主'},{ id:4,name:'租户'},{ id:5,name:'管家'}],
|
||||||
|
placeholder:'请选择'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'select',
|
||||||
|
label:'发布状态',
|
||||||
|
prop:'status',
|
||||||
|
option:[{ id:1,name:'未发布'},{ id:2,name:'已发布'}],
|
||||||
|
placeholder:'请选择'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'time',
|
||||||
|
label:'更新时间',
|
||||||
|
start: 'modifyStartTime',
|
||||||
|
end:'modifyEndTime'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const columns = [
|
||||||
|
{
|
||||||
|
title: "标题",
|
||||||
|
dataIndex: "title",
|
||||||
|
width: "16%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "推送对象",
|
||||||
|
dataIndex: "object",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (object) {
|
||||||
|
switch (object) {
|
||||||
|
case 1:
|
||||||
|
return '全部'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '住户'
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
return '业主'
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
return '租户'
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
return '管家'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "状态",
|
||||||
|
dataIndex: "status",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (status) {
|
||||||
|
switch (status) {
|
||||||
|
case 1:
|
||||||
|
return '未发布'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '已发布'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "内容",
|
||||||
|
dataIndex: "content",
|
||||||
|
width: "13%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "阅读量",
|
||||||
|
dataIndex: "readingVolume",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "附件下载次数",
|
||||||
|
dataIndex: "downloadNum",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "更新时间",
|
||||||
|
dataIndex: "modifyDate",
|
||||||
|
width: "14%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "action",
|
||||||
|
key: "action",
|
||||||
|
width: "180",
|
||||||
|
fixed: "right",
|
||||||
|
scopedSlots: { customRender: "action" },
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const pagination = {
|
||||||
|
current: 1,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 10,
|
||||||
|
showTotal: (total) => `共 ${total} 条`,
|
||||||
|
showSizeChanger: true,
|
||||||
|
showQuickJumper: true,
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
export const form = {
|
||||||
|
id:undefined,
|
||||||
|
title:undefined,
|
||||||
|
object:undefined,
|
||||||
|
status:undefined,
|
||||||
|
content:undefined,
|
||||||
|
coverImgUrls:[],
|
||||||
|
annexUrls:[],
|
||||||
|
}
|
||||||
|
export const rules = {
|
||||||
|
title:[{required:true,message:'请输入标题',trigger:'blur'}],
|
||||||
|
object:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
status:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
content:[{required:true,message:'请输入标题',trigger:'blur'}],
|
||||||
|
}
|
||||||
|
export const options = {
|
||||||
|
status:[
|
||||||
|
{ id:1, name:'未发布' },
|
||||||
|
{ id:2, name:'已发布' },
|
||||||
|
],
|
||||||
|
object:[
|
||||||
|
{ id:1, name:'全部' },
|
||||||
|
{ id:2, name:'住户' },
|
||||||
|
{ id:3, name:'业主' },
|
||||||
|
{ id:4, name:'租户' },
|
||||||
|
{ id:5, name:'管家' },
|
||||||
|
],
|
||||||
|
}
|
@ -0,0 +1,241 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-drawer
|
||||||
|
:title="title"
|
||||||
|
:width="720"
|
||||||
|
:visible="show"
|
||||||
|
:body-style="{ paddingBottom: '80px' }"
|
||||||
|
@close="addClose"
|
||||||
|
>
|
||||||
|
<div class="drawer-content">
|
||||||
|
基本信息
|
||||||
|
<a-divider></a-divider>
|
||||||
|
<a-form-model
|
||||||
|
ref="ruleForm"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
layout="vertical"
|
||||||
|
>
|
||||||
|
<a-form-model-item prop="title" label="标题">
|
||||||
|
<a-input
|
||||||
|
v-model="form.title"
|
||||||
|
placeholder="请输入标题"
|
||||||
|
style="width: 80%"
|
||||||
|
></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="object" label="推送对象">
|
||||||
|
<a-select
|
||||||
|
v-model="form.object"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 80%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.object"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="status" label="状态">
|
||||||
|
<a-select
|
||||||
|
v-model="form.status"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 80%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.status"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="content" label="内容">
|
||||||
|
<a-textarea
|
||||||
|
v-model="form.content"
|
||||||
|
placeholder="请输入内容"
|
||||||
|
style="width: 80%"
|
||||||
|
></a-textarea>
|
||||||
|
</a-form-model-item>
|
||||||
|
封面图片
|
||||||
|
<commonUpload
|
||||||
|
:fileList="fileList"
|
||||||
|
@handleChange="handleChange"
|
||||||
|
></commonUpload>
|
||||||
|
附件
|
||||||
|
<a-upload
|
||||||
|
name="file"
|
||||||
|
:multiple="true"
|
||||||
|
:action="`${$upload}`"
|
||||||
|
:file-list="documentList"
|
||||||
|
accept=".doc,.DOC,.xls,.XLS,.xlsx,.XLSX,.pdf,.PDF"
|
||||||
|
:headers="uploadHeaders"
|
||||||
|
@change="changeFile"
|
||||||
|
>
|
||||||
|
<a-button> <a-icon type="upload" /> 上传附件</a-button>
|
||||||
|
</a-upload>
|
||||||
|
</a-form-model>
|
||||||
|
</div>
|
||||||
|
<div class="drawer-footer">
|
||||||
|
<a-button :style="{ marginRight: '8px' }" @click="addClose">
|
||||||
|
关闭
|
||||||
|
</a-button>
|
||||||
|
<a-button type="primary" @click="submit"> 提交 </a-button>
|
||||||
|
</div>
|
||||||
|
</a-drawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import store from "@/store";
|
||||||
|
import { form, rules, options } from "./form.js";
|
||||||
|
import {
|
||||||
|
announcementInsert,
|
||||||
|
announcementUpdate,
|
||||||
|
announcementInfo,
|
||||||
|
} from "@/api/operation/announcement";
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
editId: Number,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: "新增公告",
|
||||||
|
form,
|
||||||
|
rules,
|
||||||
|
options,
|
||||||
|
fileList: [],
|
||||||
|
documentList: [],
|
||||||
|
uploadHeaders: {
|
||||||
|
"manage-login-token": store.getters.getToken,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addClose() {
|
||||||
|
this.$refs.ruleForm.resetFields();
|
||||||
|
this.fileList = [];
|
||||||
|
this.documentList = [];
|
||||||
|
this.form.coverImgUrls = [];
|
||||||
|
this.form.annexUrls = [];
|
||||||
|
this.$emit("addClose");
|
||||||
|
},
|
||||||
|
success() {
|
||||||
|
this.$emit("success");
|
||||||
|
this.addClose();
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
console.log(this.documentList);
|
||||||
|
let arr = [];
|
||||||
|
for (let k of this.documentList) {
|
||||||
|
if (k.response) {
|
||||||
|
arr.push(k.response.data);
|
||||||
|
} else {
|
||||||
|
arr.push(k.url.split("/")[k.url.split("/").length - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.form.annexUrls = arr;
|
||||||
|
console.log(this.form);
|
||||||
|
this.$refs.ruleForm.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.editId === null) {
|
||||||
|
let res = await announcementInsert(this.form);
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success(res.msg);
|
||||||
|
this.success();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log(this.form);
|
||||||
|
let res = await announcementUpdate(this.form);
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success(res.msg);
|
||||||
|
this.success();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
changeFile(info) {
|
||||||
|
this.documentList = info.fileList;
|
||||||
|
if (info.file.status !== "uploading") {
|
||||||
|
console.log(info.file, info.fileList);
|
||||||
|
}
|
||||||
|
if (info.file.status === "done") {
|
||||||
|
this.$message.success(`${info.file.name} 上传成功`);
|
||||||
|
// this.form.annexUrls.push(info.file.response.data);
|
||||||
|
} else if (info.file.status === "error") {
|
||||||
|
this.$message.error(`${info.file.name} 上传失败`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleChange(data) {
|
||||||
|
this.fileList = data;
|
||||||
|
this.form.coverImgUrls = [];
|
||||||
|
if (data[0].status === "done") {
|
||||||
|
console.log("-------done-------");
|
||||||
|
this.form.coverImgUrls.push(data[0].response.data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
editId: {
|
||||||
|
handler(val) {
|
||||||
|
if (val !== null) {
|
||||||
|
this.title = "修改公告";
|
||||||
|
this.form.id = val;
|
||||||
|
announcementInfo({ announcementId: val }).then((res) => {
|
||||||
|
this.form = res.data;
|
||||||
|
if (res.data.coverImgList.length > 0) {
|
||||||
|
console.log(res.data.coverImgList);
|
||||||
|
const pic = [];
|
||||||
|
for (let item of res.data.coverImgList) {
|
||||||
|
let obj = {
|
||||||
|
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
|
||||||
|
url: this.$ImgUrl(item.url),
|
||||||
|
uid: item.url.split("_")[1],
|
||||||
|
status: "done",
|
||||||
|
thumbUrl: this.$ImgUrl(item.url),
|
||||||
|
};
|
||||||
|
pic.push(obj);
|
||||||
|
}
|
||||||
|
this.fileList = pic;
|
||||||
|
} else {
|
||||||
|
this.form.coverImgList = [];
|
||||||
|
}
|
||||||
|
if (res.data.annexImgList.length > 0) {
|
||||||
|
console.log(res.data.annexImgList);
|
||||||
|
const file = [];
|
||||||
|
for (let item of res.data.annexImgList) {
|
||||||
|
let obj = {
|
||||||
|
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
|
||||||
|
url: this.$ImgUrl(item.url),
|
||||||
|
uid: item.url.split("_")[1],
|
||||||
|
status: "done",
|
||||||
|
thumbUrl: this.$ImgUrl(item.url),
|
||||||
|
};
|
||||||
|
file.push(obj);
|
||||||
|
}
|
||||||
|
this.documentList = file;
|
||||||
|
} else {
|
||||||
|
this.form.coverImgList = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.title = "新增公告";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
@ -0,0 +1,9 @@
|
|||||||
|
export const form = {
|
||||||
|
id: undefined,
|
||||||
|
type: undefined,
|
||||||
|
showWeights: 0,
|
||||||
|
customizeUrl: "",
|
||||||
|
isShow: false,
|
||||||
|
associationId: undefined,
|
||||||
|
imgUrls: [],
|
||||||
|
}
|
@ -0,0 +1,144 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-modal
|
||||||
|
width="90%"
|
||||||
|
title="选择链接"
|
||||||
|
:visible="show"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<a-table
|
||||||
|
:columns="columns[typeMean]"
|
||||||
|
:data-source="tableData"
|
||||||
|
:pagination="pagination"
|
||||||
|
:scroll="{ x: 1400 }"
|
||||||
|
@change="handleTableChange"
|
||||||
|
:row-selection="{
|
||||||
|
selectedRowKeys: selectedRowKeys,
|
||||||
|
onChange: selectionChoosed,
|
||||||
|
}"
|
||||||
|
:row-key="
|
||||||
|
(record, index) => {
|
||||||
|
return record.id;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { columns, pagination } from "./tableConfig.js";
|
||||||
|
import { shopPushList } from "@/api/shop/goods";
|
||||||
|
import { newsList } from "@/api/operation/news";
|
||||||
|
import { announcementList } from "@/api/operation/announcement";
|
||||||
|
import { activityList } from "@/api/operation/activity";
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
type: Number,
|
||||||
|
show:Boolean
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
columns,
|
||||||
|
pagination,
|
||||||
|
typeMean: "shop",
|
||||||
|
tableData: [],
|
||||||
|
selectedRowKeys: [],
|
||||||
|
joinString:''
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
selectionChoosed(data) {
|
||||||
|
this.selectedRowKeys = data;
|
||||||
|
},
|
||||||
|
handleTableChange(pagination) {
|
||||||
|
console.log(pagination);
|
||||||
|
const pager = { ...this.pagination };
|
||||||
|
pager.current = pagination.current;
|
||||||
|
pager.pageSize = pagination.pageSize;
|
||||||
|
this.pagination = pager;
|
||||||
|
this.getData();
|
||||||
|
},
|
||||||
|
handleCancel(){
|
||||||
|
this.$emit('close')
|
||||||
|
this.selectedRowKeys = []
|
||||||
|
},
|
||||||
|
handleOk(){
|
||||||
|
if(this.selectedRowKeys.length === 0){
|
||||||
|
this.$message.error('请选择')
|
||||||
|
}
|
||||||
|
else if(this.selectedRowKeys.length > 1){
|
||||||
|
this.$message.error('只能选择一条链接')
|
||||||
|
}else{
|
||||||
|
for(let k of this.tableData){
|
||||||
|
if(k.id===this.selectedRowKeys[0]){
|
||||||
|
if(this.typeMean === 'shop'){
|
||||||
|
this.joinString = k.skuName
|
||||||
|
}else if(this.typeMean === 'news'){
|
||||||
|
this.joinString = k.title
|
||||||
|
}else if(this.typeMean === 'announcement'){
|
||||||
|
this.joinString = k.title
|
||||||
|
}else if(this.typeMean === 'activity'){
|
||||||
|
this.joinString = k.title
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.$emit('submit',this.selectedRowKeys,this.joinString)
|
||||||
|
this.selectedRowKeys = []
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
type: {
|
||||||
|
handler(val) {
|
||||||
|
if (val === 2) {
|
||||||
|
this.typeMean = 'shop'
|
||||||
|
shopPushList({
|
||||||
|
pageNum: this.pagination.current,
|
||||||
|
size: this.pagination.pageSize,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableData = res.data.rows;
|
||||||
|
this.pagination.total = res.data.total;
|
||||||
|
});
|
||||||
|
}else if (val === 3) {
|
||||||
|
this.typeMean = 'news'
|
||||||
|
newsList({
|
||||||
|
pageNum: this.pagination.current,
|
||||||
|
size: this.pagination.pageSize,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableData = res.data.rows;
|
||||||
|
this.pagination.total = res.data.total;
|
||||||
|
});
|
||||||
|
}else if (val === 4) {
|
||||||
|
this.typeMean = 'announcement'
|
||||||
|
announcementList({
|
||||||
|
pageNum: this.pagination.current,
|
||||||
|
size: this.pagination.pageSize,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableData = res.data.rows;
|
||||||
|
this.pagination.total = res.data.total;
|
||||||
|
});
|
||||||
|
}else if (val === 5) {
|
||||||
|
this.typeMean = 'activity'
|
||||||
|
activityList({
|
||||||
|
pageNum: this.pagination.current,
|
||||||
|
size: this.pagination.pageSize,
|
||||||
|
}).then((res) => {
|
||||||
|
this.tableData = res.data.rows;
|
||||||
|
this.pagination.total = res.data.total;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
@ -0,0 +1,268 @@
|
|||||||
|
export const columns = {
|
||||||
|
shop:[
|
||||||
|
{
|
||||||
|
title: "商品名称",
|
||||||
|
width: "12%",
|
||||||
|
dataIndex: "skuName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "sku编码",
|
||||||
|
width: "12%",
|
||||||
|
dataIndex: "skuId",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "商品类型",
|
||||||
|
width: "7%",
|
||||||
|
dataIndex: "mallType",
|
||||||
|
customRender: function (mallType) {
|
||||||
|
switch (mallType) {
|
||||||
|
case 1:
|
||||||
|
return 'Jcook'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "店铺名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "shopName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "品牌名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "brandName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "供应商名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "vendorName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "一级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categoryFirstName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "二级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categorySecondName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "三级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categoryThirdName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "主图url",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "mainPhoto",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "售卖价",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "sellPrice",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "折扣价",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "discountPrice",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "浏览量",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "viewsNum",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
news: [
|
||||||
|
{
|
||||||
|
title: "标题",
|
||||||
|
dataIndex: "title",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "分类",
|
||||||
|
dataIndex: "categoryName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发布状态",
|
||||||
|
dataIndex: "status",
|
||||||
|
customRender: function (status) {
|
||||||
|
switch (status) {
|
||||||
|
case 1:
|
||||||
|
return '未发布'
|
||||||
|
case 2:
|
||||||
|
return '已发布'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "阅读量",
|
||||||
|
dataIndex: "viewsNum",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "创建时间",
|
||||||
|
dataIndex: "createDate",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
announcement: [
|
||||||
|
{
|
||||||
|
title: "标题",
|
||||||
|
dataIndex: "title",
|
||||||
|
width: "16%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "推送对象",
|
||||||
|
dataIndex: "object",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (object) {
|
||||||
|
switch (object) {
|
||||||
|
case 1:
|
||||||
|
return '全部'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '住户'
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
return '业主'
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
return '租户'
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
return '管家'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "状态",
|
||||||
|
dataIndex: "status",
|
||||||
|
width: "10%",
|
||||||
|
customRender: function (status) {
|
||||||
|
switch (status) {
|
||||||
|
case 1:
|
||||||
|
return '未发布'
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return '已发布'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "内容",
|
||||||
|
dataIndex: "content",
|
||||||
|
width: "13%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "阅读量",
|
||||||
|
dataIndex: "readingVolume",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "附件下载次数",
|
||||||
|
dataIndex: "downloadNum",
|
||||||
|
width: "10%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "更新时间",
|
||||||
|
dataIndex: "modifyDate",
|
||||||
|
width: "14%",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
activity:[
|
||||||
|
{
|
||||||
|
title: "发布时间",
|
||||||
|
dataIndex: "createDate",
|
||||||
|
width: "12%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "图片",
|
||||||
|
dataIndex: "imgpic",
|
||||||
|
width: "10%",
|
||||||
|
scopedSlots: { customRender: "imgpic"}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "活动状态",
|
||||||
|
dataIndex: "status",
|
||||||
|
width: "6%",
|
||||||
|
customRender: function (status) {
|
||||||
|
switch (status) {
|
||||||
|
case 1:
|
||||||
|
return '报名未开始'
|
||||||
|
case 2:
|
||||||
|
return '报名进行中'
|
||||||
|
case 3:
|
||||||
|
return '活动未开始'
|
||||||
|
case 4:
|
||||||
|
return '活动进行中'
|
||||||
|
case 5:
|
||||||
|
return '活动已结束'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "活动标题",
|
||||||
|
dataIndex: "title",
|
||||||
|
width: "8%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "活动地点",
|
||||||
|
dataIndex: "activityAddress",
|
||||||
|
width: "8%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "是否显示在app",
|
||||||
|
dataIndex: "isShow",
|
||||||
|
width: "5%",
|
||||||
|
customRender: function (isShow) {
|
||||||
|
switch (isShow) {
|
||||||
|
case true:
|
||||||
|
return '显示'
|
||||||
|
case false:
|
||||||
|
return '不显示'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "主办方",
|
||||||
|
dataIndex: "organizerName",
|
||||||
|
width: "8%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "活动内容",
|
||||||
|
dataIndex: "content",
|
||||||
|
width: "8%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "报名人数",
|
||||||
|
dataIndex: "registrationNum",
|
||||||
|
width: "5%",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "报名时间",
|
||||||
|
width: "12%",
|
||||||
|
customRender: function (data) {
|
||||||
|
return (data.registrationStartTime + '——' + data.registrationEndTime)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "活动时间",
|
||||||
|
width: "12%",
|
||||||
|
customRender: function (data) {
|
||||||
|
return (data.activityStartTime + '——' + data.activityEndTime)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
export const pagination = {
|
||||||
|
current: 1,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 5,
|
||||||
|
showTotal: (total) => `共 ${total} 条`,
|
||||||
|
}
|
Loading…
Reference in new issue