jiangping
2024-05-31 2934e7ff8a580c38f4bc81a62141036c16d460be
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
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
<template>
    <GlobalWindow
        :title="title"
        width="60%"
        :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">
              <el-cascader
                  v-model="form.company"
                  :options="department"
                  @change="handleChangeCompany"
                  :show-all-levels="false"
                  clearable
                  filterable
                  :props="departprops"
              ></el-cascader>
              <div style="font-size: 12px;color: #F56C6C"  >
                注:仅支持选择 【{{companyType ===0?'相关方组织':'内部组织'}}】
              </div>
            </el-form-item>
            <el-form-item label="手机号" prop="phone">
                <el-input v-model="form.phone" placeholder="请输入手机号" v-trim/>
              <div style="color: #F56C6C;font-size: 12px">注:员工手机号将作为平台登录账号,初始密码为系统默认密码配置项</div>
            </el-form-item>
            <el-form-item label="身份证号" prop="idcardNo" v-if="form.id ==null">
                <el-input v-model="form.idcardNo" placeholder="请输入身份证号" v-trim/>
            </el-form-item>
            <el-form-item label="修改身份证号" prop="idcardNoNew" v-if="form.id !=null">
                <el-input v-model="form.idcardNoNew" placeholder="可修改身份证号" v-trim/>
              <div style="font-size: 12px" v-if="form.id !=null">
                注:当前身份证号为<span style="color: #F56C6C">【{{form.idcardDecode}}】</span>,如需修改,请在输入栏填写新的身份证号!
              </div>
            </el-form-item>
            <el-form-item label="工号" prop="code">
                <el-input v-model="form.code" placeholder="请输入员工工号" v-trim/>
            </el-form-item>
          <el-form-item label="人脸照片" prop="faceImgFull" >
            <UploadAvatarImage
                :file="{ 'imgurlfull': form.faceImgFull, 'imgurl': form.faceImg }"
                :uploadData="uploadData"
                @uploadSuccess="uploadAvatarSuccess"
                @uploadEnd="isUploading = false"
                @uploadBegin="isUploading = true"
            />
          </el-form-item>
</el-form>
</GlobalWindow>
</template>
 
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import UploadAvatarImage from '@/components/common/UploadAvatarImage'
import {checkMobile, validIdCardNo, validIdCardNoNew} from '@/utils/form'
export default {
  name: 'OperaCompanyWindow',
  extends: BaseOpera,
  components: { GlobalWindow, UploadAvatarImage },
  data () {
    return {
      uploadData: {
        folder: 'member'
      },
      departprops: {
        label: 'name',
        value: 'id',
        checkStrictly: true
      },
      companyType:0,
      department: [],
      // 表单数据
      form: {
        id: null,
        name: '',
        type: '',
        company: [],
        code: '',
        idcardNo: '',
        idcardNoNew: '',
        linkName: '',
        idcardDecode: '',
        companyId: null,
        idcardType: 0,
        phone: '',
        faceImg: '',
        faceImgFull: ''
      },
      // 验证规则
      rules: {
        name: [{ required: true, message: '请输入员工姓名', trigger: 'blur' }],
        phone: [{ required: true, validator: checkMobile, trigger: 'blur' }],
        companyId: [{ required: true, message: '请选择所属组织' }],
        idcardNo: [{ required: true, validator: validIdCardNo, message: '请输入身份证号', trigger: 'blur' }],
        idcardNoNew: [{ required: false, validator: validIdCardNoNew, trigger: 'blur' }]
      }
    }
  },
  created () {
    this.config({
      api: '/business/member.js',
      'field.id': 'id'
    })
  },
  methods: {
    handleChangeCompany (value) {
      if (this.form.company && this.form.company.length > 1) {
        this.form.companyId = this.form.company[this.form.company.length - 1]
      }
    },
    /**
     * 打开窗口
     * @title 窗口标题
     * @target 编辑的对象
     */
    open (title, target, depart,companyType) {
      this.title = title
      this.department = depart
      this.visible = true
      this.companyType = companyType
      // 新建
      if (target == null) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
          this.form.company = []
        })
        return
      }
      // 编辑
      var that = this
      this.$nextTick(() => {
        for (const key in this.form) {
          this.form[key] = target[key]
          this.form.idcardNo = ''
        }
        this.form.company =[]
        if (target.companyId && target.companyPath) {
          var array = target.companyPath.split('/')
          array.forEach(item => {
            if (item && item != null && item != '') {
              that.form.company.push(parseInt(item))
            }
          })
        }
      })
    },
    // 上传图片
    uploadAvatarSuccess (file) {
      this.form.faceImg = file.imgurl
      this.form.faceImgFull = file.imgurlfull
    }
  }
}
</script>