Blame view

src/views/baseCaseHandling/Form.vue 13.1 KB
4424f41c   monkeyhouyi   网信执法、清单管理静态页面
1
  <template>
61009cfc   monkeyhouyi   2024/8/8
2
    <el-dialog
4614132f   monkeyhouyi   列表查询,案件处理
3
      :title="!dataForm.id ? '新建' : isDetail ? '详情' : formType ? '案件处理' : '编辑'"
61009cfc   monkeyhouyi   2024/8/8
4
5
6
7
8
9
      :close-on-click-modal="false"
      :visible.sync="visible"
      class="NCC-dialog NCC-dialog_center"
      lock-scroll
      width="50%"
      v-loading="loading"
73755355   monkeyhouyi   优化
10
      :modal="false"
61009cfc   monkeyhouyi   2024/8/8
11
    >
73755355   monkeyhouyi   优化
12
      <el-row :gutter="15" class="NCC-dialog-content" v-if="!isDetail">
61009cfc   monkeyhouyi   2024/8/8
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        <el-form
          ref="elForm"
          :model="dataForm"
          size="small"
          label-width="110px"
          label-position="right"
          :disabled="!!isDetail"
          :rules="rules"
        >
          <el-col :span="24" v-if="false">
            <el-form-item label="主键" prop="id">
              <el-input v-model="dataForm.id" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="24">
73755355   monkeyhouyi   优化
28
            <el-form-item label="案件名称" prop="systemName">
61009cfc   monkeyhouyi   2024/8/8
29
  			      <el-select
73755355   monkeyhouyi   优化
30
                ref="select"
61009cfc   monkeyhouyi   2024/8/8
31
32
33
34
   			        v-model="dataForm.systemName"
   			        filterable
   			        remote
   			        reserve-keyword
73755355   monkeyhouyi   优化
35
36
37
38
   			        placeholder="请输入案件名称"
   			        @blur.native.capture="selectBlur"
                @visible-change="visibleNameChange"
                @change="(val) => platformNameChange(val, 'change')"
93adad84   monkeyhouyi   网信执法功能添加
39
                :disabled="formType"
61009cfc   monkeyhouyi   2024/8/8
40
   			        :loading="system_loading">
73755355   monkeyhouyi   优化
41
   			        <el-option v-for="item in systemOption" :key="item.value" :label="item.systemName" :value="item.id" />
61009cfc   monkeyhouyi   2024/8/8
42
43
44
45
   			      </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="24">
73755355   monkeyhouyi   优化
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
            <el-form-item label="运营主体" prop="registeredEntity">
              <el-select
                v-model="dataForm.registeredEntity"
                placeholder="请选择运营主体"
                clearable
                filterable 
                style="width: 100%"
                :disabled="formType || dataForm.isHaveSystem"
              >
                <el-option
                  v-for="item in companyOptions"
                  :key="item.id"
                  :label="item.companyName"
                  :value="item.id"
                >
                </el-option>
              </el-select>
61009cfc   monkeyhouyi   2024/8/8
63
64
65
            </el-form-item>
          </el-col>
          <el-col :span="24">
73755355   monkeyhouyi   优化
66
67
            <el-form-item label="应用类别" prop="category">
              <el-input v-model="dataForm.category" placeholder="选择系统类别" clearable :disabled="formType || dataForm.isHaveSystem"/>
61009cfc   monkeyhouyi   2024/8/8
68
69
70
71
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="备案号" prop="recordNumber">
73755355   monkeyhouyi   优化
72
              <el-input v-model="dataForm.recordNumber" placeholder="选择备案号" clearable :disabled="formType || dataForm.isHaveSystem"/>
61009cfc   monkeyhouyi   2024/8/8
73
74
75
76
77
78
79
80
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="所属区县" prop="districtCounty">
                <el-radio-group
                  v-model="dataForm.districtCounty"
                  placeholder="请选择所属区县"
                  style="line-height: 22px"
93adad84   monkeyhouyi   网信执法功能添加
81
                  :disabled="formType"
61009cfc   monkeyhouyi   2024/8/8
82
83
84
85
86
87
88
89
90
                >
                  <el-radio v-for="v in areaOptions" :key="v.id" :label="v.id">{{
                    v.fullName
                  }}</el-radio>
                </el-radio-group>
              </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="违法原因" prop="illegalReasons">
93adad84   monkeyhouyi   网信执法功能添加
91
              <el-input type="textarea" v-model="dataForm.illegalReasons" placeholder="请输入违法原因" clearable maxlength="200" :disabled="formType"/>
61009cfc   monkeyhouyi   2024/8/8
92
93
94
95
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="处罚要求" prop="punishmentRequirements">
93adad84   monkeyhouyi   网信执法功能添加
96
              <el-input type="textarea" v-model="dataForm.punishmentRequirements" placeholder="请输入处罚要求" clearable maxlength="200" :disabled="formType"/>
61009cfc   monkeyhouyi   2024/8/8
97
98
99
100
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="处罚内容" prop="punishmentContent">
93adad84   monkeyhouyi   网信执法功能添加
101
102
103
              <el-input type="textarea" v-model="dataForm.punishmentContent" placeholder="请输入处罚内容" clearable maxlength="200" :disabled="formType"/>
            </el-form-item>
          </el-col>
1ef03631   monkeyhouyi   1
104
          <el-col :span="24" v-if="(formType && isSHILevel) || dataForm.state == '592592999649641733'">
93adad84   monkeyhouyi   网信执法功能添加
105
106
            <el-form-item label="执法方式" prop="enforceType">
              <el-radio-group v-model="dataForm.enforceType">
4614132f   monkeyhouyi   列表查询,案件处理
107
108
                <el-radio :label="'1'">柔性执法</el-radio>
                <el-radio :label="'2'">行政执法</el-radio>
93adad84   monkeyhouyi   网信执法功能添加
109
110
111
              </el-radio-group>
            </el-form-item>
          </el-col>
4614132f   monkeyhouyi   列表查询,案件处理
112
          <el-col :span="24" v-if="formType || dataForm.state == '592592999649641733'">
87e6927c   monkeyhouyi   弹框样式
113
114
            <el-form-item label="执法说明" prop="enforcecontent">
              <el-input type="textarea" v-model="dataForm.enforcecontent" placeholder="请输入处罚内容" clearable maxlength="200"/>
61009cfc   monkeyhouyi   2024/8/8
115
116
117
118
            </el-form-item>
          </el-col>
        </el-form>
      </el-row>
73755355   monkeyhouyi   优化
119
120
      <el-row v-if="isDetail">
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
121
              <div class="label w-120">案件名称:</div>
73755355   monkeyhouyi   优化
122
123
124
              <div class="text">{{ dataForm.systemNameStr || '--' }}</div>
            </el-col>
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
125
              <div class="label w-120">运营主体:</div>
73755355   monkeyhouyi   优化
126
127
128
              <div class="text">{{ dataForm.registeredEntityStr || '--' }}</div>
            </el-col>
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
129
              <div class="label w-120">应用类别:</div>
73755355   monkeyhouyi   优化
130
131
132
              <div class="text">{{ dataForm.category || '--' }}</div>
            </el-col>
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
133
              <div class="label w-120">备案号:</div>
73755355   monkeyhouyi   优化
134
135
136
              <div class="text">{{ dataForm.recordNumber || '--' }}</div>
            </el-col>
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
137
              <div class="label w-120">所属区县:</div>
73755355   monkeyhouyi   优化
138
139
140
              <div class="text">{{ areaOptions.find(item => item.id == dataForm.districtCounty).fullName }}</div>
            </el-col>
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
141
              <div class="label w-120">违法原因:</div>
73755355   monkeyhouyi   优化
142
143
144
              <p class="text">{{ dataForm.illegalReasons || '--' }}</p>
            </el-col>
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
145
              <div class="label w-120">处罚要求:</div>
73755355   monkeyhouyi   优化
146
147
148
              <p class="text">{{ dataForm.punishmentRequirements || '--' }}</p>
            </el-col>
            <el-col class="form-item">
4755ec66   monkeyhouyi   1
149
              <div class="label w-120">处罚内容:</div>
73755355   monkeyhouyi   优化
150
151
152
              <p class="text">{{ dataForm.punishmentContent || '--' }}</p>
            </el-col>
      </el-row>
61009cfc   monkeyhouyi   2024/8/8
153
154
      <span slot="footer" class="dialog-footer">
        <el-button @click="visible = false">取 消</el-button>
93adad84   monkeyhouyi   网信执法功能添加
155
156
157
158
159
160
161
        <template  v-if="!isDetail && !formType">
          <el-button type="primary" v-if="!isDetail" @click="submit(1)" :loading="btnLoading">{{isSHILevel ? '下 发' : '上 报'}}</el-button>
          <el-button type="info" v-if="!isDetail" @click="submit(0)" :loading="btnLoading">保 存</el-button>
        </template>
        <template v-if="!isDetail && formType">
          <el-button type="primary" v-if="!isDetail" @click="handle" :loading="btnLoading">提 交</el-button>
        </template>
61009cfc   monkeyhouyi   2024/8/8
162
163
      </span>
    </el-dialog>
4424f41c   monkeyhouyi   网信执法、清单管理静态页面
164
165
  </template>
  <script>
61009cfc   monkeyhouyi   2024/8/8
166
167
168
  import infoMixin from "@/mixins/info";
  import request from "@/utils/request";
  import { getSystemDetail } from "@/api/baseData/info";
73755355   monkeyhouyi   优化
169
  import { getCompanyInfoList, getCompanyInfoById } from "@/api/baseData/company";
61009cfc   monkeyhouyi   2024/8/8
170
  import { dynamicTextUP } from "@/filters/index";
4424f41c   monkeyhouyi   网信执法、清单管理静态页面
171
  
61009cfc   monkeyhouyi   2024/8/8
172
173
174
175
176
177
178
  export default {
    mixins: [infoMixin],
    data() {
      return {
        visible: false,
        loading: false,
        isDetail: false,
93adad84   monkeyhouyi   网信执法功能添加
179
        formType: false,
61009cfc   monkeyhouyi   2024/8/8
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
        dataForm: {
  		    id: undefined,
  		    registrationTime: undefined,
  		    systemName: undefined,
  		    registeredEntity: undefined,
  		    category: undefined,
  		    recordNumber: undefined,
  		    districtCounty: undefined,
  		    illegalReasons: undefined,
  		    punishmentRequirements: undefined,
  		    punishmentContent: undefined,
  		    state: undefined,
  		    record: undefined,
  		    caseHandlingOpinions: undefined,
  		    enforcementRecords: undefined,
  		    noticeLetter: undefined,
  		    punishmentDecision: undefined,
  		    closingReport: undefined,
93adad84   monkeyhouyi   网信执法功能添加
198
          enforceType: undefined,
87e6927c   monkeyhouyi   弹框样式
199
          enforcecontent: undefined,
73755355   monkeyhouyi   优化
200
          isHaveSystem: undefined,
61009cfc   monkeyhouyi   2024/8/8
201
202
203
  	    },
        rules: {
          systemName: [
94f06e38   monkeyhouyi   优化
204
205
206
207
            { required: true, message: "请选择应用名称", trigger: "bulr" }
          ],
          registeredEntity: [
            { required: true, message: "请选择运营主体", trigger: "bulr" }
61009cfc   monkeyhouyi   2024/8/8
208
209
210
211
          ],
          districtCounty: [
            { required: true, message: "请选择所属区域", trigger: "change" }
          ],
93adad84   monkeyhouyi   网信执法功能添加
212
          enforceType: [
73755355   monkeyhouyi   优化
213
            { required: true, message: "请选择执法方式", trigger: "bulr" }
93adad84   monkeyhouyi   网信执法功能添加
214
          ],
87e6927c   monkeyhouyi   弹框样式
215
          enforcecontent: [
93adad84   monkeyhouyi   网信执法功能添加
216
217
            { required: true, message: "请填写执法说明", trigger: "bulr" }
          ],
61009cfc   monkeyhouyi   2024/8/8
218
219
220
221
        },
        systemOption: [],
        system_loading: false,
        areaOptions: [],
93adad84   monkeyhouyi   网信执法功能添加
222
        btnLoading: false,
73755355   monkeyhouyi   优化
223
        companyOptions: []
61009cfc   monkeyhouyi   2024/8/8
224
225
226
227
228
229
230
231
232
233
234
235
236
      };
    },
    computed: {
      isSHILevel() {
        // 判断角色是否为‘市级办公室’
        return this.$store.state.user.islader;
      },
    },
    watch: {},
    created() {
      this.getSystemSelect();
      this.initSystemTypeList();
      this.initAreaTypeList();
73755355   monkeyhouyi   优化
237
      this.initCompanyList();
61009cfc   monkeyhouyi   2024/8/8
238
239
240
    },
    mounted() {},
    methods: {
73755355   monkeyhouyi   优化
241
242
243
244
245
246
247
248
249
        // 请求公司列表
      async initCompanyList() {
        request({
          url: `/Extend/basecomapnyinfo/GetNoPagingList`,
          method: "GET",
        }).then(({data}) => {
          this.companyOptions = data;
        })
      },
61009cfc   monkeyhouyi   2024/8/8
250
      // 获取系统列表
73755355   monkeyhouyi   优化
251
      getSystemSelect() {
61009cfc   monkeyhouyi   2024/8/8
252
253
254
255
        this.system_loading = true;
        request({
          url: "/Extend/basesysteminfo/GetNoPagingList",
          method: "get",
61009cfc   monkeyhouyi   2024/8/8
256
257
258
259
260
        }).then(({data}) => {
          this.systemOption = data;
          this.system_loading = false;
        })
      },
73755355   monkeyhouyi   优化
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
      selectBlur(e) {
        if(!this.isSHILevel) return;
        let value = e.target.value;
        if(!value) return;
        this.dataForm.systemName = e.target.value;
        this.platformNameChange(value, 'blur');
      },
      platformNameChange(val, type) {
        let obj = this.systemOption.find(v => type == 'blur' ? val == v.fullName : val == v.id);
        this.dataForm.isHaveSystem = obj ? true : false;
        if(!obj) return;
        this.dataForm.systemName = obj ? obj.id : val;
        this.dataForm.registeredEntity = obj ? obj.companyId : val;
        this.dataForm.category = obj ? obj.systemType : '';
        this.dataForm.recordNumber = obj ? obj.platform : '';
      },
61009cfc   monkeyhouyi   2024/8/8
277
278
279
280
281
282
283
284
285
      // 系统名称改变
      systemChange(val) {
        getSystemDetail(val).then(({data}) => {
          this.dataForm.registeredEntity = data.companyId;
          this.dataForm.category = dynamicTextUP(data.systemType, this.systemTypeOptions);
          this.dataForm.recordNumber = data.specialRecordNumber || '--';
          this.dataForm.districtCounty = data.areaId;
        })
      },
73755355   monkeyhouyi   优化
286
287
288
289
290
      visibleNameChange(val) {
        if (val) return
        let input = this.$refs.select.$children[0].$refs.input;
        input.blur();
      },
61009cfc   monkeyhouyi   2024/8/8
291
292
293
      goBack() {
        this.$emit("refresh");
      },
93adad84   monkeyhouyi   网信执法功能添加
294
295
296
      init(id, isDetail, type) {
        // type 0 上报/下派 1 处理
        this.formType = Boolean(type) || false;
61009cfc   monkeyhouyi   2024/8/8
297
298
        this.dataForm.id = id || 0;
        this.isDetail = isDetail || false;
61009cfc   monkeyhouyi   2024/8/8
299
        this.visible = true;
73755355   monkeyhouyi   优化
300
        this.$forceUpdate();
61009cfc   monkeyhouyi   2024/8/8
301
        this.$nextTick(() => {
73755355   monkeyhouyi   优化
302
          !isDetail && this.$refs["elForm"].resetFields();
61009cfc   monkeyhouyi   2024/8/8
303
          if (this.dataForm.id) {
93adad84   monkeyhouyi   网信执法功能添加
304
            this.loading = true;
61009cfc   monkeyhouyi   2024/8/8
305
306
307
            request({
              url: `/Extend/BaseCaseHandling/${this.dataForm.id}`,
              method: "GET",
73755355   monkeyhouyi   优化
308
            }).then(async (res) => {
61009cfc   monkeyhouyi   2024/8/8
309
              this.dataForm = res.data;
93adad84   monkeyhouyi   网信执法功能添加
310
              this.loading = false;
93adad84   monkeyhouyi   网信执法功能添加
311
312
            }).catch(() => {
              this.loading = false;
61009cfc   monkeyhouyi   2024/8/8
313
314
315
316
            });
          }
        });
      },
93adad84   monkeyhouyi   网信执法功能添加
317
      // 上报/下派
61009cfc   monkeyhouyi   2024/8/8
318
319
320
321
322
323
324
      submit(type) {
        // type: 1 上报 0 保存
        let obj = {
          ...this.dataForm,
          isReport: type,
        }
  			this.$refs['elForm'].validate((valid) => {
87e6927c   monkeyhouyi   弹框样式
325
          if(valid) {
93adad84   monkeyhouyi   网信执法功能添加
326
327
328
329
330
331
332
333
            !this.dataForm.id ? this.toRequest('/Extend/BaseCaseHandling', 'POST', obj) : this.toRequest(`/Extend/BaseCaseHandling/${this.dataForm.id}`, 'PUT', obj);
          }
        })
      },
      // 处理
      handle() {
        this.$refs['elForm'].validate((valid) => {
          if(valid) {
93adad84   monkeyhouyi   网信执法功能添加
334
            this.btnLoading = true;
87e6927c   monkeyhouyi   弹框样式
335
            let { enforceType, enforcecontent } = this.dataForm;
61009cfc   monkeyhouyi   2024/8/8
336
            request({
87e6927c   monkeyhouyi   弹框样式
337
338
339
              url: `/Extend/basecasehandling/HandlingCase/${this.dataForm.id}`,
              method: "POST",
              data: { enforceType, enforcecontent },
61009cfc   monkeyhouyi   2024/8/8
340
            }).then((res) => {
4614132f   monkeyhouyi   列表查询,案件处理
341
342
              this.visible = false;
              this.$emit("refresh", true);
61009cfc   monkeyhouyi   2024/8/8
343
344
              this.$message({
                type: "success",
4614132f   monkeyhouyi   列表查询,案件处理
345
                message: res.msg,
93adad84   monkeyhouyi   网信执法功能添加
346
347
348
349
              })
            }).catch(() => {
              this.btnLoading = false;
            })
61009cfc   monkeyhouyi   2024/8/8
350
351
          }
        })
93adad84   monkeyhouyi   网信执法功能添加
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
      },
      toRequest(url, method, data) {
        this.btnLoading = true;
        request({
          url,
          method,
          data,
        }).then((res) => {
          this.$message({
            type: "success",
            message: res.msg,
            onClose: () => {
              this.visible = false;
              this.$emit("refresh", true);
            },
          });
        }).catch(() => {
          this.btnLoading = false;
        });
61009cfc   monkeyhouyi   2024/8/8
371
372
373
374
      }
    },
  };
  </script>