Blame view

src/views/baseInspectionReport/Form.vue 10.2 KB
c21fb5b0   monkeyhouyi   巡查上报页面
1
  <template>
006cc67a   monkeyhouyi   巡查上报
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    <el-dialog
      :title="!dataForm.id ? '新建' : isDetail ? '详情' : '编辑'"
      :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"
        >
93186f57   monkeyhouyi   前端整改页面
20
          <el-col :span="23" v-if="false">
006cc67a   monkeyhouyi   巡查上报
21
22
23
24
25
26
27
28
29
30
            <el-form-item label="主键" prop="id">
              <el-input
                v-model="dataForm.id"
                placeholder="请输入"
                clearable
                :style="{ width: '100%' }"
              >
              </el-input>
            </el-form-item>
          </el-col>
93186f57   monkeyhouyi   前端整改页面
31
          <el-col :span="23">
fcbf44a0   monkeyhouyi   1
32
            <el-form-item label="问题来源" prop="source">
93186f57   monkeyhouyi   前端整改页面
33
              <el-input
fcbf44a0   monkeyhouyi   1
34
                v-model="dataForm.source"
93186f57   monkeyhouyi   前端整改页面
35
36
37
38
39
40
41
42
                placeholder="请输入问题来源"
                clearable
                :style="{ width: '100%' }"
              >
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
43
            <el-form-item label="平台名称" prop="platformName">
fcbf44a0   monkeyhouyi   1
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
              <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   巡查上报
59
60
            </el-form-item>
          </el-col>
93186f57   monkeyhouyi   前端整改页面
61
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
62
            <el-form-item label="平台类型" prop="platformType">
93186f57   monkeyhouyi   前端整改页面
63
64
              <el-radio-group v-model="dataForm.platformType" :style="{}">
                <el-radio
006cc67a   monkeyhouyi   巡查上报
65
66
                  v-for="(item, index) in platformTypeOptions"
                  :key="index"
93186f57   monkeyhouyi   前端整改页面
67
68
69
70
                  :label="item.Id"
                  >{{ item.FullName }}</el-radio
                >
              </el-radio-group>
006cc67a   monkeyhouyi   巡查上报
71
72
            </el-form-item>
          </el-col>
fcbf44a0   monkeyhouyi   1
73
          <el-col :span="13">
006cc67a   monkeyhouyi   巡查上报
74
            <el-form-item label="问题类型" prop="questionType">
fcbf44a0   monkeyhouyi   1
75
              <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange">
006cc67a   monkeyhouyi   巡查上报
76
77
78
                <el-radio
                  v-for="(item, index) in questionTypeOptions"
                  :key="index"
fcbf44a0   monkeyhouyi   1
79
                  :label="item.fullName"
006cc67a   monkeyhouyi   巡查上报
80
81
                  >{{ item.fullName }}</el-radio
                >
fcbf44a0   monkeyhouyi   1
82
                <el-radio label="其他">其他</el-radio>
006cc67a   monkeyhouyi   巡查上报
83
84
85
              </el-radio-group>
            </el-form-item>
          </el-col>
fcbf44a0   monkeyhouyi   1
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
111
112
113
114
115
116
117
118
119
120
          <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>
93186f57   monkeyhouyi   前端整改页面
121
122
          <el-col :span="23">
            <el-form-item label="关键词" prop="questionClass">
5a14192c   monkeyhouyi   1
123
              <el-input
006cc67a   monkeyhouyi   巡查上报
124
                v-model="dataForm.questionClass"
5a14192c   monkeyhouyi   1
125
                placeholder="请输入关键词"
006cc67a   monkeyhouyi   巡查上报
126
127
128
                clearable
                :style="{ width: '100%' }"
              >
5a14192c   monkeyhouyi   1
129
              </el-input>
006cc67a   monkeyhouyi   巡查上报
130
131
            </el-form-item>
          </el-col>
93186f57   monkeyhouyi   前端整改页面
132
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
133
134
135
136
137
138
139
140
141
142
143
144
            <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>
93186f57   monkeyhouyi   前端整改页面
145
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
146
147
148
149
150
151
152
153
154
155
            <el-form-item label="有害链接" prop="link">
              <el-input
                v-model="dataForm.link"
                placeholder="请输入"
                clearable
                :style="{ width: '100%' }"
              >
              </el-input>
            </el-form-item>
          </el-col>
fcbf44a0   monkeyhouyi   1
156
  
93186f57   monkeyhouyi   前端整改页面
157
158
          <el-col :span="23">
            <el-form-item label="取证内容" prop="obtainEvidence">
006cc67a   monkeyhouyi   巡查上报
159
              <NCC-UploadFz
93186f57   monkeyhouyi   前端整改页面
160
                v-model="dataForm.obtainEvidence"
006cc67a   monkeyhouyi   巡查上报
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
                :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>
c21fb5b0   monkeyhouyi   巡查上报页面
178
179
  </template>
  <script>
006cc67a   monkeyhouyi   巡查上报
180
181
182
  import request from "@/utils/request";
  import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
  import { getDetail, addForm, updataForm } from "@/api/systemData/dataInterface";
fcbf44a0   monkeyhouyi   1
183
  import { getInfoList } from "@/api/baseData/info";
006cc67a   monkeyhouyi   巡查上报
184
185
186
187
188
189
190
  export default {
    components: {},
    props: [],
    data() {
      return {
        loading: false,
        visible: false,
fcbf44a0   monkeyhouyi   1
191
        name_loading: false,
006cc67a   monkeyhouyi   巡查上报
192
193
        isDetail: false,
        dataForm: {
006cc67a   monkeyhouyi   巡查上报
194
          id: undefined,
fcbf44a0   monkeyhouyi   1
195
          source: undefined,
006cc67a   monkeyhouyi   巡查上报
196
197
198
199
200
201
          platformName: undefined,
          platformType: undefined,
          questionType: undefined,
          questionClass: undefined,
          questionContent: undefined,
          link: undefined,
fcbf44a0   monkeyhouyi   1
202
203
          accurateDescription: undefined,
          incorrectDescription: undefined,
006cc67a   monkeyhouyi   巡查上报
204
205
          obtainEvidence: [],
          annex: [],
fcbf44a0   monkeyhouyi   1
206
          otherQuestionType: undefined
006cc67a   monkeyhouyi   巡查上报
207
        },
93186f57   monkeyhouyi   前端整改页面
208
209
210
211
212
213
214
215
216
217
218
        rules: {
          platformType: [
            { required: true, message: "请选择平台类型", trigger: "change" },
          ],
          questionType: [
            { required: true, message: "请选择问题类型", trigger: "change" },
          ],
          questionClass: [
            { required: true, message: "请选择关键词", trigger: "change" },
          ],
        },
006cc67a   monkeyhouyi   巡查上报
219
220
221
222
223
224
225
226
227
228
229
230
231
232
        sourceOptions: [
          { fullName: "市网信办线索", id: "市网信办线索" },
          { fullName: "自主巡查发现", id: "自主巡查发现" },
        ],
        platformTypeOptions: [],
        questionTypeOptions: [],
        questionClassOptions: [
          { fullName: "选项一", id: "1" },
          { fullName: "选项二", id: "2" },
        ],
        stageOptions: [
          { fullName: "选项一", id: "1" },
          { fullName: "选项二", id: "2" },
        ],
fcbf44a0   monkeyhouyi   1
233
234
235
        showErrflag: false,
        otherQuestion: false,
        nameOptions: [],
006cc67a   monkeyhouyi   巡查上报
236
237
238
239
240
      };
    },
    computed: {},
    watch: {},
    created() {
fcbf44a0   monkeyhouyi   1
241
      this.loadList();
006cc67a   monkeyhouyi   巡查上报
242
243
244
245
246
      this.getplatformTypeOptions();
      this.getquestionTypeOptions();
    },
    mounted() {},
    methods: {
fcbf44a0   monkeyhouyi   1
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
      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;
        });
      },
      questionTypeChange(v) {
        this.showErrflag = Boolean(v == '错误表述');
        this.otherQuestion = Boolean(v == '其他');
      },
006cc67a   monkeyhouyi   巡查上报
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
      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;
        });
      },
      goBack() {
        this.$emit("refresh");
      },
      init(id, isDetail) {
        this.dataForm.id = id || 0;
        this.visible = true;
fcbf44a0   monkeyhouyi   1
283
284
        this.otherQuestion = false;
        this.showErrflag = false;
006cc67a   monkeyhouyi   巡查上报
285
286
287
288
289
290
        this.isDetail = isDetail || false;
        this.$nextTick(async () => {
          this.$refs["elForm"].resetFields();
          if (this.dataForm.id) {
            let res = await getDetail(this.dataForm.id);
            this.dataForm = res.data;
fcbf44a0   monkeyhouyi   1
291
292
293
294
            if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) {
              this.dataForm.otherQuestionType = res.data.questionType;
              this.dataForm.questionType = '其他';
            }
006cc67a   monkeyhouyi   巡查上报
295
296
            if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = [];
            if (!this.dataForm.annex) this.dataForm.annex = [];
fcbf44a0   monkeyhouyi   1
297
298
299
            this.$nextTick(() => {
              this.questionTypeChange(this.dataForm.questionType);
            })
006cc67a   monkeyhouyi   巡查上报
300
301
302
          }
        });
      },
fcbf44a0   monkeyhouyi   1
303
304
305
306
307
308
309
      getQuestionTypeName() {
        if(this.dataForm.questionType == '其他') {
          return this.dataForm.otherQuestionType;
        } else {
          return this.dataForm.questionType;
        }
      },
006cc67a   monkeyhouyi   巡查上报
310
311
312
      dataFormSubmit() {
        this.$refs["elForm"].validate(async (valid) => {
          if (valid) {
fcbf44a0   monkeyhouyi   1
313
            this.dataForm.questionType = this.getQuestionTypeName();
006cc67a   monkeyhouyi   巡查上报
314
315
316
317
318
319
320
321
322
            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);
c21fb5b0   monkeyhouyi   巡查上报页面
323
              },
006cc67a   monkeyhouyi   巡查上报
324
325
326
327
328
329
            });
          }
        });
      },
    },
  };
c21fb5b0   monkeyhouyi   巡查上报页面
330
  </script>