|
@@ -11,25 +11,26 @@
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="所属租户:" prop="tenantId">
|
|
|
- <el-input v-model="formModel.tenantId" clearable />
|
|
|
+ <el-select v-model="formModel.tenantId" filterable block placeholder="选择所属租户" @change="tenantSelectChange">
|
|
|
+ <el-option v-for="item in tenantSelect" :key="item.tenantId" :label="item.tenantName" :value="item.tenantId" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col v-if="isNullES(formModel.id)" :span="12">
|
|
|
<el-form-item label="登录密码:" prop="password">
|
|
|
<el-input v-model="formModel.password" clearable />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col v-if="isNullES(formModel.id)" :span="12">
|
|
|
<el-form-item label="确认密码:" prop="password2">
|
|
|
<el-input v-model="formModel.password2" clearable />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="用户平台:" prop="userType">
|
|
|
- <el-select v-model="formModel.userType" filterable block placeholder="选择用户平台">
|
|
|
- <el-option label="是" :value="1" />
|
|
|
- <el-option label="否" :value="0" />
|
|
|
- </el-select>
|
|
|
+ <el-checkbox-group v-model="formUserType" @change="formUserTypeChange">
|
|
|
+ <el-checkbox v-for="item in userTypeData" :key="item.value" :label="item.label" :value="item.value" border />
|
|
|
+ </el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -55,7 +56,10 @@
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="所属部门:" prop="deptId">
|
|
|
- <el-input v-model="formModel.deptId" clearable />
|
|
|
+ <el-tree-select
|
|
|
+ v-model="formModel.deptId" placeholder="选择所属部门" :data="deptTreeData" :props="deptTreeProps"
|
|
|
+ clearable filterable check-strictly block :render-after-expand="false"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
@@ -85,7 +89,7 @@
|
|
|
</el-form>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="职能描述">
|
|
|
- 11111
|
|
|
+ <HcRelatedProject />
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
<template #footer>
|
|
@@ -97,8 +101,11 @@
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, watch } from 'vue'
|
|
|
-import { isNullES, isPhone } from 'js-fast-way'
|
|
|
+import { getDictionaryData } from '~uti/tools'
|
|
|
+import { getArrValue, getObjValue, isNullES, isPhone } from 'js-fast-way'
|
|
|
import mainApi from '~api/system/user'
|
|
|
+import tenantApi from '~api/system/tenant'
|
|
|
+import deptApi from '~api/system/dept'
|
|
|
|
|
|
const props = defineProps({
|
|
|
info: {
|
|
@@ -118,7 +125,7 @@ const isShow = defineModel('modelValue', {
|
|
|
//监听内容
|
|
|
const rowInfo = ref(props.info)
|
|
|
watch(() => props.info, (data) => {
|
|
|
- rowInfo.value = data
|
|
|
+ rowInfo.value = getObjValue(data)
|
|
|
}, { immediate: true, deep: true })
|
|
|
|
|
|
//监听显示
|
|
@@ -130,9 +137,73 @@ watch(isShow, (val) => {
|
|
|
|
|
|
//获取数据
|
|
|
const getDataApi = () => {
|
|
|
- const { id } = rowInfo.value
|
|
|
+ const info = getObjValue(rowInfo.value)
|
|
|
+ const { id, userType } = info
|
|
|
+ getTenantSelect()
|
|
|
+ getUserTypeData()
|
|
|
if (isNullES(id)) return
|
|
|
- console.log(rowInfo.value)
|
|
|
+ formModel.value = {
|
|
|
+ ...info,
|
|
|
+ password: null,
|
|
|
+ }
|
|
|
+ //分割为数组
|
|
|
+ formUserType.value = isNullES(userType) ? [] : userType.split(',').map((item) => {
|
|
|
+ return parseInt(item, 10) // 使用基数10进行解析,保证正确性
|
|
|
+ })
|
|
|
+ getDeptTreeData()
|
|
|
+ console.log(info)
|
|
|
+}
|
|
|
+
|
|
|
+//获取租户信息
|
|
|
+const tenantSelect = ref([])
|
|
|
+const getTenantSelect = async () => {
|
|
|
+ const { data } = await tenantApi.getSelect()
|
|
|
+ tenantSelect.value = getArrValue(data)
|
|
|
+}
|
|
|
+const tenantSelectChange = () => {
|
|
|
+ const { tenantId } = formModel.value
|
|
|
+ const { tenantName } = tenantSelect.value.find((item) => {
|
|
|
+ return item.tenantId === tenantId
|
|
|
+ })
|
|
|
+ formModel.value.tenantName = tenantName
|
|
|
+ getDeptTreeData()
|
|
|
+}
|
|
|
+
|
|
|
+//获取用户平台
|
|
|
+const userTypeData = ref([])
|
|
|
+const getUserTypeData = async () => {
|
|
|
+ userTypeData.value = await getDictionaryData('user_type')
|
|
|
+}
|
|
|
+
|
|
|
+//用户平台多选
|
|
|
+const formUserType = ref([])
|
|
|
+const formUserTypeChange = () => {
|
|
|
+ const arr = formUserType.value
|
|
|
+ formModel.value.userType = arr.join(',')
|
|
|
+ //获取名称
|
|
|
+ let userTypeNames = []
|
|
|
+ for (let i = 0; i < arr.length; i++) {
|
|
|
+ // eslint-disable-next-line array-callback-return
|
|
|
+ userTypeData.value.filter((item) => {
|
|
|
+ if (item.value === arr[i]) {
|
|
|
+ userTypeNames.push(item.label)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ formModel.value.userTypeName = userTypeNames.join(',')
|
|
|
+}
|
|
|
+
|
|
|
+//获取所属部门
|
|
|
+const deptTreeData = ref([])
|
|
|
+const deptTreeProps = { label: 'title' }
|
|
|
+const getDeptTreeData = async () => {
|
|
|
+ const { tenantId } = formModel.value
|
|
|
+ if (isNullES(tenantId)) {
|
|
|
+ deptTreeData.value = []
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const { data } = await deptApi.getDeptTree(tenantId)
|
|
|
+ deptTreeData.value = getArrValue(data)
|
|
|
}
|
|
|
|
|
|
//提交表单
|
|
@@ -249,5 +320,9 @@ const formRules2 = {
|
|
|
padding: 10px 5px 10px 10px;
|
|
|
}
|
|
|
}
|
|
|
+ .el-checkbox-group .el-checkbox.is-bordered {
|
|
|
+ margin-right: 14px;
|
|
|
+ margin-bottom: 14px;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|