Files

296 lines
8.8 KiB
Vue
Raw Normal View History

<template>
<div class="app-container">
2021-07-16 17:01:59 +08:00
<div>{{ editPage ? '修改' : '添加' }}政策</div>
<el-form
2021-08-06 17:58:21 +08:00
style="width: 50%; margin: 15px 0 0 15px"
label-position="left"
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="80px"
>
<el-form-item label="政策标题" prop="title">
2021-07-26 14:41:06 +08:00
<el-input
placeholder="请输入"
v-model="ruleForm.title"
:disabled="editPage"
></el-input>
</el-form-item>
2021-08-06 17:58:21 +08:00
<el-form-item label="城市" prop="ids">
<!-- <el-select
2021-07-26 14:41:06 +08:00
v-model="ruleForm.level"
placeholder="请选择"
:disabled="editPage"
>
<el-option
v-for="item in levelOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
2021-08-06 17:58:21 +08:00
</el-select> -->
<el-cascader
v-model="ruleForm.ids"
:options="levelOptions"
:props="{ expandTrigger: 'hover' }"
:show-all-levels="false"
:disabled="editPage"
>
</el-cascader>
</el-form-item>
<el-form-item label="归口" prop="attribute">
2021-07-26 14:41:06 +08:00
<el-select
v-model="ruleForm.attribute"
placeholder="请选择"
:disabled="editPage"
>
<el-option
v-for="item in attributeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="发布日期" required>
<el-form-item prop="listDate">
<el-date-picker
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
v-model="ruleForm.listDate"
2021-08-06 17:58:21 +08:00
style="width: 30%"
2021-07-26 14:41:06 +08:00
:disabled="editPage"
></el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item label="来源" prop="source">
2021-07-26 14:41:06 +08:00
<el-input
placeholder="请输入"
v-model="ruleForm.source"
:disabled="editPage"
></el-input>
</el-form-item>
<el-form-item label="正文" prop="text">
2021-07-26 12:01:29 +08:00
<div id="text">
<editor v-model="ruleForm.text" :min-height="192" />
</div>
</el-form-item>
2021-08-09 17:07:29 +08:00
<el-form-item label="附件">
<!-- <el-upload
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload> -->
<!-- <el-upload ref="upload" :limit="3" accept=".xlsx, .xls, .docx" :headers="upload.headers"
:action="upload.url" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div class="el-upload__tip" style="color:red" slot="tip">提示仅允许导入xlsxlsx格式文件</div>
</el-upload> -->
<el-button type="info" size="small" @click="upload.open = true">添加附件</el-button>
</el-form-item>
<el-form-item v-if="ruleForm.method!==1">
<!-- <el-form-item v-if="!editPage"> -->
<el-button type="primary" @click="submitForm('ruleForm')"
>确定</el-button
>
<!-- <el-button @click="resetForm('ruleForm')">重置</el-button> -->
</el-form-item>
</el-form>
2021-08-09 17:07:29 +08:00
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls, .docx" :headers="upload.headers"
:action="upload.url" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div class="el-upload__tip" style="color:red" slot="tip">提示仅允许导入xlsxlsx格式文件</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="upload.open = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Editor from '@/components/Editor';
2021-08-09 17:07:29 +08:00
import { getToken } from "@/utils/auth";
import { addPolicy, updatePolicy, getPolicyInfo } from '@/api/policy/library';
2021-08-06 17:58:21 +08:00
import { getCityByLevel } from '@/api/policy/library';
export default {
components: {
2021-08-06 17:58:21 +08:00
Editor,
},
data() {
return {
2021-08-09 17:07:29 +08:00
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "添加附件",
// 是否禁用上传
isUploading: false,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/minio/upload"
},
editPage: false,
ruleForm: {
title: '',
2021-08-06 17:58:21 +08:00
ids: '',
attribute: '',
listDate: '',
source: '',
2021-08-06 17:58:21 +08:00
text: '',
},
// 归口选项
attributeOptions: [
{
value: 'KJJ',
2021-08-06 17:58:21 +08:00
label: '科技',
},
{
value: 'JXJ',
2021-08-06 17:58:21 +08:00
label: '经信',
},
{
value: 'FGW',
2021-08-06 17:58:21 +08:00
label: '发改',
},
{
value: 'OTHER',
2021-08-06 17:58:21 +08:00
label: '其他',
},
],
// 级别选项
levelOptions: [
{
2021-08-06 17:58:21 +08:00
value: '1',
label: '安徽省',
},
{
2021-08-06 17:58:21 +08:00
value: '2',
label: '地级市',
children: [],
},
{
2021-08-06 17:58:21 +08:00
value: '3',
label: '合肥区县',
children: [],
},
],
rules: {
title: [{ required: true, message: '请输入政策标题', trigger: 'blur' }],
2021-08-06 17:58:21 +08:00
ids: [{ required: true, message: '请选择级别', trigger: 'change' }],
attribute: [
2021-08-06 17:58:21 +08:00
{ required: true, message: '请选择归口', trigger: 'change' },
],
listDate: [
{
required: true,
message: '请选择日期',
2021-08-06 17:58:21 +08:00
trigger: 'change',
},
],
source: [{ required: true, message: '请填写来源', trigger: 'blur' }],
2021-08-06 17:58:21 +08:00
text: [
{ required: true, message: '请填写富文本内容', trigger: 'blur' },
],
},
};
},
methods: {
submitForm(formName) {
2021-08-06 17:58:21 +08:00
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.editPage) {
// 修改
updatePolicy(this.ruleForm).then(({ message }) => {
this.msgSuccess(message);
});
} else {
// 添加
addPolicy(this.ruleForm).then(({ message }) => {
this.msgSuccess(message);
});
}
2021-08-09 17:07:29 +08:00
// this.$router.go(-1);
} else {
console.log('error submit!!');
return false;
}
});
2021-08-06 17:58:21 +08:00
},
// resetForm(formName) {
// this.$refs[formName].resetFields();
// }
2021-08-09 17:07:29 +08:00
// 文件上传中处理
handleFileUploadProgress (event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess (response, file, fileList) {
this.ruleForm.text+=`<div>附件<a href="${response.data.url}">${response.data.name}</a></div>`
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(response.message, "导入结果", { dangerouslyUseHTMLString: true });
},
// 提交上传文件
submitFileForm () {
this.$refs.upload.submit();
},
},
2021-07-26 12:01:29 +08:00
watch: {
ruleForm: {
2021-08-06 17:58:21 +08:00
handler: function () {
2021-07-26 12:01:29 +08:00
this.$nextTick(() => {
this.formatRichText(this.ruleForm.downloadUrl);
});
2021-08-06 17:58:21 +08:00
},
2021-07-26 12:01:29 +08:00
},
2021-08-06 17:58:21 +08:00
deep: true,
2021-07-26 12:01:29 +08:00
},
created() {
let { id } = this.$route.query;
if (id) {
this.editPage = true;
getPolicyInfo({ policyId: id }).then(({ data }) => {
this.ruleForm = data;
});
}
2021-08-06 17:58:21 +08:00
getCityByLevel({ level: 2 }).then(({ data }) => {
this.levelOptions[1].children = data;
});
getCityByLevel({ level: 3 }).then(({ data }) => {
this.levelOptions[2].children = data;
});
},
};
</script>
2021-07-26 14:41:06 +08:00
<style lang="scss" scoped>
/deep/.ql-toolbar {
.ql-formats:last-child {
display: none;
}
}
</style>