Commit b0616b1a authored by 赵啸非's avatar 赵啸非

添加通知

parent 259c344e
...@@ -102,6 +102,7 @@ function getComponent(fileName) { ...@@ -102,6 +102,7 @@ function getComponent(fileName) {
try { try {
return require('./views/' + fileName).default return require('./views/' + fileName).default
} catch (error) { } catch (error) {
console.log("error:",error)
return fileNotFound; return fileNotFound;
} }
} }
......
<template> <template>
<div class="page page-notfound"> <div class="page page-notfound">
该文件不存在或解析错误:/pages/{{$route.fullPath}}.vue 该文件不存在或解析错误:/pages{{$route.fullPath}}.vue
</div> </div>
</template> </template>
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="标题" prop="title" v-model="form.title" type="textarea" placeholder="请输入标题"/>
<Field :span="20" label="公告内容"><editor v-model="form.noticeContent" :min-height="256"/></Field>
<Field label="公告文件"><fileUpload v-model="form.filePath" :fileName="form.fileName" @getFileName="getFileName" prePath="/file/fileupload"/></Field>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "NoticeDetail",
mixins: [form],
components: {
},
created() {
this.changePath("notice")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "通知公告",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
],
// 表单校验
rules: {
title: [
{required: true,message: "请输入标题", trigger: "blur" },
{max: 256,message: "最多只能录入256个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
getFileName(fileName) {
this.form.fileName = fileName;
},
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="notice/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改通知公告";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "notice/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增通知公告";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="notice/view";
this.getData();
this.pageInfo.type="view"
this.title = "通知公告详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
title : "",
noticeContent : "",
filePath : "",
fileName : "",
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "NoticeList",
components: {
drawerShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "标题", prop: "title"},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="公告id" prop="noticeId" v-model="form.noticeId" placeholder="请输入公告id"/>
<Field label="公告标题" prop="title" v-model="form.title" type="textarea" placeholder="请输入公告标题"/>
<Field label="房间id" prop="roomId" v-model="form.roomId" placeholder="请输入房间id"/>
<Field label="房间名称" prop="roomName" v-model="form.roomName" type="textarea" placeholder="请输入房间名称"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "房间公告",
// 是否显示弹出层
open: false,
toString:[
],
// 表单校验
rules: {
title: [
{required: true,message: "请输入公告标题", trigger: "blur" },
{max: 256,message: "最多只能录入256个字符",trigger: "blur",},
],
roomName: [
{required: true,message: "请输入房间名称", trigger: "blur" },
{max: 256,message: "最多只能录入256个字符",trigger: "blur",},
],
createTime: [
{required: true,message: "请选择创建时间" },
],
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="notice/room/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改房间公告";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "notice/room/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增房间公告";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="notice/room/view";
this.getData();
this.pageInfo.type="view"
this.title = "房间公告详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
noticeId : null,
title : "",
roomId : null,
roomName : "",
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import table from "@/assets/mixins/table";
export default {
name: "NoticeRoomList",
components: {
dialogShow
},
mixins: [table],
created() {
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.dialogform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.dialogform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.dialogform.view(row);
},
},
data() {
return {
config: {
search: [
],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "公告标题", prop: "title"},
{label: "房间名称", prop: "roomName"},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
]
}
};
}
};
</script>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="公告id" label-class-name="labelClass" content-class-name="contentClass">
{{form.noticeId}}
</el-descriptions-item>
<el-descriptions-item label="公告标题" label-class-name="labelClass" content-class-name="contentClass">
{{form.title}}
</el-descriptions-item>
<el-descriptions-item label="房间id" label-class-name="labelClass" content-class-name="contentClass">
{{form.roomId}}
</el-descriptions-item>
<el-descriptions-item label="房间名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.roomName}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
</template>
<el-descriptions-item label="标题" label-class-name="labelClass" content-class-name="contentClass">
{{form.title}}
</el-descriptions-item>
<el-descriptions-item label="公告内容" label-class-name="labelClass" content-class-name="contentClass">
<editor v-model="form.noticeContent" :min-height="256"/>
</el-descriptions-item>
<el-descriptions-item label="公告文件路径" label-class-name="labelClass" content-class-name="contentClass">
<fileUpload v-model="form.filePath" prePath="/file/fileupload"/>
</el-descriptions-item>
<el-descriptions-item label="公告文件名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.fileName}}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
import FileUpload from '@/components/FileUpload';
import Editor from '@/components/Editor';
export default {
mixins: [view],
components: {
FileUpload,
Editor,
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
],
toArrays: [
],
toDate: [
]
}
}
}
</script>
<style lang="less">
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment