From ae5f1ea03be87c76e0eefd0a00c34dab4163ec56 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 02 九月 2025 15:01:05 +0800
Subject: [PATCH] 启动页样式修改
---
src/pages/equipmentManagement/ledger/detail.vue | 315 +++++++++++++++++++++++++++++----------------------
1 files changed, 178 insertions(+), 137 deletions(-)
diff --git a/src/pages/equipmentManagement/ledger/detail.vue b/src/pages/equipmentManagement/ledger/detail.vue
index 97d76aa..70db8b2 100644
--- a/src/pages/equipmentManagement/ledger/detail.vue
+++ b/src/pages/equipmentManagement/ledger/detail.vue
@@ -1,128 +1,150 @@
<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" :rules="formRules" label-width="110">
<!-- 鍩烘湰淇℃伅 -->
- <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>
-
- <!-- 鎻愪氦鎸夐挳 -->
- <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>
- </view>
- </van-form>
+ <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"
+ :disabled="(form.deviceModel != null && operationType === 'edit')"
+ placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
+ clearable
+ />
+ </u-form-item>
+ <u-form-item label="璁惧鍝佺墝" prop="deviceBrand" required border-bottom>
+ <u-input
+ v-model="form.deviceBrand"
+ placeholder="璇疯緭鍏ヨ澶囧搧鐗�"
+ clearable
+ />
+ </u-form-item>
+ <u-form-item label="渚涘簲鍟�" prop="supplierName" required border-bottom>
+ <u-input
+ v-model="form.supplierName"
+ placeholder="璇疯緭鍏ヤ緵搴斿晢"
+ clearable
+ />
+ </u-form-item>
+ <u-form-item label="瀛樻斁浣嶇疆" prop="storageLocation" required border-bottom>
+ <u-input
+ v-model="form.storageLocation"
+ placeholder="璇疯緭鍏ュ瓨鏀句綅缃�"
+ clearable
+ />
+ </u-form-item>
+ <u-form-item label="鍗曚綅" prop="unit" required border-bottom>
+ <u-input
+ v-model="form.unit"
+ placeholder="璇疯緭鍏ュ崟浣�"
+ clearable
+ />
+ </u-form-item>
+ <u-form-item label="鍚敤鎶樻棫" prop="enableDepreciation" required border-bottom>
+ <u-switch
+ v-model="form.enableDepreciation"
+ :active-value="true"
+ :inactive-value="false"
+ />
+ </u-form-item>
+ <u-form-item label="鏁伴噺" prop="number" required border-bottom>
+ <u-input
+ v-model="form.number"
+ type="number"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ clearable
+ @blur="mathNum"
+ />
+ </u-form-item>
+ <u-form-item label="鍚◣鍗曚环" prop="taxIncludingPriceUnit" required border-bottom>
+ <u-input
+ v-model="form.taxIncludingPriceUnit"
+ type="number"
+ placeholder="璇疯緭鍏ュ惈绋庡崟浠�"
+ clearable
+ @blur="mathNum"
+ />
+ </u-form-item>
+ <u-form-item label="鍚◣鎬讳环" prop="taxIncludingPriceTotal" required border-bottom>
+ <u-input
+ v-model="form.taxIncludingPriceTotal"
+ type="number"
+ placeholder="鑷姩鐢熸垚"
+ disabled
+ />
+ </u-form-item>
+ <u-form-item label="绋庣巼(%)" prop="taxRate" required border-bottom>
+ <u-input
+ v-model="form.taxRate"
+ placeholder="璇烽�夋嫨绋庣巼"
+ readonly
+ @click="showTaxRatePicker = true"
+ />
+ <template #right>
+ <u-icon name="arrow-right" @click="showTaxRatePicker = true"></u-icon>
+ </template>
+ <up-action-sheet
+ :show="showTaxRatePicker"
+ :actions="taxRateActionList"
+ title="閫夋嫨绋庣巼"
+ @select="onTaxRateSelect"
+ @close="showTaxRatePicker = false"
+ />
+ </u-form-item>
+ <u-form-item label="涓嶅惈绋庢�讳环" prop="unTaxIncludingPriceTotal" required border-bottom>
+ <u-input
+ v-model="form.unTaxIncludingPriceTotal"
+ type="number"
+ placeholder="鑷姩鐢熸垚"
+ disabled
+ />
+ </u-form-item>
+ <u-form-item label="褰曞叆鏃ユ湡" prop="createTime" required border-bottom>
+ <u-input
+ v-model="form.createTime"
+ placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
+ readonly
+ @click="showDatePicker"
+ clearable
+ />
+ <template #right>
+ <u-icon name="arrow-right" @click="showDatePicker"></u-icon>
+ </template>
+ </u-form-item>
+ </u-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>
+ </view>
+ </u-form>
- <!-- 绋庣巼閫夋嫨鍣� -->
- <van-popup v-model:show="showTaxRate" position="bottom">
- <van-picker
- :model-value="taxRatePickerValue"
- :columns="taxRateOptions"
- @confirm="onTaxRateConfirm"
- @cancel="showTaxRate = false"
- />
- </van-popup>
-
- <!-- 鏃ユ湡閫夋嫨鍣� -->
- <van-popup v-model:show="showDate" position="bottom">
- <van-date-picker
- v-model="currentDate"
- title="閫夋嫨鏃ユ湡"
+ <!-- 鏃ユ湡閫夋嫨鍣� -->
+<up-datetime-picker
+ :show="showDate"
+ v-model="pickerDateValue"
@confirm="onDateConfirm"
@cancel="showDate = false"
+ mode="date"
/>
- </van-popup>
- </view>
+</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';
@@ -132,7 +154,12 @@
calculateTaxIncludeTotalPrice,
calculateTaxExclusiveTotalPrice,
} from "@/utils/summarizeTable";
-import { showToast } from 'vant';
+const showToast = (message) => {
+ uni.showToast({
+ title: message,
+ icon: 'none'
+ })
+}
defineOptions({
name: "璁惧鍙拌处琛ㄥ崟",
@@ -142,28 +169,38 @@
const formRef = ref(null);
const operationType = ref('');
const loading = ref(false);
-const showTaxRate = ref(false);
-const taxRatePickerValue = ref([]);
const showDate = ref(false);
-const currentDate = ref([new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate()]);
+const pickerDateValue = ref(Date.now());
+const showTaxRatePicker = ref(false);
+const taxRateActionList = ref([
+ { name: '1', value: 1 },
+ { name: '6', value: 6 },
+ { name: '13', value: 13 }
+]);
// 琛ㄥ崟楠岃瘉瑙勫垯
const formRules = {
deviceName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
deviceModel: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
+ deviceBrand: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
supplierName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
+ storageLocation: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
unit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
number: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
taxIncludingPriceUnit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
taxRate: [{ required: true, trigger: "change", message: "璇疯緭鍏�" }],
+ createTime: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
};
// 浣跨敤 ref 澹版槑琛ㄥ崟鏁版嵁
const form = ref({
deviceName: undefined, // 璁惧鍚嶇О
deviceModel: undefined, // 瑙勬牸鍨嬪彿
+ deviceBrand: undefined, // 璁惧鍝佺墝
supplierName: undefined, // 渚涘簲鍟�
+ storageLocation: undefined, // 瀛樻斁浣嶇疆
unit: undefined, // 鍗曚綅
+ enableDepreciation: false, // 鍚敤鎶樻棫
number: undefined, // 鏁伴噺
taxIncludingPriceUnit: undefined, // 鍚◣鍗曚环
taxIncludingPriceTotal: undefined, // 鍚◣鎬讳环
@@ -172,14 +209,7 @@
createTime: dayjs().format("YYYY-MM-DD"), // 褰曞叆鏃ユ湡
});
-// 绋庣巼閫夐」
-const taxRateOptions = computed(() => {
- return [
- { text: '1', value: 1 },
- { text: '6', value: 6 },
- { text: '13', value: 13 }
- ]
-});
+
// 鍔犺浇琛ㄥ崟鏁版嵁
const loadForm = async (id) => {
@@ -191,8 +221,11 @@
if (code == 200) {
form.value.deviceName = data.deviceName;
form.value.deviceModel = data.deviceModel;
+ form.value.deviceBrand = data.deviceBrand || '';
form.value.supplierName = data.supplierName;
+ form.value.storageLocation = data.storageLocation || '';
form.value.unit = data.unit;
+ form.value.enableDepreciation = !!data.enableDepreciation;
form.value.number = data.number;
form.value.taxIncludingPriceUnit = data.taxIncludingPriceUnit;
form.value.taxIncludingPriceTotal = data.taxIncludingPriceTotal;
@@ -237,14 +270,17 @@
form.value = {
deviceName: undefined,
deviceModel: undefined,
+ deviceBrand: undefined,
supplierName: undefined,
+ storageLocation: undefined,
unit: undefined,
+ enableDepreciation: false,
number: undefined,
taxIncludingPriceUnit: undefined,
taxIncludingPriceTotal: undefined,
taxRate: undefined,
unTaxIncludingPriceTotal: undefined,
- createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
+ createTime: dayjs().format("YYYY-MM-DD"),
};
};
@@ -315,16 +351,18 @@
return options.id;
};
-// 鏄剧ず绋庣巼閫夋嫨鍣�
-const showTaxRatePicker = () => {
- showTaxRate.value = true;
-};
+
// 纭绋庣巼閫夋嫨
-const onTaxRateConfirm = ({ selectedValues, selectedOptions }) => {
- form.value.taxRate = selectedOptions[0].value;
- taxRatePickerValue.value = selectedValues;
- showTaxRate.value = false;
+const onTaxRateConfirm = (e) => {
+ form.value.taxRate = e.value;
+ mathNum(); // 閲嶆柊璁$畻
+};
+
+// 閫夋嫨绋庣巼
+const onTaxRateSelect = (e) => {
+ form.value.taxRate = e.value;
+ showTaxRatePicker.value = false;
mathNum(); // 閲嶆柊璁$畻
};
@@ -334,10 +372,12 @@
};
// 纭鏃ユ湡閫夋嫨
-const onDateConfirm = ({ selectedValues }) => {
+const onDateConfirm = (e) => {
// 鍙繚瀛樺勾鏈堟棩锛屼笉鍖呭惈鏃跺垎绉�
- form.value.createTime = selectedValues.join('-');
- currentDate.value = selectedValues;
+ const date = new Date(e.value);
+ form.value.createTime = date.getFullYear() + '-' +
+ String(date.getMonth() + 1).padStart(2, '0') + '-' +
+ String(date.getDate()).padStart(2, '0');
showDate.value = false;
};
@@ -353,6 +393,7 @@
</script>
<style scoped lang="scss">
+@import '@/static/scss/form-common.scss';
.ledger-detail {
min-height: 100vh;
background: #f8f9fa;
--
Gitblit v1.9.3