申诉管理模块: 页面优化;
This commit is contained in:
@@ -135,7 +135,7 @@ public class AppealInfo extends BaseModel {
|
||||
|
||||
@Column
|
||||
@Comment("申诉人签名")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
private String signature;
|
||||
|
||||
@Column
|
||||
|
||||
@@ -78,11 +78,11 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="处理决定内容" prop="decisionContent" :rules="[{required:true,validator:validateRichText,message:'请输入处理决定内容',trigger:['blur','change']}]">
|
||||
<text-editor v-model="formData.decisionContent"></text-editor>
|
||||
<el-form-item label="处理决定内容" prop="decisionContent" :rules="[{required:true,validator:validateText,message:'请输入处理决定内容',trigger:['blur','change']}]">
|
||||
<el-input v-model="formData.decisionContent" type="textarea" :rows="5" maxlength="2000" show-word-limit placeholder="请输入处理决定内容"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="事实理由及依据" prop="legalBasis" :rules="[{required:true,validator:validateRichText,message:'请输入事实理由及依据',trigger:['blur','change']}]">
|
||||
<text-editor v-model="formData.legalBasis"></text-editor>
|
||||
<el-form-item label="事实理由及依据" prop="legalBasis" :rules="[{required:true,validator:validateText,message:'请输入事实理由及依据',trigger:['blur','change']}]">
|
||||
<el-input v-model="formData.legalBasis" type="textarea" :rows="6" maxlength="3000" show-word-limit placeholder="请输入事实理由及依据"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="决定书附件" prop="decisionFiles">
|
||||
<file-upload :value.sync="formData.decisionFiles" :upload_number="5" upload_mode="drag" upload_result_category="array" complete_result></file-upload>
|
||||
@@ -157,9 +157,8 @@ layout("/layouts/platform.html"){
|
||||
submit()
|
||||
}
|
||||
},
|
||||
validateRichText(rule, value, callback) {
|
||||
const text = (value || "").replace(/<[^>]+>/g, "").replace(/ /g, "").trim()
|
||||
if (!text) {
|
||||
validateText(rule, value, callback) {
|
||||
if (!(value || "").trim()) {
|
||||
callback(new Error(rule.message))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -24,13 +24,13 @@ const APPEAL_INFO = {
|
||||
<el-descriptions-item label="被申诉单位地址" :span="2">{{ text(viewData.defendantAddress) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="被申诉单位电话">{{ text(viewData.defendantContact) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申诉事项" :span="3">
|
||||
<div class="text-left" v-html="viewData.appealMatter"></div>
|
||||
<div class="text-left" style="white-space: pre-wrap;" v-text="plainText(viewData.appealMatter)"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申诉理由" :span="3">
|
||||
<div class="text-left" v-html="viewData.reason"></div>
|
||||
<div class="text-left" style="white-space: pre-wrap;" v-text="plainText(viewData.reason)"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申诉要求" :span="3">
|
||||
<div class="text-left" v-html="viewData.request"></div>
|
||||
<div class="text-left" style="white-space: pre-wrap;" v-text="plainText(viewData.request)"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申诉材料附件" :span="3">
|
||||
<file-preview :files="viewData.files" complete_result></file-preview>
|
||||
@@ -48,10 +48,10 @@ const APPEAL_INFO = {
|
||||
<el-descriptions-item label="处理决定">{{ decisionTypeText(viewData.decisionType) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="决定日期">{{ viewData.decisionDate }}</el-descriptions-item>
|
||||
<el-descriptions-item label="决定内容" :span="3">
|
||||
<div class="text-left" v-html="viewData.decisionContent"></div>
|
||||
<div class="text-left" style="white-space: pre-wrap;" v-text="plainText(viewData.decisionContent)"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="事实理由及依据" :span="3">
|
||||
<div class="text-left" v-html="viewData.legalBasis"></div>
|
||||
<div class="text-left" style="white-space: pre-wrap;" v-text="plainText(viewData.legalBasis)"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="决定书附件" :span="3">
|
||||
<file-preview :files="viewData.decisionFiles" complete_result></file-preview>
|
||||
@@ -64,7 +64,7 @@ const APPEAL_INFO = {
|
||||
<el-descriptions-item label="执行时间">{{ viewData.executeTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="执行状态">{{ viewData.state }}</el-descriptions-item>
|
||||
<el-descriptions-item label="执行情况" :span="3">
|
||||
<div class="text-left" v-html="viewData.executeContent"></div>
|
||||
<div class="text-left" style="white-space: pre-wrap;" v-text="plainText(viewData.executeContent)"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="执行附件" :span="3">
|
||||
<file-preview :files="viewData.executeFiles" complete_result></file-preview>
|
||||
@@ -124,6 +124,14 @@ const APPEAL_INFO = {
|
||||
},
|
||||
text(value) {
|
||||
return value || "-"
|
||||
},
|
||||
plainText(value) {
|
||||
return (value || "")
|
||||
.replace(/<br\s*\/?>/gi, "\n")
|
||||
.replace(/<\/p>/gi, "\n")
|
||||
.replace(/<[^>]+>/g, "")
|
||||
.replace(/ /g, " ")
|
||||
.trim() || "-"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,8 +61,8 @@ layout("/layouts/platform.html"){
|
||||
<el-form-item label="申诉标题">
|
||||
<el-input v-model="formData.title" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="执行情况" prop="executeContent" :rules="[{required:true,validator:validateRichText,message:'请输入执行情况',trigger:['blur','change']}]">
|
||||
<text-editor v-model="formData.executeContent"></text-editor>
|
||||
<el-form-item label="执行情况" prop="executeContent" :rules="[{required:true,validator:validateText,message:'请输入执行情况',trigger:['blur','change']}]">
|
||||
<el-input v-model="formData.executeContent" type="textarea" :rows="5" maxlength="2000" show-word-limit placeholder="请输入执行情况"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="执行附件" prop="executeFiles">
|
||||
<file-upload :value.sync="formData.executeFiles" :upload_number="5" upload_mode="drag" upload_result_category="array" complete_result></file-upload>
|
||||
@@ -125,9 +125,8 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
})
|
||||
},
|
||||
validateRichText(rule, value, callback) {
|
||||
const text = (value || "").replace(/<[^>]+>/g, "").replace(/ /g, "").trim()
|
||||
if (!text) {
|
||||
validateText(rule, value, callback) {
|
||||
if (!(value || "").trim()) {
|
||||
callback(new Error(rule.message))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="联系电话" prop="mobile">
|
||||
<el-input v-model="formData.mobile" clearable maxlength="100" show-word-limit placeholder="请输入手机或办公电话"></el-input>
|
||||
<el-input v-model="formData.mobile" clearable maxlength="100" placeholder="请输入手机或办公电话"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
@@ -89,18 +89,18 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="被申诉单位电话" prop="defendantContact">
|
||||
<el-input v-model="formData.defendantContact" clearable maxlength="100" show-word-limit placeholder="请输入联系电话"></el-input>
|
||||
<el-input v-model="formData.defendantContact" clearable maxlength="100" placeholder="请输入联系电话"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="申诉事项" prop="appealMatter">
|
||||
<text-editor v-model="formData.appealMatter"></text-editor>
|
||||
<el-input v-model="formData.appealMatter" type="textarea" :rows="5" maxlength="1000" show-word-limit placeholder="请输入申诉事项"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="申诉理由" prop="reason">
|
||||
<text-editor v-model="formData.reason"></text-editor>
|
||||
<el-input v-model="formData.reason" type="textarea" :rows="6" maxlength="2000" show-word-limit placeholder="请输入申诉理由"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="申诉要求" prop="request">
|
||||
<text-editor v-model="formData.request"></text-editor>
|
||||
<el-input v-model="formData.request" type="textarea" :rows="5" maxlength="1000" show-word-limit placeholder="请输入申诉要求"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="申诉人签名" prop="signature">
|
||||
<pc-signature v-model="formData.signature"></pc-signature>
|
||||
@@ -145,9 +145,9 @@ layout("/layouts/platform.html"){
|
||||
{validator: this.validatePhone, trigger: "blur"}
|
||||
],
|
||||
title: [{required: true, message: "请输入申诉标题", trigger: "blur"}],
|
||||
appealMatter: [{required: true, validator: this.validateRichText, message: "请输入申诉事项", trigger: ["blur", "change"]}],
|
||||
reason: [{required: true, validator: this.validateRichText, message: "请输入申诉理由", trigger: ["blur", "change"]}],
|
||||
request: [{required: true, validator: this.validateRichText, message: "请输入申诉要求", trigger: ["blur", "change"]}],
|
||||
appealMatter: [{required: true, validator: this.validateText, message: "请输入申诉事项", trigger: ["blur", "change"]}],
|
||||
reason: [{required: true, validator: this.validateText, message: "请输入申诉理由", trigger: ["blur", "change"]}],
|
||||
request: [{required: true, validator: this.validateText, message: "请输入申诉要求", trigger: ["blur", "change"]}],
|
||||
signature: [{required: true, message: "请完成申诉人签名", trigger: ["blur", "change"]}],
|
||||
files: [{required: true, validator: this.validateFiles, message: "请上传申诉材料附件", trigger: "change"}]
|
||||
}
|
||||
@@ -166,9 +166,8 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
callback()
|
||||
},
|
||||
validateRichText(rule, value, callback) {
|
||||
const text = (value || "").replace(/<[^>]+>/g, "").replace(/ /g, "").trim()
|
||||
if (!text) {
|
||||
validateText(rule, value, callback) {
|
||||
if (!(value || "").trim()) {
|
||||
callback(new Error(rule.message))
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user