| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="phoneNumber" label="手机号" width="130"></el-table-column> |
| | | <el-table-column label="扩展属性" width="100" align="center"> |
| | | <template slot-scope="{ row }"> |
| | | <el-button type="text" v-permission="'system:users:ext'" @click="openExt(row)">{{ row.extConfigured ? '编辑' : '设置' }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="状态" width="80" align="center"> |
| | | <template slot-scope="{ row }"> |
| | | <el-tag size="mini" :type="isDisabled(row) ? 'info' : 'success'">{{ isDisabled(row) ? '停用' : '正常' }}</el-tag> |
| | |
| | | <el-button type="primary" :loading="batchSaving" v-permission="'system:users:assign'" @click="saveBatchRoles">保存</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :title="'用户扩展属性设置 - ' + ((currentExtUser.nickName || currentExtUser.userName) || '')" :visible.sync="extVisible" width="560px" append-to-body :close-on-click-modal="false"> |
| | | <el-form label-width="105px" v-loading="extLoading"> |
| | | <el-form-item label="工程专业"> |
| | | <el-select v-model="extForm.engineeringMajor" clearable filterable placeholder="请选择工程专业" style="width:100%"> |
| | | <el-option v-for="item in engineeringMajors" :key="item.id" :label="item.name" :value="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="rk_T队专业"> |
| | | <el-select v-model="extForm.teamMajor" clearable filterable placeholder="请选择rk_T队专业" style="width:100%"> |
| | | <el-option v-for="item in teamMajors" :key="item.id" :label="item.name" :value="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="负责rk_T"> |
| | | <el-select v-model="extForm.responsibleXNo" clearable filterable placeholder="请选择rk_X号" style="width:100%"> |
| | | <el-option v-for="item in xNumbers" :key="item" :label="item" :value="item"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template slot="footer"> |
| | | <el-button @click="extVisible = false">取消</el-button> |
| | | <el-button type="primary" :loading="extSaving" @click="saveExt">保存</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <script> |
| | |
| | | roles: [], |
| | | selected: null, |
| | | checkedRoleIds: [], |
| | | extVisible: false, |
| | | extLoading: false, |
| | | extSaving: false, |
| | | currentExtUser: {}, |
| | | extForm: { engineeringMajor: '', teamMajor: '', responsibleXNo: '' }, |
| | | engineeringMajors: [], |
| | | teamMajors: [], |
| | | xNumbers: [], |
| | | filters: { keyword: '', deptId: null, roleId: null } |
| | | } |
| | | }, |
| | | created() { |
| | | this.loadRoles() |
| | | this.loadDepts() |
| | | this.loadExtOptions() |
| | | this.load() |
| | | }, |
| | | methods: { |
| | |
| | | loadDepts() { |
| | | api.get('/system/depts').then(res => { this.depts = res.data || [] }) |
| | | }, |
| | | loadExtOptions() { |
| | | api.get('/system/engineering-majors').then(res => { this.engineeringMajors = res.data || [] }) |
| | | api.get('/system/team-majors').then(res => { this.teamMajors = res.data || [] }) |
| | | api.get('/system/tree/product/x-numbers').then(res => { this.xNumbers = res.data || [] }) |
| | | }, |
| | | openExt(row) { |
| | | this.currentExtUser = { ...row } |
| | | this.extForm = { engineeringMajor: '', teamMajor: '', responsibleXNo: '' } |
| | | this.extVisible = true |
| | | this.extLoading = true |
| | | api.get('/system/users/' + row.userId + '/ext').then(res => { |
| | | const data = res.data || {} |
| | | this.extForm = { |
| | | engineeringMajor: data.engineeringMajor || '', |
| | | teamMajor: data.teamMajor || '', |
| | | responsibleXNo: data.responsibleXNo || '' |
| | | } |
| | | }).finally(() => { this.extLoading = false }) |
| | | }, |
| | | saveExt() { |
| | | if (!this.currentExtUser.userId) return |
| | | this.extSaving = true |
| | | api.put('/system/users/' + this.currentExtUser.userId + '/ext', this.extForm).then(() => { |
| | | this.$message.success('扩展属性设置成功') |
| | | this.extVisible = false |
| | | this.load() |
| | | }).finally(() => { this.extSaving = false }) |
| | | }, |
| | | search() { |
| | | this.current = 1 |
| | | this.load() |