feat: add resetValidation method to MemberFormContent and improve formatting in UserDrawer

v3.2
wxg0103 2025-09-26 18:23:21 +08:00
parent cc0eef326b
commit d466d0f512
2 changed files with 21 additions and 13 deletions

View File

@ -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>

View File

@ -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>