文章
This commit is contained in:
@@ -26,6 +26,20 @@ export function getArticle(id) {
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// 查询系统文章详细
|
||||
export function getArticleType() {
|
||||
return request({
|
||||
url: '/sist/article/type/',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getArticleApprove(type) {
|
||||
return request({
|
||||
url: '/sist/article/approve/'+type,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增系统文章
|
||||
export function addArticle(data) {
|
||||
|
||||
@@ -16,84 +16,103 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="文章类型" prop="type">
|
||||
<el-select v-model="formData.type" placeholder="请选择文章类型" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in articleTypeOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<!-- <el-col :span="6">-->
|
||||
<!-- <el-form-item label="文章类型" prop="type">-->
|
||||
<!-- <el-select v-model="formData.type" placeholder="请选择文章类型" clearable :style="{width: '100%'}">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="dict in articleTypeOptions"-->
|
||||
<!-- :key="dict.dictValue"-->
|
||||
<!-- :label="dict.dictLabel"-->
|
||||
<!-- :value="dict.dictValue"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否顶置" prop="isTop">
|
||||
<el-select v-model="formData.isTop" placeholder="请选择是否顶置" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in isTopOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="是否显示" prop="isView">
|
||||
<el-select v-model="formData.isView" placeholder="请选择是否英语" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in isViewOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="是否英语" prop="isEnglish">
|
||||
<el-select v-model="formData.isEnglish" placeholder="请选择是否英语" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in isEnglishOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="发布网站" prop="sitetype">
|
||||
<el-radio-group v-model="formData.sitetype">
|
||||
<el-radio-button v-for="(item, index) in sitetypeOptions" :key="index"
|
||||
<el-radio-group v-model="formData.isTop">
|
||||
<el-radio-button v-for="(item, index) in isTopOptions" :key="index"
|
||||
:label="item.dictValue">{{ item.dictLabel }}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否显示" prop="isView">
|
||||
<el-radio-group v-model="formData.isView">
|
||||
<el-radio-button v-for="(item, index) in isViewOptions" :key="index"
|
||||
:label="item.dictValue">{{ item.dictLabel }}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否英语" prop="isEnglish">
|
||||
<el-radio-group v-model="formData.isEnglish">
|
||||
<el-radio-button v-for="(item, index) in isEnglishOptions" :key="index"
|
||||
:label="item.dictValue">{{ item.dictLabel }}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!--发布时间 为审批时间-->
|
||||
<!-- <el-col :span="12">-->
|
||||
<!-- <el-form-item label="发布时间" prop="publishTime">-->
|
||||
<!-- <el-date-picker-->
|
||||
<!-- v-model="formData.publishTime"-->
|
||||
<!-- type="datetime"-->
|
||||
<!-- placeholder="选择日期时间"-->
|
||||
<!-- align="right"-->
|
||||
<!-- :picker-options="pickerOptions">-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :offset="1" :span="16">
|
||||
<Editor v-model="formData.content" :min-height="500"/>
|
||||
<el-row v-show="sistArticleTypeOption.length>0">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="信息网站">
|
||||
<el-select v-model="params.sistArticleType" @change="getSistApprove(params.sistArticleType)"
|
||||
placeholder="请选择文章类型" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in sistArticleTypeOption"
|
||||
:key="dict.dictCode"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictCode"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
选择菜单或者文章类型
|
||||
<el-form-item label="审批人">
|
||||
<el-select v-model="params.sistApprove" placeholder="请选择文章类型" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in sistApproveOption"
|
||||
:key="dict.user_id"
|
||||
:label="dict.user_name"
|
||||
:value="dict.user_id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-show="labArticleTypeOption.length>0">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="实验室网站">
|
||||
<el-select v-model="params.labArticleType" placeholder="请选择文章类型"
|
||||
@change="getLabApprove(params.labArticleType)" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in labArticleTypeOption"
|
||||
:key="dict.dictCode"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictCode"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="审批人">
|
||||
<el-select v-model="params.labApprove" placeholder="请选择文章类型" clearable :style="{width: '100%'}">
|
||||
<el-option
|
||||
v-for="dict in labApproveOption"
|
||||
:key="dict.user_id"
|
||||
:label="dict.user_name"
|
||||
:value="dict.user_id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :offset="1" :span="22">
|
||||
<Editor v-model="formData.content" :min-height="500"/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
@@ -109,7 +128,8 @@
|
||||
</template>
|
||||
<script>
|
||||
import Editor from '@/components/Editor';
|
||||
import {updateArticle, getArticle, addArticle} from "@/api/sist/article";
|
||||
import {updateArticle, getArticle, addArticle, getArticleType, getArticleApprove} from "@/api/sist/article";
|
||||
import {Message} from "element-ui";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@@ -121,49 +141,20 @@ export default {
|
||||
formData: {
|
||||
id: null,
|
||||
title: null,
|
||||
type: null,
|
||||
isTop: null,
|
||||
isEnglish: null,
|
||||
sitetype: "",
|
||||
content: "",
|
||||
},
|
||||
rules: {
|
||||
title: [{
|
||||
required: true,
|
||||
message: '请输入文章标题',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
type: [{
|
||||
required: true,
|
||||
message: '请选择文章类型',
|
||||
trigger: 'change'
|
||||
}],
|
||||
isTop: [{
|
||||
required: true,
|
||||
message: '请选择是否顶置',
|
||||
trigger: 'change'
|
||||
}],
|
||||
isEnglish: [{
|
||||
required: true,
|
||||
message: '请选择是否英语',
|
||||
trigger: 'change'
|
||||
}],
|
||||
isView: [{
|
||||
required: true,
|
||||
message: '请选择是否显示',
|
||||
trigger: 'change'
|
||||
}],
|
||||
sitetype: [{
|
||||
required: true,
|
||||
message: '单选框组不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
publishTime: [{
|
||||
required: true,
|
||||
message: '请选择发布日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
params: {
|
||||
sistArticleType: null,
|
||||
sistApprove: null,
|
||||
labArticleType: null,
|
||||
labApprove: null,
|
||||
},
|
||||
sistArticleTypeOption: [],
|
||||
labArticleTypeOption: [],
|
||||
sistApproveOption: [],
|
||||
labApproveOption: [],
|
||||
articleTypeOptions: [],
|
||||
isTopOptions: [],
|
||||
isViewOptions: [],
|
||||
@@ -191,6 +182,38 @@ export default {
|
||||
}
|
||||
}]
|
||||
},
|
||||
rules: {
|
||||
title: [{
|
||||
required: true,
|
||||
message: '请输入文章标题',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
isTop: [{
|
||||
required: true,
|
||||
message: '请选择是否顶置',
|
||||
trigger: 'change'
|
||||
}],
|
||||
isEnglish: [{
|
||||
required: true,
|
||||
message: '请选择是否英语',
|
||||
trigger: 'change'
|
||||
}],
|
||||
isView: [{
|
||||
required: true,
|
||||
message: '请选择是否显示',
|
||||
trigger: 'change'
|
||||
}],
|
||||
sitetype: [{
|
||||
required: true,
|
||||
message: '单选框组不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
publishTime: [{
|
||||
required: true,
|
||||
message: '请选择发布日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
@@ -223,13 +246,62 @@ export default {
|
||||
this.getDicts("article_status").then(response => {
|
||||
this.statusOptions = response.data;
|
||||
});
|
||||
getArticleType().then(res => {
|
||||
let dictCodes = res.data
|
||||
let articleList = this.articleTypeOptions
|
||||
for (let i = 0; i < articleList.length; i++) {
|
||||
for (let j = 0; j < dictCodes.length; j++) {
|
||||
if (articleList[i].dictCode === dictCodes[j]) {
|
||||
if (articleList[i].attribute2 === 1) {
|
||||
this.sistArticleTypeOption.push(articleList[i])
|
||||
} else if (articleList[i].attribute2 === 2) {
|
||||
this.labArticleTypeOption.push(articleList[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
getSistApprove(dictCode) {
|
||||
getArticleApprove(dictCode).then(res => {
|
||||
this.sistApproveOption = res.data
|
||||
})
|
||||
|
||||
},
|
||||
getLabApprove(dictCode) {
|
||||
getArticleApprove(dictCode).then(res => {
|
||||
this.labApproveOption = res.data
|
||||
})
|
||||
},
|
||||
|
||||
submitForm() {
|
||||
console.log(this.formData);
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (valid) {
|
||||
if ((this.params.sistArticleType === null || this.params.sistArticleType === "") && (this.params.labArticleType === null || this.params.labArticleType === "")) {
|
||||
Message({
|
||||
message: "请至少选择一个网站发布文章",
|
||||
type: 'error'
|
||||
})
|
||||
return
|
||||
} else if ((this.params.sistArticleType === null || this.params.sistArticleType === "") && (this.params.labArticleType !== null || this.params.labArticleType !== "") && (this.formData.sistApprove === null || this.params.sistApprove === "")) {
|
||||
Message({
|
||||
message: "请选择信息网站的审批人",
|
||||
type: 'error'
|
||||
})
|
||||
return
|
||||
} else if ((this.params.sistArticleType === null || this.params.sistArticleType === "") && (this.params.labArticleType != null || this.params.labArticleType !== "") && (this.params.labApprove === null || this.params.labApprove === "")) {
|
||||
Message({
|
||||
message: "请选择实验室网站的审批人",
|
||||
type: 'error'
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
this.formData.params = this.params
|
||||
if (this.formData.id != null) {
|
||||
updateArticle(this.formData).then(response => {
|
||||
this.msgSuccess("修改成功");
|
||||
@@ -241,7 +313,6 @@ export default {
|
||||
this.$router.push("/sist/article");
|
||||
});
|
||||
}
|
||||
}
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="站点类型" prop="sitetype">
|
||||
<el-select v-model="queryParams.sitetype" placeholder="请选择站点类型" clearable size="small">
|
||||
<el-form-item label="站点类型" prop="siteType">
|
||||
<el-select v-model="queryParams.siteType" placeholder="请选择站点类型" clearable size="small">
|
||||
<el-option
|
||||
v-for="dict in sitetypeOptions"
|
||||
v-for="dict in siteTypeOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
@@ -115,7 +115,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="文章标题" align="center" prop="title"/>
|
||||
<el-table-column label="站点类型" align="center" prop="sitetype" :formatter="sitetypeFormat"/>
|
||||
<el-table-column label="站点类型" align="center" prop="siteType" :formatter="siteTypeFormat"/>
|
||||
<el-table-column label="文章类型" align="center" prop="type" :formatter="typeFormat"/>
|
||||
<el-table-column label="发布人姓名" align="center" prop="publishUserName"/>
|
||||
<el-table-column label="是否置顶" align="center" prop="isTop" :formatter="isTopFormat"/>
|
||||
@@ -124,6 +124,23 @@
|
||||
<el-table-column label="缩略图" align="center" prop="imgurl"/>
|
||||
<el-table-column label="是否英文" align="center" prop="isEnglish" :formatter="isEnglishFormat"/>
|
||||
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat"/>
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-tag-->
|
||||
<!-- v-if="scope.row.status==1">待取件-->
|
||||
<!-- </el-tag>-->
|
||||
<!-- <el-tag-->
|
||||
<!-- type="warning" v-if="scope.row.status==2"-->
|
||||
<!-- >运输中-->
|
||||
<!-- </el-tag>-->
|
||||
<!-- <el-tag-->
|
||||
<!-- type="danger" v-if="scope.row.status==3"-->
|
||||
<!-- disable-transitions>待收取-->
|
||||
<!-- </el-tag>-->
|
||||
<!-- <el-tag-->
|
||||
<!-- type="success" v-if="scope.row.status==4"-->
|
||||
<!-- disable-transitions>完成-->
|
||||
<!-- </el-tag>-->
|
||||
<!-- </template>-->
|
||||
<el-table-column label="发布时间 " align="center" prop="publishTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.publishTime, '{y}-{m}-{d} {h}:{m}:{s}') }}</span>
|
||||
@@ -191,7 +208,7 @@ export default {
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 站点类型 1: sist 2: lab 3: 双边都发字典
|
||||
sitetypeOptions: [],
|
||||
siteTypeOptions: [],
|
||||
// 1: 2: 3: 根据导航字典
|
||||
typeOptions: [],
|
||||
// 是否置顶字典
|
||||
@@ -210,7 +227,7 @@ export default {
|
||||
pageSize: 10,
|
||||
},
|
||||
params: {},
|
||||
sitetype: null,
|
||||
siteType: null,
|
||||
type: null,
|
||||
title: null,
|
||||
isTop: null,
|
||||
@@ -220,7 +237,7 @@ export default {
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
sitetype: [
|
||||
siteType: [
|
||||
{required: true, message: "站点类型 1: sist 2: lab 3: 双边都发不能为空}", trigger: "change"},
|
||||
],
|
||||
type: [
|
||||
@@ -253,7 +270,7 @@ export default {
|
||||
created() {
|
||||
this.getList();
|
||||
this.getDicts("article_site_type").then(response => {
|
||||
this.sitetypeOptions = response.data;
|
||||
this.siteTypeOptions = response.data;
|
||||
});
|
||||
this.getDicts("article_type").then(response => {
|
||||
this.typeOptions = response.data;
|
||||
@@ -282,8 +299,8 @@ export default {
|
||||
});
|
||||
},
|
||||
// 站点类型 1: sist 2: lab 3: 双边都发字典翻译
|
||||
sitetypeFormat(row, column) {
|
||||
return this.selectDictLabel(this.sitetypeOptions, row.sitetype);
|
||||
siteTypeFormat(row, column) {
|
||||
return this.selectDictLabel(this.siteTypeOptions, row.siteType);
|
||||
},
|
||||
// 1: 2: 3: 根据导航字典翻译
|
||||
typeFormat(row, column) {
|
||||
|
||||
@@ -97,7 +97,6 @@
|
||||
<el-table-column label="类型编码" align="center" prop="dictCode" />
|
||||
<el-table-column label="网站类型" align="center" prop="attribute2" :formatter="attribute2Format" />
|
||||
<el-table-column label="类型名" align="center" prop="dictLabel" />
|
||||
<el-table-column label="类型键值" align="center" prop="dictValue" />
|
||||
<el-table-column label="类型排序" align="center" prop="dictSort" />
|
||||
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
|
||||
<el-table-column label="缩略图" align="center" prop="attribute1" :formatter="attribute1Format" />
|
||||
@@ -143,9 +142,6 @@
|
||||
<el-form-item label="类型名" prop="dictLabel">
|
||||
<el-input v-model="form.dictLabel" placeholder="请输入类型名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型键值" prop="dictValue">
|
||||
<el-input v-model="form.dictValue" placeholder="请输入类型键值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="显示排序" prop="dictSort">
|
||||
<el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
|
||||
</el-form-item>
|
||||
|
||||
@@ -87,7 +87,6 @@
|
||||
<el-table-column label="名录类型编码" align="center" prop="dictCode" />
|
||||
<el-table-column label="网站类型" align="center" prop="attribute2" :formatter="attribute2Format" />
|
||||
<el-table-column label="名录类型" align="center" prop="dictLabel" />
|
||||
<el-table-column label="名录类型键值" align="center" prop="dictValue" />
|
||||
<el-table-column label="名录类型排序" align="center" prop="dictSort" />
|
||||
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
|
||||
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
|
||||
@@ -132,9 +131,6 @@
|
||||
<el-form-item label="名录类型" prop="dictLabel">
|
||||
<el-input v-model="form.dictLabel" placeholder="请输入数据" />
|
||||
</el-form-item>
|
||||
<el-form-item label="名录类型键值" prop="dictValue">
|
||||
<el-input v-model="form.dictValue" placeholder="请输入数据键值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="显示排序" prop="dictSort">
|
||||
<el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
|
||||
</el-form-item>
|
||||
@@ -212,9 +208,6 @@ export default {
|
||||
dictLabel: [
|
||||
{ required: true, message: "名录类型不能为空", trigger: "blur" }
|
||||
],
|
||||
dictValue: [
|
||||
{ required: true, message: "名录类型键值不能为空", trigger: "blur" }
|
||||
],
|
||||
attribute2: [
|
||||
{ required: true, message: "网站类型不能为空", trigger: "blur" }
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user