From b9f4936dcc6e81aac179541d0aa443aaaffb3c18 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Wed, 3 Jun 2026 07:50:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E9=94=AE=E7=9B=98=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Bill/BillQuery.vue | 9 - src/components/NumberInput.vue | 116 +++++++++++++ src/store/bill.ts | 4 +- src/views/bill/detail[id].vue | 268 ++++++++++++++++-------------- 4 files changed, 261 insertions(+), 136 deletions(-) create mode 100644 src/components/NumberInput.vue diff --git a/src/components/Bill/BillQuery.vue b/src/components/Bill/BillQuery.vue index 16a1280..6f6d087 100644 --- a/src/components/Bill/BillQuery.vue +++ b/src/components/Bill/BillQuery.vue @@ -14,15 +14,6 @@ - - diff --git a/src/components/NumberInput.vue b/src/components/NumberInput.vue new file mode 100644 index 0000000..18452a4 --- /dev/null +++ b/src/components/NumberInput.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/store/bill.ts b/src/store/bill.ts index b33d1fc..f488a05 100644 --- a/src/store/bill.ts +++ b/src/store/bill.ts @@ -10,7 +10,7 @@ import { queryBillRecordApi, queryBillStatsApi, queryBillSummaryApi, searchBillSummaryApi, updateBillRecordApi } from '@/apis/bill' -import { getCurrentMonth, getCurrentYear, getStartEndDate } from 'vue3-common/utils/dateUtil' +import { formatDate, getCurrentMonth, getCurrentYear, getStartEndDate } from 'vue3-common/utils/dateUtil' import { IDateType, ImagePathEnum } from '@/types' import { IDialog, IStatsChart, IHandleApi } from 'vue3-common/types' import { ElMessage } from 'element-plus' @@ -154,7 +154,7 @@ export const useBillStore = defineStore('bill', { bookName: '', category: '', content: '', - date: '', + date: formatDate(new Date()), location: '', payAccount: '', remark: '', diff --git a/src/views/bill/detail[id].vue b/src/views/bill/detail[id].vue index 1f8d045..847b115 100644 --- a/src/views/bill/detail[id].vue +++ b/src/views/bill/detail[id].vue @@ -1,51 +1,79 @@ - + - - - - - - - + + + + + + - - - + + + + + + + + + - - - - - + + + + + + + + + + + - - - - + + + + + + + + + - - - - - - + + + + + + + + + + + + + + +
@@ -124,22 +158,13 @@ import { AmountInput } from 'vue3-common' import { useBillStore } from '@/store/bill.ts' import { useAppStore } from '@/store/app.ts' -import { Location, Document, Plus } from '@element-plus/icons-vue' -import { - ElMessage, - ElMessageBox, - FormRules, - UploadProps, - UploadRawFile, - UploadRequestOptions, - UploadUserFile -} from 'element-plus' +import { Location, Document } from '@element-plus/icons-vue' +import { FormRules, UploadUserFile } from 'element-plus' import { billRecordRules } from '@/utils/element/elRules.ts' -import { nextTick, onMounted, reactive, ref } from 'vue' +import { computed, nextTick, onMounted, reactive, ref } from 'vue' import { IBillCategory } from '@/types/bill.ts' import { commonElMessageBox } from 'vue3-common/utils/elUtil' -import { acceptImageTypes } from '@/utils/file.ts' -import { beforeUploadImage, httpRequestFile } from '@/utils/element/elUpload.ts' +import NumberInput from '@/components/NumberInput.vue' const formRef = ref() const rules = reactive(billRecordRules) @@ -193,30 +218,7 @@ const initImageFileList = () => { }) } -const beforeUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) => { - return beforeUploadImage(rawFile) -} - -const httpRequest: UploadProps['httpRequest'] = async (options: UploadRequestOptions): Promise => { - return await httpRequestFile(billStore.billImagePath, options) -} - -const handleSuccess = (response: string) => { - billStore.currentBillRecord.imageList.push(response) -} - -const handleExceed: UploadProps['onExceed'] = () => { - ElMessage.warning('最多上传3张图片') -} - -const handleRemove: UploadProps['onRemove'] = (uploadFile) => { - const index = imageFileList.value.findIndex((item) => item.uid === uploadFile.uid) - billStore.currentBillRecord.imageList.splice(index, 1) -} - -const beforeRemove: UploadProps['beforeRemove'] = () => { - return ElMessageBox.confirm('确认删除该文件?').then(() => true, () => false) -} +const amountStr = computed(() => billStore.currentBillRecord.amount.toString()) /** * 获取账单类型名称 @@ -293,3 +295,19 @@ const deleteClick = () => { }) } + +