Blame view

src/views/baseSystemInfo/InspectForm.vue 9.3 KB
006cc67a   monkeyhouyi   巡查上报
1
2
3
4
5
6
7
  <template>
    <el-dialog
      title="上报"
      :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"
        >
9913f656   monkeyhouyi   巡查上报
20
        <el-col :span="24">
57235647   monkeyhouyi   应用上报
21
            <el-form-item label="问题来源" prop="source">
61009cfc   monkeyhouyi   2024/8/8
22
23
24
25
26
27
28
29
              <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>
9913f656   monkeyhouyi   巡查上报
30
31
32
33
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="平台名称" prop="platformName">
57235647   monkeyhouyi   应用上报
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
              <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   巡查上报
49
50
51
52
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="平台类型" prop="platformType">
57235647   monkeyhouyi   应用上报
53
              <el-radio-group v-model="dataForm.platformType" :style="{}">
9913f656   monkeyhouyi   巡查上报
54
                <el-radio
006cc67a   monkeyhouyi   巡查上报
55
56
                  v-for="(item, index) in platformTypeOptions"
                  :key="index"
9913f656   monkeyhouyi   巡查上报
57
58
59
60
                  :label="item.Id"
                  >{{ item.FullName }}</el-radio
                >
              </el-radio-group>
006cc67a   monkeyhouyi   巡查上报
61
62
            </el-form-item>
          </el-col>
61009cfc   monkeyhouyi   2024/8/8
63
          <el-col :span="18">
006cc67a   monkeyhouyi   巡查上报
64
            <el-form-item label="问题类型" prop="questionType">
57235647   monkeyhouyi   应用上报
65
              <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange">
006cc67a   monkeyhouyi   巡查上报
66
67
68
                <el-radio
                  v-for="(item, index) in questionTypeOptions"
                  :key="index"
57235647   monkeyhouyi   应用上报
69
                  :label="item.fullName"
006cc67a   monkeyhouyi   巡查上报
70
71
                  >{{ item.fullName }}</el-radio
                >
57235647   monkeyhouyi   应用上报
72
                <el-radio label="其他">其他</el-radio>
006cc67a   monkeyhouyi   巡查上报
73
74
75
              </el-radio-group>
            </el-form-item>
          </el-col>
57235647   monkeyhouyi   应用上报
76
          <template v-if="otherQuestion">
61009cfc   monkeyhouyi   2024/8/8
77
            <el-col :span="5">
57235647   monkeyhouyi   应用上报
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
                <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
111
         
57235647   monkeyhouyi   应用上报
112
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
113
114
115
116
117
118
119
120
121
122
123
124
            <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   应用上报
125
          <el-col :span="23">
006cc67a   monkeyhouyi   巡查上报
126
127
128
129
130
131
132
133
134
135
            <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   应用上报
136
          <el-col :span="23">
61009cfc   monkeyhouyi   2024/8/8
137
138
139
140
141
142
143
144
145
146
147
148
            <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   巡查上报
149
              <NCC-UploadFz
9913f656   monkeyhouyi   巡查上报
150
                v-model="dataForm.obtainEvidence"
006cc67a   monkeyhouyi   巡查上报
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
                :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   应用上报
173
  import { getInfoList } from "@/api/baseData/info";
006cc67a   monkeyhouyi   巡查上报
174
175
176
177
178
179
180
181
  export default {
    components: {},
    props: [],
    data() {
      return {
        loading: false,
        visible: false,
        isDetail: false,
57235647   monkeyhouyi   应用上报
182
183
184
185
186
  
        name_loading: undefined,
        nameOptions: [],
        otherQuestion: false,
        showErrflag: false,
006cc67a   monkeyhouyi   巡查上报
187
        dataForm: {
9913f656   monkeyhouyi   巡查上报
188
          id: undefined,
57235647   monkeyhouyi   应用上报
189
          source: undefined,
9913f656   monkeyhouyi   巡查上报
190
          questionFrom: undefined,
006cc67a   monkeyhouyi   巡查上报
191
192
193
194
195
196
197
198
          platformName: undefined,
          platformType: undefined,
          questionType: undefined,
          questionClass: undefined,
          questionContent: undefined,
          link: undefined,
          obtainEvidence: [],
          annex: [],
57235647   monkeyhouyi   应用上报
199
200
201
          otherQuestionType: '',
          accurateDescription: undefined,
          incorrectDescription: undefined,
006cc67a   monkeyhouyi   巡查上报
202
        },
9913f656   monkeyhouyi   巡查上报
203
204
205
206
207
208
209
        rules: {
          platformType: [
            { required: true, message: "请选择平台类型", trigger: "change" },
          ],
          questionType: [
            { required: true, message: "请选择问题类型", trigger: "change" },
          ],
9913f656   monkeyhouyi   巡查上报
210
        },
006cc67a   monkeyhouyi   巡查上报
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
        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   应用上报
230
      this.loadList();
61009cfc   monkeyhouyi   2024/8/8
231
      this.getSourceOptions();
006cc67a   monkeyhouyi   巡查上报
232
233
234
235
236
      this.getplatformTypeOptions();
      this.getquestionTypeOptions();
    },
    mounted() {},
    methods: {
61009cfc   monkeyhouyi   2024/8/8
237
238
239
240
241
242
243
244
      async getSourceOptions() {
        request({
          url: `/Extend/baseinspectionreport/GetReportSourceList`,
          method: "GET",
        }).then(({data}) => {
          this.sourceOptions = data;
        })
      },
57235647   monkeyhouyi   应用上报
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
      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   巡查上报
260
261
262
263
264
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;
      },
      getquestionTypeOptions() {
        getDictionaryDataSelector("577006814432855301").then((res) => {
          this.questionTypeOptions = res.data.list;
        });
      },
57235647   monkeyhouyi   应用上报
271
272
273
274
      questionTypeChange(v) {
        this.showErrflag = Boolean(v == '错误表述');
        this.otherQuestion = Boolean(v == '其他');
      },
006cc67a   monkeyhouyi   巡查上报
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
301
302
303
304
305
306
307
308
      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>