diff --git a/App.vue b/App.vue index 07beaf8..0079315 100644 --- a/App.vue +++ b/App.vue @@ -344,19 +344,19 @@ } .text-sm { - font-size: 24rpx; + font-size: 26rpx; } .text-base { - font-size: 28rpx; + font-size: 30rpx; } .text-lg { - font-size: 32rpx; + font-size: 34rpx; } .text-xl { - font-size: 36rpx; + font-size: 38rpx; } .leading-normal { diff --git a/components/form-template/cell-style.css b/components/form-template/cell-style.css index 80a95d6..1f82078 100644 --- a/components/form-template/cell-style.css +++ b/components/form-template/cell-style.css @@ -21,11 +21,11 @@ display: flex; align-items: center; text-align: right; - font-size: 28rpx; + font-size: 30rpx; } .form__placeholder { - font-size: 28rpx; + font-size: 30rpx; color: #666; } @@ -49,7 +49,7 @@ align-items: center; padding: 24rpx 30rpx; border-bottom: 1px solid #eee; - font-size: 28rpx; + font-size: 30rpx; } .form-row__label { diff --git a/components/form-template/form-cell/form-diagnosis-picker.vue b/components/form-template/form-cell/form-diagnosis-picker.vue index ec940f3..4fc8822 100644 --- a/components/form-template/form-cell/form-diagnosis-picker.vue +++ b/components/form-template/form-cell/form-diagnosis-picker.vue @@ -84,13 +84,13 @@ function open() { gap: 12rpx; } .label { - font-size: 28rpx; + font-size: 30rpx; color: #111827; font-weight: 700; } .required { color: #ff4d4f; - font-size: 28rpx; + font-size: 30rpx; } .right { display: flex; @@ -100,7 +100,7 @@ function open() { justify-content: flex-end; } .value { - font-size: 28rpx; + font-size: 30rpx; color: #111827; max-width: 440rpx; overflow: hidden; diff --git a/components/form-template/form-cell/form-files.vue b/components/form-template/form-cell/form-files.vue index 0ce6b67..27d29de 100644 --- a/components/form-template/form-cell/form-files.vue +++ b/components/form-template/form-cell/form-files.vue @@ -40,13 +40,23 @@ const files = computed(() => { if (Array.isArray(v)) { return v .map((i) => { - if (typeof i === 'string') return { url: normalizeFileUrl(i) }; - if (i && typeof i === 'object' && i.url) return { url: normalizeFileUrl(String(i.url)) }; + if (typeof i === 'string') return { url: normalizeFileUrl(i), name: getFileNameFromUrl(i) }; + if (i && typeof i === 'object' && i.url) { + const url = normalizeFileUrl(String(i.url)); + return { + ...i, + url, + name: i.name || i.fileName || getFileNameFromUrl(url), + }; + } return null; }) .filter(Boolean); } - if (typeof v === 'string' && v) return [{ url: normalizeFileUrl(v) }]; + if (typeof v === 'string' && v) { + const url = normalizeFileUrl(v); + return [{ url, name: getFileNameFromUrl(url) }]; + } return []; }); @@ -74,7 +84,21 @@ async function add() { } const url = await chooseAndUploadImage({ count: 1 }); if (!url) return; - emitValue([...files.value, { url }]); + emitValue([...files.value, { url, name: getFileNameFromUrl(url) }]); +} + +function getFileNameFromUrl(url) { + const cleanUrl = String(url || '').split('?')[0].split('#')[0]; + const rawName = cleanUrl.split('/').pop() || ''; + if (!rawName) return ''; + + let fileName = rawName; + try { + fileName = decodeURIComponent(rawName); + } catch (error) { + fileName = rawName; + } + return fileName.replace(/^\d{10,}[-_]/, ''); } @@ -88,7 +112,7 @@ async function add() { } .files-label { - font-size: 28rpx; + font-size: 30rpx; line-height: 42rpx; } @@ -124,7 +148,7 @@ async function add() { background: rgba(0, 0, 0, 0.55); color: #fff; border-radius: 18rpx; - font-size: 28rpx; + font-size: 30rpx; } .add { @@ -139,7 +163,7 @@ async function add() { } .plus { - font-size: 56rpx; + font-size: 58rpx; line-height: 56rpx; } diff --git a/components/form-template/form-cell/form-input.vue b/components/form-template/form-cell/form-input.vue index 0f944a8..8badde4 100644 --- a/components/form-template/form-cell/form-input.vue +++ b/components/form-template/form-cell/form-input.vue @@ -68,7 +68,7 @@ function change(e) { .form-input { flex-grow: 1; - font-size: 28rpx; + font-size: 30rpx; } .appendText { diff --git a/components/form-template/form-cell/form-multiSelectAndOther.vue b/components/form-template/form-cell/form-multiSelectAndOther.vue index cb1fa20..37fdf3a 100644 --- a/components/form-template/form-cell/form-multiSelectAndOther.vue +++ b/components/form-template/form-cell/form-multiSelectAndOther.vue @@ -126,7 +126,7 @@ function onOtherInput(e) { } .label { - font-size: 28rpx; + font-size: 30rpx; line-height: 42rpx; } @@ -142,7 +142,7 @@ function onOtherInput(e) { padding: 12rpx 20rpx; border: 1px solid #ddd; border-radius: 8rpx; - font-size: 26rpx; + font-size: 28rpx; text-align: center; color: #333; background: #fff; @@ -160,7 +160,7 @@ function onOtherInput(e) { .other-input { width: 100%; - font-size: 28rpx; + font-size: 30rpx; padding: 18rpx 20rpx; border: 1px solid #eee; border-radius: 8rpx; diff --git a/components/form-template/form-cell/form-positive-find.vue b/components/form-template/form-cell/form-positive-find.vue index 0be0a5c..43dcd43 100644 --- a/components/form-template/form-cell/form-positive-find.vue +++ b/components/form-template/form-cell/form-positive-find.vue @@ -113,13 +113,13 @@ function remove(idx) { gap: 12rpx; } .label { - font-size: 28rpx; + font-size: 30rpx; font-weight: 700; color: #111827; } .required { color: #ff4d4f; - font-size: 28rpx; + font-size: 30rpx; } .list { margin-top: 20rpx; @@ -140,14 +140,14 @@ function remove(idx) { min-width: 0; } .item-title { - font-size: 28rpx; + font-size: 30rpx; color: #111827; font-weight: 600; word-break: break-all; } .item-sub { margin-top: 12rpx; - font-size: 26rpx; + font-size: 28rpx; color: #6b7280; white-space: pre-wrap; word-break: break-all; @@ -160,7 +160,7 @@ function remove(idx) { padding-top: 4rpx; } .text-action { - font-size: 26rpx; + font-size: 28rpx; line-height: 1; } .text-action.edit { @@ -171,7 +171,7 @@ function remove(idx) { } .empty { margin-top: 20rpx; - font-size: 26rpx; + font-size: 28rpx; color: #9aa0a6; } diff --git a/components/form-template/form-cell/form-run-time.vue b/components/form-template/form-cell/form-run-time.vue index 15a186a..398933b 100644 --- a/components/form-template/form-cell/form-run-time.vue +++ b/components/form-template/form-cell/form-run-time.vue @@ -79,12 +79,12 @@ function onInput(e, key) { .num { width: 80rpx; text-align: right; - font-size: 28rpx; + font-size: 30rpx; border-bottom: 1px solid #888; } .unit { - font-size: 26rpx; + font-size: 28rpx; color: #333; } diff --git a/components/form-template/form-cell/form-select-mobile.vue b/components/form-template/form-cell/form-select-mobile.vue index 07f84f1..4461f9c 100644 --- a/components/form-template/form-cell/form-select-mobile.vue +++ b/components/form-template/form-cell/form-select-mobile.vue @@ -72,7 +72,7 @@ function onPick(e) { .input { flex: 1; text-align: right; - font-size: 28rpx; + font-size: 30rpx; } .relation { @@ -83,7 +83,7 @@ function onPick(e) { min-width: 180rpx; border-left: 1px solid #eee; padding-left: 16rpx; - font-size: 28rpx; + font-size: 30rpx; } .arrow { diff --git a/components/form-template/form-cell/form-select-other.vue b/components/form-template/form-cell/form-select-other.vue index c432b05..b70ab01 100644 --- a/components/form-template/form-cell/form-select-other.vue +++ b/components/form-template/form-cell/form-select-other.vue @@ -112,7 +112,7 @@ function onOtherInput(e) { .other-input { width: 100%; - font-size: 28rpx; + font-size: 30rpx; padding: 18rpx 20rpx; border: 1px solid #eee; border-radius: 8rpx; diff --git a/components/form-template/form-cell/form-textarea.vue b/components/form-template/form-cell/form-textarea.vue index 7bd3573..f9bc940 100644 --- a/components/form-template/form-cell/form-textarea.vue +++ b/components/form-template/form-cell/form-textarea.vue @@ -99,12 +99,12 @@ function change(e) { .textarea-row { padding: 24rpx 30rpx; border-bottom: 1px solid #eee; - font-size: 28rpx; + font-size: 30rpx; } .form-textarea { width: 100%; - font-size: 28rpx; + font-size: 30rpx; padding: 20rpx; border-radius: 8rpx; box-sizing: border-box; @@ -118,6 +118,6 @@ function change(e) { padding-top: 20rpx; text-align: right; color: #666; - font-size: 24rpx; + font-size: 26rpx; } diff --git a/components/share-actions.vue b/components/share-actions.vue index 2306b1a..991c6be 100644 --- a/components/share-actions.vue +++ b/components/share-actions.vue @@ -60,7 +60,7 @@ function handleSave() { align-items: center; justify-content: center; border-radius: 12rpx; - font-size: 28rpx; + font-size: 30rpx; } .save-btn { diff --git a/pages/case/ai-medical-case-form.vue b/pages/case/ai-medical-case-form.vue index 795feb8..e56ee8a 100644 --- a/pages/case/ai-medical-case-form.vue +++ b/pages/case/ai-medical-case-form.vue @@ -367,7 +367,7 @@ const getRequiredFields = () => { } .item-label { - font-size: 28rpx; + font-size: 30rpx; color: #333333; margin-bottom: 16rpx; } @@ -379,7 +379,7 @@ const getRequiredFields = () => { padding: 0 24rpx; background-color: #f8f9fa; border-radius: 8rpx; - font-size: 28rpx; + font-size: 30rpx; color: #333333; &[disabled] { @@ -399,7 +399,7 @@ const getRequiredFields = () => { padding: 20rpx 24rpx; background-color: #f8f9fa; border-radius: 8rpx; - font-size: 28rpx; + font-size: 30rpx; color: #333333; height: 100px; &[disabled] { @@ -416,7 +416,7 @@ const getRequiredFields = () => { .tips-text { display: block; - font-size: 24rpx; + font-size: 26rpx; color: #666666; line-height: 1.6; margin-bottom: 8rpx; @@ -450,7 +450,7 @@ const getRequiredFields = () => { border-radius: 44rpx; .btn-text { - font-size: 32rpx; + font-size: 34rpx; font-weight: 500; } } diff --git a/pages/case/archive-detail.vue b/pages/case/archive-detail.vue index e033313..4c52441 100644 --- a/pages/case/archive-detail.vue +++ b/pages/case/archive-detail.vue @@ -1,4 +1,4 @@ -