189 lines
3.6 KiB
Vue
189 lines
3.6 KiB
Vue
|
<template>
|
|||
|
<view class="page">
|
|||
|
<view class="clear" @tap="clear">
|
|||
|
重置
|
|||
|
</view>
|
|||
|
<view class="cu-item height">
|
|||
|
<view class="action">
|
|||
|
<text class="text-black">文章名称:</text>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="cu-item title">
|
|||
|
<textarea placeholder="请输入文章名称"
|
|||
|
v-model="noticeInfo.title"
|
|||
|
maxlength=50
|
|||
|
></textarea>
|
|||
|
</view>
|
|||
|
<view class="cu-item height">
|
|||
|
<view class="action">
|
|||
|
<text class="text-black">文章标签:</text>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="cu-item label">
|
|||
|
<textarea placeholder="请输入文章标签"
|
|||
|
v-model="noticeInfo.label"
|
|||
|
maxlength=4
|
|||
|
></textarea>
|
|||
|
</view>
|
|||
|
<view class="cu-item">
|
|||
|
<view class="action">
|
|||
|
<text class="text-black">文章内容:</text>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="cu-item content ">
|
|||
|
<textarea placeholder="请输入文章内容"
|
|||
|
v-model="noticeInfo.content"
|
|||
|
auto-height="true"
|
|||
|
maxlength=8000
|
|||
|
></textarea>
|
|||
|
</view>
|
|||
|
<view class="button" @tap="preservation">
|
|||
|
<button type="default">发表</button>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import request from '@/util/request.js';
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
//文章信息
|
|||
|
noticeInfo: {
|
|||
|
title: '',
|
|||
|
label: '',
|
|||
|
content: ''
|
|||
|
},
|
|||
|
}
|
|||
|
},
|
|||
|
onShow() {
|
|||
|
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
this.noticeInfo = {
|
|||
|
title: '',
|
|||
|
label: '',
|
|||
|
content: ''
|
|||
|
}
|
|||
|
},
|
|||
|
onPullDownRefresh () {
|
|||
|
uni.startPullDownRefresh();
|
|||
|
},
|
|||
|
onNavigationBarButtonTap() {
|
|||
|
this.preservation()
|
|||
|
},
|
|||
|
methods: {
|
|||
|
/**
|
|||
|
* 清空
|
|||
|
*/
|
|||
|
clear() {
|
|||
|
this.noticeInfo = {
|
|||
|
title: '',
|
|||
|
label: '',
|
|||
|
content: ''
|
|||
|
}
|
|||
|
},
|
|||
|
/**
|
|||
|
* 发表
|
|||
|
*/
|
|||
|
preservation() {
|
|||
|
const NOTICE_TYPE = {
|
|||
|
"学生": "学生想法",
|
|||
|
"家长": "家长建议",
|
|||
|
"教师": "校园通知"
|
|||
|
}
|
|||
|
if (this.noticeInfo.title === '') {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请输入文章标题'
|
|||
|
})
|
|||
|
} else if (this.noticeInfo.label.length !== 4) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '文章标签只能4个字符哦'
|
|||
|
})
|
|||
|
} else if (this.noticeInfo.content === '') {
|
|||
|
uni.showToast({
|
|||
|
icon: 'none',
|
|||
|
title: '请输入文章内容'
|
|||
|
})
|
|||
|
} else {
|
|||
|
request.post('/hs/addArticle',{
|
|||
|
id: this.noticeInfo.id,
|
|||
|
label: this.noticeInfo.label,
|
|||
|
title: this.noticeInfo.title,
|
|||
|
content: this.noticeInfo.content,
|
|||
|
release_id: uni.getStorageSync("userInfo").user_id,
|
|||
|
type: NOTICE_TYPE[uni.getStorageSync("userInfo").user_type]
|
|||
|
}).then(res => {
|
|||
|
console.log("发表文章",res);
|
|||
|
if (res.data === 1) {
|
|||
|
uni.showToast({
|
|||
|
icon: 'loading',
|
|||
|
title: '发表成功'
|
|||
|
});
|
|||
|
setTimeout(() => {
|
|||
|
uni.switchTab({
|
|||
|
url: '/pages/tabbar/homepage/homepage'
|
|||
|
});
|
|||
|
},1000)
|
|||
|
}
|
|||
|
},err=>{
|
|||
|
console.log("err",err);
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped>
|
|||
|
.button{
|
|||
|
}
|
|||
|
.clear{
|
|||
|
position: absolute;
|
|||
|
right: 20px;
|
|||
|
color: #999;
|
|||
|
}
|
|||
|
.page{
|
|||
|
background-color: #FFFFFF;
|
|||
|
border-radius: 10rpx;
|
|||
|
padding: 20rpx;
|
|||
|
}
|
|||
|
.button{
|
|||
|
padding: 40rpx 100rpx 80rpx;
|
|||
|
}
|
|||
|
.cu-item{
|
|||
|
padding: 20rpx 0;
|
|||
|
}
|
|||
|
.title{
|
|||
|
padding-top: 0;
|
|||
|
}
|
|||
|
.title, .label, .content{
|
|||
|
background-color: #F1F1F1;
|
|||
|
width: 100%;
|
|||
|
padding: 20rpx;
|
|||
|
border-radius: 10rpx;
|
|||
|
}
|
|||
|
textarea{
|
|||
|
text-indent: 32rpx;
|
|||
|
line-height: 1.5;
|
|||
|
width: 100%;
|
|||
|
height: 100%;
|
|||
|
}
|
|||
|
.title textarea{
|
|||
|
height: 128rpx;
|
|||
|
font-weight: bold;
|
|||
|
}
|
|||
|
.label textarea{
|
|||
|
height: 80rpx;
|
|||
|
}
|
|||
|
.content textarea{
|
|||
|
min-height: 400rpx;
|
|||
|
text-indent: 40rpx;
|
|||
|
}
|
|||
|
|
|||
|
</style>
|