Blame view

src/views/baseSystemInfo/InspectForm.vue 9.08 KB
006cc67a   monkeyhouyi   巡查上报
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  <template>
    <el-dialog
      title="上报"
      :close-on-click-modal="false"
      :visible.sync="visible"
      class="NCC-dialog NCC-dialog_center"
      lock-scroll
      width="70%"
    >
      <el-row :gutter="15" class="">
        <el-form
          ref="elForm"
          :model="dataForm"
          size="small"
          label-width="100px"
          label-position="right"
          :disabled="!!isDetail"
          :rules="rules"
        >
9913f656   monkeyhouyi   巡查上报
20
        <el-col :span="24">
57235647   monkeyhouyi   应用上报
21
            <el-form-item label="问题来源" prop="source">
9913f656   monkeyhouyi   巡查上报
22
              <el-input
57235647   monkeyhouyi   应用上报
23
                v-model="dataForm.source"
9913f656   monkeyhouyi   巡查上报
24
                placeholder="请输入问题来源"
006cc67a   monkeyhouyi   巡查上报
25
26
                clearable
                :style="{ width: '100%' }"
006cc67a   monkeyhouyi   巡查上报
27
              >
9913f656   monkeyhouyi   巡查上报
28
29
30
31
32
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="平台名称" prop="platformName">
57235647   monkeyhouyi   应用上报
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
              <el-select
                v-model="dataForm.platformName"
                filterable
                remote
                reserve-keyword
                placeholder="请输入平台名称"
                :remote-method="loadList"
                :loading="name_loading">
                <el-option
                  v-for="item in nameOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
006cc67a   monkeyhouyi   巡查上报
48
49
50
51
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="平台类型" prop="platformType">
57235647   monkeyhouyi   应用上报
52
              <el-radio-group v-model="dataForm.platformType" :style="{}">
9913f656   monkeyhouyi   巡查上报
53
                <el-radio
006cc67a   monkeyhouyi   巡查上报
54
55
                  v-for="(item, index) in platformTypeOptions"
                  :key="index"
9913f656   monkeyhouyi   巡查上报
56
57
58
59
                  :label="item.Id"
                  >{{ item.FullName }}</el-radio
                >
              </el-radio-group>
006cc67a   monkeyhouyi   巡查上报
60
61
            </el-form-item>
          </el-col>
57235647   monkeyhouyi   应用上报
62
          <el-col :span="13">
006cc67a   monkeyhouyi   巡查上报
63
            <el-form-item label="问题类型" prop="questionType">
57235647   monkeyhouyi   应用上报
64
              <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange">
006cc67a   monkeyhouyi   巡查上报
65
66
67
                <el-radio
                  v-for="(item, index) in questionTypeOptions"
                  :key="index"
57235647   monkeyhouyi   应用上报
68
                  :label="item.fullName"
006cc67a   monkeyhouyi   巡查上报
69
70
                  >{{ item.fullName }}</el-radio
                >
57235647   monkeyhouyi   应用上报
71
                <el-radio label="其他">其他</el-radio>
006cc67a   monkeyhouyi   巡查上报
72
73
74
              </el-radio-group>
            </el-form-item>
          </el-col>
57235647   monkeyhouyi   应用上报
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
          <template v-if="otherQuestion">
            <el-col :span="10">
                <el-input
                  v-model="dataForm.otherQuestionType"
                  placeholder="请输入问题类型"
                  clearable
                  :style="{ width: '100%' }"
                >
                </el-input>
            </el-col>
          </template>
          <template v-if="showErrflag">
            <el-col :span="12">
              <el-form-item label="正确描述" prop="accurateDescription">
                <el-input
                  v-model="dataForm.accurateDescription"
                  placeholder="请输入正确描述"
                  clearable
                  :style="{ width: '100%' }"
                >
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="11">
              <el-form-item label="错误描述" prop="incorrectDescription">
                <el-input
                  v-model="dataForm.incorrectDescription"
                  placeholder="请输入错误描述"
                  clearable
                  :style="{ width: '100%' }"
                >
                </el-input>
              </el-form-item>
            </el-col>
          </template>
          <el-col :span="23">
9913f656   monkeyhouyi   巡查上报
111
            <el-form-item label="关键词" prop="questionClass">
57235647   monkeyhouyi   应用上报
112
              <el-input
006cc67a   monkeyhouyi   巡查上报
113
                v-model="dataForm.questionClass"
57235647   monkeyhouyi   应用上报
114
                placeholder="请输入关键词"
006cc67a   monkeyhouyi   巡查上报
115
116
117
                clearable
                :style="{ width: '100%' }"
              >
57235647   monkeyhouyi   应用上报
118
              </el-input>
006cc67a   monkeyhouyi   巡查上报
119
120
            </el-form-item>
          </el-col>
57235647   monkeyhouyi   应用上报
121
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
122
123
124
125
126
127
128
129
130
131
132
133
            <el-form-item label="问题内容" prop="questionContent">
              <el-input
                v-model="dataForm.questionContent"
                placeholder="请输入"
                show-word-limit
                :style="{ width: '100%' }"
                type="textarea"
                :autosize="{ minRows: 4, maxRows: 4 }"
              >
              </el-input>
            </el-form-item>
          </el-col>
57235647   monkeyhouyi   应用上报
134
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
135
136
137
138
139
140
141
142
143
144
            <el-form-item label="有害链接" prop="link">
              <el-input
                v-model="dataForm.link"
                placeholder="请输入"
                clearable
                :style="{ width: '100%' }"
              >
              </el-input>
            </el-form-item>
          </el-col>
57235647   monkeyhouyi   应用上报
145
          <el-col :span="23">
9913f656   monkeyhouyi   巡查上报
146
            <el-form-item label="取证内容" prop="obtainEvidence">
006cc67a   monkeyhouyi   巡查上报
147
              <NCC-UploadFz
9913f656   monkeyhouyi   巡查上报
148
                v-model="dataForm.obtainEvidence"
006cc67a   monkeyhouyi   巡查上报
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
                :fileSize="5"
                sizeUnit="MB"
                :limit="9"
                buttonText="点击上传"
              >
              </NCC-UploadFz>
            </el-form-item>
          </el-col>
        </el-form>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-button @click="visible = false">取 消</el-button>
        <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"
          >确 定</el-button
        >
      </span>
    </el-dialog>
  </template>
  <script>
  import request from "@/utils/request";
  import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
  import { getDetail, addForm, updataForm } from "@/api/systemData/dataInterface";
57235647   monkeyhouyi   应用上报
171
  import { getInfoList } from "@/api/baseData/info";
006cc67a   monkeyhouyi   巡查上报
172
173
174
175
176
177
178
179
  export default {
    components: {},
    props: [],
    data() {
      return {
        loading: false,
        visible: false,
        isDetail: false,
57235647   monkeyhouyi   应用上报
180
181
182
183
184
  
        name_loading: undefined,
        nameOptions: [],
        otherQuestion: false,
        showErrflag: false,
006cc67a   monkeyhouyi   巡查上报
185
        dataForm: {
9913f656   monkeyhouyi   巡查上报
186
          id: undefined,
57235647   monkeyhouyi   应用上报
187
          source: undefined,
9913f656   monkeyhouyi   巡查上报
188
          questionFrom: undefined,
006cc67a   monkeyhouyi   巡查上报
189
190
191
192
193
194
195
196
          platformName: undefined,
          platformType: undefined,
          questionType: undefined,
          questionClass: undefined,
          questionContent: undefined,
          link: undefined,
          obtainEvidence: [],
          annex: [],
57235647   monkeyhouyi   应用上报
197
198
199
          otherQuestionType: '',
          accurateDescription: undefined,
          incorrectDescription: undefined,
006cc67a   monkeyhouyi   巡查上报
200
        },
9913f656   monkeyhouyi   巡查上报
201
202
203
204
205
206
207
208
209
210
211
        rules: {
          platformType: [
            { required: true, message: "请选择平台类型", trigger: "change" },
          ],
          questionType: [
            { required: true, message: "请选择问题类型", trigger: "change" },
          ],
          questionClass: [
            { required: true, message: "请选择关键词", trigger: "change" },
          ],
        },
006cc67a   monkeyhouyi   巡查上报
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
        sourceOptions: [
          { fullName: "市网信办线索", id: "市网信办线索" },
          { fullName: "自主巡查发现", id: "自主巡查发现" },
        ],
        platformTypeOptions: [],
        questionTypeOptions: [],
        questionClassOptions: [
          { fullName: "选项一", id: "1" },
          { fullName: "选项二", id: "2" },
        ],
        stageOptions: [
          { fullName: "选项一", id: "1" },
          { fullName: "选项二", id: "2" },
        ],
      };
    },
    computed: {},
    watch: {},
    created() {
57235647   monkeyhouyi   应用上报
231
      this.loadList();
006cc67a   monkeyhouyi   巡查上报
232
233
234
235
236
      this.getplatformTypeOptions();
      this.getquestionTypeOptions();
    },
    mounted() {},
    methods: {
57235647   monkeyhouyi   应用上报
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
      loadList(query) {
        this.name_loading = true;
        getInfoList({pageIndex: 1, pageSize: 100, keyword: query }).then(({ data }) => {
          let list = [];
          data.list.length &&
            data.list.forEach((item) => {
              list.push({
                label: item.SysytemInfo.SystemName,
                value: item.SysytemInfo.Id,
              });
            });
          this.nameOptions = list;
          this.name_loading = false;
        });
      },
006cc67a   monkeyhouyi   巡查上报
252
253
254
255
256
257
258
259
260
261
262
      async getplatformTypeOptions() {
        let list = this.$store.state.meta.system;
        !list &&
          (list = await this.$store.dispatch("getTypeListByCode", "system"));
        this.platformTypeOptions = list;
      },
      getquestionTypeOptions() {
        getDictionaryDataSelector("577006814432855301").then((res) => {
          this.questionTypeOptions = res.data.list;
        });
      },
57235647   monkeyhouyi   应用上报
263
264
265
266
      questionTypeChange(v) {
        this.showErrflag = Boolean(v == '错误表述');
        this.otherQuestion = Boolean(v == '其他');
      },
006cc67a   monkeyhouyi   巡查上报
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
      goBack() {
        this.$emit("refresh");
      },
      init(row, isDetail) {
        this.visible = true;
        this.isDetail = isDetail || false;
        this.$nextTick(async () => {
          this.$refs["elForm"].resetFields();
          this.dataForm.platformName = row.Id;
          this.dataForm.platformType = row.systemType;
          this.dataForm.obtainEvidence = [];
          this.dataForm.annex = [];
        });
      },
      dataFormSubmit() {
        this.$refs["elForm"].validate(async (valid) => {
          if (valid) {
            let res = !this.dataForm.id
              ? await addForm(this.dataForm)
              : await updataForm(this.dataForm);
            this.$message({
              message: res.msg,
              type: "success",
              duration: 1000,
              onClose: () => {
                (this.visible = false), this.$emit("refresh", true);
              },
            });
          }
        });
      },
    },
  };
  </script>