From b065dca018f69229a05da9c2255309fc45bcd709 Mon Sep 17 00:00:00 2001 From: Seven Date: Sun, 21 Dec 2025 19:22:17 +0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=BB=84=E4=BB=B6=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=AD=97=E6=AE=B5=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0=E8=BE=93=E5=85=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 8 + src/components/ui/file-upload/index.vue | 248 +++++++++++++++++++++ src/components/ui/textarea-label/index.vue | 41 ++++ src/locales/ar.json | 13 +- src/locales/en-US.json | 11 +- src/locales/zh-CN.json | 11 +- src/locales/zh-HK.json | 11 +- src/views/issue/issuing-apply/base.vue | 52 +++-- 8 files changed, 367 insertions(+), 28 deletions(-) create mode 100644 src/components/ui/file-upload/index.vue create mode 100644 src/components/ui/textarea-label/index.vue diff --git a/components.d.ts b/components.d.ts index 521da65..ae3925a 100644 --- a/components.d.ts +++ b/components.d.ts @@ -51,6 +51,7 @@ declare module 'vue' { IonTabButton: typeof import('@ionic/vue')['IonTabButton'] IonTabs: typeof import('@ionic/vue')['IonTabs'] IonText: typeof import('@ionic/vue')['IonText'] + IonTextarea: typeof import('@ionic/vue')['IonTextarea'] IonTitle: typeof import('@ionic/vue')['IonTitle'] IonToolbar: typeof import('@ionic/vue')['IonToolbar'] LayoutDefault: typeof import('./src/components/layout/default.vue')['default'] @@ -62,12 +63,15 @@ declare module 'vue' { UiCollapse: typeof import('./src/components/ui/collapse/index.vue')['default'] UiDatetime: typeof import('./src/components/ui/datetime/index.vue')['default'] UiDivider: typeof import('./src/components/ui/divider/index.vue')['default'] + UiFileUpload: typeof import('./src/components/ui/file-upload/index.vue')['default'] UiInput: typeof import('./src/components/ui/input/index.vue')['default'] UiInputLabel: typeof import('./src/components/ui/input-label/index.vue')['default'] UiResult: typeof import('./src/components/ui/result/index.vue')['default'] UiTabPane: typeof import('./src/components/ui/tab-pane/index.vue')['default'] UiTabs: typeof import('./src/components/ui/tabs/index.vue')['default'] UiTag: typeof import('./src/components/ui/tag/index.vue')['default'] + UiTextarea: typeof import('./src/components/ui/textarea/index.vue')['default'] + UiTextareaLabel: typeof import('./src/components/ui/textarea-label/index.vue')['default'] } } @@ -112,6 +116,7 @@ declare global { const IonTabButton: typeof import('@ionic/vue')['IonTabButton'] const IonTabs: typeof import('@ionic/vue')['IonTabs'] const IonText: typeof import('@ionic/vue')['IonText'] + const IonTextarea: typeof import('@ionic/vue')['IonTextarea'] const IonTitle: typeof import('@ionic/vue')['IonTitle'] const IonToolbar: typeof import('@ionic/vue')['IonToolbar'] const LayoutDefault: typeof import('./src/components/layout/default.vue')['default'] @@ -123,10 +128,13 @@ declare global { const UiCollapse: typeof import('./src/components/ui/collapse/index.vue')['default'] const UiDatetime: typeof import('./src/components/ui/datetime/index.vue')['default'] const UiDivider: typeof import('./src/components/ui/divider/index.vue')['default'] + const UiFileUpload: typeof import('./src/components/ui/file-upload/index.vue')['default'] const UiInput: typeof import('./src/components/ui/input/index.vue')['default'] const UiInputLabel: typeof import('./src/components/ui/input-label/index.vue')['default'] const UiResult: typeof import('./src/components/ui/result/index.vue')['default'] const UiTabPane: typeof import('./src/components/ui/tab-pane/index.vue')['default'] const UiTabs: typeof import('./src/components/ui/tabs/index.vue')['default'] const UiTag: typeof import('./src/components/ui/tag/index.vue')['default'] + const UiTextarea: typeof import('./src/components/ui/textarea/index.vue')['default'] + const UiTextareaLabel: typeof import('./src/components/ui/textarea-label/index.vue')['default'] } \ No newline at end of file diff --git a/src/components/ui/file-upload/index.vue b/src/components/ui/file-upload/index.vue new file mode 100644 index 0000000..4c8752b --- /dev/null +++ b/src/components/ui/file-upload/index.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/src/components/ui/textarea-label/index.vue b/src/components/ui/textarea-label/index.vue new file mode 100644 index 0000000..2d04109 --- /dev/null +++ b/src/components/ui/textarea-label/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/locales/ar.json b/src/locales/ar.json index 67b49a0..6581d53 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -146,8 +146,7 @@ "productValue": "تقييم المنتج", "enterProductValue": "الرجاء إدخال تقييم المنتج (بالدولار الأمريكي)", "assetProof": "إثبات الأصول", - "enterAssetProof": "الرجاء إدخال إثبات الأصول", - "totalSupplyLimit": "الحد الأقصى لإجمالي الإصدار", + "enterAssetProof": "الرجاء إدخال إثبات الأصول", "uploadAssetProof": "تحميل مستندات إثبات الأصول", "totalSupplyLimit": "الحد الأقصى لإجمالي الإصدار", "enterTotalSupplyLimit": "الرجاء إدخال الحد الأقصى لإجمالي الإصدار", "editionName": "اسم فترة الإصدار", "enterEditionName": "الرجاء إدخال اسم فترة الإصدار", @@ -163,6 +162,8 @@ "enterUnitPrice": "الرجاء إدخال سعر الوحدة", "dividendRate": "معدل الأرباح", "enterDividendRate": "معدل الأرباح (مثل 0.01 يمثل 1٪)", + "description": "وصف المنتج", + "enterDescription": "الرجاء إدخال وصف المنتج", "issuePeriodIndex": "فترة الإصدار {index}", "realEstate": "العقارات", "snickers": "الحلوى", @@ -274,10 +275,12 @@ "chat": "الدردشة", "user": "حسابي" }, + "common": { + "failedSendCode": "فشل إرسال رمز التحقق", + "uploadFile": "تحميل ملف", + "files": "ملفات" + }, "auth": { - "common": { - "failedSendCode": "فشل إرسال رمز التحقق." - }, "login": { "title": "تسجيل الدخول", "loginButton": "تسجيل الدخول", diff --git a/src/locales/en-US.json b/src/locales/en-US.json index 9d399a8..4e0fd1a 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -147,6 +147,7 @@ "enterProductValue": "Please enter product valuation (USD)", "assetProof": "Asset Proof", "enterAssetProof": "Please enter asset proof", + "uploadAssetProof": "Upload Asset Proof Documents", "totalSupplyLimit": "Total Supply Limit", "enterTotalSupplyLimit": "Please enter total supply limit", "editionName": "Edition Name", @@ -163,6 +164,8 @@ "enterUnitPrice": "Please enter unit price", "dividendRate": "Dividend Rate", "enterDividendRate": "Dividend rate (e.g., 0.01 for 1%)", + "description": "Product Description", + "enterDescription": "Please enter product description", "issuePeriodIndex": "Issue Period {index}", "realEstate": "Real Estate", "snickers": "Snickers", @@ -274,10 +277,12 @@ "chat": "Chat", "user": "Profile" }, + "common": { + "failedSendCode": "Failed to send verification code", + "uploadFile": "Upload File", + "files": "files" + }, "auth": { - "common": { - "failedSendCode": "Failed to send verification code" - }, "login": { "title": "Log in", "loginButton": "Log in", diff --git a/src/locales/zh-CN.json b/src/locales/zh-CN.json index 30c8b99..42ccea3 100644 --- a/src/locales/zh-CN.json +++ b/src/locales/zh-CN.json @@ -147,6 +147,7 @@ "enterProductValue": "请输入产品估值(美元)", "assetProof": "资产证明", "enterAssetProof": "请输入资产证明", + "uploadAssetProof": "上传资产证明文件", "totalSupplyLimit": "总发行量上限", "enterTotalSupplyLimit": "请输入总发行量上限", "editionName": "发行期名称", @@ -163,6 +164,8 @@ "enterUnitPrice": "请输入单价", "dividendRate": "分红率", "enterDividendRate": "分红率(如0.01代表1%)", + "description": "产品描述", + "enterDescription": "请输入产品描述", "issuePeriodIndex": "发行期 {index}", "realEstate": "房地产", "snickers": "糖果", @@ -274,10 +277,12 @@ "chat": "聊天", "user": "我的" }, + "common": { + "failedSendCode": "发送验证码失败", + "uploadFile": "上传文件", + "files": "个文件" + }, "auth": { - "common": { - "failedSendCode": "发送验证码失败" - }, "login": { "title": "登录", "loginButton": "登录", diff --git a/src/locales/zh-HK.json b/src/locales/zh-HK.json index 562e2d8..b5c1049 100644 --- a/src/locales/zh-HK.json +++ b/src/locales/zh-HK.json @@ -147,6 +147,7 @@ "enterProductValue": "請輸入產品估值(美元)", "assetProof": "資產證明", "enterAssetProof": "請輸入資產證明", + "uploadAssetProof": "上傳資產證明文件", "totalSupplyLimit": "總發行量上限", "enterTotalSupplyLimit": "請輸入總發行量上限", "editionName": "發行期名稱", @@ -163,6 +164,8 @@ "enterUnitPrice": "請輸入單價", "dividendRate": "分紅率", "enterDividendRate": "分紅率(如0.01代表1%)", + "description": "產品描述", + "enterDescription": "請輸入產品描述", "issuePeriodIndex": "發行期 {index}", "realEstate": "房地產", "snickers": "糖果", @@ -274,10 +277,12 @@ "chat": "聊天", "user": "我的" }, + "common": { + "failedSendCode": "發送驗證碼失敗", + "uploadFile": "上傳文件", + "files": "個文件" + }, "auth": { - "common": { - "failedSendCode": "發送驗證碼失敗" - }, "login": { "title": "登錄", "loginButton": "登錄", diff --git a/src/views/issue/issuing-apply/base.vue b/src/views/issue/issuing-apply/base.vue index da57ec7..d45b2b6 100644 --- a/src/views/issue/issuing-apply/base.vue +++ b/src/views/issue/issuing-apply/base.vue @@ -95,19 +95,6 @@ function handleSubmit(values: GenericObject) { -
- - - - -
-
- +