Commit 006cc67aa111e4ef604c78ecb33f2bfd6824d0dd

Authored by monkeyhouyi
1 parent 51ff8a48

巡查上报

src/views/DisposalSuggestions/Form.vue
... ... @@ -7,59 +7,46 @@
7 7 <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules" v-loading="loading">
8 8 <el-col :span="24" v-if="false" >
9 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 11 </el-input>
12 12 </el-form-item>
13 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 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 17 </el-input>
25 18 </el-form-item>
26 19 </el-col>
27   - <el-col :span="24">
  20 + <el-col :span="12">
28 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 23 <el-option v-for="(item, index) in platformTypeOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>
31 24 </el-select>
32 25 </el-form-item>
33 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 28 <el-form-item label="问题类型" prop="questionType">
42 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 31 </el-radio-group>
45 32 </el-form-item>
46 33 </el-col>
47   - <el-col :span="24">
  34 + <el-col :span="12">
48 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 37 <el-option v-for="(item, index) in questionClassOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>
51 38 </el-select>
52 39 </el-form-item>
53 40 </el-col>
54 41 <el-col :span="24">
55 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 44 </el-input>
58 45 </el-form-item>
59 46 </el-col>
60 47 <el-col :span="24">
61 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 50 </el-input>
64 51 </el-form-item>
65 52 </el-col>
... ... @@ -75,43 +62,6 @@
75 62 </NCC-UploadFz>
76 63 </el-form-item>
77 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 65 </el-form>
116 66 <el-col :span="24" class="form_title">
117 67 判研建议
... ... @@ -156,24 +106,15 @@
156 106 visible: false,
157 107 isDetail: true,
158 108 dataForm: {
159   - id:'',
160 109 id:undefined,
161   - source:undefined,
162 110 platformName:undefined,
163 111 platformType:undefined,
164   - department:undefined,
165 112 questionType:undefined,
166 113 questionClass:undefined,
167 114 questionContent:undefined,
168 115 link:undefined,
169 116 obtainEvidence:[],
170 117 annex:[],
171   - disposalSuggestions:undefined,
172   - stage:undefined,
173   - creatorUserId:undefined,
174   - creatorTime:undefined,
175   - lastModifyUserId:undefined,
176   - lastModifyTime:undefined,
177 118 },
178 119 rules: {
179 120 },
... ...
src/views/baseInspectionReport/Form.vue
1 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 146 </template>
120 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 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 131 <el-table-column label="操作" width="200">
132 132 <!-- 查看,修改,归属地变更,上报 -->
133 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 137 <infoForm
135 138 class="btn_dialog"
136 139 type="edit"
... ... @@ -139,12 +142,6 @@
139 142 >
140 143 <el-button size="mini" type="text">修改</el-button>
141 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 145 <el-button
149 146 size="mini"
150 147 type="text"
... ... @@ -154,7 +151,7 @@
154 151 <el-button
155 152 size="mini"
156 153 type="text"
157   - @click="toDetail(scope.row)"
  154 + @click="toInspection(scope.row)"
158 155 >上报</el-button
159 156 >
160 157 </template>
... ... @@ -207,6 +204,11 @@
207 204 <el-button type="primary" @click="areaSubmit">确 定</el-button>
208 205 </span>
209 206 </el-dialog>
  207 + <InspectionForm
  208 + v-if="InspectionFormVisible"
  209 + ref="InspectionForm"
  210 + @refresh="refresh"
  211 + />
210 212 </div>
211 213 </div>
212 214 </div>
... ... @@ -216,9 +218,14 @@
216 218 import { getInfoList } from "@/api/baseData/info";
217 219 import { applnyChageArea } from "@/api/baseData/info";
218 220 import infoMixin from "@/mixins/info";
  221 +import InspectionForm from "./InspectForm.vue";
  222 +
219 223 export default {
220 224 name: "SystemInfo",
221 225 mixins: [infoMixin],
  226 + components: {
  227 + InspectionForm,
  228 + },
222 229 data() {
223 230 return {
224 231 loading: false,
... ... @@ -254,6 +261,9 @@ export default {
254 261 },
255 262 },
256 263 activeSystemId: "",
  264 +
  265 + // 上报
  266 + InspectionFormVisible: false,
257 267 };
258 268 },
259 269 created() {
... ... @@ -275,6 +285,19 @@ export default {
275 285 this.query.systemClass = "";
276 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 301 search() {
279 302 this.listQuery = {
280 303 pageIndex: 1,
... ... @@ -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 349 async toChangeArea(row) {
318 350 this.areaChangeVisible = true;
319 351 this.areaDialogLoading = true;
... ...
src/views/homePage/HomePage.vue
... ... @@ -27,7 +27,7 @@
27 27 >
28 28 </div>
29 29 <div class="info">
30   - <router-view></router-view>
  30 + <router-view ref="info"></router-view>
31 31 </div>
32 32 </div>
33 33 <div class="news">
... ... @@ -53,8 +53,12 @@ export default {
53 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 62 watch: {
59 63 // $route: {
60 64 // handler: function (route) {
... ... @@ -66,10 +70,14 @@ export default {
66 70 computed: {},
67 71 methods: {
68 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 3 <div class="news-title">
4 4 <div class="left">我的消息</div>
5 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 7 </div>
8 8 </div>
9 9 <div class="infinite-list-wrapper" style="overflow: auto">
... ... @@ -18,7 +18,9 @@
18 18 <!-- <p>这个应用应该归属到青羊区,不在金牛区的管辖范围内。</p> -->
19 19 <div class="item-info">
20 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 24 </div>
23 25 </li>
24 26 </ul>
... ... @@ -61,11 +63,17 @@ export default {
61 63 this.loading = true;
62 64 getMessageList(this.searchList).then(({data}) => {
63 65 this.messageList = this.messageList.concat(data.list);
64   - console.log(this.messageList);
65 66 this.total = data.pagination.total;
66 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 79 </script>
... ...
src/views/homePage/components/news/index.vue
... ... @@ -4,16 +4,14 @@
4 4 placement="left"
5 5 width="300"
6 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 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 13 </div>
16   - <div class="nav-title">{{ item.title }}</div>
  14 + <div class="nav-title">我的消息</div>
17 15 </div>
18 16 </el-popover>
19 17 </div>
... ... @@ -27,10 +25,7 @@ export default {
27 25 components: { NewsDialog },
28 26 data() {
29 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 31 created() {
... ... @@ -38,15 +33,19 @@ export default {
38 33 },
39 34 computed: {},
40 35 mounted() {},
  36 + watch: {},
41 37 destroyed() {
42 38 if (this.socket) {
43 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 45 methods: {
  46 + changeMagNum(val) {
  47 + this.isHaveMsg = val ? true : false;
  48 + },
50 49 initWebSocket() {
51 50 this.socket = this.$store.getters.socket || null;
52 51 if ("WebSocket" in window) {
... ... @@ -79,7 +78,7 @@ export default {
79 78 }
80 79 //消息推送(消息公告用的)
81 80 if (data.method == "messagePush") {
82   - console.log('messagePush', '消息推送(消息公告用的)', data);
  81 + console.log("messagePush", "消息推送(消息公告用的)", data);
83 82 this.messageCount += data.unreadNoticeCount;
84 83 if (this.$refs.MessageList.visible) this.$refs.MessageList.init();
85 84 }
... ... @@ -98,7 +97,7 @@ export default {
98 97 }
99 98 //接收对方发送的消息
100 99 if (data.method == "receiveMessage") {
101   - console.log('receiveMessage', '接收对方发送的消息', data);
  100 + console.log("receiveMessage", "接收对方发送的消息", data);
102 101 //判断是否打开窗口
103 102 if (
104 103 this.$refs.UserList &&
... ... @@ -132,7 +131,7 @@ export default {
132 131 }
133 132 //显示自己发送的消息
134 133 if (data.method == "sendMessage") {
135   - console.log('sendMessage', '显示自己发送的消息', data);
  134 + console.log("sendMessage", "显示自己发送的消息", data);
136 135 if (this.$refs.UserList.$refs.NCCIm.info.id !== data.toUserId)
137 136 return;
138 137 //添加到客户端
... ... @@ -147,7 +146,7 @@ export default {
147 146 }
148 147 //消息列表
149 148 if (data.method == "messageList") {
150   - console.log('messageList', '消息列表', data);
  149 + console.log("messageList", "消息列表", data);
151 150 this.$refs.UserList.$refs.NCCIm.getList(data);
152 151 }
153 152 };
... ...