Commit 006cc67aa111e4ef604c78ecb33f2bfd6824d0dd

Authored by monkeyhouyi
1 parent 51ff8a48

巡查上报

src/views/DisposalSuggestions/Form.vue
@@ -7,59 +7,46 @@ @@ -7,59 +7,46 @@
7 <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules" v-loading="loading"> 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" > 8 <el-col :span="24" v-if="false" >
9 <el-form-item label="主键" prop="id"> 9 <el-form-item label="主键" prop="id">
10 - <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{"width":"100%"}' > 10 + <el-input v-model="dataForm.id" placeholder="--" clearable :style='{"width":"100%"}' >
11 </el-input> 11 </el-input>
12 </el-form-item> 12 </el-form-item>
13 </el-col> 13 </el-col>
14 - <el-col :span="24">  
15 - <el-form-item label="来源" prop="source">  
16 - <el-select v-model="dataForm.source" placeholder="请选择" clearable :style='{"width":"100%"}' >  
17 - <el-option v-for="(item, index) in sourceOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>  
18 - </el-select>  
19 - </el-form-item>  
20 - </el-col>  
21 - <el-col :span="24"> 14 + <el-col :span="12">
22 <el-form-item label="平台名称" prop="platformName"> 15 <el-form-item label="平台名称" prop="platformName">
23 - <el-input v-model="dataForm.platformName" placeholder="请输入" clearable :style='{"width":"100%"}' > 16 + <el-input v-model="dataForm.platformName" placeholder="--" clearable :style='{"width":"100%"}' >
24 </el-input> 17 </el-input>
25 </el-form-item> 18 </el-form-item>
26 </el-col> 19 </el-col>
27 - <el-col :span="24"> 20 + <el-col :span="12">
28 <el-form-item label="平台类型" prop="platformType"> 21 <el-form-item label="平台类型" prop="platformType">
29 - <el-select v-model="dataForm.platformType" placeholder="请选择" clearable :style='{"width":"100%"}' > 22 + <el-select v-model="dataForm.platformType" placeholder="--" clearable :style='{"width":"100%"}' >
30 <el-option v-for="(item, index) in platformTypeOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option> 23 <el-option v-for="(item, index) in platformTypeOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>
31 </el-select> 24 </el-select>
32 </el-form-item> 25 </el-form-item>
33 </el-col> 26 </el-col>
34 - <el-col :span="24">  
35 - <el-form-item label="部门" prop="department">  
36 - <dep-select v-model="dataForm.department" placeholder="请选择" clearable >  
37 - </dep-select>  
38 - </el-form-item>  
39 - </el-col>  
40 - <el-col :span="24"> 27 + <el-col :span="12">
41 <el-form-item label="问题类型" prop="questionType"> 28 <el-form-item label="问题类型" prop="questionType">
42 <el-radio-group v-model="dataForm.questionType" :style='{}' > 29 <el-radio-group v-model="dataForm.questionType" :style='{}' >
43 - <el-radio v-for="(item, index) in questionTypeOptions" :key="index" :label="item.id" >{{item.fullName}}</el-radio> 30 + <el-radio v-for="(item, index) in questionTypeOptions" :key="index" :label="item.id" >{{item.fullName || '--'}}</el-radio>
44 </el-radio-group> 31 </el-radio-group>
45 </el-form-item> 32 </el-form-item>
46 </el-col> 33 </el-col>
47 - <el-col :span="24"> 34 + <el-col :span="12">
48 <el-form-item label="问题分类" prop="questionClass"> 35 <el-form-item label="问题分类" prop="questionClass">
49 - <el-select v-model="dataForm.questionClass" placeholder="请选择" clearable :style='{"width":"100%"}' > 36 + <el-select v-model="dataForm.questionClass" placeholder="--" clearable :style='{"width":"100%"}' >
50 <el-option v-for="(item, index) in questionClassOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option> 37 <el-option v-for="(item, index) in questionClassOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>
51 </el-select> 38 </el-select>
52 </el-form-item> 39 </el-form-item>
53 </el-col> 40 </el-col>
54 <el-col :span="24"> 41 <el-col :span="24">
55 <el-form-item label="问题内容" prop="questionContent"> 42 <el-form-item label="问题内容" prop="questionContent">
56 - <el-input v-model="dataForm.questionContent" placeholder="请输入" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' > 43 + <el-input v-model="dataForm.questionContent" placeholder="--" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' >
57 </el-input> 44 </el-input>
58 </el-form-item> 45 </el-form-item>
59 </el-col> 46 </el-col>
60 <el-col :span="24"> 47 <el-col :span="24">
61 <el-form-item label="有害链接" prop="link"> 48 <el-form-item label="有害链接" prop="link">
62 - <el-input v-model="dataForm.link" placeholder="请输入" clearable :style='{"width":"100%"}' > 49 + <el-input v-model="dataForm.link" placeholder="--" clearable :style='{"width":"100%"}' >
63 </el-input> 50 </el-input>
64 </el-form-item> 51 </el-form-item>
65 </el-col> 52 </el-col>
@@ -75,43 +62,6 @@ @@ -75,43 +62,6 @@
75 </NCC-UploadFz> 62 </NCC-UploadFz>
76 </el-form-item> 63 </el-form-item>
77 </el-col> 64 </el-col>
78 - <el-col :span="24">  
79 - <el-form-item label="处置建议" prop="disposalSuggestions">  
80 - <el-input v-model="dataForm.disposalSuggestions" placeholder="请输入" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' >  
81 - </el-input>  
82 - </el-form-item>  
83 - </el-col>  
84 - <el-col :span="24">  
85 - <el-form-item label="阶段" prop="stage">  
86 - <el-select v-model="dataForm.stage" placeholder="请选择" clearable :style='{"width":"100%"}' >  
87 - <el-option v-for="(item, index) in stageOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>  
88 - </el-select>  
89 - </el-form-item>  
90 - </el-col>  
91 - <el-col :span="24" v-if="false" >  
92 - <el-form-item label="创建用户" prop="creatorUserId">  
93 - <el-input v-model="dataForm.creatorUserId" placeholder="系统自动生成" readonly >  
94 - </el-input>  
95 - </el-form-item>  
96 - </el-col>  
97 - <el-col :span="24" v-if="false" >  
98 - <el-form-item label="创建时间" prop="creatorTime">  
99 - <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly >  
100 - </el-input>  
101 - </el-form-item>  
102 - </el-col>  
103 - <el-col :span="24" v-if="false" >  
104 - <el-form-item label="修改用户" prop="lastModifyUserId">  
105 - <el-input v-model="dataForm.lastModifyUserId" placeholder="系统自动生成" readonly >  
106 - </el-input>  
107 - </el-form-item>  
108 - </el-col>  
109 - <el-col :span="24" v-if="false" >  
110 - <el-form-item label="修改时间" prop="lastModifyTime">  
111 - <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly >  
112 - </el-input>  
113 - </el-form-item>  
114 - </el-col>  
115 </el-form> 65 </el-form>
116 <el-col :span="24" class="form_title"> 66 <el-col :span="24" class="form_title">
117 判研建议 67 判研建议
@@ -156,24 +106,15 @@ @@ -156,24 +106,15 @@
156 visible: false, 106 visible: false,
157 isDetail: true, 107 isDetail: true,
158 dataForm: { 108 dataForm: {
159 - id:'',  
160 id:undefined, 109 id:undefined,
161 - source:undefined,  
162 platformName:undefined, 110 platformName:undefined,
163 platformType:undefined, 111 platformType:undefined,
164 - department:undefined,  
165 questionType:undefined, 112 questionType:undefined,
166 questionClass:undefined, 113 questionClass:undefined,
167 questionContent:undefined, 114 questionContent:undefined,
168 link:undefined, 115 link:undefined,
169 obtainEvidence:[], 116 obtainEvidence:[],
170 annex:[], 117 annex:[],
171 - disposalSuggestions:undefined,  
172 - stage:undefined,  
173 - creatorUserId:undefined,  
174 - creatorTime:undefined,  
175 - lastModifyUserId:undefined,  
176 - lastModifyTime:undefined,  
177 }, 118 },
178 rules: { 119 rules: {
179 }, 120 },
src/views/baseInspectionReport/Form.vue
1 <template> 1 <template>
2 - <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :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-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules">  
5 - <el-col :span="24" v-if="false" >  
6 - <el-form-item label="主键" prop="id">  
7 - <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{"width":"100%"}' >  
8 - </el-input>  
9 - </el-form-item>  
10 - </el-col>  
11 - <el-col :span="24">  
12 - <el-form-item label="来源" prop="source">  
13 - <el-select v-model="dataForm.source" placeholder="请选择" clearable :style='{"width":"100%"}' >  
14 - <el-option v-for="(item, index) in sourceOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>  
15 - </el-select>  
16 - </el-form-item>  
17 - </el-col>  
18 - <el-col :span="24">  
19 - <el-form-item label="平台名称" prop="platformName">  
20 - <el-input v-model="dataForm.platformName" placeholder="请输入" clearable :style='{"width":"100%"}' >  
21 - </el-input>  
22 - </el-form-item>  
23 - </el-col>  
24 - <el-col :span="24">  
25 - <el-form-item label="平台类型" prop="platformType">  
26 - <el-select v-model="dataForm.platformType" placeholder="请选择" clearable :style='{"width":"100%"}' >  
27 - <el-option v-for="(item, index) in platformTypeOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>  
28 - </el-select>  
29 - </el-form-item>  
30 - </el-col>  
31 - <el-col :span="24">  
32 - <el-form-item label="部门" prop="department">  
33 - <dep-select v-model="dataForm.department" placeholder="请选择" clearable >  
34 - </dep-select>  
35 - </el-form-item>  
36 - </el-col>  
37 - <el-col :span="24">  
38 - <el-form-item label="问题类型" prop="questionType">  
39 - <el-radio-group v-model="dataForm.questionType" :style='{}' >  
40 - <el-radio v-for="(item, index) in questionTypeOptions" :key="index" :label="item.id" >{{item.fullName}}</el-radio>  
41 - </el-radio-group>  
42 - </el-form-item>  
43 - </el-col>  
44 - <el-col :span="24">  
45 - <el-form-item label="问题分类" prop="questionClass">  
46 - <el-select v-model="dataForm.questionClass" placeholder="请选择" clearable :style='{"width":"100%"}' >  
47 - <el-option v-for="(item, index) in questionClassOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>  
48 - </el-select>  
49 - </el-form-item>  
50 - </el-col>  
51 - <el-col :span="24">  
52 - <el-form-item label="问题内容" prop="questionContent">  
53 - <el-input v-model="dataForm.questionContent" placeholder="请输入" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' >  
54 - </el-input>  
55 - </el-form-item>  
56 - </el-col>  
57 - <el-col :span="24">  
58 - <el-form-item label="有害链接" prop="link">  
59 - <el-input v-model="dataForm.link" placeholder="请输入" clearable :style='{"width":"100%"}' >  
60 - </el-input>  
61 - </el-form-item>  
62 - </el-col>  
63 - <el-col :span="24">  
64 - <el-form-item label="取证内容" prop="obtainEvidence">  
65 - <NCC-UploadFz v-model="dataForm.obtainEvidence" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >  
66 - </NCC-UploadFz>  
67 - </el-form-item>  
68 - </el-col>  
69 - <el-col :span="24">  
70 - <el-form-item label="附件上传" prop="annex">  
71 - <NCC-UploadFz v-model="dataForm.annex" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >  
72 - </NCC-UploadFz>  
73 - </el-form-item>  
74 - </el-col>  
75 - <el-col :span="24">  
76 - <el-form-item label="处置建议" prop="disposalSuggestions">  
77 - <el-input v-model="dataForm.disposalSuggestions" placeholder="请输入" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' >  
78 - </el-input>  
79 - </el-form-item>  
80 - </el-col>  
81 - <el-col :span="24">  
82 - <el-form-item label="阶段" prop="stage">  
83 - <el-select v-model="dataForm.stage" placeholder="请选择" clearable :style='{"width":"100%"}' >  
84 - <el-option v-for="(item, index) in stageOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>  
85 - </el-select>  
86 - </el-form-item>  
87 - </el-col>  
88 - <el-col :span="24" v-if="false" >  
89 - <el-form-item label="创建用户" prop="creatorUserId">  
90 - <el-input v-model="dataForm.creatorUserId" placeholder="系统自动生成" readonly >  
91 - </el-input>  
92 - </el-form-item>  
93 - </el-col>  
94 - <el-col :span="24" v-if="false" >  
95 - <el-form-item label="创建时间" prop="creatorTime">  
96 - <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly >  
97 - </el-input>  
98 - </el-form-item>  
99 - </el-col>  
100 - <el-col :span="24" v-if="false" >  
101 - <el-form-item label="修改用户" prop="lastModifyUserId">  
102 - <el-input v-model="dataForm.lastModifyUserId" placeholder="系统自动生成" readonly >  
103 - </el-input>  
104 - </el-form-item>  
105 - </el-col>  
106 - <el-col :span="24" v-if="false" >  
107 - <el-form-item label="修改时间" prop="lastModifyTime">  
108 - <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly >  
109 - </el-input>  
110 - </el-form-item>  
111 - </el-col>  
112 - </el-form>  
113 - </el-row>  
114 - <span slot="footer" class="dialog-footer">  
115 - <el-button @click="visible = false">取 消</el-button>  
116 - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button>  
117 - </span>  
118 - </el-dialog> 2 + <el-dialog
  3 + :title="!dataForm.id ? '新建' : isDetail ? '详情' : '编辑'"
  4 + :close-on-click-modal="false"
  5 + :visible.sync="visible"
  6 + class="NCC-dialog NCC-dialog_center"
  7 + lock-scroll
  8 + width="70%"
  9 + >
  10 + <el-row :gutter="15" class="">
  11 + <el-form
  12 + ref="elForm"
  13 + :model="dataForm"
  14 + size="small"
  15 + label-width="100px"
  16 + label-position="right"
  17 + :disabled="!!isDetail"
  18 + :rules="rules"
  19 + >
  20 + <el-col :span="24" v-if="false">
  21 + <el-form-item label="主键" prop="id">
  22 + <el-input
  23 + v-model="dataForm.id"
  24 + placeholder="请输入"
  25 + clearable
  26 + :style="{ width: '100%' }"
  27 + >
  28 + </el-input>
  29 + </el-form-item>
  30 + </el-col>
  31 + <el-col :span="24">
  32 + <el-form-item label="平台名称" prop="platformName">
  33 + <el-input
  34 + v-model="dataForm.platformName"
  35 + placeholder="请输入"
  36 + clearable
  37 + :style="{ width: '100%' }"
  38 + >
  39 + </el-input>
  40 + </el-form-item>
  41 + </el-col>
  42 + <el-col :span="24">
  43 + <el-form-item label="平台类型" prop="platformType">
  44 + <el-select
  45 + v-model="dataForm.platformType"
  46 + placeholder="请选择"
  47 + clearable
  48 + :style="{ width: '100%' }"
  49 + >
  50 + <el-option
  51 + v-for="(item, index) in platformTypeOptions"
  52 + :key="index"
  53 + :label="item.FullName"
  54 + :value="item.Id"
  55 + ></el-option>
  56 + </el-select>
  57 + </el-form-item>
  58 + </el-col>
  59 +
  60 + <el-col :span="24">
  61 + <el-form-item label="问题类型" prop="questionType">
  62 + <el-radio-group v-model="dataForm.questionType" :style="{}">
  63 + <el-radio
  64 + v-for="(item, index) in questionTypeOptions"
  65 + :key="index"
  66 + :label="item.id"
  67 + >{{ item.fullName }}</el-radio
  68 + >
  69 + </el-radio-group>
  70 + </el-form-item>
  71 + </el-col>
  72 + <el-col :span="24">
  73 + <el-form-item label="问题分类" prop="questionClass">
  74 + <el-select
  75 + v-model="dataForm.questionClass"
  76 + placeholder="请选择"
  77 + clearable
  78 + :style="{ width: '100%' }"
  79 + >
  80 + <el-option
  81 + v-for="(item, index) in questionClassOptions"
  82 + :key="index"
  83 + :label="item.fullName"
  84 + :value="item.id"
  85 + ></el-option>
  86 + </el-select>
  87 + </el-form-item>
  88 + </el-col>
  89 + <el-col :span="24">
  90 + <el-form-item label="问题内容" prop="questionContent">
  91 + <el-input
  92 + v-model="dataForm.questionContent"
  93 + placeholder="请输入"
  94 + show-word-limit
  95 + :style="{ width: '100%' }"
  96 + type="textarea"
  97 + :autosize="{ minRows: 4, maxRows: 4 }"
  98 + >
  99 + </el-input>
  100 + </el-form-item>
  101 + </el-col>
  102 + <el-col :span="24">
  103 + <el-form-item label="有害链接" prop="link">
  104 + <el-input
  105 + v-model="dataForm.link"
  106 + placeholder="请输入"
  107 + clearable
  108 + :style="{ width: '100%' }"
  109 + >
  110 + </el-input>
  111 + </el-form-item>
  112 + </el-col>
  113 + <el-col :span="24">
  114 + <el-form-item label="取证内容" prop="obtainEvidence">
  115 + <NCC-UploadFz
  116 + v-model="dataForm.obtainEvidence"
  117 + :fileSize="5"
  118 + sizeUnit="MB"
  119 + :limit="9"
  120 + buttonText="点击上传"
  121 + >
  122 + </NCC-UploadFz>
  123 + </el-form-item>
  124 + </el-col>
  125 + <el-col :span="24">
  126 + <el-form-item label="附件上传" prop="annex">
  127 + <NCC-UploadFz
  128 + v-model="dataForm.annex"
  129 + :fileSize="5"
  130 + sizeUnit="MB"
  131 + :limit="9"
  132 + buttonText="点击上传"
  133 + >
  134 + </NCC-UploadFz>
  135 + </el-form-item>
  136 + </el-col>
  137 + </el-form>
  138 + </el-row>
  139 + <span slot="footer" class="dialog-footer">
  140 + <el-button @click="visible = false">取 消</el-button>
  141 + <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"
  142 + >确 定</el-button
  143 + >
  144 + </span>
  145 + </el-dialog>
119 </template> 146 </template>
120 <script> 147 <script>
121 - import request from '@/utils/request'  
122 - import { getDictionaryDataSelector } from '@/api/systemData/dictionary'  
123 - import { getDetail, addForm, updataForm } from '@/api/systemData/dataInterface'  
124 - export default {  
125 - components: {},  
126 - props: [],  
127 - data() {  
128 - return {  
129 - loading: false,  
130 - visible: false,  
131 - isDetail: false,  
132 - dataForm: {  
133 - id:'',  
134 - id:undefined,  
135 - source:undefined,  
136 - platformName:undefined,  
137 - platformType:undefined,  
138 - department:undefined,  
139 - questionType:undefined,  
140 - questionClass:undefined,  
141 - questionContent:undefined,  
142 - link:undefined,  
143 - obtainEvidence:[],  
144 - annex:[],  
145 - disposalSuggestions:undefined,  
146 - stage:undefined,  
147 - creatorUserId:undefined,  
148 - creatorTime:undefined,  
149 - lastModifyUserId:undefined,  
150 - lastModifyTime:undefined,  
151 - },  
152 - rules: {  
153 - },  
154 - sourceOptions:[{"fullName":"市网信办线索","id":"市网信办线索"},{"fullName":"自主巡查发现","id":"自主巡查发现"}],  
155 - platformTypeOptions : [],  
156 - questionTypeOptions : [],  
157 - questionClassOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],  
158 - stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],  
159 - }  
160 - },  
161 - computed: {},  
162 - watch: {},  
163 - created() {  
164 - this.getplatformTypeOptions();  
165 - this.getquestionTypeOptions();  
166 - },  
167 - mounted() {  
168 - },  
169 - methods: {  
170 - getplatformTypeOptions(){  
171 - getDictionaryDataSelector('576279943168656645').then(res => {  
172 - this.platformTypeOptions = res.data.list  
173 - });  
174 - },  
175 - getquestionTypeOptions(){  
176 - getDictionaryDataSelector('577006814432855301').then(res => {  
177 - this.questionTypeOptions = res.data.list  
178 - });  
179 - },  
180 - goBack() {  
181 - this.$emit('refresh') 148 +import request from "@/utils/request";
  149 +import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
  150 +import { getDetail, addForm, updataForm } from "@/api/systemData/dataInterface";
  151 +export default {
  152 + components: {},
  153 + props: [],
  154 + data() {
  155 + return {
  156 + loading: false,
  157 + visible: false,
  158 + isDetail: false,
  159 + dataForm: {
  160 + id: "",
  161 + id: undefined,
  162 + platformName: undefined,
  163 + platformType: undefined,
  164 + questionType: undefined,
  165 + questionClass: undefined,
  166 + questionContent: undefined,
  167 + link: undefined,
  168 + obtainEvidence: [],
  169 + annex: [],
  170 + },
  171 + rules: {},
  172 + sourceOptions: [
  173 + { fullName: "市网信办线索", id: "市网信办线索" },
  174 + { fullName: "自主巡查发现", id: "自主巡查发现" },
  175 + ],
  176 + platformTypeOptions: [],
  177 + questionTypeOptions: [],
  178 + questionClassOptions: [
  179 + { fullName: "选项一", id: "1" },
  180 + { fullName: "选项二", id: "2" },
  181 + ],
  182 + stageOptions: [
  183 + { fullName: "选项一", id: "1" },
  184 + { fullName: "选项二", id: "2" },
  185 + ],
  186 + };
  187 + },
  188 + computed: {},
  189 + watch: {},
  190 + created() {
  191 + this.getplatformTypeOptions();
  192 + this.getquestionTypeOptions();
  193 + },
  194 + mounted() {},
  195 + methods: {
  196 + async getplatformTypeOptions() {
  197 + let list = this.$store.state.meta.system;
  198 + !list &&
  199 + (list = await this.$store.dispatch("getTypeListByCode", "system"));
  200 + this.platformTypeOptions = list;
  201 + },
  202 + getquestionTypeOptions() {
  203 + getDictionaryDataSelector("577006814432855301").then((res) => {
  204 + this.questionTypeOptions = res.data.list;
  205 + });
  206 + },
  207 + goBack() {
  208 + this.$emit("refresh");
  209 + },
  210 + init(id, isDetail) {
  211 + this.dataForm.id = id || 0;
  212 + this.visible = true;
  213 + this.isDetail = isDetail || false;
  214 + this.$nextTick(async () => {
  215 + this.$refs["elForm"].resetFields();
  216 + if (this.dataForm.id) {
  217 + let res = await getDetail(this.dataForm.id);
  218 + this.dataForm = res.data;
  219 + if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = [];
  220 + if (!this.dataForm.annex) this.dataForm.annex = [];
  221 + }
  222 + });
  223 + },
  224 + dataFormSubmit() {
  225 + this.$refs["elForm"].validate(async (valid) => {
  226 + if (valid) {
  227 + let res = !this.dataForm.id
  228 + ? await addForm(this.dataForm)
  229 + : await updataForm(this.dataForm);
  230 + this.$message({
  231 + message: res.msg,
  232 + type: "success",
  233 + duration: 1000,
  234 + onClose: () => {
  235 + (this.visible = false), this.$emit("refresh", true);
182 }, 236 },
183 - init(id, isDetail) {  
184 - this.dataForm.id = id || 0;  
185 - this.visible = true;  
186 - this.isDetail = isDetail || false;  
187 - this.$nextTick(async () => {  
188 - this.$refs['elForm'].resetFields();  
189 - if (this.dataForm.id) {  
190 - let res = await getDetail(this.dataForm.id)  
191 - this.dataForm = res.data;  
192 - if(!this.dataForm.obtainEvidence)this.dataForm.obtainEvidence=[];  
193 - if(!this.dataForm.annex)this.dataForm.annex=[];  
194 - }  
195 - })  
196 - },  
197 - dataFormSubmit() {  
198 - this.$refs['elForm'].validate(async (valid) => {  
199 - if (valid) {  
200 - let res = !this.dataForm.id ? await addForm(this.dataForm) : await updataForm(this.dataForm);  
201 - this.$message({  
202 - message: res.msg,  
203 - type: 'success',  
204 - duration: 1000,  
205 - onClose: () => {  
206 - this.visible = false, this.$emit('refresh', true)  
207 - }  
208 - })  
209 - }  
210 - })  
211 - },  
212 - }  
213 - } 237 + });
  238 + }
  239 + });
  240 + },
  241 + },
  242 +};
214 </script> 243 </script>
src/views/baseSystemInfo/InspectForm.vue 0 → 100644
  1 +<template>
  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="70%"
  9 + >
  10 + <el-row :gutter="15" class="">
  11 + <el-form
  12 + ref="elForm"
  13 + :model="dataForm"
  14 + size="small"
  15 + label-width="100px"
  16 + label-position="right"
  17 + :disabled="!!isDetail"
  18 + :rules="rules"
  19 + >
  20 + <el-col :span="24">
  21 + <el-form-item label="平台名称" prop="platformName">
  22 + <el-input
  23 + v-model="dataForm.platformName"
  24 + placeholder="请输入"
  25 + clearable
  26 + :style="{ width: '100%' }"
  27 + :disabled="true"
  28 + >
  29 + </el-input>
  30 + </el-form-item>
  31 + </el-col>
  32 + <el-col :span="24">
  33 + <el-form-item label="平台类型" prop="platformType">
  34 + <el-select
  35 + v-model="dataForm.platformType"
  36 + placeholder="请选择"
  37 + clearable
  38 + :style="{ width: '100%' }"
  39 + :disabled="true"
  40 + >
  41 + <el-option
  42 + v-for="(item, index) in platformTypeOptions"
  43 + :key="index"
  44 + :label="item.FullName"
  45 + :value="item.Id"
  46 + ></el-option>
  47 + </el-select>
  48 + </el-form-item>
  49 + </el-col>
  50 + <el-col :span="24">
  51 + <el-form-item label="问题类型" prop="questionType">
  52 + <el-radio-group v-model="dataForm.questionType" :style="{}">
  53 + <el-radio
  54 + v-for="(item, index) in questionTypeOptions"
  55 + :key="index"
  56 + :label="item.id"
  57 + >{{ item.fullName }}</el-radio
  58 + >
  59 + </el-radio-group>
  60 + </el-form-item>
  61 + </el-col>
  62 + <el-col :span="24">
  63 + <el-form-item label="问题分类" prop="questionClass">
  64 + <el-select
  65 + v-model="dataForm.questionClass"
  66 + placeholder="请选择"
  67 + clearable
  68 + :style="{ width: '100%' }"
  69 + >
  70 + <el-option
  71 + v-for="(item, index) in questionClassOptions"
  72 + :key="index"
  73 + :label="item.fullName"
  74 + :value="item.id"
  75 + ></el-option>
  76 + </el-select>
  77 + </el-form-item>
  78 + </el-col>
  79 + <el-col :span="24">
  80 + <el-form-item label="问题内容" prop="questionContent">
  81 + <el-input
  82 + v-model="dataForm.questionContent"
  83 + placeholder="请输入"
  84 + show-word-limit
  85 + :style="{ width: '100%' }"
  86 + type="textarea"
  87 + :autosize="{ minRows: 4, maxRows: 4 }"
  88 + >
  89 + </el-input>
  90 + </el-form-item>
  91 + </el-col>
  92 + <el-col :span="24">
  93 + <el-form-item label="有害链接" prop="link">
  94 + <el-input
  95 + v-model="dataForm.link"
  96 + placeholder="请输入"
  97 + clearable
  98 + :style="{ width: '100%' }"
  99 + >
  100 + </el-input>
  101 + </el-form-item>
  102 + </el-col>
  103 + <el-col :span="24">
  104 + <el-form-item label="取证内容" prop="obtainEvidence">
  105 + <NCC-UploadFz
  106 + v-model="dataForm.obtainEvidence"
  107 + :fileSize="5"
  108 + sizeUnit="MB"
  109 + :limit="9"
  110 + buttonText="点击上传"
  111 + >
  112 + </NCC-UploadFz>
  113 + </el-form-item>
  114 + </el-col>
  115 + <el-col :span="24">
  116 + <el-form-item label="附件上传" prop="annex">
  117 + <NCC-UploadFz
  118 + v-model="dataForm.annex"
  119 + :fileSize="5"
  120 + sizeUnit="MB"
  121 + :limit="9"
  122 + buttonText="点击上传"
  123 + >
  124 + </NCC-UploadFz>
  125 + </el-form-item>
  126 + </el-col>
  127 + </el-form>
  128 + </el-row>
  129 + <span slot="footer" class="dialog-footer">
  130 + <el-button @click="visible = false">取 消</el-button>
  131 + <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"
  132 + >确 定</el-button
  133 + >
  134 + </span>
  135 + </el-dialog>
  136 +</template>
  137 +<script>
  138 +import request from "@/utils/request";
  139 +import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
  140 +import { getDetail, addForm, updataForm } from "@/api/systemData/dataInterface";
  141 +export default {
  142 + components: {},
  143 + props: [],
  144 + data() {
  145 + return {
  146 + loading: false,
  147 + visible: false,
  148 + isDetail: false,
  149 + dataForm: {
  150 + platformName: undefined,
  151 + platformType: undefined,
  152 + questionType: undefined,
  153 + questionClass: undefined,
  154 + questionContent: undefined,
  155 + link: undefined,
  156 + obtainEvidence: [],
  157 + annex: [],
  158 + },
  159 + rules: {},
  160 + sourceOptions: [
  161 + { fullName: "市网信办线索", id: "市网信办线索" },
  162 + { fullName: "自主巡查发现", id: "自主巡查发现" },
  163 + ],
  164 + platformTypeOptions: [],
  165 + questionTypeOptions: [],
  166 + questionClassOptions: [
  167 + { fullName: "选项一", id: "1" },
  168 + { fullName: "选项二", id: "2" },
  169 + ],
  170 + stageOptions: [
  171 + { fullName: "选项一", id: "1" },
  172 + { fullName: "选项二", id: "2" },
  173 + ],
  174 + };
  175 + },
  176 + computed: {},
  177 + watch: {},
  178 + created() {
  179 + this.getplatformTypeOptions();
  180 + this.getquestionTypeOptions();
  181 + },
  182 + mounted() {},
  183 + methods: {
  184 + async getplatformTypeOptions() {
  185 + let list = this.$store.state.meta.system;
  186 + !list &&
  187 + (list = await this.$store.dispatch("getTypeListByCode", "system"));
  188 + this.platformTypeOptions = list;
  189 + },
  190 + getquestionTypeOptions() {
  191 + getDictionaryDataSelector("577006814432855301").then((res) => {
  192 + this.questionTypeOptions = res.data.list;
  193 + });
  194 + },
  195 + goBack() {
  196 + this.$emit("refresh");
  197 + },
  198 + init(row, isDetail) {
  199 + this.visible = true;
  200 + this.isDetail = isDetail || false;
  201 + this.$nextTick(async () => {
  202 + this.$refs["elForm"].resetFields();
  203 + this.dataForm.platformName = row.Id;
  204 + this.dataForm.platformType = row.systemType;
  205 + this.dataForm.obtainEvidence = [];
  206 + this.dataForm.annex = [];
  207 + });
  208 + },
  209 + dataFormSubmit() {
  210 + this.$refs["elForm"].validate(async (valid) => {
  211 + if (valid) {
  212 + let res = !this.dataForm.id
  213 + ? await addForm(this.dataForm)
  214 + : await updataForm(this.dataForm);
  215 + this.$message({
  216 + message: res.msg,
  217 + type: "success",
  218 + duration: 1000,
  219 + onClose: () => {
  220 + (this.visible = false), this.$emit("refresh", true);
  221 + },
  222 + });
  223 + }
  224 + });
  225 + },
  226 + },
  227 +};
  228 +</script>
src/views/baseSystemInfo/index.vue
@@ -131,6 +131,9 @@ @@ -131,6 +131,9 @@
131 <el-table-column label="操作" width="200"> 131 <el-table-column label="操作" width="200">
132 <!-- 查看,修改,归属地变更,上报 --> 132 <!-- 查看,修改,归属地变更,上报 -->
133 <template slot-scope="scope"> 133 <template slot-scope="scope">
  134 + <InfoEditRecord class="btn_dialog" :systemId="scope.row.Id">
  135 + <el-button size="mini" type="text">查看</el-button>
  136 + </InfoEditRecord>
134 <infoForm 137 <infoForm
135 class="btn_dialog" 138 class="btn_dialog"
136 type="edit" 139 type="edit"
@@ -139,12 +142,6 @@ @@ -139,12 +142,6 @@
139 > 142 >
140 <el-button size="mini" type="text">修改</el-button> 143 <el-button size="mini" type="text">修改</el-button>
141 </infoForm> 144 </infoForm>
142 - <InfoEditRecord  
143 - class="btn_dialog"  
144 - :systemId="scope.row.Id"  
145 - >  
146 - <el-button size="mini" type="text">查看</el-button>  
147 - </InfoEditRecord>  
148 <el-button 145 <el-button
149 size="mini" 146 size="mini"
150 type="text" 147 type="text"
@@ -154,7 +151,7 @@ @@ -154,7 +151,7 @@
154 <el-button 151 <el-button
155 size="mini" 152 size="mini"
156 type="text" 153 type="text"
157 - @click="toDetail(scope.row)" 154 + @click="toInspection(scope.row)"
158 >上报</el-button 155 >上报</el-button
159 > 156 >
160 </template> 157 </template>
@@ -207,6 +204,11 @@ @@ -207,6 +204,11 @@
207 <el-button type="primary" @click="areaSubmit">确 定</el-button> 204 <el-button type="primary" @click="areaSubmit">确 定</el-button>
208 </span> 205 </span>
209 </el-dialog> 206 </el-dialog>
  207 + <InspectionForm
  208 + v-if="InspectionFormVisible"
  209 + ref="InspectionForm"
  210 + @refresh="refresh"
  211 + />
210 </div> 212 </div>
211 </div> 213 </div>
212 </div> 214 </div>
@@ -216,9 +218,14 @@ @@ -216,9 +218,14 @@
216 import { getInfoList } from "@/api/baseData/info"; 218 import { getInfoList } from "@/api/baseData/info";
217 import { applnyChageArea } from "@/api/baseData/info"; 219 import { applnyChageArea } from "@/api/baseData/info";
218 import infoMixin from "@/mixins/info"; 220 import infoMixin from "@/mixins/info";
  221 +import InspectionForm from "./InspectForm.vue";
  222 +
219 export default { 223 export default {
220 name: "SystemInfo", 224 name: "SystemInfo",
221 mixins: [infoMixin], 225 mixins: [infoMixin],
  226 + components: {
  227 + InspectionForm,
  228 + },
222 data() { 229 data() {
223 return { 230 return {
224 loading: false, 231 loading: false,
@@ -254,6 +261,9 @@ export default { @@ -254,6 +261,9 @@ export default {
254 }, 261 },
255 }, 262 },
256 activeSystemId: "", 263 activeSystemId: "",
  264 +
  265 + // 上报
  266 + InspectionFormVisible: false,
257 }; 267 };
258 }, 268 },
259 created() { 269 created() {
@@ -275,6 +285,19 @@ export default { @@ -275,6 +285,19 @@ export default {
275 this.query.systemClass = ""; 285 this.query.systemClass = "";
276 this.initSystemClassList(val); 286 this.initSystemClassList(val);
277 }, 287 },
  288 +
  289 + reset() {
  290 + for (let key in this.query) {
  291 + this.query[key] = undefined;
  292 + }
  293 + this.listQuery = {
  294 + currentPage: 1,
  295 + pageSize: 20,
  296 + sort: "desc",
  297 + sidx: "",
  298 + };
  299 + this.initList();
  300 + },
278 search() { 301 search() {
279 this.listQuery = { 302 this.listQuery = {
280 pageIndex: 1, 303 pageIndex: 1,
@@ -313,7 +336,16 @@ export default { @@ -313,7 +336,16 @@ export default {
313 }); 336 });
314 }, 337 },
315 // 上报 338 // 上报
316 - toDetail(row) {}, 339 + toInspection(row) {
  340 + this.InspectionFormVisible = true;
  341 + this.$nextTick(() => {
  342 + this.$refs.InspectionForm.init(row);
  343 + });
  344 + },
  345 + refresh(isrRefresh) {
  346 + this.InspectionFormVisible = false;
  347 + if (isrRefresh) this.reset();
  348 + },
317 async toChangeArea(row) { 349 async toChangeArea(row) {
318 this.areaChangeVisible = true; 350 this.areaChangeVisible = true;
319 this.areaDialogLoading = true; 351 this.areaDialogLoading = true;
src/views/homePage/HomePage.vue
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 > 27 >
28 </div> 28 </div>
29 <div class="info"> 29 <div class="info">
30 - <router-view></router-view> 30 + <router-view ref="info"></router-view>
31 </div> 31 </div>
32 </div> 32 </div>
33 <div class="news"> 33 <div class="news">
@@ -53,8 +53,12 @@ export default { @@ -53,8 +53,12 @@ export default {
53 searchKeyword: "", 53 searchKeyword: "",
54 }; 54 };
55 }, 55 },
56 - created() {},  
57 - mounted() {}, 56 + created() {
  57 + },
  58 + mounted() {
  59 + console.log(this.$route.path, 'this.$router');
  60 +
  61 + },
58 watch: { 62 watch: {
59 // $route: { 63 // $route: {
60 // handler: function (route) { 64 // handler: function (route) {
@@ -66,10 +70,14 @@ export default { @@ -66,10 +70,14 @@ export default {
66 computed: {}, 70 computed: {},
67 methods: { 71 methods: {
68 toSearchInfoList() { 72 toSearchInfoList() {
69 - this.$router.push({  
70 - path: "/baseSystemInfo/index.vue",  
71 - query: { keyword: this.searchKeyword },  
72 - }); 73 + if(this.$route.path == '/baseSystemInfo/index.vue') {
  74 + this.$refs.info.search();
  75 + } else {
  76 + this.$router.push({
  77 + path: "/baseSystemInfo/index.vue",
  78 + query: { keyword: this.searchKeyword },
  79 + });
  80 + }
73 }, 81 },
74 }, 82 },
75 }; 83 };
src/views/homePage/components/news/NewsDialog.vue
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <div class="news-title"> 3 <div class="news-title">
4 <div class="left">我的消息</div> 4 <div class="left">我的消息</div>
5 <div class="right"> 5 <div class="right">
6 - <el-button type="primary" size="small">标记全部已读</el-button> 6 + <el-button type="primary" size="small" @click="toReadAll">标记全部已读</el-button>
7 </div> 7 </div>
8 </div> 8 </div>
9 <div class="infinite-list-wrapper" style="overflow: auto"> 9 <div class="infinite-list-wrapper" style="overflow: auto">
@@ -18,7 +18,9 @@ @@ -18,7 +18,9 @@
18 <!-- <p>这个应用应该归属到青羊区,不在金牛区的管辖范围内。</p> --> 18 <!-- <p>这个应用应该归属到青羊区,不在金牛区的管辖范围内。</p> -->
19 <div class="item-info"> 19 <div class="item-info">
20 <div class="left">发送人:{{v.creatorUser}}</div> 20 <div class="left">发送人:{{v.creatorUser}}</div>
21 - <div class="left">时间:{{v.lastModifyTime}}</div> 21 + </div>
  22 + <div class="item-info">
  23 + <div class="right">时间:{{ncc.dateFormat(v.lastModifyTime)}}</div>
22 </div> 24 </div>
23 </li> 25 </li>
24 </ul> 26 </ul>
@@ -61,11 +63,17 @@ export default { @@ -61,11 +63,17 @@ export default {
61 this.loading = true; 63 this.loading = true;
62 getMessageList(this.searchList).then(({data}) => { 64 getMessageList(this.searchList).then(({data}) => {
63 this.messageList = this.messageList.concat(data.list); 65 this.messageList = this.messageList.concat(data.list);
64 - console.log(this.messageList);  
65 this.total = data.pagination.total; 66 this.total = data.pagination.total;
66 this.loading = false; 67 this.loading = false;
  68 + this.searchList.pageIndex += 1
  69 + this.$emit('changeMagNum', data.pagination.total);
67 }); 70 });
68 }, 71 },
  72 + toReadAll() {
  73 + MessageAllRead().then(() => {
  74 + this.load();
  75 + })
  76 + }
69 }, 77 },
70 }; 78 };
71 </script> 79 </script>
src/views/homePage/components/news/index.vue
@@ -4,16 +4,14 @@ @@ -4,16 +4,14 @@
4 placement="left" 4 placement="left"
5 width="300" 5 width="300"
6 trigger="click" 6 trigger="click"
7 - v-for="(item, index) in itemList"  
8 - :key="index"  
9 > 7 >
10 - <NewsDialog />  
11 - <div slot="reference" class="news-item" @click="activeItem = index"> 8 + <NewsDialog ref="MessageDialog" @changeMagNum="changeMagNum"/>
  9 + <div slot="reference" class="news-item">
12 <div class="icon-item"> 10 <div class="icon-item">
13 - <div class="red-spot" v-show="item.hasInfo"></div>  
14 - <i :class="item.icon"></i> 11 + <div class="red-spot" v-show="isHaveMsg"></div>
  12 + <i class="el-icon-message-solid"></i>
15 </div> 13 </div>
16 - <div class="nav-title">{{ item.title }}</div> 14 + <div class="nav-title">我的消息</div>
17 </div> 15 </div>
18 </el-popover> 16 </el-popover>
19 </div> 17 </div>
@@ -27,10 +25,7 @@ export default { @@ -27,10 +25,7 @@ export default {
27 components: { NewsDialog }, 25 components: { NewsDialog },
28 data() { 26 data() {
29 return { 27 return {
30 - itemList: [  
31 - // { icon: "el-icon-s-order", title: "我的待办", hasInfo: false },  
32 - { icon: "el-icon-message-solid", title: "我的消息", hasInfo: true },  
33 - ], 28 + isHaveMsg: false
34 }; 29 };
35 }, 30 },
36 created() { 31 created() {
@@ -38,15 +33,19 @@ export default { @@ -38,15 +33,19 @@ export default {
38 }, 33 },
39 computed: {}, 34 computed: {},
40 mounted() {}, 35 mounted() {},
  36 + watch: {},
41 destroyed() { 37 destroyed() {
42 if (this.socket) { 38 if (this.socket) {
43 //离开路由之后断开websocket连接 39 //离开路由之后断开websocket连接
44 - this.socket.close()  
45 - this.socket = null  
46 - this.$store.commit('SET_SOCKET', this.socket) 40 + this.socket.close();
  41 + this.socket = null;
  42 + this.$store.commit("SET_SOCKET", this.socket);
47 } 43 }
48 }, 44 },
49 methods: { 45 methods: {
  46 + changeMagNum(val) {
  47 + this.isHaveMsg = val ? true : false;
  48 + },
50 initWebSocket() { 49 initWebSocket() {
51 this.socket = this.$store.getters.socket || null; 50 this.socket = this.$store.getters.socket || null;
52 if ("WebSocket" in window) { 51 if ("WebSocket" in window) {
@@ -79,7 +78,7 @@ export default { @@ -79,7 +78,7 @@ export default {
79 } 78 }
80 //消息推送(消息公告用的) 79 //消息推送(消息公告用的)
81 if (data.method == "messagePush") { 80 if (data.method == "messagePush") {
82 - console.log('messagePush', '消息推送(消息公告用的)', data); 81 + console.log("messagePush", "消息推送(消息公告用的)", data);
83 this.messageCount += data.unreadNoticeCount; 82 this.messageCount += data.unreadNoticeCount;
84 if (this.$refs.MessageList.visible) this.$refs.MessageList.init(); 83 if (this.$refs.MessageList.visible) this.$refs.MessageList.init();
85 } 84 }
@@ -98,7 +97,7 @@ export default { @@ -98,7 +97,7 @@ export default {
98 } 97 }
99 //接收对方发送的消息 98 //接收对方发送的消息
100 if (data.method == "receiveMessage") { 99 if (data.method == "receiveMessage") {
101 - console.log('receiveMessage', '接收对方发送的消息', data); 100 + console.log("receiveMessage", "接收对方发送的消息", data);
102 //判断是否打开窗口 101 //判断是否打开窗口
103 if ( 102 if (
104 this.$refs.UserList && 103 this.$refs.UserList &&
@@ -132,7 +131,7 @@ export default { @@ -132,7 +131,7 @@ export default {
132 } 131 }
133 //显示自己发送的消息 132 //显示自己发送的消息
134 if (data.method == "sendMessage") { 133 if (data.method == "sendMessage") {
135 - console.log('sendMessage', '显示自己发送的消息', data); 134 + console.log("sendMessage", "显示自己发送的消息", data);
136 if (this.$refs.UserList.$refs.NCCIm.info.id !== data.toUserId) 135 if (this.$refs.UserList.$refs.NCCIm.info.id !== data.toUserId)
137 return; 136 return;
138 //添加到客户端 137 //添加到客户端
@@ -147,7 +146,7 @@ export default { @@ -147,7 +146,7 @@ export default {
147 } 146 }
148 //消息列表 147 //消息列表
149 if (data.method == "messageList") { 148 if (data.method == "messageList") {
150 - console.log('messageList', '消息列表', data); 149 + console.log("messageList", "消息列表", data);
151 this.$refs.UserList.$refs.NCCIm.getList(data); 150 this.$refs.UserList.$refs.NCCIm.getList(data);
152 } 151 }
153 }; 152 };