Commit 0de22b3c authored by 王晓旭's avatar 王晓旭

修改新闻管理

parent d098f2cb
...@@ -103,7 +103,7 @@ export default { ...@@ -103,7 +103,7 @@ export default {
return { return {
number: 0, number: 0,
uploadList: [], uploadList: [],
uploadFileUrl: "/office/file/commonupload", // 上传的地址 uploadFileUrl: "/enterprise/file/commonupload", // 上传的地址
headers: {}, headers: {},
fileList: [], fileList: [],
}; };
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
size="50%"> size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="分类名称" prop="name" v-model="form.name" placeholder="请输入分类名称"/> <Field label="分类名称" prop="name" v-model="form.name" placeholder="请输入分类名称"/>
</el-row> </el-row>
...@@ -44,6 +44,9 @@ ...@@ -44,6 +44,9 @@
], ],
// 表单校验 // 表单校验
rules: { rules: {
name:[
{ required: true, message: "请输入分类名称", trigger: "blur" },
]
} }
}; };
}, },
......
...@@ -147,6 +147,18 @@ export default { ...@@ -147,6 +147,18 @@ export default {
}, },
data() { data() {
let that = this; let that = this;
var checkPhone = (rule,value,callback) =>{
let phoneReg = /^(((\d{3,4}-)?[0-9]{7,8})|(1(3|4|5|6|7|8|9)\d{9}))$/
if(!value){
callback()
}else{
if(phoneReg.test(value)){
callback()
}else{
callback(new Error("请输入正确的联系电话"))
}
}
}
return { return {
regionCodeList: [], regionCodeList: [],
areaprops: { areaprops: {
...@@ -207,6 +219,7 @@ export default { ...@@ -207,6 +219,7 @@ export default {
], ],
contactPhone: [ contactPhone: [
{ required: true, message: "请输入联系电话", trigger: "blur" }, { required: true, message: "请输入联系电话", trigger: "blur" },
{ validator: checkPhone,trigger: "blur" },
{ max: 32, message: "最多只能录入32个字符", trigger: "blur" } { max: 32, message: "最多只能录入32个字符", trigger: "blur" }
], ],
lon: [ lon: [
......
...@@ -5,27 +5,35 @@ ...@@ -5,27 +5,35 @@
:visible.sync="open" :visible.sync="open"
:direction="direction" :direction="direction"
:destroy-on-close="true" :destroy-on-close="true"
size="50%"> size="100%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <div class="form">
<Field label="类型" :span="20" prop="categoryId" v-model="form.categoryId" type="radio" :enum-data="dict.categoryId" placeholder="请输入分类id"/> <div class="formleft">
<Field :span="20" label="封面"><imageUpload v-model="form.titleLogoPath" prePath="/file/preview"/></Field> <Field label="标题" :span="24" prop="title" v-model="form.title" placeholder="请输入标题"/>
<Field label="标题" :span="20" prop="title" v-model="form.title" placeholder="请输入标题"/> <Field :span="24" label="内容"><editor v-model="form.content" :min-height="256"/></Field>
<Field :span="20" label="内容"><editor v-model="form.content" :min-height="256"/></Field> </div>
<div class="formright">
<el-row>
<Field label="类型" :span="20" prop="categoryId" v-model="form.categoryId" type="radio" :enum-data="dict.categoryId" placeholder="请输入分类id"/>
<Field :span="20" label="封面"><imageUpload v-model="form.titleLogoPath" prePath="/file/preview"/></Field>
<Field :span="20" label="责任编辑" prop="editor" v-model="form.editor" placeholder="请输入责任编辑"/> <Field :span="20" label="责任编辑" prop="editor" v-model="form.editor" placeholder="请输入责任编辑"/>
<Field :span="20" label="发布部门" prop="deptId" v-model="form.deptId" type="select" :enum-data="dict.deptId" placeholder="请输入发布部门"/> <Field :span="20" label="发布部门" prop="deptId" v-model="form.deptId" type="select" :enum-data="dict.deptId" placeholder="请输入发布部门"/>
<Field :span="20" label="文章来源" prop="source" v-model="form.source" placeholder="请输入文章来源"/> <Field :span="20" label="文章来源" prop="source" v-model="form.source" placeholder="请输入文章来源"/>
<Field label="发布时间" prop="publishTime" v-model="form.publishTime" type="date" /> <Field label="发布时间" prop="publishTime" v-model="form.publishTime" type="date" />
<Field :span="20" label="声明" prop="statement" v-model="form.statement" type="textarea" placeholder="请输入声明"/> <Field :span="20" label="声明" prop="statement" v-model="form.statement" type="textarea" placeholder="请输入声明"/>
</el-row> </el-row>
</div>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn /> </div>
<el-form-item class="footerbtns">
<el-button type="primary" @click='submitForm' icon='el-icon-circle-check-outline'>发布</el-button>
<el-button @click='()=>{open = false}' icon='el-icon-circle-close-outline'>取消</el-button>
</el-form-item>
</el-form> </el-form>
</el-drawer> </el-drawer>
...@@ -141,3 +149,28 @@ ...@@ -141,3 +149,28 @@
}, },
}; };
</script> </script>
<style lang="less" scoped>
.footerbtns{
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid gainsboro;
display: flex;
justify-content: center;
align-content: center;
}
.form{
display: flex;
width: 100%;
.formleft{
flex:1;
width: 60%;
height: calc(100vh - 200px);
overflow: auto;
}
.formright{
width: 40%;
flex-shrink: 0;
flex-grow: 0;
}
}
</style>
\ No newline at end of file
<template>
<!-- 查看弹出框 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="40%">
<div class="formcontent">
<div class="title">{{form.title}}</div>
<div class="timeandistop">
<div class="time">发布时间:{{publishTime}}</div>
<div class="istop">
<span v-if="form.top==0" @click="$emit('handletop',{id:form.id},1)">置顶</span>
<span v-if="form.top==1" @click="$emit('handletop',{id:form.id},0)">取消置顶</span>
</div>
</div>
<div v-html="form.content" class="content"></div>
<div class="last">
<div>发布:{{publishTime}}</div>
<div>责任编辑:{{form.editor}}</div>
<div>审批:</div>
<div>来源:{{form.source}}</div>
<div>声明:{{form.statement}}</div>
</div>
<div class="footbtns">
<el-button type="danger" @click="onDel">删除</el-button>
<el-button @click="()=>{open=false}">关闭</el-button>
</div>
</div>
</el-drawer>
</template>
<script>
import moment from 'moment'
export default {
name: "NewsInfo",
components: {
},
created() {
},
watch:{
form(newval){
if(newval.publishTime){
this.publishTime = moment(newval.publishTime).format('yyyy-MM-DD')
}
}
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "新闻公告详情",
// 是否显示弹出层
open: false,
direction:"rtl",
form:{},
publishTime:"--"
};
},
methods: {
onDel(){
this.$confirm('此操作将永久删除该新闻, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.open = false
this.$emit('del',this.form.id)
}).catch(() => {});
}
},
};
</script>
<style lang="less" scoped>
.last{
font-size: 14px;
color: #72767b;
}
.footbtns{
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
height: 80px;
border-top: 1px solid gainsboro;
}
.formcontent{
padding: 0 20px;
.content{
margin-bottom: 20px;
}
.timeandistop{
display: flex;
align-items: center;
margin-bottom: 30px;
font-size: 14px;
.time{
color: #72767b;
margin-right: 20px;
}
.istop{
color:dodgerblue
}
}
.title{
font-size: 18px;
margin-bottom: 10px;
}
}
.el-drawer__body{
border-top: 1px solid #72767b !important;
}
</style>
\ No newline at end of file
...@@ -5,17 +5,20 @@ ...@@ -5,17 +5,20 @@
<drawer-show ref="drawerform" @ok="getData" /> <drawer-show ref="drawerform" @ok="getData" />
<drawer-view ref="drawerview" @handletop="handleTop" @del="toDel"/>
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import drawerView from "./drawerview";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "NewsList", name: "NewsList",
components: { components: {
drawerShow drawerShow,
drawerView
}, },
mixins: [table], mixins: [table],
created() { created() {
...@@ -30,15 +33,38 @@ ...@@ -30,15 +33,38 @@
this.$refs.drawerform.edit(row); this.$refs.drawerform.edit(row);
}, },
/** 重写查看方法 */ /** 重写查看方法 */
toView(row) { toView(row,isopen) {
this.$refs.drawerform.view(row); // this.$refs.drawerform.view(row);
// 这里查看不再和编辑共用界面,多写一个抽屉,但调用view方法接口
// this.$refs.drawerform.reset()
this.$refs.drawerform.query = { id: row.id };
this.$refs.drawerform.urls.currUrl ="news/view";
this.$refs.drawerform.$get('news/view', this.$refs.drawerform.query)
.then(({ data }) => {
if(!isopen){
this.$refs.drawerview.open = true
}
this.$refs.drawerview.form = data.entity
})
.catch(error => {
this.$refs.drawerview.form = {}
this.$message.error(error.message)
throw error
})
}, },
handleTop(row,top) { handleTop(row,top) {
this.$post("/news/save",{id:row.id,top:top}).then((res) => { this.$post("/news/save",{id:row.id,top:top}).then((res) => {
if (res.code == 1) { if (res.code == 1) {
this.$message.success("置顶成功!"); if(top==0){
this.$message.success("取消置顶成功!");
}else{
this.$message.success("置顶成功!");
}
this.toView({id:row.id},true)
this.getData(); this.getData();
} }
}) })
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<el-row> <el-row>
<Field :span="20" label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/> <Field :span="20" label="职位名称" prop="positionName" v-model="form.positionName" placeholder="请输入职位名称"/>
<Field :span="20" label="职位编码" prop="positionCode" v-model="form.positionCode" placeholder="请输入职位编码"/> <Field :span="20" label="职位编码" prop="positionCode" v-model="form.positionCode" placeholder="请输入职位编码"/>
<Field :span="20"label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/> <Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row> </el-row>
...@@ -47,6 +47,10 @@ ...@@ -47,6 +47,10 @@
], ],
// 表单校验 // 表单校验
rules: { rules: {
positionName :[
{ required: true, message: "请输入职位名称", trigger: "blur" },
{ max: 30, message: "最多只能录入30个字符", trigger: "blur" }
],
} }
}; };
}, },
......
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
width: 240, width: 240,
formatter: row => { formatter: row => {
return ( return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> <table-buttons noAdd noEdit noDel row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
); );
} }
} }
......
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