13个文件已添加
4个文件已删除
2 文件已重命名
5 文件已复制
24个文件已修改
1219 ■■■■ 已修改文件
apps/bMiniApp/src/app.config.ts 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/constants/router.ts 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/extraPage/extraPage/extraPage.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/extraPage/extraPage/extraPage.vue 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManageExtraPage/flexJobManageExtraPage.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManageExtraPage/flexJobManageExtraPage.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/.eslintrc-auto-import.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/auto-imports.d.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.private.config.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/app.config.ts 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/wallet/icon-wallet-alipay.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/wallet/icon-wallet-bank.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/wallet/icon-wallet-step-wait.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/wallet/icon-wallet-wechat.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/constants/router.ts 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/hooks/app.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/hooks/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/stores/modules/user.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/extraPage/extraPage/extraPage.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/extraPage/extraPage/extraPage.vue 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSignExtraPage/mineAgreementSignExtraPage.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSignExtraPage/mineAgreementSignExtraPage.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/InnerPage.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/incomeDetailInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdraw/InnerPage.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdraw/withdraw.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdraw/withdraw.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/InnerPage.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/withdrawDetailInfo.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/withdrawDetailInfo.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdrawResult/InnerPage.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdrawResult/withdrawResult.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/withdrawResult/withdrawResult.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/packages/components/assets/wallet/icon-wallet-alipay.png 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/WithdrawMoneyCard.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/List/IncomeDetailListItem.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/apiEnum.ts 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/enterpriseWallet.ts 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/index.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 209 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/utils/file.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/app.config.ts
@@ -117,9 +117,12 @@
        'flexJobManage/flexJobManage',
        'flexJobDetailFromManage/flexJobDetailFromManage',
        'flexJobSign/flexJobSign',
        'flexJobManageExtraPage/flexJobManageExtraPage',
      ],
    },
    {
      root: 'subpackages/extraPage',
      pages: ['extraPage/extraPage'],
    },
  ],
  // preloadRule: {
  //   'pages/mine/index': {
apps/bMiniApp/src/constants/router.ts
@@ -17,7 +17,6 @@
  flexJobManage = '/subpackages/flexJobManage/flexJobManage/flexJobManage',
  flexJobDetailFromManage = '/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage',
  flexJobSign = '/subpackages/flexJobManage/flexJobSign/flexJobSign',
  flexJobManageExtraPage = '/subpackages/flexJobManage/flexJobManageExtraPage/flexJobManageExtraPage',
  // userInfo = '/subpackages/setting/userInfo/userInfo',
  // setting = '/subpackages/setting/setting/setting',
@@ -51,4 +50,6 @@
  jobApplicationManage = '/subpackages/jobApplicationManage/jobApplicationManage/jobApplicationManage',
  jobApplicationDetail = '/subpackages/jobApplicationManage/jobApplicationDetail/jobApplicationDetail',
  extraPage = '/subpackages/extraPage/extraPage/extraPage',
}
apps/bMiniApp/src/subpackages/extraPage/extraPage/extraPage.config.ts
copy from apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.config.ts copy to apps/bMiniApp/src/subpackages/extraPage/extraPage/extraPage.config.ts
apps/bMiniApp/src/subpackages/extraPage/extraPage/extraPage.vue
copy from apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.vue copy to apps/bMiniApp/src/subpackages/extraPage/extraPage/extraPage.vue
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
@@ -72,7 +72,7 @@
} from '@12333/constants';
import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee';
import Taro from '@tarojs/taro';
import { Message, setOSSLink } from '@12333/utils';
import { Message, openDocument, setOSSLink } from '@12333/utils';
defineOptions({
  name: 'InnerPage',
@@ -104,10 +104,11 @@
);
function checkContract(item: API.GetEnterpriseEmployeesQueryResultItem) {
  const encodedUrl = encodeURIComponent(setOSSLink(item.contractUrl));
  Taro.navigateTo({
    url: `${RouterPath.flexJobManageExtraPage}?url=${encodedUrl}`,
  });
  if (!item.contractUrl) {
    Message.warning('协议无法查看,请稍后再试');
    return;
  }
  openDocument(setOSSLink(item.contractUrl));
}
function goDetail(item: API.GetEnterpriseEmployeesQueryResultItem) {
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManageExtraPage/flexJobManageExtraPage.config.ts
File was deleted
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManageExtraPage/flexJobManageExtraPage.vue
File was deleted
apps/cMiniApp/.eslintrc-auto-import.json
@@ -104,6 +104,7 @@
    "watchPostEffect": true,
    "watchSyncEffect": true,
    "useUpdateResume": true,
    "useAccessReal": true
    "useAccessReal": true,
    "useLaunchOptions": true
  }
}
apps/cMiniApp/auto-imports.d.ts
@@ -83,6 +83,7 @@
  const useGoLogin: typeof import('./src/hooks/user')['useGoLogin']
  const useId: typeof import('vue')['useId']
  const useIsLogin: typeof import('./src/hooks/user')['useIsLogin']
  const useLaunchOptions: typeof import('./src/hooks/app')['useLaunchOptions']
  const useLink: typeof import('vue-router')['useLink']
  const useLoginedJump: typeof import('./src/hooks/login')['useLoginedJump']
  const useModel: typeof import('vue')['useModel']
@@ -195,6 +196,7 @@
    readonly useGoLogin: UnwrapRef<typeof import('./src/hooks/user')['useGoLogin']>
    readonly useId: UnwrapRef<typeof import('vue')['useId']>
    readonly useIsLogin: UnwrapRef<typeof import('./src/hooks/user')['useIsLogin']>
    readonly useLaunchOptions: UnwrapRef<typeof import('./src/hooks/app')['useLaunchOptions']>
    readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
    readonly useLoginedJump: UnwrapRef<typeof import('./src/hooks/login')['useLoginedJump']>
    readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
apps/cMiniApp/project.private.config.json
@@ -10,6 +10,13 @@
        "miniprogram": {
            "list": [
                {
                    "name": "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
                    "pathName": "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
                    "query": "scene=66688",
                    "launchMode": "default",
                    "scene": 1047
                },
                {
                    "name": "实名认证",
                    "pathName": "subpackages/authentication/authenticationRealName/authenticationRealName",
                    "query": "type=realName",
apps/cMiniApp/src/app.config.ts
@@ -66,7 +66,6 @@
        'authenticationResult/authenticationResult',
        'authenticationRealName/authenticationRealName',
        'authenticationFace/authenticationFace',
        'extraPage/extraPage',
      ],
    },
    {
@@ -82,7 +81,6 @@
        'mineCollectTask/mineCollectTask',
        'mineAgreementSign/mineAgreementSign',
        'mineAgreementSignDetail/mineAgreementSignDetail',
        'mineAgreementSignExtraPage/mineAgreementSignExtraPage',
        'setting/setting',
      ],
    },
@@ -94,6 +92,9 @@
        'unboundBankCard/unboundBankCard',
        'incomeDetail/incomeDetail',
        'incomeDetailInfo/incomeDetailInfo',
        'withdraw/withdraw',
        'withdrawResult/withdrawResult',
        'withdrawDetailInfo/withdrawDetailInfo',
      ],
    },
    {
@@ -122,6 +123,10 @@
      root: 'subpackages/user',
      pages: ['complaint/complaint'],
    },
    {
      root: 'subpackages/extraPage',
      pages: ['extraPage/extraPage'],
    },
  ],
  // preloadRule: {
  //   'pages/mine/index': {
apps/cMiniApp/src/assets/wallet/icon-wallet-alipay.png
apps/cMiniApp/src/assets/wallet/icon-wallet-bank.png
apps/cMiniApp/src/assets/wallet/icon-wallet-step-wait.png
apps/cMiniApp/src/assets/wallet/icon-wallet-wechat.png
apps/cMiniApp/src/constants/router.ts
@@ -29,7 +29,6 @@
  authenticationJBR = '/subpackages/authentication/authenticationJBR/authenticationJBR',
  authenticationRealName = '/subpackages/authentication/authenticationRealName/authenticationRealName',
  authenticationFace = '/subpackages/authentication/authenticationFace/authenticationFace',
  extraPage = '/subpackages/authentication/extraPage/extraPage',
  citySelect = '/subpackages/city/citySelect/citySelect',
  mineSign = '/subpackages/mine/mineSign/mineSign',
@@ -38,7 +37,6 @@
  mineCollectTask = '/subpackages/mine/mineCollectTask/mineCollectTask',
  mineAgreementSign = '/subpackages/mine/mineAgreementSign/mineAgreementSign',
  mineAgreementSignDetail = '/subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail',
  mineAgreementSignExtraPage = '/subpackages/mine/mineAgreementSignExtraPage/mineAgreementSignExtraPage',
  setting = '/subpackages/mine/setting/setting',
  mineWallet = '/subpackages/wallet/mineWallet/mineWallet',
@@ -46,6 +44,9 @@
  bindBankCard = '/subpackages/wallet/bindBankCard/bindBankCard',
  incomeDetail = '/subpackages/wallet/incomeDetail/incomeDetail',
  incomeDetailInfo = '/subpackages/wallet/incomeDetailInfo/incomeDetailInfo',
  withdraw = '/subpackages/wallet/withdraw/withdraw',
  withdrawResult = '/subpackages/wallet/withdrawResult/withdrawResult',
  withdrawDetailInfo = '/subpackages/wallet/withdrawDetailInfo/withdrawDetailInfo',
  mineCurriculumVitae = '/subpackages/curriculum/mineCurriculumVitae/mineCurriculumVitae',
  editMineInfo = '/subpackages/curriculum/editMineInfo/editMineInfo',
@@ -55,4 +56,6 @@
  mineCertificateAddOrEdit = '/subpackages/curriculum/mineCertificateAddOrEdit/mineCertificateAddOrEdit',
  mineDetailedInfo = '/subpackages/curriculum/mineDetailedInfo/mineDetailedInfo',
  expectPosition = '/subpackages/curriculum/expectPosition/expectPosition',
  extraPage = '/subpackages/extraPage/extraPage/extraPage',
}
apps/cMiniApp/src/hooks/app.ts
New file
@@ -0,0 +1,13 @@
import Taro from '@tarojs/taro';
import { useUserStoreWithOut } from '@/stores/modules/user';
export function useLaunchOptions() {
  const options = Taro.getLaunchOptionsSync();
  const userStore = useUserStoreWithOut();
  console.log('userStore: ', userStore);
  if (userStore.firstLaunch) {
    userStore.setFirstLaunch(false);
    return options;
  }
  return {} as Taro.getLaunchOptionsSync.LaunchOptions;
}
apps/cMiniApp/src/hooks/index.ts
@@ -3,3 +3,4 @@
export * from './access';
export * from './login';
export * from './authentication';
export * from './app';
apps/cMiniApp/src/stores/modules/user.ts
@@ -33,6 +33,7 @@
  refreshToken?: Nullable<string>;
  userDetail?: Nullable<API.GetPersonalLoginInfoQueryResult>;
  firstGetUserDetail?: boolean;
  firstLaunch?: boolean;
  locationCity?: string;
  locationProvince?: string;
@@ -71,6 +72,7 @@
      refreshToken: userInfo?.refreshToken ?? '',
      userDetail: userDetail,
      firstGetUserDetail: true,
      firstLaunch: true,
      locationCity: storageLocation?.city ?? '北京市',
      locationProvince: storageLocation?.province ?? '北京',
      firstSetLocation: true,
@@ -277,6 +279,10 @@
      // }
      LocationUtils.currentProvinceName = provinceName;
    },
    setFirstLaunch(firstLaunch: boolean) {
      this.firstLaunch = firstLaunch;
    },
  },
});
apps/cMiniApp/src/subpackages/extraPage/extraPage/extraPage.config.ts
apps/cMiniApp/src/subpackages/extraPage/extraPage/extraPage.vue
apps/cMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue
@@ -55,7 +55,9 @@
        page: pageParam,
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      },
      userSignContractStatus: queryState.userSignContractStatus,
      userSignContractStatus: Number(queryState.userSignContractStatus)
        ? queryState.userSignContractStatus
        : null,
    };
    return enterpriseEmployeeServices.getPersonalUserElectronSigns(params, {
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue
@@ -77,7 +77,7 @@
  EnumTaskUserSignContractStatus,
  EnumTaskUserSignContractStatusSignText,
} from '@12333/constants';
import { format, hiddenPhone, Message, setOSSLink } from '@12333/utils';
import { format, hiddenPhone, Message, setOSSLink, openDocument } from '@12333/utils';
import Taro from '@tarojs/taro';
defineOptions({
@@ -86,8 +86,11 @@
const { userDetail } = useUser();
const router = Taro.useRouter();
const launchOption = useLaunchOptions();
const options = Taro.getLaunchOptionsSync();
//灵工Id
const id = router.params?.id;
const code = router.params?.code;
const code = router.params?.code || options?.query?.scene;
const {
  isLoading,
@@ -118,10 +121,11 @@
    detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Stop ||
    detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Pass
  ) {
    const encodedUrl = encodeURIComponent(setOSSLink(detail?.value?.contractUrl));
    Taro.navigateTo({
      url: `${RouterPath.mineAgreementSignExtraPage}?url=${encodedUrl}`,
    });
    if (!detail?.value?.contractUrl) {
      Message.warning('协议无法查看,请稍后再试');
      return;
    }
    openDocument(setOSSLink(detail?.value?.contractUrl));
  }
}
@@ -129,12 +133,12 @@
  try {
    // if (detail.value?.contractTemplateAccess === EnumElectronSignAccess.BestSign) {
    let params: API.PersonalUserElectronSignCommand = {
      id: id,
      id: detail.value?.id,
    };
    let res = await enterpriseEmployeeServices.personalUserElectronSign(params);
    if (res) {
      const encodedUrl = encodeURIComponent(res.signContractLongUrl);
      Taro.navigateTo({ url: `${RouterPath.mineAgreementSignExtraPage}?url=${encodedUrl}` });
      Taro.navigateTo({ url: `${RouterPath.extraPage}?url=${encodedUrl}` });
    }
    // }
    // if (detail.value?.contractTemplateAccess === EnumElectronSignAccess.AlipaySign) {
apps/cMiniApp/src/subpackages/mine/mineAgreementSignExtraPage/mineAgreementSignExtraPage.config.ts
File was deleted
apps/cMiniApp/src/subpackages/mine/mineAgreementSignExtraPage/mineAgreementSignExtraPage.vue
File was deleted
apps/cMiniApp/src/subpackages/wallet/incomeDetail/InnerPage.vue
@@ -1,10 +1,23 @@
<template>
  <ProTabs
    v-model="queryState.status"
    name="home-tab"
    :showPaneContent="false"
    class="home-tabs"
    isTransparent
    title-gutter="12"
    title-scroll
  >
    <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane>
    <ProTabPane :title="`收入`" :pane-key="1"></ProTabPane>
    <ProTabPane :title="`提现`" :pane-key="2"></ProTabPane>
  </ProTabs>
  <List>
    <IncomeDetailListItem :item="'收入:¥600.00'">
    <IncomeDetailListItem :item="`收入:¥${toThousand(100)} 提现:¥${toThousand(200)}`">
      <template #title>
        <div class="income-detail-time-picker">
          <ChooseInputWithDatePicker
            v-model="form.month"
            v-model="queryState.month"
            type="year-month"
            format="YYYY年M月"
            :max-date="nowDate"
@@ -13,22 +26,41 @@
        </div>
      </template>
    </IncomeDetailListItem>
    <IncomeDetailListItem
      :title="'收入-宁波人力无忧'"
      :item="'2024.12.20 13:30:30'"
      :value="'+300.00'"
      @click="goIncomeDetailInfo()"
    >
    </IncomeDetailListItem>
  </List>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list home-list"
    v-bind="infiniteLoadingProps"
    :key="queryState.status"
  >
    <template #renderItem="{ item }">
      <IncomeDetailListItem
        :title="'收入-宁波人力无忧'"
        :funds="'+300.00'"
        :item="'2024.12.20 13:30:30'"
        :value="'钱包余额:300.00'"
        @click="goIncomeDetailInfo()"
      >
      </IncomeDetailListItem>
    </template>
  </InfiniteLoading>
</template>
<script setup lang="ts">
import { List, IncomeDetailListItem, ChooseInputWithDatePicker } from '@12333/components';
import {
  List,
  IncomeDetailListItem,
  ChooseInputWithDatePicker,
  ProTabs,
  ProTabPane,
} from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
import { IconFont } from '@nutui/icons-vue-taro';
import Taro from '@tarojs/taro';
import dayjs from 'dayjs';
import { useInfiniteLoading } from '@12333/hooks';
import { EnumPagedListOrder } from '@12333/constants';
import { toThousand } from '@12333/utils';
import * as taskServices from '@12333/services/apiV2/task';
defineOptions({
  name: 'InnerPage',
@@ -36,14 +68,40 @@
const userStore = useUserStore();
const nowDate = dayjs().toDate();
const form = reactive({
const queryState = reactive({
  month: dayjs().format('YYYY年M月'),
  status: 0,
});
function goIncomeDetailInfo() {
const { infiniteLoadingProps } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.GetPersonalApplyTaskInfosQuery = {
      pageModel: {
        rows: 20,
        page: pageParam,
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      },
    };
    if (Number(queryState.status)) {
      params.status = queryState.status;
    }
    return taskServices.getPersonalApplyTaskInfos(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['taskServices/getPersonalApplyTaskInfos', queryState],
  }
);
function goIncomeDetailInfo(row?) {
  Taro.navigateTo({
    url: `${RouterPath.incomeDetailInfo}`,
  });
  // Taro.navigateTo({
  //   url: `${RouterPath.withdrawDetailInfo}`,
  // });
}
</script>
@@ -76,5 +134,17 @@
      left: 220px;
    }
  }
  .common-infinite-scroll-list {
    background-color: #ffffff;
  }
  .pro-list {
    background: transparent;
  }
  .nut-input {
    background: transparent;
  }
}
</style>
apps/cMiniApp/src/subpackages/wallet/incomeDetail/incomeDetail.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayout class="incomeDetail-page-wrapper" :title="'收入明细'">
  <PageLayout class="incomeDetail-page-wrapper" :title="'收支明细'">
    <InnerPage></InnerPage>
  </PageLayout>
</template>
apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/InnerPage.vue
@@ -1,11 +1,5 @@
<template>
  <div class="income-detail-info-money">
    <div class="income-detail-info-money-value">
      <div class="income-detail-info-money-value-unit">¥</div>
      <div class="income-detail-info-money-value-num">{{ '33.33' }}</div>
    </div>
    <div class="income-detail-info-money-type">{{ '收入' }}</div>
  </div>
  <WithdrawMoneyCard :money="100" title="收入"></WithdrawMoneyCard>
  <List>
    <ListItem title="流水号" :show-arrow="false">
      <template #extra>
@@ -22,12 +16,12 @@
        <div class="income-detail-info-value">{{ '2024.11.13' }}</div>
      </template>
    </ListItem>
    <ListItem title="结算单内容" :show-arrow="false">
    <ListItem title="工资单内容" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '33.33元' }}</div>
      </template>
    </ListItem>
    <ListItem title="结算单内容" :show-arrow="false">
    <ListItem title="工资单内容" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '33.33元' }}</div>
      </template>
@@ -36,7 +30,7 @@
</template>
<script setup lang="ts">
import { List, ListItem } from '@12333/components';
import { List, ListItem, WithdrawMoneyCard } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
defineOptions({
apps/cMiniApp/src/subpackages/wallet/incomeDetailInfo/incomeDetailInfo.vue
@@ -1,5 +1,5 @@
<template>
  <PageLayout class="incomeDetailInfo-page-wrapper" :title="'收入详情'" developing>
  <PageLayout class="incomeDetailInfo-page-wrapper" :title="'收入详情'">
    <InnerPage></InnerPage>
  </PageLayout>
</template>
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
@@ -1,21 +1,16 @@
<template>
  <div class="mine-wallet-balance">
    <WithdrawMoneyCard :money="100" title="账户余额(元)"></WithdrawMoneyCard>
    <nut-button type="primary" class="mine-wallet-balance-btn" @click="goWithdraw">提现</nut-button>
  </div>
  <List>
    <ListItem title="收入明细" @click="goIncomeDetail"> </ListItem>
    <ListItem title="银行卡" @click="goBankBind">
      <template #extra>
        <div class="bind-bank-card">
          {{ isBinding ? '已绑定' : '未绑定、立即绑定' }}
        </div>
      </template>
    </ListItem>
  </List>
</template>
<script setup lang="ts">
import { List, ListItem } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
import { List, ListItem, WithdrawMoneyCard } from '@12333/components';
import Taro from '@tarojs/taro';
import { Message } from '@12333/utils';
defineOptions({
  name: 'InnerPage',
@@ -31,21 +26,44 @@
  });
}
const goBankBind = useAccessReal(
const goWithdraw = useAccessReal(
  () => {
    Taro.navigateTo({
      url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`,
      url: `${RouterPath.withdraw}`,
    });
  },
  { message: '完成实名认证后才可进行银行卡绑定' }
  { message: '完成实名认证后才可提现' }
);
// const goBankBind = useAccessReal(
//   () => {
//     Taro.navigateTo({
//       url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`,
//     });
//   },
//   { message: '完成实名认证后才可进行银行卡绑定' }
// );
</script>
<style lang="scss">
@import '@/styles/common.scss';
.bind-bank-card {
  color: boleGetCssVar('text-color', 'regular');
  font-size: 24px;
.mine-wallet-balance {
  text-align: center;
  padding-bottom: 60px;
  .mine-wallet-balance-item {
    font-size: 28px;
    font-weight: 500;
    margin-bottom: 40px;
    &.money {
      font-size: 48px;
      font-weight: 500;
    }
  }
  .mine-wallet-balance-btn {
    width: 60%;
  }
}
</style>
apps/cMiniApp/src/subpackages/wallet/withdraw/InnerPage.vue
New file
@@ -0,0 +1,122 @@
<template>
  <ContentScrollView :paddingH="false">
    <nut-form :model-value="form" ref="formRef" :rules="rules">
      <nut-form-item label="提现金额:" class="bole-form-item" prop="name">
        <nut-input v-model.trim="form.name" placeholder="请输入提现金额" />
      </nut-form-item>
      <div class="withdraw-divider">
        <div class="withdraw-divider-text">{{ `当前账户余额${'188.88'}元,` }}</div>
        <div class="withdraw-divider-btn">全部提现</div>
      </div>
      <nut-form-item label-width="0" class="bole-form-item">
        <nut-radio-group class="withdraw-form-wrapper" v-model="form.alipay">
          <div class="withdraw-form-item">
            <nut-radio label="alipay"> {{ '提现到支付宝' }} </nut-radio>
            <img :src="IconWalletAlipay" class="withdraw-icon" />
          </div>
          <!-- <div class="withdraw-form-item">
            <nut-radio label="wechat"> {{ '提现到微信' }} </nut-radio>
            <img :src="IconWalletWechat" class="withdraw-icon" />
          </div>
          <div class="withdraw-form-item">
            <nut-radio label="bank"> {{ '提现到银行卡' }} </nut-radio>
            <img :src="IconWalletBank" class="withdraw-icon" />
          </div> -->
        </nut-radio-group>
      </nut-form-item>
      <nut-form-item label="支付宝户名:" class="bole-form-item" prop="name">
        <nut-input v-model.trim="form.name" placeholder="请输入支付宝户名" />
      </nut-form-item>
      <nut-form-item label="身份证号:" class="bole-form-item" prop="name">
        <nut-input v-model.trim="form.name" placeholder="请输入身份证号" />
      </nut-form-item>
      <nut-form-item label="支付宝账号:" class="bole-form-item" prop="phoneNumber" required>
        <nut-input v-model.trim="form.name" placeholder="请输入支付宝账号/手机号" />
      </nut-form-item>
    </nut-form>
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="plain" @click="goBack">取消</PageFooterBtn>
    <PageFooterBtn type="primary" @click="handleConfirm">确认提现</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import IconWalletAlipay from '@/assets/wallet/icon-wallet-alipay.png';
import IconWalletWechat from '@/assets/wallet/icon-wallet-wechat.png';
import IconWalletBank from '@/assets/wallet/icon-wallet-bank.png';
import { goBack } from '@/utils';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'InnerPage',
});
const form = reactive({
  name: '',
  alipay: 'alipay',
});
const rules = reactive<FormRules>({
  name: [{ required: true, message: '请输入' }],
});
const formRef = ref<any>(null);
function handleConfirm() {
  Taro.navigateTo({
    url: `${RouterPath.withdrawResult}`,
  });
  // if (!formRef.value) return;
  // formRef.value.validate().then(({ valid, errors }: any) => {
  //   if (valid) {
  //     confirm();
  //   }
  // });
}
async function confirm() {
  try {
  } catch (error) {}
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.withdraw-page-wrapper {
  .withdraw-divider {
    display: flex;
    align-items: center;
    font-size: 28px;
    color: boleGetCssVar('text-color', 'secondary');
    padding: 20px 40px;
    .withdraw-divider-btn {
      color: boleGetCssVar('color', 'primary');
    }
  }
  .withdraw-form-wrapper {
    width: 100%;
    .withdraw-form-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-right: 40px;
      margin-bottom: 12px;
      &:last-child {
        margin-bottom: 0;
      }
      .withdraw-icon {
        width: 36px;
        height: 36px;
        display: inline-block;
      }
    }
  }
}
</style>
apps/cMiniApp/src/subpackages/wallet/withdraw/withdraw.config.ts
copy from apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.config.ts copy to apps/cMiniApp/src/subpackages/wallet/withdraw/withdraw.config.ts
apps/cMiniApp/src/subpackages/wallet/withdraw/withdraw.vue
New file
@@ -0,0 +1,17 @@
<template>
  <PageLayout class="withdraw-page-wrapper" title="提现" has-border>
    <InnerPage></InnerPage>
  </PageLayout>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'withdraw',
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/InnerPage.vue
New file
@@ -0,0 +1,55 @@
<template>
  <WithdrawMoneyCard :money="100" :title="`提现-${'支付宝'}提现`"></WithdrawMoneyCard>
  <List>
    <ListItem title="提现单号" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
      </template>
    </ListItem>
    <ListItem title="提现金额" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '宁波人力无忧' }}</div>
      </template>
    </ListItem>
    <ListItem title="提现方式" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '2024.11.13' }}</div>
      </template>
    </ListItem>
    <ListItem title="服务费" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '33.33元' }}</div>
      </template>
    </ListItem>
    <ListItem title="支付宝户名" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
      </template>
    </ListItem>
    <ListItem title="支付宝账号" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
      </template>
    </ListItem>
    <ListItem title="实际到账" :show-arrow="false">
      <template #extra>
        <div class="income-detail-info-value">{{ '33.33元' }}</div>
      </template>
    </ListItem>
  </List>
</template>
<script setup lang="ts">
import { List, ListItem, WithdrawMoneyCard } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
defineOptions({
  name: 'InnerPage',
});
const userStore = useUserStore();
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/withdrawDetailInfo.config.ts
copy from apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.config.ts copy to apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/withdrawDetailInfo.config.ts
apps/cMiniApp/src/subpackages/wallet/withdrawDetailInfo/withdrawDetailInfo.vue
New file
@@ -0,0 +1,18 @@
<template>
  <PageLayout class="withdrawDetailInfo-page-wrapper" :title="'提现详情'">
    <InnerPage></InnerPage>
  </PageLayout>
</template>
<script setup lang="ts">
import { PageLayout } from '@/components';
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'withdrawDetailInfo',
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/cMiniApp/src/subpackages/wallet/withdrawResult/InnerPage.vue
New file
@@ -0,0 +1,125 @@
<template>
  <ContentScrollView :paddingH="false">
    <div class="withdraw-result-step-wrapper">
      <div class="withdraw-result-step-title">余额提现</div>
      <nut-steps
        class="withdraw-result-step-content"
        progress-dot
        direction="vertical"
        :current="2"
      >
        <nut-step title="发起提现" :content="dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')">
        </nut-step>
        <nut-step
          title="机构处理中"
          :content="`预计${dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')}前到账`"
        >
          <template #icon>
            <img class="withdraw-result-step-icon-wait" :src="IconWalletStepWait" alt="" />
          </template>
        </nut-step>
        <nut-step title="提现到账" :content="dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')">
        </nut-step>
      </nut-steps>
    </div>
    <List>
      <ListItem title="提现单号" :show-arrow="false">
        <template #extra>
          <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
        </template>
      </ListItem>
      <ListItem title="提现金额" :show-arrow="false">
        <template #extra>
          <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
        </template>
      </ListItem>
      <ListItem title="提现方式" :show-arrow="false">
        <template #extra>
          <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
        </template>
      </ListItem>
      <template v-if="walletType === 'alipay'">
        <ListItem title="支付宝户名" :show-arrow="false">
          <template #extra>
            <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
          </template>
        </ListItem>
        <ListItem title="支付宝账号" :show-arrow="false">
          <template #extra>
            <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
          </template>
        </ListItem>
      </template>
      <template v-if="walletType === 'bank'">
        <ListItem title="银行卡号" :show-arrow="false">
          <template #extra>
            <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
          </template>
        </ListItem>
        <ListItem title="开户行" :show-arrow="false">
          <template #extra>
            <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
          </template>
        </ListItem>
      </template>
      <ListItem title="服务费" :show-arrow="false">
        <template #extra>
          <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
        </template>
      </ListItem>
      <ListItem title="实际到账" :show-arrow="false">
        <template #extra>
          <div class="income-detail-info-value">{{ '5893485943859843095843' }}</div>
        </template>
      </ListItem>
    </List>
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" @click="handleConfirm">完成</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import { List, ListItem } from '@12333/components';
import dayjs from 'dayjs';
import IconWalletStepWait from '@/assets/wallet/icon-wallet-step-wait.png';
defineOptions({
  name: 'InnerPage',
});
const walletType = ref('alipay');
async function handleConfirm() {
  try {
  } catch (error) {}
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.withdrawResult-page-wrapper {
  .withdraw-result-step-wrapper {
    padding: 20px 60px;
    .withdraw-result-step-title {
      font-size: 32px;
      font-weight: bold;
      text-align: center;
      margin-bottom: 40px;
    }
    .withdraw-result-step-content {
      .nut-step-main {
        margin-bottom: 20px;
      }
      .withdraw-result-step-icon-wait {
        width: 40px;
        height: 40px;
      }
    }
  }
}
</style>
apps/cMiniApp/src/subpackages/wallet/withdrawResult/withdrawResult.config.ts
copy from apps/cMiniApp/src/subpackages/authentication/extraPage/extraPage.config.ts copy to apps/cMiniApp/src/subpackages/wallet/withdrawResult/withdrawResult.config.ts
apps/cMiniApp/src/subpackages/wallet/withdrawResult/withdrawResult.vue
New file
@@ -0,0 +1,17 @@
<template>
  <PageLayout class="withdrawResult-page-wrapper" title="提现" has-border>
    <InnerPage></InnerPage>
  </PageLayout>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'withdrawResult',
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/packages/components/assets/wallet/icon-wallet-alipay.png
packages/components/src/Card/WithdrawMoneyCard.vue
New file
@@ -0,0 +1,63 @@
<template>
  <div class="withdraw-money-card">
    <div class="withdraw-money-card-value">
      <div class="withdraw-money-card-value-unit">¥</div>
      <div class="withdraw-money-card-value-num">{{ toThousand(props.money) }}</div>
    </div>
    <div class="withdraw-money-card-type">{{ props.title }}</div>
  </div>
</template>
<script setup lang="ts">
import { toThousand } from '@12333/utils';
defineOptions({
  name: 'WithdrawMoneyCard',
});
type Props = {
  money: number;
  title: string;
};
const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{
  (e: 'update:checkedId', value: string): void;
}>();
</script>
<style lang="scss">
@import '@/styles/common.scss';
.withdraw-money-card {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  // background-color: #ffffff;
  padding: 70px 0;
  .withdraw-money-card-value {
    display: flex;
    align-items: center;
    font-weight: 600;
    color: boleGetCssVar('text-color', 'primary');
    .withdraw-money-card-value-unit {
      font-size: 32px;
    }
    .withdraw-money-card-value-num {
      font-size: 64px;
    }
  }
  .withdraw-money-card-type {
    margin-top: 10px;
    font-weight: 400;
    font-size: 28px;
    color: boleGetCssVar('text-color', 'primary');
  }
}
</style>
packages/components/src/List/IncomeDetailListItem.vue
@@ -2,7 +2,10 @@
  <div class="income-detail-list-item">
    <div class="income-detail-list-item-inner" :class="{ 'border-none': !showBorder }">
      <slot name="title">
        <div class="income-detail-list-item-title">{{ title }}</div>
        <div class="income-detail-list-item-title">
          <div class="income-detail-list-item-title-text">{{ title }}</div>
          <div class="income-detail-list-item-title-value">{{ funds }}</div>
        </div>
      </slot>
      <div class="income-detail-list-item-content">
        <div class="income-detail-list-item-content-item">{{ item }}</div>
@@ -19,6 +22,7 @@
type Props = {
  title?: string;
  funds?: string;
  item?: string;
  value?: string;
  showValue?: boolean;
@@ -52,26 +56,18 @@
      font-size: 24px;
      color: boleGetCssVar('text-color', 'primary');
      line-height: 34px;
      display: flex;
      justify-content: space-between;
    }
    .income-detail-list-item-content {
      display: flex;
      justify-content: space-between;
      align-items: center;
      .income-detail-list-item-content-item {
        font-weight: 400;
        font-size: 20px;
        color: boleGetCssVar('text-color', 'secondary');
        line-height: 44px;
      }
      .income-detail-list-item-content-value {
        font-weight: 500;
        font-size: 30px;
        color: boleGetCssVar('text-color', 'primary');
        line-height: 44px;
      }
      font-weight: 400;
      font-size: 22px;
      color: boleGetCssVar('text-color', 'secondary');
      line-height: 44px;
    }
  }
}
packages/components/src/index.ts
@@ -25,6 +25,7 @@
export { default as TaskCheckFileCard } from './Card/TaskCheckFileCard.vue';
export { default as MineAgreementSignCard } from './Card/MineAgreementSignCard.vue';
export { default as JobApplicationCard } from './Card/JobApplicationCard.vue';
export { default as WithdrawMoneyCard } from './Card/WithdrawMoneyCard.vue';
export { default as MyTaskCard } from './Card/MyTaskCard.vue';
export { default as SignCard } from './Card/SignCard.vue';
export { default as FlexJobCard } from './Card/FlexJobCard.vue';
packages/constants/apiEnum.ts
@@ -95,6 +95,22 @@
  Identity4 = 20,
}
/** 企业钱包通道 */
export enum EnumEnterpriseWalletAccess {
  /**支付宝 */
  Alipay = 10,
}
/** 企业钱包签约状态 */
export enum EnumEnterpriseWalletSignStatus {
  /**申请中 */
  Apply = 10,
  /**已签约 */
  Normal = 100,
  /**终止 */
  Stop = 999,
}
/** 菜单类型 */
export enum EnumMenuType {
  /**菜单 */
packages/services/apiV2/enterpriseWallet.ts
@@ -7,7 +7,7 @@
  body: API.AlipayFundExpandindirectCreateCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/enterpriseWallet/alipayFundExpandindirectCreate', {
  return request<string>('/api/user/enterpriseWallet/alipayFundExpandindirectCreate', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -17,12 +17,105 @@
  });
}
/** 资金二级商户KYB代进件状态通知接口 POST /api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify */
/** 支付宝资金二级商户KYB代进件状态通知 POST /api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify */
export async function alipayFundExpandindirectCreateNotify(
  body: API.AlipayFundExpandindirectCreateNotifyCommand,
  body: {
    /** 通知ID */
    notify_id?: string;
    /** 消息发送时的服务端时间 */
    utc_timestamp?: string;
    /** 消息接口名称 */
    msg_method?: string;
    /** 消息接受方的应用id */
    app_id?: string;
    /** 版本号(1.1版本为标准消息) */
    version?: string;
    /** 消息报文 */
    biz_content?: string;
    /** 签名 */
    sign?: string;
    /** 签名类型 */
    sign_type?: string;
    /** 编码集,该字符集为验签和解密所需要的字符集 */
    charset?: string;
  },
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify', {
  const formData = new FormData();
  Object.keys(body).forEach((ele) => {
    const item = (body as any)[ele];
    if (item !== undefined && item !== null) {
      formData.append(
        ele,
        typeof item === 'object' && !(item instanceof File) ? JSON.stringify(item) : item
      );
    }
  });
  return request<string>('/api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify', {
    method: 'POST',
    data: formData,
    requestType: 'form',
    ...(options || {}),
  });
}
/** 支付宝资金二级商户KYB代进件文件上传接口 POST /api/user/enterpriseWallet/alipayFundExpandindirectImageUpload */
export async function alipayFundExpandindirectImageUpload(
  body: {
    /** 产品码 */
    ProductCode?: string;
    /** 场景码 */
    BizScene?: string;
  },
  File?: File,
  options?: API.RequestConfig
) {
  const formData = new FormData();
  if (File) {
    formData.append('File', File);
  }
  Object.keys(body).forEach((ele) => {
    const item = (body as any)[ele];
    if (item !== undefined && item !== null) {
      formData.append(
        ele,
        typeof item === 'object' && !(item instanceof File) ? JSON.stringify(item) : item
      );
    }
  });
  return request<string>('/api/user/enterpriseWallet/alipayFundExpandindirectImageUpload', {
    method: 'POST',
    data: formData,
    requestType: 'form',
    ...(options || {}),
  });
}
/** 支付宝资金二级商户KYB代进件单取消接口 POST /api/user/enterpriseWallet/alipayFundExpandindirectOrderCancel */
export async function alipayFundExpandindirectOrderCancel(
  body: API.AlipayFundExpandindirectOrderCancelCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterpriseWallet/alipayFundExpandindirectOrderCancel', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 转账 POST /api/user/enterpriseWallet/alipayTransfer */
export async function alipayTransfer(body: API.AlipayTransferCommand, options?: API.RequestConfig) {
  return request<string>('/api/user/enterpriseWallet/alipayTransfer', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -34,10 +127,68 @@
/** 支付宝用户授权协议签约通知 POST /api/user/enterpriseWallet/alipayUserAgreementPageSignNotify */
export async function alipayUserAgreementPageSignNotify(
  body: API.AlipayUserAgreementPageSignNotifyQuery,
  body: {
    notify_id?: string;
    notify_time?: string;
    sign_type?: string;
    sign?: string;
    invalid_time?: string;
    sign_scene?: string;
    sign_time?: string;
    alipay_user_id?: string;
    status?: string;
    forex_eligible?: string;
    external_logon_id?: string;
    app_id?: string;
    auth_app_id?: string;
    external_agreement_no?: string;
    personal_product_code?: string;
    valid_time?: string;
    agreement_no?: string;
    zm_open_id?: string;
    alipay_open_id?: string;
    merchant_app_id?: string;
    alipay_logon_id?: string;
    notify_type?: string;
    zm_score?: string;
    single_quota?: string;
    login_token?: string;
    device_id?: string;
    credit_auth_mode?: string;
    specified_sort_assets?: string;
    partner_id?: string;
    modify_type?: string;
    next_deduct_time?: string;
  },
  options?: API.RequestConfig
) {
  const formData = new FormData();
  Object.keys(body).forEach((ele) => {
    const item = (body as any)[ele];
    if (item !== undefined && item !== null) {
      formData.append(
        ele,
        typeof item === 'object' && !(item instanceof File) ? JSON.stringify(item) : item
      );
    }
  });
  return request<boolean>('/api/user/enterpriseWallet/alipayUserAgreementPageSignNotify', {
    method: 'POST',
    data: formData,
    requestType: 'form',
    ...(options || {}),
  });
}
/** 关闭企业钱包 POST /api/user/enterpriseWallet/closeEnterpriseWallet */
export async function closeEnterpriseWallet(
  body: API.CloseEnterpriseWalletCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterpriseWallet/closeEnterpriseWallet', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
@@ -46,3 +197,83 @@
    ...(options || {}),
  });
}
/** 查询支付宝资金二级商户KYB代进件单详情 GET /api/user/enterpriseWallet/getAlipayFundExpandindirectOrder */
export async function getAlipayFundExpandindirectOrder(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetAlipayFundExpandindirectOrderParams,
  options?: API.RequestConfig
) {
  return request<API.GetAlipayFundExpandindirectOrderQueryResult>(
    '/api/user/enterpriseWallet/getAlipayFundExpandindirectOrder',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 支付宝通知回传 GET /api/user/enterpriseWallet/getAlipayNotify */
export async function getAlipayNotify(
  body: API.GetAlipayNotifyCommand,
  options?: API.RequestConfig
) {
  const formData = new FormData();
  Object.keys(body).forEach((ele) => {
    const item = (body as any)[ele];
    if (item !== undefined && item !== null) {
      formData.append(
        ele,
        typeof item === 'object' && !(item instanceof File) ? JSON.stringify(item) : item
      );
    }
  });
  return request<boolean>('/api/user/enterpriseWallet/getAlipayNotify', {
    method: 'GET',
    data: formData,
    requestType: 'form',
    ...(options || {}),
  });
}
/** 查询企业钱包详情 GET /api/user/enterpriseWallet/getEnterpriseWallet */
export async function getEnterpriseWallet(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseWalletParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseWalletQueryResult>(
    '/api/user/enterpriseWallet/getEnterpriseWallet',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 开通企业钱包 POST /api/user/enterpriseWallet/openEnterpriseWallet */
export async function openEnterpriseWallet(
  body: API.OpenEnterpriseWalletCommand,
  options?: API.RequestConfig
) {
  return request<API.OpenEnterpriseWalletCommandResult>(
    '/api/user/enterpriseWallet/openEnterpriseWallet',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
packages/services/apiV2/index.ts
@@ -10,8 +10,8 @@
import * as resource from './resource';
import * as task from './task';
import * as dictionary from './dictionary';
import * as electronSign from './electronSign';
import * as enterpriseWallet from './enterpriseWallet';
import * as electronSign from './electronSign';
import * as userResume from './userResume';
import * as auth from './auth';
import * as taskCheckReceive from './taskCheckReceive';
@@ -28,8 +28,8 @@
  resource,
  task,
  dictionary,
  electronSign,
  enterpriseWallet,
  electronSign,
  userResume,
  auth,
  taskCheckReceive,
packages/services/apiV2/typings.d.ts
@@ -29,6 +29,8 @@
    /** 商户行业资质图片或协议文本 */
    sceneQualificationImage?: string;
    sitesInfo?: AlipayFundExpandindirectCreateCommandSites;
    /** Id */
    id?: string;
  }
  interface AlipayFundExpandindirectCreateCommandSites {
@@ -39,59 +41,21 @@
    xchengxU_ZHI?: string;
  }
  interface AlipayFundExpandindirectCreateNotifyCommand {
    /** 通知ID */
    notify_id?: string;
    /** 消息发送时的服务端时间 */
    utc_timestamp?: string;
    /** 消息接口名称 */
    msg_method?: string;
    /** 消息接受方的应用id */
    app_id?: string;
    /** 版本号(1.1版本为标准消息) */
    version?: string;
    /** 消息报文 */
    biz_content?: string;
    /** 签名 */
    sign?: string;
    /** 签名类型 */
    sign_type?: string;
    /** 编码集,该字符集为验签和解密所需要的字符集 */
    charset?: string;
  interface AlipayFundExpandindirectOrderCancelCommand {
    /** 代进件单Id */
    id?: string;
  }
  interface AlipayUserAgreementPageSignNotifyQuery {
    /** 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。 */
    personal_product_code?: string;
    /** 当前签约的协议场景。 */
    sign_scene?: string;
    /** NORMAL    协议当前状态 1. TEMP:暂存,协议未生效过; 2. NORMAL:正常; 3. STOP:暂停 */
    status?: string;
    /** 用户签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。 */
    alipay_user_id?: string;
    /** 支付宝系统中用以唯一标识用户签约记录的编号。 */
    agreement_no?: string;
    /** 支付宝代扣协议的实际签约时间,格式为yyyy-MM-dd HH:mm:ss。 */
    sign_time?: string;
    /** 用户在商户网站的登录账号,如果商户接口中未传,则不会返回 */
    external_logon_id?: string;
    /** 支付宝分配给开发者的应用Id */
    app_id?: string;
    /** 支付宝分配给商户的应用Id */
    auth_app_id?: string;
    /** 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 */
    external_agreement_no?: string;
    /** 用户代扣协议的实际生效时间,格式为yyyy-MM-dd HH:mm:ss。 */
    valid_time?: string;
    /** 返回脱敏的支付宝账号。 */
    alipay_logon_id?: string;
    /** 用户签约成功通知类型 */
    notify_type?: string;
  }
  type AlipayTransferCommand = Record<string, any>;
  interface APIcheckHealthParams {
    /** 健康校验 */
    request?: CheckHealthQuery;
  }
  interface APIgetAlipayFundExpandindirectOrderParams {
    /** 代进件单Id */
    id?: string;
  }
  interface APIgetAliyunOSSAcsParams {
@@ -187,6 +151,11 @@
  interface APIgetEnterpriseSmsSettingParams {
    /** Id */
    id?: string;
  }
  interface APIgetEnterpriseWalletParams {
    /** 通道 */
    access?: EnumEnterpriseWalletAccess;
  }
  interface APIgetFileUrlParams {
@@ -401,6 +370,10 @@
  type ClearTaskCollectCommand = Record<string, any>;
  interface CloseEnterpriseWalletCommand {
    access?: EnumEnterpriseWalletAccess;
  }
  interface CollectTaskCommand {
    /** 任务Id */
    ids?: string[];
@@ -568,6 +541,20 @@
    Identity3 = 10,
    /**企业四要素 */
    Identity4 = 20,
  }
  enum EnumEnterpriseWalletAccess {
    /**支付宝 */
    Alipay = 10,
  }
  enum EnumEnterpriseWalletSignStatus {
    /**申请中 */
    Apply = 10,
    /**已签约 */
    Normal = 100,
    /**终止 */
    Stop = 999,
  }
  enum EnumMenuType {
@@ -890,6 +877,24 @@
    timestamp?: number;
  }
  interface FriendlyResultGetAlipayFundExpandindirectOrderQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetAlipayFundExpandindirectOrderQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetAliyunOSSAcsQueryResult {
    /** 跟踪Id */
    traceId?: string;
@@ -1186,6 +1191,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseSmsSettingQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseWalletQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseWalletQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -2001,6 +2024,24 @@
    timestamp?: number;
  }
  interface FriendlyResultOpenEnterpriseWalletCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: OpenEnterpriseWalletCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultPagedListQueryResultGetDictionaryCategoriesQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
@@ -2145,6 +2186,52 @@
    /** 时间戳 */
    timestamp?: number;
  }
  interface GetAlipayFundExpandindirectOrderQueryResult {
    /** Id */
    id?: string;
    /** 产品码 */
    productCode?: string;
    /** 场景码 */
    bizScene?: string;
    /** 外部单号 */
    outBizNo?: string;
    /** 二级商户信息-标识 */
    identity?: string;
    /** 二级商户信息-标识类型 */
    identityType?: string;
    /** 二级商户信息-姓名 */
    name?: string;
    /** 业务类型 */
    bizType?: string;
    /** 原进件单id */
    originalOrderId?: string;
    /** 资金记账本的业务场景 */
    sceneCode?: string;
    /** 转账场景说明 */
    sceneDirections?: string;
    /** 转账场景截图 */
    sceneImage?: string;
    /** 商户行业资质图片或协议文本 */
    sceneQualificationImage?: string;
    /** 商户站点信息 */
    sites?: string;
    /** 进件单id */
    orderId?: string;
    /** 进件单状态
审批中: PROCESSING
已生效: VALID
审批不通过: INVALID
已废弃: DISUSE
已撤销: REVOKED */
    status?: string;
    /** 进件单任务完结时间 */
    taskFinishTime?: string;
    /** 进件单审核不通过原因 */
    riskReviewRemark?: string;
  }
  type GetAlipayNotifyCommand = Record<string, any>;
  type GetAliyunOSSAcsQuery = Record<string, any>;
@@ -2919,6 +3006,23 @@
    isConfigured?: boolean;
  }
  interface GetEnterpriseWalletQueryResult {
    /** 钱包Id */
    id?: string;
    access?: EnumEnterpriseWalletAccess;
    /** 协议号 */
    code?: string;
    /** 通道协议号 */
    agreementNo?: string;
    /** 协议签约时间 */
    signTime?: string;
    /** 协议生效时间 */
    validTime?: string;
    /** 协议失效时间 */
    invalidTime?: string;
    signStatus?: EnumEnterpriseWalletSignStatus;
  }
  interface GetExceptionLogsQuery {
    /** 跟踪Id */
    traceId?: string;
@@ -3319,6 +3423,8 @@
  }
  interface GetPersonalUserElectronSignQueryResult {
    /** 灵工Id */
    id?: string;
    /** 合同编号 */
    contractCode?: string;
    contractTemplateAccess?: EnumElectronSignAccess;
@@ -4241,6 +4347,15 @@
    isBindPhoneNumber?: boolean;
  }
  interface OpenEnterpriseWalletCommand {
    access?: EnumEnterpriseWalletAccess;
  }
  interface OpenEnterpriseWalletCommandResult {
    /** 签约地址 */
    signUrl?: string;
  }
  interface PagedListQueryPageModel {
    /** 行数 */
    rows?: number;
packages/utils/file.ts
@@ -86,3 +86,15 @@
    return fileName;
  });
}
export function openDocument(url: string) {
  Taro.downloadFile({
    url: url,
    success: function (res) {
      var filePath = res.tempFilePath;
      Taro.openDocument({
        filePath: filePath,
      });
    },
  });
}