Blame view

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