| | |
| | | <template> |
| | | <view class="ledger-detail"> |
| | | <view class="equipment-detail"> |
| | | <!-- 使用通用页面头部组件 --> |
| | | <PageHeader :title="operationType === 'edit' ? '编辑设备台账' : '新增设备台账'" @back="goBack" /> |
| | | <PageHeader title="设备台账详情" @back="goBack" /> |
| | | |
| | | <!-- 表单内容 --> |
| | | <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-form @submit="sendForm" ref="formRef" label-width="110" input-align="right" error-message-align="right"> |
| | | <!-- 基本信息 --> |
| | | <van-cell-group title="基本信息" inset> |
| | | <van-field |
| | | v-model="form.deviceName" |
| | | label="设备名称" |
| | | placeholder="请输入设备名称" |
| | | :rules="formRules.deviceName" |
| | | required |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.deviceModel" |
| | | label="规格型号" |
| | | placeholder="请输入规格型号" |
| | | :readonly="form.deviceModel != null && operationType === 'edit'" |
| | | :rules="formRules.deviceModel" |
| | | required |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.supplierName" |
| | | label="供应商" |
| | | required |
| | | placeholder="请输入供应商" |
| | | :rules="formRules.supplierName" |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.unit" |
| | | label="单位" |
| | | required |
| | | placeholder="请输入单位" |
| | | :rules="formRules.unit" |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.taxRate" |
| | | required |
| | | label="税率(%)" |
| | | placeholder="请选择" |
| | | readonly |
| | | :rules="formRules.taxRate" |
| | | @click="showTaxRatePicker" |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.number" |
| | | label="数量" |
| | | required |
| | | type="number" |
| | | placeholder="请输入数量" |
| | | :rules="formRules.number" |
| | | @blur="mathNum" |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.taxIncludingPriceUnit" |
| | | label="含税单价" |
| | | required |
| | | type="number" |
| | | placeholder="请输入含税单价" |
| | | :rules="formRules.taxIncludingPriceUnit" |
| | | @blur="mathNum" |
| | | clearable |
| | | /> |
| | | <van-field |
| | | v-model="form.taxIncludingPriceTotal" |
| | | label="含税总价" |
| | | placeholder="自动生成" |
| | | readonly |
| | | /> |
| | | <van-field |
| | | v-model="form.unTaxIncludingPriceTotal" |
| | | label="不含税总价" |
| | | placeholder="自动生成" |
| | | readonly |
| | | /> |
| | | <van-field |
| | | v-model="form.createTime" |
| | | label="录入日期" |
| | | placeholder="请选择" |
| | | readonly |
| | | @click="showDatePicker" |
| | | required |
| | | clearable |
| | | /> |
| | | </van-cell-group> |
| | | <u-cell-group title="基本信息"> |
| | | <u-form-item label="设备名称" prop="deviceName" required border-bottom> |
| | | <u-input |
| | | v-model="form.deviceName" |
| | | placeholder="请输入设备名称" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="规格型号" prop="deviceModel" required border-bottom> |
| | | <u-input |
| | | v-model="form.deviceModel" |
| | | placeholder="请输入规格型号" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="设备编号" prop="deviceNumber" required border-bottom> |
| | | <u-input |
| | | v-model="form.deviceNumber" |
| | | placeholder="请输入设备编号" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="购买日期" prop="purchaseDate" required border-bottom> |
| | | <u-input |
| | | v-model="form.purchaseDate" |
| | | placeholder="请选择购买日期" |
| | | readonly |
| | | @click="showDatePicker" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="购买价格" prop="purchasePrice" required border-bottom> |
| | | <u-input |
| | | v-model="form.purchasePrice" |
| | | type="number" |
| | | placeholder="请输入购买价格" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="供应商" prop="supplier" required border-bottom> |
| | | <u-input |
| | | v-model="form.supplier" |
| | | placeholder="请输入供应商" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="使用部门" prop="department" required border-bottom> |
| | | <u-input |
| | | v-model="form.department" |
| | | placeholder="请输入使用部门" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="税率" prop="taxRate" required border-bottom> |
| | | <u-input |
| | | v-model="form.taxRate" |
| | | placeholder="请选择税率" |
| | | readonly |
| | | @click="showTaxRatePicker" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="使用状态" prop="status" required border-bottom> |
| | | <u-input |
| | | v-model="form.status" |
| | | placeholder="请输入使用状态" |
| | | clearable |
| | | /> |
| | | </u-form-item> |
| | | <u-form-item label="备注" border-bottom> |
| | | <u-textarea |
| | | v-model="form.remark" |
| | | placeholder="请输入备注" |
| | | :maxlength="200" |
| | | count |
| | | :autoHeight="true" |
| | | /> |
| | | </u-form-item> |
| | | </u-cell-group> |
| | | |
| | | <!-- 提交按钮 --> |
| | | <view class="footer-btns"> |
| | | <van-button class="cancel-btn" @click="goBack">取消</van-button> |
| | | <van-button class="save-btn" native-type="submit" form-type="submit" :loading="loading">保存</van-button> |
| | | <u-button class="cancel-btn" @click="goBack">取消</u-button> |
| | | <u-button class="save-btn" type="primary" @click="sendForm" :loading="loading">保存</u-button> |
| | | </view> |
| | | </van-form> |
| | | </u-form> |
| | | |
| | | <!-- 税率选择器 --> |
| | | <van-popup v-model:show="showTaxRate" position="bottom"> |
| | | <van-picker |
| | | :model-value="taxRatePickerValue" |
| | | <u-popup v-model="showTaxRate" mode="bottom"> |
| | | <u-picker |
| | | v-model="taxRatePickerValue" |
| | | :columns="taxRateOptions" |
| | | @confirm="onTaxRateConfirm" |
| | | @cancel="showTaxRate = false" |
| | | /> |
| | | </van-popup> |
| | | </u-popup> |
| | | |
| | | <!-- 日期选择器 --> |
| | | <van-popup v-model:show="showDate" position="bottom"> |
| | | <van-date-picker |
| | | <u-popup v-model="showDate" mode="bottom"> |
| | | <u-datetime-picker |
| | | v-model="currentDate" |
| | | title="选择日期" |
| | | @confirm="onDateConfirm" |
| | | @cancel="showDate = false" |
| | | /> |
| | | </van-popup> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script setup> |
| | | // 替换 Vant 的 toast |
| | | // import { showToast } from 'vant'; |
| | | |
| | | import { ref, computed, onMounted } from 'vue'; |
| | | import { onShow } from '@dcloudio/uni-app'; |
| | | import PageHeader from '@/components/PageHeader.vue'; |
| | |
| | | calculateTaxIncludeTotalPrice, |
| | | calculateTaxExclusiveTotalPrice, |
| | | } from "@/utils/summarizeTable"; |
| | | import { showToast } from 'vant'; |
| | | const showToast = (message) => { |
| | | uni.showToast({ |
| | | title: message, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | |
| | | defineOptions({ |
| | | name: "设备台账表单", |