Blame view

src/views/baseInspectionReport/Form.vue 10.4 KB
c21fb5b0   monkeyhouyi   巡查上报页面
1
  <template>
006cc67a   monkeyhouyi   巡查上报
2
3
4
5
6
7
    <el-dialog
      :title="!dataForm.id ? '新建' : isDetail ? '详情' : '编辑'"
      :close-on-click-modal="false"
      :visible.sync="visible"
      class="NCC-dialog NCC-dialog_center"
      lock-scroll
61009cfc   monkeyhouyi   2024/8/8
8
      width="60%"
006cc67a   monkeyhouyi   巡查上报
9
    >
87e6927c   monkeyhouyi   弹框样式
10
      <el-row :gutter="15" class="NCC-dialog-content">
006cc67a   monkeyhouyi   巡查上报
11
12
13
14
15
16
17
18
19
        <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">
61009cfc   monkeyhouyi   2024/8/8
33
34
35
36
37
38
39
40
              <el-radio-group v-model="dataForm.source">
                <el-radio
                  v-for="(item, index) in sourceOptions"
                  :key="index"
                  :label="item.Id"
                  >{{ item.FullName }}</el-radio
                >
              </el-radio-group>
93186f57   monkeyhouyi   前端整改页面
41
42
43
            </el-form-item>
          </el-col>
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
44
            <el-form-item label="平台名称" prop="platformName">
fcbf44a0   monkeyhouyi   1
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
              <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   巡查上报
60
61
            </el-form-item>
          </el-col>
93186f57   monkeyhouyi   前端整改页面
62
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
63
            <el-form-item label="平台类型" prop="platformType">
93186f57   monkeyhouyi   前端整改页面
64
65
              <el-radio-group v-model="dataForm.platformType" :style="{}">
                <el-radio
006cc67a   monkeyhouyi   巡查上报
66
67
                  v-for="(item, index) in platformTypeOptions"
                  :key="index"
93186f57   monkeyhouyi   前端整改页面
68
69
70
71
                  :label="item.Id"
                  >{{ item.FullName }}</el-radio
                >
              </el-radio-group>
006cc67a   monkeyhouyi   巡查上报
72
73
            </el-form-item>
          </el-col>
61009cfc   monkeyhouyi   2024/8/8
74
          <el-col :span="18">
006cc67a   monkeyhouyi   巡查上报
75
            <el-form-item label="问题类型" prop="questionType">
fcbf44a0   monkeyhouyi   1
76
              <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange">
006cc67a   monkeyhouyi   巡查上报
77
78
79
                <el-radio
                  v-for="(item, index) in questionTypeOptions"
                  :key="index"
fcbf44a0   monkeyhouyi   1
80
                  :label="item.fullName"
006cc67a   monkeyhouyi   巡查上报
81
82
                  >{{ item.fullName }}</el-radio
                >
fcbf44a0   monkeyhouyi   1
83
                <el-radio label="其他">其他</el-radio>
006cc67a   monkeyhouyi   巡查上报
84
85
86
              </el-radio-group>
            </el-form-item>
          </el-col>
fcbf44a0   monkeyhouyi   1
87
          <template v-if="otherQuestion">
61009cfc   monkeyhouyi   2024/8/8
88
            <el-col :span="5">
fcbf44a0   monkeyhouyi   1
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
121
                <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>
61009cfc   monkeyhouyi   2024/8/8
122
         
93186f57   monkeyhouyi   前端整改页面
123
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
124
125
126
127
128
129
130
131
132
133
134
135
            <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   前端整改页面
136
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
137
138
139
140
141
142
143
144
145
146
            <el-form-item label="有害链接" prop="link">
              <el-input
                v-model="dataForm.link"
                placeholder="请输入"
                clearable
                :style="{ width: '100%' }"
              >
              </el-input>
            </el-form-item>
          </el-col>
93186f57   monkeyhouyi   前端整改页面
147
          <el-col :span="23">
61009cfc   monkeyhouyi   2024/8/8
148
149
150
151
152
153
154
155
156
157
158
159
            <el-form-item label="关键词" prop="questionClass">
              <el-input
                v-model="dataForm.questionClass"
                placeholder="请输入关键词"
                clearable
                :style="{ width: '100%' }"
              >
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="23">
            <el-form-item label="附件" prop="obtainEvidence">
006cc67a   monkeyhouyi   巡查上报
160
              <NCC-UploadFz
93186f57   monkeyhouyi   前端整改页面
161
                v-model="dataForm.obtainEvidence"
006cc67a   monkeyhouyi   巡查上报
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
                :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   巡查上报页面
179
180
  </template>
  <script>
006cc67a   monkeyhouyi   巡查上报
181
182
183
  import request from "@/utils/request";
  import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
  import { getDetail, addForm, updataForm } from "@/api/systemData/dataInterface";
fcbf44a0   monkeyhouyi   1
184
  import { getInfoList } from "@/api/baseData/info";
006cc67a   monkeyhouyi   巡查上报
185
186
187
188
189
190
191
  export default {
    components: {},
    props: [],
    data() {
      return {
        loading: false,
        visible: false,
fcbf44a0   monkeyhouyi   1
192
        name_loading: false,
006cc67a   monkeyhouyi   巡查上报
193
194
        isDetail: false,
        dataForm: {
006cc67a   monkeyhouyi   巡查上报
195
          id: undefined,
fcbf44a0   monkeyhouyi   1
196
          source: undefined,
006cc67a   monkeyhouyi   巡查上报
197
198
199
200
201
202
          platformName: undefined,
          platformType: undefined,
          questionType: undefined,
          questionClass: undefined,
          questionContent: undefined,
          link: undefined,
fcbf44a0   monkeyhouyi   1
203
204
          accurateDescription: undefined,
          incorrectDescription: undefined,
006cc67a   monkeyhouyi   巡查上报
205
206
          obtainEvidence: [],
          annex: [],
fcbf44a0   monkeyhouyi   1
207
          otherQuestionType: undefined
006cc67a   monkeyhouyi   巡查上报
208
        },
93186f57   monkeyhouyi   前端整改页面
209
210
211
212
213
214
215
        rules: {
          platformType: [
            { required: true, message: "请选择平台类型", trigger: "change" },
          ],
          questionType: [
            { required: true, message: "请选择问题类型", trigger: "change" },
          ],
93186f57   monkeyhouyi   前端整改页面
216
        },
006cc67a   monkeyhouyi   巡查上报
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" },
        ],
fcbf44a0   monkeyhouyi   1
231
232
233
        showErrflag: false,
        otherQuestion: false,
        nameOptions: [],
006cc67a   monkeyhouyi   巡查上报
234
235
236
237
238
      };
    },
    computed: {},
    watch: {},
    created() {
fcbf44a0   monkeyhouyi   1
239
      this.loadList();
61009cfc   monkeyhouyi   2024/8/8
240
      this.getSourceOptions();
006cc67a   monkeyhouyi   巡查上报
241
242
243
244
245
      this.getplatformTypeOptions();
      this.getquestionTypeOptions();
    },
    mounted() {},
    methods: {
fcbf44a0   monkeyhouyi   1
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
      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   巡查上报
265
266
267
268
269
270
      async getplatformTypeOptions() {
        let list = this.$store.state.meta.system;
        !list &&
          (list = await this.$store.dispatch("getTypeListByCode", "system"));
        this.platformTypeOptions = list;
      },
61009cfc   monkeyhouyi   2024/8/8
271
272
273
274
275
276
277
278
      async getSourceOptions() {
        request({
          url: `/Extend/baseinspectionreport/GetReportSourceList`,
          method: "GET",
        }).then(({data}) => {
          this.sourceOptions = data;
        })
      },
006cc67a   monkeyhouyi   巡查上报
279
280
281
282
283
284
285
286
287
288
289
      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
290
291
        this.otherQuestion = false;
        this.showErrflag = false;
006cc67a   monkeyhouyi   巡查上报
292
293
294
295
296
297
        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
298
299
300
301
            if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) {
              this.dataForm.otherQuestionType = res.data.questionType;
              this.dataForm.questionType = '其他';
            }
006cc67a   monkeyhouyi   巡查上报
302
303
            if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = [];
            if (!this.dataForm.annex) this.dataForm.annex = [];
fcbf44a0   monkeyhouyi   1
304
305
306
            this.$nextTick(() => {
              this.questionTypeChange(this.dataForm.questionType);
            })
006cc67a   monkeyhouyi   巡查上报
307
308
309
          }
        });
      },
fcbf44a0   monkeyhouyi   1
310
311
312
313
314
315
316
      getQuestionTypeName() {
        if(this.dataForm.questionType == '其他') {
          return this.dataForm.otherQuestionType;
        } else {
          return this.dataForm.questionType;
        }
      },
006cc67a   monkeyhouyi   巡查上报
317
318
319
      dataFormSubmit() {
        this.$refs["elForm"].validate(async (valid) => {
          if (valid) {
fcbf44a0   monkeyhouyi   1
320
            this.dataForm.questionType = this.getQuestionTypeName();
006cc67a   monkeyhouyi   巡查上报
321
322
323
324
325
326
327
328
329
            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   巡查上报页面
330
              },
006cc67a   monkeyhouyi   巡查上报
331
332
333
334
335
336
            });
          }
        });
      },
    },
  };
c21fb5b0   monkeyhouyi   巡查上报页面
337
  </script>