|
@@ -83,7 +83,11 @@
|
|
<dict-tag :options="dict.type.even_type" :value="scope.row.evenType"/>
|
|
<dict-tag :options="dict.type.even_type" :value="scope.row.evenType"/>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="诉求是否处理" align="center" prop="status"/>
|
|
|
|
|
|
+ <el-table-column label="诉求处理状态" align="center" prop="status">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <dict-tag :options="dict.type.appeal_status" :value="scope.row.status"/>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
<el-button
|
|
@@ -113,44 +117,55 @@
|
|
/>
|
|
/>
|
|
|
|
|
|
<!-- 添加或修改民生诉求对话框 -->
|
|
<!-- 添加或修改民生诉求对话框 -->
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="108px">
|
|
|
|
- <el-form-item label="诉求标题" prop="appealName">
|
|
|
|
- <el-input v-model="form.appealName" placeholder="请输入诉求标题"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="诉求描述" prop="appealDescribe">
|
|
|
|
- <el-input v-model="form.appealDescribe" type="textarea" placeholder="请输入诉求描述"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="上报时间" prop="appearTime">
|
|
|
|
- <el-date-picker clearable
|
|
|
|
- v-model="form.appearTime"
|
|
|
|
- type="datetime"
|
|
|
|
- value-format="yyyy-MM-dd hh:mm:ss"
|
|
|
|
- placeholder="请选择上报时间">
|
|
|
|
- </el-date-picker>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="上报人姓名" prop="appearUserName">
|
|
|
|
- <el-input v-model="form.appearUserName" placeholder="请输入上报人姓名"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="上报联系方式" prop="appearPhone">
|
|
|
|
- <el-input v-model="form.appearPhone" placeholder="请输入上报联系方式"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="上报位置" prop="appearAddress">
|
|
|
|
- <el-input v-model="form.appearAddress" placeholder="请输入上报位置"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="事件分类" prop="evenType">
|
|
|
|
- <el-select v-model="form.evenType" placeholder="请选择事件分类">
|
|
|
|
- <el-option
|
|
|
|
- v-for="dict in dict.type.even_type"
|
|
|
|
- :key="dict.value"
|
|
|
|
- :label="dict.label"
|
|
|
|
- :value="dict.value"
|
|
|
|
- ></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="图片" prop="appearImages">
|
|
|
|
- <image-upload v-model="form.appearImages"/>
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
|
|
|
+ <el-form ref="form" :model="form" :inline="true" :rules="rules" label-width="108px">
|
|
|
|
+
|
|
|
|
+ <el-form-item label="诉求标题" prop="appealName">
|
|
|
|
+ <el-input v-model="form.appealName" placeholder="请输入诉求标题"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="上报时间" prop="appearTime">
|
|
|
|
+ <el-date-picker clearable
|
|
|
|
+ v-model="form.appearTime"
|
|
|
|
+ type="datetime"
|
|
|
|
+ value-format="yyyy-MM-dd hh:mm:ss"
|
|
|
|
+ placeholder="请选择上报时间">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="上报人姓名" prop="appearUserName">
|
|
|
|
+ <el-input v-model="form.appearUserName" placeholder="请输入上报人姓名"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="上报联系方式" prop="appearPhone">
|
|
|
|
+ <el-input v-model="form.appearPhone" placeholder="请输入上报联系方式" style="width: 220px"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="上报位置" prop="appearAddress">
|
|
|
|
+ <el-input v-model="form.appearAddress" placeholder="请输入上报位置"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="事件分类" prop="evenType">
|
|
|
|
+ <el-select v-model="form.evenType" placeholder="请选择事件分类">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="dict in dict.type.even_type"
|
|
|
|
+ :key="dict.value"
|
|
|
|
+ :label="dict.label"
|
|
|
|
+ :value="dict.value"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item v-show="appealStatus" label="诉求处理状态" prop="status">
|
|
|
|
+ <el-select v-model="form.status" placeholder="请选择诉求处理状态">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="dict in dict.type.appeal_status"
|
|
|
|
+ :key="dict.value"
|
|
|
|
+ :label="dict.label"
|
|
|
|
+ :value="dict.value"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="诉求描述" prop="appealDescribe">
|
|
|
|
+ <el-input v-model="form.appealDescribe" type="textarea" placeholder="请输入诉求描述" style="width: 540px"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="图片" prop="appearImages">
|
|
|
|
+ <image-upload :limit="5" v-model="form.appearImages"/>
|
|
|
|
+ </el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
@@ -165,7 +180,7 @@ import {addAppeal, delAppeal, getAppeal, listAppeal, updateAppeal} from "@/api/s
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: "Appeal",
|
|
name: "Appeal",
|
|
- dicts: ["even_type"],
|
|
|
|
|
|
+ dicts: ["even_type", "appeal_status"],
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
// 遮罩层
|
|
// 遮罩层
|
|
@@ -202,17 +217,18 @@ export default {
|
|
},
|
|
},
|
|
// 表单参数
|
|
// 表单参数
|
|
form: {
|
|
form: {
|
|
- appearImages:[]
|
|
|
|
|
|
+ appearImages: []
|
|
},
|
|
},
|
|
|
|
+ appealStatus: false,
|
|
// 表单校验
|
|
// 表单校验
|
|
rules: {
|
|
rules: {
|
|
appealName: [
|
|
appealName: [
|
|
{required: true, message: "诉求标题不能为空", trigger: "blur"},
|
|
{required: true, message: "诉求标题不能为空", trigger: "blur"},
|
|
- { max: 50, message: '诉求标题最多可以输入50个字符', trigger: 'blur' }
|
|
|
|
|
|
+ {max: 50, message: '诉求标题最多可以输入50个字符', trigger: 'blur'}
|
|
],
|
|
],
|
|
appealDescribe: [
|
|
appealDescribe: [
|
|
{required: true, message: "诉求描述不能为空", trigger: "blur"},
|
|
{required: true, message: "诉求描述不能为空", trigger: "blur"},
|
|
- { max: 250, message: '诉求描述最多可以输入250个字符', trigger: 'blur' }
|
|
|
|
|
|
+ {max: 250, message: '诉求描述最多可以输入250个字符', trigger: 'blur'}
|
|
],
|
|
],
|
|
appearTime: [
|
|
appearTime: [
|
|
{required: true, message: "上报时间不能为空", trigger: "change"},
|
|
{required: true, message: "上报时间不能为空", trigger: "change"},
|
|
@@ -222,6 +238,11 @@ export default {
|
|
],
|
|
],
|
|
appearPhone: [
|
|
appearPhone: [
|
|
{required: true, message: "上报联系方式不能为空", trigger: "blur"},
|
|
{required: true, message: "上报联系方式不能为空", trigger: "blur"},
|
|
|
|
+ {
|
|
|
|
+ pattern: /^1[0-9][0-9]\d{8}$/,
|
|
|
|
+ message: "请输入正确的手机号码",
|
|
|
|
+ trigger: "blur"
|
|
|
|
+ }
|
|
],
|
|
],
|
|
appearAddress: [
|
|
appearAddress: [
|
|
{required: true, message: "上报位置不能为空", trigger: "blur"},
|
|
{required: true, message: "上报位置不能为空", trigger: "blur"},
|
|
@@ -229,6 +250,9 @@ export default {
|
|
evenType: [
|
|
evenType: [
|
|
{required: true, message: "事件分类不能为空", trigger: "blur"},
|
|
{required: true, message: "事件分类不能为空", trigger: "blur"},
|
|
],
|
|
],
|
|
|
|
+ status: [
|
|
|
|
+ {required: true, message: "诉求处理状态不能为空", trigger: "blur"},
|
|
|
|
+ ],
|
|
appearImages: [
|
|
appearImages: [
|
|
{required: true, message: "图片不能为空,至少上传一张", trigger: "blur"},
|
|
{required: true, message: "图片不能为空,至少上传一张", trigger: "blur"},
|
|
],
|
|
],
|
|
@@ -293,11 +317,15 @@ export default {
|
|
/** 新增按钮操作 */
|
|
/** 新增按钮操作 */
|
|
handleAdd() {
|
|
handleAdd() {
|
|
this.reset();
|
|
this.reset();
|
|
|
|
+ this.appealStatus = false
|
|
|
|
+ this.rules.status[0].required = false
|
|
this.open = true;
|
|
this.open = true;
|
|
this.title = "添加民生诉求";
|
|
this.title = "添加民生诉求";
|
|
},
|
|
},
|
|
/** 修改按钮操作 */
|
|
/** 修改按钮操作 */
|
|
handleUpdate(row) {
|
|
handleUpdate(row) {
|
|
|
|
+ this.appealStatus = true
|
|
|
|
+ this.rules.status[0].required = true
|
|
this.reset();
|
|
this.reset();
|
|
const id = row.id || this.ids
|
|
const id = row.id || this.ids
|
|
getAppeal(id).then(response => {
|
|
getAppeal(id).then(response => {
|