gaoluyang
6 天以前 7a0ffb0048adeda9ebfbca1d0b525eb224c173e3
src/pages/equipmentManagement/upkeep/add.vue
@@ -1,85 +1,75 @@
<template>
   <view class="upkeep-add">
      <!-- 使用通用页面头部组件 -->
      <PageHeader title="新增保养" @back="goBack" />
      <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="deviceName" required border-bottom>
               <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="规格型号" border-bottom>
               <u-input
                  v-model="form.deviceModel"
                  placeholder="请输入规格型号"
                  readonly
                  clearable
               />
            </u-form-item>
            <u-form-item label="保养日期" prop="upkeepDate" required border-bottom>
               <u-input
                  v-model="form.upkeepDate"
                  placeholder="请选择保养日期"
                  readonly
                  @click="showDatePicker"
                  clearable
               />
            </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.maintenancePlanTime"
               label="计划保养日期"
               placeholder="请选择计划保养日期"
               :rules="formRules.maintenancePlanTime"
               required
               readonly
               @click="showDatePicker"
               clearable
            />
         </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>
<script setup>
// 替换 Vant 的 toast
// import { showToast } from 'vant';
// 替换 toast 方法
const showToast = (message) => {
  uni.showToast({
    title: message,
    icon: 'none'
  })
}
import { ref, computed, onMounted, onUnmounted } from 'vue';
import { onShow } from '@dcloudio/uni-app';
import PageHeader from '@/components/PageHeader.vue';