| | |
| | | <u-form @submit="sendForm" ref="formRef" :model="form" :rules="formRules" label-width="110"> |
| | | <!-- 基本信息 --> |
| | | <u-cell-group title="基本信息"> |
| | | <u-form-item label="工序" prop="productProcessId" required border-bottom> |
| | | <u-input |
| | | v-model="form.productProcessName" |
| | | placeholder="请选择工序" |
| | | readonly |
| | | @click="showProcessPicker = true" |
| | | /> |
| | | <template #right> |
| | | <u-icon name="arrow-right" @click="showProcessPicker = true"></u-icon> |
| | | </template> |
| | | <up-action-sheet |
| | | :show="showProcessPicker" |
| | | :actions="processActionList" |
| | | title="选择工序" |
| | | @select="onProcessSelect" |
| | | @close="showProcessPicker = false" |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="设备名称" prop="deviceName" required border-bottom> |
| | | <u-input |
| | | v-model="form.deviceName" |
| | |
| | | import { onShow } from '@dcloudio/uni-app'; |
| | | import PageHeader from '@/components/PageHeader.vue'; |
| | | import { getLedgerById, addLedger, editLedger } from '@/api/equipmentManagement/ledger'; |
| | | import { list as getProductProcessList } from '@/api/qualityManagement/materialInspection.js'; |
| | | import dayjs from "dayjs"; |
| | | import { |
| | | calculateTaxIncludeTotalPrice, |
| | |
| | | const showDate = ref(false); |
| | | const pickerDateValue = ref(Date.now()); |
| | | const showTaxRatePicker = ref(false); |
| | | const showProcessPicker = ref(false); |
| | | const taxRateActionList = ref([ |
| | | { name: '1', value: 1 }, |
| | | { name: '6', value: 6 }, |
| | | { name: '13', value: 13 } |
| | | ]); |
| | | const processList = ref([]); |
| | | const processActionList = computed(() => |
| | | (processList.value || []).map((item) => ({ |
| | | name: item.name, |
| | | value: item.id |
| | | })) |
| | | ); |
| | | |
| | | // 表单验证规则 |
| | | const formRules = { |
| | |
| | | supplierName: [{ required: true, trigger: "blur", message: "请输入" }], |
| | | storageLocation: [{ required: true, trigger: "blur", message: "请输入" }], |
| | | unit: [{ required: true, trigger: "blur", message: "请输入" }], |
| | | productProcessId: [{ required: true, trigger: "change", message: "请选择工序" }], |
| | | // 数字类型字段需要特殊处理,确保有数值时不会触发必填校验 |
| | | number: [{ |
| | | required: true, |
| | |
| | | storageLocation: undefined, // 存放位置 |
| | | unit: undefined, // 单位 |
| | | enableDepreciation: false, // 启用折旧 |
| | | productProcessId: undefined, // 工序ID |
| | | productProcessName: undefined, // 工序名称 |
| | | number: undefined, // 数量 |
| | | taxIncludingPriceUnit: undefined, // 含税单价 |
| | | taxIncludingPriceTotal: undefined, // 含税总价 |
| | |
| | | form.value.storageLocation = data.storageLocation || ''; |
| | | form.value.unit = data.unit; |
| | | form.value.enableDepreciation = !!data.enableDepreciation; |
| | | form.value.productProcessId = data.productProcessId; |
| | | form.value.productProcessName = |
| | | data.productProcessName || |
| | | processList.value.find((item) => item.id == data.productProcessId)?.name || |
| | | ''; |
| | | form.value.number = data.number; |
| | | form.value.taxIncludingPriceUnit = data.taxIncludingPriceUnit; |
| | | form.value.taxIncludingPriceTotal = data.taxIncludingPriceTotal; |
| | |
| | | } else if (!form.value.unit) { |
| | | isValid = false; |
| | | errorMessage = '请输入单位'; |
| | | } else if (!form.value.productProcessId) { |
| | | isValid = false; |
| | | errorMessage = '请选择工序'; |
| | | } |
| | | |
| | | // 检查数字类型必填字段 |
| | |
| | | mathNum(); // 重新计算 |
| | | }; |
| | | |
| | | // 获取工序列表 |
| | | const getProcessList = async () => { |
| | | try { |
| | | const res = await getProductProcessList(); |
| | | processList.value = res?.data || []; |
| | | } catch (e) { |
| | | processList.value = []; |
| | | } |
| | | }; |
| | | |
| | | // 选择工序 |
| | | const onProcessSelect = (e) => { |
| | | form.value.productProcessId = e.value; |
| | | form.value.productProcessName = e.name; |
| | | showProcessPicker.value = false; |
| | | }; |
| | | |
| | | // 显示日期选择器 |
| | | const showDatePicker = () => { |
| | | showDate.value = true; |
| | |
| | | |
| | | onMounted(() => { |
| | | // 页面加载时获取参数 |
| | | getProcessList(); |
| | | getPageParams(); |
| | | }); |
| | | </script> |