emis-frontend/src/views/emis/emisArticle/emisArticleForm.vue

247 lines
7.4 KiB
Vue
Raw Normal View History

2024-08-30 07:43:43 +00:00
<template>
<div >
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="24">
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" />
</el-form-item>
</el-col>
<el-col :span="24">
2024-09-02 07:16:25 +00:00
<el-form-item label="描述" prop="description">
<el-input v-model="form.description" placeholder="请输入描述" />
2024-08-30 07:43:43 +00:00
</el-form-item>
</el-col>
<el-col :span="24">
2024-09-02 07:16:25 +00:00
<el-form-item label="文章主图" prop="fileUrl">
<ImageOneUpload v-model="form.fileUrl" ></ImageOneUpload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="内容" prop="content">
<editor v-model="form.content" :min-height="192"/>
</el-form-item>
</el-col>
<!-- <el-col :span="24">
2024-08-30 07:43:43 +00:00
<el-form-item label="作者" prop="author">
<el-input v-model="form.author" placeholder="请输入作者" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="作者邮箱" prop="authorEmail">
<el-input v-model="form.authorEmail" placeholder="请输入作者邮箱" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="关键字" prop="keywords">
<el-input v-model="form.keywords" placeholder="请输入关键字" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="文章类型" prop="articleType">
<el-input v-model="form.articleType" placeholder="请输入文章类型" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否开放" prop="isOpen">
<el-input v-model="form.isOpen" placeholder="请输入是否开放" />
</el-form-item>
</el-col>
2024-09-02 07:16:25 +00:00
2024-08-30 07:43:43 +00:00
<el-col :span="24">
<el-form-item label="开放类型" prop="openType">
<el-input v-model="form.openType" placeholder="请输入开放类型" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="url" prop="link">
<el-input v-model="form.link" placeholder="请输入url" />
</el-form-item>
</el-col>
2024-09-02 07:16:25 +00:00
2024-08-30 07:43:43 +00:00
<el-col :span="24">
<el-form-item label="点击次数" prop="clickCount">
<el-input v-model="form.clickCount" placeholder="请输入点击次数" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="删除标志(0代表存在" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入删除标志(0代表存在" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
2024-09-02 07:16:25 +00:00
</el-col> -->
2024-08-30 07:43:43 +00:00
</el-row>
</el-form>
<div style="text-align: center;margin-bottom: 10px;">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
2024-09-02 07:16:25 +00:00
2024-08-30 07:43:43 +00:00
</div>
</template>
<script>
import { listEmisArticle, getEmisArticle, delEmisArticle, addEmisArticle, updateEmisArticle } from "@/api/emis/emisArticle";
export default {
name: "emisArticleForm",
props:{
id:{
type:Number
}
},
components: { },
dicts: [
],
data() {
return {
emisArticleOptions: [],
// 遮罩层
loading: true,
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "id不能为空", trigger: "blur" }
],
catId: [
{ required: true, message: "分类不能为空", trigger: "blur" }
],
title: [
{ required: true, message: "标题不能为空", trigger: "blur" }
],
content: [
{ required: true, message: "内容不能为空", trigger: "blur" }
],
articleType: [
{ required: true, message: "文章类型不能为空", trigger: "blur" }
],
isOpen: [
{ required: true, message: "是否开放不能为空", trigger: "blur" }
],
clickCount: [
{ required: true, message: "点击次数不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除标志(0代表存在不能为空", trigger: "blur" }
],
}
};
},
watch: {
"id": {
handler (newValue, oldValue) {
this.id = newValue;
this.initData();
},
deep: true
}
},
created() {
this.initData();
},
methods: {
initData() {
2024-09-02 07:16:25 +00:00
2024-08-30 07:43:43 +00:00
if(this.id !=null) {
this.loading = true;
getEmisArticle(this.id).then(response => {
this.form = response.data;
this.loading = false;
});
}else{
this.reset();
}
// this.getTreeselect();
},
// 取消按钮
cancel() {
this.reset();
this.$emit("on-cancel");
},
// 表单重置
reset() {
this.form = {
id: null,
catId: null,
title: null,
content: null,
author: null,
authorEmail: null,
keywords: null,
articleType: null,
isOpen: null,
fileUrl: null,
openType: null,
link: null,
description: null,
clickCount: null,
tenantId: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
createSite: null,
updateSite: null
};
this.resetForm("form");
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateEmisArticle(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.$emit("on-changed");
});
} else {
addEmisArticle(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.$emit("on-changed");
});
}
}
});
},
// /** 转换菜单数据结构 */
// normalizer(node) {
// if (node.children && !node.children.length) {
// delete node.children;
// }
// return {
// id: node.id,
// label: node.idName,
// children: node.children
// };
// },
// /** 查询菜单下拉树结构 */
// getTreeselect() {
// const queryParams = {}
// listEmisArticle(queryParams).then(response => {
// this.emisArticleOptions = [];
// const rootItem = { idId: 0, emisArticleName: '-', children: [] };
// rootItem.children = this.handleTree(response.data, "id");
// this.emisArticleOptions.push(rootItem);
// if(this.parentId != undefined) {
// this.form.parentId = this.parentId;
// }
// });
// },
}
};
</script>