feat: add resetValidation method to MemberFormContent and improve formatting in UserDrawer
parent
cc0eef326b
commit
d466d0f512
|
|
@ -109,5 +109,10 @@ const validate = () => {
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
}
|
}
|
||||||
|
|
||||||
defineExpose({ validate })
|
const resetValidation = () => {
|
||||||
|
if (formRef.value) {
|
||||||
|
formRef.value.clearValidate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
defineExpose({ validate, resetValidation })
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -77,18 +77,18 @@
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, watch, onBeforeMount, computed } from 'vue'
|
import {ref, reactive, watch, onBeforeMount, computed} from 'vue'
|
||||||
import type { FormInstance } from 'element-plus'
|
import type {FormInstance} from 'element-plus'
|
||||||
import userManageApi from '@/api/system/user-manage'
|
import userManageApi from '@/api/system/user-manage'
|
||||||
import { MsgSuccess } from '@/utils/message'
|
import {MsgSuccess} from '@/utils/message'
|
||||||
import { t } from '@/locales'
|
import {t} from '@/locales'
|
||||||
import type { FormItemModel } from '@/api/type/role'
|
import type {FormItemModel} from '@/api/type/role'
|
||||||
import WorkspaceApi from '@/api/workspace/workspace'
|
import WorkspaceApi from '@/api/workspace/workspace'
|
||||||
import MemberFormContent from '@/views/system/role/component/MemberFormContent.vue'
|
import MemberFormContent from '@/views/system/role/component/MemberFormContent.vue'
|
||||||
import { RoleTypeEnum } from '@/enums/system'
|
import {RoleTypeEnum} from '@/enums/system'
|
||||||
import useStore from '@/stores'
|
import useStore from '@/stores'
|
||||||
|
|
||||||
const { user } = useStore()
|
const {user} = useStore()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
title: String,
|
title: String,
|
||||||
})
|
})
|
||||||
|
|
@ -206,7 +206,7 @@ onBeforeMount(async () => {
|
||||||
}
|
}
|
||||||
formItemModel.value = [...roleFormItem.value, ...workspaceFormItem.value]
|
formItemModel.value = [...roleFormItem.value, ...workspaceFormItem.value]
|
||||||
}
|
}
|
||||||
list.value = [{ role_id: '', workspace_ids: [] }]
|
list.value = [{role_id: '', workspace_ids: []}]
|
||||||
})
|
})
|
||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
|
|
@ -278,7 +278,7 @@ watch(visible, (bool) => {
|
||||||
nick_name: '',
|
nick_name: '',
|
||||||
}
|
}
|
||||||
isEdit.value = false
|
isEdit.value = false
|
||||||
list.value = [{ role_id: '', workspace_ids: [] }]
|
list.value = [{role_id: '', workspace_ids: []}]
|
||||||
userFormRef.value?.clearValidate()
|
userFormRef.value?.clearValidate()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -300,6 +300,9 @@ const open = (data: any) => {
|
||||||
userManageApi.getSystemDefaultPassword().then((res: any) => {
|
userManageApi.getSystemDefaultPassword().then((res: any) => {
|
||||||
userForm.value.password = res.data.password
|
userForm.value.password = res.data.password
|
||||||
})
|
})
|
||||||
|
if (memberFormContentRef.value) {
|
||||||
|
memberFormContentRef.value.resetValidation()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
visible.value = true
|
visible.value = true
|
||||||
|
|
@ -319,12 +322,12 @@ const submit = async (formEl: FormInstance | undefined) => {
|
||||||
|
|
||||||
// 如果是管理员角色,则设置为 ['None']
|
// 如果是管理员角色,则设置为 ['None']
|
||||||
if (isAdminRole) {
|
if (isAdminRole) {
|
||||||
return { ...item, workspace_ids: ['None'] }
|
return {...item, workspace_ids: ['None']}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果是普通用户且是 PE 类型,则设置为 ['default']
|
// 如果是普通用户且是 PE 类型,则设置为 ['default']
|
||||||
if (user.isPE()) {
|
if (user.isPE()) {
|
||||||
return { ...item, workspace_ids: ['default'] }
|
return {...item, workspace_ids: ['default']}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其他情况保持原样
|
// 其他情况保持原样
|
||||||
|
|
@ -366,6 +369,6 @@ const submit = async (formEl: FormInstance | undefined) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
defineExpose({ open })
|
defineExpose({open})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue