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