| | |
| | | > |
| | | <el-form :model="form" :rules="rules" ref="formRef" label-width="150px"> |
| | | <el-form-item label="领用人" prop="userId"> |
| | | <el-select v-model="form.userId" placeholder="请选择"> |
| | | <el-select |
| | | v-model="form.userId" |
| | | placeholder="请选择" |
| | | :disabled="isViewMode" |
| | | @change="getEquipment" |
| | | > |
| | | <el-option |
| | | v-for="item in userList" |
| | | :key="item.userId" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="设备名称" prop="equipmentId"> |
| | | <el-select v-model="form.equipmentId" placeholder="请选择"> |
| | | <el-select |
| | | v-model="form.equipmentId" |
| | | placeholder="请选择" |
| | | :disabled="isViewMode" |
| | | > |
| | | <el-option |
| | | v-for="item in equipmentList" |
| | | :key="item.id" |
| | |
| | | :min="1" |
| | | :max="maxQuantity || 999" |
| | | style="width: 100%" |
| | | :disabled="isViewMode" |
| | | /> |
| | | <span |
| | | v-if="maxQuantity !== null" |
| | |
| | | > |
| | | </el-form-item> |
| | | <el-form-item label="使用状态" prop="equipmentStatus"> |
| | | <el-select v-model="form.equipmentStatus" placeholder="请选择"> |
| | | <el-option label="启用" :value="1" /> |
| | | <el-option label="禁用" :value="0" /> |
| | | <el-option label="维修中" :value="2" /> |
| | | <el-option label="报废" :value="3" /> |
| | | <el-option label="待领用" :value="4" /> |
| | | <!-- 编辑的时候自动匹配 --> |
| | | <el-select |
| | | v-model="form.equipmentStatus" |
| | | placeholder="请选择" |
| | | :disabled="isViewMode" |
| | | default-first-option |
| | | > |
| | | <el-option label="使用中" :value="1" /> |
| | | <el-option label="已归还" :value="2" :disabled="props.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="使用开始时间" prop="usageStartTime"> |
| | |
| | | style="width: 100%" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | :disabled="isViewMode" |
| | | /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="使用结束时间" prop="usageEndTime"> |
| | |
| | | v-model="form.remarks" |
| | | type="textarea" |
| | | placeholder="请输入备注" |
| | | :disabled="isViewMode" |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <el-button @click="handleClose">取消</el-button> |
| | | <el-button type="primary" @click="handleSubmit">确定</el-button> |
| | | <el-button type="primary" @click="handleSubmit" v-if="!isViewMode" |
| | | >确定</el-button |
| | | > |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | |
| | | import useUserStore from "@/store/modules/user"; |
| | | |
| | | onMounted(() => {}); |
| | | const userStore = useUserStore(); |
| | | let userList = ref([]); |
| | | userStore.getUserList().then((res) => { |
| | |
| | | }); |
| | | // 获取设备列表 |
| | | const equipmentList = ref([]); |
| | | getEquipmentList().then((res) => { |
| | | equipmentList.value = res.data; |
| | | }); |
| | | // 获取最新数据 |
| | | const getEquipment = async () => { |
| | | try { |
| | | await getEquipmentList().then((res) => { |
| | | equipmentList.value = res.data; |
| | | }); |
| | | } catch (error) { |
| | | ElMessage.error("获取设备列表失败"); |
| | | } |
| | | }; |
| | | |
| | | const props = defineProps({ |
| | | modelValue: Boolean, |
| | | formData: { |
| | | type: Object, |
| | | default: () => ({}), |
| | | }, |
| | | beforeClose: { |
| | | type: Function, |
| | | default: () => {}, |
| | | }, |
| | | addOrEdit: { |
| | | type: String, |
| | | default: "add", |
| | | }, |
| | | title: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | equipmentStatus: { |
| | | type: [Number, String], // 允许数字或字符串 |
| | | default: 1, |
| | | }, |
| | | }); |
| | | const maxQuantity = computed(() => { |
| | |
| | | get: () => props.modelValue, |
| | | set: (v) => emit("update:modelValue", v), |
| | | }); |
| | | const isViewMode = computed( |
| | | () => |
| | | props.addOrEdit === "view" || |
| | | props.addOrEdit === "viewRow" || |
| | | Number(props.equipmentStatus) === 2 |
| | | ); |
| | | |
| | | const isEdit = computed(() => !!props.formData?.id); |
| | | const formRef = ref(); |
| | |
| | | userId: "", |
| | | equipmentId: "", |
| | | usageQuantity: 1, |
| | | equipmentStatus: 1, |
| | | equipmentStatus: 1, // 默认使用中 |
| | | usageStartTime: "", |
| | | remarks: "" |
| | | remarks: "", |
| | | }; |
| | | const form = ref({ ...defaultForm }); |
| | | |
| | | // 确保初始化时使用状态有默认值 |
| | | onMounted(() => { |
| | | if ( |
| | | form.value.equipmentStatus === undefined || |
| | | form.value.equipmentStatus === null |
| | | ) { |
| | | console.log(form.value.equipmentStatus); |
| | | form.value.equipmentStatus = 1; |
| | | } |
| | | getEquipment(); |
| | | }); |
| | | |
| | | watch( |
| | | () => props.formData, |
| | | (val) => { |
| | | if (val && Object.keys(val).length > 0) { |
| | | form.value = { ...defaultForm, ...val }; |
| | | // 编辑模式,直接赋值,不使用默认值合并 |
| | | form.value = { ...val }; |
| | | } else { |
| | | // 新建时重置为初始值,防止脏数据 |
| | | // 新增模式,使用默认值 |
| | | form.value = { ...defaultForm }; |
| | | } |
| | | }, |