From bd7dd96c732ded6854d47bf77f65e5c64d3d15e2 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期三, 21 五月 2025 13:24:09 +0800 Subject: [PATCH] fix: 修改ui --- packages/components/src/views/electricBillRecharge/electricBillRecharge.vue | 19 + packages/components/src/components/Card/OrderCard.vue | 14 apps/taro/src/components/Layout/PageLayout.vue | 10 apps/taro/src/subpackages/recharge/electricBillRecharge/electricBillRecharge.vue | 42 ++++ packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue | 10 apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue | 14 + packages/components/src/views/electricBillRecharge/ElectricBillRechargeBaseForm.vue | 2 apps/taro/src/subpackages/userAccount/editElectricUserAccount/editElectricUserAccount.vue | 2 packages/components/src/views/GasBillRecharge/GasBillRechargeStep1.vue | 21 + packages/components/src/views/GasBillRecharge/GasBillRechargeStep2.vue | 24 +- apps/taro/src/subpackages/userAccount/editGasUserAccount/InnerPage.vue | 2 packages/components/src/views/userAccount/EditElectricUserAccount.vue | 14 apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue | 2 packages/components/src/views/GasBillRecharge/GasBillRechargeBaseForm.vue | 2 packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue | 120 +++++++---- packages/components/src/views/userAccount/EditPhoneUserAccount.vue | 14 packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue | 130 +++++++----- apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue | 14 + apps/taro/src/subpackages/recharge/gasBillRecharge/gasBillRecharge.vue | 42 ++++ apps/taro/src/subpackages/userAccount/editElectricUserAccount/InnerPage.vue | 2 apps/taro/src/subpackages/userAccount/editPhoneUserAccount/InnerPage.vue | 2 packages/components/src/styles/orderCard.scss | 12 apps/taro/src/subpackages/userAccount/editGasUserAccount/editGasUserAccount.vue | 2 packages/components/src/views/userAccount/EditGasUserAccount.vue | 14 apps/taro/src/subpackages/userAccount/editPhoneUserAccount/editPhoneUserAccount.vue | 2 packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep1.vue | 24 +- packages/components/src/styles/gas.scss | 22 + 27 files changed, 382 insertions(+), 196 deletions(-) diff --git a/apps/taro/src/components/Layout/PageLayout.vue b/apps/taro/src/components/Layout/PageLayout.vue index 02fa48e..84a15dd 100644 --- a/apps/taro/src/components/Layout/PageLayout.vue +++ b/apps/taro/src/components/Layout/PageLayout.vue @@ -1,6 +1,6 @@ <template> <Portal.Host> - <div :class="['page-layout-wrapper', { isWeb: isWeb }]" v-bind="$attrs"> + <div :class="['page-layout-wrapper', { isWeb: isWeb, hasBgColor }]" v-bind="$attrs"> <slot v-if="_showNavigationBar" name="navigationBar"> <CommonNavigationBar v-bind="_commonNavigationBarProps" /> </slot> @@ -72,6 +72,10 @@ type: Number, default: 388, }, + hasBgColor: { + type: Boolean, + default: false, + }, }); setPageTitle(props.title); @@ -121,6 +125,10 @@ .page-layout-wrapper { /* background-color: $body-background-color; */ + &.hasBgColor { + background-color: $body-background-color; + } + .page-layout-scroll-view-wrapper { display: flex; flex-direction: column; diff --git a/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue b/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue index d1ea12e..f18a1bd 100644 --- a/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue +++ b/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue @@ -1,5 +1,5 @@ <template> - <ContentScrollView :paddingH="false" style="background-color: #fff"> + <ContentScrollView hasPaddingTop style="background-color: transparent"> <electricBillRecharge @goPay="goPay" :isDev="isDev" @@ -13,6 +13,8 @@ :showAliPay="!isInWeChat" :showWeixinPay="isInWeChat" @missName="handleMissName" + @editUserAccount="handleEditUserAccount" + @currentChange="emit('currentChange', $event)" /> </ContentScrollView> </template> @@ -29,6 +31,10 @@ defineOptions({ name: 'InnerPage', }); + +const emit = defineEmits<{ + (e: 'currentChange', current: 'step1' | 'step2'): void; +}>(); const isDev = process.env.NODE_ENV === 'development'; @@ -56,4 +62,10 @@ }); } catch (error) {} } + +function handleEditUserAccount(userAccountId: string) { + RouteHelper.navigateTo({ + url: `${RouterPath.editElectricUserAccount}?id=${userAccountId}`, + }); +} </script> diff --git a/apps/taro/src/subpackages/recharge/electricBillRecharge/electricBillRecharge.vue b/apps/taro/src/subpackages/recharge/electricBillRecharge/electricBillRecharge.vue index cd96e69..b698085 100644 --- a/apps/taro/src/subpackages/recharge/electricBillRecharge/electricBillRecharge.vue +++ b/apps/taro/src/subpackages/recharge/electricBillRecharge/electricBillRecharge.vue @@ -1,14 +1,52 @@ <template> - <PageLayout title="鐢佃垂鍏呭��" class="electricBillRecharge-page-wrapper" hasBorder> - <InnerPage /> + <PageLayout + class="electricBillRecharge-page-wrapper" + :style=" + current === 'step2' && { + backgroundImage: `url(${OssAssets.common.PhoneBillRechargePageBg})`, + } + " + :title="current != 'step2' ? title : ''" + > + <template #navigationBar v-if="current === 'step2'"> + <TransparentNavigationBar + :title="title" + :is-absolute="false" + mode="dark" + navigationArrowWhite + > + </TransparentNavigationBar> + </template> + <InnerPage @currentChange="handleCurrentChange" /> </PageLayout> </template> <script setup lang="ts"> import { PageLayout } from '@/components'; import InnerPage from './InnerPage.vue'; +import { OssAssets } from '@/constants'; defineOptions({ name: 'electricBillRecharge', }); + +type Current = 'step1' | 'step2'; + +const title = '鐢佃垂鍏呭��'; + +const current = ref<Current>(); + +function handleCurrentChange(val: Current) { + current.value = val; +} </script> + +<style lang="scss"> +@import '@/styles/common.scss'; + +.electricBillRecharge-page-wrapper { + background-size: 100% 452px; + background-color: $body-background-color; + background-repeat: no-repeat; +} +</style> diff --git a/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue b/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue index a545c37..cee63c6 100644 --- a/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue +++ b/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue @@ -1,5 +1,5 @@ <template> - <ContentScrollView :paddingH="false" style="background-color: #fff"> + <ContentScrollView hasPaddingTop style="background-color: transparent"> <GasBillRecharge @goPay="goPay" :isDev="isDev" @@ -13,6 +13,8 @@ :showAliPay="!isInWeChat" :showWeixinPay="isInWeChat" @missName="handleMissName" + @editUserAccount="handleEditUserAccount" + @currentChange="emit('currentChange', $event)" /> </ContentScrollView> </template> @@ -29,6 +31,10 @@ defineOptions({ name: 'InnerPage', }); + +const emit = defineEmits<{ + (e: 'currentChange', current: 'step1' | 'step2' | 'step3'): void; +}>(); const isDev = process.env.NODE_ENV === 'development'; @@ -56,4 +62,10 @@ }); } catch (error) {} } + +function handleEditUserAccount(userAccountId: string) { + RouteHelper.navigateTo({ + url: `${RouterPath.editGasUserAccount}?id=${userAccountId}`, + }); +} </script> diff --git a/apps/taro/src/subpackages/recharge/gasBillRecharge/gasBillRecharge.vue b/apps/taro/src/subpackages/recharge/gasBillRecharge/gasBillRecharge.vue index a801c75..437bc9a 100644 --- a/apps/taro/src/subpackages/recharge/gasBillRecharge/gasBillRecharge.vue +++ b/apps/taro/src/subpackages/recharge/gasBillRecharge/gasBillRecharge.vue @@ -1,14 +1,52 @@ <template> - <PageLayout title="鐕冩皵鍏呭��" class="gasBillRecharge-page-wrapper" hasBorder> - <InnerPage /> + <PageLayout + class="gasBillRecharge-page-wrapper" + :style=" + current === 'step3' && { + backgroundImage: `url(${OssAssets.common.PhoneBillRechargePageBg})`, + } + " + :title="current != 'step3' ? title : ''" + > + <template #navigationBar v-if="current === 'step3'"> + <TransparentNavigationBar + :title="title" + :is-absolute="false" + mode="dark" + navigationArrowWhite + > + </TransparentNavigationBar> + </template> + <InnerPage @currentChange="handleCurrentChange" /> </PageLayout> </template> <script setup lang="ts"> import { PageLayout } from '@/components'; import InnerPage from './InnerPage.vue'; +import { OssAssets } from '@/constants'; defineOptions({ name: 'gasBillRecharge', }); + +type Current = 'step1' | 'step2' | 'step3'; + +const title = '鐕冩皵鍏呭��'; + +const current = ref<Current>(); + +function handleCurrentChange(val: Current) { + current.value = val; +} </script> + +<style lang="scss"> +@import '@/styles/common.scss'; + +.gasBillRecharge-page-wrapper { + background-size: 100% 452px; + background-color: $body-background-color; + background-repeat: no-repeat; +} +</style> diff --git a/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue b/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue index eaf617a..7b96c66 100644 --- a/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue +++ b/apps/taro/src/subpackages/recharge/phoneBillRecharge/phoneBillRecharge.vue @@ -6,7 +6,7 @@ backgroundImage: `url(${OssAssets.common.PhoneBillRechargePageBg})`, } " - :title="current != 'step2' && title" + :title="current != 'step2' ? title : ''" > <template #navigationBar v-if="current === 'step2'"> <TransparentNavigationBar diff --git a/apps/taro/src/subpackages/userAccount/editElectricUserAccount/InnerPage.vue b/apps/taro/src/subpackages/userAccount/editElectricUserAccount/InnerPage.vue index 1407742..55f4e12 100644 --- a/apps/taro/src/subpackages/userAccount/editElectricUserAccount/InnerPage.vue +++ b/apps/taro/src/subpackages/userAccount/editElectricUserAccount/InnerPage.vue @@ -1,5 +1,5 @@ <template> - <ContentScrollView :paddingH="false"> + <ContentScrollView hasPaddingTop style="background-color: transparent"> <EditElectricUserAccount :id="id" @success="handleSuccess" /> </ContentScrollView> </template> diff --git a/apps/taro/src/subpackages/userAccount/editElectricUserAccount/editElectricUserAccount.vue b/apps/taro/src/subpackages/userAccount/editElectricUserAccount/editElectricUserAccount.vue index c954720..9d34602 100644 --- a/apps/taro/src/subpackages/userAccount/editElectricUserAccount/editElectricUserAccount.vue +++ b/apps/taro/src/subpackages/userAccount/editElectricUserAccount/editElectricUserAccount.vue @@ -1,5 +1,5 @@ <template> - <PageLayout title="缂栬緫" class="editElectricUserAccount-page-wrapper" hasBorder> + <PageLayout title="缂栬緫" class="editElectricUserAccount-page-wrapper" hasBgColor> <InnerPage /> </PageLayout> </template> diff --git a/apps/taro/src/subpackages/userAccount/editGasUserAccount/InnerPage.vue b/apps/taro/src/subpackages/userAccount/editGasUserAccount/InnerPage.vue index e78a700..0db4910 100644 --- a/apps/taro/src/subpackages/userAccount/editGasUserAccount/InnerPage.vue +++ b/apps/taro/src/subpackages/userAccount/editGasUserAccount/InnerPage.vue @@ -1,5 +1,5 @@ <template> - <ContentScrollView :paddingH="false"> + <ContentScrollView hasPaddingTop style="background-color: transparent"> <EditGasUserAccount :id="id" @success="handleSuccess" /> </ContentScrollView> </template> diff --git a/apps/taro/src/subpackages/userAccount/editGasUserAccount/editGasUserAccount.vue b/apps/taro/src/subpackages/userAccount/editGasUserAccount/editGasUserAccount.vue index 2c239b0..e6a01c5 100644 --- a/apps/taro/src/subpackages/userAccount/editGasUserAccount/editGasUserAccount.vue +++ b/apps/taro/src/subpackages/userAccount/editGasUserAccount/editGasUserAccount.vue @@ -1,5 +1,5 @@ <template> - <PageLayout title="缂栬緫" class="editGasUserAccount-page-wrapper" hasBorder> + <PageLayout title="缂栬緫" class="editGasUserAccount-page-wrapper" hasBgColor> <InnerPage /> </PageLayout> </template> diff --git a/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/InnerPage.vue b/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/InnerPage.vue index 1c6feee..8ba66c5 100644 --- a/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/InnerPage.vue +++ b/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/InnerPage.vue @@ -1,5 +1,5 @@ <template> - <ContentScrollView :paddingH="false"> + <ContentScrollView hasPaddingTop style="background-color: transparent"> <EditPhoneUserAccount :id="id" @success="handleSuccess" /> </ContentScrollView> </template> diff --git a/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/editPhoneUserAccount.vue b/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/editPhoneUserAccount.vue index d2b7147..cbf6883 100644 --- a/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/editPhoneUserAccount.vue +++ b/apps/taro/src/subpackages/userAccount/editPhoneUserAccount/editPhoneUserAccount.vue @@ -1,5 +1,5 @@ <template> - <PageLayout title="缂栬緫" class="editPhoneUserAccount-page-wrapper" hasBorder> + <PageLayout title="缂栬緫" class="editPhoneUserAccount-page-wrapper" hasBgColor> <InnerPage /> </PageLayout> </template> diff --git a/packages/components/src/components/Card/OrderCard.vue b/packages/components/src/components/Card/OrderCard.vue index d8f2a47..d51367a 100644 --- a/packages/components/src/components/Card/OrderCard.vue +++ b/packages/components/src/components/Card/OrderCard.vue @@ -2,20 +2,22 @@ <div class="order-card"> <div class="order-card-title"> <div class="order-card-title-left"> - <div class="order-card-title-text">{{ title }}</div> + <div class="order-card-title-text-wrapper"> + <div class="order-card-title-text">{{ title }}</div> + <div class="order-card-title-status"> + <img :src="LifePayOrderStatusEnumImg[status]" alt="" /> + </div> + </div> <div class="order-card-title-ordernum"> {{ `璁㈠崟缂栧彿锛�${orderNo}` }} </div> - </div> - <div class="order-card-title-status"> - <img :src="LifePayOrderStatusEnumImg[status]" alt="" /> </div> </div> <div class="order-card-content"> <slot></slot> </div> <slot name="actions"> - <div class="order-card-footer" v-if="shoeFooter"> + <div class="order-card-footer" v-if="showFooter"> <div v-if="status === LifeRechargeConstants.LifePayOrderStatusEnum.鍏呭�间腑" class="order-card-action" @@ -68,7 +70,7 @@ [LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆句腑]: OssAssets.card.Refund, }; -const shoeFooter = computed(() => { +const showFooter = computed(() => { return ( props.status === LifeRechargeConstants.LifePayOrderStatusEnum.鍏呭�间腑 || props.status === LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆惧け璐� diff --git a/packages/components/src/styles/gas.scss b/packages/components/src/styles/gas.scss index 3687334..fa139b6 100644 --- a/packages/components/src/styles/gas.scss +++ b/packages/components/src/styles/gas.scss @@ -1,24 +1,38 @@ @use './common.scss' as *; .gas-bill-recharge-wrapper { + .gas-bill-recharge-title { + padding: 24px 26px 0; + font-weight: 500; + font-size: 34px; + color: boleGetCssVar('text-color', 'primary'); + } + .gasOrgType-card { border-radius: 16px; - border: 1px solid #e8e8e8; - padding: 28px; + border: 1px solid #e1e9f5; + padding: 20px 32px; min-height: 120px; - margin-bottom: 30px; + margin-bottom: 22px; display: flex; align-items: center; justify-content: space-between; + background: #f8fafb; &:last-child { margin-bottom: 0; } .gasOrgType-card-title { - font-size: 36px; + font-size: 34px; line-height: 48px; color: boleGetCssVar('text-color', 'primary'); } + + .gasOrgType-card-button { + font-size: 26px; + height: 48px; + padding: 18px; + } } } diff --git a/packages/components/src/styles/orderCard.scss b/packages/components/src/styles/orderCard.scss index 9619746..b552f48 100644 --- a/packages/components/src/styles/orderCard.scss +++ b/packages/components/src/styles/orderCard.scss @@ -23,12 +23,18 @@ color: #333333; flex: 1; min-width: 0; - margin-right: 56px; + + .order-card-title-text-wrapper { + height: 68px; + display: flex; + } .order-card-title-text { font-size: 30px; line-height: 42px; font-weight: 400; + flex: 1; + min-width: 0; } } @@ -40,8 +46,8 @@ } .order-card-title-status { - width: 116px; - height: 116px; + width: 90px; + height: 90px; img { width: 100%; diff --git a/packages/components/src/views/GasBillRecharge/GasBillRechargeBaseForm.vue b/packages/components/src/views/GasBillRecharge/GasBillRechargeBaseForm.vue index afc5179..d58c43d 100644 --- a/packages/components/src/views/GasBillRecharge/GasBillRechargeBaseForm.vue +++ b/packages/components/src/views/GasBillRecharge/GasBillRechargeBaseForm.vue @@ -4,7 +4,7 @@ ref="formRef" :rules="rules" label-position="top" - class="order-bill-recharge electric" + class="order-bill-recharge electric chunk-form" > <slot name="top"></slot> <NutFormItem label="鎵�鍦ㄥ煄甯�" class="bole-form-item" prop="areaList" required> diff --git a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep1.vue b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep1.vue index 32828f1..7a73a9b 100644 --- a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep1.vue +++ b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep1.vue @@ -1,5 +1,9 @@ <template> - <NutForm label-position="top" class="order-bill-recharge gas-bill-recharge-wrapper phone"> + <NutForm + label-position="top" + class="order-bill-recharge gas-bill-recharge-wrapper phone chunk-form" + > + <div class="gas-bill-recharge-title">閫夋嫨缂磋垂绫诲瀷</div> <NutFormItem class="bole-form-item"> <GasOrgTypeCard :title="item.gasOrgName" @@ -8,14 +12,14 @@ @click="goNext(item.gasOrgCode)" ></GasOrgTypeCard> </NutFormItem> - <div class="common-content"> - <NutButton class="recharge-button" type="primary" plain @click="goTo('step3')"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">杩斿洖</div> - </div> - </NutButton> - </div> </NutForm> + <div class="chunk-form-actions"> + <NutButton class="recharge-button" type="primary" plain @click="goTo('step3')"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">杩斿洖</div> + </div> + </NutButton> + </div> </template> <script setup lang="ts"> @@ -24,6 +28,7 @@ import { BlLifeRecharge, LifeRechargeConstants } from '@life-payment/core-vue'; import { useGasBillRechargeContext } from './context'; import { useGetGasParValue } from '../../hooks'; +import Chunk from '../../components/Layout/Chunk.vue'; defineOptions({ name: 'GasBillRechargeStep1', diff --git a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep2.vue b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep2.vue index d7051d8..9f28bb7 100644 --- a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep2.vue +++ b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep2.vue @@ -12,19 +12,19 @@ > </NutTextarea> </NutFormItem> - <div class="common-content"> - <NutButton class="recharge-button" type="primary" @click="handleNext"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">淇濆瓨</div> - </div> - </NutButton> - <NutButton class="recharge-button" type="primary" plain @click="goToPrevious"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">杩斿洖</div> - </div> - </NutButton> - </div> </GasBillRechargeBaseForm> + <div class="chunk-form-actions"> + <NutButton class="recharge-button" type="primary" @click="handleNext"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">淇濆瓨</div> + </div> + </NutButton> + <NutButton class="recharge-button" type="primary" plain @click="goToPrevious"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">杩斿洖</div> + </div> + </NutButton> + </div> </template> <script setup lang="ts"> diff --git a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue index 7b4588a..be78bf7 100644 --- a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue +++ b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue @@ -6,63 +6,82 @@ label-position="top" class="order-bill-recharge electric" > - <NutFormItem class="bole-form-item" prop="currentUserAccountId"> - <NutRadioGroup - v-model="form.currentUserAccountId" - direction="horizontal" - class="par-account-list" - v-if="userAccountAllList.length > 0" - @change="handleUserAccountChange" - > - <NutRadio :label="item.id" shape="button" v-for="item in userAccountAllList" :key="item.id" - >{{ item.city }}-{{ item.content }}</NutRadio + <Chunk borderRadiusSmall :hasPaddingBottom="false"> + <NutFormItem class="bole-form-item user-account-form-item" prop="currentUserAccountId"> + <NutRadioGroup + v-model="form.currentUserAccountId" + direction="horizontal" + class="par-account-list" + v-if="userAccountAllList.length > 0" + @change="handleUserAccountChange" > - </NutRadioGroup> - <AccountCard - v-if="userAccountAllList.length > 0" - title="鍏呭�兼埛鍙�" - :content="`${form.areaList?.[1] ?? ''} ${form.gasAccount}`" - :remark="form.remark" - > - <template #action> - <div class="account-card-action" @click="handleAddUserAccount">鏂板</div> - </template> - </AccountCard> - <AccountAddCard text="鏂板鎴峰彿" v-else @click="handleAddUserAccount" /> - </NutFormItem> + <NutRadio + :label="item.id" + shape="button" + v-for="item in userAccountAllList" + :key="item.id" + >{{ item.city }}-{{ item.content }}</NutRadio + > + </NutRadioGroup> + <AccountCardV2 + v-if="userAccountAllList.length > 0" + :content="`${form.areaList?.[1] ?? ''} ${form.gasAccount}`" + :remark="form.remark" + :showEditBtn="!!form.currentUserAccountId" + @add="handleAddUserAccount" + @edit="emit('editUserAccount', form.currentUserAccountId)" + > + </AccountCardV2> + <AccountAddCardV2 + content="鍘绘坊鍔犲厖鍊兼埛鍙�" + remark="娣诲姞鎴峰彿灏嗕繚瀛樺湪鐢熸椿缂磋垂杩涜绠$悊" + tip="娣诲姞姝g‘鎴峰彿" + v-else + @click="handleAddUserAccount" + /> + </NutFormItem> + </Chunk> - <NutFormItem label="閫夋嫨鍏呭�奸噾棰�" class="bole-form-item" prop="parValue" required> - <NutRadioGroup v-model="form.parValue" direction="horizontal" class="parValue-radio-group"> - <NutRadio - :label="Number(item)" - :key="item" - shape="button" - v-for="item in gasValueList" - class="parValue-item" - > - <div class="parValue-item-inner"> - <div class="amount-wrapper"> - <div class="amount">{{ item }}</div> - <div class="unit">鍏�</div> - </div> - <div class="price-wrapper"> - <div class="price-text">鎶樺悗</div> - <div class="price"> - {{ blLifeRecharge.getRechargeParValue(item, lifePayGasRate) }}鍏� + <Chunk borderRadiusSmall :hasPaddingBottom="false" title="閫夋嫨鍏呭�奸噾棰�"> + <NutFormItem class="bole-form-item" prop="parValue" required> + <NutRadioGroup v-model="form.parValue" direction="horizontal" class="parValue-radio-group"> + <NutRadio + :label="Number(item)" + :key="item" + shape="button" + v-for="item in gasValueList" + class="parValue-item" + > + <div class="parValue-item-inner"> + <div class="amount-wrapper"> + <div class="amount">{{ item }}</div> + <div class="unit">鍏�</div> </div> + <div class="price-wrapper"> + <div class="price-text">鎶樺悗</div> + <div class="price"> + {{ blLifeRecharge.getRechargeParValue(item, lifePayGasRate) }}鍏� + </div> + </div> + <div class="discountTag" v-if="lifePayGasRate > 0">{{ lifePayGasRate }}鎶�</div> + <img :src="IconSelect" class="discount-icon" /> </div> - <div class="discountTag" v-if="lifePayGasRate > 0">{{ lifePayGasRate }}鎶�</div> - </div> - </NutRadio> - </NutRadioGroup> - </NutFormItem> + </NutRadio> + </NutRadioGroup> + </NutFormItem> + </Chunk> + <SelectPayTypeFormItem v-model="form.lifePayType" :showWeixinPay="showWeixinPay" :showAliPay="showAliPay" ></SelectPayTypeFormItem> <div class="common-content"> - <nut-button class="recharge-button" type="primary" @click="handleSubmit"> + <nut-button + class="recharge-button recharge-button-linear" + type="primary" + @click="handleSubmit" + > <div class="recharge-button-inner"> <div>锟{ realParValue }}</div> <div class="recharge-button-text">绔嬪嵆鍏呭��</div> @@ -116,14 +135,16 @@ import { useGetRate, useGetGasParValue, useSetUserAccountBySelect } from '../../hooks'; import { useGasBillRechargeContext, GasUserAccountExtraProperties } from './context'; import { FormValidator, initLifePayType } from '../../utils'; -import AccountAddCard from '../../components/Card/AccountAddCard.vue'; -import AccountCard from '../../components/Card/AccountCard.vue'; +import AccountAddCardV2 from '../../components/Card/AccountAddCardV2.vue'; +import AccountCardV2 from '../../components/Card/AccountCardV2.vue'; import RechargeTipsView from '../../components/RechargeTipsView/RechargeTipsView.vue'; import ConfirmDialog from '../../components/Dialog/ConfirmDialog.vue'; import ConfirmDialogInfoItem from '../../components/Dialog/ConfirmDialogInfoItem.vue'; import SelectPayTypeFormItem from '../../components/SelectPayTypeFormItem/SelectPayTypeFormItem.vue'; import { useSelectPayType, useGetPayStatusByOrderNo } from '../../hooks/selectPayType'; import { RechargeProps } from '../PhoneBillRecharge/types'; +import Chunk from '../../components/Layout/Chunk.vue'; +import IconSelect from '../../assets/recharge/icon-select.png'; defineOptions({ name: 'GasBillRechargeStep3', @@ -137,6 +158,7 @@ (e: 'goPay', orderNo: string): void; (e: 'paySuccess', orderNo: string): void; (e: 'missName', userAccountId: string): void; + (e: 'editUserAccount', userAccountId: string): void; }>(); const { goTo } = useGasBillRechargeContext(); diff --git a/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue index 163da73..51222db 100644 --- a/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue +++ b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue @@ -35,12 +35,12 @@ /> </NutFormItem> <slot></slot> - <NutDialog - title="鎻愮ず" - content="鐢典俊鍙厖鍊煎尯鍩熷寘鎷細骞夸笢銆佹睙鑻忋�佹箹鍖椼�佸洓宸濄�佹睙瑗裤�佹渤鍖椼�佹渤鍗椼�佺寤恒�佽窘瀹併�傚叾瀹冨尯鍩熸鍦ㄥ垎鎵规杩涜缁存姢涓紝鍦ㄦ鏈熼棿鍙兘浼氬嚭鐜板厖鍊间笉鎴愬姛骞惰嚜鍔ㄩ��娆剧殑鎯呭喌锛岃鎮ㄨ皡瑙c��" - v-model:visible="dialogVisible" - /> </NutForm> + <NutDialog + title="鎻愮ず" + content="鐢典俊鍙厖鍊煎尯鍩熷寘鎷細骞夸笢銆佹睙鑻忋�佹箹鍖椼�佸洓宸濄�佹睙瑗裤�佹渤鍖椼�佹渤鍗椼�佺寤恒�佽窘瀹併�傚叾瀹冨尯鍩熸鍦ㄥ垎鎵规杩涜缁存姢涓紝鍦ㄦ鏈熼棿鍙兘浼氬嚭鐜板厖鍊间笉鎴愬姛骞惰嚜鍔ㄩ��娆剧殑鎯呭喌锛岃鎮ㄨ皡瑙c��" + v-model:visible="dialogVisible" + /> </template> <script setup lang="ts"> diff --git a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeBaseForm.vue b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeBaseForm.vue index 3c3af5d..d7b13d2 100644 --- a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeBaseForm.vue +++ b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeBaseForm.vue @@ -4,7 +4,7 @@ ref="formRef" :rules="rules" label-position="top" - class="order-bill-recharge electric" + class="order-bill-recharge electric chunk-form" > <NutFormItem label="鎵�鍦ㄥ尯鍩�" class="bole-form-item" prop="province" required> <ChooseInputWithPicker diff --git a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep1.vue b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep1.vue index 402cb1a..857d176 100644 --- a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep1.vue +++ b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep1.vue @@ -12,19 +12,19 @@ > </NutTextarea> </NutFormItem> - <div class="common-content"> - <nut-button class="recharge-button" type="primary" @click="handleNext"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">淇濆瓨</div> - </div> - </nut-button> - <nut-button class="recharge-button" type="primary" plain @click="goToNext"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">杩斿洖</div> - </div> - </nut-button> - </div> </ElectricBillRechargeBaseForm> + <div class="chunk-form-actions"> + <nut-button class="recharge-button" type="primary" @click="handleNext"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">淇濆瓨</div> + </div> + </nut-button> + <nut-button class="recharge-button" type="primary" plain @click="goToNext"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">杩斿洖</div> + </div> + </nut-button> + </div> </template> <script setup lang="ts"> diff --git a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue index c3c7a81..40844f6 100644 --- a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue +++ b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue @@ -6,71 +6,84 @@ label-position="top" class="order-bill-recharge electric" > - <NutFormItem class="bole-form-item" prop="currentUserAccountId"> - <NutRadioGroup - v-model="form.currentUserAccountId" - direction="horizontal" - class="par-account-list" - v-if="userAccountAllList.length > 0" - @change="handleUserAccountChange" - > - <NutRadio :label="item.id" shape="button" v-for="item in userAccountAllList" :key="item.id" - >{{ item.city }}-{{ item.content }}</NutRadio + <Chunk borderRadiusSmall :hasPaddingBottom="false"> + <NutFormItem class="bole-form-item user-account-form-item" prop="currentUserAccountId"> + <NutRadioGroup + v-model="form.currentUserAccountId" + direction="horizontal" + class="par-account-list" + v-if="userAccountAllList.length > 0" + @change="handleUserAccountChange" > - </NutRadioGroup> - <AccountCard - v-if="userAccountAllList.length > 0" - title="鍏呭�兼埛鍙�" - :content="`${form.city} ${form.electricAccount}`" - :remark="form.remark" - > - <template #action> - <div class="account-card-action" @click="handleAddUserAccount">鏂板</div> - </template> - </AccountCard> - <AccountAddCard text="鏂板鎴峰彿" v-else @click="handleAddUserAccount" /> - </NutFormItem> + <NutRadio + :label="item.id" + shape="button" + v-for="item in userAccountAllList" + :key="item.id" + >{{ item.city }}-{{ item.content }}</NutRadio + > + </NutRadioGroup> + <AccountCardV2 + v-if="userAccountAllList.length > 0" + :content="`${form.city}-${form.electricAccount}`" + :remark="form.remark" + :showEditBtn="!!form.currentUserAccountId" + @add="handleAddUserAccount" + @edit="emit('editUserAccount', form.currentUserAccountId)" + > + </AccountCardV2> + <AccountAddCardV2 + content="鍘绘坊鍔犲厖鍊兼埛鍙�" + remark="娣诲姞鎴峰彿灏嗕繚瀛樺湪鐢熸椿缂磋垂杩涜绠$悊" + tip="娣诲姞姝g‘鎴峰彿" + v-else + @add="handleAddUserAccount" + /> + </NutFormItem> + </Chunk> - <NutFormItem - v-if="!!form.province" - label="閫夋嫨鍏呭�奸噾棰�" - class="bole-form-item" - prop="parValue" - required - > - <NutRadioGroup v-model="form.parValue" direction="horizontal" class="parValue-radio-group"> - <NutRadio - :label="Number(item)" - :key="item" - shape="button" - v-for="item in parValueList" - class="parValue-item" - > - <div class="parValue-item-inner"> - <div class="amount-wrapper"> - <div class="amount">{{ item }}</div> - <div class="unit">鍏�</div> - </div> - <div class="price-wrapper"> - <div class="price-text">鎶樺悗</div> - <div class="price"> - {{ blLifeRecharge.getRechargeParValue(item, lifePayElectricRate) }}鍏� + <Chunk borderRadiusSmall :hasPaddingBottom="false" title="閫夋嫨鍏呭�奸噾棰�" v-if="!!form.province"> + <NutFormItem class="bole-form-item" prop="parValue" required> + <NutRadioGroup v-model="form.parValue" direction="horizontal" class="parValue-radio-group"> + <NutRadio + :label="Number(item)" + :key="item" + shape="button" + v-for="item in parValueList" + class="parValue-item" + > + <div class="parValue-item-inner"> + <div class="amount-wrapper"> + <div class="amount">{{ item }}</div> + <div class="unit">鍏�</div> </div> + <div class="price-wrapper"> + <div class="price-text">鎶樺悗</div> + <div class="price"> + {{ blLifeRecharge.getRechargeParValue(item, lifePayElectricRate) }}鍏� + </div> + </div> + <div class="discountTag" v-if="lifePayElectricRate > 0"> + {{ lifePayElectricRate }}鎶� + </div> + <img :src="IconSelect" class="discount-icon" /> </div> - <div class="discountTag" v-if="lifePayElectricRate > 0"> - {{ lifePayElectricRate }}鎶� - </div> - </div> - </NutRadio> - </NutRadioGroup> - </NutFormItem> + </NutRadio> + </NutRadioGroup> + </NutFormItem> + </Chunk> + <SelectPayTypeFormItem v-model="form.lifePayType" :showWeixinPay="showWeixinPay" :showAliPay="showAliPay" ></SelectPayTypeFormItem> <div class="common-content"> - <nut-button class="recharge-button" type="primary" @click="handleSubmit"> + <nut-button + class="recharge-button recharge-button-linear" + type="primary" + @click="handleSubmit" + > <div class="recharge-button-inner"> <div>锟{ realParValue }}</div> <div class="recharge-button-text">绔嬪嵆鍏呭��</div> @@ -122,12 +135,14 @@ import ConfirmDialogInfoItem from '../../components/Dialog/ConfirmDialogInfoItem.vue'; import { useGetRate, useGetElectricParValue, useSetUserAccountBySelect } from '../../hooks'; import { FormValidator, initLifePayType } from '../../utils'; -import AccountAddCard from '../../components/Card/AccountAddCard.vue'; -import AccountCard from '../../components/Card/AccountCard.vue'; +import AccountAddCardV2 from '../../components/Card/AccountAddCardV2.vue'; +import AccountCardV2 from '../../components/Card/AccountCardV2.vue'; import { useElectricBillRechargeContext, ElectricUserAccountExtraProperties } from './context'; import SelectPayTypeFormItem from '../../components/SelectPayTypeFormItem/SelectPayTypeFormItem.vue'; import { useSelectPayType, useGetPayStatusByOrderNo } from '../../hooks/selectPayType'; import { RechargeProps } from '../PhoneBillRecharge/types'; +import Chunk from '../../components/Layout/Chunk.vue'; +import IconSelect from '../../assets/recharge/icon-select.png'; defineOptions({ name: 'ElectricBillRechargeStep2', @@ -141,6 +156,7 @@ (e: 'goPay', orderNo: string): void; (e: 'paySuccess', orderNo: string): void; (e: 'missName', userAccountId: string): void; + (e: 'editUserAccount', userAccountId: string): void; }>(); const { goTo } = useElectricBillRechargeContext(); diff --git a/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue b/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue index 83e9ab9..b181b30 100644 --- a/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue +++ b/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue @@ -6,11 +6,12 @@ @go-pay="emit('goPay', $event)" @paySuccess="emit('paySuccess', $event)" @missName="emit('missName', $event)" + @editUserAccount="emit('editUserAccount', $event)" /> </template> <script setup lang="ts"> -import { computed, provide } from 'vue'; +import { computed, provide, watch } from 'vue'; import { useStepper } from 'senin-mini/hooks'; import { ElectricBillRechargeContextKey } from './context'; import ElectricBillRechargeStep1 from './ElectricBillRechargeStep1.vue'; @@ -25,14 +26,26 @@ isDev: false, }); +const stepperInfo = useStepper(['step1', 'step2'], 'step2'); +const current = computed(() => stepperInfo.current.value); + const emit = defineEmits<{ (e: 'goPay', orderNo: string): void; (e: 'paySuccess', orderNo: string): void; (e: 'missName', userAccountId: string): void; + (e: 'editUserAccount', userAccountId: string): void; + (e: 'currentChange', current: 'step1' | 'step2'): void; }>(); -const stepperInfo = useStepper(['step1', 'step2'], 'step2'); -const current = computed(() => stepperInfo.current.value); +watch( + current, + (newVal) => { + emit('currentChange', newVal); + }, + { + immediate: true, + } +); provide(ElectricBillRechargeContextKey, { ...stepperInfo, diff --git a/packages/components/src/views/userAccount/EditElectricUserAccount.vue b/packages/components/src/views/userAccount/EditElectricUserAccount.vue index 3c42404..a99795e 100644 --- a/packages/components/src/views/userAccount/EditElectricUserAccount.vue +++ b/packages/components/src/views/userAccount/EditElectricUserAccount.vue @@ -13,14 +13,14 @@ > </NutTextarea> </NutFormItem> - <div class="common-content"> - <NutButton class="recharge-button" type="primary" @click="handleSave"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">淇濆瓨</div> - </div> - </NutButton> - </div> </ElectricBillRechargeBaseForm> + <div class="chunk-form-actions"> + <NutButton class="recharge-button" type="primary" @click="handleSave"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">淇濆瓨</div> + </div> + </NutButton> + </div> </LoadingLayout> </template> diff --git a/packages/components/src/views/userAccount/EditGasUserAccount.vue b/packages/components/src/views/userAccount/EditGasUserAccount.vue index 1e94383..b75859b 100644 --- a/packages/components/src/views/userAccount/EditGasUserAccount.vue +++ b/packages/components/src/views/userAccount/EditGasUserAccount.vue @@ -24,14 +24,14 @@ > </NutTextarea> </NutFormItem> - <div class="common-content"> - <NutButton class="recharge-button" type="primary" @click="handleSave"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">淇濆瓨</div> - </div> - </NutButton> - </div> </GasBillRechargeBaseForm> + <div class="chunk-form-actions"> + <NutButton class="recharge-button" type="primary" @click="handleSave"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">淇濆瓨</div> + </div> + </NutButton> + </div> </LoadingLayout> </template> diff --git a/packages/components/src/views/userAccount/EditPhoneUserAccount.vue b/packages/components/src/views/userAccount/EditPhoneUserAccount.vue index 93654be..2e718b0 100644 --- a/packages/components/src/views/userAccount/EditPhoneUserAccount.vue +++ b/packages/components/src/views/userAccount/EditPhoneUserAccount.vue @@ -13,14 +13,14 @@ > </NutTextarea> </NutFormItem> - <div class="common-content"> - <NutButton class="recharge-button" type="primary" @click="handleSave"> - <div class="recharge-button-inner"> - <div class="recharge-button-text">淇濆瓨</div> - </div> - </NutButton> - </div> </PhoneBillRechargeBaseForm> + <div class="chunk-form-actions"> + <NutButton class="recharge-button" type="primary" @click="handleSave"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">淇濆瓨</div> + </div> + </NutButton> + </div> </LoadingLayout> </template> -- Gitblit v1.9.1