apps/bMiniApp/.eslintrc-auto-import.json
@@ -124,6 +124,7 @@ "useAccessAuthentication": true, "DirectiveBinding": true, "MaybeRef": true, "MaybeRefOrGetter": true "MaybeRefOrGetter": true, "TabBarPageRouterList": true } } apps/bMiniApp/CHANGELOG.md
@@ -1,5 +1,37 @@ ## [1.1.5](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/bMiniApp/v1.1.4...@12333/bMiniApp/v1.1.5) (2025-10-19) ### Bug Fixes * 简历 ([a6d873f](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a6d873f75b70ab5e1dc4a1e5fa610eddc7c9274e)) * 验收管理 ([6d85681](http://120.26.58.240:8888/r/flexJobMiniApp/commits/6d85681b282960f5b646d9ed53a4585b36063c69)) * 验收管理 ([50030f8](http://120.26.58.240:8888/r/flexJobMiniApp/commits/50030f826efe2e1dbf3b3fbcb50cff6ff94c1559)) * 验收管理 ([40ef0e2](http://120.26.58.240:8888/r/flexJobMiniApp/commits/40ef0e230f91d5ff0cb196fad95d1f9c2bdcec10)) * 验收管理 ([d33b55e](http://120.26.58.240:8888/r/flexJobMiniApp/commits/d33b55e5f1a22f77cb51c3da1a03a4fefccce71d)) * 验收管理 ([92b51e4](http://120.26.58.240:8888/r/flexJobMiniApp/commits/92b51e47eb0e53e1e8e13aa0f9135603e1bb03a0)) * bug ([82e6132](http://120.26.58.240:8888/r/flexJobMiniApp/commits/82e613291dbaca4bc0e9964b0111037a94a68918)) * bug ([73a4d14](http://120.26.58.240:8888/r/flexJobMiniApp/commits/73a4d1404ac13115388a9e712780e21b9b6e53b9)) * bug ([a5c9763](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a5c976314d151c00dd66a3772aa3b793b81d31e8)) * bug ([5a681c9](http://120.26.58.240:8888/r/flexJobMiniApp/commits/5a681c9bd93a5a1ad1949fe07b47fc583b12ed61)) * bug ([f32357c](http://120.26.58.240:8888/r/flexJobMiniApp/commits/f32357c9f9a2c1e62ff8512d6cce65f4e65e7754)) * bug ([a69bf92](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a69bf92c8907eb1fed227afb156ff0e1c5821c24)) * bug ([d2bf817](http://120.26.58.240:8888/r/flexJobMiniApp/commits/d2bf81782096dd51d1c995194bc134ecb11c680b)) ### Features * 1.2.0.1 ([6999f1f](http://120.26.58.240:8888/r/flexJobMiniApp/commits/6999f1f04fc3ce40359c156bf008c70ee19fabf8)) * 1.2.0.1 ([28a1ee0](http://120.26.58.240:8888/r/flexJobMiniApp/commits/28a1ee009fdeb6bbd71e8263be704e2988204e04)) * 1.2.0.1 ([ae51226](http://120.26.58.240:8888/r/flexJobMiniApp/commits/ae51226ce036e0201e94b60ffa92b92e893767ee)) * 1.2.0.1 ([4642e3d](http://120.26.58.240:8888/r/flexJobMiniApp/commits/4642e3d3f2ea62676d277fed9b6e25b202699e56)) * 1.2.0.1 ([41d26c8](http://120.26.58.240:8888/r/flexJobMiniApp/commits/41d26c8ef752828901f2b683d42d15c18542f3b7)) * 1.2.0.1 ([e2cbcd6](http://120.26.58.240:8888/r/flexJobMiniApp/commits/e2cbcd64dd60014d82bd898ae51fd827e01e9c18)) * 1.2.0.1 ([ff185cf](http://120.26.58.240:8888/r/flexJobMiniApp/commits/ff185cfb6950ad2d7472f83c2bbf3c0364cde1f7)) * 1.2.0.1 ([ab9a81a](http://120.26.58.240:8888/r/flexJobMiniApp/commits/ab9a81adf064bc1905dbcec39e97371c3e1d5c5d)) * 去除验证码登录 ([a8c9fa1](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a8c9fa1d7dcb4beb01b1810372a0a7e02e9a0806)) ## [1.1.4](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/bMiniApp/v1.1.2...@12333/bMiniApp/v1.1.4) (2025-10-15) apps/bMiniApp/auto-imports.d.ts
@@ -32,6 +32,7 @@ const OssAssets: typeof import('./src/constants/img')['OssAssets'] const RouterPath: typeof import('./src/constants/router')['RouterPath'] const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter'] const TabBarPageRouterList: typeof import('./src/constants/tabBar')['TabBarPageRouterList'] const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] const computed: typeof import('vue')['computed'] const createApp: typeof import('vue')['createApp'] @@ -139,6 +140,7 @@ readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']> readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']> readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']> readonly TabBarPageRouterList: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouterList']> readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']> readonly computed: UnwrapRef<typeof import('vue')['computed']> readonly createApp: UnwrapRef<typeof import('vue')['createApp']> apps/bMiniApp/package.json
@@ -1,6 +1,6 @@ { "name": "@12333/bMiniApp", "version": "1.1.4", "version": "1.1.5", "private": true, "description": "", "templateInfo": { apps/bMiniApp/project.config.json
@@ -3,8 +3,8 @@ "description": "", "setting": { "urlCheck": false, "es6": true, "enhance": true, "es6": false, "enhance": false, "postcss": false, "preloadBackgroundData": false, "minified": false, @@ -37,7 +37,11 @@ "showES6CompileOption": false, "useCompilerPlugins": false, "ignoreUploadUnusedFiles": true, "condition": false "condition": false, "compileWorklet": false, "localPlugins": false, "swc": false, "disableSWC": true }, "compileType": "miniprogram", "editorSetting": { @@ -46,11 +50,12 @@ }, "srcMiniprogramRoot": "dist/", "condition": {}, "libVersion": "3.1.0", "libVersion": "3.9.3", "packOptions": { "ignore": [], "include": [] }, "appid": "wx3669dd12a0915f7d", "projectname": "bMiniApp" "projectname": "bMiniApp", "simulatorPluginLibVersion": {} } apps/bMiniApp/project.private.config.json
@@ -3,64 +3,29 @@ "projectname": "bMiniApp", "setting": { "compileHotReLoad": true, "bigPackageSizeSupport": true "bigPackageSizeSupport": true, "urlCheck": false, "coverView": true, "lazyloadPlaceholderEnable": false, "preloadBackgroundData": false, "autoAudits": false, "useApiHook": true, "useApiHostProcess": true, "showShadowRootInWxmlPanel": true, "useStaticServer": false, "useLanDebug": false, "showES6CompileOption": false, "checkInvalidKey": true, "ignoreDevUnusedFiles": true, "useIsolateContext": true }, "condition": { "miniprogram": { "list": [ { "name": "灵工详情", "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail", "query": "userId=700a3a67-5da5-49d2-a65a-08ddd661238b", "launchMode": "default", "scene": null }, { "name": "灵工管理", "pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage", "name": "发布任务", "pathName": "subpackages/task/publishTask/publishTask", "query": "", "launchMode": "default", "scene": null }, { "name": "应聘管理详情", "pathName": "subpackages/jobApplicationManage/jobApplicationDetail/jobApplicationDetail", "query": "taskId=04c75425-e783-4dbf-0f16-08ddd626b756", "launchMode": "default", "scene": null }, { "name": "设置", "pathName": "subpackages/mine/setting/setting", "query": "", "launchMode": "default", "scene": null }, { "name": "安排任务", "pathName": "subpackages/task/batchTaskList/batchTaskList", "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2", "launchMode": "default", "scene": null }, { "name": "任务管理", "pathName": "subpackages/task/taskManage/taskManage", "query": "", "launchMode": "default", "scene": null }, { "name": "验收人员详情", "pathName": "subpackages/task/taskHandleCheckDetail/taskHandleCheckDetail", "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2", "launchMode": "default", "scene": null }, { "name": "验收详情", "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail", "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2", "launchMode": "default", "scene": null }, @@ -72,30 +37,9 @@ "scene": null }, { "name": "我的收藏", "pathName": "subpackages/mine/mineFavorites/mineFavorites", "query": "", "launchMode": "default", "scene": null }, { "name": "工作台", "pathName": "pages/workbenches/workbenches", "query": "", "launchMode": "default", "scene": null }, { "name": "发布招聘", "pathName": "subpackages/task/publishTask/publishTask", "query": "", "launchMode": "default", "scene": null }, { "name": "应聘管理", "pathName": "subpackages/jobApplicationManage/jobApplicationManage/jobApplicationManage", "query": "", "name": "验收详情", "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail", "query": "id=927b9898-1e9f-4aec-99aa-08ddf4e125c9&date=2025-10-19&checkReceiveStatus=10", "launchMode": "default", "scene": null } apps/bMiniApp/src/app.config.ts
@@ -94,6 +94,7 @@ 'taskHandleCheckDetail/taskHandleCheckDetail', 'taskManage/taskManage', 'batchTaskList/batchTaskList', 'taskUserSubmitCheckHistories/taskUserSubmitCheckHistories', ], }, { @@ -120,6 +121,10 @@ ], }, { root: 'subpackages/payrollManage', pages: ['payrollManage/payrollManage', 'payrollManageDetail/payrollManageDetail'], }, { root: 'subpackages/extraPage', pages: ['extraPage/extraPage'], }, apps/bMiniApp/src/assets/workbenches/icon-payroll.png
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -48,6 +48,7 @@ :photos="photos" :height="height" :weight="weight" :videos="videos" /> </ProTabPane> <ProTabPane :title="`经历`" pane-key="2"> @@ -93,6 +94,7 @@ workSeniority?: string; workExperience?: string; photos?: string[]; videos?: string[]; /** 身高 */ height?: number; /** 体重 */ apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
@@ -67,6 +67,22 @@ </nut-grid-item> </nut-grid> </CurriculumViewItem> <CurriculumViewItem label="个人视频:"> <nut-grid square :column-num="2" :border="false" :gutter="20" v-if="_photos.length > 0" class="pro-img-grid" > <nut-grid-item v-for="(item, index) in _videos" :key="item" class="pro-img-grid-item"> <div class="pro-img-grid-img-item"> <video class="pro-img-grid-img" :src="item" /> </div> </nut-grid-item> </nut-grid> </CurriculumViewItem> </CellChunk> </Cell> </ContentScrollView> @@ -78,6 +94,7 @@ import Taro from '@tarojs/taro'; import { EnumPersonalFreeTimeText, EnumPersonalJobSeekingStatusText } from '@12333/constants'; import { setOSSLink } from '@12333/utils'; import { Video } from '@tarojs/components'; defineOptions({ name: 'curriculumView', @@ -91,6 +108,7 @@ workSeniority?: string; workExperience?: string; photos?: string[]; videos?: string[]; /** 身高 */ height?: number; /** 体重 */ @@ -101,10 +119,12 @@ userExpectJobs: () => [], userCredentials: () => [], photos: () => [], videos: () => [], }); const _userCredentials = computed(() => props.userCredentials.map((x) => setOSSLink(x.img))); const _photos = computed(() => props.photos.map((x) => setOSSLink(x))); const _videos = computed(() => props.videos.map((x) => setOSSLink(x))); const labelWidth = Taro.pxTransform(120); </script> apps/bMiniApp/src/components/Layout/PageLayout.vue
@@ -44,7 +44,7 @@ import { commonNavigationBarProps } from '../NavigationBar/commonNavigationBar'; import { useSystemStore } from '@/stores/modules/system'; import Taro from '@tarojs/taro'; import { TabBarPageRouter } from '@/constants'; import { TabBarPageRouterList } from '@/constants'; import { useAuth } from '@/hooks'; import { Portal } from 'senin-mini/components'; import { usePickProps } from 'senin-mini/hooks'; @@ -89,7 +89,7 @@ const router = Taro.useRouter(); const pageHeightWithTabBar = computed(() => Object.values(TabBarPageRouter).some((x) => x.toLowerCase() === router.path.toLowerCase()) TabBarPageRouterList.some((x) => x.toLowerCase() === router.path.toLowerCase()) ); const navigationBarHeight = computed( apps/bMiniApp/src/constants/router.ts
@@ -24,6 +24,9 @@ // cooperation = '/subpackages/setting/cooperation/cooperation', // faq = '/subpackages/setting/faq/faq', payrollManage = '/subpackages/payrollManage/payrollManage/payrollManage', payrollManageDetail = '/subpackages/payrollManage/payrollManageDetail/payrollManageDetail', authenticationHome = '/subpackages/authentication/authenticationHome/authenticationHome', authenticationResult = '/subpackages/authentication/authenticationResult/authenticationResult', authenticationFaRen = '/subpackages/authentication/authenticationFaRen/authenticationFaRen', @@ -47,6 +50,7 @@ taskHandleCheckDetail = '/subpackages/task/taskHandleCheckDetail/taskHandleCheckDetail', taskManage = '/subpackages/task/taskManage/taskManage', batchTaskList = '/subpackages/task/batchTaskList/batchTaskList', taskUserSubmitCheckHistories = '/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories', jobApplicationManage = '/subpackages/jobApplicationManage/jobApplicationManage/jobApplicationManage', jobApplicationDetail = '/subpackages/jobApplicationManage/jobApplicationDetail/jobApplicationDetail', apps/bMiniApp/src/constants/tabBar.ts
@@ -3,3 +3,9 @@ Workbenches: '/pages/workbenches/workbenches', Mine: '/pages/mine/index', }; export const TabBarPageRouterList = [ TabBarPageRouter.Home, TabBarPageRouter.Workbenches, TabBarPageRouter.Mine, ]; apps/bMiniApp/src/hooks/router.ts
@@ -1,15 +1,21 @@ import Taro from '@tarojs/taro'; import { TabBarPageRouter } from '@/constants'; import { TabBarPageRouter, TabBarPageRouterList } from '@/constants'; import { useSystemStore } from '@/stores/modules/system'; import { httpLoggerRecord } from '@12333/utils'; export function useSwitchTab() { const systemStore = useSystemStore(); const switchTab = (option: Taro.switchTab.Option) => { const index = Object.values(TabBarPageRouter).findIndex((x) => option.url.includes(x)); const index = TabBarPageRouterList.findIndex((x) => option.url.includes(x)); console.log('index: ', index); systemStore.setTabIndex(index); Taro.switchTab(option); Taro.switchTab(option).then(() => { systemStore.setTabIndex(index); }); httpLoggerRecord.info({ message: `[switchTab]`, args: [option, { index, TabBarPageRouter }], }); }; return switchTab; } apps/bMiniApp/src/pages/workbenches/InnerPage.vue
@@ -24,13 +24,22 @@ /> <TaskDetailWelfareItem :icon="IconTaskManage" text="任务管理" text="任务安排" @click="goPage(RouterPath.taskManage)" /> <TaskDetailWelfareItem :icon="IconAcceptManage" text="验收管理" @click="goPage(RouterPath.taskCheck)" /> </div> </CellChunk> <CellChunk title="发薪"> <div class="workbenches-cell-list"> <TaskDetailWelfareItem :icon="IconPayrollManage" text="发薪管理" @click="goPage(RouterPath.payrollManage)" /> </div> </CellChunk> @@ -47,6 +56,7 @@ import IconPersonManage from '@/assets/workbenches/icon-person-manage.png'; import IconPublishTask from '@/assets/workbenches/icon-publish-task.png'; import IconTaskManage from '@/assets/workbenches/icon-task-manage.png'; import IconPayrollManage from '@/assets/workbenches/icon-payroll.png'; import { useAccessLogin } from '@/hooks'; defineOptions({ apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -22,6 +22,7 @@ :photos="userResumeInfo.photos" :height="userResumeInfo.height" :weight="userResumeInfo.weight" :videos="userResumeInfo.videos" :taskInfoUsers="userResumeInfo.taskInfoUsers" > <template #footer> apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
@@ -20,6 +20,7 @@ :photos="userResumeInfo.photos" :height="userResumeInfo.height" :weight="userResumeInfo.weight" :videos="userResumeInfo.videos" :taskInfoUsers="userResumeInfo.taskInfoUsers" :isCollapse="true" > apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
@@ -20,6 +20,7 @@ :photos="userResumeInfo.photos" :height="userResumeInfo.height" :weight="userResumeInfo.weight" :videos="userResumeInfo.videos" :taskInfoUsers="userResumeInfo.taskInfoUsers" :isCollapse="true" > apps/bMiniApp/src/subpackages/payrollManage/components/PayrollManageDetailCard.vue
New file @@ -0,0 +1,78 @@ <template> <div class="payroll-manage-detail-card-wrapper"> <FlexJobTopView :avatar="avatar" :name="name" :gender="gender" :isReal="isReal"> <template #detail> <div class="payroll-manage-detail-card-container"> <div class="payroll-manage-detail-card-item"> <div class="payroll-manage-detail-card-item-label">工时:</div> <div class="payroll-manage-detail-card-item-text">{{ totalWorkHours }}</div> </div> <div class="payroll-manage-detail-card-item"> <div class="payroll-manage-detail-card-item-label">结算金额:</div> <div class="payroll-manage-detail-card-item-text"> {{ `¥${toThousand(settlementAmount)}` }} </div> </div> <slot name="actions"></slot> </div> </template> </FlexJobTopView> </div> </template> <script setup lang="ts"> import { FlexJobTopView } from '@12333/components'; import { EnumUserGender } from '@12333/constants'; import { toThousand } from '@12333/utils'; defineOptions({ name: 'PayrollManageDetailCard', }); type Props = { avatar?: string; name?: string; gender?: EnumUserGender; isReal?: boolean; totalWorkHours: number; settlementAmount?: number; }; const props = withDefaults(defineProps<Props>(), {}); </script> <style lang="scss"> @import '@/styles/common.scss'; .payroll-manage-detail-card-wrapper { background: #ffffff; border-radius: 12px; padding: 40px; padding-right: 26px; margin-bottom: 24px; .payroll-manage-detail-card-container { display: flex; flex-direction: column; margin-top: 14px; .payroll-manage-detail-card-item { display: flex; align-items: center; font-weight: 400; font-size: 24px; line-height: 32px; flex: 1; min-width: 0; .payroll-manage-detail-card-item-label { color: boleGetCssVar('text-color', 'regular'); } .payroll-manage-detail-card-item-text { color: boleGetCssVar('text-color', 'secondary'); } } } } </style> apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
New file @@ -0,0 +1,147 @@ <template> <ProTabs v-model="queryState.paymentStatus" name="task-tab" :showPaneContent="false" class="task-tabs" isTransparent title-gutter="8" title-scroll > <ProTabPane :title="`待审核(${waitAuditCount})`" :pane-key="GetSettlementTasksQueryPaymentStatus.WaitAudit" ></ProTabPane> <ProTabPane :title="`已审核(${completedAuditCount})`" :pane-key="GetSettlementTasksQueryPaymentStatus.CompletedAudit" ></ProTabPane> <ProTabPane :title="`已发放(${completedReleaseCount})`" :pane-key="GetSettlementTasksQueryPaymentStatus.CompletedRelease" ></ProTabPane> </ProTabs> <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps" :key="queryState.paymentStatus" > <template #renderItem="{ item }"> <IncomeDetailListItem :title="item.code" :funds="item.settlementAmount" :item="item.settlementTime ? dayjs(item.settlementTime).format('YYYY-MM-DD HH:mm:ss') : ''" @click="openPassword(item)" > </IncomeDetailListItem> </template> </InfiniteLoading> <nut-short-password v-model="form.password" v-model:visible="form.passwordVisible" @focus="form.showKeyboard = true" tips="请输入6位操作密码" desc="明细需输入操作密码才能查看" :length="6" @complete="complete" > </nut-short-password> <nut-number-keyboard v-model="form.password" v-model:visible="form.showKeyboard" @blur="form.showKeyboard = false" > </nut-number-keyboard> </template> <script setup lang="ts"> import { ProTabs, ProTabPane, IncomeDetailListItem } from '@12333/components'; import Taro from '@tarojs/taro'; import dayjs from 'dayjs'; import { GetSettlementTasksQueryPaymentStatus, EnumPagedListOrder } from '@12333/constants'; import * as taskServices from '@12333/services/apiV2/task'; import * as userServices from '@12333/services/apiV2/user'; import { useInfiniteLoading } from '@12333/hooks'; defineOptions({ name: 'InnerPage', }); const form = reactive({ password: '', passwordVisible: false, showKeyboard: false, id: '', }); const queryState = reactive({ paymentStatus: GetSettlementTasksQueryPaymentStatus.WaitAudit, }); const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( ({ pageParam }) => { let params: API.GetSettlementTasksQuery = { pageModel: { rows: 20, page: pageParam, orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, paymentStatus: queryState.paymentStatus, }; return taskServices.getSettlementTasks(params, { showLoading: false, }); }, { queryKey: ['taskServices/getSettlementTasks', queryState], } ); const completedAuditCount = computed(() => { return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedAuditCount ?? 0; }); const waitAuditCount = computed(() => { return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAuditCount ?? 0; }); const completedReleaseCount = computed(() => { return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedReleaseCount ?? 0; }); function openPassword(item: API.GetSettlementTasksQueryResultItem) { form.passwordVisible = true; form.showKeyboard = true; form.id = item.id; } function complete(value: string) { form.passwordVisible = false; buildOperatorToken(value); } async function buildOperatorToken(value: string) { try { let params: API.BuildOperatorTokenCommand = { password: value, }; let res = await userServices.buildOperatorToken(params); if (res) { goPayrollManageDetail(form.id, res.operatorToken); } } catch (error) { form.showKeyboard = false; } finally { form.password = ''; form.showKeyboard = false; } } async function goPayrollManageDetail(id: string, operatorToken: string) { Taro.navigateTo({ url: `${RouterPath.payrollManageDetail}?id=${id}&operatorToken=${operatorToken}`, }); } </script> <style lang="scss"> @import '@/styles/common.scss'; </style> apps/bMiniApp/src/subpackages/payrollManage/payrollManage/payrollManage.config.ts
New file @@ -0,0 +1,3 @@ export default definePageConfig({ disableScroll: true, }); apps/bMiniApp/src/subpackages/payrollManage/payrollManage/payrollManage.vue
New file @@ -0,0 +1,13 @@ <template> <PageLayoutWithBg class="payrollManage-page-wrapper" title="发薪管理"> <InnerPage /> </PageLayoutWithBg> </template> <script setup lang="ts"> import InnerPage from './InnerPage.vue'; defineOptions({ name: 'payrollManage', }); </script> apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
New file @@ -0,0 +1,222 @@ <template> <LoadingLayout> <ContentView> <div class="payroll-manage-detail-top"> <div class="payroll-manage-detail-top-title">任务信息</div> <div class="payroll-manage-detail-top-content"> <div class="payroll-manage-detail-top-content-item"> <div class="payroll-manage-detail-top-content-item-label">任务名称:</div> <div class="payroll-manage-detail-top-content-item-text">{{ form.name }}</div> </div> <div class="payroll-manage-detail-top-content-item"> <div class="payroll-manage-detail-top-content-item-label">服务费金额:</div> <div class="payroll-manage-detail-top-content-item-text"> {{ `${form.serviceFee ?? 0}${EnumBillingMethodText[form.billingMethod]}` }} </div> </div> <div class="payroll-manage-detail-top-content-item"> <div class="payroll-manage-detail-top-content-item-label">结算人数:</div> <div class="payroll-manage-detail-top-content-item-text"> {{ `${form.settlementCount ?? 0}人` }} </div> </div> <div class="payroll-manage-detail-top-content-item"> <div class="payroll-manage-detail-top-content-item-label">结算金额:</div> <div class="payroll-manage-detail-top-content-item-text"> {{ `${toThousand(form.settlementAmount ?? 0)}元` }} </div> </div> <div class="payroll-manage-detail-top-content-item" v-if="form.auditStatus !== EnumTaskSettlementAuditStatus.Wait" > <div class="payroll-manage-detail-top-content-item-label">审核时间:</div> <div class="payroll-manage-detail-top-content-item-text"> {{ dayjs(form.auditTime).format('YYYY-MM-DD') }} </div> </div> <div class="payroll-manage-detail-top-content-item" v-if="form.settlementStatus === EnumTaskSettlementStatus.Completed" > <div class="payroll-manage-detail-top-content-item-label">结算时间:</div> <div class="payroll-manage-detail-top-content-item-text"> {{ dayjs(form.settlementTime).format('YYYY-MM-DD') }} </div> </div> </div> </div> <ChunkTitle title="人员列表" /> </ContentView> <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps" > <template #renderItem="{ item }"> <PayrollManageDetailCard :avatar="setOSSLink(item.avatar)" :name="item.name" :gender="item.gender" :isReal="item.isReal" :totalWorkHours="item.totalWorkHours" :settlementAmount="item.settlementAmount" /> </template> </InfiniteLoading> <PageFooter v-if="form.auditStatus === EnumTaskSettlementAuditStatus.Wait"> <PageFooterBtn type="primary" @click="auditTaskSettlement(EnumTaskSettlementAuditStatus.Pass)" >审核通过</PageFooterBtn > <PageFooterBtn type="primary" plain @click="auditTaskSettlement(EnumTaskSettlementAuditStatus.Fail)" >驳回</PageFooterBtn > </PageFooter> </LoadingLayout> </template> <script setup lang="ts"> import Taro from '@tarojs/taro'; import * as taskUserServices from '@12333/services/apiV2/taskUser'; import * as taskServices from '@12333/services/apiV2/task'; import { useInfiniteLoading } from '@12333/hooks'; import { EnumBillingMethodText, EnumTaskSettlementAuditStatus, EnumTaskSettlementStatus, } from '@12333/constants'; import PayrollManageDetailCard from '../components/PayrollManageDetailCard.vue'; import { Message, paginateList, setOSSLink, toThousand } from '@12333/utils'; import { useQuery } from '@tanstack/vue-query'; import dayjs from 'dayjs'; import { goBack } from '@/utils'; defineOptions({ name: 'InnerPage', }); const router = Taro.useRouter(); const id = router.params?.id ?? ''; const operatorToken = router.params?.operatorToken ?? ''; const form = reactive({ name: '', serviceFee: 0, settlementCount: 0, settlementAmount: 0, settlementTime: '', auditTime: '', auditStatus: 0, billingMethod: 0, settlementStatus: 0, }); const { isLoading, isError, data: detail, refetch, } = useQuery({ queryKey: ['taskUserServices/getSettlementTaskUsers', id, operatorToken], queryFn: async () => { let res = await taskUserServices.getSettlementTaskUsers( { id: id, operatorToken: operatorToken }, { showLoading: false, } ); if (res) { form.name = res.detail?.name; form.serviceFee = res.detail?.serviceFee; form.settlementCount = res.data?.length; form.settlementAmount = res.detail?.settlementAmount; form.settlementTime = res.detail?.settlementTime; form.auditTime = res.detail?.auditTime; form.auditStatus = res.detail?.auditStatus; form.settlementStatus = res.detail?.settlementStatus; form.billingMethod = res.detail?.billingMethod; } return res; }, placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult), }); const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( ({ pageParam }) => { let params: API.GetCheckReceiveTaskQuery = { pageModel: { rows: 20, page: pageParam, }, }; return Promise.resolve({ pageModel: { rows: 20, page: pageParam, totalCount: detail.value?.data.length, }, data: paginateList(detail.value?.data, pageParam, 20), }); }, { enabled: computed(() => !!detail.value?.data), } ); async function auditTaskSettlement(auditStatus: EnumTaskSettlementAuditStatus) { try { let params: API.AuditTaskSettlementCommand = { id: id, operatorToken: operatorToken, auditStatus: auditStatus, }; let res = await taskServices.auditTaskSettlement(params); if (res) { Message.success('操作成功', { onClosed() { goBack(); }, }); } } catch (error) {} } </script> <style lang="scss"> @import '@/styles/common.scss'; .payrollManageDetail-page-wrapper { .payroll-manage-detail-top { padding: 24px 32px; margin-bottom: 24px; background-color: #fff; border-radius: 12px; .payroll-manage-detail-top-title { font-size: 32px; font-weight: bold; margin-bottom: 14px; } .payroll-manage-detail-top-content { .payroll-manage-detail-top-content-item { font-size: 24px; line-height: 40px; .payroll-manage-detail-top-content-item-label { display: inline-flex; color: boleGetCssVar('text-color', 'primary'); } .payroll-manage-detail-top-content-item-text { display: inline-flex; color: boleGetCssVar('text-color', 'regular'); } } } } } </style> apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/payrollManageDetail.config.ts
New file @@ -0,0 +1,3 @@ export default definePageConfig({ disableScroll: true, }); apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/payrollManageDetail.vue
New file @@ -0,0 +1,13 @@ <template> <PageLayoutWithBg class="payrollManageDetail-page-wrapper" title="发薪详情"> <InnerPage /> </PageLayoutWithBg> </template> <script setup lang="ts"> import InnerPage from './InnerPage.vue'; defineOptions({ name: 'payrollManageDetail', }); </script> apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
@@ -9,15 +9,36 @@ :contactPhoneNumber="contactPhoneNumber" > <template #actions> <nut-button v-if="checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive" type="primary" class="task-check-card-phone-btn" >验收</nut-button > <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} </div> <template v-if="checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn"> <nut-button v-if="!checkInTime" type="primary" class="task-check-card-phone-btn" @click.stop="emit('checkInOrOut', CheckInOrOutEventEnum.CheckIn)" >签到</nut-button > <nut-button v-else-if="!checkOutTime" type="primary" class="task-check-card-phone-btn" @click.stop="emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut)" >签出</nut-button > <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} </div> </template> <template v-else> <nut-button v-if="checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive" type="primary" class="task-check-card-phone-btn" >验收</nut-button > <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} </div> </template> </template> </TaskCheckPersonalView> </div> @@ -30,7 +51,9 @@ EnumUserGender, EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveStatusText, EnumTaskCheckReceiveMethod, } from '@12333/constants'; import { CheckInOrOutEventEnum } from '../constants'; defineOptions({ name: 'TaskCheckCard', @@ -43,12 +66,18 @@ isReal?: boolean; contactPhoneNumber?: string; checkReceiveStatus?: EnumTaskCheckReceiveStatus; /** 签到时间 */ checkInTime?: string; /** 签出时间 */ checkOutTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; }; const props = withDefaults(defineProps<Props>(), {}); const emit = defineEmits<{ (e: 'checkReceive'): void; (e: 'checkInOrOut', ev: CheckInOrOutEventEnum): void; }>(); </script> apps/bMiniApp/src/subpackages/task/components/TaskCheckHistoryCard.vue
New file @@ -0,0 +1,80 @@ <template> <div class="task-check-card-wrapper"> <TaskCheckPersonalView class="task-check-card-view" :avatar="avatar" :name="name" :gender="gender" :isReal="isReal" :contactPhoneNumber="contactPhoneNumber" > <template #time v-if="!!checkTime"> {{ dayjs(checkTime).format('HH:mm') }} </template> <template #actions> <div class="task-check-card-phone-status" :style="{ color: EnumTaskUserSubmitCheckHistoryTypeColor[type] }" > {{ EnumTaskUserSubmitCheckHistoryTypeText[type] }} </div> </template> </TaskCheckPersonalView> </div> </template> <script setup lang="ts"> import dayjs from 'dayjs'; import TaskCheckPersonalView from './TaskCheckPersonalView.vue'; import { Colors, EnumUserGender, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckHistoryTypeText, EnumTaskUserSubmitCheckHistoryTypeColor, } from '@12333/constants'; defineOptions({ name: 'TaskCheckHistoryCard', }); type Props = { avatar?: string; name?: string; gender?: EnumUserGender; isReal?: boolean; contactPhoneNumber?: string; type?: EnumTaskUserSubmitCheckHistoryType; checkTime?: string; }; const props = withDefaults(defineProps<Props>(), {}); </script> <style lang="scss"> @import '@/styles/common.scss'; .task-check-card-wrapper { background: #ffffff; border-radius: 12px; padding: 40px; padding-right: 26px; margin-bottom: 24px; &:last-child { margin-bottom: 0; } .task-check-card-view { .task-check-card-phone-container { margin-top: 0; } } .task-check-card-phone-status { font-size: 24px; height: 52px; line-height: 52px; } } </style> apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue
@@ -1,5 +1,8 @@ <template> <FlexJobTopView :avatar="avatar" :name="name" :gender="gender" :isReal="isReal"> <template #time> <slot name="time"></slot> </template> <template #detail> <div class="task-check-card-phone-container"> <div class="task-check-card-phone-wrapper"> apps/bMiniApp/src/subpackages/task/constants/index.ts
New file @@ -0,0 +1,6 @@ export enum CheckInOrOutEventEnum { /**签到 */ CheckIn = 10, /**签出 */ CheckOut = 20, } apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -32,6 +32,51 @@ <div class="form-input-unit">{{ BillingMethodEnumUnit[form.billingMethod] }}</div> </div> </nut-form-item> <template v-if=" form.billingMethod === EnumBillingMethod.Hour || form.billingMethod === EnumBillingMethod.Day " > <nut-form-item label="核定工时:" class="bole-form-item" prop="verifyWorkHours" label-width="90" > <div class="bole-form-input-wrapper"> <NumberInput v-model.trim="form.verifyWorkHours" class="nut-input-text bole-input-text" placeholder="请输入核定工时" :min="0" :max="999999999999" :precision="2" type="text" /> <div class="form-input-unit">{{ '小时/天' }}</div> </div> </nut-form-item> <nut-form-item label="超时服务费:" class="bole-form-item" prop="timeoutServiceFee" label-width="90" > <div class="bole-form-input-wrapper"> <NumberInput v-model.trim="form.timeoutServiceFee" class="nut-input-text bole-input-text" placeholder="请输入超时服务费" :min="0" :max="999999999999" :precision="2" type="text" /> <div class="form-input-unit">{{ '元/小时' }}</div> </div> </nut-form-item> </template> <nut-form-item label="结算方式:" class="bole-form-item" @@ -134,13 +179,15 @@ /> </nut-form-item> <nut-form-item label="详细地址:" label="地点说明:" class="bole-form-item" prop="addressDetail" label-width="90px" required > <nut-input v-model="form.addressDetail" placeholder="请输入详细地址"> </nut-input> <nut-input v-model="form.addressDetail" placeholder="请输入地点说明"> </nut-input> </nut-form-item> <nut-form-item label="任务说明:" class="bole-form-item" prop="description" label-width="90px"> <nut-textarea v-model="form.description" placeholder="请输入任务说明"> </nut-textarea> </nut-form-item> <nut-form-item label="任务开始日期:" @@ -152,6 +199,7 @@ v-model="form.beginTime" :minDate="nowDate" placeholder="请选择任务开始日期" @change="timeChange" ></ChooseInputWithDatePicker> </nut-form-item> <nut-form-item label="任务结束日期:" class="bole-form-item" prop="endTime" label-width="90px"> @@ -160,6 +208,59 @@ :minDate="nowDate" placeholder="请选择任务结束日期" ></ChooseInputWithDatePicker> </nut-form-item> <nut-form-item label="报名开始日期:" class="bole-form-item" prop="applyBeginTime" label-width="90px" > <ChooseInputWithDatePicker v-model="form.applyBeginTime" :minDate="form.beginTime ? dayjs(form.beginTime).toDate() : nowDate" placeholder="请选择报名开始日期" ></ChooseInputWithDatePicker> </nut-form-item> <nut-form-item label="报名结束日期:" class="bole-form-item" prop="applyEndTime" label-width="90px" > <ChooseInputWithDatePicker v-model="form.applyEndTime" :minDate="form.beginTime ? dayjs(form.beginTime).toDate() : nowDate" placeholder="请选择报名结束日期" ></ChooseInputWithDatePicker> </nut-form-item> <nut-form-item label="验收方式:" class="bole-form-item" prop="checkReceiveMethod" label-width="90px" > <nut-radio-group v-model="form.checkReceiveMethod" direction="horizontal"> <BlRadio :label="Number(key)" v-for="(val, key) in EnumTaskCheckReceiveMethodText" :key="key" >{{ val }}</BlRadio > </nut-radio-group> </nut-form-item> <nut-form-item label="结算方式:" class="bole-form-item" prop="settlementAccess" label-width="90px" required > <ChooseInputWithPicker v-model="form.settlementAccess" placeholder="请选择结算方式" :value-enum="settlementAccessList" :disabled="isEdit" /> </nut-form-item> </nut-form> </ContentScrollView> @@ -183,6 +284,10 @@ EnumUserGenderTextOptions, EnumSettlementCycleDateWeekArray, EnumSettlementCycleDateMonthArray, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveMethodText, EnumEnterpriseWalletAccess, EnumEnterpriseWalletAccessText, } from '@12333/constants'; import { ChooseInputWithPicker, @@ -194,12 +299,15 @@ ChooseInputWithCheckbox, } from '@12333/components'; import { FormValidator, Message } from '@12333/utils'; import * as flexWorkerServices from '@12333/services/api/FlexWorker'; import * as taskServices from '@12333/services/apiV2/task'; import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; import Taro from '@tarojs/taro'; import { goBack } from '@/utils'; import { useAllAreaList, useDictionaryDataSelect } from '@12333/hooks'; import { useAllAreaList, useDictionaryDataSelect, useEnterpriseWalletAccessSelect, } from '@12333/hooks'; import { useQuery } from '@tanstack/vue-query'; import dayjs from 'dayjs'; @@ -209,12 +317,20 @@ const { userDetail } = useUser(); const { findAreaNameFromCode } = useAllAreaList(); const { settlementAccessList } = useEnterpriseWalletAccessSelect(); const router = Taro.useRouter(); const taskId = router.params?.id ?? ''; const isEdit = !!taskId; const isCopy = router.params?.isCopy === 'true'; const nowDate = dayjs().toDate(); const applyBeginTimeMinDate = computed(() => { return form.applyBeginTime ? dayjs(form.applyBeginTime).toDate() : form.beginTime ? dayjs(form.beginTime).toDate() : nowDate; }); const { dictionaryDataList: WelfareTypeList } = useDictionaryDataSelect({ categoryCode: CategoryCode.Welfare, @@ -249,13 +365,22 @@ weMapInfo: {} as WeMapModel, addressDetail: '', verifyWorkHours: null as number, timeoutServiceFee: null as number, description: '', checkReceiveMethod: EnumTaskCheckReceiveMethod.CheckIn, applyBeginTime: '', applyEndTime: '', settlementAccess: '' as any as EnumEnterpriseWalletAccess, }); const rules = reactive<FormRules>({ name: [{ required: true, message: '请输入任务名称' }], genderLimit: [{ required: true, message: '请选择性别要求' }], settlementCycleDate: [{ required: true, message: '请设置结算日期' }], addressDetail: [{ required: true, message: '请输入详细地址' }], settlementAccess: [{ required: true, message: '请选择结算方式' }], // addressDetail: [{ required: true, message: '请输入详细地址' }], billingMethod: [ { required: true, @@ -312,6 +437,34 @@ }, }, ], applyBeginTime: [ { required: true, message: '请选择报名开始日期', validator(value) { if (!value) return Promise.reject('请选择报名开始日期'); if (dayjs(value).isBefore(dayjs(form.beginTime))) return Promise.reject('报名开始日期需大于任务开始日期'); if (dayjs(value).isAfter(dayjs(form.endTime))) return Promise.reject('报名开始日期需小于任务结束日期'); return Promise.resolve(true); }, }, ], applyEndTime: [ { required: true, message: '请选择报名结束日期', validator(value) { if (!value) return Promise.reject('请选择报名结束日期'); if (dayjs(value).isBefore(dayjs(form.applyBeginTime))) return Promise.reject('报名结束日期需大于报名开始日期'); if (dayjs(value).isAfter(dayjs(form.endTime))) return Promise.reject('报名结束日期需小于任务结束日期'); return Promise.resolve(true); }, }, ], }); const { @@ -354,6 +507,13 @@ longitude: data.longitude, addressName: data.addressName, }; form.description = data.description; form.verifyWorkHours = data.verifyWorkHours; form.timeoutServiceFee = data.timeoutServiceFee; form.checkReceiveMethod = data.checkReceiveMethod; form.applyBeginTime = dayjs(data.applyBeginTime).format('YYYY-MM-DD'); form.applyEndTime = dayjs(data.applyEndTime).format('YYYY-MM-DD'); form.settlementAccess = data.settlementAccess; }, }); @@ -388,6 +548,13 @@ latitude: form.weMapInfo.latitude, beginTime: dayjs(form.beginTime).format('YYYY-MM-DD 00:00:00'), endTime: dayjs(form.endTime).format('YYYY-MM-DD 23:59:59'), description: form.description, verifyWorkHours: form.verifyWorkHours, timeoutServiceFee: form.timeoutServiceFee, checkReceiveMethod: form.checkReceiveMethod, applyBeginTime: dayjs(form.applyBeginTime).format('YYYY-MM-DD 00:00:00'), applyEndTime: dayjs(form.applyEndTime).format('YYYY-MM-DD 23:59:59'), settlementAccess: form.settlementAccess, }; if (isEdit) { params.id = taskId; @@ -406,6 +573,15 @@ } catch (error) {} } function timeChange() { form.applyBeginTime = ''; form.applyEndTime = ''; } function applyTimeChange() { form.applyEndTime = ''; } function settleTypeChange() { form.settlementDate = null as number; } apps/bMiniApp/src/subpackages/task/taskCheck/InnerPage.vue
@@ -36,8 +36,9 @@ <script setup lang="ts"> import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components'; import Taro from '@tarojs/taro'; import { EnumTaskCheckReceiveStatus } from '@12333/constants'; import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants'; import { useCheckReceiveTasks } from '@12333/hooks'; import dayjs from 'dayjs'; defineOptions({ name: 'InnerPage', @@ -46,8 +47,21 @@ const { queryState, infiniteLoadingProps } = useCheckReceiveTasks(); function goSubmitTaskDetail(item: API.GetCheckReceiveTasksQueryResultItem) { Taro.navigateTo({ url: `${RouterPath.taskCheckDetail}?id=${item.id}&date=${queryState.date}&checkReceiveStatus=${queryState.checkReceiveStatus}`, }); if ( item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn && dayjs(queryState.date).isBefore(dayjs(), 'day') ) { Taro.navigateTo({ url: `${RouterPath.taskUserSubmitCheckHistories}?id=${item.id}&date=${dayjs( queryState.date ).format('YYYY-MM-DD')}`, }); } else { Taro.navigateTo({ url: `${RouterPath.taskCheckDetail}?id=${item.id}&date=${dayjs(queryState.date).format( 'YYYY-MM-DD' )}&checkReceiveStatus=${queryState.checkReceiveStatus}`, }); } } </script> apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -19,9 +19,13 @@ :name="item.name" :gender="item.gender" :isReal="item.isReal" :checkInTime="item.checkInTime" :checkOutTime="item.checkOutTime" :contactPhoneNumber="item.contactPhoneNumber" :checkReceiveStatus="item.checkReceiveStatus" :checkReceiveMethod="detail?.checkReceiveMethod" @checkReceive="goTaskDetail(item)" @checkInOrOut="(ev) => checkReceiveTask(ev, item.id)" /> </template> </InfiniteLoading> @@ -34,9 +38,10 @@ import { useInfiniteLoading } from '@12333/hooks'; import TaskCheckCard from '../components/TaskCheckCard.vue'; import { MyTaskCard } from '@12333/components'; import { EnumTaskCheckReceiveStatus } from '@12333/constants'; import { setOSSLink } from '@12333/utils'; import { EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus } from '@12333/constants'; import { Message, setOSSLink } from '@12333/utils'; import dayjs from 'dayjs'; import { CheckInOrOutEventEnum } from '../constants'; defineOptions({ name: 'InnerPage', @@ -47,8 +52,10 @@ const date = router.params?.date ?? ''; const checkReceiveStatus = Number(router.params?.checkReceiveStatus); const detail = ref<API.GetCheckReceiveTasksQueryResultItem>(); const { infiniteLoadingProps } = useInfiniteLoading( ({ pageParam }) => { async ({ pageParam }) => { let params: API.GetCheckReceiveTaskQuery = { pageModel: { rows: 20, @@ -59,9 +66,11 @@ checkReceiveStatus: checkReceiveStatus, }; return taskCheckReceiveServices.getCheckReceiveTask(params, { let res = await taskCheckReceiveServices.getCheckReceiveTask(params, { showLoading: false, }); detail.value = res.objectData; return res; }, { queryKey: ['taskCheckReceiveServices/getCheckReceiveTask'], @@ -69,18 +78,39 @@ ); function goTaskDetail(item: API.GetCheckReceiveTaskQueryResultItem) { if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed) { Taro.navigateTo({ url: `${RouterPath.taskCheckedDetail}?id=${item.id}`, }); if (detail.value.checkReceiveMethod !== EnumTaskCheckReceiveMethod.CheckIn) { if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed) { Taro.navigateTo({ url: `${RouterPath.taskCheckedDetail}?id=${item.id}`, }); } if ( item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive || item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit ) { Taro.navigateTo({ url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}&date=${date}`, }); } } if ( item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive || item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit ) { Taro.navigateTo({ url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}&date=${date}`, }); } } async function checkReceiveTask(ev: CheckInOrOutEventEnum, taskInfoUserId: string) { try { let params: API.CheckReceiveTaskCommand = { taskInfoUserId: taskInfoUserId, date: dayjs(date).format('YYYY-MM-DD'), }; if (ev === CheckInOrOutEventEnum.CheckIn) { params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); } else if (ev === CheckInOrOutEventEnum.CheckOut) { params.checkOutTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); } let res = await taskCheckReceiveServices.checkReceiveTask(params); if (res) { Message.success('提交成功'); infiniteLoadingProps.value?.refetch?.(); } } catch (error) {} } </script> apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
New file @@ -0,0 +1,106 @@ <template> <LoadingLayout> <ContentView> <ChunkTitle :title="title" /> </ContentView> <ProTabs v-model="queryState.type" name="taskUserSubmitCheckHistories-tab" :showPaneContent="false" class="taskUserSubmitCheckHistories-tabs" isTransparent title-gutter="8" title-scroll > <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane> <ProTabPane :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckIn]" :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckIn" ></ProTabPane> <ProTabPane :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckOut]" :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckOut" ></ProTabPane> <ProTabPane :title=" EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckIn] " :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckIn" ></ProTabPane> <ProTabPane :title=" EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckOut] " :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckOut" ></ProTabPane> </ProTabs> <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps" > <template #renderItem="{ item }"> <TaskCheckHistoryCard :avatar="setOSSLink(item.avatar)" :name="item.name" :gender="item.gender" :isReal="item.isReal" :contactPhoneNumber="item.contactPhoneNumber" :type="item.type" :checkTime="item.checkTime" /> </template> </InfiniteLoading> </LoadingLayout> </template> <script setup lang="ts"> import Taro from '@tarojs/taro'; import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive'; import { useInfiniteLoading } from '@12333/hooks'; import TaskCheckHistoryCard from '../components/TaskCheckHistoryCard.vue'; import { ProTabs, ProTabPane } from '@12333/components'; import { EnumTaskUserSubmitCheckHistoryTypeText, EnumTaskUserSubmitCheckHistoryTypeColor, EnumTaskUserSubmitCheckHistoryType, WeekCN, } from '@12333/constants'; import { Message, setOSSLink } from '@12333/utils'; import dayjs from 'dayjs'; defineOptions({ name: 'InnerPage', }); const router = Taro.useRouter(); const id = router.params?.id ?? ''; const date = router.params?.date ?? ''; const title = `${dayjs(date).format('YYYY年MM月DD日')} 星期${WeekCN[dayjs(date).day()]}`; const queryState = reactive({ type: 0 as any as EnumTaskUserSubmitCheckHistoryType, }); const { infiniteLoadingProps } = useInfiniteLoading( async ({ pageParam }) => { let params: API.GetCheckReceiveTaskUserSubmitCheckHistoriesQuery = { pageModel: { rows: 20, page: pageParam, }, taskInfoId: id, date: dayjs(date).format('YYYY-MM-DD'), type: queryState.type, }; let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmitCheckHistories(params, { showLoading: false, }); return res; }, { queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmitCheckHistories', queryState], } ); </script> apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.config.ts
New file @@ -0,0 +1,3 @@ export default definePageConfig({ disableScroll: true, }); apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.vue
New file @@ -0,0 +1,13 @@ <template> <PageLayoutWithBg class="taskUserSubmitCheckHistories-page-wrapper" title="验收详情"> <InnerPage /> </PageLayoutWithBg> </template> <script setup lang="ts"> import InnerPage from './InnerPage.vue'; defineOptions({ name: 'taskUserSubmitCheckHistories', }); </script> apps/bMiniApp/src/utils/page.ts
@@ -1,4 +1,4 @@ import { TabBarPageRouter } from '@/constants'; import { TabBarPageRouterList } from '@/constants'; import Taro from '@tarojs/taro'; import { useSystemStoreWithOut } from '@/stores/modules/system'; @@ -11,7 +11,7 @@ Taro.navigateBack({ delta: delta }); } else { Taro.switchTab({ url: Object.values(TabBarPageRouter)[systemStore.activeTab], url: TabBarPageRouterList[systemStore.activeTab], }); } } apps/cMiniApp/.eslintrc-auto-import.json
@@ -110,6 +110,7 @@ "DirectiveBinding": true, "MaybeRef": true, "MaybeRefOrGetter": true, "NODE_ENV": true "NODE_ENV": true, "TabBarPageRouterList": true } } apps/cMiniApp/CHANGELOG.md
@@ -1,5 +1,37 @@ ## [1.1.5](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/cMiniApp/v1.1.4...@12333/cMiniApp/v1.1.5) (2025-10-19) ### Bug Fixes * 简历 ([a6d873f](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a6d873f75b70ab5e1dc4a1e5fa610eddc7c9274e)) * 验收管理 ([6d85681](http://120.26.58.240:8888/r/flexJobMiniApp/commits/6d85681b282960f5b646d9ed53a4585b36063c69)) * 验收管理 ([50030f8](http://120.26.58.240:8888/r/flexJobMiniApp/commits/50030f826efe2e1dbf3b3fbcb50cff6ff94c1559)) * 验收管理 ([40ef0e2](http://120.26.58.240:8888/r/flexJobMiniApp/commits/40ef0e230f91d5ff0cb196fad95d1f9c2bdcec10)) * 验收管理 ([d33b55e](http://120.26.58.240:8888/r/flexJobMiniApp/commits/d33b55e5f1a22f77cb51c3da1a03a4fefccce71d)) * 验收管理 ([92b51e4](http://120.26.58.240:8888/r/flexJobMiniApp/commits/92b51e47eb0e53e1e8e13aa0f9135603e1bb03a0)) * bug ([82e6132](http://120.26.58.240:8888/r/flexJobMiniApp/commits/82e613291dbaca4bc0e9964b0111037a94a68918)) * bug ([73a4d14](http://120.26.58.240:8888/r/flexJobMiniApp/commits/73a4d1404ac13115388a9e712780e21b9b6e53b9)) * bug ([a5c9763](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a5c976314d151c00dd66a3772aa3b793b81d31e8)) * bug ([5a681c9](http://120.26.58.240:8888/r/flexJobMiniApp/commits/5a681c9bd93a5a1ad1949fe07b47fc583b12ed61)) * bug ([f32357c](http://120.26.58.240:8888/r/flexJobMiniApp/commits/f32357c9f9a2c1e62ff8512d6cce65f4e65e7754)) * bug ([a69bf92](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a69bf92c8907eb1fed227afb156ff0e1c5821c24)) * bug ([d2bf817](http://120.26.58.240:8888/r/flexJobMiniApp/commits/d2bf81782096dd51d1c995194bc134ecb11c680b)) ### Features * 1.2.0.1 ([6999f1f](http://120.26.58.240:8888/r/flexJobMiniApp/commits/6999f1f04fc3ce40359c156bf008c70ee19fabf8)) * 1.2.0.1 ([28a1ee0](http://120.26.58.240:8888/r/flexJobMiniApp/commits/28a1ee009fdeb6bbd71e8263be704e2988204e04)) * 1.2.0.1 ([ae51226](http://120.26.58.240:8888/r/flexJobMiniApp/commits/ae51226ce036e0201e94b60ffa92b92e893767ee)) * 1.2.0.1 ([4642e3d](http://120.26.58.240:8888/r/flexJobMiniApp/commits/4642e3d3f2ea62676d277fed9b6e25b202699e56)) * 1.2.0.1 ([41d26c8](http://120.26.58.240:8888/r/flexJobMiniApp/commits/41d26c8ef752828901f2b683d42d15c18542f3b7)) * 1.2.0.1 ([e2cbcd6](http://120.26.58.240:8888/r/flexJobMiniApp/commits/e2cbcd64dd60014d82bd898ae51fd827e01e9c18)) * 1.2.0.1 ([ff185cf](http://120.26.58.240:8888/r/flexJobMiniApp/commits/ff185cfb6950ad2d7472f83c2bbf3c0364cde1f7)) * 1.2.0.1 ([ab9a81a](http://120.26.58.240:8888/r/flexJobMiniApp/commits/ab9a81adf064bc1905dbcec39e97371c3e1d5c5d)) * 去除验证码登录 ([a8c9fa1](http://120.26.58.240:8888/r/flexJobMiniApp/commits/a8c9fa1d7dcb4beb01b1810372a0a7e02e9a0806)) ## [1.1.4](http://120.26.58.240:8888/r/flexJobMiniApp/compare/@12333/cMiniApp/v1.1.3...@12333/cMiniApp/v1.1.4) (2025-10-15) apps/cMiniApp/auto-imports.d.ts
@@ -13,6 +13,7 @@ const OssAssets: typeof import('./src/constants/img')['OssAssets'] const RouterPath: typeof import('./src/constants/router')['RouterPath'] const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter'] const TabBarPageRouterList: typeof import('./src/constants/tabBar')['TabBarPageRouterList'] const TaskStatus: typeof import('./src/constants/task')['TaskStatus'] const TaskStatusColor: typeof import('./src/constants/task')['TaskStatusColor'] const TaskStatusText: typeof import('./src/constants/task')['TaskStatusText'] @@ -129,6 +130,7 @@ readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']> readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']> readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']> readonly TabBarPageRouterList: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouterList']> readonly TaskStatus: UnwrapRef<typeof import('./src/constants/task')['TaskStatus']> readonly TaskStatusColor: UnwrapRef<typeof import('./src/constants/task')['TaskStatusColor']> readonly TaskStatusText: UnwrapRef<typeof import('./src/constants/task')['TaskStatusText']> apps/cMiniApp/package.json
@@ -1,6 +1,6 @@ { "name": "@12333/cMiniApp", "version": "1.1.4", "version": "1.1.5", "private": true, "description": "", "templateInfo": { apps/cMiniApp/project.config.json
@@ -3,8 +3,8 @@ "description": "", "setting": { "urlCheck": false, "es6": false, "enhance": false, "es6": true, "enhance": true, "postcss": false, "preloadBackgroundData": false, "minified": false, @@ -56,5 +56,6 @@ "include": [] }, "appid": "wxb9e0baf4f87aa0de", "simulatorPluginLibVersion": {} "simulatorPluginLibVersion": {}, "projectname": "cMiniApp" } apps/cMiniApp/project.private.config.json
@@ -19,6 +19,18 @@ "ignoreDevUnusedFiles": true, "useIsolateContext": true }, "condition": {}, "condition": { "miniprogram": { "list": [ { "name": "简历详细信息", "pathName": "subpackages/curriculum/mineDetailedInfo/mineDetailedInfo", "query": "", "launchMode": "default", "scene": null } ] } }, "libVersion": "3.10.0" } apps/cMiniApp/src/components/Uploader/Uploader.vue
@@ -18,6 +18,9 @@ <template #extra-img> <slot name="extra-img"></slot> </template> <template #item="{ item }"> <slot name="item" :item="item"></slot> </template> </nut-uploader> <nut-uploader v-else @@ -35,6 +38,9 @@ <template #extra-img="extraImgProps"> <slot name="extra-img" v-bind="extraImgProps"></slot> </template> <template #item="{ item }"> <slot name="item" :item="item"></slot> </template> </nut-uploader> </template> apps/cMiniApp/src/constants/img.ts
@@ -7,6 +7,7 @@ mine: { Bg: `${OssBasePath}/matchMakingMini/assets/mine/icon-bg.png`, IdBg: `${OssBasePath}/matchMakingMini/assets/mine/icon-id-bg.png`, UseResumeVideo: `${OssBasePath}/flexJobMini/temp/%E7%AE%80%E5%8E%86%E4%B8%AA%E4%BA%BA%E8%A7%86%E9%A2%91%E6%A8%A1%E6%9D%BF.mp4`, }, setting: { ToggleBg: `${OssBasePath}/matchMakingMini/assets/setting/icon-toggle-bg.png`, apps/cMiniApp/src/constants/tabBar.ts
@@ -3,3 +3,9 @@ Task: '/pages/task/task', Mine: '/pages/mine/index', }; export const TabBarPageRouterList = [ TabBarPageRouter.Home, TabBarPageRouter.Task, TabBarPageRouter.Mine, ]; apps/cMiniApp/src/hooks/router.ts
@@ -1,15 +1,16 @@ import Taro from '@tarojs/taro'; import { TabBarPageRouter } from '@/constants'; import { TabBarPageRouter, TabBarPageRouterList } from '@/constants'; import { useSystemStore } from '@/stores/modules/system'; export function useSwitchTab() { const systemStore = useSystemStore(); const switchTab = (option: Taro.switchTab.Option) => { const index = Object.values(TabBarPageRouter).findIndex((x) => option.url.includes(x)); const index = TabBarPageRouterList.findIndex((x) => option.url.includes(x)); console.log('index: ', index); systemStore.setTabIndex(index); Taro.switchTab(option); Taro.switchTab(option).then(() => { systemStore.setTabIndex(index); }); }; return switchTab; } apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
@@ -14,10 +14,34 @@ <nut-form-item label="个人生活照(单张照片不超过5m,最多不超过6张):" class="bole-form-item person-photo" prop="photo" prop="photos" label-position="top" > <Uploader v-model:file-list="form.photos" :maximum="6" class="bole-uploader"> </Uploader> </nut-form-item> <nut-form-item label="个人视频:" class="bole-form-item person-photo" prop="videos" label-position="top" > <Uploader v-model:file-list="form.videos" :maximum="1" class="bole-uploader" :media-type="['video']" > <template #item="{ item }"> <video class="editor-video" :src="item.url" /> </template> <template #upload-icon> <UploaderIcon color="#808080" /> </template> </Uploader> <div class="video-demo"> <div class="video-demo-title">视频模板</div> <video class="editor-video" :src="OssAssets.mine.UseResumeVideo" /> </div> </nut-form-item> </nut-form> </ContentScrollView> @@ -31,9 +55,11 @@ import { NumberInput } from '@12333/components'; import { useUpdateResume } from '@12333/hooks'; import * as userResumeServices from '@12333/services/apiV2/userResume'; import { convertApiPath2Url, Message } from '@12333/utils'; import { convertApiPath2Url, convertFormUrl2Api, Message } from '@12333/utils'; import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type'; import { useQuery } from '@tanstack/vue-query'; import { Uploader as UploaderIcon } from '@nutui/icons-vue-taro'; import { OssAssets } from '@/constants'; defineOptions({ name: 'InnerPage', @@ -60,7 +86,8 @@ onSuccess(data) { form.height = data.height; form.weight = data.weight; form.photos = data.photos?.length ? data.photos.map((x) => convertApiPath2Url(x)) : []; form.photos = data.photos?.length ? data.photos.map(convertApiPath2Url) : []; form.videos = data.videos?.length ? data.videos.map(convertApiPath2Url) : []; }, }); @@ -68,6 +95,7 @@ height: 0, weight: 0, photos: [] as FileItem[], videos: [] as FileItem[], }); async function handleConfirm() { @@ -75,7 +103,8 @@ let params: API.SaveUserResumeDetailCommand = { weight: form.weight, height: form.height, photos: form.photos?.length ? form.photos.map((x) => x.path) : [], photos: convertFormUrl2Api(form.photos), videos: convertFormUrl2Api(form.videos), }; let res = await userResumeServices.saveUserResumeDetail(params); if (res) { @@ -104,5 +133,16 @@ page .nut-form .nut-cell.bole-form-item:not(.alignTop) { align-items: flex-start !important; } .editor-video { width: 200px; height: 200px; } .video-demo { .video-demo-title { margin: 12px 0; } } } </style> apps/cMiniApp/src/utils/page.ts
@@ -1,4 +1,4 @@ import { TabBarPageRouter } from '@/constants'; import { TabBarPageRouterList } from '@/constants'; import Taro from '@tarojs/taro'; import { useSystemStoreWithOut } from '@/stores/modules/system'; @@ -11,7 +11,7 @@ Taro.navigateBack({ delta: delta }); } else { Taro.switchTab({ url: Object.values(TabBarPageRouter)[systemStore.activeTab], url: TabBarPageRouterList[systemStore.activeTab], }); } } package.json
@@ -53,6 +53,7 @@ "postcss-html": "1.5.0", "prettier": "^2.7.1", "release-it": "^17.6.0", "rimraf": "^6.0.1", "stylelint": "^14.15.0", "stylelint-config-html": "^1.1.0", "stylelint-config-prettier": "^9.0.4", packages/components/src/Card/FlexJobTopView.vue
@@ -7,17 +7,22 @@ /> <div class="flexJob-card-top-info"> <div class="flexJob-card-top-info-item"> <div class="flexJob-card-top-info-name">{{ name }}</div> <div class="flexJob-card-top-info-gender"> <img v-if="gender === EnumUserGender.Male" :src="IconMale" class="flexJob-card-top-info-gender-icon" /> <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" /> <div class="flexJob-card-top-info-item-w"> <div class="flexJob-card-top-info-name">{{ name }}</div> <div class="flexJob-card-top-info-gender"> <img v-if="gender === EnumUserGender.Male" :src="IconMale" class="flexJob-card-top-info-gender-icon" /> <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" /> </div> <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }"> {{ isReal ? '已实名' : '未实名' }} </div> </div> <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }"> {{ isReal ? '已实名' : '未实名' }} <div class="flexJob-card-top-info-item-right"> <slot name="time"></slot> </div> </div> <slot name="detail"> @@ -90,10 +95,23 @@ flex: 1; min-width: 0; .flexJob-card-top-info-item-w { display: flex; align-items: center; flex: 1; min-width: 0; } .flexJob-card-top-info-item { display: flex; align-items: center; .flexJob-card-top-info-item-right { font-size: 28px; line-height: 34px; color: boleGetCssVar('text-color', 'secondary'); } .flexJob-card-top-info-name { font-size: 34px; line-height: 34px; packages/components/src/Input/ChooseInputWithDatePicker.vue
@@ -27,6 +27,7 @@ const emit = defineEmits<{ (e: 'update:modelValue', val: string | number): void; (e: 'change'): void; }>(); function handleOpen() { @@ -55,6 +56,9 @@ emit('update:modelValue', dayjs(selectedValue.join('-')).format(props.format)); onClose(); }, onChange: () => { emit('change'); }, minDate: props.minDate, }), } packages/components/src/Input/ChooseInputWithPicker.vue
@@ -18,11 +18,13 @@ enumValueKey?: string; valueEnum?: ValueEnum; modelValue: string | number; disabled?: boolean; }; const props = withDefaults(defineProps<Props>(), { enumLabelKey: 'label', enumValueKey: 'value', disabled: false, }); const emit = defineEmits<{ @@ -38,6 +40,9 @@ ); function handleOpen() { if (props.disabled) { return; } const _modelValue = [props.modelValue]; Portal.add((key) => { return h( packages/components/src/List/IncomeDetailListItem.vue
@@ -44,10 +44,12 @@ padding: 0 boleGetCssVar('size', 'body-padding-h'); .income-detail-list-item-inner { padding: 24px 0 18px; border-bottom: 1px solid #f6f6f6; display: flex; flex-direction: column; background: #ffffff; border-radius: 12px; padding: 40px; margin-bottom: 24px; &.border-none { border-bottom: none; packages/constants/apiEnum.ts
@@ -11,6 +11,8 @@ Hour = 30, /**计件 */ Piece = 40, /**面议 */ Face = 50, } /** 客户端类型 */ @@ -21,6 +23,8 @@ Wxmp = 20, /**H5登录 */ H5 = 30, /**接口 */ Api = 40, } /** 编号地址场景 */ @@ -347,28 +351,34 @@ CommonServerSyncDatabase = 8, /**短信工具 */ CommonServerSmsUtils = 9, /**配置 */ CommonServerSettings = 10, /**用户认证 */ UserServerAuth = 10, UserServerAuth = 11, /**用户菜单 */ UserServerMenu = 11, UserServerMenu = 12, /**用户资源 */ UserServerResource = 12, UserServerResource = 13, /**用户角色 */ UserServerRole = 13, UserServerRole = 14, /**用户信息 */ UserServerUser = 14, UserServerUser = 15, /**用户钱包 */ UserServerUserWallet = 16, /**电子签 */ UserServerElectronSign = 15, UserServerElectronSign = 17, /**用户简历 */ UserServerUserResume = 16, UserServerUserResume = 18, /**企业信息 */ UserServerEnterprise = 17, UserServerEnterprise = 19, /**企业钱包 */ UserServerEnterpriseWallet = 18, UserServerEnterpriseWallet = 20, /**灵工信息 */ UserServerEnterpriseEmployee = 19, UserServerEnterpriseEmployee = 21, /**电子签 */ ElectronSignServerElectronSign = 20, ElectronSignServerElectronSign = 22, /**电子签 */ ToolServerSms = 23, } /** 资源请求方式 */ @@ -413,8 +423,12 @@ /** 短信通道 */ export enum EnumSmsAccess { /**无 */ None = 0, /**阿里云短信 */ AliyunSms = 10, /**诚立业 */ ChengLiYe = 20, } /** 短信状态 */ @@ -429,6 +443,14 @@ Fail = 30, } /** 任务验收方式 */ export enum EnumTaskCheckReceiveMethod { /**人工签到 */ CheckIn = 10, /**自主提交 */ Submit = 20, } /** 任务结算状态 */ export enum EnumTaskCheckReceiveStatus { /**待提交 */ @@ -437,6 +459,14 @@ WaitCheckReceive = 20, /**已验收 */ Completed = 30, } /** 任务发放方式 */ export enum EnumTaskPaymentMethod { /**直接发放 */ Direct = 10, /**提现发放 */ Withdraw = 20, } /** 任务推荐状态 */ @@ -453,6 +483,16 @@ InProcess = 20, /**已停止 */ Stopped = 100, } /** 任务结算审核状态 */ export enum EnumTaskSettlementAuditStatus { /**待审核 */ Wait = 10, /**审核通过 */ Pass = 20, /**驳回 */ Fail = 30, } /** 任务结算单状态 */ @@ -515,15 +555,27 @@ Stop = 50, } /** 任务人员提交信息签到记录类型 */ export enum EnumTaskUserSubmitCheckHistoryType { /**签到 */ CheckIn = 10, /**签出 */ CheckOut = 20, /**未到岗 */ UnCheckIn = 30, /**未签出 */ UnCheckOut = 40, } /** 任务验收状态 */ export enum EnumTaskUserSubmitCheckReceiveStatus { /**待提交 */ WaitSubmit = 10, /**待验收 */ WaitCheckReceive = 20, /**验收通过 */ /**验收通过/已签到 */ Success = 30, /**验收未通过 */ /**验收未通过/未到岗 */ Fail = 40, } @@ -597,6 +649,158 @@ Fail = 50, } /** 微信支付-银行账户类型枚举 */ export enum EnumWeChatPayApplymentBankAccountType { /**对公银行账户 */ BANK_ACCOUNT_TYPE_CORPORATE = 0, /**经营者个人银行卡(仅个体户可选择) */ BANK_ACCOUNT_TYPE_PERSONAL = 1, } /** 微信支付-登记证书类型枚举 */ export enum EnumWeChatPayApplymentCertType { /**事业单位法人证书(主体为事业单位时选择) */ CERTIFICATE_TYPE_2388 = 0, /**统一社会信用代码证书(主体为政府机关/社会组织时选择) */ CERTIFICATE_TYPE_2389 = 1, /**社会团体法人登记证书(主体为社会组织时选择) */ CERTIFICATE_TYPE_2394 = 2, /**民办非企业单位登记证书(主体为社会组织时选择) */ CERTIFICATE_TYPE_2395 = 3, /**基金会法人登记证书(主体为社会组织时选择) */ CERTIFICATE_TYPE_2396 = 4, /**执业许可证/执业证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2520 = 5, /**基层群众性自治组织特别法人统一社会信用代码证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2521 = 6, /**农村集体经济组织登记证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2522 = 7, /**宗教活动场所登记证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2399 = 8, /**政府部门下发的其他有效证明文件(主体为社会组织时选择) */ CERTIFICATE_TYPE_2400 = 9, } /** 微信支付-超级管理员类型枚举 */ export enum EnumWeChatPayApplymentContactType { /**经营者/法定代表人 */ LEGAL = 0, /**经办人(经商户授权办理微信支付业务的人员) */ SUPER = 1, } /** 微信支付-金融机构类型枚举 */ export enum EnumWeChatPayApplymentFinanceType { /**银行业(适用于商业银行、政策性银行、农村合作银行、村镇银行、开发性金融机构等) */ BANK_AGENT = 0, /**支付机构(适用于非银行类支付机构) */ PAYMENT_AGENT = 1, /**保险业(适用于保险、保险中介、保险代理、保险经纪等保险类业务) */ INSURANCE = 2, /**交易及结算类金融机构(适用于交易所、登记结算类机构、银行卡清算机构、资金清算中心等) */ TRADE_AND_SETTLE = 3, /**其他金融机构(适用于财务公司、信托公司、金融资产管理公司、金融租赁公司、汽车金融公司、贷款公司、货币经纪公司、消费金融公司、证券业、金融控股公司、股票、期货、货币兑换、小额贷款公司、金融资产管理、担保公司、商业保理公司、典当行、融资租赁公司、财经咨询等其他金融业务) */ OTHER = 4, } /** 微信支付-证件类型枚举 */ export enum EnumWeChatPayApplymentIdDocType { /**中国大陆居民 */ IDENTIFICATION_TYPE_IDCARD = 0, /**其他国家或地区居民 */ IDENTIFICATION_TYPE_OVERSEA_PASSPORT = 1, /**中国香港居民 */ IDENTIFICATION_TYPE_HONGKONG_PASSPORT = 2, /**中国澳门居民 */ IDENTIFICATION_TYPE_MACAO_PASSPORT = 3, /**中国台湾居民 */ IDENTIFICATION_TYPE_TAIWAN_PASSPORT = 4, /**外国人居留证 */ IDENTIFICATION_TYPE_FOREIGN_RESIDENT = 5, /**港澳居民证 */ IDENTIFICATION_TYPE_HONGKONG_MACAO_RESIDENT = 6, /**台湾居民证 */ IDENTIFICATION_TYPE_TAIWAN_RESIDENT = 7, } /** 微信支付-证件持有人类型枚举 */ export enum EnumWeChatPayApplymentIdHolderType { /**经营者/法定代表人 */ LEGAL = 0, /**经办人(经商户授权办理微信支付业务的人员,授权范围包括但不限于签约,入驻过程需完成账户验证) */ SUPER = 1, } /** 微信支付-经营场景类型枚举 */ export enum EnumWeChatPayApplymentSalesScenesType { /**线下场所 */ SALES_SCENES_STORE = 0, /**服务号与公众号 */ SALES_SCENES_MP = 1, /**小程序 */ SALES_SCENES_MINI_PROGRAM = 2, /**互联网网站 */ SALES_SCENES_WEB = 3, /**App */ SALES_SCENES_APP = 4, /**企业微信 */ SALES_SCENES_WEWORK = 5, } /** 微信支付申请单状态枚举 */ export enum EnumWeChatPayApplymentState { /**编辑中,提交申请发生错误导致,请尝试重新提交 */ APPLYMENT_STATE_EDITTING = 0, /**审核中,申请单正在审核中,超级管理员用微信打开“签约链接”,完成绑定微信号后,申请单进度将通过微信公众号通知超级管理员,引导完成后续步骤 */ APPLYMENT_STATE_AUDITING = 1, /**已驳回,请按照驳回原因修改申请资料,超级管理员用微信打开“签约链接”,完成绑定微信号,后续申请单进度将通过微信公众号通知超级管理员 */ APPLYMENT_STATE_REJECTED = 2, /**待账户验证,请超级管理员使用微信打开返回的“签约链接”,根据页面指引完成账户验证 */ APPLYMENT_STATE_TO_BE_CONFIRMED = 3, /**待签约,请超级管理员使用微信打开返回的“签约链接”,根据页面指引完成签约 */ APPLYMENT_STATE_TO_BE_SIGNED = 4, /**开通权限中,系统开通相关权限中,请耐心等待 */ APPLYMENT_STATE_SIGNING = 5, /**已完成,商户入驻申请已完成 */ APPLYMENT_STATE_FINISHED = 6, /**已作废,申请单已被撤销 */ APPLYMENT_STATE_CANCELED = 7, } /** 微信支付-主体类型枚举 */ export enum EnumWeChatPayApplymentSubjectType { /**个体户(营业执照上的主体类型一般为个体户、个体工商户、个体经营) */ SUBJECT_TYPE_INDIVIDUAL = 0, /**企业(营业执照上的主体类型一般为有限公司、有限责任公司) */ SUBJECT_TYPE_ENTERPRISE = 1, /**政府机关(包括各级、各类政府机关,如机关党委、税务、民政、人社、工商、商务、市监等) */ SUBJECT_TYPE_GOVERNMENT = 2, /**事业单位(包括国内各类事业单位,如:医疗、教育、学校等单位) */ SUBJECT_TYPE_INSTITUTIONS = 3, /**社会组织(包括社会团体、民办非企业、基金会、基层群众性自治组织、农村集体经济组织等组织) */ SUBJECT_TYPE_OTHERS = 4, } /** 微信支付修改结算申请审核状态枚举 */ export enum EnumWeChatPaySettlementModifyVerifyResult { /**审核成功 */ AUDIT_SUCCESS = 0, /**审核中 */ AUDITING = 1, /**审核驳回 */ AUDIT_FAIL = 2, } /** 微信支付结算账户验证结果枚举 */ export enum EnumWeChatPaySettlementVerifyResult { /**验证成功,该账户可正常发起提现 */ VERIFY_SUCCESS = 0, /**验证失败,该账户无法发起提现,请检查修改 */ VERIFY_FAIL = 1, /**验证中,商户可发起提现尝试 */ VERIFYING = 2, } /** 我的报名分页列表-状态 */ export enum GetPersonalApplyTaskInfosQueryStatus { /**待确认 */ @@ -615,6 +819,16 @@ Completed = 20, } /** 发薪状态 */ export enum GetSettlementTasksQueryPaymentStatus { /**待审核 */ WaitAudit = 10, /**已审核 */ CompletedAudit = 20, /**已发放 */ CompletedRelease = 30, } /** 我的报名列表-详情-按钮类型 */ export enum GetTaskInfoQueryResultApplyButton { /**待确认 */ packages/constants/enterpriseWallet.ts
New file @@ -0,0 +1,17 @@ import { EnumEnterpriseWalletAccess } from './apiEnum'; export const EnumEnterpriseWalletAccessTextOnlyAlipay = { [EnumEnterpriseWalletAccess.Alipay]: '支付宝', }; export const EnumEnterpriseWalletAccessText = { [EnumEnterpriseWalletAccess.Alipay]: '支付宝', [EnumEnterpriseWalletAccess.PingAnPay]: '平安银行', [EnumEnterpriseWalletAccess.WeChatPay]: '微信', }; export const EnumEnterpriseWalletAccessTextForSettle = { [EnumEnterpriseWalletAccess.Alipay]: '企业支付宝结算', [EnumEnterpriseWalletAccess.PingAnPay]: '平安银行结算', [EnumEnterpriseWalletAccess.WeChatPay]: '微信结算', }; packages/constants/enum.ts
@@ -116,3 +116,5 @@ */ UserCertification = 10, } export const WeekCN = ['日', '一', '二', '三', '四', '五', '六']; packages/constants/index.ts
@@ -14,3 +14,4 @@ export * from './task'; export * from './apiEnum'; export * from './enterpriseEmployee'; export * from './enterpriseWallet'; packages/constants/task.ts
@@ -13,6 +13,8 @@ GetTaskInfoQueryResultHireButton, GetTaskInfoQueryResultApplyButton, EnumTaskUserSubmitCheckReceiveStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskCheckReceiveMethod, } from './apiEnum'; export const EnumBillingMethodText = { @@ -20,6 +22,7 @@ [EnumBillingMethod.Day]: '按日', [EnumBillingMethod.Hour]: '按时', [EnumBillingMethod.Piece]: '计件', [EnumBillingMethod.Face]: '面议', }; export const EnumUserGenderText = { @@ -155,3 +158,22 @@ [GetTaskInfoQueryResultApplyButton.WaitHire]: '待确认', [GetTaskInfoQueryResultApplyButton.WaitSignContract]: '去签约', }; export const EnumTaskUserSubmitCheckHistoryTypeText = { [EnumTaskUserSubmitCheckHistoryType.CheckIn]: '签到', [EnumTaskUserSubmitCheckHistoryType.CheckOut]: '签出', [EnumTaskUserSubmitCheckHistoryType.UnCheckIn]: '未到岗', [EnumTaskUserSubmitCheckHistoryType.UnCheckOut]: '未签出', }; export const EnumTaskUserSubmitCheckHistoryTypeColor = { [EnumTaskUserSubmitCheckHistoryType.CheckIn]: Colors.Success, [EnumTaskUserSubmitCheckHistoryType.CheckOut]: Colors.Success, [EnumTaskUserSubmitCheckHistoryType.UnCheckIn]: Colors.Danger, [EnumTaskUserSubmitCheckHistoryType.UnCheckOut]: Colors.Info, }; export const EnumTaskCheckReceiveMethodText = { [EnumTaskCheckReceiveMethod.CheckIn]: '人工签到', [EnumTaskCheckReceiveMethod.Submit]: '自主提交', }; packages/hooks/task.ts
@@ -1,5 +1,7 @@ import { useInfiniteLoading } from '@12333/hooks'; import { useQuery, useQueryClient } from '@tanstack/vue-query'; import { EnumEnterpriseWalletAccessTextForSettle, EnumPagedListOrder, EnumSettlementCycle, EnumTaskCheckReceiveStatus, @@ -10,8 +12,9 @@ } from '@12333/constants'; import _ from 'lodash'; import { trim } from '@12333/utils'; import { MaybeRef, reactive, ref, unref } from 'vue'; import { computed, MaybeRef, reactive, ref, unref } from 'vue'; import * as taskServices from '@12333/services/apiV2/task'; import * as enterpriseWalletServices from '@12333/services/apiV2/enterpriseWallet'; import dayjs from 'dayjs'; import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive'; @@ -180,3 +183,31 @@ infiniteLoadingProps, }; } export function useEnterpriseWalletAccessSelect() { const { data } = useQuery({ queryKey: ['enterpriseWalletServices/getEnterpriseWalletAccessSelect'], queryFn: () => { return enterpriseWalletServices.getEnterpriseWalletAccessSelect( {}, { showLoading: false, } ); }, placeholderData: () => [] as API.SelectOptionGuidGetEnterpriseWalletAccessSelectQueryOption[], }); const enterpriseWalletAccessSelect = computed(() => data.value?.map((x) => x.data)); const settlementAccessList = computed(() => { return enterpriseWalletAccessSelect.value?.length > 0 ? enterpriseWalletAccessSelect.value.map((x) => ({ label: EnumEnterpriseWalletAccessTextForSettle[x.access], value: x.access, })) : []; }); return { settlementAccessList }; } packages/services/apiV2/enterpriseWallet.ts
@@ -195,6 +195,21 @@ }); } /** 导出企业余额详情 POST /api/user/enterpriseWallet/exportEnterpriseBalanceDetails */ export async function exportEnterpriseBalanceDetails( body: API.ExportEnterpriseBalanceDetailsCommand, options?: API.RequestConfig ) { return request<string>('/api/user/enterpriseWallet/exportEnterpriseBalanceDetails', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 支付宝通知回传 GET /api/user/enterpriseWallet/getAlipayNotify */ export async function getAlipayNotify( body: API.GetAlipayNotifyCommand, @@ -259,6 +274,24 @@ ); } /** 查询企业钱包余额 POST /api/user/enterpriseWallet/getEnterpriseWalletBalances */ export async function getEnterpriseWalletBalances( body: API.GetEnterpriseWalletBalancesQuery, options?: API.RequestConfig ) { return request<API.GetEnterpriseWalletBalancesQueryResult>( '/api/user/enterpriseWallet/getEnterpriseWalletBalances', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), } ); } /** 查询支付宝资金二级商户KYB代进件单详情 GET /api/user/enterpriseWallet/getEnterpriseWalletExpandindirectOrder */ export async function getEnterpriseWalletExpandindirectOrder( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) @@ -295,6 +328,134 @@ ); } /** 查询企业微信支付钱包详情 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWallet */ export async function getEnterpriseWeChatPayWallet( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) params: API.APIgetEnterpriseWeChatPayWalletParams, options?: API.RequestConfig ) { return request<API.GetEnterpriseWeChatPayWalletQueryResult>( '/api/user/enterpriseWallet/getEnterpriseWeChatPayWallet', { method: 'GET', params: { ...params, }, ...(options || {}), } ); } /** 查询企业微信钱包地区 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletAreas */ export async function getEnterpriseWeChatPayWalletAreas( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) params: API.APIgetEnterpriseWeChatPayWalletAreasParams, options?: API.RequestConfig ) { return request<API.WeChatPayArea[]>( '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletAreas', { method: 'GET', params: { ...params, }, ...(options || {}), } ); } /** 查询企业微信支付银行账户更新信息 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankAccountUpdateInfo */ export async function getEnterpriseWeChatPayWalletBankAccountUpdateInfo( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) params: API.APIgetEnterpriseWeChatPayWalletBankAccountUpdateInfoParams, options?: API.RequestConfig ) { return request<API.GetEnterpriseWeChatPayWalletBankAccountUpdateInfoQueryResult>( '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankAccountUpdateInfo', { method: 'GET', params: { ...params, }, ...(options || {}), } ); } /** 查询企业微信支付钱包支行分页列表 POST /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankBranches */ export async function getEnterpriseWeChatPayWalletBankBranches( body: API.GetEnterpriseWeChatPayWalletBankBranchesQuery, options?: API.RequestConfig ) { return request<API.GetEnterpriseWeChatPayWalletBankBranchesQueryResult>( '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankBranches', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), } ); } /** 查询企业微信支付钱包银行城市列表 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankCities */ export async function getEnterpriseWeChatPayWalletBankCities( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) params: API.APIgetEnterpriseWeChatPayWalletBankCitiesParams, options?: API.RequestConfig ) { return request<API.GetEnterpriseWeChatPayWalletBankCitiesQueryItem[]>( '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankCities', { method: 'GET', params: { ...params, }, ...(options || {}), } ); } /** 查询企业微信支付钱包银行省份列表 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankProvinces */ export async function getEnterpriseWeChatPayWalletBankProvinces( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) params: API.APIgetEnterpriseWeChatPayWalletBankProvincesParams, options?: API.RequestConfig ) { return request<API.GetEnterpriseWeChatPayWalletBankProvincesQueryItem[]>( '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankProvinces', { method: 'GET', params: { ...params, request: undefined, ...params['request'], }, ...(options || {}), } ); } /** 查询企业微信支付钱包银行分页列表 POST /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBanks */ export async function getEnterpriseWeChatPayWalletBanks( body: API.GetEnterpriseWeChatPayWalletBanksQuery, options?: API.RequestConfig ) { return request<API.GetEnterpriseWeChatPayWalletBanksQueryResult>( '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBanks', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), } ); } /** 开通企业钱包 POST /api/user/enterpriseWallet/openEnterpriseWallet */ export async function openEnterpriseWallet( body: API.OpenEnterpriseWalletCommand, @@ -313,6 +474,24 @@ ); } /** 开通企业微信钱包 POST /api/user/enterpriseWallet/openEnterpriseWeChatPayWallet */ export async function openEnterpriseWeChatPayWallet( body: API.OpenEnterpriseWeChatPayWalletCommand, options?: API.RequestConfig ) { return request<API.OpenEnterpriseWeChatPayWalletCommandResult>( '/api/user/enterpriseWallet/openEnterpriseWeChatPayWallet', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), } ); } /** 企业钱包充值 POST /api/user/enterpriseWallet/rechargeEnterpriseWallet */ export async function rechargeEnterpriseWallet( body: API.RechargeEnterpriseWalletCommand, @@ -330,3 +509,21 @@ } ); } /** 修改企业微信支付钱包结算账户 POST /api/user/enterpriseWallet/updateEnterpriseWeChatPayWalletBankAccountInfo */ export async function updateEnterpriseWeChatPayWalletBankAccountInfo( body: API.UpdateEnterpriseWeChatPayWalletBankAccountInfoCommand, options?: API.RequestConfig ) { return request<API.UpdateEnterpriseWeChatPayWalletBankAccountInfoCommandResult>( '/api/user/enterpriseWallet/updateEnterpriseWeChatPayWalletBankAccountInfo', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), } ); } packages/services/apiV2/index.ts
@@ -5,42 +5,46 @@ import * as enterpriseEmployee from './enterpriseEmployee'; import * as user from './user'; import * as role from './role'; import * as sms from './sms'; import * as enterpriseWallet from './enterpriseWallet'; import * as ocrUtils from './ocrUtils'; import * as task from './task'; import * as enterprise from './enterprise'; import * as resource from './resource'; import * as logRecords from './logRecords'; import * as resource from './resource'; import * as dictionary from './dictionary'; import * as enterpriseWallet from './enterpriseWallet'; import * as codeUrl from './codeUrl'; import * as electronSign from './electronSign'; import * as userResume from './userResume'; import * as auth from './auth'; import * as taskCheckReceive from './taskCheckReceive'; import * as taskUser from './taskUser'; import * as sms from './sms'; import * as settings from './settings'; import * as menu from './menu'; import * as userWallet from './userWallet'; import * as fileUtils from './fileUtils'; import * as syncDatabase from './syncDatabase'; export default { enterpriseEmployee, user, role, sms, enterpriseWallet, ocrUtils, task, enterprise, resource, logRecords, resource, dictionary, enterpriseWallet, codeUrl, electronSign, userResume, auth, taskCheckReceive, taskUser, sms, settings, menu, userWallet, fileUtils, syncDatabase, }; packages/services/apiV2/settings.ts
New file @@ -0,0 +1,20 @@ /* eslint-disable */ // @ts-ignore import { request } from '@/utils/request'; /** 查询微信小程序配置信息 GET /api/common/settings/getWxmpSettings */ export async function getWxmpSettings( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) params: API.APIgetWxmpSettingsParams, options?: API.RequestConfig ) { return request<API.GetWxmpSettingsQueryResult>('/api/common/settings/getWxmpSettings', { method: 'GET', params: { ...params, request: undefined, ...params['request'], }, ...(options || {}), }); } packages/services/apiV2/sms.ts
@@ -26,6 +26,21 @@ }); } /** 阿里云短信平台回传通知 POST /api/common/sms/smsAliyunNotify */ export async function smsAliyunNotify( body: API.SmsAliyunNotifyCommandItem[], options?: API.RequestConfig ) { return request<API.SmsAliyunNotifyCommandResult>('/api/common/sms/smsAliyunNotify', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 诚立业短信平台回传通知 POST /api/common/sms/smsChengLiYeNotify */ export async function smsChengLiYeNotify( body: API.SmsChengLiYeNotifyCommand, packages/services/apiV2/task.ts
@@ -2,6 +2,21 @@ // @ts-ignore import { request } from '@/utils/request'; /** 审核任务结算 POST /api/flexjob/task/auditTaskSettlement */ export async function auditTaskSettlement( body: API.AuditTaskSettlementCommand, options?: API.RequestConfig ) { return request<string>('/api/flexjob/task/auditTaskSettlement', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 删除任务 DELETE /api/flexjob/task/deleteTaskInfo */ export async function deleteTaskInfo(body: API.DeleteTaskInfoCommand, options?: API.RequestConfig) { return request<number>('/api/flexjob/task/deleteTaskInfo', { packages/services/apiV2/taskCheckReceive.ts
@@ -86,6 +86,24 @@ ); } /** 查询验收任务详情-签到签出记录 POST /api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmitCheckHistories */ export async function getCheckReceiveTaskUserSubmitCheckHistories( body: API.GetCheckReceiveTaskUserSubmitCheckHistoriesQuery, options?: API.RequestConfig ) { return request<API.GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult>( '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmitCheckHistories', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), } ); } /** 查询验收详情 POST /api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmits */ export async function getCheckReceiveTaskUserSubmits( body: API.GetCheckReceiveTaskUserSubmitsQuery, packages/services/apiV2/typings.d.ts
@@ -134,6 +134,31 @@ id?: string; } interface APIgetEnterpriseWeChatPayWalletAreasParams { /** 最大深度 */ maxDeep?: number; } interface APIgetEnterpriseWeChatPayWalletBankAccountUpdateInfoParams { /** 企业Id */ enterpriseId?: string; } interface APIgetEnterpriseWeChatPayWalletBankCitiesParams { /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表 */ provinceCode: number; } interface APIgetEnterpriseWeChatPayWalletBankProvincesParams { /** 查询企业微信支付钱包银行省份列表 */ request?: GetEnterpriseWeChatPayWalletBankProvincesQuery; } interface APIgetEnterpriseWeChatPayWalletParams { /** 企业Id */ enterpriseId?: string; } interface APIgetFileUrlParams { /** 地址 */ url?: string; @@ -216,8 +241,10 @@ interface APIgetSettlementTaskUsersParams { /** 结算订单Id */ id?: string; /** 任务Id */ taskInfoId?: string; /** 是否导入用户 */ isImport?: boolean; /** 操作令牌 */ operatorToken?: string; } interface APIgetTaskEnterpriseParams { @@ -261,8 +288,15 @@ interface APIgetUserInfoRolesParams { /** 用户Id */ userInfoId?: string; /** 用户类型 */ userType?: EnumUserType; /** 客户端类型 */ clientType?: EnumClientType; } interface APIgetUserParams { /** 用户Id */ id?: string; } interface APIgetUserResumeCredentialParams { @@ -302,9 +336,24 @@ request?: GetUserResumeWorkExperienceQuery; } interface APIgetWxmpSettingsParams { /** 查询微信小程序配置信息 */ request?: GetWxmpSettingsQuery; } interface ApplyTaskCommand { /** 任务Id */ ids?: string[]; } interface AuditTaskSettlementCommand { /** 结算订单Id */ id?: string; auditStatus?: EnumTaskSettlementAuditStatus; /** 审核备注 */ auditRemark?: string; /** 操作令牌 */ operatorToken?: string; } interface BaiduOcrBusinessLicenseResultModel { @@ -336,6 +385,7 @@ } interface BaiduOcrIdentityFrontResultModel { /** 姓名 */ name?: string; /** 身份证号 */ identity?: string; @@ -359,6 +409,16 @@ sessionKey: string; } interface BuildOperatorTokenCommand { /** 操作密码 */ password?: string; } interface BuildOperatorTokenCommandResult { /** 操作令牌 */ operatorToken?: string; } interface ChangePhoneNumberCommand { /** 手机号码 */ phoneNumber: string; @@ -378,9 +438,22 @@ type CheckHealthQuery = Record<string, any>; interface CheckOperatorTokenCommand { /** 操作令牌 */ operatorToken?: string; } interface CheckReceiveTaskCommand { /** 提交Id */ id?: string; /** 任务人员Id */ taskInfoUserId?: string; /** 日期 */ date?: string; /** 签到时间 */ checkInTime?: string; /** 签出时间 */ checkOutTime?: string; checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus; } @@ -456,6 +529,8 @@ interface EditTaskSettlementOrderRosterCommand { /** 名单Id */ id?: string; /** 累计工时 */ totalWorkHours?: number; /** 结算金额 */ settlementAmount: number; /** 实发金额 */ @@ -545,6 +620,8 @@ Hour = 30, /**计件 */ Piece = 40, /**面议 */ Face = 50, } enum EnumClientType { @@ -554,6 +631,8 @@ Wxmp = 20, /**H5登录 */ H5 = 30, /**接口 */ Api = 40, } enum EnumCodeUrlScene { @@ -849,28 +928,34 @@ CommonServerSyncDatabase = 8, /**短信工具 */ CommonServerSmsUtils = 9, /**配置 */ CommonServerSettings = 10, /**用户认证 */ UserServerAuth = 10, UserServerAuth = 11, /**用户菜单 */ UserServerMenu = 11, UserServerMenu = 12, /**用户资源 */ UserServerResource = 12, UserServerResource = 13, /**用户角色 */ UserServerRole = 13, UserServerRole = 14, /**用户信息 */ UserServerUser = 14, UserServerUser = 15, /**用户钱包 */ UserServerUserWallet = 16, /**电子签 */ UserServerElectronSign = 15, UserServerElectronSign = 17, /**用户简历 */ UserServerUserResume = 16, UserServerUserResume = 18, /**企业信息 */ UserServerEnterprise = 17, UserServerEnterprise = 19, /**企业钱包 */ UserServerEnterpriseWallet = 18, UserServerEnterpriseWallet = 20, /**灵工信息 */ UserServerEnterpriseEmployee = 19, UserServerEnterpriseEmployee = 21, /**电子签 */ ElectronSignServerElectronSign = 20, ElectronSignServerElectronSign = 22, /**电子签 */ ToolServerSms = 23, } enum EnumResourceMethod { @@ -911,8 +996,12 @@ } enum EnumSmsAccess { /**无 */ None = 0, /**阿里云短信 */ AliyunSms = 10, /**诚立业 */ ChengLiYe = 20, } enum EnumSmsStatus { @@ -926,6 +1015,13 @@ Fail = 30, } enum EnumTaskCheckReceiveMethod { /**人工签到 */ CheckIn = 10, /**自主提交 */ Submit = 20, } enum EnumTaskCheckReceiveStatus { /**待提交 */ WaitSubmit = 10, @@ -933,6 +1029,13 @@ WaitCheckReceive = 20, /**已验收 */ Completed = 30, } enum EnumTaskPaymentMethod { /**直接发放 */ Direct = 10, /**提现发放 */ Withdraw = 20, } enum EnumTaskRecommendStatus { @@ -947,6 +1050,15 @@ InProcess = 20, /**已停止 */ Stopped = 100, } enum EnumTaskSettlementAuditStatus { /**待审核 */ Wait = 10, /**审核通过 */ Pass = 20, /**驳回 */ Fail = 30, } enum EnumTaskSettlementOrderStatus { @@ -1003,14 +1115,25 @@ Stop = 50, } enum EnumTaskUserSubmitCheckHistoryType { /**签到 */ CheckIn = 10, /**签出 */ CheckOut = 20, /**未到岗 */ UnCheckIn = 30, /**未签出 */ UnCheckOut = 40, } enum EnumTaskUserSubmitCheckReceiveStatus { /**待提交 */ WaitSubmit = 10, /**待验收 */ WaitCheckReceive = 20, /**验收通过 */ /**验收通过/已签到 */ Success = 30, /**验收未通过 */ /**验收未通过/未到岗 */ Fail = 40, } @@ -1077,6 +1200,156 @@ Fail = 50, } enum EnumWeChatPayApplymentBankAccountType { /**对公银行账户 */ BANK_ACCOUNT_TYPE_CORPORATE = 0, /**经营者个人银行卡(仅个体户可选择) */ BANK_ACCOUNT_TYPE_PERSONAL = 1, } enum EnumWeChatPayApplymentCertType { /**事业单位法人证书(主体为事业单位时选择) */ CERTIFICATE_TYPE_2388 = 0, /**统一社会信用代码证书(主体为政府机关/社会组织时选择) */ CERTIFICATE_TYPE_2389 = 1, /**社会团体法人登记证书(主体为社会组织时选择) */ CERTIFICATE_TYPE_2394 = 2, /**民办非企业单位登记证书(主体为社会组织时选择) */ CERTIFICATE_TYPE_2395 = 3, /**基金会法人登记证书(主体为社会组织时选择) */ CERTIFICATE_TYPE_2396 = 4, /**执业许可证/执业证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2520 = 5, /**基层群众性自治组织特别法人统一社会信用代码证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2521 = 6, /**农村集体经济组织登记证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2522 = 7, /**宗教活动场所登记证(主体为社会组织时选择) */ CERTIFICATE_TYPE_2399 = 8, /**政府部门下发的其他有效证明文件(主体为社会组织时选择) */ CERTIFICATE_TYPE_2400 = 9, } enum EnumWeChatPayApplymentContactType { /**经营者/法定代表人 */ LEGAL = 0, /**经办人(经商户授权办理微信支付业务的人员) */ SUPER = 1, } enum EnumWeChatPayApplymentFinanceType { /**银行业(适用于商业银行、政策性银行、农村合作银行、村镇银行、开发性金融机构等) */ BANK_AGENT = 0, /**支付机构(适用于非银行类支付机构) */ PAYMENT_AGENT = 1, /**保险业(适用于保险、保险中介、保险代理、保险经纪等保险类业务) */ INSURANCE = 2, /**交易及结算类金融机构(适用于交易所、登记结算类机构、银行卡清算机构、资金清算中心等) */ TRADE_AND_SETTLE = 3, /**其他金融机构(适用于财务公司、信托公司、金融资产管理公司、金融租赁公司、汽车金融公司、贷款公司、货币经纪公司、消费金融公司、证券业、金融控股公司、股票、期货、货币兑换、小额贷款公司、金融资产管理、担保公司、商业保理公司、典当行、融资租赁公司、财经咨询等其他金融业务) */ OTHER = 4, } enum EnumWeChatPayApplymentIdDocType { /**中国大陆居民 */ IDENTIFICATION_TYPE_IDCARD = 0, /**其他国家或地区居民 */ IDENTIFICATION_TYPE_OVERSEA_PASSPORT = 1, /**中国香港居民 */ IDENTIFICATION_TYPE_HONGKONG_PASSPORT = 2, /**中国澳门居民 */ IDENTIFICATION_TYPE_MACAO_PASSPORT = 3, /**中国台湾居民 */ IDENTIFICATION_TYPE_TAIWAN_PASSPORT = 4, /**外国人居留证 */ IDENTIFICATION_TYPE_FOREIGN_RESIDENT = 5, /**港澳居民证 */ IDENTIFICATION_TYPE_HONGKONG_MACAO_RESIDENT = 6, /**台湾居民证 */ IDENTIFICATION_TYPE_TAIWAN_RESIDENT = 7, } enum EnumWeChatPayApplymentIdHolderType { /**经营者/法定代表人 */ LEGAL = 0, /**经办人(经商户授权办理微信支付业务的人员,授权范围包括但不限于签约,入驻过程需完成账户验证) */ SUPER = 1, } enum EnumWeChatPayApplymentSalesScenesType { /**线下场所 */ SALES_SCENES_STORE = 0, /**服务号与公众号 */ SALES_SCENES_MP = 1, /**小程序 */ SALES_SCENES_MINI_PROGRAM = 2, /**互联网网站 */ SALES_SCENES_WEB = 3, /**App */ SALES_SCENES_APP = 4, /**企业微信 */ SALES_SCENES_WEWORK = 5, } enum EnumWeChatPayApplymentState { /**编辑中,提交申请发生错误导致,请尝试重新提交 */ APPLYMENT_STATE_EDITTING = 0, /**审核中,申请单正在审核中,超级管理员用微信打开“签约链接”,完成绑定微信号后,申请单进度将通过微信公众号通知超级管理员,引导完成后续步骤 */ APPLYMENT_STATE_AUDITING = 1, /**已驳回,请按照驳回原因修改申请资料,超级管理员用微信打开“签约链接”,完成绑定微信号,后续申请单进度将通过微信公众号通知超级管理员 */ APPLYMENT_STATE_REJECTED = 2, /**待账户验证,请超级管理员使用微信打开返回的“签约链接”,根据页面指引完成账户验证 */ APPLYMENT_STATE_TO_BE_CONFIRMED = 3, /**待签约,请超级管理员使用微信打开返回的“签约链接”,根据页面指引完成签约 */ APPLYMENT_STATE_TO_BE_SIGNED = 4, /**开通权限中,系统开通相关权限中,请耐心等待 */ APPLYMENT_STATE_SIGNING = 5, /**已完成,商户入驻申请已完成 */ APPLYMENT_STATE_FINISHED = 6, /**已作废,申请单已被撤销 */ APPLYMENT_STATE_CANCELED = 7, } enum EnumWeChatPayApplymentSubjectType { /**个体户(营业执照上的主体类型一般为个体户、个体工商户、个体经营) */ SUBJECT_TYPE_INDIVIDUAL = 0, /**企业(营业执照上的主体类型一般为有限公司、有限责任公司) */ SUBJECT_TYPE_ENTERPRISE = 1, /**政府机关(包括各级、各类政府机关,如机关党委、税务、民政、人社、工商、商务、市监等) */ SUBJECT_TYPE_GOVERNMENT = 2, /**事业单位(包括国内各类事业单位,如:医疗、教育、学校等单位) */ SUBJECT_TYPE_INSTITUTIONS = 3, /**社会组织(包括社会团体、民办非企业、基金会、基层群众性自治组织、农村集体经济组织等组织) */ SUBJECT_TYPE_OTHERS = 4, } enum EnumWeChatPaySettlementModifyVerifyResult { /**审核成功 */ AUDIT_SUCCESS = 0, /**审核中 */ AUDITING = 1, /**审核驳回 */ AUDIT_FAIL = 2, } enum EnumWeChatPaySettlementVerifyResult { /**验证成功,该账户可正常发起提现 */ VERIFY_SUCCESS = 0, /**验证失败,该账户无法发起提现,请检查修改 */ VERIFY_FAIL = 1, /**验证中,商户可发起提现尝试 */ VERIFYING = 2, } interface ExportEnterpriseBalanceDetailsCommand { /** 企业钱包Id */ enterpriseWalletId?: string; /** 创建时间-起始 */ createdTimeStart?: string; /** 创建时间-截止 */ createdTimeEnd?: string; } interface ExportTaskCheckReceiveTaskUsersCommand { /** 任务Id */ id?: string; @@ -1096,6 +1369,24 @@ errorCode?: string; /** 数据 */ data?: boolean; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultBuildOperatorTokenCommandResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: BuildOperatorTokenCommandResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -1204,6 +1495,24 @@ /** 错误码 */ errorCode?: string; data?: GetCheckReceiveTasksQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -1484,6 +1793,24 @@ timestamp?: number; } interface FriendlyResultGetEnterpriseWalletBalancesQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetEnterpriseWalletBalancesQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetEnterpriseWalletExpandindirectOrderQueryResult { /** 跟踪Id */ traceId?: string; @@ -1528,6 +1855,78 @@ /** 错误码 */ errorCode?: string; data?: GetEnterpriseWalletTransactionQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetEnterpriseWeChatPayWalletBankAccountUpdateInfoQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetEnterpriseWeChatPayWalletBankAccountUpdateInfoQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetEnterpriseWeChatPayWalletBankBranchesQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetEnterpriseWeChatPayWalletBankBranchesQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetEnterpriseWeChatPayWalletBanksQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetEnterpriseWeChatPayWalletBanksQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetEnterpriseWeChatPayWalletQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetEnterpriseWeChatPayWalletQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -1618,6 +2017,24 @@ /** 错误码 */ errorCode?: string; data?: GetMenuQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetOperationUserInfosQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetOperationUserInfosQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -2114,6 +2531,24 @@ timestamp?: number; } interface FriendlyResultGetUserQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetUserQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetUserResumeCredentialQueryResult { /** 跟踪Id */ traceId?: string; @@ -2230,6 +2665,24 @@ /** 错误码 */ errorCode?: string; data?: GetUserResumeWorkExperienceQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultGetWxmpSettingsQueryResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: GetWxmpSettingsQueryResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -2361,6 +2814,44 @@ errorCode?: string; /** 数据 */ data?: GetEnabledElectronSignSettingsQueryResultItem[]; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultListGetEnterpriseWeChatPayWalletBankCitiesQueryItem { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; /** 数据 */ data?: GetEnterpriseWeChatPayWalletBankCitiesQueryItem[]; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultListGetEnterpriseWeChatPayWalletBankProvincesQueryItem { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; /** 数据 */ data?: GetEnterpriseWeChatPayWalletBankProvincesQueryItem[]; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -2580,6 +3071,25 @@ timestamp?: number; } interface FriendlyResultListWeChatPayArea { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; /** 数据 */ data?: WeChatPayArea[]; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultLoginCommandCallback { /** 跟踪Id */ traceId?: string; @@ -2606,6 +3116,24 @@ /** 错误码 */ errorCode?: string; data?: OpenEnterpriseWalletCommandResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultOpenEnterpriseWeChatPayWalletCommandResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: OpenEnterpriseWeChatPayWalletCommandResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -2660,24 +3188,6 @@ /** 错误码 */ errorCode?: string; data?: PagedListQueryResultGetEnterprisesQueryResultItem; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultPagedListQueryResultGetOperationUserInfosQueryResultItem { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: PagedListQueryResultGetOperationUserInfosQueryResultItem; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -2760,6 +3270,24 @@ timestamp?: number; } interface FriendlyResultSmsAliyunNotifyCommandResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: SmsAliyunNotifyCommandResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultString { /** 跟踪Id */ traceId?: string; @@ -2769,6 +3297,24 @@ errorCode?: string; /** 数据 */ data?: string; /** 执行成功 */ success?: boolean; /** 错误信息 */ msg?: any; /** 附加数据 */ extras?: any; /** 时间戳 */ timestamp?: number; } interface FriendlyResultUpdateEnterpriseWeChatPayWalletBankAccountInfoCommandResult { /** 跟踪Id */ traceId?: string; /** 状态码 */ code?: number; /** 错误码 */ errorCode?: string; data?: UpdateEnterpriseWeChatPayWalletBankAccountInfoCommandResult; /** 执行成功 */ success?: boolean; /** 错误信息 */ @@ -2929,6 +3475,12 @@ /** 是否实名 */ isReal?: boolean; realMethod?: EnumUserRealMethod; /** 签到时间 */ checkInTime?: string; /** 签出时间 */ checkOutTime?: string; /** 操作人 */ operator?: string; /** 最近提交时间 */ lastSubmitTime?: string; checkReceiveStatus?: EnumTaskCheckReceiveStatus; @@ -2942,11 +3494,24 @@ billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle?: EnumSettlementCycle; /** 任务开始时间 */ beginTime?: string; /** 任务结束时间 */ endTime?: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; /** 任务地点名称 */ addressName?: string; } @@ -2980,6 +3545,10 @@ billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle?: EnumSettlementCycle; /** 发布时间 */ createdTime?: string; @@ -2987,11 +3556,59 @@ beginTime?: string; /** 任务结束时间 */ endTime?: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; /** 任务地点名称 */ addressName?: string; checkReceiveStatus?: EnumTaskCheckReceiveStatus; /** 最近验收时间 */ lastCheckReceiveTime?: string; } interface GetCheckReceiveTaskUserSubmitCheckHistoriesQuery { /** 任务Id */ taskInfoId?: string; /** 日期 */ date?: string; type?: EnumTaskUserSubmitCheckHistoryType; pageModel?: PagedListQueryPageModel; } interface GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult { pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResultItem[]; } interface GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResultItem { /** 记录Id */ id?: string; /** 头像 */ avatar?: string; /** 姓名 */ name?: string; /** 身份证号 */ identity?: string; gender?: EnumUserGender; /** 年龄 */ age?: number; /** 手机号 */ contactPhoneNumber?: string; /** 是否实名 */ isReal?: boolean; realMethod?: EnumUserRealMethod; /** 签到签出时间 */ checkTime?: string; /** 操作人 */ operator?: string; type?: EnumTaskUserSubmitCheckHistoryType; } interface GetCheckReceiveTaskUserSubmitQueryResult { @@ -3027,6 +3644,12 @@ id?: string; /** 验收时间 */ date?: string; /** 签到时间 */ checkInTime?: string; /** 签出时间 */ checkOutTime?: string; /** 操作人 */ operator?: string; /** 提交时间 */ createdTime?: string; /** 验收照片 */ @@ -3680,6 +4303,34 @@ access?: EnumEnterpriseWalletAccess; } interface GetEnterpriseWalletBalancesQuery { /** 关键字 */ keywords?: string; pageModel?: PagedListQueryPageModel; } interface GetEnterpriseWalletBalancesQueryResult { pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetEnterpriseWalletBalancesQueryResultItem[]; } interface GetEnterpriseWalletBalancesQueryResultItem { /** 钱包Id */ id?: string; /** 企业全称 */ enterpriseName?: string; /** 统一社会信用代码 */ societyCreditCode?: string; access?: EnumEnterpriseWalletAccess; /** 所属银行 */ bank?: string; /** 账号 */ identity?: string; /** 余额 */ balance?: number; } interface GetEnterpriseWalletExpandindirectOrderQueryResult { /** 单号 */ outBizNo?: string; @@ -3775,6 +4426,199 @@ /** 订单支付时间 */ transDate?: string; transactionStatus?: EnumWalletTransactionStatus; } interface GetEnterpriseWeChatPayWalletBankAccountUpdateInfoQueryResult { /** 钱包Id */ id?: string; modifySettlementVerifyResult?: EnumWeChatPaySettlementModifyVerifyResult; /** 修改结算账户审核驳回原因,审核成功时为空 */ modifySettlementVerifyFailReason?: string; /** 修改结算账户审核结果更新时间,遵循rfc3339标准格式,例如:2015-05-20T13:29:35+08:00 */ modifySettlementVerifyFinishTime?: string; /** 银行别名编码 银行别名的编码,查询支行接口仅支持需要填写支行的银行别名编码 */ bank_alias_code?: string; /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表 */ province_code?: number; /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表 */ city_code?: number; /** 银行别名,用于在前端展示全量银行名称供用户选择,如工商银行、深圳前海微众银行等共计4000多家银行的别名名称 */ bank_alias?: string; /** 开户银行编码,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为 1099 */ account_bank_code?: number; /** 是否需要填写支行,该开户银行是否需要传入对应的支行,需要请使用银行别名编码和城市编码查询选择具体的支行并传入(默认值为true) 如需查询城市编码,需要通过查询城市列表接口获取相应的城市编码信息 */ need_bank_branch?: boolean; bank_account_type: EnumWeChatPayApplymentBankAccountType; /** 开户名称 1、选择“经营者个人银行卡”时,开户名称必须与“经营者证件姓名”一致; 2、选择“对公银行账户”时,开户名称必须与营业执照上的“商户名称”一致; 3、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_name: string; /** 开户银行 对私银行调用:查询支持个人业务的银行列表API 对公银行调用:查询支持对公业务的银行列表API */ account_bank: string; /** 开户银行省市编码 该字段即将下线处理,无需传入 至少精确到市,详细参见省市区编号对照表 注:仅当省市区编号对照表中无对应的省市区编号时,可向上取该银行对应市级编号或省级编号。 */ bank_address_code?: string; /** 开户银行银行号 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_branch_id?: string; /** 开户银行全称(含支行) 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_name?: string; /** 银行账号 1、数字,长度遵循系统支持的卡号长度要求表; 2、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_number: string; } interface GetEnterpriseWeChatPayWalletBankBranchesQuery { /** 银行别名编码 银行别名的编码,查询支行接口仅支持需要填写支行的银行别名编码 */ bank_alias_code: string; /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表 */ city_code: number; pageModel?: PagedListQueryPageModel; } interface GetEnterpriseWeChatPayWalletBankBranchesQueryResult { pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetEnterpriseWeChatPayWalletBankBranchesQueryResultItem[]; } interface GetEnterpriseWeChatPayWalletBankBranchesQueryResultItem { /** 开户银行支行名称,用于开户银行为其他银行的情况下,在入驻、修改结算银行卡、企业付款等场景下填写结算银行卡信息 */ bank_branch_name: string; /** 开户银行支行的联行号,用于开户银行为其他银行的情况下,在入驻、修改结算银行卡、企业付款等场景下填写结算银行卡信息 */ bank_branch_id: string; } interface GetEnterpriseWeChatPayWalletBankCitiesQueryItem { /** 城市名称,必填 */ city_name: string; /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表,必填 */ city_code: number; } type GetEnterpriseWeChatPayWalletBankProvincesQuery = Record<string, any>; interface GetEnterpriseWeChatPayWalletBankProvincesQueryItem { /** 省份名称,必填 */ province_name: string; /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表,必填 */ province_code: number; } interface GetEnterpriseWeChatPayWalletBanksQuery { bank_account_type: EnumWeChatPayApplymentBankAccountType; pageModel?: PagedListQueryPageModel; } interface GetEnterpriseWeChatPayWalletBanksQueryResult { pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetEnterpriseWeChatPayWalletBanksQueryResultItem[]; } interface GetEnterpriseWeChatPayWalletBanksQueryResultItem { /** 银行别名,用于在前端展示全量银行名称供用户选择,如工商银行、深圳前海微众银行等共计4000多家银行的别名名称 */ bank_alias: string; /** 银行别名编码,用于在查询支行列表接口检索获取支行列表(仅开户银行为其他银行时需要查询支行) */ bank_alias_code: string; /** 开户银行名称,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为其他银行 */ account_bank: string; /** 开户银行编码,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为 1099 */ account_bank_code: number; /** 是否需要填写支行,该开户银行是否需要传入对应的支行,需要请使用银行别名编码和城市编码查询选择具体的支行并传入(默认值为true) 如需查询城市编码,需要通过查询城市列表接口获取相应的城市编码信息 */ need_bank_branch: boolean; } interface GetEnterpriseWeChatPayWalletQueryResult { /** 钱包Id */ id?: string; bank_account_info: GetEnterpriseWeChatPayWalletQueryResultBankAccountInfo; /** 超级管理员签约链接 1、超级管理员用微信扫码,关注“微信支付商家助手”公众号后,公众号将自动发送签约消息;超管需点击消息,根据指引完成核对联系信息、账户验证、签约等操作; 2、超管完成核对联系信息,后续申请单进度可通过公众号自动通知超级管理员 */ sign_url?: string; applyment_state?: EnumWeChatPayApplymentState; /** 申请状态描述 */ applyment_state_msg?: string; /** 驳回原因详情,各项资料的审核情况,当申请状态为APPLYMENT_STATE_REJECTED时才返回 */ audit_detail?: WeChatPayGetApplymentResponseAuditDetail[]; settlementVerifyResult?: EnumWeChatPaySettlementVerifyResult; /** 验证失败原因,验证成功时为空 */ settlementVerifyFailReason?: string; modifySettlementVerifyResult?: EnumWeChatPaySettlementModifyVerifyResult; /** 修改结算账户审核驳回原因,审核成功时为空 */ modifySettlementVerifyFailReason?: string; /** 修改结算账户审核结果更新时间,遵循rfc3339标准格式,例如:2015-05-20T13:29:35+08:00 */ modifySettlementVerifyFinishTime?: string; /** 余额 */ balance?: number; /** 业务申请编号 1、只能由数字、字母或下划线组成,建议前缀为服务商商户号; 2、服务商自定义的唯一编号; 3、每个编号对应一个申请单,每个申请单审核通过后会生成一个微信支付商户号。 */ business_code: string; contact_info: WeChatPayApplymentBodyParametersContactInfo; subject_info: WeChatPayApplymentBodyParametersSubjectInfo; business_info: WeChatPayApplymentBodyParametersBusinessInfo; settlement_info: WeChatPayApplymentBodyParametersSettlementInfo; addition_info?: WeChatPayApplymentBodyParametersAdditionInfo; } interface GetEnterpriseWeChatPayWalletQueryResultBankAccountInfo { /** 银行别名编码 银行别名的编码,查询支行接口仅支持需要填写支行的银行别名编码 */ bank_alias_code?: string; /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表 */ province_code?: number; /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表 */ city_code?: number; /** 银行别名,用于在前端展示全量银行名称供用户选择,如工商银行、深圳前海微众银行等共计4000多家银行的别名名称 */ bank_alias?: string; /** 开户银行编码,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为 1099 */ account_bank_code?: number; /** 是否需要填写支行,该开户银行是否需要传入对应的支行,需要请使用银行别名编码和城市编码查询选择具体的支行并传入(默认值为true) 如需查询城市编码,需要通过查询城市列表接口获取相应的城市编码信息 */ need_bank_branch?: boolean; bank_account_type: EnumWeChatPayApplymentBankAccountType; /** 开户名称 1、选择“经营者个人银行卡”时,开户名称必须与“经营者证件姓名”一致; 2、选择“对公银行账户”时,开户名称必须与营业执照上的“商户名称”一致; 3、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_name: string; /** 开户银行 对私银行调用:查询支持个人业务的银行列表API 对公银行调用:查询支持对公业务的银行列表API */ account_bank: string; /** 开户银行省市编码 该字段即将下线处理,无需传入 至少精确到市,详细参见省市区编号对照表 注:仅当省市区编号对照表中无对应的省市区编号时,可向上取该银行对应市级编号或省级编号。 */ bank_address_code?: string; /** 开户银行银行号 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_branch_id?: string; /** 开户银行全称(含支行) 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_name?: string; /** 银行账号 1、数字,长度遵循系统支持的卡号长度要求表; 2、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_number: string; } interface GetExceptionLogsQuery { @@ -4040,10 +4884,10 @@ pageModel?: PagedListQueryPageModel; } interface GetOperationUserInfosQuery { /** 关键字 */ keywords?: string; pageModel?: PagedListQueryPageModel; interface GetOperationUserInfosQueryResult { pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetOperationUserInfosQueryResultItem[]; } interface GetOperationUserInfosQueryResultItem { @@ -4089,9 +4933,22 @@ beginTime?: string; /** 任务结束时间 */ endTime?: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle?: EnumSettlementCycle; /** 福利 */ benefits?: GetTaskInfoQueryResultBenefit[]; @@ -4126,9 +4983,22 @@ beginTime?: string; /** 任务结束时间 */ endTime?: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle?: EnumSettlementCycle; /** 福利 */ benefits?: GetTaskInfoQueryResultBenefit[]; @@ -4156,9 +5026,22 @@ beginTime?: string; /** 任务结束时间 */ endTime?: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle?: EnumSettlementCycle; /** 福利 */ benefits?: GetTaskInfoQueryResultBenefit[]; @@ -4418,6 +5301,8 @@ receiveAccount?: string; /** 收款人名称 */ receiveName?: string; /** 收款人身份证号 */ receiveIdentity?: string; /** 收款人开户行 */ receiveBank?: string; /** 收款人支行 */ @@ -4442,6 +5327,9 @@ } interface GetPersonalUserTransactionsQuery { /** 关键字 */ keywords?: string; transactionStatus?: EnumWalletTransactionStatus; /** 创建时间-起始 */ createdTimeStart?: string; /** 创建时间-截止 */ @@ -4449,6 +5337,8 @@ type?: EnumUserWalletTransactionType; /** 用户Id */ userId?: string; /** 企业钱包Id */ enterpriseWalletId?: string; pageModel?: PagedListQueryPageModel; } @@ -4463,6 +5353,8 @@ /** 收支Id */ id?: string; type?: EnumUserWalletTransactionType; /** 订单号 */ code?: string; /** 标题 */ title?: string; /** 金额 */ @@ -4492,11 +5384,20 @@ receiveAccount?: string; /** 收款人名称 */ receiveName?: string; /** 手机号 */ receiveContactPhoneNumber?: string; /** 收款人身份证号 */ receiveIdentity?: string; transactionStatus?: EnumWalletTransactionStatus; /** 用途 */ purpose?: string; /** 创建时间 */ /** 创建时间/提现 */ createdTime?: string; /** 交易时间 */ /** 发放时间 */ sendTime?: string; /** 电子收据下载链接 */ ereceiptDownloadOssUrl?: string; /** 交易时间/到账时间 */ transDate?: string; } @@ -4505,6 +5406,23 @@ sumIncome?: number; /** 总提现 */ sumWithdraw?: number; enterpriseWallet?: GetPersonalUserTransactionsQueryResultObjectDataEnterpriseWallet; } interface GetPersonalUserTransactionsQueryResultObjectDataEnterpriseWallet { /** 钱包Id */ id?: string; /** 企业全称 */ enterpriseName?: string; /** 统一社会信用代码 */ societyCreditCode?: string; access?: EnumEnterpriseWalletAccess; /** 所属银行 */ bank?: string; /** 账号 */ identity?: string; /** 余额 */ balance?: number; } interface GetPersonalUserWalletBalancesQuery { @@ -4721,6 +5639,7 @@ interface GetSettlementTasksQuery { /** 关键字 */ keywords?: string; paymentStatus?: GetSettlementTasksQueryPaymentStatus; settlementOrderStatus?: EnumTaskSettlementOrderStatus; settlementStatus?: EnumTaskSettlementStatus; checkReceiveStatus?: EnumTaskCheckReceiveStatus; @@ -4731,7 +5650,17 @@ pageModel?: PagedListQueryPageModel; } enum GetSettlementTasksQueryPaymentStatus { /**待审核 */ WaitAudit = 10, /**已审核 */ CompletedAudit = 20, /**已发放 */ CompletedRelease = 30, } interface GetSettlementTasksQueryResult { objectData?: GetSettlementTasksQueryResultObjectData; pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetSettlementTasksQueryResultItem[]; @@ -4763,6 +5692,16 @@ settlementRemark?: string; /** 结算人数 */ settlementUserCount?: number; auditStatus?: EnumTaskSettlementAuditStatus; } interface GetSettlementTasksQueryResultObjectData { /** 待审核 */ waitAuditCount?: number; /** 已审核 */ completedAuditCount?: number; /** 已发放 */ completedReleaseCount?: number; } interface GetSettlementTaskUsersQueryResult { @@ -4774,10 +5713,22 @@ interface GetSettlementTaskUsersQueryResultDetail { /** 结算订单Id */ id?: string; /** 校验验收起始日期 */ checkReceiveBeginDate?: string; /** 校验验收截止日期 */ checkReceiveEndDate?: string; /** 任务名称 */ name?: string; /** 任务单号 */ code?: string; billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementAccess?: EnumEnterpriseWalletAccess; settlementOrderStatus?: EnumTaskSettlementOrderStatus; /** 结算单名称 */ settlementOrderName?: string; @@ -4790,6 +5741,13 @@ settlementStatus?: EnumTaskSettlementStatus; /** 结算时间 */ settlementTime?: string; auditStatus?: EnumTaskSettlementAuditStatus; /** 审核备注 */ auditRemark?: string; /** 审核时间 */ auditTime?: string; /** 审核操作人 */ auditOperator?: string; /** 备注 */ settlementRemark?: string; } @@ -4797,14 +5755,26 @@ interface GetSettlementTaskUsersQueryResultItem { /** 结算名单Id */ id?: string; /** 任务人员Id */ taskInfoUserId?: string; /** 用户信息Id */ userId?: string; /** 头像 */ avatar?: string; /** 姓名 */ name?: string; /** 身份证号 */ identity?: string; /** 手机号 */ contactPhoneNumber?: string; gender?: EnumUserGender; /** 年龄 */ age?: number; /** 是否实名 */ isReal?: boolean; realMethod?: EnumUserRealMethod; /** 累计工时 */ totalWorkHours?: number; /** 所属银行 */ bank?: string; /** 开户支行名称 */ @@ -4908,6 +5878,8 @@ isDisabled?: boolean; /** 排序 */ sort?: number; /** 签名名称 */ signName?: string; } interface GetTaskEnterpriseQueryResult { @@ -4953,6 +5925,10 @@ billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle?: EnumSettlementCycle; /** 结算日期 */ settlementDate?: number; @@ -4985,6 +5961,15 @@ beginTime?: string; /** 任务结束时间 */ endTime?: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; /** 创建时间 */ createdTime?: string; /** 是否已收藏 */ @@ -5077,6 +6062,10 @@ billingMethod?: EnumBillingMethod; /** 服务费 */ serviceFee?: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle?: EnumSettlementCycle; /** 福利 */ benefits?: GetTaskInfoQueryResultBenefit[]; @@ -5106,6 +6095,15 @@ beginTime?: string; /** 任务结束时间 */ endTime?: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; releaseStatus?: EnumTaskReleaseStatus; checkReceiveStatus?: EnumTaskCheckReceiveStatus; recommendStatus?: EnumTaskRecommendStatus; @@ -5276,6 +6274,29 @@ isChecked?: boolean; } interface GetUserQueryResult { /** 用户Id */ id?: string; /** 姓名 */ name?: string; /** 用户名 */ userName?: string; /** 手机号 */ phoneNumber?: string; /** 角色Id */ roles?: GetUserQueryResultRole[]; status?: EnumUserStatus; /** 备注 */ remark?: string; } interface GetUserQueryResultRole { /** 角色Id */ id?: string; /** 名称 */ name?: string; } interface GetUserResumeCredentialQueryResult { /** 资格证书Id */ id?: string; @@ -5319,6 +6340,8 @@ weight?: number; /** 生活照 */ photos?: string[]; /** 生活照 */ videos?: string[]; } type GetUserResumeJobSeekingQuery = Record<string, any>; @@ -5418,6 +6441,8 @@ weight?: number; /** 生活照 */ photos?: string[]; /** 生活照 */ videos?: string[]; /** 经历 */ taskInfoUsers?: GetUserResumeQueryResultExperience[]; /** 是否已收藏 */ @@ -5536,6 +6561,19 @@ workExperience?: string; } interface GetUsersQuery { /** 关键字 */ keywords?: string; pageModel?: PagedListQueryPageModel; } type GetWxmpSettingsQuery = Record<string, any>; interface GetWxmpSettingsQueryResult { /** 隐藏支付宝 */ hiddenAlipay?: boolean; } interface ImportEnterpriseEmployeesCommand { /** Excel地址 */ excelUrl?: string; @@ -5609,6 +6647,8 @@ bankBranch?: string; /** 收款账户 */ receiveAccount?: string; /** 累计工时 */ totalWorkHours?: number; /** 结算金额 */ settlementAmount?: number; /** 实发金额 */ @@ -5654,6 +6694,80 @@ signUrl?: string; } interface OpenEnterpriseWeChatPayWalletCommand { /** 企业Id */ enterpriseId?: string; /** 业务申请编号 1、只能由数字、字母或下划线组成,建议前缀为服务商商户号; 2、服务商自定义的唯一编号; 3、每个编号对应一个申请单,每个申请单审核通过后会生成一个微信支付商户号。 */ business_code: string; bank_account_info: OpenEnterpriseWeChatPayWalletCommandBankAccountInfo; contact_info: WeChatPayApplymentBodyParametersContactInfo; subject_info: WeChatPayApplymentBodyParametersSubjectInfo; business_info: WeChatPayApplymentBodyParametersBusinessInfo; settlement_info: WeChatPayApplymentBodyParametersSettlementInfo; addition_info?: WeChatPayApplymentBodyParametersAdditionInfo; } interface OpenEnterpriseWeChatPayWalletCommandBankAccountInfo { /** 银行别名编码 银行别名的编码,查询支行接口仅支持需要填写支行的银行别名编码 */ bank_alias_code?: string; /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表 */ province_code?: number; /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表 */ city_code?: number; /** 银行别名,用于在前端展示全量银行名称供用户选择,如工商银行、深圳前海微众银行等共计4000多家银行的别名名称 */ bank_alias?: string; /** 开户银行编码,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为 1099 */ account_bank_code?: number; /** 是否需要填写支行,该开户银行是否需要传入对应的支行,需要请使用银行别名编码和城市编码查询选择具体的支行并传入(默认值为true) 如需查询城市编码,需要通过查询城市列表接口获取相应的城市编码信息 */ need_bank_branch?: boolean; bank_account_type: EnumWeChatPayApplymentBankAccountType; /** 开户名称 1、选择“经营者个人银行卡”时,开户名称必须与“经营者证件姓名”一致; 2、选择“对公银行账户”时,开户名称必须与营业执照上的“商户名称”一致; 3、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_name: string; /** 开户银行 对私银行调用:查询支持个人业务的银行列表API 对公银行调用:查询支持对公业务的银行列表API */ account_bank: string; /** 开户银行省市编码 该字段即将下线处理,无需传入 至少精确到市,详细参见省市区编号对照表 注:仅当省市区编号对照表中无对应的省市区编号时,可向上取该银行对应市级编号或省级编号。 */ bank_address_code?: string; /** 开户银行银行号 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_branch_id?: string; /** 开户银行全称(含支行) 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_name?: string; /** 银行账号 1、数字,长度遵循系统支持的卡号长度要求表; 2、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_number: string; } interface OpenEnterpriseWeChatPayWalletCommandResult { /** 钱包Id */ id?: string; /** 超级管理员签约链接 1、超级管理员用微信扫码,关注“微信支付商家助手”公众号后,公众号将自动发送签约消息;超管需点击消息,根据指引完成核对联系信息、账户验证、签约等操作; 2、超管完成核对联系信息,后续申请单进度可通过公众号自动通知超级管理员 */ sign_url?: string; applyment_state?: EnumWeChatPayApplymentState; /** 申请状态描述 */ applyment_state_msg?: string; /** 驳回原因详情,各项资料的审核情况,当申请状态为APPLYMENT_STATE_REJECTED时才返回 */ audit_detail?: WeChatPayGetApplymentResponseAuditDetail[]; } interface PagedListQueryPageModel { /** 行数 */ rows?: number; @@ -5685,12 +6799,6 @@ pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetEnterprisesQueryResultItem[]; } interface PagedListQueryResultGetOperationUserInfosQueryResultItem { pageModel?: PagedListQueryResultPageModel; /** 数据 */ data?: GetOperationUserInfosQueryResultItem[]; } interface PagedListQueryResultGetRolesQueryResultItem { @@ -5811,6 +6919,20 @@ interface ResendResourceCommand { /** 资源日志Id */ id?: string; } interface ResetUserOperatorPasswordsCommand { /** Id */ ids?: string[]; /** 操作密码 */ operatorPassword?: string; } interface ResetUserPasswordsCommand { /** Id */ ids?: string[]; /** 密码 */ password?: string; } interface RevokeTaskSettlementOrderCommand { @@ -6159,6 +7281,8 @@ isDisabled?: boolean; /** 排序 */ sort?: number; /** 签名名称 */ signName?: string; } interface SaveTaskInfoCommand { @@ -6167,6 +7291,10 @@ billingMethod: EnumBillingMethod; /** 服务费 */ serviceFee: number; /** 核定工时 */ verifyWorkHours?: number; /** 超时服务费 */ timeoutServiceFee?: number; settlementCycle: EnumSettlementCycle; /** 结算日期 */ settlementDate: number; @@ -6186,7 +7314,7 @@ /** 任务地点名称 */ addressName: string; /** 任务地点详细地址 */ addressDetail: string; addressDetail?: string; /** 经度 */ longitude?: number; /** 纬度 */ @@ -6195,6 +7323,35 @@ beginTime: string; /** 任务结束时间 */ endTime: string; /** 报名开始时间 */ applyBeginTime?: string; /** 报名结束时间 */ applyEndTime?: string; checkReceiveMethod?: EnumTaskCheckReceiveMethod; paymentMethod?: EnumTaskPaymentMethod; settlementAccess?: EnumEnterpriseWalletAccess; /** 任务描述 */ description?: string; /** Id */ id?: string; } interface SaveUserCommand { /** 姓名 */ name?: string; /** 用户名 */ userName?: string; /** 手机号 */ phoneNumber?: string; /** 密码(选填 填了就改不填就不改) */ password?: string; /** 操作密码(选填 填了就改不填就不改) */ operatorPassword?: string; /** 角色Id */ roleIds?: string[]; status?: EnumUserStatus; /** 备注 */ remark?: string; /** Id */ id?: string; } @@ -6227,6 +7384,8 @@ weight?: number; /** 生活照 */ photos?: string[]; /** 个人视频 */ videos?: string[]; } interface SaveUserResumeJobSeekingCommand { @@ -6258,6 +7417,22 @@ workSeniority?: string; /** 工作经验 */ workExperience?: string; } interface SaveUserWalletWithdrawCommand { access?: EnumUserBankCardAccess; /** 金额 */ amount?: number; /** 收款人开户行 */ receiveBank?: string; /** 收款人支行 */ receiveBankBranch?: string; /** 收款人姓名 */ receiveName?: string; /** 收款人身份证号 */ receiveIdentity?: string; /** 收款账户 */ receiveAccount?: string; } interface SelectOptionGuidGetDictionaryCategorySelectQueryOption { @@ -6424,7 +7599,57 @@ status?: EnumUserStatus; } type SmsChengLiYeNotifyCommand = Record<string, any>; interface SmsAliyunNotifyCommandItem { /** 转发给运营商的时间。 */ send_time?: string; /** 收到运营商回执的时间。 */ report_time?: string; /** 是否发送成功。 */ success?: boolean; /** 错误码信息描述。 */ err_msg?: string; /** 错误码。 */ err_code?: string; /** 短信接收号码。 */ phone_number?: string; /** 短信长度。 */ sms_size?: string; /** 发送回执ID,即发送流水号。 */ biz_id?: string; /** 调用发送短信SendSms接口时传的outId。 */ out_id?: string; } interface SmsAliyunNotifyCommandResult { /** 回调码 */ code?: number; /** 消息 */ msg?: string; } interface SmsChengLiYeNotifyCommand { /** 状态码 */ resultCode?: string; /** 状态码 */ msgReports?: SmsChengLiYeNotifyCommandMsgReport[]; } interface SmsChengLiYeNotifyCommandMsgReport { /** 用户名。提交时的用户名 */ userName?: string; /** 提交返回的msgid */ msgid?: number; /** 提交返回的seqid */ seqid?: string; /** 手机号码 */ mobile?: string; /** 手机号码发送状态码 */ status?: string; /** 状态码描述 */ statusDes?: string; /** 报告返回时间 */ doneTime?: string; } interface SmsLoginCommand { /** 手机号码 */ @@ -6452,7 +7677,6 @@ interface SureTaskSettlementCommand { /** 任务Id */ taskInfoId?: string; settlementAccess?: EnumEnterpriseWalletAccess; } type SyncDatabaseCommand = Record<string, any>; @@ -6580,6 +7804,62 @@ remark?: string; } interface UpdateEnterpriseWeChatPayWalletBankAccountInfoCommand { /** 企业Id */ enterpriseId?: string; /** 银行别名编码 银行别名的编码,查询支行接口仅支持需要填写支行的银行别名编码 */ bank_alias_code?: string; /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表 */ province_code?: number; /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表 */ city_code?: number; /** 银行别名,用于在前端展示全量银行名称供用户选择,如工商银行、深圳前海微众银行等共计4000多家银行的别名名称 */ bank_alias?: string; /** 开户银行编码,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为 1099 */ account_bank_code?: number; /** 是否需要填写支行,该开户银行是否需要传入对应的支行,需要请使用银行别名编码和城市编码查询选择具体的支行并传入(默认值为true) 如需查询城市编码,需要通过查询城市列表接口获取相应的城市编码信息 */ need_bank_branch?: boolean; bank_account_type: EnumWeChatPayApplymentBankAccountType; /** 开户名称 1、选择“经营者个人银行卡”时,开户名称必须与“经营者证件姓名”一致; 2、选择“对公银行账户”时,开户名称必须与营业执照上的“商户名称”一致; 3、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_name: string; /** 开户银行 对私银行调用:查询支持个人业务的银行列表API 对公银行调用:查询支持对公业务的银行列表API */ account_bank: string; /** 开户银行省市编码 该字段即将下线处理,无需传入 至少精确到市,详细参见省市区编号对照表 注:仅当省市区编号对照表中无对应的省市区编号时,可向上取该银行对应市级编号或省级编号。 */ bank_address_code?: string; /** 开户银行银行号 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_branch_id?: string; /** 开户银行全称(含支行) 1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一; 2、详细需调用查询支行列表API查看查询结果。 */ bank_name?: string; /** 银行账号 1、数字,长度遵循系统支持的卡号长度要求表; 2、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ account_number: string; } interface UpdateEnterpriseWeChatPayWalletBankAccountInfoCommandResult { /** 钱包Id */ id?: string; modifySettlementVerifyResult?: EnumWeChatPaySettlementModifyVerifyResult; /** 修改结算账户审核驳回原因,审核成功时为空 */ modifySettlementVerifyFailReason?: string; /** 修改结算账户审核结果更新时间,遵循rfc3339标准格式,例如:2015-05-20T13:29:35+08:00 */ modifySettlementVerifyFinishTime?: string; } interface UpdatePhoneNumberVerifyCodeCommand { /** 手机号码 */ phoneNumber: string; @@ -6590,6 +7870,613 @@ url?: string; } interface WeChatPayApplymentBodyParametersAdditionInfo { /** 法定代表人开户承诺函 1、请上传法定代表人或负责人亲笔签署的开户承诺函扫描件(下载模板)。亲笔签名承诺函内容清晰可见,不得有涂污,破损,字迹不清晰现象; 2、请填写通过图片上传API预先上传图片生成好的MediaID 。 */ legal_person_commitment?: string; /** 法定代表人开户意愿视频 1、建议法定代表人按如下话术录制“法定代表人开户意愿视频”: 我是#公司全称#的法定代表人(或负责人),特此证明本公司申请的商户号为我司真实意愿开立且用于XX业务(或XX服务)。我司现有业务符合法律法规及腾讯的相关规定。 2、支持上传20M内的视频,格式可为avi、wmv、mpeg、mp4、mov、mkv、flv、f4v、m4v、rmvb; 3、请填写通过视频上传API预先上传视频生成好的MediaID 。 */ legal_person_video?: string; /** 补充材料 1、最多可上传5张照片; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ business_addition_pics?: string[]; /** 补充说明 512字以内 */ business_addition_msg?: string; } interface WeChatPayApplymentBodyParametersBusinessInfo { /** 商户简称 在支付完成页向买家展示,需与微信经营类目相关 1、请输入1-64个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、仅支持utf-8格式; 6、简称要求 (1)不支持单纯以人名来命名,若为个体户经营,可用“个体户+经营者名称”或“经营者名称+业务”命名,如“个体户张三”或“张三餐饮店”; (2)不支持无实际意义的文案,如“XX特约商户”、“800”、“XX客服电话XXX”。 */ merchant_shortname: string; /** 客服电话 将在交易记录中向买家展示,请确保电话畅通以便平台回拨确认 1、前后不能有空格、制表符、换行符; 2、需满足以下任一条件; 11位数字的手机号码; 5-20位数字、连字符“-”、加号“+”。 */ service_phone: string; sales_info: WeChatPayApplymentBodyParametersBusinessInfoSalesInfo; } interface WeChatPayApplymentBodyParametersBusinessInfoSalesInfo { /** 经营场景类型 1、请勾选实际售卖商品/提供服务场景(至少一项),以便为你开通需要的支付权限; 2、建议只勾选目前必须的场景,以便尽快通过入驻审核,其他支付权限可在入驻后再根据实际需要发起申请 */ sales_scenes_type: EnumWeChatPayApplymentSalesScenesType[]; biz_store_info?: WeChatPayApplymentBodyParametersBusinessInfoSalesInfoBizStoreInfo; mp_info?: WeChatPayApplymentBodyParametersBusinessInfoSalesInfoMpInfo; mini_program_info?: WeChatPayApplymentBodyParametersBusinessInfoSalesInfoMiniProgramInfo; app_info?: WeChatPayApplymentBodyParametersBusinessInfoSalesInfoAppInfo; web_info?: WeChatPayApplymentBodyParametersBusinessInfoSalesInfoWebInfo; wework_info?: WeChatPayApplymentBodyParametersBusinessInfoSalesInfoWeworkInfo; } interface WeChatPayApplymentBodyParametersBusinessInfoSalesInfoAppInfo { /** 服务商应用AppID 1、服务商应用AppID与商家应用AppID,二选一必填; 2、可填写当前服务商商户号已绑定的应用AppID。 */ app_appid?: string; /** 商家应用AppID 1、服务商应用AppID与商家应用AppID,二选一必填; 2、可填写与商家主体一致且已认证的应用AppID,需是已认证的App; 3、审核通过后,系统将发起特约商家商户号与该AppID的绑定(即配置为sub_appid),服务商随后可在发起支付时选择传入该AppID,以完成支付,并获取sub_openid用于数据统计,营销等业务场景。 */ app_sub_appid?: string; /** App截图 1、请提供APP首页截图、尾页截图、应用内截图、支付页截图各1张; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ app_pics: string[]; } interface WeChatPayApplymentBodyParametersBusinessInfoSalesInfoBizStoreInfo { /** 线下场所名称 请填写门店名称 1、长度为1-50个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、仅支持utf-8格式。 */ biz_store_name: string; /** 线下场所省市编码 1、只能由数字组成; 2、详细参见微信支付提供的省市对照表。 */ biz_address_code: string; /** 线下场所地址 请填写详细的经营场所信息,如有多个场所,选择一个主要场所填写即可。 1、长度为4-512个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、仅支持utf-8格式。 */ biz_store_address: string; /** 线下场所门头照片 1、请上传门头正面照片(要求门店招牌、门框完整、清晰、可辨识);若为停车场等无固定门头照片的经营场所,可上传岗亭/出入闸口。具体参考【指引文档】; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ store_entrance_pic: string[]; /** 线下场所内部照片 1、请上传门店内部环境照片(可辨识经营内容)。若为停车场等无固定门头的经营场所,可上传停车场内部照片。具体参考【指引文档】; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ indoor_pic: string[]; /** 线下场所对应的商家AppID 1、可填写与商家主体一致且已认证的服务号或公众号、小程序、APP的AppID,其中服务号或公众号AppID需是已认证的服务号、政府或媒体类型的公众号; 2、审核通过后,系统将额外为商家开通付款码支付、JSAPI支付的自有交易权限,并完成商家商户号与该AppID的绑定。 */ biz_sub_appid?: string; } interface WeChatPayApplymentBodyParametersBusinessInfoSalesInfoMiniProgramInfo { /** 服务商小程序AppID 1、服务商小程序AppID与商家小程序AppID,二选一必填; 2、可填写当前服务商商户号已绑定的小程序AppID。 */ mini_program_appid?: string; /** 商家小程序AppID 1、服务商小程序AppID与商家小程序AppID,二选一必填; 2、请填写已认证的小程序AppID; 3、完成进件后,系统发起特约商户号与该AppID的绑定(即配置为sub_appid可在发起支付时传入) (1)若AppID主体与商家主体/服务商主体一致,则直接完成绑定; (2)若AppID主体与商家主体/服务商主体不一致,则商户签约时显示《联合营运承诺函》,并且AppID的管理员需登录公众平台确认绑定意愿。 */ mini_program_sub_appid?: string; /** 小程序截图 1、请提供展示商品/服务的页面截图/设计稿(最多5张),若小程序未建设完善或未上线 请务必提供; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ mini_program_pics?: string[]; } interface WeChatPayApplymentBodyParametersBusinessInfoSalesInfoMpInfo { /** 服务商服务号或公众号AppID 1、服务商服务号或公众号AppID、商家服务号或公众号AppID,二选一必填; 2、可填写当前服务商商户号已绑定的服务号或公众号AppID。 */ mp_appid?: string; /** 商家服务号或公众号AppID 1、服务商服务号或公众号AppID、商家服务号或公众号AppID,二选一必填; 2、可填写与商家主体一致且已认证的服务号或公众号AppID,需是已认证的服务号、政府或媒体类型的公众号; 3、审核通过后,系统将发起特约商家商户号与该AppID的绑定(即配置为sub_appid),服务商随后可在发起支付时选择传入该appid,以完成支付,并获取sub_openid用于数据统计,营销等业务场景。 */ mp_sub_appid?: string; /** 服务号或公众号页面截图 1、请提供展示商品/服务的页面截图/设计稿(最多5张),若服务号或公众号未建设完善或未上线请务必提供; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ mp_pics: string[]; } interface WeChatPayApplymentBodyParametersBusinessInfoSalesInfoWebInfo { /** 互联网网站域名 1、如为PC端商城、智能终端等场景,可上传官网链接; 2、网站域名需ICP备案,若备案主体与申请主体不同,请上传加盖公章的网站授权函。 */ domain: string; /** 网站授权函 1、若备案主体与申请主体不同,请务必上传加盖公章的网站授权函.doc; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ web_authorisation?: string; /** 互联网网站对应的商家AppID 1、可填写已认证的服务号或公众号、小程序、APP的AppID,其中服务号或公众号AppID需是已认证的服务号、政府或媒体类型的公众号; 2、完成进件后,系统发起特约商户号与该AppID的绑定(即配置为sub_appid,可在发起支付时传入) (1)若APPID主体与商家主体一致,则直接完成绑定; (2)若APPID主体与商家主体不一致,则商户签约时显示《联合营运承诺函》,并且 AppID的管理员需登录公众平台确认绑定意愿;( 暂不支持绑定异主体的应用APPID)。 */ web_appid?: string; } interface WeChatPayApplymentBodyParametersBusinessInfoSalesInfoWeworkInfo { /** 商家企业微信CorpID 1、可填写与商家主体一致且已认证的企业微信CorpID; 2、审核通过后,系统将为商家开通企业微信专区的自有交易权限,并完成商家商户号与该AppID的绑定,商家可自行发起交易。 */ sub_corp_id: string; /** 企业微信页面截图 1、最多可上传5张照片; 2、请填写通过图片上传API预先上传图片生成好的MediaID。 */ wework_pics: string[]; } interface WeChatPayApplymentBodyParametersContactInfo { contact_type: EnumWeChatPayApplymentContactType; /** 超级管理员姓名 1、长度为2-100个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符。 该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ contact_name: string; contact_id_doc_type?: EnumWeChatPayApplymentIdDocType; /** 超级管理员身份证件号码 1、当超级管理员类型是经办人时,请上传超级管理员证件号码; 2、可传身份证、来往内地通行证、来往大陆通行证、护照等证件号码,号码规范如下: 身份证(限中国大陆居民):17位数字+1位数字|X; 护照(限境外人士):4-15位 数字|字母|连字符; 中国香港居民--来往内地通行证:H/h开头+8或10位数字/字母; 中国澳门居民--来往内地通行证:M/m开头+8或10位数字/字母; 中国台湾居民--来往大陆通行证:8位数字或10位数字; 外国人居留证:15位 数字|字母; 台湾居民居住证/港澳居民居住证:17位数字+1位数字|X; 3、超级管理员签约时,校验微信号绑定的银行卡实名信息,是否与该证件号码一致; 4、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ contact_id_number?: string; /** 超级管理员证件正面照片 1、当超级管理员类型是经办人时,请上传超级管理员证件的正面照片; 2、若证件类型为身份证,请上传人像面照片; 3、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 4、请上传彩色照片或彩色扫描件或复印件(需加盖公章鲜章),可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 5、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ contact_id_doc_copy?: string; /** 超级管理员证件反面照片 1、当超级管理员类型是经办人时,请上传超级管理员证件的反面照片; 2、若证件类型为护照,无需上传反面照片; 3、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 4、请上传彩色照片或彩色扫描件,复印件需加盖公章鲜章,可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 5、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ contact_id_doc_copy_back?: string; /** 超级管理员证件有效期开始时间 1、当超级管理员类型是经办人时,请上传证件有效期开始时间; 2、请按照示例值填写,日期格式应满足合法的YYYY-MM-DD格式; 3、开始时间不能小于1900-01-01,开始时间不能大于等于当前日期。 */ contact_period_begin?: string; /** 超级管理员证件有效期结束时间 1、当超级管理员类型是经办人时,请上传证件有效期结束时间; 2、请按照示例值填写,日期格式应满足合法的YYYY-MM-DD格式,若证件有效期为长期,请填写:长期; 3、结束时间大于开始时间。 */ contact_period_end?: string; /** 业务办理授权函 该字段即将下线处理,无需传入 1、当超级管理员类型是经办人时,请上传业务办理授权函; 2、请参照示例图打印业务办理授权函,全部信息需打印,不支持手写商户信息,并加盖公章; 3、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ business_authorization_letter?: string; /** 超级管理员微信OpenID 该字段选填,若上传为超级管理员签约时,会校验微信号是否与该微信OpenID一致 */ openid?: string; /** 联系手机 1、前后不能有空格、制表符、换行符; 2、需满足以下任一条件: 11位数字的手机号码; 5-20位数字、连字符“-”、加号“+”; 3、用于接收微信支付的重要管理信息及日常操作验证码; 4、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ mobile_phone: string; /** 联系邮箱 1、用于接收微信支付的开户邮件及日常业务通知; 2、需要带@,遵循邮箱格式校验 ,该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ contact_email: string; } interface WeChatPayApplymentBodyParametersSettlementInfo { /** 入驻结算规则ID 请选择结算规则ID,详细参见费率结算规则对照表 */ settlement_id: string; /** 所属行业 填写指定行业名称,详细参见费率结算规则对照表 */ qualification_type: string; /** 特殊资质图片 1、仅当商户选择了必需提交特殊资质的行业时,需要提供该项资料;若商户选择了无需特殊资质的行业,或未选择行业时,无需提交该项资料,详情查看《费率结算规则对照表》; 2、最多可上传5张照片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ qualifications?: string[]; /** 优惠费率活动ID 选择指定活动ID,如果商户有意向报名优惠费率活动,该字段必填。详细参见《优惠费率活动对照表》 */ activities_id?: string; /** 优惠费率活动值 根据优惠费率活动规则,由合作伙伴自定义填写,支持两个小数点,需在优惠费率活动ID指定费率范围内 (1)2023年7月17日-9月17日,各合作伙伴平台可选择只传入“活动费率值”,或分别传入“信用卡优惠活动费率值” 与 “非信用卡优惠活动费率值”,只传入“活动费率值”的情况下,平台将协助将申请单中的 “优惠活动费率值” 回填入新增的 “信用卡优惠活动费率值” 与 “非信用卡优惠活动费率值”中 ; (2)2023年9月18日起,平台将不再提供如上兼容能力,届时仅能分别传入“信用卡优惠活动费率值” 与 “非信用卡优惠活动费率值”,否则接口将会报错。为避免影响正常进件,请在兼容期间完成相关调整。 */ activities_rate?: string; /** 优惠费率活动补充材料 1、根据所选优惠费率活动,提供相关材料,详细参见《优惠费率活动对照表》; 2、最多可上传5张照片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ activities_additions?: string[]; /** 非信用卡活动费率值 用户支付方式为借记卡时收取的手续费费率: 1、若填写了优惠费率活动ID,则该字段必填; 2、仅能填入2位以内小数,且在优惠费率活动ID指定费率范围内。 */ debit_activities_rate?: string; /** 信用卡活动费率值 用户支付方式为信用卡时收取的手续费费率: 1、若填写了优惠费率活动ID,则该字段必填; 2、仅能填入2位以内小数,且在优惠费率活动ID指定费率范围内。 */ credit_activities_rate?: string; } interface WeChatPayApplymentBodyParametersSubjectInfo { subject_type: EnumWeChatPayApplymentSubjectType; /** 是否是金融机构 选填,请根据申请主体的实际情况填写,可参考选择金融机构指引: 1、若商户主体是金融机构,则填写:true; 2、若商户主体不是金融机构,则填写:false。 若未传入将默认填写:false。 */ finance_institution?: boolean; business_license_info?: WeChatPayApplymentBodyParametersSubjectInfoBusinessLicenseInfo; certificate_info?: WeChatPayApplymentBodyParametersSubjectInfoCertificateInfo; finance_institution_info?: WeChatPayApplymentBodyParametersSubjectInfoFinanceInstitutionInfo; identity_info: WeChatPayApplymentBodyParametersSubjectInfoIdentityInfo; /** 最终受益人信息列表(UBO) 1、主体类型个体户/社会组织/政府机关/事业单位时,无需填写 2、主体类型为企业时,按照下述要求填写 1)若经营者/法定代表人不是最终受益所有人,则需提填写受益所有人信息,最多上传4个。 2)若经营者/法定代表人是最终受益所有人之一,可在此填写其他受益所有人信息,最多上传3个。 根据国家相关法律法规,需要提供公司受益所有人信息,受益所有人需符合至少以下条件之一: ▪️直接或者间接拥有超过25%公司股权或者表决权的自然人。 ▪️通过人事、财务等其他方式对公司进行控制的自然人。 ▪️公司的高级管理人员,包括公司的经理、副经理、财务负责人、上市公司董事会秘书和公司章程规定的其他人员。 */ ubo_info_list?: WeChatPayApplymentBodyParametersSubjectInfoUboInfo[]; } interface WeChatPayApplymentBodyParametersSubjectInfoBusinessLicenseInfo { /** 营业执照照片 1、照片应正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 2、上传彩色照片、彩色扫描件,复印件需加盖公章鲜章; 3、水印仅限于微信支付业务相关; 4、指引与示例可参考【指引文档】; 5、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ license_copy: string; /** 注册号/统一社会信用代码 1、主体为“个体工商户”时,请填写营业执照上的注册号/统一社会信用代码,格式需满足以下任一条件: -15位数字; -18位阿拉伯数字或大写英文字母(不得包含英文字母I/O/Z/S/V),并且以9开头。 2、主体为“企业”时,请填写营业执照上的注册号/统一社会信用代码,格式如下: -18位阿拉伯数字或大写英文字母(不得包含英文字母I/O/Z/S/V),并且以9开头。 */ license_number: string; /** 商户名称 1、长度为2-128个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、仅支持utf-8格式; 6、个体户证件为以下情况时,按照个体户XXX命名(XXX是营业执照经营人姓名):营业执照登记名称为空、仅含数字、仅含特殊字符、“无”、“无字号”; 7、个体户不能使用“企业”“公司”或“农民专业合作社”结尾。 */ merchant_name: string; /** 个体户经营者/法定代表人姓名 请填写营业执照的经营者/法定代表人姓名 1、长度为2-100个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符。 */ legal_person: string; /** 注册地址 建议填写营业执照的注册地址,若该字段未填写,系统将会查询国家工商信息填入。需注意若工商信息查询不到,则会被审核驳回。 1、长度为4-128个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、仅支持utf-8格式。 */ license_address?: string; /** 有效期限开始日期 建议填写营业执照的有效期限开始时间,若该字段未填写,系统将会查询国家工商信息填入。需注意若工商信息查询不到,则会被审核驳回。 1、日期格式应满足合法的YYYY-MM-DD格式; 2、开始时间不能小于1900-01-01; 3、开始时间不能大于等于当前日期。 */ period_begin?: string; /** 有效期限结束日期 建议填写营业执照的有效期限结束时间,若该字段未填写,系统将会查询国家工商信息填入。需注意若工商信息查询不到,则会被审核驳回。 1、日期格式应满足合法的YYYY-MM-DD格式或长期; 2、结束时间需大于开始时间。 */ period_end?: string; } interface WeChatPayApplymentBodyParametersSubjectInfoCertificateInfo { /** 登记证书照片 1、照片应正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 2、上传彩色照片、彩色扫描件,复印件需加盖公章鲜章; 3、水印仅限于微信支付业务相关; 4、指引与示例可参考【指引文档】; 5、请填写通过图片上传API预先上传图片生成好的MediaID。 */ cert_copy: string; cert_type: EnumWeChatPayApplymentCertType; /** 证书号 请输入与所选证书类型相匹配且符合国家标准规范的证书号,其中除政府证明文件外,需满足18位阿拉伯数字或大写英文字母(不得包含英文字母I/O/Z/S/V) */ cert_number: string; /** 商户名称 请填写登记证书上的商户名称 1、长度为2-128个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、仅支持utf-8格式。 */ merchant_name: string; /** 注册地址 请填写登记证书的注册地址 1、长度为4-128个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、仅支持utf-8格式。 */ company_address: string; /** 法定代表人 请填写登记证书上的法定代表人姓名 1、长度为2-100个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符。 */ legal_person: string; /** 有效期限开始日期 1、日期格式应满足合法的YYYY-MM-DD格式; 2、开始时间不能小于1900-01-01; 3、开始时间不能大于等于当前日期。 */ period_begin: string; /** 有效期限结束日期 1、日期格式应满足合法的YYYY-MM-DD格式或长期; 2、结束时间需大于开始时间。 */ period_end: string; /** 单位证明函照片 1、主体类型为政府机关、事业单位选传: (1)若上传,则审核通过后即可签约,无需汇款验证; (2)若未上传,则审核通过后,需汇款验证。 2、主体为个体户、企业、其他组织等,不需要上传本字段; 3、请参照示例图打印单位证明函,全部信息需打印,不支持手写商户信息,并加盖公章; 4、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ certificate_letter_copy?: string; } interface WeChatPayApplymentBodyParametersSubjectInfoFinanceInstitutionInfo { finance_type: EnumWeChatPayApplymentFinanceType; /** 金融机构许可证图片 1、照片应正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 2、上传彩色照片、彩色扫描件,复印件需加盖公章鲜章; 3、水印仅限于微信支付业务相关; 4、根据所属金融机构类型的许可证要求提供,详情查看金融机构指引; 5、请提供为“申请商家主体”所属的许可证,可授权使用总公司/分公司的特殊资质; 6、最多可上传5张照片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ finance_license_pics: string[]; } interface WeChatPayApplymentBodyParametersSubjectInfoIdentityInfo { id_holder_type?: EnumWeChatPayApplymentIdHolderType; id_doc_type?: EnumWeChatPayApplymentIdDocType; /** 法定代表人说明函 1、当证件持有人类型为经办人时,必须上传。其他情况,无需上传; 2、若因特殊情况,无法提供法定代表人证件时,请参照示例图打印法定代表人说明函,全部信息需打印,不支持手写商户信息,并加盖公章; 3、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ authorize_letter_copy?: string; id_card_info?: WeChatPayApplymentBodyParametersSubjectInfoIdentityInfoIdCardInfo; id_doc_info?: WeChatPayApplymentBodyParametersSubjectInfoIdentityInfoIdDocInfo; } interface WeChatPayApplymentBodyParametersSubjectInfoIdentityInfoIdCardInfo { /** 身份证人像面照片 1、请上传个体户经营者/法定代表人的身份证人像面照片; 2、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 3、请上传彩色照片or彩色扫描件,复印件需加盖公章鲜章,可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 4、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ id_card_copy: string; /** 身份证国徽面照片 1、请上传个体户经营者/法定代表人的身份证国徽面照片; 2、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 3、请上传彩色照片or彩色扫描件,复印件需加盖公章鲜章,可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 4、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ id_card_national: string; /** 身份证姓名 1、请填写个体户经营者/法定代表人对应身份证的姓名; 2、长度为2-100个字符; 3、前后不能有空格、制表符、换行符; 4、不能仅含数字、特殊字符; 5、仅能填写数字、英文字母、汉字及特殊字符; 6、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ id_card_name: string; /** 身份证号码 1、请填写个体户经营者/法定代表人对应身份证的号码; 2、17位数字+1位数字|X ,该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ id_card_number: string; /** 身份证居住地址 1、主体类型为企业时,需要填写。其他主体类型,无需上传; 2、请按照身份证住址填写,如广东省深圳市南山区xx路xx号xx室; 3、长度为4-128个字符; 4、前后不能有空格、制表符、换行符; 5、不能仅含数字、特殊字符; 6、仅能填写数字、英文字母、汉字及特殊字符; 7、仅支持utf-8格式; 8、 该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ id_card_address?: string; /** 身份证有效期开始时间 1、日期格式应满足合法的YYYY-MM-DD格式; 2、开始时间不能小于1900-01-01; 3、开始时间不能大于等于当前日期。 */ card_period_begin: string; /** 身份证有效期结束时间 1、日期格式应满足合法的YYYY-MM-DD格式或长期; 2、结束时间需大于开始时间。 */ card_period_end: string; } interface WeChatPayApplymentBodyParametersSubjectInfoIdentityInfoIdDocInfo { /** 证件正面照片 1、证件类型不为“身份证”时,上传证件正面照片; 2、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 3、请上传彩色照片or彩色扫描件,复印件需加盖公章鲜章,可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 4、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ id_doc_copy: string; /** 证件反面照片 1、若证件类型为往来通行证、外国人居留证、港澳居住证、台湾居住证时,上传证件反面照片; 2、若证件类型为护照,无需上传反面照片; 3、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 4、请上传彩色照片or彩色扫描件,复印件需加盖公章鲜章,可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 5、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ id_doc_copy_back?: string; /** 证件姓名 1、请填写经营者/法定代表人的证件姓名; 2、长度为2-100个字符; 3、前后不能有空格、制表符、换行符; 4、不能仅含数字、特殊字符; 5、仅能填写数字、英文字母、汉字及特殊字符; 6、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ id_doc_name: string; /** 证件号码 1、请填写经营者/法定代表人的证件号码: 护照(限境外人士):4-15位 数字|字母|连字符; 中国香港居民--来往内地通行证:H/h开头+8或10位数字/字母; 中国澳门居民--来往内地通行证:M/m开头+8或10位数字/字母; 中国台湾居民--来往大陆通行证:8位数字或10位数字; 外国人居留证:15位 数字|字母; 台湾居民居住证/港澳居民居住证:17位数字+1位数字|X; 2、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ id_doc_number: string; /** 证件居住地址 1、主体类型为企业时,需要填写。其他主体类型,无需上传; 2、请按照身份证住址填写,如广东省深圳市南山区xx路xx号xx室; 3、长度为4-128个字符; 4、前后不能有空格、制表符、换行符; 5、不能仅含数字、特殊字符; 6、仅能填写数字、英文字母、汉字及特殊字符; 7、仅支持utf-8格式; 8、 该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ id_doc_address?: string; /** 证件有效期开始时间 1、日期格式应满足合法的YYYY-MM-DD格式; 2、开始时间不能小于1900-01-01; 3、开始时间不能大于等于当前日期。 */ doc_period_begin: string; /** 证件有效期结束时间 1、日期格式应满足合法的YYYY-MM-DD格式或长期; 2、结束时间需大于开始时间。 */ doc_period_end: string; } interface WeChatPayApplymentBodyParametersSubjectInfoUboInfo { ubo_id_doc_type: EnumWeChatPayApplymentIdDocType; /** 证件正面照片 1、请上传受益人证件的正面照片; 2、若证件类型为身份证,请上传人像面照片; 3、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 4、请上传彩色照片or彩色扫描件,复印件需加盖公章鲜章,可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 5、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ ubo_id_doc_copy: string; /** 证件反面照片 1、请上传受益人证件的反面照片; 2、若证件类型为身份证,请上传国徽面照片; 3、若证件类型为护照,无需上传反面照片; 4、正面拍摄、清晰、四角完整、无反光或遮挡;不得翻拍、截图、镜像、PS; 5、请上传彩色照片or彩色扫描件,复印件需加盖公章鲜章,可添加“微信支付”相关水印(如微信支付认证),见【指引文档】; 6、可上传1张图片,请填写通过图片上传API预先上传图片生成好的MediaID。 */ ubo_id_doc_copy_back?: string; /** 证件姓名 1、长度为2-100个字符; 2、前后不能有空格、制表符、换行符; 3、不能仅含数字、特殊字符; 4、仅能填写数字、英文字母、汉字及特殊字符; 5、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ ubo_id_doc_name: string; /** 证件号码 1、可传身份证、来往内地通行证、来往大陆通行证、护照等证件号码,号码规范如下: 身份证(限中国大陆居民):17位数字+1位数字|X; 护照(限境外人士):4-15位 数字|字母|连字符; 中国香港居民--来往内地通行证:H/h开头+8或10位数字/字母; 中国澳门居民--来往内地通行证:M/m开头+8或10位数字/字母; 中国台湾居民--来往大陆通行证:8位数字或10位数字; 外国人居留证:15位 数字|字母; 台湾居民居住证/港澳居民居住证:17位数字+1位数字|X。 2、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ ubo_id_doc_number: string; /** 证件居住地址 1、请按照身份证住址填写,如广东省深圳市南山区xx路xx号xx室; 2、长度为4-128个字符; 3、前后不能有空格、制表符、换行符; 4、不能仅含数字、特殊字符; 5、仅能填写数字、英文字母、汉字及特殊字符; 6、仅支持utf-8格式; 7、 该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */ ubo_id_doc_address: string; /** 证件有效期开始时间 1、日期格式应满足合法的YYYY-MM-DD格式; 2、开始时间不能小于1900-01-01; 3、开始时间不能大于等于当前日期。 */ ubo_period_begin: string; /** 证件有效期结束时间 1、日期格式应满足合法的YYYY-MM-DD格式或长期; 2、结束时间需大于开始时间。 */ ubo_period_end: string; } interface WeChatPayArea { /** Id */ id?: string; /** 省市编码 */ areaCode?: string; /** 名称 */ areaName?: string; /** 地区名称 */ fullName?: string; /** 层级 */ leyer?: number; /** 父级省市编码 */ parentCode?: string; /** 子集 */ children?: WeChatPayArea[]; } interface WeChatPayGetApplymentResponseAuditDetail { /** 提交申请单的资料项字段名 */ field: string; /** 提交申请单的资料项字段名称 */ field_name: string; /** 提交资料项被驳回的原因 */ reject_reason: string; } interface WxmpLoginCommand { /** 用户登录凭证 */ code: string; packages/services/apiV2/user.ts
@@ -2,6 +2,36 @@ // @ts-ignore import { request } from '@/utils/request'; /** 生成操作令牌 POST /api/user/user/buildOperatorToken */ export async function buildOperatorToken( body: API.BuildOperatorTokenCommand, options?: API.RequestConfig ) { return request<API.BuildOperatorTokenCommandResult>('/api/user/user/buildOperatorToken', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 校验操作令牌 POST /api/user/user/checkOperatorToken */ export async function checkOperatorToken( body: API.CheckOperatorTokenCommand, options?: API.RequestConfig ) { return request<boolean>('/api/user/user/checkOperatorToken', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 删除用户银行卡信息 DELETE /api/user/user/deletePersonalUserBankCard */ export async function deletePersonalUserBankCard( body: API.DeletePersonalUserBankCardCommand, @@ -15,24 +45,6 @@ data: body, ...(options || {}), }); } /** 查询运营端用户分页列表数据 POST /api/user/user/getOperationUserInfos */ export async function getOperationUserInfos( body: API.GetOperationUserInfosQuery, options?: API.RequestConfig ) { return request<API.PagedListQueryResultGetOperationUserInfosQueryResultItem>( '/api/user/user/getOperationUserInfos', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), } ); } /** 查询个人用户银行卡信息 GET /api/user/user/getPersonalUserBankCard */ @@ -137,6 +149,21 @@ ); } /** 查询用户详情 GET /api/user/user/getUser */ export async function getUser( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) params: API.APIgetUserParams, options?: API.RequestConfig ) { return request<API.GetUserQueryResult>('/api/user/user/getUser', { method: 'GET', params: { ...params, }, ...(options || {}), }); } /** 查询用户角色列表 GET /api/user/user/getUserInfoRoles */ export async function getUserInfoRoles( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) @@ -152,6 +179,48 @@ }); } /** 查询用户分页列表数据 POST /api/user/user/getUsers */ export async function getUsers(body: API.GetUsersQuery, options?: API.RequestConfig) { return request<API.GetOperationUserInfosQueryResult>('/api/user/user/getUsers', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 重置用户操作密码 POST /api/user/user/resetUserOperatorPasswords */ export async function resetUserOperatorPasswords( body: API.ResetUserOperatorPasswordsCommand, options?: API.RequestConfig ) { return request<number>('/api/user/user/resetUserOperatorPasswords', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 重置用户密码 POST /api/user/user/resetUserPasswords */ export async function resetUserPasswords( body: API.ResetUserPasswordsCommand, options?: API.RequestConfig ) { return request<number>('/api/user/user/resetUserPasswords', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 保存用户银行卡信息 POST /api/user/user/savePersonalUserBankCard */ export async function savePersonalUserBankCard( body: API.SavePersonalUserBankCardCommand, @@ -167,6 +236,18 @@ }); } /** 保存用户 POST /api/user/user/saveUser */ export async function saveUser(body: API.SaveUserCommand, options?: API.RequestConfig) { return request<string>('/api/user/user/saveUser', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } /** 发送绑定银行卡短信 POST /api/user/user/sendSavePersonalUserBankCardVerifyCode */ export async function sendSavePersonalUserBankCardVerifyCode( body: API.SendSavePersonalUserBankCardVerifyCodeCommand, packages/services/apiV2/userWallet.ts
New file @@ -0,0 +1,18 @@ /* eslint-disable */ // @ts-ignore import { request } from '@/utils/request'; /** 用户提现 POST /api/user/userWallet/saveUserWalletWithdraw */ export async function saveUserWalletWithdraw( body: API.SaveUserWalletWithdrawCommand, options?: API.RequestConfig ) { return request<string>('/api/user/userWallet/saveUserWalletWithdraw', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, ...(options || {}), }); } packages/utils/LoggerRecord/index.ts
@@ -55,7 +55,7 @@ } } export const httpLoggerRecord = new HttpLoggerRecord({ const Options: LoggerRecordOptions = { moduleName: getUtilsConfig().appName, enableStorage: true, loggerStorageAdapter() { @@ -71,4 +71,8 @@ getPageUrl() { return Taro.getCurrentInstance()?.router?.path ?? ''; }, }); }; export const defaultLoggerRecord = new LoggerRecord(Options); export const httpLoggerRecord = new HttpLoggerRecord(Options); packages/utils/file.ts
@@ -33,6 +33,17 @@ } const imgReg = /\.(png|jpeg|jpg|webp|gif)$/i; const videoReg = /\.(mp4|avi|mkv|wmv|flv|webm|m4v|3gp|mpeg|mpg|ts|vob|ogv|f4v)$/i; function getFileType(path: string) { if (imgReg.test(path)) { return 'image'; } if (videoReg.test(path)) { return 'video'; } return ''; } /** * 把api返回的路径转换为upload的路径 @@ -43,7 +54,7 @@ path: urlOmitDomain(path), url: setOSSLink(path), status: 'success', type: imgReg.test(path) ? 'image' : '', type: getFileType(path), uid: _.uniqueId(), } as FileItem; } patches/@nutui__nutui-taro@4.3.13.patch
@@ -1,5 +1,5 @@ diff --git a/dist/packages/calendarcard/CalendarCard.js b/dist/packages/calendarcard/CalendarCard.js index bc08a59cb856db4768fd3581eddf0e72f4cd8008..4daa1ba2d662d93987b0afc5b95b9eda45cffc5f 100644 index bc08a59cb856db4768fd3581eddf0e72f4cd8008..074fde97f3e0be9db0b37454f7491db7dbd74a8a 100644 --- a/dist/packages/calendarcard/CalendarCard.js +++ b/dist/packages/calendarcard/CalendarCard.js @@ -345,7 +345,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({ @@ -12,7 +12,7 @@ change([day]); } diff --git a/dist/packages/index.taro-V9Ta96_T.js b/dist/packages/index.taro-V9Ta96_T.js index 0d9e8d05c1a1772895054623fb9e7bbe88bfa64c..6582e2bfb10ff8fe89bd333cf1d2704978e09982 100644 index 0d9e8d05c1a1772895054623fb9e7bbe88bfa64c..341cfdf5750ab97975b49c54d15711897522e06c 100644 --- a/dist/packages/index.taro-V9Ta96_T.js +++ b/dist/packages/index.taro-V9Ta96_T.js @@ -29,7 +29,7 @@ const popupProps = { @@ -25,7 +25,7 @@ duration: { type: [Number, String], diff --git a/dist/packages/input/Input.js b/dist/packages/input/Input.js index bbac0bb44b5ba6d4f50fbf9f90808c851092cb74..9de837d71563c5763127b8b5e852417cc8e155cd 100644 index bbac0bb44b5ba6d4f50fbf9f90808c851092cb74..9dd26d5b6ecf616025cc4bfdc03d91f3936e5feb 100644 --- a/dist/packages/input/Input.js +++ b/dist/packages/input/Input.js @@ -84,7 +84,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({ @@ -49,7 +49,7 @@ }); const styles = computed(() => { diff --git a/dist/packages/radiogroup/RadioGroup.js b/dist/packages/radiogroup/RadioGroup.js index 861a0214fe5d148b9af468d7ed5c9720eeef2f74..df2cee2988945755ab5c6b6929693c3e77924874 100644 index 861a0214fe5d148b9af468d7ed5c9720eeef2f74..66f565e4a7d5ef2fe55b8343ced72f783132ebba 100644 --- a/dist/packages/radiogroup/RadioGroup.js +++ b/dist/packages/radiogroup/RadioGroup.js @@ -17,7 +17,7 @@ var __spreadValues = (a, b) => { @@ -82,7 +82,7 @@ return openBlock(), createElementBlock("view", { class: normalizeClass(["nut-radio-group", `nut-radio-group--${_ctx.direction}`]) diff --git a/dist/packages/range/Range.js b/dist/packages/range/Range.js index 688b67464e4d05dc37996941d941033cea83ee2c..626db4d9889059aa08e1fd675e2333539efc766e 100644 index 688b67464e4d05dc37996941d941033cea83ee2c..2af0df1dba70728acb6143bb0fe28e92ca604bb3 100644 --- a/dist/packages/range/Range.js +++ b/dist/packages/range/Range.js @@ -288,6 +288,7 @@ const _sfc_main = create({ @@ -94,7 +94,7 @@ currentValue = props.modelValue; if (isRange(currentValue)) { diff --git a/dist/packages/toast/Toast.js b/dist/packages/toast/Toast.js index d9084afa94d8bc892f64cfca10eb098d2be4bcb0..ca2309339c0d8b2fca248081783c88c9fb57d2a2 100644 index d9084afa94d8bc892f64cfca10eb098d2be4bcb0..df36fde6fb4bfe4e88dcc6197f68cf2bf0564e81 100644 --- a/dist/packages/toast/Toast.js +++ b/dist/packages/toast/Toast.js @@ -102,6 +102,9 @@ const _sfc_main = create({ @@ -108,14 +108,31 @@ ); const hasIcon = computed(() => { diff --git a/dist/packages/uploader/Uploader.js b/dist/packages/uploader/Uploader.js index 77f3689a95eff13043ed2745aae193282b57f129..7144e12c5eb7dc98ed2ae224db6607a5b1d7428e 100644 index 77f3689a95eff13043ed2745aae193282b57f129..a12a7c3fa80d779716c66b25ec1e0156cd711c3e 100644 --- a/dist/packages/uploader/Uploader.js +++ b/dist/packages/uploader/Uploader.js @@ -569,6 +569,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { @@ -569,14 +569,17 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { createVNode(_component_Failure) ]) ], 8, _hoisted_6)) : createCommentVNode("", true), + renderSlot(_ctx.$slots, "extra-img",{ item: item }), createTextVNode(), (((_a = item == null ? void 0 : item.type) == null ? void 0 : _a.includes("image")) || ((_b = item == null ? void 0 : item.type) == null ? void 0 : _b.includes("video"))) && item.url ? (openBlock(), createElementBlock("img", { key: 2, - (((_a = item == null ? void 0 : item.type) == null ? void 0 : _a.includes("image")) || ((_b = item == null ? void 0 : item.type) == null ? void 0 : _b.includes("video"))) && item.url ? (openBlock(), createElementBlock("img", { - key: 2, - class: "nut-uploader__preview-img__c", - mode: _ctx.mode, - src: item.url, - onClick: ($event) => _ctx.fileItemClick(item) - }, null, 8, _hoisted_7)) : (openBlock(), createElementBlock("view", _hoisted_8, [ + (((_a = item == null ? void 0 : item.type) == null ? void 0 : _a.includes("image")) || ((_b = item == null ? void 0 : item.type) == null ? void 0 : _b.includes("video"))) && item.url ? renderSlot(_ctx.$slots, "item", {item: item}, () => [ + (openBlock(), createElementBlock("img", { + key: 2, + class: "nut-uploader__preview-img__c", + mode: _ctx.mode, + src: item.url, + onClick: ($event) => _ctx.fileItemClick(item) + }, null, 8, _hoisted_7)) + ]) : (openBlock(), createElementBlock("view", _hoisted_8, [ createElementVNode("view", { class: "nut-uploader__preview-img__file__name", onClick: ($event) => _ctx.fileItemClick(item) pnpm-lock.yaml
@@ -9,7 +9,7 @@ patchedDependencies: '@nutui/nutui-taro@4.3.13': hash: vmznnescqrnd2gkemh3ltth2ym hash: bed3oxqszgaxivruhi4wkqxbjy path: patches/@nutui__nutui-taro@4.3.13.patch importers: @@ -154,7 +154,7 @@ version: 0.0.9 '@nutui/nutui-taro': specifier: 4.3.13 version: 4.3.13(patch_hash=vmznnescqrnd2gkemh3ltth2ym)(unplugin-vue-components@0.27.4)(vue@3.5.12) version: 4.3.13(patch_hash=bed3oxqszgaxivruhi4wkqxbjy)(unplugin-vue-components@0.27.4)(vue@3.5.12) '@tanstack/vue-query': specifier: ^4.35.3 version: 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12) @@ -416,7 +416,7 @@ version: 0.0.9 '@nutui/nutui-taro': specifier: 4.3.13 version: 4.3.13(patch_hash=vmznnescqrnd2gkemh3ltth2ym)(unplugin-vue-components@0.27.4)(vue@3.5.12) version: 4.3.13(patch_hash=bed3oxqszgaxivruhi4wkqxbjy)(unplugin-vue-components@0.27.4)(vue@3.5.12) '@tanstack/vue-query': specifier: ^4.35.3 version: 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12) @@ -6170,7 +6170,7 @@ resolution: {integrity: sha512-10VYAtFC+o1X0anGs+y2PgF1NWMeLFz2JVMRw4BWLg6wbtVbYy9wukLxyGhZC6Yf6t39DcwaGVda8paV7K6/Ew==} dev: false /@nutui/nutui-taro@4.3.13(patch_hash=vmznnescqrnd2gkemh3ltth2ym)(unplugin-vue-components@0.27.4)(vue@3.5.12): /@nutui/nutui-taro@4.3.13(patch_hash=bed3oxqszgaxivruhi4wkqxbjy)(unplugin-vue-components@0.27.4)(vue@3.5.12): resolution: {integrity: sha512-+n8vVZAu92MUX6VEf6gO73Iz3JThjksdb6aSarvciCSydlWWdlQqZwYIGMTG4zOwDfCoQ3HfLa36zVaIJLSn3g==} peerDependencies: unplugin-vue-components: '>=0.25.1' @@ -18543,7 +18543,7 @@ vue: 3.5.12 dependencies: '@nutui/icons-vue-taro': 0.0.9 '@nutui/nutui-taro': 4.3.13(patch_hash=vmznnescqrnd2gkemh3ltth2ym)(unplugin-vue-components@0.27.4)(vue@3.5.12) '@nutui/nutui-taro': 4.3.13(patch_hash=bed3oxqszgaxivruhi4wkqxbjy)(unplugin-vue-components@0.27.4)(vue@3.5.12) '@tanstack/vue-query': 4.35.3(@vue/composition-api@1.7.2)(vue@3.5.12) '@tarojs/components': 3.6.20(postcss@8.4.19)(vue@3.5.12) '@tarojs/taro': 3.6.20(postcss@8.4.19)(vue@3.5.12)