Commit fcbf44a086edca6177dd0c83e344e34bcedd3151
1 parent
5a14192c
1
Showing
7 changed files
with
423 additions
and
280 deletions
src/views/DisposalSuggestions/Form.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog title="判研建议" :close-on-click-modal="false" :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="70%"> | |
| 3 | - <el-row :gutter="15" class="" > | |
| 4 | - <el-col :span="24" class="form_title"> | |
| 5 | - 巡查上报详情 | |
| 6 | - </el-col> | |
| 7 | - <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules" v-loading="loading"> | |
| 8 | - <el-col :span="24" v-if="false" > | |
| 9 | - <el-form-item label="主键" prop="id"> | |
| 10 | - <el-input v-model="dataForm.id" placeholder="--" clearable :style='{"width":"100%"}' > | |
| 11 | - </el-input> | |
| 12 | - </el-form-item> | |
| 13 | - </el-col> | |
| 14 | - <el-col :span="12"> | |
| 15 | - <el-form-item label="平台名称" prop="platformName"> | |
| 16 | - <el-input v-model="dataForm.platformName" placeholder="--" clearable :style='{"width":"100%"}' > | |
| 17 | - </el-input> | |
| 18 | - </el-form-item> | |
| 19 | - </el-col> | |
| 20 | - <el-col :span="12"> | |
| 21 | - <el-form-item label="平台类型" prop="platformType"> | |
| 22 | - <el-select v-model="dataForm.platformType" placeholder="--" clearable :style='{"width":"100%"}' > | |
| 23 | - <el-option v-for="(item, index) in platformTypeOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option> | |
| 24 | - </el-select> | |
| 25 | - </el-form-item> | |
| 26 | - </el-col> | |
| 27 | - <el-col :span="12"> | |
| 28 | - <el-form-item label="问题类型" prop="questionType"> | |
| 29 | - <el-radio-group v-model="dataForm.questionType" :style='{}' > | |
| 30 | - <el-radio v-for="(item, index) in questionTypeOptions" :key="index" :label="item.id" >{{item.fullName || '--'}}</el-radio> | |
| 31 | - </el-radio-group> | |
| 32 | - </el-form-item> | |
| 33 | - </el-col> | |
| 34 | - <el-col :span="12"> | |
| 35 | - <el-form-item label="问题分类" prop="questionClass"> | |
| 36 | - <el-select v-model="dataForm.questionClass" placeholder="--" clearable :style='{"width":"100%"}' > | |
| 37 | - <el-option v-for="(item, index) in questionClassOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option> | |
| 38 | - </el-select> | |
| 39 | - </el-form-item> | |
| 40 | - </el-col> | |
| 41 | - <el-col :span="24"> | |
| 42 | - <el-form-item label="问题内容" prop="questionContent"> | |
| 43 | - <el-input v-model="dataForm.questionContent" placeholder="--" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' > | |
| 44 | - </el-input> | |
| 45 | - </el-form-item> | |
| 46 | - </el-col> | |
| 47 | - <el-col :span="24"> | |
| 48 | - <el-form-item label="有害链接" prop="link"> | |
| 49 | - <el-input v-model="dataForm.link" placeholder="--" clearable :style='{"width":"100%"}' > | |
| 50 | - </el-input> | |
| 51 | - </el-form-item> | |
| 52 | - </el-col> | |
| 53 | - <el-col :span="24"> | |
| 54 | - <el-form-item label="取证内容" prop="obtainEvidence"> | |
| 55 | - <NCC-UploadFz v-model="dataForm.obtainEvidence" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" > | |
| 56 | - </NCC-UploadFz> | |
| 57 | - </el-form-item> | |
| 58 | - </el-col> | |
| 59 | - <el-col :span="24"> | |
| 60 | - <el-form-item label="附件上传" prop="annex"> | |
| 61 | - <NCC-UploadFz v-model="dataForm.annex" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" > | |
| 62 | - </NCC-UploadFz> | |
| 63 | - </el-form-item> | |
| 64 | - </el-col> | |
| 65 | - </el-form> | |
| 66 | - <el-col :span="24" class="form_title"> | |
| 67 | - 判研建议 | |
| 68 | - </el-col> | |
| 69 | - <el-form ref="suggestionForm" :model="suggestionForm" size="small" label-width="100px" label-position="right"> | |
| 70 | - <el-col :span="24"> | |
| 71 | - <el-form-item :label="isSHILevel ? '处置要求' : '处置建议'" prop="disposalSuggestions"> | |
| 72 | - <el-input v-model="suggestionForm.disposalSuggestions" placeholder="请输入处置建议" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' > | |
| 73 | - </el-input> | |
| 74 | - </el-form-item> | |
| 75 | - </el-col> | |
| 76 | - <el-col :span="24"> | |
| 77 | - <el-form-item label="截止时间" prop="deadline"> | |
| 78 | - <el-date-picker v-model="suggestionForm.deadline" type="date" placeholder="选择日期"></el-date-picker> | |
| 79 | - </el-form-item> | |
| 80 | - </el-col> | |
| 81 | - </el-form> | |
| 82 | - </el-row> | |
| 83 | - <span slot="footer" class="dialog-footer"> | |
| 84 | - <el-button @click="visible = false">取 消</el-button> | |
| 85 | - <el-button type="primary" @click="dataFormSubmit()">确 定</el-button> | |
| 86 | - <el-button type="info" @click="dataFormSubmit()" v-if="isSHILevel">存 档</el-button> | |
| 87 | - </span> | |
| 88 | - </el-dialog> | |
| 2 | + <el-dialog | |
| 3 | + title="判研建议" | |
| 4 | + :close-on-click-modal="false" | |
| 5 | + :visible.sync="visible" | |
| 6 | + class="NCC-dialog NCC-dialog_center" | |
| 7 | + lock-scroll | |
| 8 | + width="60%" | |
| 9 | + v-loading="loading" | |
| 10 | + > | |
| 11 | + <el-row :gutter="15" class=""> | |
| 12 | + <el-col :span="10" style="border-right: 1px solid #e6e6e6;"> | |
| 13 | + <el-row> | |
| 14 | + <el-col :span="24" class="form_title"> 巡查上报详情 </el-col> | |
| 15 | + <el-col :span="24"> | |
| 16 | + <div class="form-item"> | |
| 17 | + <div class="label w-100">问题来源</div> | |
| 18 | + {{ dataForm.source || "--" }} | |
| 19 | + </div> | |
| 20 | + </el-col> | |
| 21 | + <el-col :span="24"> | |
| 22 | + <div class="form-item"> | |
| 23 | + <div class="label w-100">平台名称</div> | |
| 24 | + {{ dataForm.platformName || "--" }} | |
| 25 | + </div> | |
| 26 | + </el-col> | |
| 27 | + <el-col :span="24"> | |
| 28 | + <div class="form-item"> | |
| 29 | + <div class="label w-100">平台类型</div> | |
| 30 | + {{ dataForm.platformType || "--" }} | |
| 31 | + </div> | |
| 32 | + </el-col> | |
| 33 | + <el-col :span="24"> | |
| 34 | + <div class="form-item"> | |
| 35 | + <div class="label w-100">问题类型</div> | |
| 36 | + {{ dataForm.questionType || "--" }} | |
| 37 | + </div> | |
| 38 | + </el-col> | |
| 39 | + <template v-if="dataForm.questionType == '错误表述'"> | |
| 40 | + <el-col :span="24"> | |
| 41 | + <div class="form-item"> | |
| 42 | + <div class="label w-100">正确描述</div> | |
| 43 | + {{ dataForm.accurateDescription || "--" }} | |
| 44 | + </div> | |
| 45 | + </el-col> | |
| 46 | + <el-col :span="24"> | |
| 47 | + <div class="form-item"> | |
| 48 | + <div class="label w-100">错误描述</div> | |
| 49 | + {{ dataForm.incorrectDescription || "--" }} | |
| 50 | + </div> | |
| 51 | + </el-col> | |
| 52 | + </template> | |
| 53 | + <el-col :span="24"> | |
| 54 | + <div class="form-item"> | |
| 55 | + <div class="label w-100">关键词</div> | |
| 56 | + {{ dataForm.questionClass || "--" }} | |
| 57 | + </div> | |
| 58 | + </el-col> | |
| 59 | + <el-col :span="24"> | |
| 60 | + <div class="form-item"> | |
| 61 | + <div class="label w-100">问题内容</div> | |
| 62 | + {{ dataForm.questionContent || "--" }} | |
| 63 | + </div> | |
| 64 | + </el-col> | |
| 65 | + <el-col :span="24"> | |
| 66 | + <div class="form-item"> | |
| 67 | + <div class="label w-100">有害链接</div> | |
| 68 | + {{ dataForm.link || "--" }} | |
| 69 | + </div> | |
| 70 | + </el-col> | |
| 71 | + <el-col :span="24"> | |
| 72 | + <div class="form-item"> | |
| 73 | + <div class="label w-100">取证内容</div> | |
| 74 | + </div> | |
| 75 | + </el-col> | |
| 76 | + </el-row> | |
| 77 | + </el-col> | |
| 78 | + <el-col :span="14"> | |
| 79 | + <el-row> | |
| 80 | + <el-col :span="24" class="form_title"> 判研建议 </el-col> | |
| 81 | + <el-form | |
| 82 | + ref="suggestionForm" | |
| 83 | + :rules="rules" | |
| 84 | + :model="suggestionForm" | |
| 85 | + size="small" | |
| 86 | + label-width="100px" | |
| 87 | + label-position="right" | |
| 88 | + > | |
| 89 | + <el-col :span="24"> | |
| 90 | + <el-form-item | |
| 91 | + :label="isSHILevel ? '处置要求' : '处置建议'" | |
| 92 | + prop="disposalSuggestions" | |
| 93 | + > | |
| 94 | + <el-input | |
| 95 | + v-model="suggestionForm.disposalSuggestions" | |
| 96 | + placeholder="请输入处置建议" | |
| 97 | + show-word-limit | |
| 98 | + :style="{ width: '100%' }" | |
| 99 | + type="textarea" | |
| 100 | + :autosize="{ minRows: 4, maxRows: 4 }" | |
| 101 | + maxlength="200" | |
| 102 | + > | |
| 103 | + </el-input> | |
| 104 | + </el-form-item> | |
| 105 | + </el-col> | |
| 106 | + <!-- <el-col :span="24"> | |
| 107 | + <el-form-item label="截止时间" prop="deadline"> | |
| 108 | + <el-date-picker | |
| 109 | + v-model="suggestionForm.deadline" | |
| 110 | + type="date" | |
| 111 | + placeholder="选择日期" | |
| 112 | + ></el-date-picker> | |
| 113 | + </el-form-item> | |
| 114 | + </el-col> --> | |
| 115 | + <el-col :span="24"> | |
| 116 | + <el-form-item label="研判类型" prop="judgmentClass"> | |
| 117 | + <el-radio-group | |
| 118 | + v-model="suggestionForm.judgmentClass" | |
| 119 | + size="medium" | |
| 120 | + @change="judgmentClassChange" | |
| 121 | + > | |
| 122 | + <el-radio label="不采纳">不采纳</el-radio> | |
| 123 | + <el-radio label="执法">执法</el-radio> | |
| 124 | + <el-radio label="存档">存档</el-radio> | |
| 125 | + <el-radio label="进一步处置">进一步处置</el-radio> | |
| 126 | + </el-radio-group> | |
| 127 | + </el-form-item> | |
| 128 | + </el-col> | |
| 129 | + <el-col :span="24" v-if="showSuggsetion"> | |
| 130 | + <el-form-item | |
| 131 | + label="研判意见" | |
| 132 | + prop="judgmentOpinions" | |
| 133 | + > | |
| 134 | + <el-input | |
| 135 | + v-model="suggestionForm.judgmentOpinions" | |
| 136 | + placeholder="请输入研判意见" | |
| 137 | + show-word-limit | |
| 138 | + :style="{ width: '100%' }" | |
| 139 | + type="textarea" | |
| 140 | + :autosize="{ minRows: 4, maxRows: 4 }" | |
| 141 | + maxlength="200" | |
| 142 | + > | |
| 143 | + </el-input> | |
| 144 | + </el-form-item> | |
| 145 | + </el-col> | |
| 146 | + </el-form> | |
| 147 | + </el-row> | |
| 148 | + </el-col> | |
| 149 | + </el-row> | |
| 150 | + <span slot="footer" class="dialog-footer"> | |
| 151 | + <el-button @click="visible = false">取 消</el-button> | |
| 152 | + <el-button type="primary" @click="dataFormSubmit()">确 定</el-button> | |
| 153 | + </span> | |
| 154 | + </el-dialog> | |
| 89 | 155 | </template> |
| 90 | 156 | <script> |
| 91 | - import request from '@/utils/request' | |
| 92 | - import { getDictionaryDataSelector } from '@/api/systemData/dictionary' | |
| 93 | - import { getDetail, disposalSuggestions } from '@/api/systemData/dataInterface' | |
| 94 | - export default { | |
| 95 | - components: {}, | |
| 96 | - props: [], | |
| 97 | - data() { | |
| 98 | - return { | |
| 99 | - loading: true, | |
| 100 | - visible: false, | |
| 101 | - isDetail: true, | |
| 102 | - dataForm: { | |
| 103 | - id:undefined, | |
| 104 | - platformName:undefined, | |
| 105 | - platformType:undefined, | |
| 106 | - questionType:undefined, | |
| 107 | - questionClass:undefined, | |
| 108 | - questionContent:undefined, | |
| 109 | - link:undefined, | |
| 110 | - obtainEvidence:[], | |
| 111 | - annex:[], | |
| 112 | - }, | |
| 113 | - rules: { | |
| 114 | - }, | |
| 115 | - sourceOptions:[{"fullName":"市网信办线索","id":"市网信办线索"},{"fullName":"自主巡查发现","id":"自主巡查发现"}], | |
| 116 | - platformTypeOptions : [], | |
| 117 | - questionTypeOptions : [], | |
| 118 | - questionClassOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], | |
| 119 | - stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], | |
| 157 | +import request from "@/utils/request"; | |
| 158 | +import { getDictionaryDataSelector } from "@/api/systemData/dictionary"; | |
| 159 | +import { getDetail, disposalSuggestions } from "@/api/systemData/dataInterface"; | |
| 160 | +export default { | |
| 161 | + components: {}, | |
| 162 | + props: [], | |
| 163 | + data() { | |
| 164 | + return { | |
| 165 | + loading: true, | |
| 166 | + visible: false, | |
| 167 | + isDetail: true, | |
| 168 | + dataForm: { | |
| 169 | + id: undefined, | |
| 170 | + platformName: undefined, | |
| 171 | + platformType: undefined, | |
| 172 | + questionType: undefined, | |
| 173 | + questionClass: undefined, | |
| 174 | + questionContent: undefined, | |
| 175 | + link: undefined, | |
| 176 | + obtainEvidence: [], | |
| 177 | + annex: [], | |
| 178 | + }, | |
| 179 | + sourceOptions: [ | |
| 180 | + { fullName: "市网信办线索", id: "市网信办线索" }, | |
| 181 | + { fullName: "自主巡查发现", id: "自主巡查发现" }, | |
| 182 | + ], | |
| 183 | + platformTypeOptions: [], | |
| 184 | + questionTypeOptions: [], | |
| 185 | + questionClassOptions: [ | |
| 186 | + { fullName: "选项一", id: "1" }, | |
| 187 | + { fullName: "选项二", id: "2" }, | |
| 188 | + ], | |
| 189 | + stageOptions: [ | |
| 190 | + { fullName: "选项一", id: "1" }, | |
| 191 | + { fullName: "选项二", id: "2" }, | |
| 192 | + ], | |
| 120 | 193 | |
| 121 | - suggestionForm: { | |
| 122 | - disposalSuggestions: "", //处置建议 | |
| 123 | - judgmentOpinions: "", //判断意见 | |
| 124 | - judgmentClass: "", //判断分类 | |
| 125 | - deadline: '', | |
| 126 | - } | |
| 127 | - } | |
| 128 | - }, | |
| 129 | - computed: { | |
| 130 | - isSHILevel() { | |
| 131 | - // 判断角色是否为‘市级办公室’ | |
| 132 | - return this.$store.state.user.islader; | |
| 133 | - }, | |
| 134 | - }, | |
| 135 | - watch: {}, | |
| 136 | - created() { | |
| 137 | - this.getplatformTypeOptions(); | |
| 138 | - this.getquestionTypeOptions(); | |
| 139 | - }, | |
| 140 | - mounted() { | |
| 141 | - }, | |
| 142 | - methods: { | |
| 143 | - getplatformTypeOptions(){ | |
| 144 | - getDictionaryDataSelector('576279943168656645').then(res => { | |
| 145 | - this.platformTypeOptions = res.data.list | |
| 146 | - }); | |
| 147 | - }, | |
| 148 | - getquestionTypeOptions(){ | |
| 149 | - getDictionaryDataSelector('577006814432855301').then(res => { | |
| 150 | - this.questionTypeOptions = res.data.list | |
| 151 | - }); | |
| 152 | - }, | |
| 153 | - goBack() { | |
| 154 | - this.$emit('refresh') | |
| 194 | + suggestionForm: { | |
| 195 | + disposalSuggestions: "", //处置建议 | |
| 196 | + judgmentOpinions: "", //判断意见 | |
| 197 | + judgmentClass: "", //判断分类 | |
| 198 | + deadline: "", | |
| 199 | + judgmentClass: "", | |
| 200 | + }, | |
| 201 | + rules: { | |
| 202 | + judgmentClass: [ | |
| 203 | + { required: true, message: "请选择审核类型", trigger: "change" }, | |
| 204 | + ], | |
| 205 | + }, | |
| 206 | + showSuggsetion: false, | |
| 207 | + }; | |
| 208 | + }, | |
| 209 | + computed: { | |
| 210 | + isSHILevel() { | |
| 211 | + // 判断角色是否为‘市级办公室’ | |
| 212 | + return this.$store.state.user.islader; | |
| 213 | + }, | |
| 214 | + }, | |
| 215 | + watch: {}, | |
| 216 | + created() { | |
| 217 | + this.getplatformTypeOptions(); | |
| 218 | + this.getquestionTypeOptions(); | |
| 219 | + }, | |
| 220 | + mounted() {}, | |
| 221 | + methods: { | |
| 222 | + getplatformTypeOptions() { | |
| 223 | + getDictionaryDataSelector("576279943168656645").then((res) => { | |
| 224 | + this.platformTypeOptions = res.data.list; | |
| 225 | + }); | |
| 226 | + }, | |
| 227 | + getquestionTypeOptions() { | |
| 228 | + getDictionaryDataSelector("577006814432855301").then((res) => { | |
| 229 | + this.questionTypeOptions = res.data.list; | |
| 230 | + }); | |
| 231 | + }, | |
| 232 | + goBack() { | |
| 233 | + this.$emit("refresh"); | |
| 234 | + }, | |
| 235 | + init(id, isDetail) { | |
| 236 | + this.dataForm.id = id || 0; | |
| 237 | + this.visible = true; | |
| 238 | + this.showSuggsetion = false; | |
| 239 | + this.$nextTick(async () => { | |
| 240 | + this.$refs["suggestionForm"].resetFields(); | |
| 241 | + if (this.dataForm.id) { | |
| 242 | + this.loading = true; | |
| 243 | + let res = await getDetail(this.dataForm.id); | |
| 244 | + this.dataForm = res.data; | |
| 245 | + this.loading = false; | |
| 246 | + if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = []; | |
| 247 | + if (!this.dataForm.annex) this.dataForm.annex = []; | |
| 248 | + } | |
| 249 | + }); | |
| 250 | + }, | |
| 251 | + judgmentClassChange(v) { | |
| 252 | + this.showSuggsetion = Boolean(v == '进一步处置' || v == '不采纳') | |
| 253 | + }, | |
| 254 | + dataFormSubmit() { | |
| 255 | + if ( | |
| 256 | + !this.suggestionForm.disposalSuggestions && | |
| 257 | + !this.suggestionForm.judgmentOpinions && | |
| 258 | + !this.suggestionForm.judgmentClass | |
| 259 | + ) { | |
| 260 | + this.$message({ | |
| 261 | + message: "判研建议不能为空!", | |
| 262 | + type: "danger", | |
| 263 | + }); | |
| 264 | + } | |
| 265 | + this.$refs["suggestionForm"].validate(async (valid) => { | |
| 266 | + if (valid) { | |
| 267 | + let res = await disposalSuggestions(this.dataForm); | |
| 268 | + this.$message({ | |
| 269 | + message: res.msg, | |
| 270 | + type: "success", | |
| 271 | + duration: 1000, | |
| 272 | + onClose: () => { | |
| 273 | + (this.visible = false), this.$emit("refresh", true); | |
| 155 | 274 | }, |
| 156 | - init(id, isDetail) { | |
| 157 | - this.dataForm.id = id || 0; | |
| 158 | - this.visible = true; | |
| 159 | - this.$nextTick(async () => { | |
| 160 | - this.$refs['elForm'].resetFields(); | |
| 161 | - this.$refs['suggestionForm'].resetFields(); | |
| 162 | - if (this.dataForm.id) { | |
| 163 | - let res = await getDetail(this.dataForm.id) | |
| 164 | - this.dataForm = res.data; | |
| 165 | - this.loading = false; | |
| 166 | - if(!this.dataForm.obtainEvidence)this.dataForm.obtainEvidence=[]; | |
| 167 | - if(!this.dataForm.annex)this.dataForm.annex=[]; | |
| 168 | - } | |
| 169 | - }) | |
| 170 | - }, | |
| 171 | - dataFormSubmit() { | |
| 172 | - if(!this.suggestionForm.disposalSuggestions && !this.suggestionForm.judgmentOpinions && !this.suggestionForm.judgmentClass) { | |
| 173 | - this.$message({ | |
| 174 | - message: '判研建议不能为空!', | |
| 175 | - type: 'danger', | |
| 176 | - }) | |
| 177 | - } | |
| 178 | - this.$refs['suggestionForm'].validate(async (valid) => { | |
| 179 | - if (valid) { | |
| 180 | - let res = await disposalSuggestions(this.dataForm); | |
| 181 | - this.$message({ | |
| 182 | - message: res.msg, | |
| 183 | - type: 'success', | |
| 184 | - duration: 1000, | |
| 185 | - onClose: () => { | |
| 186 | - this.visible = false, this.$emit('refresh', true) | |
| 187 | - } | |
| 188 | - }) | |
| 189 | - } | |
| 190 | - }) | |
| 191 | - }, | |
| 192 | - } | |
| 193 | - } | |
| 275 | + }); | |
| 276 | + } | |
| 277 | + }); | |
| 278 | + }, | |
| 279 | + }, | |
| 280 | +}; | |
| 194 | 281 | </script> |
| 195 | 282 | <style lang="scss" scoped> |
| 196 | - .form_title { | |
| 197 | - line-height: 30px; | |
| 198 | - padding-left: 40px; | |
| 199 | - color: #409eff; | |
| 200 | - } | |
| 283 | +.form_title { | |
| 284 | + line-height: 30px; | |
| 285 | + padding-left: 40px; | |
| 286 | + color: #409eff; | |
| 287 | +} | |
| 201 | 288 | </style> | ... | ... |
src/views/baseInspectionReport/Form.vue
| ... | ... | @@ -29,9 +29,9 @@ |
| 29 | 29 | </el-form-item> |
| 30 | 30 | </el-col> |
| 31 | 31 | <el-col :span="23"> |
| 32 | - <el-form-item label="问题来源" prop="platformName"> | |
| 32 | + <el-form-item label="问题来源" prop="source"> | |
| 33 | 33 | <el-input |
| 34 | - v-model="dataForm.platformName" | |
| 34 | + v-model="dataForm.source" | |
| 35 | 35 | placeholder="请输入问题来源" |
| 36 | 36 | clearable |
| 37 | 37 | :style="{ width: '100%' }" |
| ... | ... | @@ -41,7 +41,21 @@ |
| 41 | 41 | </el-col> |
| 42 | 42 | <el-col :span="23"> |
| 43 | 43 | <el-form-item label="平台名称" prop="platformName"> |
| 44 | - <SelsctLoad v-model="dataForm.platformName"/> | |
| 44 | + <el-select | |
| 45 | + v-model="dataForm.platformName" | |
| 46 | + filterable | |
| 47 | + remote | |
| 48 | + reserve-keyword | |
| 49 | + placeholder="请输入平台名称" | |
| 50 | + :remote-method="loadList" | |
| 51 | + :loading="name_loading"> | |
| 52 | + <el-option | |
| 53 | + v-for="item in nameOptions" | |
| 54 | + :key="item.value" | |
| 55 | + :label="item.label" | |
| 56 | + :value="item.value"> | |
| 57 | + </el-option> | |
| 58 | + </el-select> | |
| 45 | 59 | </el-form-item> |
| 46 | 60 | </el-col> |
| 47 | 61 | <el-col :span="23"> |
| ... | ... | @@ -56,19 +70,54 @@ |
| 56 | 70 | </el-radio-group> |
| 57 | 71 | </el-form-item> |
| 58 | 72 | </el-col> |
| 59 | - | |
| 60 | - <el-col :span="23"> | |
| 73 | + <el-col :span="13"> | |
| 61 | 74 | <el-form-item label="问题类型" prop="questionType"> |
| 62 | - <el-radio-group v-model="dataForm.questionType" :style="{}"> | |
| 75 | + <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange"> | |
| 63 | 76 | <el-radio |
| 64 | 77 | v-for="(item, index) in questionTypeOptions" |
| 65 | 78 | :key="index" |
| 66 | - :label="item.id" | |
| 79 | + :label="item.fullName" | |
| 67 | 80 | >{{ item.fullName }}</el-radio |
| 68 | 81 | > |
| 82 | + <el-radio label="其他">其他</el-radio> | |
| 69 | 83 | </el-radio-group> |
| 70 | 84 | </el-form-item> |
| 71 | 85 | </el-col> |
| 86 | + <template v-if="otherQuestion"> | |
| 87 | + <el-col :span="10"> | |
| 88 | + <el-input | |
| 89 | + v-model="dataForm.otherQuestionType" | |
| 90 | + placeholder="请输入问题类型" | |
| 91 | + clearable | |
| 92 | + :style="{ width: '100%' }" | |
| 93 | + > | |
| 94 | + </el-input> | |
| 95 | + </el-col> | |
| 96 | + </template> | |
| 97 | + <template v-if="showErrflag"> | |
| 98 | + <el-col :span="12"> | |
| 99 | + <el-form-item label="正确描述" prop="accurateDescription"> | |
| 100 | + <el-input | |
| 101 | + v-model="dataForm.accurateDescription" | |
| 102 | + placeholder="请输入正确描述" | |
| 103 | + clearable | |
| 104 | + :style="{ width: '100%' }" | |
| 105 | + > | |
| 106 | + </el-input> | |
| 107 | + </el-form-item> | |
| 108 | + </el-col> | |
| 109 | + <el-col :span="11"> | |
| 110 | + <el-form-item label="错误描述" prop="incorrectDescription"> | |
| 111 | + <el-input | |
| 112 | + v-model="dataForm.incorrectDescription" | |
| 113 | + placeholder="请输入错误描述" | |
| 114 | + clearable | |
| 115 | + :style="{ width: '100%' }" | |
| 116 | + > | |
| 117 | + </el-input> | |
| 118 | + </el-form-item> | |
| 119 | + </el-col> | |
| 120 | + </template> | |
| 72 | 121 | <el-col :span="23"> |
| 73 | 122 | <el-form-item label="关键词" prop="questionClass"> |
| 74 | 123 | <el-input |
| ... | ... | @@ -104,28 +153,7 @@ |
| 104 | 153 | </el-input> |
| 105 | 154 | </el-form-item> |
| 106 | 155 | </el-col> |
| 107 | - <el-col :span="12"> | |
| 108 | - <el-form-item label="正确描述" prop="platformName"> | |
| 109 | - <el-input | |
| 110 | - v-model="dataForm.platformName" | |
| 111 | - placeholder="请输入正确描述" | |
| 112 | - clearable | |
| 113 | - :style="{ width: '100%' }" | |
| 114 | - > | |
| 115 | - </el-input> | |
| 116 | - </el-form-item> | |
| 117 | - </el-col> | |
| 118 | - <el-col :span="11"> | |
| 119 | - <el-form-item label="错误描述" prop="platformName"> | |
| 120 | - <el-input | |
| 121 | - v-model="dataForm.platformName" | |
| 122 | - placeholder="请输入错误描述" | |
| 123 | - clearable | |
| 124 | - :style="{ width: '100%' }" | |
| 125 | - > | |
| 126 | - </el-input> | |
| 127 | - </el-form-item> | |
| 128 | - </el-col> | |
| 156 | + | |
| 129 | 157 | <el-col :span="23"> |
| 130 | 158 | <el-form-item label="取证内容" prop="obtainEvidence"> |
| 131 | 159 | <NCC-UploadFz |
| ... | ... | @@ -152,6 +180,7 @@ |
| 152 | 180 | import request from "@/utils/request"; |
| 153 | 181 | import { getDictionaryDataSelector } from "@/api/systemData/dictionary"; |
| 154 | 182 | import { getDetail, addForm, updataForm } from "@/api/systemData/dataInterface"; |
| 183 | +import { getInfoList } from "@/api/baseData/info"; | |
| 155 | 184 | export default { |
| 156 | 185 | components: {}, |
| 157 | 186 | props: [], |
| ... | ... | @@ -159,18 +188,22 @@ export default { |
| 159 | 188 | return { |
| 160 | 189 | loading: false, |
| 161 | 190 | visible: false, |
| 191 | + name_loading: false, | |
| 162 | 192 | isDetail: false, |
| 163 | 193 | dataForm: { |
| 164 | - id: "", | |
| 165 | 194 | id: undefined, |
| 195 | + source: undefined, | |
| 166 | 196 | platformName: undefined, |
| 167 | 197 | platformType: undefined, |
| 168 | 198 | questionType: undefined, |
| 169 | 199 | questionClass: undefined, |
| 170 | 200 | questionContent: undefined, |
| 171 | 201 | link: undefined, |
| 202 | + accurateDescription: undefined, | |
| 203 | + incorrectDescription: undefined, | |
| 172 | 204 | obtainEvidence: [], |
| 173 | 205 | annex: [], |
| 206 | + otherQuestionType: undefined | |
| 174 | 207 | }, |
| 175 | 208 | rules: { |
| 176 | 209 | platformType: [ |
| ... | ... | @@ -197,16 +230,39 @@ export default { |
| 197 | 230 | { fullName: "选项一", id: "1" }, |
| 198 | 231 | { fullName: "选项二", id: "2" }, |
| 199 | 232 | ], |
| 233 | + showErrflag: false, | |
| 234 | + otherQuestion: false, | |
| 235 | + nameOptions: [], | |
| 200 | 236 | }; |
| 201 | 237 | }, |
| 202 | 238 | computed: {}, |
| 203 | 239 | watch: {}, |
| 204 | 240 | created() { |
| 241 | + this.loadList(); | |
| 205 | 242 | this.getplatformTypeOptions(); |
| 206 | 243 | this.getquestionTypeOptions(); |
| 207 | 244 | }, |
| 208 | 245 | mounted() {}, |
| 209 | 246 | methods: { |
| 247 | + loadList(query) { | |
| 248 | + this.name_loading = true; | |
| 249 | + getInfoList({pageIndex: 1, pageSize: 100, keyword: query }).then(({ data }) => { | |
| 250 | + let list = []; | |
| 251 | + data.list.length && | |
| 252 | + data.list.forEach((item) => { | |
| 253 | + list.push({ | |
| 254 | + label: item.SysytemInfo.SystemName, | |
| 255 | + value: item.SysytemInfo.Id, | |
| 256 | + }); | |
| 257 | + }); | |
| 258 | + this.nameOptions = list; | |
| 259 | + this.name_loading = false; | |
| 260 | + }); | |
| 261 | + }, | |
| 262 | + questionTypeChange(v) { | |
| 263 | + this.showErrflag = Boolean(v == '错误表述'); | |
| 264 | + this.otherQuestion = Boolean(v == '其他'); | |
| 265 | + }, | |
| 210 | 266 | async getplatformTypeOptions() { |
| 211 | 267 | let list = this.$store.state.meta.system; |
| 212 | 268 | !list && |
| ... | ... | @@ -224,20 +280,37 @@ export default { |
| 224 | 280 | init(id, isDetail) { |
| 225 | 281 | this.dataForm.id = id || 0; |
| 226 | 282 | this.visible = true; |
| 283 | + this.otherQuestion = false; | |
| 284 | + this.showErrflag = false; | |
| 227 | 285 | this.isDetail = isDetail || false; |
| 228 | 286 | this.$nextTick(async () => { |
| 229 | 287 | this.$refs["elForm"].resetFields(); |
| 230 | 288 | if (this.dataForm.id) { |
| 231 | 289 | let res = await getDetail(this.dataForm.id); |
| 232 | 290 | this.dataForm = res.data; |
| 291 | + if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) { | |
| 292 | + this.dataForm.otherQuestionType = res.data.questionType; | |
| 293 | + this.dataForm.questionType = '其他'; | |
| 294 | + } | |
| 233 | 295 | if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = []; |
| 234 | 296 | if (!this.dataForm.annex) this.dataForm.annex = []; |
| 297 | + this.$nextTick(() => { | |
| 298 | + this.questionTypeChange(this.dataForm.questionType); | |
| 299 | + }) | |
| 235 | 300 | } |
| 236 | 301 | }); |
| 237 | 302 | }, |
| 303 | + getQuestionTypeName() { | |
| 304 | + if(this.dataForm.questionType == '其他') { | |
| 305 | + return this.dataForm.otherQuestionType; | |
| 306 | + } else { | |
| 307 | + return this.dataForm.questionType; | |
| 308 | + } | |
| 309 | + }, | |
| 238 | 310 | dataFormSubmit() { |
| 239 | 311 | this.$refs["elForm"].validate(async (valid) => { |
| 240 | 312 | if (valid) { |
| 313 | + this.dataForm.questionType = this.getQuestionTypeName(); | |
| 241 | 314 | let res = !this.dataForm.id |
| 242 | 315 | ? await addForm(this.dataForm) |
| 243 | 316 | : await updataForm(this.dataForm); | ... | ... |
src/views/baseInspectionReport/index.vue
| 1 | 1 | <template> |
| 2 | 2 | <div class="SystemInfo item-box common-info-box"> |
| 3 | - <div class="item-title">巡查上报</div> | |
| 3 | + <div class="item-title">{{isSHILevel ? '线索录入' : '巡查上报'}}</div> | |
| 4 | 4 | <div class="item-body"> |
| 5 | 5 | <div class="NCC-common-layout"> |
| 6 | 6 | <div class="NCC-common-layout-center"> |
| ... | ... | @@ -131,7 +131,12 @@ |
| 131 | 131 | stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], |
| 132 | 132 | } |
| 133 | 133 | }, |
| 134 | - computed: {}, | |
| 134 | + computed: { | |
| 135 | + isSHILevel() { | |
| 136 | + // 判断角色是否为‘市级办公室’ | |
| 137 | + return this.$store.state.user.islader; | |
| 138 | + }, | |
| 139 | + }, | |
| 135 | 140 | created() { |
| 136 | 141 | this.initData() |
| 137 | 142 | this.getplatformTypeOptions(); | ... | ... |
src/views/baseSpecialAction/Form.vue
| ... | ... | @@ -59,39 +59,7 @@ |
| 59 | 59 | </NCC-UploadFz> |
| 60 | 60 | </el-form-item> |
| 61 | 61 | </el-col> |
| 62 | - <el-col :span="23" v-if="ncc.hasFormP('recordCommunicationArea') && !dataForm.id"> | |
| 63 | - <el-form-item label="台账区域" prop="recordCommunicationArea"> | |
| 64 | - <el-checkbox-group v-model="dataForm.recordCommunicationArea" :style="{}"> | |
| 65 | - <el-checkbox | |
| 66 | - v-for="(item, index) in areaOptions" | |
| 67 | - :key="index" | |
| 68 | - :label="item.id" | |
| 69 | - >{{ item.fullName }}</el-checkbox | |
| 70 | - > | |
| 71 | - </el-checkbox-group> | |
| 72 | - <div style="margin-top: 10px"> | |
| 73 | - <el-button size="mini" @click="selectAreaAll('area')">全选</el-button> | |
| 74 | - <el-button size="mini" @click="closeAreaAll('area')">反选</el-button> | |
| 75 | - </div> | |
| 76 | - </el-form-item> | |
| 77 | - </el-col> | |
| 78 | - <el-col :span="23" v-if="ncc.hasFormP('recordCommunicationOut') && !dataForm.id"> | |
| 79 | - <el-form-item label="台账外协" prop="recordCommunicationOut"> | |
| 80 | - <el-checkbox-group v-model="dataForm.recordCommunicationOut" :style="{}"> | |
| 81 | - <el-checkbox | |
| 82 | - v-for="(item, index) in communicationOutOptions" | |
| 83 | - :key="index" | |
| 84 | - :label="item.id" | |
| 85 | - >{{ item.fullName }}</el-checkbox | |
| 86 | - > | |
| 87 | - </el-checkbox-group> | |
| 88 | - <div style="margin-top: 10px"> | |
| 89 | - <el-button size="mini" @click="selectAreaAll">全选</el-button> | |
| 90 | - <el-button size="mini" @click="closeAreaAll">反选</el-button> | |
| 91 | - </div> | |
| 92 | - </el-form-item> | |
| 93 | - </el-col> | |
| 94 | - <el-col :span="23" v-if="ncc.hasFormP('communicationArea') && dataForm.id"> | |
| 62 | + <el-col :span="23" v-if="ncc.hasFormP('communicationArea')"> | |
| 95 | 63 | <el-form-item label="传达区域" prop="communicationArea"> |
| 96 | 64 | <el-checkbox-group v-model="dataForm.communicationArea" :style="{}"> |
| 97 | 65 | <el-checkbox |
| ... | ... | @@ -107,7 +75,7 @@ |
| 107 | 75 | </div> |
| 108 | 76 | </el-form-item> |
| 109 | 77 | </el-col> |
| 110 | - <el-col :span="23" v-if="ncc.hasFormP('communicationOut') && dataForm.id"> | |
| 78 | + <el-col :span="23" v-if="ncc.hasFormP('communicationOut')"> | |
| 111 | 79 | <el-form-item label="传达外协" prop="communicationOut"> |
| 112 | 80 | <el-checkbox-group v-model="dataForm.communicationOut" :style="{}"> |
| 113 | 81 | <el-checkbox |
| ... | ... | @@ -177,8 +145,6 @@ export default { |
| 177 | 145 | title: undefined, |
| 178 | 146 | content: undefined, |
| 179 | 147 | releaseTime: undefined, |
| 180 | - recordCommunicationOut: [], | |
| 181 | - recordCommunicationArea: [], | |
| 182 | 148 | annex: [], |
| 183 | 149 | communicationArea: [], |
| 184 | 150 | communicationOut: [], |
| ... | ... | @@ -319,12 +285,12 @@ export default { |
| 319 | 285 | if (valid) { |
| 320 | 286 | this.btnLoading = true; |
| 321 | 287 | if (!this.dataForm.id) { |
| 322 | - let {title, content} = this.dataForm; | |
| 288 | + let {title, content, annex, communicationArea, communicationOut} = this.dataForm; | |
| 323 | 289 | // 新增 |
| 324 | 290 | request({ |
| 325 | 291 | url: `/Extend/BaseSpecialAction`, |
| 326 | 292 | method: "post", |
| 327 | - data: { title, content }, | |
| 293 | + data: { title, content, annex, communicationArea, communicationOut }, | |
| 328 | 294 | }).then((res) => { |
| 329 | 295 | this.$message({ |
| 330 | 296 | message: res.msg, | ... | ... |
src/views/baseSpecialAction/index.vue
| ... | ... | @@ -103,10 +103,10 @@ export default { |
| 103 | 103 | communicationOutOptions: [], |
| 104 | 104 | }; |
| 105 | 105 | }, |
| 106 | - created() { | |
| 107 | - this.initAreaTypeList(); | |
| 108 | - this.initCommunicationOutOptions(); | |
| 109 | - this.initData() | |
| 106 | + async created() { | |
| 107 | + await this.initAreaTypeList(); | |
| 108 | + await this.initCommunicationOutOptions(); | |
| 109 | + this.initData(); | |
| 110 | 110 | }, |
| 111 | 111 | computed: { |
| 112 | 112 | isSHILevel() { | ... | ... |
src/views/baseSpecialAction/infoForm.vue
| ... | ... | @@ -23,7 +23,16 @@ |
| 23 | 23 | <el-table :data="tableData" style="width: 100%" v-loading="loading" stripe> |
| 24 | 24 | <el-table-column type="index" width="50" /> |
| 25 | 25 | <el-table-column prop="originName" label="部门名称" /> |
| 26 | - <el-table-column prop="state" label="状态" /> | |
| 26 | + <el-table-column prop="state" label="状态" > | |
| 27 | + <template slot-scope="scope"> | |
| 28 | + <el-tag :type="scope.row.state == '已填写' ? 'success' : 'warning'">{{scope.row.state}}</el-tag> | |
| 29 | + </template> | |
| 30 | + </el-table-column> | |
| 31 | + <el-table-column label="操作" fixed="right" width="80" > | |
| 32 | + <template slot-scope="scope"> | |
| 33 | + <el-button type="text" @click="toDetail(scope.row)" v-if="scope.row.state == '已填写'">详情</el-button> | |
| 34 | + </template> | |
| 35 | + </el-table-column> | |
| 27 | 36 | </el-table> |
| 28 | 37 | <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initList"/> |
| 29 | 38 | </el-col> |
| ... | ... | @@ -83,6 +92,9 @@ export default { |
| 83 | 92 | }); |
| 84 | 93 | } |
| 85 | 94 | }, |
| 95 | + toDetail(row) { | |
| 96 | + | |
| 97 | + } | |
| 86 | 98 | }; |
| 87 | 99 | </script> |
| 88 | 100 | <style lang="scss" scoped> | ... | ... |
src/views/overView/msgForm.vue
| ... | ... | @@ -43,8 +43,8 @@ |
| 43 | 43 | </el-form-item> |
| 44 | 44 | </el-col> |
| 45 | 45 | <el-col :span="24"> |
| 46 | - <el-form-item label="传达区域" prop="communicationArea"> | |
| 47 | - <el-checkbox-group v-model="dataForm.communicationArea" :style="{}"> | |
| 46 | + <el-form-item label="传达区域" prop="communicationAreas"> | |
| 47 | + <el-checkbox-group v-model="dataForm.communicationAreas" :style="{}"> | |
| 48 | 48 | <el-checkbox |
| 49 | 49 | v-for="(item, index) in areaOptions" |
| 50 | 50 | :key="index" |
| ... | ... | @@ -63,8 +63,8 @@ |
| 63 | 63 | </el-form-item> |
| 64 | 64 | </el-col> |
| 65 | 65 | <el-col :span="24"> |
| 66 | - <el-form-item label="传达外协" prop="communicationOut"> | |
| 67 | - <el-checkbox-group v-model="dataForm.communicationOut" :style="{}"> | |
| 66 | + <el-form-item label="传达外协" prop="communicationOuts"> | |
| 67 | + <el-checkbox-group v-model="dataForm.communicationOuts" :style="{}"> | |
| 68 | 68 | <el-checkbox |
| 69 | 69 | v-for="(item, index) in communicationOutOptions" |
| 70 | 70 | :key="index" |
| ... | ... | @@ -116,8 +116,8 @@ export default { |
| 116 | 116 | imgUrl: [], |
| 117 | 117 | categoryId: "cc225c68421644f79037aaf624ccccc0", |
| 118 | 118 | isType: "0", |
| 119 | - communicationArea: [], | |
| 120 | - communicationOut: [], | |
| 119 | + communicationAreas: [], | |
| 120 | + communicationOuts: [], | |
| 121 | 121 | }, |
| 122 | 122 | rules: { |
| 123 | 123 | title: [{ required: true, message: "请输入标题", trigger: "blur" }], |
| ... | ... | @@ -176,11 +176,11 @@ export default { |
| 176 | 176 | // 全选 |
| 177 | 177 | selectAreaAll(type) { |
| 178 | 178 | if (type == "area") { |
| 179 | - this.dataForm.communicationArea = this.areaOptions.map( | |
| 179 | + this.dataForm.communicationAreas = this.areaOptions.map( | |
| 180 | 180 | (option) => option.id |
| 181 | 181 | ); |
| 182 | 182 | } else { |
| 183 | - this.dataForm.communicationOut = this.communicationOutOptions.map( | |
| 183 | + this.dataForm.communicationOuts = this.communicationOutOptions.map( | |
| 184 | 184 | (option) => option.id |
| 185 | 185 | ); |
| 186 | 186 | } |
| ... | ... | @@ -188,15 +188,15 @@ export default { |
| 188 | 188 | // 反选 |
| 189 | 189 | closeAreaAll(type) { |
| 190 | 190 | if (type == "area") { |
| 191 | - this.dataForm.communicationArea = this.areaOptions | |
| 191 | + this.dataForm.communicationAreas = this.areaOptions | |
| 192 | 192 | .filter( |
| 193 | - (option) => !this.dataForm.communicationArea.includes(option.id) | |
| 193 | + (option) => !this.dataForm.communicationAreas.includes(option.id) | |
| 194 | 194 | ) |
| 195 | 195 | .map((option) => option.id); |
| 196 | 196 | } else { |
| 197 | - this.dataForm.communicationOut = this.communicationOutOptions | |
| 197 | + this.dataForm.communicationOuts = this.communicationOutOptions | |
| 198 | 198 | .filter( |
| 199 | - (option) => !this.dataForm.communicationOut.includes(option.id) | |
| 199 | + (option) => !this.dataForm.communicationOuts.includes(option.id) | |
| 200 | 200 | ) |
| 201 | 201 | .map((option) => option.id); |
| 202 | 202 | } | ... | ... |