113 lines
2.7 KiB
Vue
Raw Normal View History

2025-11-04 17:58:12 +08:00
<template>
<div>
<el-dialog v-model="visible" :title="title" :width="500" :close-on-click-modal="false" :draggable="true">
<el-form ref="formRef" :model="formValue" label-width="100px">
<!-- 用户代号 -->
<el-form-item label="用户代号:" prop="yhdh" :rules="[{ required: true, message: '请输入用户代号', trigger: 'change' }]">
<el-input ref="yhdhRef" v-model="formValue.yhdh" @change="handleChange" />
</el-form-item>
<!-- 用户姓名 -->
<el-form-item label="用户姓名:">
<el-input v-model="formValue.userName" disabled />
</el-form-item>
<!-- 密码输入 -->
<el-form-item label="密码:" prop="mm" :rules="[{ required: true, message: '请输入密码', trigger: 'change' }]">
<el-input v-model="formValue.mm" type="password" @keyup.enter="handleConfirm" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="handleConfirm"> 确定 </el-button>
<el-button @click="cancel"> 取消 </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup lang="ts">
import { checkYsUser } from '@/api/liswork/work/LisWork'
interface UserInfo {
usenName: string,
nickName: string,
}
const props = defineProps({
formValue: {
type: Object,
default: {
yhdh: '',
userName: '',
mm: '',
}
},
labPatKey: {
type: Object,
default: () => { }
},
userList: {
type: Array as PropType<UserInfo[]>,
default: () => []
},
title: {
type: String,
default: '请输入锁定人员账号密码'
}
});
const visible = ref(false);
// 表单数据
const formRef = ref();
const yhdhRef = ref();
const open = () => {
visible.value = true
nextTick(() => {
setTimeout(() => {
yhdhRef.value?.focus();
}, 100);
});
}
const emit = defineEmits(["confirm", "cancel",]);
// 处理确定按钮点击
const handleConfirm = async () => {
if (!formRef.value) return;
// 表单验证
const valid = await formRef.value.validate();
if (valid) {
checkYsUser({ ...props.formValue, ...props.labPatKey }).then((res: any) => {
if (res.code == 0) {
emit('confirm', props.formValue)
}
})
}
};
// 处理取消按钮点击
const cancel = () => {
formRef.value?.resetFields();
visible.value = false
emit('cancel',)
};
const handleChange = (value: string) => {
props.formValue.userName = props.userList.find((item: any) => item.userName == value)?.nickName
};
defineExpose({
open,
cancel
})
</script>
<style scoped></style>