doum
2025-09-17 e1ac26d7d749012a04afa8f98acf8607cbf0fbfe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<template>
  <GlobalWindow :title="title" width="500px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入名称" v-trim />
      </el-form-item>
      <el-form-item label="责任部门" prop="companyId" v-if="form.type == 0">
        <el-select filterable clearable @change="() => loadMember(1)" v-model="form.companyId">
          <el-option v-for="op in department" :key="op.id" :label="op.name" :value="op.id"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item v-if="form.type == 0" label="选择安全员" prop="memberIdList">
        <el-select v-model="form.memberIdList" filterable multiple clearable placeholder="请选择">
          <el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="排序码(升序)" prop="sortnum">
        <el-input v-model="form.sortnum" type="number" placeholder="请输入排序码" v-trim />
      </el-form-item>
    </el-form>
  </GlobalWindow>
</template>
 
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { allList } from '@/api/business/member'
import { companyGetListPost } from '@/api/business/company'
export default {
  name: 'OperaHiddenDangerParamWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data() {
    return {
      // 表单数据
      memberList: [],
      department: [],
      departprops: {
        label: 'name',
        value: 'id',
        checkStrictly: true
      },
      form: {
        id: null,
        name: null,
        companyId: null,
        memberIdList: null,
        type: null,
        sortnum: null
      },
      // 验证规则
      rules: {
        name: [{ required: true, message: '请输入名称' }],
        companyId: [{ required: true, message: '请选择' }],
        memberIdList: [{ required: true, message: '请选择', type: 'array' }],
      }
    }
  },
  created() {
    this.config({
      api: '/business/hiddenDangerParam',
      'field.id': 'id'
    })
  },
  methods: {
    open(title, target, type) {
      this.title = title
      this.visible = true
      this.form.memberIdList = null
      this.form.type = type
      this.getfindCompanyTreePage()
      // 新建组织
      if (target == null) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
          this.form.type = type
        })
        return
      }
      // 编辑
      this.$nextTick(() => {
        for (const key in this.form) {
          this.form[key] = target[key]
          this.form.type = type
          if(type == 0){
            this.loadMember(1)
          }
          if (this.form.type == 0 && target.memberIds != null && target.memberIds != '') {
            const t = target.memberIds.split(',')
            this.form.memberIdList = []
            t.forEach(item => {
              this.form.memberIdList.push(parseInt(item))
            })
          }
        }
        this.loadMember()
      })
    },
    getfindCompanyTreePage() {
      companyGetListPost({})
        .then(res => {
          if (res && res.length > 0) {
            this.department = res
          }
        })
    },
    loadMember(flag) {
      if(flag && flag == 1){
        this.$set(this.form, 'memberIdList', null)
      }
      allList({
        type: 2,
        companyType: 1,
        companyId: this.form.companyId
      })
        .then(res => {
          this.memberList = res
        })
        .catch(e => {
          // this.$tip.apiFailed(e)
        })
        .finally(() => {
          this.isWorking = false
        })
    }
  }
}
</script>