Commit cb0a72a6809883debb70850ede6d9ecdfd34db06

Authored by monkeyhouyi
1 parent 46bce7e6

核查处置优化

src/api/common.js
@@ -20,9 +20,9 @@ export async function uploader({ type, file }) { @@ -20,9 +20,9 @@ export async function uploader({ type, file }) {
20 data: { file } 20 data: { file }
21 }); 21 });
22 } 22 }
23 -export function getDownloadUrl(type, fileName) { 23 +export function getDownloadUrl(type, fileId, name) {
24 return request({ 24 return request({
25 - url: `/file/Download/${type}/${fileName}`, 25 + url: `/file/Download/${type}/${fileId}/${encodeURIComponent(name)}`,
26 method: 'get' 26 method: 'get'
27 }) 27 })
28 } 28 }
src/api/systemData/dataInterface.js
@@ -139,4 +139,13 @@ export function getDataInterfaceLog(id, data) { @@ -139,4 +139,13 @@ export function getDataInterfaceLog(id, data) {
139 method: 'GET', 139 method: 'GET',
140 data 140 data
141 }) 141 })
  142 +}
  143 +
  144 +// 编辑不进入流程
  145 +export function UpdateByHandle(data) {
  146 + return request({
  147 + url: `/Extend/BaseInspectionReport/${data.id}/UpdateByHandle`,
  148 + method: 'PUT',
  149 + data
  150 + })
142 } 151 }
143 \ No newline at end of file 152 \ No newline at end of file
src/views/DisposalSuggestions/Form.vue
@@ -109,24 +109,58 @@ @@ -109,24 +109,58 @@
109 <div class="text">{{ dataForm.areaName || "--" }}</div> 109 <div class="text">{{ dataForm.areaName || "--" }}</div>
110 </div> 110 </div>
111 </el-col> 111 </el-col>
112 - <el-col :span="24"> 112 + <el-col :span="24" v-for="(v, i) in dataForm.judgmentOpinions" :key="i" style="border: #f6f6f6 solid 1px; border-radius: 10px; padding: 8px; margin-bottom: 5px;">
  113 + <div class="title">研判信息{{ i + 1 }}</div>
113 <div class="form-item"> 114 <div class="form-item">
114 - <div class="label w-100">处置建议:</div>  
115 - <div class="text">{{ dataForm.judgmentOpinions || "--" }}</div> 115 + <div class="label w-120">处置类型:</div>
  116 + <div class="text">{{ v.State }}</div>
  117 + </div>
  118 + <div class="form-item">
  119 + <div class="label w-120">处置建议:</div>
  120 + <div class="text">{{ v.judgmentOpinion }}</div>
116 </div> 121 </div>
117 </el-col> 122 </el-col>
118 - <el-col :span="24"> 123 + <el-col :span="24" v-for="(v, index) in dataForm.disposalSuggestions" :key="index" style="border: #f6f6f6 solid 1px; border-radius: 10px; padding: 8px; margin-bottom: 5px;">
  124 + <div class="title">处置信息{{ index + 1 }}</div>
119 <div class="form-item"> 125 <div class="form-item">
120 - <div class="label w-100">处置结果:</div>  
121 - <div class="text">{{ dataForm.disposalSuggestions || "--" }}</div> 126 + <div class="label w-120">处置结果:</div>
  127 + <div class="text">{{ v.disposalSuggestion }}</div>
  128 + </div>
  129 + <div class="form-item" v-if="v.fileUrl">
  130 + <div class="label w-120">处置附件:</div>
  131 + <div class="text" style="width: calc(100% - 120px);">
  132 + <NCC-UploadFz v-model="v.fileUrl" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" disabled/>
  133 + </div>
122 </div> 134 </div>
123 </el-col> 135 </el-col>
124 - <el-col :span="24"> 136 + <!-- <el-col :span="24">
  137 + <div class="form-item">
  138 + <div class="label w-100">处置建议:</div>
  139 + <div class="text">
  140 + <div class="text" v-if="!dataForm.judgmentOpinions || !dataForm.judgmentOpinions.length">无</div>
  141 + <template v-else>
  142 + <div class="text" v-for="v in dataForm.judgmentOpinions" :key="v">{{ v }}</div>
  143 + </template>
  144 + </div>
  145 + </div>
  146 + </el-col> -->
  147 + <!-- <el-col :span="24">
  148 + <div class="form-item">
  149 + <div class="label w-100">处置结果:</div>
  150 + <div class="text">
  151 + <div class="text" v-if="!dataForm.disposalSuggestions || !dataForm.disposalSuggestions.length">无</div>
  152 + <template v-else>
  153 + <div class="text" v-for="v in dataForm.disposalSuggestions" :key="v">{{ v }}</div>
  154 + </template>
  155 + </div>
  156 + </div>
  157 + </el-col> -->
  158 + <!-- <el-col :span="24">
125 <el-col class="form-item"> 159 <el-col class="form-item">
126 <div class="label w-100">处置附件:</div> 160 <div class="label w-100">处置附件:</div>
127 <div class="text" v-if="dataForm.judgmentOpinions"> 161 <div class="text" v-if="dataForm.judgmentOpinions">
128 <NCC-UploadFz 162 <NCC-UploadFz
129 - v-model="dataForm.judgmentOpinions" 163 + v-model="dataForm.disposalResult"
130 :fileSize="5" 164 :fileSize="5"
131 sizeUnit="MB" 165 sizeUnit="MB"
132 :limit="9" 166 :limit="9"
@@ -135,7 +169,7 @@ @@ -135,7 +169,7 @@
135 /> 169 />
136 </div> 170 </div>
137 </el-col> 171 </el-col>
138 - </el-col> 172 + </el-col> -->
139 </el-row> 173 </el-row>
140 </el-col> 174 </el-col>
141 <el-col :span="14"> 175 <el-col :span="14">
@@ -242,6 +276,7 @@ import { getDictionaryDataSelector } from &quot;@/api/systemData/dictionary&quot;; @@ -242,6 +276,7 @@ import { getDictionaryDataSelector } from &quot;@/api/systemData/dictionary&quot;;
242 import { 276 import {
243 getDetail, 277 getDetail,
244 disposalSuggestionsAPI, 278 disposalSuggestionsAPI,
  279 + UpdateByHandle
245 } from "@/api/systemData/dataInterface"; 280 } from "@/api/systemData/dataInterface";
246 export default { 281 export default {
247 components: {}, 282 components: {},
@@ -301,6 +336,7 @@ export default { @@ -301,6 +336,7 @@ export default {
301 areaOptions: [], 336 areaOptions: [],
302 btnLoading: false, 337 btnLoading: false,
303 communicationOutOptions: [], 338 communicationOutOptions: [],
  339 + formType: '',
304 }; 340 };
305 }, 341 },
306 computed: { 342 computed: {
@@ -341,12 +377,13 @@ export default { @@ -341,12 +377,13 @@ export default {
341 goBack() { 377 goBack() {
342 this.$emit("refresh"); 378 this.$emit("refresh");
343 }, 379 },
344 - async init(id, isDetail) { 380 + async init(id, isDetail, type) {
345 this.dataForm.id = id || 0; 381 this.dataForm.id = id || 0;
346 this.visible = true; 382 this.visible = true;
347 this.showSuggsetion = false; 383 this.showSuggsetion = false;
348 this.showarea = false; 384 this.showarea = false;
349 this.loading = true; 385 this.loading = true;
  386 + this.formType = type || '';
350 await this.initCommunicationOutOptions(); 387 await this.initCommunicationOutOptions();
351 await this.getSourceOptions(); 388 await this.getSourceOptions();
352 await this.initAreaTypeList(); 389 await this.initAreaTypeList();
@@ -390,7 +427,15 @@ export default { @@ -390,7 +427,15 @@ export default {
390 id: this.dataForm.id, 427 id: this.dataForm.id,
391 }; 428 };
392 this.btnLoading = true; 429 this.btnLoading = true;
393 - let res = await disposalSuggestionsAPI(obj); 430 + let res
  431 + if(this.formType) {
  432 + // 编辑
  433 + res = await UpdateByHandle(obj);
  434 + console.log(res, 'bianji');
  435 + } else {
  436 + // 研判
  437 + res = await disposalSuggestionsAPI(obj);
  438 + }
394 if (res.code != 200) return (this.btnLoading = false); 439 if (res.code != 200) return (this.btnLoading = false);
395 this.$message({ 440 this.$message({
396 message: res.msg, 441 message: res.msg,
src/views/DisposalSuggestions/HandleForm.vue
@@ -110,24 +110,58 @@ @@ -110,24 +110,58 @@
110 <div class="text">{{ dataForm.areaName || "--" }}</div> 110 <div class="text">{{ dataForm.areaName || "--" }}</div>
111 </div> 111 </div>
112 </el-col> 112 </el-col>
113 - <el-col :span="24"> 113 + <el-col :span="24" v-for="(v, i) in dataForm.judgmentOpinions" :key="i" style="border: #f6f6f6 solid 1px; border-radius: 10px; padding: 8px; margin-bottom: 5px;">
  114 + <div class="title">研判信息{{ i + 1 }}</div>
  115 + <div class="form-item">
  116 + <div class="label w-120">处置类型:</div>
  117 + <div class="text">{{ v.State }}</div>
  118 + </div>
  119 + <div class="form-item">
  120 + <div class="label w-120">处置建议:</div>
  121 + <div class="text">{{ v.judgmentOpinion }}</div>
  122 + </div>
  123 + </el-col>
  124 + <el-col :span="24" v-for="(v, i) in dataForm.disposalSuggestions" :key="i" style="border: #f6f6f6 solid 1px; border-radius: 10px; padding: 8px; margin-bottom: 5px;">
  125 + <div class="title">处置信息{{ i + 1 }}</div>
  126 + <div class="form-item">
  127 + <div class="label w-120">处置结果:</div>
  128 + <div class="text">{{ v.disposalSuggestion }}</div>
  129 + </div>
  130 + <div class="form-item" v-if="v.fileUrl">
  131 + <div class="label w-120">处置附件:</div>
  132 + <div class="text" style="width: calc(100% - 120px);">
  133 + <NCC-UploadFz v-model="v.fileUrl" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" disabled/>
  134 + </div>
  135 + </div>
  136 + </el-col>
  137 + <!-- <el-col :span="24">
114 <div class="form-item"> 138 <div class="form-item">
115 <div class="label w-100">处置建议:</div> 139 <div class="label w-100">处置建议:</div>
116 - <div class="text">{{ dataForm.judgmentOpinions || "--" }}</div> 140 + <div class="text">
  141 + <div class="text" v-if="!dataForm.judgmentOpinions || !dataForm.judgmentOpinions.length">无</div>
  142 + <template v-else>
  143 + <div class="text" v-for="v in dataForm.judgmentOpinions" :key="v">{{ v }}</div>
  144 + </template>
  145 + </div>
117 </div> 146 </div>
118 </el-col> 147 </el-col>
119 <el-col :span="24"> 148 <el-col :span="24">
120 <div class="form-item"> 149 <div class="form-item">
121 <div class="label w-100">处置结果:</div> 150 <div class="label w-100">处置结果:</div>
122 - <div class="text">{{ dataForm.disposalSuggestions || "--" }}</div> 151 + <div class="text">
  152 + <div class="text" v-if="!dataForm.disposalSuggestions || !dataForm.disposalSuggestions.length">无</div>
  153 + <template v-else>
  154 + <div class="text" v-for="v in dataForm.disposalSuggestions" :key="v">{{ v }}</div>
  155 + </template>
  156 + </div>
123 </div> 157 </div>
124 - </el-col>  
125 - <el-col :span="24"> 158 + </el-col> -->
  159 + <!-- <el-col :span="24">
126 <el-col class="form-item"> 160 <el-col class="form-item">
127 <div class="label w-100">处置附件:</div> 161 <div class="label w-100">处置附件:</div>
128 <div class="text" v-if="dataForm.judgmentOpinions"> 162 <div class="text" v-if="dataForm.judgmentOpinions">
129 <NCC-UploadFz 163 <NCC-UploadFz
130 - v-model="dataForm.judgmentOpinions" 164 + v-model="dataForm.disposalResult"
131 :fileSize="5" 165 :fileSize="5"
132 sizeUnit="MB" 166 sizeUnit="MB"
133 :limit="9" 167 :limit="9"
@@ -136,7 +170,7 @@ @@ -136,7 +170,7 @@
136 /> 170 />
137 </div> 171 </div>
138 </el-col> 172 </el-col>
139 - </el-col> 173 + </el-col> -->
140 </el-row> 174 </el-row>
141 </el-col> 175 </el-col>
142 <el-col :span="14"> 176 <el-col :span="14">
src/views/DisposalSuggestions/index.vue
1 <template> 1 <template>
2 - <div class="SystemInfo item-box common-info-box">  
3 - <div class="item-title">{{isSHILevel ? '线索研判' : '巡查处理'}}</div>  
4 - <div class="item-body">  
5 - <div class="NCC-common-layout">  
6 - <div class="NCC-common-layout-center">  
7 - <el-row class="NCC-common-search-box" :gutter="16">  
8 - <el-form @submit.native.prevent size="mini">  
9 - <el-col :span="5">  
10 - <el-form-item label="">  
11 - <el-date-picker  
12 - v-model="query.creatorTime"  
13 - type="datetimerange"  
14 - value-format="timestamp"  
15 - format="yyyy-MM-dd HH:mm:ss"  
16 - start-placeholder="登记开始日期"  
17 - end-placeholder="登记结束日期"  
18 - >  
19 - </el-date-picker>  
20 - </el-form-item>  
21 - </el-col>  
22 - <el-col :span="3">  
23 - <el-form-item label="">  
24 - <el-input v-model="query.platformName" placeholder="请输入应用名称" clearable />  
25 - </el-form-item>  
26 - </el-col>  
27 - <el-col :span="3">  
28 - <el-form-item label="">  
29 - <el-select v-model="query.platformType" placeholder="请选择应用类型" clearable >  
30 - <el-option v-for="(item, index) in systemTypeOptions" :key="index" :label="item.FullName" :value="item.Id" />  
31 - </el-select>  
32 - </el-form-item>  
33 - </el-col>  
34 - <!-- <el-col :span="3"> 2 + <div class="SystemInfo item-box common-info-box">
  3 + <div class="item-title">{{ isSHILevel ? "线索研判" : "巡查处理" }}</div>
  4 + <div class="item-body">
  5 + <div class="NCC-common-layout">
  6 + <div class="NCC-common-layout-center">
  7 + <el-row class="NCC-common-search-box" :gutter="16">
  8 + <el-form @submit.native.prevent size="mini">
  9 + <el-col :span="5">
  10 + <el-form-item label="">
  11 + <el-date-picker
  12 + v-model="query.creatorTime"
  13 + type="datetimerange"
  14 + value-format="timestamp"
  15 + format="yyyy-MM-dd HH:mm:ss"
  16 + start-placeholder="登记开始日期"
  17 + end-placeholder="登记结束日期"
  18 + >
  19 + </el-date-picker>
  20 + </el-form-item>
  21 + </el-col>
  22 + <el-col :span="3">
  23 + <el-form-item label="">
  24 + <el-input
  25 + v-model="query.platformName"
  26 + placeholder="请输入应用名称"
  27 + clearable
  28 + />
  29 + </el-form-item>
  30 + </el-col>
  31 + <el-col :span="3">
  32 + <el-form-item label="">
  33 + <el-select
  34 + v-model="query.platformType"
  35 + placeholder="请选择应用类型"
  36 + clearable
  37 + >
  38 + <el-option
  39 + v-for="(item, index) in systemTypeOptions"
  40 + :key="index"
  41 + :label="item.FullName"
  42 + :value="item.Id"
  43 + />
  44 + </el-select>
  45 + </el-form-item>
  46 + </el-col>
  47 + <!-- <el-col :span="3">
35 <el-form-item label=""> 48 <el-form-item label="">
36 <depSelect v-model="query.department" placeholder="请选择部门" /> 49 <depSelect v-model="query.department" placeholder="请选择部门" />
37 </el-form-item> 50 </el-form-item>
38 </el-col> --> 51 </el-col> -->
39 - <el-col :span="3">  
40 - <el-form-item label="">  
41 - <el-input v-model="query.questionType" placeholder="请选择问题类型" clearable />  
42 - </el-form-item>  
43 - </el-col>  
44 - <el-col :span="3">  
45 - <el-form-item>  
46 - <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>  
47 - <el-button icon="el-icon-refresh-right" @click="reset()">重置</el-button>  
48 - </el-form-item>  
49 - </el-col>  
50 - </el-form>  
51 - </el-row>  
52 - <div class="NCC-common-layout-main NCC-flex-main">  
53 - <NCC-table v-loading="listLoading" :data="list">  
54 - <el-table-column show-overflow-tooltip prop="platformNameStr" label="应用名称" align="left" />  
55 - <el-table-column show-overflow-tooltip label="应用类型" prop="platformType" align="left">  
56 - <template slot-scope="scope">{{ scope.row.platformNameStr || scope.row.platformName }}</template>  
57 - </el-table-column>  
58 - <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left" ></el-table-column>  
59 - <el-table-column show-overflow-tooltip label="线索编号" prop="leadNumber" align="left" ></el-table-column>  
60 - <!-- <el-table-column show-overflow-tooltip prop="link" label="有害链接" align="left" /> -->  
61 - <!-- <el-table-column show-overflow-tooltip prop="questionClass" label="关键词" align="left" /> -->  
62 - <el-table-column show-overflow-tooltip prop="creatorTime" label="录入时间" align="left" :formatter="ncc.tableDateFormat"/>  
63 - <el-table-column show-overflow-tooltip prop="state" label="状态" align="left" />  
64 - <!-- <el-table-column show-overflow-tooltip prop="disposalSuggestions" label="处置建议" align="left" /> 52 + <el-col :span="3">
  53 + <el-form-item label="">
  54 + <el-input
  55 + v-model="query.questionType"
  56 + placeholder="请选择问题类型"
  57 + clearable
  58 + />
  59 + </el-form-item>
  60 + </el-col>
  61 + <el-col :span="3">
  62 + <el-form-item>
  63 + <el-button
  64 + type="primary"
  65 + icon="el-icon-search"
  66 + @click="search()"
  67 + >查询</el-button
  68 + >
  69 + <el-button icon="el-icon-refresh-right" @click="reset()"
  70 + >重置</el-button
  71 + >
  72 + </el-form-item>
  73 + </el-col>
  74 + <div class="NCC-common-search-box-right">
  75 + <el-button
  76 + type="primary"
  77 + icon="el-icon-download"
  78 + size="mini"
  79 + @click="exportData()"
  80 + >导出</el-button
  81 + >
  82 + </div>
  83 + </el-form>
  84 + </el-row>
  85 + <div class="NCC-common-layout-main NCC-flex-main">
  86 + <NCC-table v-loading="listLoading" :data="list">
  87 + <el-table-column
  88 + show-overflow-tooltip
  89 + prop="platformNameStr"
  90 + label="应用名称"
  91 + align="left"
  92 + />
  93 + <el-table-column
  94 + show-overflow-tooltip
  95 + label="应用类型"
  96 + prop="platformType"
  97 + align="left"
  98 + >
  99 + <template slot-scope="scope">{{
  100 + scope.row.platformNameStr || scope.row.platformName
  101 + }}</template>
  102 + </el-table-column>
  103 + <el-table-column
  104 + show-overflow-tooltip
  105 + label="问题类型"
  106 + prop="questionType"
  107 + align="left"
  108 + ></el-table-column>
  109 + <el-table-column
  110 + show-overflow-tooltip
  111 + label="线索编号"
  112 + prop="leadNumber"
  113 + align="left"
  114 + ></el-table-column>
  115 + <!-- <el-table-column show-overflow-tooltip prop="link" label="有害链接" align="left" /> -->
  116 + <!-- <el-table-column show-overflow-tooltip prop="questionClass" label="关键词" align="left" /> -->
  117 + <el-table-column
  118 + show-overflow-tooltip
  119 + prop="creatorTime"
  120 + label="录入时间"
  121 + align="left"
  122 + :formatter="ncc.tableDateFormat"
  123 + />
  124 + <el-table-column
  125 + show-overflow-tooltip
  126 + prop="state"
  127 + label="状态"
  128 + align="left"
  129 + />
  130 + <!-- <el-table-column show-overflow-tooltip prop="disposalSuggestions" label="处置建议" align="left" />
65 <el-table-column show-overflow-tooltip prop="id" label="主键" align="left" /> 131 <el-table-column show-overflow-tooltip prop="id" label="主键" align="left" />
66 <el-table-column show-overflow-tooltip prop="department" label="部门" align="left" /> 132 <el-table-column show-overflow-tooltip prop="department" label="部门" align="left" />
67 <el-table-column show-overflow-tooltip label="问题分类" prop="questionClass" align="left"> 133 <el-table-column show-overflow-tooltip label="问题分类" prop="questionClass" align="left">
@@ -70,171 +136,241 @@ @@ -70,171 +136,241 @@
70 <el-table-column show-overflow-tooltip label="阶段" prop="stage" align="left"> 136 <el-table-column show-overflow-tooltip label="阶段" prop="stage" align="left">
71 <template slot-scope="scope">{{ scope.row.stage | dynamicText(stageOptions) }}</template> 137 <template slot-scope="scope">{{ scope.row.stage | dynamicText(stageOptions) }}</template>
72 </el-table-column> --> 138 </el-table-column> -->
73 - <el-table-column label="操作" fixed="right" width="100">  
74 - <template slot-scope="scope">  
75 - <!-- 未研判 ‘577006621985604869’/未下发 ‘577006641364189019’ / 已处置 ‘577006696312866053’ 可以研判 -->  
76 - <!-- <el-button type="text" v-if="isSHILevel" @click="addOrUpdateHandle(scope.row.id)" :disabled="['577006621985604869', '577006641364189019', '577006696312866053'].includes(scope.row.stage) == -1">{{ scope.row.stage == '577006641364189019' ? '下发' : '研判'}}</el-button> -->  
77 - <el-button type="text" v-if="isSHILevel" @click="addOrUpdateHandle(scope.row.id)" :disabled="!['577006621985604869', '577006641364189019', '577006696312866053'].includes(scope.row.stage)">研判</el-button>  
78 - <!-- 待处置进行处理 -->  
79 - <el-button type="text" v-else @click="toHandle(scope.row.id)" :disabled="scope.row.stage != '577006131314196155'">处理</el-button>  
80 - <el-button type="text" @click="toDetail(scope.row.id)" >详情</el-button>  
81 - </template>  
82 - </el-table-column>  
83 - </NCC-table>  
84 - <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData" />  
85 - </div>  
86 - </div>  
87 - <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" />  
88 - <HandleForm v-if="HandleFormVisible" ref="HandleForm" @refresh="refresh" />  
89 - <ReportForm v-if="ReportFormVisible" ref="ReportForm" @refresh="refresh" />  
90 - </div>  
91 - </div>  
92 - </div>  
93 - 139 + <el-table-column label="操作" fixed="right" width="150">
  140 + <template slot-scope="scope">
  141 + <el-button
  142 + type="text"
  143 + @click="addOrUpdateHandle(scope.row.id, false, 'edit')"
  144 + v-if="isSHILevel && scope.row.stage == '577006666214540549'"
  145 + >编辑</el-button
  146 + >
  147 + <!-- 未研判 ‘577006621985604869’/未下发 ‘577006641364189019’ / 已处置 ‘577006696312866053’ 可以研判 -->
  148 + <!-- <el-button type="text" v-if="isSHILevel" @click="addOrUpdateHandle(scope.row.id)" :disabled="['577006621985604869', '577006641364189019', '577006696312866053'].includes(scope.row.stage) == -1">{{ scope.row.stage == '577006641364189019' ? '下发' : '研判'}}</el-button> -->
  149 + <el-button
  150 + type="text"
  151 + v-if="isSHILevel && scope.row.stage != '577006666214540549'"
  152 + @click="addOrUpdateHandle(scope.row.id)"
  153 + :disabled="
  154 + ![
  155 + '577006621985604869',
  156 + '577006641364189019',
  157 + '577006696312866053',
  158 + ].includes(scope.row.stage)
  159 + "
  160 + >研判</el-button
  161 + >
  162 + <!-- 待处置进行处理 -->
  163 + <el-button
  164 + type="text"
  165 + v-if="!isSHILevel"
  166 + @click="toHandle(scope.row.id)"
  167 + :disabled="scope.row.stage != '577006131314196155'"
  168 + >处理</el-button
  169 + >
  170 + <el-button type="text" @click="toDetail(scope.row.id)"
  171 + >详情</el-button
  172 + >
  173 + </template>
  174 + </el-table-column>
  175 + </NCC-table>
  176 + <pagination
  177 + :total="total"
  178 + :page.sync="listQuery.currentPage"
  179 + :limit.sync="listQuery.pageSize"
  180 + @pagination="initData"
  181 + />
  182 + </div>
  183 + </div>
  184 + <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" />
  185 + <HandleForm
  186 + v-if="HandleFormVisible"
  187 + ref="HandleForm"
  188 + @refresh="refresh"
  189 + />
  190 + <ReportForm
  191 + v-if="ReportFormVisible"
  192 + ref="ReportForm"
  193 + @refresh="refresh"
  194 + />
  195 + </div>
  196 + </div>
  197 + </div>
94 </template> 198 </template>
95 <script> 199 <script>
96 - import request from '@/utils/request'  
97 - import infoMixin from "@/mixins/info";  
98 - import NCCForm from './Form'  
99 - import HandleForm from './HandleForm'  
100 - import { getListForJudge, previewDataInterface } from '@/api/systemData/dataInterface'  
101 - import ReportForm from '@/views/baseInspectionReport/Form.vue' // 巡查处置  
102 - export default {  
103 - components: { NCCForm, HandleForm, ReportForm },  
104 - mixins: [infoMixin],  
105 - data() {  
106 - return {  
107 - showAll: false,  
108 - query: {  
109 - platformName:undefined,  
110 - platformNameStr: undefined,  
111 - platformType:undefined,  
112 - department:undefined,  
113 - questionType:undefined,  
114 - questionClass:undefined,  
115 - creatorTime: [],  
116 - },  
117 - list: [],  
118 - listLoading: true,  
119 - multipleSelection: [], total: 0,  
120 - listQuery: {  
121 - currentPage: 1,  
122 - pageSize: 20,  
123 - sort: "desc",  
124 - sidx: "",  
125 - },  
126 - formVisible: false,  
127 - exportBoxVisible: false,  
128 - columnList: [  
129 - { prop: 'platformName', label: '平台名称' },  
130 - { prop: 'platformType', label: '平台类型' },  
131 - { prop: 'questionType', label: '问题类型' },  
132 - { prop: 'link', label: '有害链接' },  
133 - { prop: 'disposalSuggestions', label: '处置建议' },  
134 - { prop: 'id', label: '主键' },  
135 - { prop: 'department', label: '部门' },  
136 - { prop: 'questionClass', label: '问题分类' },  
137 - { prop: 'stage', label: '阶段' },  
138 - ],  
139 - sourceOptions:[{"fullName":"市网信办线索","id":"市网信办线索"},{"fullName":"自主巡查发现","id":"自主巡查发现"}],  
140 - systemTypeOptions : [],  
141 - questionTypeOptions : [],  
142 - questionClassOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],  
143 - stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], 200 +import request from "@/utils/request";
  201 +import infoMixin from "@/mixins/info";
  202 +import NCCForm from "./Form";
  203 +import HandleForm from "./HandleForm";
  204 +import {
  205 + getListForJudge,
  206 + previewDataInterface,
  207 +} from "@/api/systemData/dataInterface";
  208 +import ReportForm from "@/views/baseInspectionReport/Form.vue"; // 巡查处置
  209 +import define from '@/utils/define'
  210 +
  211 +export default {
  212 + components: { NCCForm, HandleForm, ReportForm },
  213 + mixins: [infoMixin],
  214 + data() {
  215 + return {
  216 + showAll: false,
  217 + query: {
  218 + platformName: undefined,
  219 + platformNameStr: undefined,
  220 + platformType: undefined,
  221 + department: undefined,
  222 + questionType: undefined,
  223 + questionClass: undefined,
  224 + creatorTime: [],
  225 + },
  226 + list: [],
  227 + listLoading: true,
  228 + multipleSelection: [],
  229 + total: 0,
  230 + listQuery: {
  231 + currentPage: 1,
  232 + pageSize: 20,
  233 + sort: "desc",
  234 + sidx: "",
  235 + },
  236 + formVisible: false,
  237 + exportBoxVisible: false,
  238 + columnList: [
  239 + { prop: "platformName", label: "平台名称" },
  240 + { prop: "platformType", label: "平台类型" },
  241 + { prop: "questionType", label: "问题类型" },
  242 + { prop: "link", label: "有害链接" },
  243 + { prop: "disposalSuggestions", label: "处置建议" },
  244 + { prop: "id", label: "主键" },
  245 + { prop: "department", label: "部门" },
  246 + { prop: "questionClass", label: "问题分类" },
  247 + { prop: "stage", label: "阶段" },
  248 + ],
  249 + sourceOptions: [
  250 + { fullName: "市网信办线索", id: "市网信办线索" },
  251 + { fullName: "自主巡查发现", id: "自主巡查发现" },
  252 + ],
  253 + systemTypeOptions: [],
  254 + questionTypeOptions: [],
  255 + questionClassOptions: [
  256 + { fullName: "选项一", id: "1" },
  257 + { fullName: "选项二", id: "2" },
  258 + ],
  259 + stageOptions: [
  260 + { fullName: "选项一", id: "1" },
  261 + { fullName: "选项二", id: "2" },
  262 + ],
  263 +
  264 + HandleFormVisible: false,
  265 + ReportFormVisible: false,
  266 + };
  267 + },
  268 + computed: {
  269 + isSHILevel() {
  270 + // 判断角色是否为‘市级办公室’
  271 + return this.$store.state.user.islader;
  272 + },
  273 + },
  274 + created() {
  275 + this.initSystemTypeList();
  276 + this.initData();
  277 + },
  278 + methods: {
  279 + initData() {
  280 + this.listLoading = true;
  281 + let _query = {
  282 + ...this.listQuery,
  283 + ...this.query,
  284 + };
  285 + let query = {};
  286 + for (let key in _query) {
  287 + if (Array.isArray(_query[key])) {
  288 + query[key] = _query[key].join();
  289 + } else {
  290 + query[key] = _query[key];
  291 + }
  292 + }
  293 + getListForJudge(query).then((res) => {
  294 + this.list = res.data.list;
  295 + this.total = res.data.pagination.total;
  296 + this.listLoading = false;
  297 + });
  298 + },
  299 +
  300 + addOrUpdateHandle(id, isDetail, type) {
  301 + this.formVisible = true;
  302 + this.$nextTick(() => {
  303 + this.$refs.NCCForm.init(id, isDetail, type);
  304 + });
  305 + },
  306 + search() {
  307 + this.listQuery = {
  308 + currentPage: 1,
  309 + pageSize: 20,
  310 + sort: "desc",
  311 + sidx: "",
  312 + };
  313 + this.initData();
  314 + },
  315 + refresh(isrRefresh) {
  316 + this.formVisible = false;
  317 + this.HandleFormVisible = false;
  318 + this.ReportFormVisible = false;
  319 + if (isrRefresh) this.reset();
  320 + },
  321 + // 处理
  322 + toHandle(id, isDetail) {
  323 + this.HandleFormVisible = true;
  324 + this.$nextTick(() => {
  325 + this.$refs.HandleForm.init(id, isDetail);
  326 + });
  327 + },
144 328
145 - HandleFormVisible: false,  
146 - ReportFormVisible: false,  
147 - }  
148 - },  
149 - computed: {  
150 - isSHILevel() {  
151 - // 判断角色是否为‘市级办公室’  
152 - return this.$store.state.user.islader;  
153 - },  
154 - },  
155 - created() {  
156 - this.initSystemTypeList();  
157 - this.initData()  
158 - },  
159 - methods: {  
160 - initData() {  
161 - this.listLoading = true;  
162 - let _query = {  
163 - ...this.listQuery,  
164 - ...this.query  
165 - };  
166 - let query = {}  
167 - for (let key in _query) {  
168 - if (Array.isArray(_query[key])) {  
169 - query[key] = _query[key].join()  
170 - } else {  
171 - query[key] = _query[key]  
172 - }  
173 - }  
174 - getListForJudge(query).then(res => {  
175 - this.list = res.data.list  
176 - this.total = res.data.pagination.total  
177 - this.listLoading = false  
178 - })  
179 - },  
180 -  
181 - addOrUpdateHandle(id, isDetail) {  
182 - this.formVisible = true  
183 - this.$nextTick(() => {  
184 - this.$refs.NCCForm.init(id, isDetail)  
185 - })  
186 - },  
187 - search() {  
188 - this.listQuery = {  
189 - currentPage: 1,  
190 - pageSize: 20,  
191 - sort: "desc",  
192 - sidx: "",  
193 - }  
194 - this.initData()  
195 - },  
196 - refresh(isrRefresh) {  
197 - this.formVisible = false;  
198 - this.HandleFormVisible = false;  
199 - this.ReportFormVisible = false;  
200 - if (isrRefresh) this.reset();  
201 - },  
202 - // 处理  
203 - toHandle(id, isDetail) {  
204 - this.HandleFormVisible = true  
205 - this.$nextTick(() => {  
206 - this.$refs.HandleForm.init(id, isDetail)  
207 - })  
208 - }, 329 + // 详情
  330 + toDetail(id) {
  331 + this.ReportFormVisible = true;
  332 + this.$nextTick(() => {
  333 + this.$refs.ReportForm.init(id, true);
  334 + });
  335 + },
209 336
210 - // 详情  
211 - toDetail(id) {  
212 - this.ReportFormVisible = true;  
213 - this.$nextTick(() => {  
214 - this.$refs.ReportForm.init(id, true);  
215 - });  
216 - },  
217 -  
218 - reset() {  
219 - for (let key in this.query) {  
220 - this.query[key] = undefined  
221 - }  
222 - this.listQuery = {  
223 - currentPage: 1,  
224 - pageSize: 20,  
225 - sort: "desc",  
226 - sidx: "",  
227 - }  
228 - this.initData()  
229 - }  
230 - }  
231 - } 337 + reset() {
  338 + for (let key in this.query) {
  339 + this.query[key] = undefined;
  340 + }
  341 + this.listQuery = {
  342 + currentPage: 1,
  343 + pageSize: 20,
  344 + sort: "desc",
  345 + sidx: "",
  346 + };
  347 + this.initData();
  348 + },
  349 + exportData() {
  350 + let obj = {
  351 + url: "/Extend/BaseInspectionReport/Actions/ExportByJudge",
  352 + method: "POST",
  353 + data: {
  354 + ...this.query,
  355 + },
  356 + };
  357 + request(obj).then((res) => {
  358 + if (res.code != 200) return;
  359 + const url = define.APIURl + res.data.url;
  360 + const link = document.createElement("a");
  361 + link.href = url;
  362 + link.download = res.data ? res.data.name : "研判列表.xlsx";
  363 + link.click();
  364 + });
  365 + },
  366 + },
  367 +};
232 </script> 368 </script>
233 <style scoped lang="scss"> 369 <style scoped lang="scss">
234 .common-info-box { 370 .common-info-box {
235 - :deep(.el-table__body-wrapper.is-scrolling-none) {  
236 - height: calc(100% - 47px);  
237 - overflow-y: scroll;  
238 - } 371 + :deep(.el-table__body-wrapper.is-scrolling-none) {
  372 + height: calc(100% - 47px);
  373 + overflow-y: scroll;
  374 + }
239 } 375 }
240 -</style>  
241 \ No newline at end of file 376 \ No newline at end of file
  377 +</style>
src/views/baseInspectionReport/Form.vue
@@ -129,7 +129,7 @@ @@ -129,7 +129,7 @@
129 <el-input v-model="dataForm.questionClass" placeholder="请输入关键词" clearable :style="{ width: '100%' }"></el-input> 129 <el-input v-model="dataForm.questionClass" placeholder="请输入关键词" clearable :style="{ width: '100%' }"></el-input>
130 </el-form-item> 130 </el-form-item>
131 </el-col> 131 </el-col>
132 - <el-col :span="24" v-if="isSHILevel"> 132 + <!-- <el-col :span="24" v-if="isSHILevel">
133 <el-form-item label="处置建议" prop="judgmentOpinions"> 133 <el-form-item label="处置建议" prop="judgmentOpinions">
134 <el-input 134 <el-input
135 v-model="dataForm.judgmentOpinions" 135 v-model="dataForm.judgmentOpinions"
@@ -142,7 +142,7 @@ @@ -142,7 +142,7 @@
142 > 142 >
143 </el-input> 143 </el-input>
144 </el-form-item> 144 </el-form-item>
145 - </el-col> 145 + </el-col> -->
146 <el-col :span="24" v-if="!isSHILevel"> 146 <el-col :span="24" v-if="!isSHILevel">
147 <el-form-item label="处置结果" prop="disposalSuggestions"> 147 <el-form-item label="处置结果" prop="disposalSuggestions">
148 <el-input 148 <el-input
@@ -228,18 +228,28 @@ @@ -228,18 +228,28 @@
228 <div class="label w-120">所属外协:</div> 228 <div class="label w-120">所属外协:</div>
229 <div class="text">外协一</div> 229 <div class="text">外协一</div>
230 </el-col> 230 </el-col>
231 - <el-col class="form-item">  
232 - <div class="label w-120">处置建议:</div>  
233 - <div class="text">{{ dataForm.judgmentOpinions || '--' }}</div>  
234 - </el-col>  
235 - <el-col class="form-item">  
236 - <div class="label w-120">处置结果:</div>  
237 - <div class="text">{{ dataForm.disposalSuggestions || '--' }}</div> 231 + <el-col v-for="(v, i) in dataForm.judgmentOpinions" :key="i" style="border: #f6f6f6 solid 1px; border-radius: 10px; padding: 8px; margin-bottom: 5px;">
  232 + <div class="title">研判信息{{ i + 1 }}</div>
  233 + <div class="form-item">
  234 + <div class="label w-120">处置类型:</div>
  235 + <div class="text">{{ v.State }}</div>
  236 + </div>
  237 + <div class="form-item">
  238 + <div class="label w-120">处置建议:</div>
  239 + <div class="text">{{ v.judgmentOpinion }}</div>
  240 + </div>
238 </el-col> 241 </el-col>
239 - <el-col class="form-item">  
240 - <div class="label w-120">处置附件:</div>  
241 - <div class="text" style="width: calc(100% - 120px);" v-if="dataForm.disposalResultFileUrl">  
242 - <NCC-UploadFz v-model="dataForm.disposalResultFileUrl" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" disabled/> 242 + <el-col v-for="(v, i) in dataForm.disposalSuggestions" :key="i" style="border: #f6f6f6 solid 1px; border-radius: 10px; padding: 8px; margin-bottom: 5px;">
  243 + <div class="title">处置信息{{ i + 1 }}</div>
  244 + <div class="form-item">
  245 + <div class="label w-120">处置结果:</div>
  246 + <div class="text">{{ v.disposalSuggestion }}</div>
  247 + </div>
  248 + <div class="form-item" v-if="v.fileUrl">
  249 + <div class="label w-120">处置附件:</div>
  250 + <div class="text" style="width: calc(100% - 120px);">
  251 + <NCC-UploadFz v-model="v.fileUrl" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" disabled/>
  252 + </div>
243 </div> 253 </div>
244 </el-col> 254 </el-col>
245 </el-row> 255 </el-row>
@@ -305,6 +315,9 @@ export default { @@ -305,6 +315,9 @@ export default {
305 questionType: [ 315 questionType: [
306 { required: true, message: "请选择问题类型", trigger: "blur" }, 316 { required: true, message: "请选择问题类型", trigger: "blur" },
307 ], 317 ],
  318 + disposalSuggestions: [
  319 + { required: true, message: "请填写处置结果", trigger: "blur" },
  320 + ],
308 // otherQuestionType: [ 321 // otherQuestionType: [
309 // { required: true, message: "请输入其他问题类型", trigger: "blur" }, 322 // { required: true, message: "请输入其他问题类型", trigger: "blur" },
310 // ], 323 // ],
@@ -459,6 +472,10 @@ export default { @@ -459,6 +472,10 @@ export default {
459 if(res.code != 200) return this.form_loading = false; 472 if(res.code != 200) return this.form_loading = false;
460 if(!res.data) return; 473 if(!res.data) return;
461 this.dataForm = res.data; 474 this.dataForm = res.data;
  475 + if(!this.isDetail) {
  476 + let disposalSuggestions = this.dataForm.disposalSuggestions;
  477 + this.dataForm.disposalSuggestions = disposalSuggestions[disposalSuggestions.length - 1].disposalSuggestion;
  478 + }
462 res.data.areaId && (this.dataForm.areaName = dynamicText(res.data.areaId, this.areaOptions)); 479 res.data.areaId && (this.dataForm.areaName = dynamicText(res.data.areaId, this.areaOptions));
463 this.sourceOptions.length && this.dataForm.reportSource && (this.dataForm.reportSourceName = this.sourceOptions.find(v => v.Id == this.dataForm.reportSource).FullName); 480 this.sourceOptions.length && this.dataForm.reportSource && (this.dataForm.reportSourceName = this.sourceOptions.find(v => v.Id == this.dataForm.reportSource).FullName);
464 if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) { 481 if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) {
@@ -479,7 +496,14 @@ export default { @@ -479,7 +496,14 @@ export default {
479 ...this.dataForm, 496 ...this.dataForm,
480 questionType: this.dataForm.questionType == '其他' ? this.dataForm.otherQuestionType : this.dataForm.questionType, 497 questionType: this.dataForm.questionType == '其他' ? this.dataForm.otherQuestionType : this.dataForm.questionType,
481 selfMediaPlatformType: this.dataForm.selfMediaPlatformType == '其他' ? this.dataForm.selfMediaPlatformTypeOther : this.dataForm.selfMediaPlatformType, 498 selfMediaPlatformType: this.dataForm.selfMediaPlatformType == '其他' ? this.dataForm.selfMediaPlatformTypeOther : this.dataForm.selfMediaPlatformType,
482 - } 499 + disposalSuggestions: [
  500 + {
  501 + disposalSuggestion: this.dataForm.disposalSuggestions,
  502 + fileUrl: '',
  503 + }
  504 + ],
  505 + };
  506 + this.isSHILevel && delete obj.disposalSuggestions;
483 this.btnLoading = true; 507 this.btnLoading = true;
484 try { 508 try {
485 let res = !this.dataForm.id ? await addForm(obj) : await updataForm(obj); 509 let res = !this.dataForm.id ? await addForm(obj) : await updataForm(obj);
src/views/baseInspectionReport/index.vue
@@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
84 <template slot-scope="scope"> 84 <template slot-scope="scope">
85 <!-- 未研判 ‘577006621985604869’/未下发 ‘577006641364189019’可以修改 --> 85 <!-- 未研判 ‘577006621985604869’/未下发 ‘577006641364189019’可以修改 -->
86 <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" :disabled="scope.row.stage != '577006621985604869' && scope.row.stage !='577006641364189019'">编辑</el-button> 86 <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" :disabled="scope.row.stage != '577006621985604869' && scope.row.stage !='577006641364189019'">编辑</el-button>
87 - <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button> 87 + <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" :disabled="scope.row.stage != '577006621985604869' && scope.row.stage !='577006641364189019'">删除</el-button>
88 </template> 88 </template>
89 </el-table-column> 89 </el-table-column>
90 </NCC-table> 90 </NCC-table>