| | |
| | | v-if="dialogType === 'add'" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-width="120px"> |
| | | label-width="140px" |
| | | label-position="top"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="危险源" |
| | |
| | | <span>{{ form.name }}</span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="危险源类型"> |
| | | <span>{{ getTypeLabel(form.type) }}</span> |
| | | <el-tag type="info"> |
| | | {{ getTypeLabel(form.type) }} |
| | | </el-tag> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="所在位置"> |
| | | <span>{{ form.location }}</span> |
| | |
| | | v-if="dialogType === 'edit'" |
| | | :model="form" |
| | | :rules="rules1" |
| | | label-width="120px"> |
| | | label-width="140px" |
| | | label-position="top"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="归还人" |
| | |
| | | </el-form> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">取消</el-button> |
| | | <el-button type="primary" |
| | | @click="submitForm">确定</el-button> |
| | | <el-button @click="dialogVisible = false">取消</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | |
| | | <div> |
| | | <el-table :data="safeHazardList" |
| | | border |
| | | ref="safeHazardTableRef" |
| | | v-loading="safeHazardLoading" |
| | | style="width: 100%" |
| | | @row-click="handleSafeHazardSelect"> |
| | | :selection="selectedSafeHazardIds" |
| | | @selection-change="handleSafeHazardSelectionChange" |
| | | style="width: 100%"> |
| | | <el-table-column type="selection" |
| | | width="55" /> |
| | | <el-table-column prop="code" |
| | | label="危险源编码" |
| | | width="180" |
| | |
| | | </div> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" |
| | | @click="handleSafeHazardSelect">确定</el-button> |
| | | <el-button @click="safeHazardSelectVisible = false">取消</el-button> |
| | | </span> |
| | | </template> |
| | |
| | | // 表格列配置 |
| | | const tableColumn = ref([ |
| | | { |
| | | label: "领用单号", |
| | | prop: "materialRecordCode", |
| | | width: 130, |
| | | showOverflowTooltip: true, |
| | | }, |
| | | { |
| | | label: "危险源编码", |
| | | prop: "code", |
| | | showOverflowTooltip: true, |
| | |
| | | showOverflowTooltip: true, |
| | | }, |
| | | { |
| | | label: "单号", |
| | | prop: "materialRecordCode", |
| | | showOverflowTooltip: true, |
| | | }, |
| | | { |
| | | dataType: "action", |
| | | label: "操作", |
| | | align: "center", |
| | | fixed: "right", |
| | | width: 200, |
| | | width: 130, |
| | | operation: [ |
| | | { |
| | | name: "归还", |
| | |
| | | } |
| | | }; |
| | | const handleApplyQtyChange = () => { |
| | | if (Number(form.value.applyQty) < 0) { |
| | | ElMessage.error("领用数量不能小于0"); |
| | | form.value.applyQty = 0; |
| | | return; |
| | | } |
| | | if (form.value.applyQty > valueItem.value.stockQty) { |
| | | ElMessage.error("领用数量不能大于库存数量"); |
| | | form.value.applyQty = ""; |
| | | } |
| | | }; |
| | | const selectedSafeHazardIds = ref([]); |
| | | |
| | | // 开始自动刷新 |
| | | const startAutoRefresh = () => { |
| | |
| | | const fetchSafeHazardList = () => { |
| | | safeHazardLoading.value = true; |
| | | return safeHazardListPage({ |
| | | page: safeHazardPage.value.current, |
| | | current: safeHazardPage.value.current, |
| | | size: safeHazardPage.value.size, |
| | | }) |
| | | .then(res => { |
| | |
| | | }); |
| | | }; |
| | | |
| | | const handleSafeHazardSelect = item => { |
| | | const handleSafeHazardSelectionChange = selection => { |
| | | // 只保留最后一个选中的项 |
| | | if (selection.length > 1) { |
| | | const lastSelected = selection[selection.length - 1]; |
| | | selectedSafeHazardIds.value = [lastSelected]; |
| | | proxy.$refs.safeHazardTableRef.clearSelection(); |
| | | proxy.$refs.safeHazardTableRef.toggleRowSelection(lastSelected, true); |
| | | } else if (selection.length === 1) { |
| | | selectedSafeHazardIds.value = [selection[0]]; |
| | | } else { |
| | | selectedSafeHazardIds.value = []; |
| | | } |
| | | }; |
| | | |
| | | const handleSafeHazardSelect = () => { |
| | | if (!selectedSafeHazardIds.value.length) { |
| | | ElMessage.error("请选择一个危险源"); |
| | | return; |
| | | } |
| | | |
| | | valueItem.value = { |
| | | ...item, |
| | | ...selectedSafeHazardIds.value[0], |
| | | }; |
| | | valueItem.value.type = getTypeLabel(valueItem.value.type); |
| | | form.value.safeHazardId = item.id; |
| | | form.value.safeHazardId = selectedSafeHazardIds.value[0].id; |
| | | safeHazardSelectVisible.value = false; |
| | | }; |
| | | |
| | |
| | | const pagination1 = obj => { |
| | | page.value.current = obj.page; |
| | | page.value.size = obj.limit; |
| | | handleQuery(); |
| | | getList(); |
| | | }; |
| | | |
| | | // 选择变化处理 |
| | | const handleSelectionChange = selection => { |
| | | selectedIds.value = selection.map(item => item.id); |
| | | // 主表格也只保留最后一个选中的项 |
| | | if (selection.length > 1) { |
| | | const lastSelected = selection[selection.length - 1]; |
| | | selectedIds.value = [lastSelected.id]; |
| | | } else if (selection.length === 1) { |
| | | selectedIds.value = [selection[0].id]; |
| | | } else { |
| | | selectedIds.value = []; |
| | | } |
| | | }; |
| | | |
| | | // 打开表单 |
| | |
| | | .catch(err => { |
| | | ElMessage.error(err.msg); |
| | | }); |
| | | } else { |
| | | } else if (dialogType.value === "edit") { |
| | | await formRef1.value.validate(); |
| | | safeHazardRecordUpdate({ ...form.value }) |
| | | .then(res => { |
| | |
| | | .catch(err => { |
| | | ElMessage.error(err.msg); |
| | | }); |
| | | } else if (dialogType.value === "view") { |
| | | // 查看模式下不提交表单 |
| | | dialogVisible.value = false; |
| | | } |
| | | } catch (error) { |
| | | console.error("表单验证失败:", error); |