Blame view

src/views/staff/addStaff.vue 5.55 KB
b25b036d   wuxw   v1.9 优化日期
1
  <!-- views/staff/addStaffList.vue -->
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
2
3
4
5
6
7
8
9
10
11
  <template>
    <div class="add-staff-container">
      <el-card>
        <div slot="header" class="clearfix">
          <span>{{ $t('addStaff.title') }}</span>
        </div>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form label-width="120px">
              <el-form-item :label="$t('addStaff.staffName')">
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
12
13
                <el-input v-model="addStaffInfo.username" :placeholder="$t('addStaff.staffNamePlaceholder')"
                  maxlength="10" show-word-limit />
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
14
15
16
17
18
19
20
21
              </el-form-item>
              <el-form-item :label="$t('addStaff.staffGender')">
                <el-select v-model="addStaffInfo.sex" :placeholder="$t('addStaff.staffGenderPlaceholder')"
                  style="width: 100%">
                  <el-option :label="$t('addStaff.male')" value="0" />
                  <el-option :label="$t('addStaff.female')" value="1" />
                </el-select>
              </el-form-item>
702baeae   wuxw   v1.9 优化员工没有岗位问题
22
23
24
              <el-form-item :label="$t('addStaff.relCd')">
                <el-select v-model="addStaffInfo.relCd" :placeholder="$t('addStaff.relCdPlaceholder')"
                  style="width: 100%">
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
25
26
                  <el-option v-for="item in addStaffInfo.relCds" :key="item.value" :label="item.name"
                    :value="item.statusCd" />
702baeae   wuxw   v1.9 优化员工没有岗位问题
27
28
                </el-select>
              </el-form-item>
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
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
              <el-form-item :label="$t('addStaff.phone')">
                <el-input v-model="addStaffInfo.tel" :placeholder="$t('addStaff.phonePlaceholder')" maxlength="11" />
              </el-form-item>
              <el-form-item :label="$t('addStaff.photo')">
                <upload-image-url ref="uploadImage" :image-count="1" @notifyUploadCoverImage="handleUploadImage" />
              </el-form-item>
            </el-form>
          </el-col>
          <el-col :span="12">
            <el-form label-width="120px">
              <el-form-item :label="$t('addStaff.email')">
                <el-input v-model="addStaffInfo.email" :placeholder="$t('addStaff.emailPlaceholder')" />
              </el-form-item>
              <el-form-item :label="$t('addStaff.address')">
                <el-input v-model="addStaffInfo.address" :placeholder="$t('addStaff.addressPlaceholder')" />
              </el-form-item>
              <el-form-item :label="$t('addStaff.relatedOrg')">
                <el-input v-model="addStaffInfo.orgName" :placeholder="$t('addStaff.relatedOrgPlaceholder')" readonly
                  @focus="handleChooseOrg" />
              </el-form-item>
            </el-form>
          </el-col>
        </el-row>
        <div class="footer-buttons">
          <el-button type="primary" @click="saveStaffInfo">
            <i class="el-icon-check" /> {{ $t('addStaff.save') }}
          </el-button>
          <el-button @click="$router.go(-1)">
            {{ $t('addStaff.cancel') }}
          </el-button>
        </div>
      </el-card>
      <choose-org-tree ref="chooseOrgTree" @switchOrg="handleSwitchOrg" />
    </div>
  </template>
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
64
  
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
65
66
67
68
  <script>
  import { addStaff } from '@/api/staff/addStaffApi'
  import UploadImageUrl from '@/components/upload/UploadImageUrl'
  import ChooseOrgTree from '@/components/org/ChooseOrgTree'
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
69
  import { getDict } from '@/api/community/communityApi'
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
70
71
72
73
74
75
76
77
78
79
80
81
  
  export default {
    name: 'AddStaff',
    components: {
      UploadImageUrl,
      ChooseOrgTree
    },
    data() {
      return {
        addStaffInfo: {
          orgId: '',
          orgName: '',
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
82
          relCd: '',
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
83
84
85
86
87
88
          username: '',
          sex: '',
          email: '',
          tel: '',
          address: '',
          photo: '',
702baeae   wuxw   v1.9 优化员工没有岗位问题
89
          adminFlag: 'N',
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
90
          relCds: []
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
91
92
93
        }
      }
    },
702baeae   wuxw   v1.9 优化员工没有岗位问题
94
95
96
    mounted() {
      this.getRelCd()
    },
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
97
    methods: {
702baeae   wuxw   v1.9 优化员工没有岗位问题
98
99
100
101
      async getRelCd() {
        const data = await getDict('u_org_staff_rel', "rel_cd")
        this.addStaffInfo.relCds = data
      },
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
102
103
      handleUploadImage(data) {
        if (data.length > 0) {
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
104
          this.addStaffInfo.photo = data[0]
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
105
106
107
        }
      },
      handleChooseOrg() {
56732765   wuxw   修改员工界面部分bug
108
        this.$refs.chooseOrgTree.open()
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
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
      },
      handleSwitchOrg(org) {
        console.log(org)
        this.addStaffInfo.orgId = org.orgId
        this.addStaffInfo.orgName = org.allOrgName
      },
      validateForm() {
        if (!this.addStaffInfo.username || this.addStaffInfo.username.length < 2 || this.addStaffInfo.username.length > 10) {
          this.$message.error(this.$t('addStaff.staffNamePlaceholder'))
          return false
        }
        if (!this.addStaffInfo.sex) {
          this.$message.error(this.$t('addStaff.staffGenderPlaceholder'))
          return false
        }
        if (!this.addStaffInfo.tel || !/^1[3-9]\d{9}$/.test(this.addStaffInfo.tel)) {
          this.$message.error(this.$t('addStaff.phonePlaceholder'))
          return false
        }
        if (!this.addStaffInfo.address) {
          this.$message.error(this.$t('addStaff.addressPlaceholder'))
          return false
        }
        if (!this.addStaffInfo.orgId) {
          this.$message.error(this.$t('addStaff.relatedOrgPlaceholder'))
          return false
        }
        return true
      },
      async saveStaffInfo() {
        if (!this.validateForm()) return
  
        try {
          const data = {
            ...this.addStaffInfo,
            name: this.addStaffInfo.username
          }
          const res = await addStaff(data)
          if (res.code === 0) {
            this.$message.success('添加成功')
            this.$router.go(-1)
          } else {
            this.$message.error(res.msg || '添加失败')
          }
        } catch (error) {
          this.$message.error(error.message || '添加失败')
        }
      },
    }
  }
  </script>
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
160
  
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
161
  <style lang="scss" scoped>
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
162
163
164
  .add-staff-container {
    padding: 20px;
    text-align: left;
b8423097   wuxw   v1.9 修复网友反馈的 报修单无...
165
  
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
166
167
168
169
170
171
172
173
174
175
    .footer-buttons {
      margin-top: 20px;
      text-align: right;
    }
  
    .el-form-item {
      margin-bottom: 22px;
    }
  }
  </style>