| | |
| | | <PageHeader :title="operationType === 'edit' ? '编辑报修' : '新增报修'" @back="goBack" /> |
| | | |
| | | <!-- 表单内容 --> |
| | | <u-form @submit="sendForm" ref="formRef" label-width="110" input-align="right" error-message-align="right"> |
| | | <van-form @submit="sendForm" ref="formRef" label-width="110px" input-align="right" error-message-align="right" scroll-to-error scroll-to-error-position="center"> |
| | | <!-- 基本信息 --> |
| | | <u-cell-group title="基本信息"> |
| | | <u-form-item label="设备名称" prop="deviceLedgerId" required> |
| | | <u-input |
| | | v-model="deviceNameText" |
| | | placeholder="请选择设备名称" |
| | | readonly |
| | | @click="showDevicePicker" |
| | | clearable |
| | | > |
| | | <template #suffix> |
| | | <u-icon name="scan" @click.stop="startScan" class="scan-icon" /> |
| | | </template> |
| | | </u-input> |
| | | </u-form-item> |
| | | <u-form-item label="规格型号"> |
| | | <u-input |
| | | v-model="form.deviceModel" |
| | | placeholder="请输入规格型号" |
| | | readonly |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="报修日期" prop="repairTime" required> |
| | | <u-input |
| | | v-model="form.repairTime" |
| | | placeholder="请选择报修日期" |
| | | readonly |
| | | @click="showDatePicker" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="报修人" prop="repairName" required> |
| | | <u-input |
| | | v-model="form.repairName" |
| | | placeholder="请输入报修人" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="故障现象" prop="remark" required> |
| | | <u-textarea |
| | | v-model="form.remark" |
| | | placeholder="请输入故障现象" |
| | | :maxlength="200" |
| | | count |
| | | :autoHeight="true" |
| | | /> |
| | | </u-form-item> |
| | | </u-cell-group> |
| | | <van-cell-group title="基本信息" inset> |
| | | <van-field |
| | | v-model="deviceNameText" |
| | | label="设备名称" |
| | | placeholder="请选择设备名称" |
| | | :rules="formRules.deviceLedgerId" |
| | | required |
| | | readonly |
| | | @click="showDevicePicker" |
| | | clearable |
| | | > |
| | | <template #right-icon> |
| | | <van-icon name="scan" @click.stop="startScan" class="scan-icon" /> |
| | | </template> |
| | | </van-field> |
| | | <van-field |
| | | v-model="form.deviceModel" |
| | | label="规格型号" |
| | | placeholder="请输入规格型号" |
| | | readonly |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.repairTime" |
| | | label="报修日期" |
| | | placeholder="请选择报修日期" |
| | | :rules="formRules.repairTime" |
| | | required |
| | | readonly |
| | | @click="showDatePicker" |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.repairName" |
| | | label="报修人" |
| | | placeholder="请输入报修人" |
| | | :rules="formRules.repairName" |
| | | required |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.remark" |
| | | label="故障现象" |
| | | type="textarea" |
| | | rows="3" |
| | | placeholder="请输入故障现象" |
| | | :rules="formRules.remark" |
| | | required |
| | | clearable |
| | | maxlength="200" |
| | | show-word-limit |
| | | /> |
| | | </van-cell-group> |
| | | |
| | | <!-- 提交按钮 --> |
| | | <view class="footer-btns"> |
| | | <u-button class="cancel-btn" @click="goBack">取消</u-button> |
| | | <u-button class="save-btn" type="primary" @click="sendForm" :loading="loading">保存</u-button> |
| | | <van-button class="cancel-btn" @click="goBack">取消</van-button> |
| | | <van-button class="save-btn" native-type="submit" form-type="submit" :loading="loading">保存</van-button> |
| | | </view> |
| | | </u-form> |
| | | </van-form> |
| | | |
| | | <!-- 设备选择器 --> |
| | | <u-popup v-model="showDevice" mode="bottom"> |
| | | <u-picker |
| | | v-model="devicePickerValue" |
| | | <van-popup v-model:show="showDevice" position="bottom"> |
| | | <van-picker |
| | | :model-value="devicePickerValue" |
| | | :columns="deviceColumns" |
| | | @confirm="onDeviceConfirm" |
| | | @cancel="showDevice = false" |
| | | /> |
| | | </u-popup> |
| | | </van-popup> |
| | | |
| | | <!-- 日期选择器 --> |
| | | <u-popup v-model="showDate" mode="bottom"> |
| | | <u-datetime-picker |
| | | <van-popup v-model:show="showDate" position="bottom"> |
| | | <van-date-picker |
| | | v-model="currentDate" |
| | | title="选择日期" |
| | | @confirm="onDateConfirm" |
| | | @cancel="showDate = false" |
| | | /> |
| | | </u-popup> |
| | | </van-popup> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | import { getDeviceLedger } from '@/api/equipmentManagement/ledger'; |
| | | import { addRepair, editRepair, getRepairById } from '@/api/equipmentManagement/repair'; |
| | | import dayjs from "dayjs"; |
| | | // 替换 Vant 的 toast |
| | | // import { showToast } from 'vant'; |
| | | |
| | | // 替换 toast 方法 |
| | | const showToast = (message) => { |
| | | uni.showToast({ |
| | | title: message, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | import { showToast } from 'vant'; |
| | | |
| | | defineOptions({ |
| | | name: "设备报修表单", |