159 lines
3.7 KiB
Vue
Raw Normal View History

2025-11-10 16:52:03 +08:00
<template>
<div class="detail-container">
<el-form
ref="formRef"
label-position="right"
label-width="150px"
style="max-height: 60vh; overflow-y: auto; padding-right: 50px"
>
<el-form-item label="人员:">
<el-select
v-model="ryxx"
filterable
remote
reserve-keyword
placeholder="输入人员名称 / 联系方式 查询"
:remote-method="remoteMethod"
:loading="loading"
@change="handleSelect"
value-key="userId"
>
<el-option
v-for="item in selectOptions"
:key="item.userId"
:label="item.realName"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="岗位:">
<el-input v-model="form.gw" />
</el-form-item>
<el-form-item label="养护站:">
<el-select
v-model="yhzmc"
filterable
remote
reserve-keyword
placeholder="输入养护站名称查询"
:remote-method="yhzremoteMethod"
:loading="loading"
@change="handleYhzSelect"
value-key="id"
:disabled="disabled"
>
<el-option
v-for="item in selectYhzOptions"
:key="item.id"
:label="item.mc"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="人员角色:">
<el-select v-model="form.ryjs" placeholder="请选择人员角色">
<el-option label="负责人" value="1"></el-option>
<el-option label="普通工作人员" value="2"></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
</template>
<script setup>
import { ref, onMounted, watch } from "vue";
const formRef = ref(null);
defineExpose({ formRef });
const props = defineProps({
detailData: {
type: Object,
default: () => ({}),
},
form: {
type: Object,
default: () => ({}),
},
getUserList: {
type: Function,
default: () => () => {},
},
treeData: {
type: Array,
default: () => [],
},
yhzid: {
type: String,
default: "",
},
yhzmc: {
type: String,
default: "",
},
getYhzList: {
type: Function,
default: () => () => {},
},
});
const ryxx = ref("");
const loading = ref(false);
const selectOptions = ref([]);
// 选择人员筛选
const remoteMethod = async (query) => {
loading.value = true;
const res = await props.getUserList(query);
if (res) {
selectOptions.value = res;
}
loading.value = false;
};
// 选择人员
const handleSelect = (value) => {
props.form.xm = value.realName;
props.form.sjhm = value.phone;
props.form.userId = value.userId;
};
const yhzmc = ref(props.yhzmc);
const disabled = ref(false);
const selectYhzOptions = ref([]);
// 选择养护站筛选
const yhzremoteMethod = async (query) => {
loading.value = true;
const res = await props.getYhzList(query);
if (res) {
selectYhzOptions.value = res;
}
loading.value = false;
};
// 选择养护站
const handleYhzSelect = (value) => {
yhzmc.value = value.mc;
props.form.yhzid = value.id;
};
onMounted(async () => {
if (props.yhzid) {
disabled.value = true;
props.form.yhzid = props.yhzid;
} else {
const res2 = await props.getYhzList();
if (res2) {
selectYhzOptions.value = res2;
}
}
const res = await props.getUserList();
if (res) {
selectOptions.value = res;
}
});
</script>
<style>
</style>