Commit d8af3866069d44bbbe8f3f3cf5c6dc0da01e45f2
1 parent
ff36c85d
1
Showing
3 changed files
with
67 additions
and
80 deletions
src/views/DisposalSuggestions/Form.vue
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | v-loading="loading" | 9 | v-loading="loading" |
| 10 | > | 10 | > |
| 11 | <el-row :gutter="15" class="NCC-dialog-content"> | 11 | <el-row :gutter="15" class="NCC-dialog-content"> |
| 12 | - <el-col :span="10" style="border-right: 1px solid #e6e6e6"> | 12 | + <el-col :span="10" style="border-right: 1px solid #e6e6e6; height: 400px;"> |
| 13 | <el-row> | 13 | <el-row> |
| 14 | <el-col :span="24" class="form_title"> 巡查上报详情 </el-col> | 14 | <el-col :span="24" class="form_title"> 巡查上报详情 </el-col> |
| 15 | <el-col :span="24"> | 15 | <el-col :span="24"> |
| @@ -73,6 +73,12 @@ | @@ -73,6 +73,12 @@ | ||
| 73 | <div class="label w-100">取证内容</div> | 73 | <div class="label w-100">取证内容</div> |
| 74 | </div> | 74 | </div> |
| 75 | </el-col> | 75 | </el-col> |
| 76 | + <el-col :span="24"> | ||
| 77 | + <div class="form-item"> | ||
| 78 | + <div class="label w-100">所属区域</div> | ||
| 79 | + {{ dataForm.areaName || "--" }} | ||
| 80 | + </div> | ||
| 81 | + </el-col> | ||
| 76 | </el-row> | 82 | </el-row> |
| 77 | </el-col> | 83 | </el-col> |
| 78 | <el-col :span="14"> | 84 | <el-col :span="14"> |
| @@ -86,32 +92,6 @@ | @@ -86,32 +92,6 @@ | ||
| 86 | label-width="100px" | 92 | label-width="100px" |
| 87 | label-position="right" | 93 | label-position="right" |
| 88 | > | 94 | > |
| 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"> | 95 | <el-col :span="24"> |
| 116 | <el-form-item label="研判类型" prop="reviewType"> | 96 | <el-form-item label="研判类型" prop="reviewType"> |
| 117 | <el-radio-group | 97 | <el-radio-group |
| @@ -123,6 +103,13 @@ | @@ -123,6 +103,13 @@ | ||
| 123 | </el-radio-group> | 103 | </el-radio-group> |
| 124 | </el-form-item> | 104 | </el-form-item> |
| 125 | </el-col> | 105 | </el-col> |
| 106 | + <el-col :span="24" v-if="!dataForm.areaId && showarea"> | ||
| 107 | + <el-form-item label="所属区县" prop="area"> | ||
| 108 | + <el-radio-group v-model="suggestionForm.area" placeholder="请选择所属区县" style="line-height: 22px"> | ||
| 109 | + <el-radio v-for="v in areaOptions" :key="v.id" :label="v.id">{{ v.fullName }}</el-radio> | ||
| 110 | + </el-radio-group> | ||
| 111 | + </el-form-item> | ||
| 112 | + </el-col> | ||
| 126 | <el-col :span="24" v-if="showSuggsetion"> | 113 | <el-col :span="24" v-if="showSuggsetion"> |
| 127 | <el-form-item label="研判意见" prop="judgmentOpinions"> | 114 | <el-form-item label="研判意见" prop="judgmentOpinions"> |
| 128 | <el-input | 115 | <el-input |
| @@ -149,10 +136,13 @@ | @@ -149,10 +136,13 @@ | ||
| 149 | </template> | 136 | </template> |
| 150 | <script> | 137 | <script> |
| 151 | import request from "@/utils/request"; | 138 | import request from "@/utils/request"; |
| 139 | +import infoMixin from "@/mixins/info"; | ||
| 140 | +import { dynamicText } from "@/filters/index"; | ||
| 152 | import { getDictionaryDataSelector } from "@/api/systemData/dictionary"; | 141 | import { getDictionaryDataSelector } from "@/api/systemData/dictionary"; |
| 153 | import { getDetail, disposalSuggestions } from "@/api/systemData/dataInterface"; | 142 | import { getDetail, disposalSuggestions } from "@/api/systemData/dataInterface"; |
| 154 | export default { | 143 | export default { |
| 155 | components: {}, | 144 | components: {}, |
| 145 | + mixins: [infoMixin], | ||
| 156 | props: [], | 146 | props: [], |
| 157 | data() { | 147 | data() { |
| 158 | return { | 148 | return { |
| @@ -190,17 +180,23 @@ export default { | @@ -190,17 +180,23 @@ export default { | ||
| 190 | judgmentOpinions: "", //判断意见 | 180 | judgmentOpinions: "", //判断意见 |
| 191 | reviewType: "", //判断分类 | 181 | reviewType: "", //判断分类 |
| 192 | deadline: "", | 182 | deadline: "", |
| 183 | + area: '', | ||
| 193 | }, | 184 | }, |
| 194 | rules: { | 185 | rules: { |
| 195 | reviewType: [ | 186 | reviewType: [ |
| 196 | - { required: true, message: "请选择审核类型", trigger: "change" }, | 187 | + { required: true, message: "请选择审核类型", trigger: "blur" }, |
| 188 | + ], | ||
| 189 | + area: [ | ||
| 190 | + { required: true, message: "请选择所属区域", trigger: "bulr" }, | ||
| 197 | ], | 191 | ], |
| 198 | judgmentOpinions: [ | 192 | judgmentOpinions: [ |
| 199 | { required: true, message: "请填写研判意见", trigger: "bulr" } | 193 | { required: true, message: "请填写研判意见", trigger: "bulr" } |
| 200 | ] | 194 | ] |
| 201 | }, | 195 | }, |
| 202 | showSuggsetion: false, | 196 | showSuggsetion: false, |
| 197 | + showarea: false, | ||
| 203 | judgmentClassOption: [], | 198 | judgmentClassOption: [], |
| 199 | + areaOptions: [], | ||
| 204 | }; | 200 | }; |
| 205 | }, | 201 | }, |
| 206 | computed: { | 202 | computed: { |
| @@ -211,6 +207,7 @@ export default { | @@ -211,6 +207,7 @@ export default { | ||
| 211 | }, | 207 | }, |
| 212 | watch: {}, | 208 | watch: {}, |
| 213 | created() { | 209 | created() { |
| 210 | + this.initAreaTypeList(); | ||
| 214 | this.getplatformTypeOptions(); | 211 | this.getplatformTypeOptions(); |
| 215 | this.getquestionTypeOptions(); | 212 | this.getquestionTypeOptions(); |
| 216 | this.getjudgmentClassOptions(); | 213 | this.getjudgmentClassOptions(); |
| @@ -249,6 +246,8 @@ export default { | @@ -249,6 +246,8 @@ export default { | ||
| 249 | let res = await getDetail(this.dataForm.id); | 246 | let res = await getDetail(this.dataForm.id); |
| 250 | this.dataForm = res.data; | 247 | this.dataForm = res.data; |
| 251 | this.loading = false; | 248 | this.loading = false; |
| 249 | + this.dataForm.areaName = dynamicText(res.data.areaId, this.areaOptions); | ||
| 250 | + this.suggestionForm.area = res.data.areaId | ||
| 252 | if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = []; | 251 | if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = []; |
| 253 | if (!this.dataForm.annex) this.dataForm.annex = []; | 252 | if (!this.dataForm.annex) this.dataForm.annex = []; |
| 254 | } | 253 | } |
| @@ -256,22 +255,13 @@ export default { | @@ -256,22 +255,13 @@ export default { | ||
| 256 | }, | 255 | }, |
| 257 | judgmentClassChange(v) { | 256 | judgmentClassChange(v) { |
| 258 | this.suggestionForm.judgmentOpinions = ''; | 257 | this.suggestionForm.judgmentOpinions = ''; |
| 259 | - this.showSuggsetion = Boolean(v == "590769458901943557" || v == "590769521820697861"); | 258 | + this.showSuggsetion = Boolean(v == "590769458901943557" || v == "590769521820697861"); // 进一步处置,不采纳 |
| 259 | + this.showarea = Boolean(v == "590769199001896197" || v == "590769458901943557"); // 执法,进一步处置 | ||
| 260 | }, | 260 | }, |
| 261 | dataFormSubmit() { | 261 | dataFormSubmit() { |
| 262 | - if ( | ||
| 263 | - !this.suggestionForm.disposalSuggestions && | ||
| 264 | - !this.suggestionForm.judgmentOpinions && | ||
| 265 | - !this.suggestionForm.reviewType | ||
| 266 | - ) { | ||
| 267 | - this.$message({ | ||
| 268 | - message: "研判建议不能为空!", | ||
| 269 | - type: "danger", | ||
| 270 | - }); | ||
| 271 | - } | ||
| 272 | this.$refs["suggestionForm"].validate(async (valid) => { | 262 | this.$refs["suggestionForm"].validate(async (valid) => { |
| 273 | if (valid) { | 263 | if (valid) { |
| 274 | - let res = await disposalSuggestions(this.dataForm); | 264 | + let res = await disposalSuggestions(this.suggestionForm); |
| 275 | this.$message({ | 265 | this.$message({ |
| 276 | message: res.msg, | 266 | message: res.msg, |
| 277 | type: "success", | 267 | type: "success", |
src/views/baseSpecialAction/index.vue
| @@ -27,15 +27,11 @@ | @@ -27,15 +27,11 @@ | ||
| 27 | </el-col> | 27 | </el-col> |
| 28 | </el-form> | 28 | </el-form> |
| 29 | <div class="NCC-common-search-box-right"> | 29 | <div class="NCC-common-search-box-right"> |
| 30 | - <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> | 30 | + <el-button type="success" icon="el-icon-plus" @click="addOrUpdateHandle()" size="mini" >新增</el-button> |
| 31 | + <!-- <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> --> | ||
| 31 | </div> | 32 | </div> |
| 32 | </el-row> | 33 | </el-row> |
| 33 | <div class="NCC-common-layout-main NCC-flex-main"> | 34 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 34 | - <div class="NCC-common-head"> | ||
| 35 | - <div> | ||
| 36 | - <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()" size="mini" >新增</el-button> | ||
| 37 | - </div> | ||
| 38 | - </div> | ||
| 39 | <NCC-table v-loading="listLoading" :data="list"> | 35 | <NCC-table v-loading="listLoading" :data="list"> |
| 40 | <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> | 36 | <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> |
| 41 | <el-table-column prop="title" label="标题" align="left" show-overflow-tooltip/> | 37 | <el-table-column prop="title" label="标题" align="left" show-overflow-tooltip/> |
src/views/baseSpecialAction/infoForm.vue
| @@ -10,14 +10,17 @@ | @@ -10,14 +10,17 @@ | ||
| 10 | > | 10 | > |
| 11 | <el-row :gutter="15" style="height: 65vh" class="NCC-dialog-content"> | 11 | <el-row :gutter="15" style="height: 65vh" class="NCC-dialog-content"> |
| 12 | <el-col :span="24" style="margin-bottom: 20px;"> | 12 | <el-col :span="24" style="margin-bottom: 20px;"> |
| 13 | - <el-col :span="12" class="form-item"> | 13 | + <el-col :span="10" class="form-item"> |
| 14 | <div class="label w-100">行动标题:</div> | 14 | <div class="label w-100">行动标题:</div> |
| 15 | <div>{{ form.title }}</div> | 15 | <div>{{ form.title }}</div> |
| 16 | </el-col> | 16 | </el-col> |
| 17 | - <el-col :span="12" class="form-item"> | 17 | + <el-col :span="10" class="form-item"> |
| 18 | <div class="label w-100">截止日期:</div> | 18 | <div class="label w-100">截止日期:</div> |
| 19 | <div>{{ ncc.dateFormat(form.deadline) }}</div> | 19 | <div>{{ ncc.dateFormat(form.deadline) }}</div> |
| 20 | </el-col> | 20 | </el-col> |
| 21 | + <el-col :span="2" class="form-item"> | ||
| 22 | + <el-button type="primary" icon="el-icon-download" size="mini" @click="toExport" :loading="exportBtnLoading">导出</el-button> | ||
| 23 | + </el-col> | ||
| 21 | </el-col> | 24 | </el-col> |
| 22 | <el-col :span="24" style="height: calc(100% - 100px);"> | 25 | <el-col :span="24" style="height: calc(100% - 100px);"> |
| 23 | <NCC-table :data="tableData" style="width: 100%" v-loading="loading" stripe> | 26 | <NCC-table :data="tableData" style="width: 100%" v-loading="loading" stripe> |
| @@ -60,6 +63,7 @@ export default { | @@ -60,6 +63,7 @@ export default { | ||
| 60 | total: 0, | 63 | total: 0, |
| 61 | form: {}, | 64 | form: {}, |
| 62 | dialogVisible: false, | 65 | dialogVisible: false, |
| 66 | + exportBtnLoading: false, | ||
| 63 | }; | 67 | }; |
| 64 | }, | 68 | }, |
| 65 | computed: {}, | 69 | computed: {}, |
| @@ -80,40 +84,37 @@ export default { | @@ -80,40 +84,37 @@ export default { | ||
| 80 | }) | 84 | }) |
| 81 | }, | 85 | }, |
| 82 | initList() { | 86 | initList() { |
| 83 | - request({ | ||
| 84 | - url: `/Extend/BaseSpecialActionInfo/GetListById`, | ||
| 85 | - method: "GET", | ||
| 86 | - params: { | ||
| 87 | - ...this.listQuery, | ||
| 88 | - specialActionId: this.form.id, | ||
| 89 | - }, | ||
| 90 | - }).then((res) => { | ||
| 91 | - this.tableData = res.data.list; | ||
| 92 | - this.total = res.data.pagination.total; | ||
| 93 | - this.loading = false; | ||
| 94 | - }); | ||
| 95 | - } | 87 | + request({ |
| 88 | + url: `/Extend/BaseSpecialActionInfo/GetListById`, | ||
| 89 | + method: "GET", | ||
| 90 | + params: { | ||
| 91 | + ...this.listQuery, | ||
| 92 | + specialActionId: this.form.id, | ||
| 93 | + }, | ||
| 94 | + }).then((res) => { | ||
| 95 | + this.tableData = res.data.list; | ||
| 96 | + this.total = res.data.pagination.total; | ||
| 97 | + this.loading = false; | ||
| 98 | + }); | ||
| 96 | }, | 99 | }, |
| 97 | - toDetailForm(row) { | ||
| 98 | - console.log(row); | ||
| 99 | - | ||
| 100 | - // this.dialogVisible = true; | ||
| 101 | - // var Itemid = row.itemId || '';//数据id,没有的话就是新增 ,有的话就是修改 | ||
| 102 | - // var modelId = row.formId;//关联的表单id | ||
| 103 | - // var taskId = row.id; // 当前专项行动id | ||
| 104 | - // var isPreview = false;//固定死,值不变 | ||
| 105 | - // var useFormPermission = false;//固定死,值不变 | ||
| 106 | - // var formData = []; | ||
| 107 | - // request({ | ||
| 108 | - // url: '/visualdev/OnlineDev/'+modelId+'/Config', | ||
| 109 | - // method: "GET", | ||
| 110 | - // params:null | ||
| 111 | - // }).then(res => { | ||
| 112 | - // formData = res.data.formData; | ||
| 113 | - // this.$refs.NCCForm.init(formData, modelId, Itemid, isPreview, useFormPermission, taskId) | ||
| 114 | - // }); | 100 | + // 导出 |
| 101 | + toExport() { | ||
| 102 | + this.exportBtnLoading = true; | ||
| 103 | + request({ | ||
| 104 | + url: `/Extend/BaseSpecialActionInfo/Actions/Export`, | ||
| 105 | + method: "POST", | ||
| 106 | + data: {specialActionId: this.form.id}, | ||
| 107 | + }).then((res) => { | ||
| 108 | + const url = process.env.VUE_APP_BASE_API + res.data.url; | ||
| 109 | + const link = document.createElement("a"); | ||
| 110 | + link.href = url; | ||
| 111 | + link.download = res.data.name; | ||
| 112 | + link.click(); | ||
| 113 | + this.exportBtnLoading = false; | ||
| 114 | + }).catch(() => this.exportBtnLoading = false); | ||
| 115 | }, | 115 | }, |
| 116 | -}; | 116 | + }, |
| 117 | +} | ||
| 117 | </script> | 118 | </script> |
| 118 | <style lang="scss" scoped> | 119 | <style lang="scss" scoped> |
| 119 | .NCC-dialog { | 120 | .NCC-dialog { |