Files

223 lines
5.6 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-07-26 14:41:06 +08:00
<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>
</div>
</template>
<script>
import Editor from '@/components/Editor';
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 {
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);
});
}
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-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>