22个文件已修改
9个文件已添加
622 ■■■■ 已修改文件
apps/taro/src/app.config.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/components/PageFooter/PageFooter.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/components/PageFooter/PageFooterBtn.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/constants/img.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/constants/router.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/pages/mine/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/applyAgent/applyAgent.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/applyAgent/applyAgent.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/applyResult/applyResult.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/applyResult/applyResult.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/promotionQrcode/promotionQrcode.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/promotionQrcode/promotionQrcode.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/shareQrcode/shareQrcode.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/order/orderApplyRefund/InnerPage.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/userAccount/editElectricUserAccount/InnerPage.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/userAccount/editPhoneUserAccount/InnerPage.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/components/Result/Result.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/components/Result/ResultWithoutBG.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/constants/img.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/styles/components.scss 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/Mine/ApplyAgentView.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/Mine/Dashboard.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/Mine/ShareQrcodeView.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/Order/OrderApplyRefundView.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/RechargeResultView/RechargeResultView.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/userAccount/EditElectricUserAccount.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/userAccount/EditGasUserAccount.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/userAccount/EditPhoneUserAccount.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/app.config.ts
@@ -111,7 +111,13 @@
    },
    {
      root: 'subpackages/my',
      pages: ['shareQrcode/shareQrcode', 'dashboard/dashboard'],
      pages: [
        'shareQrcode/shareQrcode',
        'dashboard/dashboard',
        'applyAgent/applyAgent',
        'applyResult/applyResult',
        'promotionQrcode/promotionQrcode',
      ],
    },
  ],
  // preloadRule: {
apps/taro/src/components/PageFooter/PageFooter.vue
@@ -52,21 +52,21 @@
  }
  .page-footer-inner {
    padding: 24px 0;
    padding: 24px boleGetCssVar('size', 'body-padding-h');
    width: 100%;
    display: flex;
    box-sizing: border-box;
    align-items: center;
  }
  &.isOnlyAction {
  /* &.isOnlyAction {
    .page-footer-inner {
      padding: 16px 0;
      padding: 20px 0;
      align-items: flex-start;
    }
  }
  } */
  .is-button-footer {
  /* .is-button-footer {
    display: flex;
    width: 100%;
    height: 100%;
@@ -96,9 +96,9 @@
        box-shadow: 0px 3px 7px 0px rgba(240, 67, 73, 0.35);
      }
    }
  }
  } */
  .common-page-footer {
  /* .common-page-footer {
    display: flex;
    width: 100%;
    height: 100%;
@@ -172,6 +172,6 @@
      margin: 0;
      margin-left: 20px;
    }
  }
  } */
}
</style>
apps/taro/src/components/PageFooter/PageFooterBtn.vue
@@ -21,12 +21,15 @@
.page-footer-btn {
  flex: 1;
  min-width: 0;
  width: 100%;
  height: 88px;
  font-size: 32px;
  margin: 0 28px;
  border-radius: 44px;
  & + .page-footer-btn {
    margin-left: 28px;
  }
  &.nut-button--plain {
    border-width: 1px;
  }
apps/taro/src/constants/img.ts
@@ -6,7 +6,10 @@
    HomePageBg: `${OssBasePath}/lifePayment/assets/common/icon-home-page-bg.png`,
    DataPageBg: `${OssBasePath}/lifePayment/assets/common/icon-data-page-bg.png`,
    MinePageBg: `${OssBasePath}/lifePayment/assets/common/icon-mine-page-bg.png`,
    PromotionQrcodePageBg: `${OssBasePath}/lifePayment/assets/common/icon-promotion-qrcode-page-bg.png`,
    PhoneBillRechargePageBg: `${OssBasePath}/lifePayment/assets/common/icon-phoneBillRecharge-page-bg.png`,
    PromotionQrcodeContentBG: `${OssBasePath}/lifePayment/assets/common/icon-promotion-qrcode-content-bg.png`,
  },
  mine: {
    // Bg: `${OssBasePath}/matchMakingMini/assets/mine/icon-bg.png`,
apps/taro/src/constants/router.ts
@@ -24,5 +24,8 @@
  editPhoneUserAccount = '/subpackages/userAccount/editPhoneUserAccount/editPhoneUserAccount',
  editElectricUserAccount = '/subpackages/userAccount/editElectricUserAccount/editElectricUserAccount',
  shareQrcode = '/subpackages/my/shareQrcode/shareQrcode',
  promotionQrcode = '/subpackages/my/promotionQrcode/promotionQrcode',
  dashboard = '/subpackages/my/dashboard/dashboard',
  applyAgent = '/subpackages/my/applyAgent/applyAgent',
  applyResult = '/subpackages/my/applyResult/applyResult',
}
apps/taro/src/pages/mine/index.vue
@@ -24,8 +24,13 @@
          <ListItemV2 :icon="IconMineDataBoard" title="数据看板" @click="goDashboard"></ListItemV2>
          <ListItemV2
            :icon="IconMinePromotion"
            title="推广二维码"
            title="渠道二维码"
            @click="goShareQrcode"
          ></ListItemV2>
          <ListItemV2
            :icon="IconMinePromotion"
            title="推广二维码"
            @click="goPromotionQrcode"
          ></ListItemV2>
        </template>
        <ListItemV2
@@ -100,6 +105,7 @@
const goOrderManage = useAccessLogin(() => goPage(RouterPath.order));
const goUserAccountList = useAccessLogin(() => goPage(RouterPath.userAccountList));
const goShareQrcode = useAccessLogin(() => goPage(RouterPath.shareQrcode));
const goPromotionQrcode = useAccessLogin(() => goPage(RouterPath.promotionQrcode));
const goDashboard = useAccessLogin(() => goPage(RouterPath.dashboard));
async function goLogout() {
apps/taro/src/subpackages/my/applyAgent/applyAgent.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/taro/src/subpackages/my/applyAgent/applyAgent.vue
New file
@@ -0,0 +1,35 @@
<template>
  <PageLayout title="立即申请" class="applyAgent-page-wrapper" hasBgColor :needAuth="false">
    <ContentScrollView hasPaddingTop style="background-color: transparent">
      <ApplyAgentView @submit="submit" ref="orderApplyRefundViewRef" />
    </ContentScrollView>
    <PageFooter>
      <PageFooterBtn type="primary" @click="handleSubmit">提交申请</PageFooterBtn>
    </PageFooter>
  </PageLayout>
</template>
<script setup lang="ts">
import { PageLayout } from '@/components';
import { RouterPath } from '@/constants';
import { ApplyAgentView } from '@life-payment/components';
import { goBack } from '@/utils';
import type { ComponentExposed } from 'vue-component-type-helpers';
defineOptions({
  name: 'applyAgent',
});
const applyAgentViewRef =
  useTemplateRef<ComponentExposed<typeof ApplyAgentView>>('applyAgentViewRef');
function handleSubmit() {
  applyAgentViewRef.value?.handleSubmit?.();
}
function submit() {
  RouteHelper.navigateTo({
    url: RouterPath.applyResult,
  });
}
</script>
apps/taro/src/subpackages/my/applyResult/applyResult.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/taro/src/subpackages/my/applyResult/applyResult.vue
New file
@@ -0,0 +1,25 @@
<template>
  <PageLayout title="立即申请" class="applyAgent-page-wrapper" hasBgColor :needAuth="false">
    <ResultWithoutBG
      remark="我们的运营人员会在5个工作日内联系您沟通代理事宜,请保持电话畅通!"
      tips="注:成功招募代理商,还有最高1000元奖励,详询请咨询:16505012333"
      title="提交成功"
      @generate="generate"
    ></ResultWithoutBG>
  </PageLayout>
</template>
<script setup lang="ts">
import { PageLayout } from '@/components';
import { ResultWithoutBG } from '@life-payment/components';
defineOptions({
  name: 'applyAgent',
});
function generate() {
  RouteHelper.navigateTo({
    url: RouterPath.promotionQrcode,
  });
}
</script>
apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue
New file
@@ -0,0 +1,110 @@
<template>
  <ContentView>
    <div class="promotion-qrcode-content" :style="barStyle">
      <div
        class="promotion-qrcode-content-qrcode"
        :style="{ backgroundImage: `url(${OssAssets.common.PromotionQrcodeContentBG})` }"
      >
        <ShareQrcodeView :channles-num="userChannles[0]?.channlesNum" :size="148" />
        <div class="promotion-qrcode-content-qrcode-tips">长按二维码分享好友</div>
      </div>
      <div class="promotion-qrcode-content-btn">点击下载二维码</div>
    </div>
  </ContentView>
</template>
<script setup lang="ts">
import { ShareQrcodeView, ResultWithoutBG } from '@life-payment/components';
import { useLifeRechargeContext } from '@life-payment/core-vue';
import { isWeb } from '@/utils/env';
import { useSystemStore } from '@/stores/modules/system';
import { CSSProperties } from 'vue';
import { OssAssets } from '@/constants';
defineOptions({
  name: 'InnerPage',
});
// const { virtualUserInfo } = useUser();
const { blLifeRecharge } = useLifeRechargeContext();
const userChannles = computed(() =>
  (blLifeRecharge.accountModel.userChannles ?? []).filter(
    (x) => x.switchType !== blLifeRecharge.constants.LifePaySwitchTypeEnum.微信小程序
  )
);
const channlesType = ref(userChannles.value[0]?.channlesNum ?? '');
watch(userChannles, (val) => {
  channlesType.value = val?.[0]?.channlesNum ?? '';
});
const systemStore = useSystemStore();
const barStyle = computed(
  () =>
    ({
      paddingTop: systemStore.info.statusBarHeight + 'px',
      backgroundImage: `url(${OssAssets.common.PromotionQrcodeContentBG})`,
    } as CSSProperties)
);
</script>
<style lang="scss">
@import '@/styles/common.scss';
.promotion-qrcode-page-wrapper {
  .promotion-qrcode-content {
    margin-top: 306px;
    width: 100%;
    height: 788px;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .promotion-qrcode-content-qrcode {
    width: 432px;
    height: 432px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    position: relative;
  }
  .promotion-qrcode-content-qrcode-tips {
    font-size: 32px;
    font-weight: bold;
    position: absolute;
    bottom: -22px;
    background: linear-gradient(0.25turn, #63654c 0%, #101f23 39%, #101f23 55%, #0082d3 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .promotion-qrcode-content-btn {
    width: 432px;
    height: 96px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: boleGetCssVar('color', 'primary');
    margin-top: 70px;
    border-radius: 12px;
    font-size: 38px;
    font-weight: 500;
    color: #ffffff;
  }
  .share-qrcode-view {
    margin-top: 60px;
    padding: 0;
  }
}
</style>
apps/taro/src/subpackages/my/promotionQrcode/promotionQrcode.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/taro/src/subpackages/my/promotionQrcode/promotionQrcode.vue
New file
@@ -0,0 +1,37 @@
<template>
  <PageLayoutWithBg class="promotion-qrcode-page-wrapper">
    <template #navigationBar>
      <TransparentNavigationBar :title="'推广二维码'" :is-absolute="false">
      </TransparentNavigationBar>
    </template>
    <template #bg>
      <img :src="OssAssets.common.PromotionQrcodePageBg" class="promotion-qrcode-page-bg" />
    </template>
    <InnerPage />
  </PageLayoutWithBg>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
import { OssAssets } from '@/constants';
defineOptions({
  name: 'shareQrcode',
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
.promotion-qrcode-page-wrapper {
  .promotion-qrcode-page-bg {
    position: fixed;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
</style>
apps/taro/src/subpackages/my/shareQrcode/shareQrcode.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayout title="推广二维码" class="shareQrcode-page-wrapper" hasBorder>
  <PageLayout title="渠道二维码" class="shareQrcode-page-wrapper" hasBorder>
    <InnerPage />
  </PageLayout>
</template>
apps/taro/src/subpackages/order/orderApplyRefund/InnerPage.vue
@@ -1,13 +1,21 @@
<template>
  <ContentScrollView :paddingH="false">
    <OrderApplyRefundView :id="id" @submitApplyRefund="submitApplyRefund" />
  <ContentScrollView hasPaddingTop style="background-color: transparent">
    <OrderApplyRefundView
      :id="id"
      @submitApplyRefund="submitApplyRefund"
      ref="orderApplyRefundViewRef"
    />
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" @click="handleSubmit">提交</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { OrderApplyRefundView } from '@life-payment/components';
import { goBack } from '@/utils';
import type { ComponentExposed } from 'vue-component-type-helpers';
defineOptions({
  name: 'InnerPage',
@@ -16,6 +24,13 @@
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const orderApplyRefundViewRef =
  useTemplateRef<ComponentExposed<typeof OrderApplyRefundView>>('orderApplyRefundViewRef');
function handleSubmit() {
  orderApplyRefundViewRef.value?.handleSubmit?.();
}
function submitApplyRefund() {
  goBack();
}
apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayout title="申请退款" class="orderApplyRefund-page-wrapper" hasBorder>
  <PageLayout title="申请退款" class="orderApplyRefund-page-wrapper" hasBgColor>
    <InnerPage />
  </PageLayout>
</template>
apps/taro/src/subpackages/userAccount/editElectricUserAccount/InnerPage.vue
@@ -1,13 +1,17 @@
<template>
  <ContentScrollView hasPaddingTop style="background-color: transparent">
    <EditElectricUserAccount :id="id" @success="handleSuccess" />
    <EditElectricUserAccount :id="id" @success="handleSuccess" ref="editElectricUserAccountRef" />
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" @click="handleSave">保存</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { EditElectricUserAccount } from '@life-payment/components';
import { goBack } from '@/utils';
import type { ComponentExposed } from 'vue-component-type-helpers';
defineOptions({
  name: 'InnerPage',
@@ -16,6 +20,14 @@
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const editElectricUserAccountRef = useTemplateRef<ComponentExposed<typeof EditElectricUserAccount>>(
  'editElectricUserAccountRef'
);
function handleSave() {
  editElectricUserAccountRef.value?.handleSave?.();
}
function handleSuccess() {
  goBack();
}
apps/taro/src/subpackages/userAccount/editPhoneUserAccount/InnerPage.vue
@@ -1,13 +1,17 @@
<template>
  <ContentScrollView hasPaddingTop style="background-color: transparent">
    <EditPhoneUserAccount :id="id" @success="handleSuccess" />
    <EditPhoneUserAccount :id="id" @success="handleSuccess" ref="editPhoneUserAccountRef" />
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" @click="handleSave">保存</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { EditPhoneUserAccount } from '@life-payment/components';
import { goBack } from '@/utils';
import type { ComponentExposed } from 'vue-component-type-helpers';
defineOptions({
  name: 'InnerPage',
@@ -16,6 +20,13 @@
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const editPhoneUserAccountRef =
  useTemplateRef<ComponentExposed<typeof EditPhoneUserAccount>>('editPhoneUserAccountRef');
function handleSave() {
  editPhoneUserAccountRef.value?.handleSave?.();
}
function handleSuccess() {
  goBack();
}
packages/components/src/components/Result/Result.vue
@@ -31,6 +31,7 @@
<script setup lang="ts">
import { computed } from 'vue';
import { OssAssets } from '../../constants/img';
import { Button as NutButton } from '@nutui/nutui-taro';
defineOptions({
  name: 'Result',
packages/components/src/components/Result/ResultWithoutBG.vue
New file
@@ -0,0 +1,47 @@
<template>
  <div class="result-without-bg-wrapper" v-bind="$attrs">
    <div class="result-without-bg-content">
      <img class="result-without-bg-content-icon" :src="OssAssets.result.Successv2" />
      <div class="result-without-bg-content-title">{{ title }}</div>
      <div class="result-without-bg-content-remark">
        <slot name="remark">{{ remark }} </slot>
      </div>
    </div>
    <div class="result-without-bg-wrapper-actions">
      <slot name="actions">
        <div class="chunk-form-actions">
          <nut-button class="recharge-button" type="primary" @click="emit('generate')">
            <div class="recharge-button-inner">
              <div class="recharge-button-text">生成我的推广码</div>
            </div>
          </nut-button>
        </div>
      </slot>
    </div>
    <div class="result-without-bg-wrapper-tips">
      <slot name="tips">{{ tips }} </slot>
    </div>
  </div>
</template>
<script setup lang="ts">
import { OssAssets } from '../../constants/img';
import { Button as NutButton } from '@nutui/nutui-taro';
defineOptions({
  name: 'ResultWithoutBG',
});
type Props = {
  title?: string;
  type?: 'success' | 'fail';
  tips?: string;
  remark?: string;
};
const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{
  (e: 'generate'): void;
}>();
</script>
packages/components/src/constants/img.ts
@@ -25,6 +25,7 @@
  result: {
    Success: `${OssBasePath}/lifePayment/assets/common/icon-result-success.png`,
    Successv2: `${OssBasePath}/lifePayment/assets/common/icon-result-successv2.png`,
    Fail: `${OssBasePath}/lifePayment/assets/common/icon-result-fail.png`,
  },
};
packages/components/src/index.ts
@@ -6,6 +6,7 @@
export { default as RechargeResultView } from './views/RechargeResultView/RechargeResultView.vue';
export { default as Result } from './components/Result/Result.vue';
export { default as ResultWithTips } from './components/Result/ResultWithTips.vue';
export { default as ResultWithoutBG } from './components/Result/ResultWithoutBG.vue';
export { default as PhoneOrder } from './views/Order/components/PhoneOrder.vue';
export { default as ElectricOrder } from './views/Order/components/ElectricOrder.vue';
export { default as GasOrder } from './views/Order/components/GasOrder.vue';
@@ -17,4 +18,5 @@
export { default as EditGasUserAccount } from './views/userAccount/EditGasUserAccount.vue';
export { default as ShareQrcodeView } from './views/Mine/ShareQrcodeView.vue';
export { default as Dashboard } from './views/Mine/Dashboard.vue';
export { default as ApplyAgentView } from './views/Mine/ApplyAgentView.vue';
export * from './utils';
packages/components/src/styles/components.scss
@@ -483,3 +483,47 @@
    }
  }
}
.result-without-bg-wrapper {
  margin-top: 32px;
  padding: 0 40px;
  .result-without-bg-content {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    .result-without-bg-content-icon {
      width: 320px;
      height: 320px;
      margin-bottom: 22px;
    }
    .result-without-bg-content-title {
      font-size: 48px;
      color: boleGetCssVar('text-color', 'primary');
      font-weight: bold;
      margin-bottom: 12px;
      line-height: 68px;
    }
    .result-without-bg-content-remark {
      font-size: 32px;
      line-height: 48px;
      color: boleGetCssVar('text-color', 'regular');
      font-weight: 500;
      text-align: center;
      padding: 0 32px;
      margin-bottom: 120px;
    }
  }
  .result-without-bg-wrapper-tips {
    font-size: 30px;
    line-height: 48px;
    color: #ff9e25;
    margin-top: 26px;
    padding: 0 20px;
  }
}
packages/components/src/views/Mine/ApplyAgentView.vue
New file
@@ -0,0 +1,122 @@
<template>
  <NutForm
    :model-value="form"
    ref="formRef"
    :rules="rules"
    label-position="top"
    class="order-bill-recharge phone chunk-form"
  >
    <NutFormItem label="公司名称" class="bole-form-item" prop="companyName">
      <NutInput
        v-model.trim="form.companyName"
        class="bole-input-text"
        placeholder="请填写您的公司名称"
        type="text"
      />
    </NutFormItem>
    <NutFormItem label="姓名" class="bole-form-item" prop="name" required>
      <NutInput
        v-model.trim="form.name"
        class="bole-input-text"
        placeholder="请填写您的姓名"
        type="text"
      />
    </NutFormItem>
    <NutFormItem label="联系方式" class="bole-form-item" prop="phoneNumber" required>
      <NutInput
        v-model.trim="form.phoneNumber"
        class="bole-input-text"
        placeholder="请填写您的联系方式"
        type="text"
      />
    </NutFormItem>
    <NutFormItem label="意向代理类型 " class="bole-form-item" prop="type" required>
      <ChooseInputWithPicker
        v-model="form.type"
        placeholder="请选择您想申请的代理类型"
        :value-enum="[]"
        enum-label-key="gasOrgName"
        enum-value-key="gasOrgCode"
      />
    </NutFormItem>
    <NutFormItem label="客户资源" class="bole-form-item" prop="refundApplyRemark" required>
      <NutTextarea
        placeholder="请填写您拥有的客户资源"
        placeholderClass="bole-input-text-placeholder"
        autoSize
        class="bole-input-textarea"
        v-model="form.refundApplyRemark"
        :max-length="200"
        limit-show
      >
      </NutTextarea>
    </NutFormItem>
  </NutForm>
</template>
<script setup lang="ts">
import {
  Form as NutForm,
  FormItem as NutFormItem,
  Input as NutInput,
  Textarea as NutTextarea,
} from '@nutui/nutui-taro';
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { reactive, ref, computed } from 'vue';
import { useLifeRechargeContext } from '@life-payment/core-vue';
import { FormValidator } from '../../utils';
import ChooseInputWithPicker from '../../components/Input/ChooseInputWithPicker.vue';
defineOptions({
  name: 'ApplyAgentView',
});
const emit = defineEmits<{
  (e: 'submit'): void;
}>();
const form = reactive({
  companyName: '',
  name: '',
  phoneNumber: '',
  type: '',
  refundApplyRemark: '',
});
const rules = reactive<FormRules>({
  name: [{ required: true, message: '请填写您的姓名' }],
  phoneNumber: [
    { required: true, message: '请填写您的联系方式' },
    { validator: FormValidator.validatorPhoneNumber, message: '请输入正确的手机号' },
  ],
  refundApplyRemark: [{ required: true, message: '请输入退款原因' }],
});
const { blLifeRecharge } = useLifeRechargeContext();
const formRef = ref<any>(null);
function handleSubmit() {
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
      refundUserLifePayOrder();
    }
  });
}
async function refundUserLifePayOrder() {
  try {
    let params = {
      userId: blLifeRecharge.accountModel.userId,
      refundApplyRemark: form.refundApplyRemark,
    };
    let res = await blLifeRecharge.services.refundUserLifePayOrder(params);
    emit('submit');
  } catch (error) {}
}
defineExpose({
  handleSubmit,
});
</script>
packages/components/src/views/Mine/Dashboard.vue
@@ -1,60 +1,4 @@
<template>
  <!-- <NutGrid :gutter="10" :column-num="3" square class="dashboard-view">
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">累计收款</div>
        <div class="pro-statistics-content">
          {{ toThousand(topStatistics?.accumulatedReceipts ?? 0) }}
        </div>
      </div>
    </NutGridItem>
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">昨日收款</div>
        <div class="pro-statistics-content">
          {{ toThousand(topStatistics?.receiptsYesterday ?? 0) }}
        </div>
      </div>
    </NutGridItem>
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">累计收益</div>
        <div class="pro-statistics-content">
          {{ toThousand(topStatistics?.accumulatedIncome ?? 0) }}
        </div>
      </div>
    </NutGridItem>
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">累计下单</div>
        <div class="pro-statistics-content">{{ topStatistics?.accumulatedOrders ?? 0 }}</div>
      </div>
    </NutGridItem>
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">昨日下单</div>
        <div class="pro-statistics-content">{{ topStatistics?.ordersNumYesterday ?? 0 }}</div>
      </div>
    </NutGridItem>
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">昨日成功</div>
        <div class="pro-statistics-content">{{ topStatistics?.yesterdaySuccess ?? 0 }}</div>
      </div>
    </NutGridItem>
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">累计用户</div>
        <div class="pro-statistics-content">{{ topStatistics?.accumulatedUsers ?? 0 }}</div>
      </div>
    </NutGridItem>
    <NutGridItem>
      <div class="pro-statistics-wrapper">
        <div class="pro-statistics-title">昨日活跃</div>
        <div class="pro-statistics-content">{{ topStatistics?.yesterdayActiveUsers ?? 0 }}</div>
      </div>
    </NutGridItem>
  </NutGrid> -->
  <div class="dashboard-view">
    <Chunk title="核心数据">
      <DashboardLargeCell class="dashboard-large-cell1">
packages/components/src/views/Mine/ShareQrcodeView.vue
@@ -1,6 +1,6 @@
<template>
  <div class="share-qrcode-view">
    <qrcode-vue :value="link" :size="200"></qrcode-vue>
    <qrcode-vue :value="link" :size="size"></qrcode-vue>
  </div>
</template>
@@ -15,9 +15,12 @@
type Props = {
  channlesNum?: string;
  size?: number;
};
const props = withDefaults(defineProps<Props>(), {});
const props = withDefaults(defineProps<Props>(), {
  size: 200,
});
const { blLifeRecharge } = useLifeRechargeContext();
packages/components/src/views/Order/OrderApplyRefundView.vue
@@ -4,7 +4,7 @@
    ref="formRef"
    :rules="rules"
    label-position="top"
    class="order-bill-recharge phone"
    class="order-bill-recharge phone chunk-form"
  >
    <NutFormItem class="bole-form-item" prop="refundApplyRemark" required>
      <NutTextarea
@@ -18,13 +18,13 @@
      >
      </NutTextarea>
    </NutFormItem>
    <div class="common-content">
    <!-- <div class="common-content">
      <nut-button class="recharge-button" type="primary" @click="handleSubmit">
        <div class="recharge-button-inner">
          <div class="recharge-button-text">提交</div>
        </div>
      </nut-button>
    </div>
    </div> -->
  </NutForm>
</template>
@@ -95,4 +95,8 @@
    });
  } catch (error) {}
}
defineExpose({
  handleSubmit,
});
</script>
packages/components/src/views/RechargeResultView/RechargeResultView.vue
@@ -23,6 +23,7 @@
import { LifeRechargeConstants } from '@life-payment/core-vue';
import { CustomerServiceTips, OssAssets } from '../../constants';
import Result from '../../components/Result/Result.vue';
import { Button as NutButton } from '@nutui/nutui-taro';
defineOptions({
  name: 'RechargeResultView',
packages/components/src/views/userAccount/EditElectricUserAccount.vue
@@ -14,13 +14,13 @@
        </NutTextarea>
      </NutFormItem>
    </ElectricBillRechargeBaseForm>
    <div class="chunk-form-actions">
    <!-- <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>
    </div> -->
  </LoadingLayout>
</template>
@@ -122,4 +122,6 @@
    emit('success');
  } catch (error) {}
}
defineExpose({ handleSave });
</script>
packages/components/src/views/userAccount/EditGasUserAccount.vue
@@ -25,13 +25,13 @@
        </NutTextarea>
      </NutFormItem>
    </GasBillRechargeBaseForm>
    <div class="chunk-form-actions">
    <!-- <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>
    </div> -->
  </LoadingLayout>
</template>
@@ -45,7 +45,7 @@
  AddUpdateUserAccountInput,
} from '@life-payment/core-vue';
import { useAddUpdateUserAccount, useGetGasParValue } from '../../hooks';
import LoadingLayout from '../../components//Layout/LoadingLayout.vue';
import LoadingLayout from '../../components/Layout/LoadingLayout.vue';
import ChooseInputWithPicker from '../../components//Input/ChooseInputWithPicker.vue';
import { useQuery } from '@tanstack/vue-query';
import { GasUserAccountExtraProperties } from '../GasBillRecharge/context';
@@ -132,4 +132,6 @@
    emit('success');
  } catch (error) {}
}
defineExpose({ handleSave });
</script>
packages/components/src/views/userAccount/EditPhoneUserAccount.vue
@@ -14,13 +14,13 @@
        </NutTextarea>
      </NutFormItem>
    </PhoneBillRechargeBaseForm>
    <div class="chunk-form-actions">
    <!-- <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>
    </div> -->
  </LoadingLayout>
</template>
@@ -111,4 +111,6 @@
    emit('success');
  } catch (error) {}
}
defineExpose({ handleSave });
</script>