| | |
| | | <el-form :model="form" label-width="120px" :rules="formRules" ref="formRef"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="所属区域" prop="areaId"> |
| | | <el-tree-select |
| | | v-model="form.areaId" |
| | | :data="areaOptions" |
| | | :props="areaTreeProps" |
| | | node-key="id" |
| | | value-key="id" |
| | | check-strictly |
| | | clearable |
| | | filterable |
| | | placeholder="请选择所属区域" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设备名称" prop="deviceName"> |
| | | <el-input v-model="form.deviceName" placeholder="请输入设备名称" /> |
| | | </el-form-item> |
| | |
| | | <el-form-item label="数量" prop="number"> |
| | | <el-input-number :min="1" style="width: 100%" |
| | | v-model="form.number" |
| | | disabled |
| | | placeholder="请输入数量" |
| | | @change="mathNum" |
| | | /> |
| | |
| | | import useFormData from "@/hooks/useFormData"; |
| | | // import useUserStore from "@/store/modules/user"; |
| | | import { getLedgerById } from "@/api/equipmentManagement/ledger"; |
| | | import { getDeviceAreaTree } from "@/api/equipmentManagement/deviceArea"; |
| | | import dayjs from "dayjs"; |
| | | import { |
| | | calculateTaxIncludeTotalPrice, |
| | | calculateTaxExclusiveTotalPrice, |
| | | } from "@/utils/summarizeTable"; |
| | | import { ElMessage } from "element-plus"; |
| | | import {ref} from "vue"; |
| | | import { ref, onMounted } from "vue"; |
| | | |
| | | defineOptions({ |
| | | name: "设备台账表单", |
| | | }); |
| | | const formRef = ref(null); |
| | | const operationType = ref(''); |
| | | const areaOptions = ref([]); |
| | | const areaTreeProps = { |
| | | label: "areaName", |
| | | children: "children", |
| | | }; |
| | | // 设备类型固定选项 |
| | | const deviceTypeOptions = ref([ |
| | | '生产设备', |
| | |
| | | '其他设备' |
| | | ]); |
| | | const formRules = { |
| | | areaId: [{ required: true, trigger: "change", message: "请选择所属区域" }], |
| | | deviceName: [{ required: true, trigger: "blur", message: "请输入" }], |
| | | deviceModel: [{ required: true, trigger: "blur", message: "请输入" }], |
| | | type: [{ required: true, trigger: "change", message: "请选择或输入设备类型" }], |
| | |
| | | } |
| | | |
| | | const { form, resetForm } = useFormData({ |
| | | areaId: undefined, // 区域ID |
| | | deviceName: undefined, // 设备名称 |
| | | deviceModel: undefined, // 规格型号 |
| | | deviceBrand: undefined, // 设备品牌 |
| | |
| | | } |
| | | const { code, data } = await getLedgerById(id); |
| | | if (code == 200) { |
| | | form.areaId = data.areaId; |
| | | form.deviceName = data.deviceName; |
| | | form.deviceModel = data.deviceModel; |
| | | form.deviceBrand = data.deviceBrand; |
| | |
| | | form.planRuntimeTime = undefined; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | const setAreaId = (areaId) => { |
| | | form.areaId = areaId; |
| | | }; |
| | | |
| | | const loadAreaOptions = async () => { |
| | | const res = await getDeviceAreaTree(); |
| | | areaOptions.value = Array.isArray(res?.data) ? res.data : Array.isArray(res) ? res : []; |
| | | }; |
| | | |
| | | const handleDeviceTypeChange = (value) => { |
| | |
| | | clearValidate(); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | loadAreaOptions(); |
| | | }); |
| | | |
| | | defineExpose({ |
| | | form, |
| | | loadForm, |
| | | setAreaId, |
| | | resetForm, |
| | | clearValidate, |
| | | resetFormAndValidate, |