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">
2025-12-02 18:06:39 +08:00
<el-form ref="formRef" :model="formData" label-width="100px">
2025-11-04 17:58:12 +08:00
<!-- 用户代号 -->
<el-form-item label="用户代号:" prop="yhdh" :rules="[{ required: true, message: '请输入用户代号', trigger: 'change' }]">
2025-12-02 18:06:39 +08:00
<el-input ref="yhdhRef" v-model="formData.yhdh" @change="handleChange" />
2025-11-04 17:58:12 +08:00
</el-form-item>
<!-- 用户姓名 -->
<el-form-item label="用户姓名:">
2025-12-02 18:06:39 +08:00
<el-input v-model="formData.userName" disabled />
2025-11-04 17:58:12 +08:00
</el-form-item>
<!-- 密码输入 -->
<el-form-item label="密码:" prop="mm" :rules="[{ required: true, message: '请输入密码', trigger: 'change' }]">
2025-12-02 18:06:39 +08:00
<el-input v-model="formData.mm" type="password" @keyup.enter="handleConfirm" />
2025-11-04 17:58:12 +08:00
</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({
labPatKey: {
type: Object,
default: () => { }
},
userList: {
type: Array as PropType<UserInfo[]>,
default: () => []
},
title: {
type: String,
default: '请输入锁定人员账号密码'
}
});
const visible = ref(false);
// 表单数据
2025-12-02 18:06:39 +08:00
const formData = ref({
yhdh: '',
userName: '',
mm: '',
})
2025-11-04 17:58:12 +08:00
const formRef = ref();
const yhdhRef = ref();
const open = () => {
visible.value = true
nextTick(() => {
setTimeout(() => {
yhdhRef.value?.focus();
}, 100);
});
}
2025-12-02 18:06:39 +08:00
const emit = defineEmits(["confirm"]);
2025-11-04 17:58:12 +08:00
// 处理确定按钮点击
const handleConfirm = async () => {
if (!formRef.value) return;
// 表单验证
const valid = await formRef.value.validate();
if (valid) {
2025-12-02 18:06:39 +08:00
checkYsUser({ ...formData.value, ...props.labPatKey }).then((res: any) => {
2025-11-04 17:58:12 +08:00
if (res.code == 0) {
2025-12-02 18:06:39 +08:00
emit('confirm', formData.value)
2025-11-04 17:58:12 +08:00
}
})
}
};
// 处理取消按钮点击
const cancel = () => {
2025-12-02 18:06:39 +08:00
formData.value = {
yhdh: '',
userName: '',
mm: '',
}
2025-11-04 17:58:12 +08:00
formRef.value?.resetFields();
visible.value = false
};
const handleChange = (value: string) => {
2025-12-02 18:06:39 +08:00
formData.value.userName = props.userList.find((item: any) => item.userName == value)?.nickName || value
2025-11-04 17:58:12 +08:00
};
defineExpose({
open,
cancel
})
</script>
<style scoped></style>