已修改52个文件
已重命名2个文件
已添加26个文件
已删除3个文件
| | |
| | | { |
| | | "miniprogramRoot": "dist/", |
| | | "description": "", |
| | | "setting": { |
| | | "urlCheck": false, |
| | | "es6": false, |
| | | "enhance": false, |
| | | "postcss": false, |
| | | "preloadBackgroundData": false, |
| | | "minified": false, |
| | | "newFeature": false, |
| | | "coverView": true, |
| | | "nodeModules": false, |
| | | "autoAudits": false, |
| | | "showShadowRootInWxmlPanel": true, |
| | | "scopeDataCheck": false, |
| | | "uglifyFileName": false, |
| | | "checkInvalidKey": true, |
| | | "checkSiteMap": false, |
| | | "uploadWithSourceMap": true, |
| | | "compileHotReLoad": false, |
| | | "lazyloadPlaceholderEnable": false, |
| | | "useMultiFrameRuntime": true, |
| | | "babelSetting": { |
| | | "ignore": [], |
| | | "disablePlugins": [], |
| | | "outputPath": "" |
| | | "miniprogramRoot": "dist/", |
| | | "description": "", |
| | | "setting": { |
| | | "urlCheck": false, |
| | | "es6": true, |
| | | "enhance": true, |
| | | "postcss": false, |
| | | "preloadBackgroundData": false, |
| | | "minified": false, |
| | | "newFeature": false, |
| | | "coverView": true, |
| | | "nodeModules": false, |
| | | "autoAudits": false, |
| | | "showShadowRootInWxmlPanel": true, |
| | | "scopeDataCheck": false, |
| | | "uglifyFileName": false, |
| | | "checkInvalidKey": true, |
| | | "checkSiteMap": false, |
| | | "uploadWithSourceMap": true, |
| | | "compileHotReLoad": false, |
| | | "lazyloadPlaceholderEnable": false, |
| | | "useMultiFrameRuntime": true, |
| | | "babelSetting": { |
| | | "ignore": [], |
| | | "disablePlugins": [], |
| | | "outputPath": "" |
| | | }, |
| | | "enableEngineNative": false, |
| | | "useIsolateContext": true, |
| | | "userConfirmedBundleSwitch": false, |
| | | "packNpmManually": false, |
| | | "packNpmRelationList": [], |
| | | "minifyWXSS": false, |
| | | "disableUseStrict": false, |
| | | "minifyWXML": false, |
| | | "showES6CompileOption": false, |
| | | "useCompilerPlugins": false, |
| | | "ignoreUploadUnusedFiles": false, |
| | | "condition": false, |
| | | "compileWorklet": false, |
| | | "localPlugins": false, |
| | | "swc": false, |
| | | "disableSWC": true |
| | | }, |
| | | "enableEngineNative": false, |
| | | "useIsolateContext": true, |
| | | "userConfirmedBundleSwitch": false, |
| | | "packNpmManually": false, |
| | | "packNpmRelationList": [], |
| | | "minifyWXSS": false, |
| | | "disableUseStrict": false, |
| | | "minifyWXML": false, |
| | | "showES6CompileOption": false, |
| | | "useCompilerPlugins": false, |
| | | "ignoreUploadUnusedFiles": false, |
| | | "condition": false, |
| | | "compileWorklet": false, |
| | | "localPlugins": false, |
| | | "swc": false, |
| | | "disableSWC": true |
| | | }, |
| | | "compileType": "miniprogram", |
| | | "editorSetting": { |
| | | "tabIndent": "insertSpaces", |
| | | "tabSize": 4 |
| | | }, |
| | | "srcMiniprogramRoot": "dist/", |
| | | "condition": {}, |
| | | "libVersion": "3.9.3", |
| | | "packOptions": { |
| | | "ignore": [], |
| | | "include": [] |
| | | }, |
| | | "appid": "wx3669dd12a0915f7d", |
| | | "projectname": "bStandardMiniApp", |
| | | "simulatorPluginLibVersion": {} |
| | | } |
| | | "compileType": "miniprogram", |
| | | "editorSetting": { |
| | | "tabIndent": "insertSpaces", |
| | | "tabSize": 4 |
| | | }, |
| | | "srcMiniprogramRoot": "dist/", |
| | | "condition": {}, |
| | | "libVersion": "3.9.3", |
| | | "packOptions": { |
| | | "ignore": [], |
| | | "include": [] |
| | | }, |
| | | "appid": "wxc47d6f255e7d0566", |
| | | "projectname": "bStandardMiniApp", |
| | | "simulatorPluginLibVersion": {} |
| | | } |
| | |
| | | { |
| | | "description": "项ç®ç§æé
ç½®æä»¶ãæ¤æä»¶ä¸çå
容å°è¦ç project.config.json ä¸çç¸ååæ®µã项ç®çæ¹å¨ä¼å
忥尿¤æä»¶ä¸ãè¯¦è§ææ¡£ï¼https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
| | | "projectname": "bStandardMiniApp", |
| | | "setting": { |
| | | "compileHotReLoad": 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/flexJobDetailFromTask/flexJobDetailFromTask", |
| | | "query": "enterpriseEmployeeId=304f7e38-b973-478c-88aa-08ddf02e3176&id=ddecb887-8273-449b-6bcd-08de20009bf4&taskInfoId=ec3f301e-fa95-47a1-b8ee-08de1da3c153", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "å¾
éªæ¶-éªæ¶è¯¦æ
", |
| | | "pathName": "subpackages/task/taskHandleCheckDetail/taskHandleCheckDetail", |
| | | "query": "id=546401cc-c148-47d0-c647-08de1e75af01&date=2025-11-28&taskInfoId=5a22c18b-0b49-4540-6658-08de1da80d7c", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æ¥åå表", |
| | | "pathName": "subpackages/jobApplicationManage/jobApplicationDetail/jobApplicationDetail", |
| | | "query": "id=d74bca5e-a26e-4bb9-6b53-08de257fa022", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "åå¸ä»»å¡", |
| | | "pathName": "subpackages/task/publishTask/publishTask", |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "å·²éªæ¶-éªæ¶è¯¦æ
", |
| | | "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail", |
| | | "query": "id=523366f9-e74d-4cf9-222c-08de1e84dd6a&date=2025-11-08&checkReceiveStatus=30", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "éªæ¶è¯¦æ
", |
| | | "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail", |
| | | "query": "id=523366f9-e74d-4cf9-222c-08de1e84dd6a&date=2025-11-08&checkReceiveStatus=20", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "人å详æ
", |
| | | "pathName": "subpackages/task/taskHandleCheckDetail/taskHandleCheckDetail", |
| | | "query": "id=d4ff597f-20e3-41ff-87a4-08de1dbc63e7&date=2025-11-07&taskInfoId=b0e79981-56d5-4730-83e7-08de1d1fb9dd", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "åèªè¯¦æ
", |
| | | "pathName": "subpackages/payrollManage/payrollManageDetail/payrollManageDetail", |
| | | "query": "id=ed553142-801d-40b4-5582-08de0fa2a04b&operatorToken=627f56a2-d8a2-4606-b69f-36eadf770ecb", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | "description": "项ç®ç§æé
ç½®æä»¶ãæ¤æä»¶ä¸çå
容å°è¦ç project.config.json ä¸çç¸ååæ®µã项ç®çæ¹å¨ä¼å
忥尿¤æä»¶ä¸ãè¯¦è§ææ¡£ï¼https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
| | | "projectname": "bStandardMiniApp", |
| | | "setting": { |
| | | "compileHotReLoad": 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/flexJobDetailFromTask/flexJobDetailFromTask", |
| | | "query": "enterpriseEmployeeId=304f7e38-b973-478c-88aa-08ddf02e3176&id=ddecb887-8273-449b-6bcd-08de20009bf4&taskInfoId=ec3f301e-fa95-47a1-b8ee-08de1da3c153", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "å¾
éªæ¶-éªæ¶è¯¦æ
", |
| | | "pathName": "subpackages/task/taskHandleCheckDetail/taskHandleCheckDetail", |
| | | "query": "id=546401cc-c148-47d0-c647-08de1e75af01&date=2025-11-28&taskInfoId=5a22c18b-0b49-4540-6658-08de1da80d7c", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æ¥åå表", |
| | | "pathName": "subpackages/jobApplicationManage/jobApplicationDetail/jobApplicationDetail", |
| | | "query": "id=d74bca5e-a26e-4bb9-6b53-08de257fa022", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "åå¸ä»»å¡", |
| | | "pathName": "subpackages/task/publishTask/publishTask", |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "å·²éªæ¶-éªæ¶è¯¦æ
", |
| | | "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail", |
| | | "query": "id=523366f9-e74d-4cf9-222c-08de1e84dd6a&date=2025-11-08&checkReceiveStatus=30", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "éªæ¶è¯¦æ
", |
| | | "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail", |
| | | "query": "id=523366f9-e74d-4cf9-222c-08de1e84dd6a&date=2025-11-08&checkReceiveStatus=20", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "人å详æ
", |
| | | "pathName": "subpackages/task/taskHandleCheckDetail/taskHandleCheckDetail", |
| | | "query": "id=d4ff597f-20e3-41ff-87a4-08de1dbc63e7&date=2025-11-07&taskInfoId=b0e79981-56d5-4730-83e7-08de1d1fb9dd", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "åèªè¯¦æ
", |
| | | "pathName": "subpackages/payrollManage/payrollManageDetail/payrollManageDetail", |
| | | "query": "id=ed553142-801d-40b4-5582-08de0fa2a04b&operatorToken=627f56a2-d8a2-4606-b69f-36eadf770ecb", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "libVersion": "3.8.12" |
| | | } |
| | | }, |
| | | "libVersion": "3.8.12" |
| | | } |
| | |
| | | export default defineAppConfig({ |
| | | entryPagePath: 'pages/home/index', |
| | | pages: ['pages/home/index', 'pages/mine/index', 'pages/workbenches/workbenches'], |
| | | entryPagePath: 'pages/workbenches/workbenches', |
| | | pages: ['pages/mine/index', 'pages/workbenches/workbenches'], |
| | | requiredPrivateInfos: ['getLocation', 'chooseLocation'], |
| | | permission: { |
| | | 'scope.userLocation': { |
| | |
| | | }, |
| | | tabBar: { |
| | | list: [ |
| | | { |
| | | pagePath: 'pages/home/index', |
| | | iconPath: 'assets/tabbar/icon-home.png', |
| | | selectedIconPath: 'assets/tabbar/icon-home-active.png', |
| | | text: 'é¦é¡µ', |
| | | }, |
| | | // { |
| | | // pagePath: 'pages/home/index', |
| | | // iconPath: 'assets/tabbar/icon-home.png', |
| | | // selectedIconPath: 'assets/tabbar/icon-home-active.png', |
| | | // text: 'é¦é¡µ', |
| | | // }, |
| | | { |
| | | pagePath: 'pages/workbenches/workbenches', |
| | | iconPath: 'assets/tabbar/icon-task.png', |
| | |
| | | ], |
| | | }, |
| | | { |
| | | root: 'subpackages/appointmentManage', |
| | | pages: [ |
| | | 'appointmentManage/appointmentManage', |
| | | 'appointmentManageDetail/appointmentManageDetail', |
| | | ], |
| | | }, |
| | | { |
| | | root: 'subpackages/orderManage', |
| | | pages: ['orderManage/orderManage', 'orderManageDetail/orderManageDetail'], |
| | | }, |
| | | { |
| | | root: 'subpackages/jobApplicationManage', |
| | | pages: [ |
| | | 'jobApplicationManage/jobApplicationManage', |
| | |
| | | export const AppLocalConfig = { |
| | | userType: EnumUserType.Enterprise, |
| | | clientType: EnumClientType.Wxmp, |
| | | enterpriseType: EnumEnterpriseType.PartyA, |
| | | enterpriseType: EnumEnterpriseType.Supplier, |
| | | }; |
| | | |
| | | export const APP_ENV = process.env.APP_ENV; |
| | |
| | | mineUserPolicy = '/subpackages/login/mineUserPolicy/mineUserPolicy', |
| | | privacyPolicy = '/subpackages/login/privacyPolicy/privacyPolicy', |
| | | registerForm = '/subpackages/login/registerForm/registerForm', |
| | | home = '/pages/home/index', |
| | | // home = '/pages/home/index', |
| | | mine = '/pages/mine/index', |
| | | workbenches = '/pages/workbenches/workbenches', |
| | | editRichContent = '/subpackages/editRichContent/editRichContent', |
| | | |
| | | appointmentManage = '/subpackages/appointmentManage/appointmentManage/appointmentManage', |
| | | appointmentManageDetail = '/subpackages/appointmentManage/appointmentManageDetail/appointmentManageDetail', |
| | | |
| | | orderManage = '/subpackages/orderManage/orderManage/orderManage', |
| | | orderManageDetail = '/subpackages/orderManage/orderManageDetail/orderManageDetail', |
| | | |
| | | flexJobDetail = '/subpackages/flexJob/flexJobDetail/flexJobDetail', |
| | | flexJobDetailFromTask = '/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask', |
| | | |
| | |
| | | }; |
| | | |
| | | export const TabBarPageRouterList = [ |
| | | TabBarPageRouter.Home, |
| | | // TabBarPageRouter.Home, |
| | | TabBarPageRouter.Workbenches, |
| | | TabBarPageRouter.Mine, |
| | | ]; |
| | |
| | | click: (url: string, index: number) => typeof url === 'string', |
| | | }; |
| | | |
| | | const whitePageList = [RouterPath.home, RouterPath.mine]; |
| | | const whitePageList = [RouterPath.workbenches, RouterPath.mine]; |
| | | |
| | | export default { |
| | | name: 'CustomTabBar', |
| | |
| | | Message.confirm({ message: '请åå¾ç»å½' }) |
| | | .then(() => { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.authorization}?redirect=${RouterPath.home}`, |
| | | url: `${RouterPath.authorization}?redirect=${RouterPath.workbenches}`, |
| | | }); |
| | | }) |
| | | .finally(() => { |
| | |
| | | }} |
| | | > |
| | | <TarBarItem |
| | | text={'é¦é¡µ'} |
| | | icon="../assets/tabbar/icon-home.png" |
| | | activeIcon="../assets/tabbar/icon-home-active.png" |
| | | pagePath={TabBarPageRouter.Home} |
| | | currentPath={_router.path} |
| | | index={0} |
| | | active={system.activeTab === 0} |
| | | className="home" |
| | | onClick={switchTab} |
| | | ></TarBarItem> |
| | | <TarBarItem |
| | | text="å·¥ä½å°" |
| | | icon="../assets/tabbar/icon-task.png" |
| | | activeIcon="../assets/tabbar/icon-task-active.png" |
| | | pagePath={TabBarPageRouter.Workbenches} |
| | | currentPath={_router.path} |
| | | active={system.activeTab === 1} |
| | | active={system.activeTab === 0} |
| | | className="task" |
| | | onClick={switchTab} |
| | | index={1} |
| | | index={0} |
| | | ></TarBarItem> |
| | | <TarBarItem |
| | | text="æç" |
| | |
| | | <template> |
| | | <ContentView> |
| | | <!-- <div class="workbenches-banner-wrapper"> |
| | | <nut-swiper :auto-play="3000"> |
| | | <nut-swiper-item v-for="(item, index) in list" :key="index"> |
| | | <img :src="item" class="banner-img" draggable="false" /> |
| | | </nut-swiper-item> |
| | | </nut-swiper> |
| | | </div> --> |
| | | |
| | | <Cell :show-title="false" class="workbenches-cell"> |
| | | <CellChunk title="ä»»å¡"> |
| | | <div class="workbenches-cell-list"> |
| | | <TaskDetailWelfareItem :icon="IconPublishTask" text="åå¸ä»»å¡" @click="goPublishTask" /> |
| | | <TaskDetailWelfareItem :icon="IconPersonManage" text="ç¨äººç®¡ç" @click="goPersonManage" /> |
| | | </div> |
| | | </CellChunk> |
| | | <CellChunk title="ç¨äºº"> |
| | | <CellChunk title=""> |
| | | <div class="workbenches-cell-list"> |
| | | <TaskDetailWelfareItem |
| | | :icon="IconFlexjobManage" |
| | | text="çµå·¥ç®¡ç" |
| | | @click="goPage(RouterPath.flexJobManage)" |
| | | /> |
| | | <TaskDetailWelfareItem |
| | | :icon="IconTaskManage" |
| | | text="ä»»å¡å®æ" |
| | | @click="goPage(RouterPath.taskManage)" |
| | | text="é¢çº¦ç®¡ç" |
| | | @click="goPage(RouterPath.appointmentManage)" |
| | | /> |
| | | <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)" |
| | | :icon="IconTaskManage" |
| | | text="订å管ç" |
| | | @click="goPage(RouterPath.orderManage)" |
| | | /> |
| | | </div> |
| | | </CellChunk> |
| | |
| | | import { RouterPath } from '@/constants'; |
| | | import IconAcceptManage from '@/assets/workbenches/icon-accept-manage.png'; |
| | | import IconFlexjobManage from '@/assets/workbenches/icon-flexjob-manage.png'; |
| | | 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({ |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="workbenches-page-wrapper" title="å·¥ä½å°"> |
| | | <PageLayoutWithBg class="workbenches-page-wrapper" title="å·¥ä½å°" :needAuth="false"> |
| | | <InnerPage /> |
| | | </PageLayoutWithBg> |
| | | </template> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <ProTabs |
| | | v-model="queryState.status" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | | isTransparent |
| | | title-gutter="12" |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`å
¨é¨`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
确认`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
æå¡`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已宿`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse" |
| | | ></ProTabPane> |
| | | <ProTabPane :title="`已忶`" :pane-key="40"></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.status" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ReserveServiceCard |
| | | :name="item.name" |
| | | :begin-time="item.beginTime" |
| | | :end-time="item.endTime" |
| | | :billing-method="item.billingMethod" |
| | | :benefits="item.benefits" |
| | | :service-fee="item.serviceFee" |
| | | :settlement-cycle="item.settlementCycle" |
| | | :address-name="item.addressName" |
| | | @click="goDetail(item)" |
| | | > |
| | | </ReserveServiceCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | status: 0 as any as GetPersonalApplyTaskInfosQueryStatus, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetTaskInfosQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | }; |
| | | |
| | | return taskServices.getOpenTaskInfos(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getOpenTaskInfos', queryState], |
| | | } |
| | | ); |
| | | |
| | | function goDetail(item: any) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.appointmentManageDetail}?id=${item.id}`, |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="appointmentManage-page-wrapper" :title="'é¢çº¦ç®¡ç'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'appointmentManage', |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> --> |
| | | <ContentScrollView hasPaddingTop> |
| | | <MineServiceDetailView /> |
| | | </ContentScrollView> |
| | | <PageFooter> |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goCancel" |
| | | >åæ¶é¢çº¦</PageFooterBtn |
| | | > |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm" |
| | | >确认é¢çº¦</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | | <!-- </LoadingLayout> --> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { MineServiceDetailView } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { RouterPath } from '@/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | |
| | | function goCancel() {} |
| | | |
| | | function goConfirm() {} |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageLayout class="appointmentManageDetail-page-wrapper" title="é¢çº¦è¯¦æ
" has-border> |
| | | <InnerPage /> |
| | | </PageLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'appointmentManageDetail', |
| | | }); |
| | | </script> |
| | |
| | | |
| | | async function handleLogin() { |
| | | try { |
| | | let code = await Taro.login(); |
| | | if (props.policyChecked) { |
| | | const { valid } = await formRef.value.validate(); |
| | | if (valid) { |
| | |
| | | await userStore.loginByPassword({ |
| | | userName: form.userName, |
| | | password: form.userPassword, |
| | | code: loginRes.value?.code, |
| | | code: code.code, |
| | | }); |
| | | handleLoginSuccess(); |
| | | } |
| | |
| | | noAccess(); |
| | | } |
| | | } catch (error) { |
| | | loginRes.value = await Taro.login(); |
| | | // loginRes.value = await Taro.login(); |
| | | } finally { |
| | | form.loading = false; |
| | | } |
| | |
| | | |
| | | async function handleLoginSuccess() { |
| | | try { |
| | | if (!Taro.requestSubscribeMessage) { |
| | | await Message.confirm({ message: 'ä½ çå¾®ä¿¡çæ¬è¿ä½ï¼ä¸æ¯æè®¢é
æ¶æ¯ï¼æ¯å¦ç»§ç»ï¼' }); |
| | | } |
| | | const res = await Taro.getSetting({ |
| | | withSubscriptions: true, |
| | | }); |
| | | let setting: boolean[] = []; |
| | | if (res.subscriptionsSetting && res.subscriptionsSetting.itemSettings) { |
| | | setting = subscribeMessageTemplateIdsForB |
| | | .map((id) => res.subscriptionsSetting.itemSettings[id] !== 'accept') |
| | | .filter(Boolean); |
| | | } |
| | | Taro.requestSubscribeMessage({ |
| | | tmplIds: subscribeMessageTemplateIdsForB, |
| | | success: function (res) { |
| | | console.log('res: ', res); |
| | | }, |
| | | }); |
| | | console.log('setting: ', setting); |
| | | // if (!Taro.requestSubscribeMessage) { |
| | | // await Message.confirm({ message: 'ä½ çå¾®ä¿¡çæ¬è¿ä½ï¼ä¸æ¯æè®¢é
æ¶æ¯ï¼æ¯å¦ç»§ç»ï¼' }); |
| | | // } |
| | | // const res = await Taro.getSetting({ |
| | | // withSubscriptions: true, |
| | | // }); |
| | | // let setting: boolean[] = []; |
| | | // if (res.subscriptionsSetting && res.subscriptionsSetting.itemSettings) { |
| | | // setting = subscribeMessageTemplateIdsForB |
| | | // .map((id) => res.subscriptionsSetting.itemSettings[id] !== 'accept') |
| | | // .filter(Boolean); |
| | | // } |
| | | // Taro.requestSubscribeMessage({ |
| | | // tmplIds: subscribeMessageTemplateIdsForB, |
| | | // success: function (res) { |
| | | // console.log('res: ', res); |
| | | // }, |
| | | // }); |
| | | Message.success('ç»å½æå', { |
| | | onClosed: () => { |
| | | jump(); |
| | |
| | | isAccount.value = false; |
| | | } |
| | | } finally { |
| | | loginRes.value = await Taro.login(); |
| | | // loginRes.value = await Taro.login(); |
| | | } |
| | | }); |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <ProTabs |
| | | v-model="queryState.status" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | | isTransparent |
| | | title-gutter="12" |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`å
¨é¨`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å·²æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已宿`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.status" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ReserveServiceCard |
| | | :name="item.name" |
| | | :begin-time="item.beginTime" |
| | | :end-time="item.endTime" |
| | | :billing-method="item.billingMethod" |
| | | :benefits="item.benefits" |
| | | :service-fee="item.serviceFee" |
| | | :settlement-cycle="item.settlementCycle" |
| | | :address-name="item.addressName" |
| | | @click="goOrderDetail(item)" |
| | | > |
| | | </ReserveServiceCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | status: 0 as any as GetPersonalApplyTaskInfosQueryStatus, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetTaskInfosQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | }; |
| | | |
| | | return taskServices.getOpenTaskInfos(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getOpenTaskInfos', queryState], |
| | | } |
| | | ); |
| | | |
| | | function goOrderDetail(item: any) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.orderManageDetail}?id=${item.id}`, |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="orderManage-page-wrapper" :title="'订å管ç'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'orderManage', |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> --> |
| | | <ContentScrollView hasPaddingTop> |
| | | <MineServiceDetailView /> |
| | | </ContentScrollView> |
| | | <PageFooter class="order-settle-bar"> |
| | | <div class="order-settle-price-wrapper"> |
| | | <div class="order-settle-price-label">æ¯ä»ï¼</div> |
| | | <nut-price :price="155" size="large" /> |
| | | </div> |
| | | <PageFooterBtn type="primary" class="business-card-btn">ç«å³ä¸å</PageFooterBtn> |
| | | </PageFooter> |
| | | <!-- </LoadingLayout> --> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { MineServiceDetailView } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { useCheckReceiveTaskUserSubmit } from '@12333/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .orderManageDetail-page-wrapper { |
| | | .order-settle-bar { |
| | | .order-settle-price-wrapper { |
| | | height: 100%; |
| | | flex: 1; |
| | | min-width: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-left: 28px; |
| | | |
| | | .order-settle-price-label { |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageLayout class="orderManageDetail-page-wrapper" title="订å详æ
" has-border> |
| | | <InnerPage /> |
| | | </PageLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'orderManageDetail', |
| | | }); |
| | | </script> |
| | |
| | | const systemStore = useSystemStoreWithOut(); |
| | | systemStore.setTabIndex(0); |
| | | Taro.switchTab({ |
| | | url: '/pages/home/index', |
| | | url: '/pages/workbenches/workbenches', |
| | | }); |
| | | } |
| | |
| | | "showES6CompileOption": false, |
| | | "checkInvalidKey": true, |
| | | "ignoreDevUnusedFiles": true, |
| | | "useIsolateContext": true, |
| | | "skylineRenderEnable": false |
| | | "useIsolateContext": true |
| | | }, |
| | | "condition": { |
| | | "miniprogram": { |
| | |
| | | "name": "ç®å", |
| | | "pathName": "subpackages/curriculum/mineCurriculumVitae/mineCurriculumVitae", |
| | | "query": "", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | "launchMode": "default", |
| | | "scene": null |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "libVersion": "3.11.2" |
| | | "libVersion": "3.13.0" |
| | | } |
| | |
| | | .bole-input-textarea:not(.nut-input--disabled) { |
| | | color: boleGetCssVar('text-color', 'primary') !important; |
| | | height: 100rpx; |
| | | |
| | | .textarea-placeholder { |
| | | color: boleGetCssVar('text-color', 'placeholder') !important; |
| | | font-size: 26rpx; |
| | | } |
| | | } |
| | | |
| | | .bole-input-text-placeholder { |
| | |
| | | "MaybeRef": true, |
| | | "MaybeRefOrGetter": true, |
| | | "NODE_ENV": true, |
| | | "TabBarPageRouterList": true |
| | | "TabBarPageRouterList": true, |
| | | "useaa": true, |
| | | "useEnterpriseAddresses": true |
| | | } |
| | | } |
| | |
| | | const useAuth: typeof import('./src/hooks/user')['useAuth'] |
| | | const useCssModule: typeof import('vue')['useCssModule'] |
| | | const useCssVars: typeof import('vue')['useCssVars'] |
| | | const useEnterpriseAddresses: typeof import('./src/hooks/enterprise')['useEnterpriseAddresses'] |
| | | const useGoLogin: typeof import('./src/hooks/user')['useGoLogin'] |
| | | const useId: typeof import('vue')['useId'] |
| | | const useIsLogin: typeof import('./src/hooks/user')['useIsLogin'] |
| | |
| | | const useTemplateRef: typeof import('vue')['useTemplateRef'] |
| | | const useUser: typeof import('./src/hooks/user')['useUser'] |
| | | const useUserResume: typeof import('./src/hooks/user')['useUserResume'] |
| | | const useaa: typeof import('./src/hooks/enterprise')['useaa'] |
| | | const watch: typeof import('vue')['watch'] |
| | | const watchEffect: typeof import('vue')['watchEffect'] |
| | | const watchPostEffect: typeof import('vue')['watchPostEffect'] |
| | |
| | | readonly useAuth: UnwrapRef<typeof import('./src/hooks/user')['useAuth']> |
| | | readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']> |
| | | readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']> |
| | | readonly useEnterpriseAddresses: UnwrapRef<typeof import('./src/hooks/enterprise')['useEnterpriseAddresses']> |
| | | readonly useGoLogin: UnwrapRef<typeof import('./src/hooks/user')['useGoLogin']> |
| | | readonly useId: UnwrapRef<typeof import('vue')['useId']> |
| | | readonly useIsLogin: UnwrapRef<typeof import('./src/hooks/user')['useIsLogin']> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -----BEGIN RSA PRIVATE KEY----- |
| | | MIIEowIBAAKCAQEAt7umJG8uX79rUR1PY3p6cUs1Op9iOdC88HomDSZkW12UumEz |
| | | PoR4uQgSgd1JgPebHHnzXZYVPujPHV7wRbMlQ4qjdoJW3NjSpVpNfP6lt99BlrZV |
| | | CUl4OMBTGuP1xEzqnyHuWSHTwKEHtuD0Ypg4E5yECbRrE1L5MbFD5A5be9OFHcIx |
| | | 6JJ6Enn7vhCpHP8nHgctRRf0tYjb+h9F9sn5/RTwWf3TJvvliaqq8cmIM3GhV+e8 |
| | | DfDHh911ZYC5mQmARr/Laj1IIUdGEZPK/AGz/MZx2ipto7FghETwxgXKVfaWIHub |
| | | o4HVXjJxjtO12hH8DvLtkpHBFTsidhbAA+3rrQIDAQABAoIBABlEmEvIcpM+aw7j |
| | | vghLTs2H71EZnFOhLmrQEa2bSw/5pbugJIEDjOq9fnYXrcUryEw5RUvomRFmyR0b |
| | | 8mVThttsFKD2ueVzeDy/V4rKJpZMAOQuPTGixgLgCE3ZbfJKNbYe332olkuWmc3/ |
| | | z/xDPOsNimcfRd6JebXo0BJsGw7DQ4yB242No85GkmFTjaPabOFahqJQz7+P4d41 |
| | | oq8h9fdskugtkG7OmhXT869ECjwyLHs+XtMVHCxH17wYjnqPJvuQGzLAeGFnUEzA |
| | | ZHsgXsRdTBbCRbbLW95wDAmOk4G76wl58DWrgT/CQx49SwuT5xfpouM8aicYmyZf |
| | | lepakYECgYEA32ERnryGEN3r9wbEtt3Fek8qFz+muvMaL8ILvXg4PON+N7TH1hbD |
| | | e5elnfqwdndFDHD8WlTJvz6Y+ZMyaBpoRi52IB0CLUJbIZbCGVnhsnEvcmCbHHpd |
| | | vHmPnVSjpia91h7D7Tl1WYBYn1DKvOymD16aAN8+prCkff2YEZRwY6ECgYEA0pBs |
| | | +RmqfoKgAe9zvYwN/4ZsYbFFMtGGZ+C4s7sirbHCSF+qe2Qmx0RNqeNO/j5dIds4 |
| | | saM6FXRMWdpOsx0o5Qjj/d/b1g2Kh0PWvjrMMMmmRB/Su7qqOVYCFj6qdGMLvLNh |
| | | r0cJE+cRRKpan8XUJWMnkK1Sqn9SqoVtCN+rjI0CgYAOpIZLKYCASovVPZRXiGIR |
| | | im7v5zQ+vQDScJ3kZaUKGL+FV0xiNEvMJjytBmna2iakkiN4qGYxKyFL+uIrANAl |
| | | CZaktEIYRWlD4mYG02WAFPtPPBXu3/aVDELlxU6U7aU0DAA75LBUlZ05lEo16C1a |
| | | hJEDzZ6Fvr6Jo738KQbVAQKBgGx2FIvjmpz78CvPChFS+UrsFRvlUj2xC8iqSrnZ |
| | | 5S0PaYIaNRjGJ+tw1YhzHBd+TD7KS1PFPoAandGS0AMXPB9uCvKUwwppgzfVy+HF |
| | | K7TdyhVBRy2II3LRSNXohajZ9AvJYsIElzp3Rb/W+ENghbyUbKbrgK9uUkif3eA6 |
| | | RoVpAoGBANhHCdaCjtshYptU5RUGDJfQP776IjIsYMDMPfy5D3ezrBmTFXywp5Vj |
| | | MpallPlgIY5CLx4NEgKclNJRWaQqD5LllNOKxGw3pxWk5rgHCFF5pEpXmnSKLEUE |
| | | V7ugDI6vPviJ8k1CQ5zSfhuEMnp19k0jRUTT7dVHjf5mcFVFlfH6 |
| | | -----END RSA PRIVATE KEY----- |
| | |
| | | return { |
| | | weapp: { |
| | | appid: config.appid, |
| | | privateKeyPath: `${projectPath}/ci/private.wxb9e0baf4f87aa0de.key`, |
| | | privateKeyPath: `${projectPath}/ci/private.wx3669dd12a0915f7d.key`, |
| | | robot: robot, |
| | | setting: { |
| | | minify: false, |
| | |
| | | "miniprogram": { |
| | | "list": [ |
| | | { |
| | | "name": "éæ©å°å", |
| | | "pathName": "subpackages/mine/addressManange/addressManange", |
| | | "query": "type=select", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | }, |
| | | { |
| | | "name": "é¢çº¦ä¸å", |
| | | "pathName": "subpackages/sercice/addStandardOrder/addStandardOrder", |
| | | "query": "specNumber=1&specId=72ec3beb-90dc-473b-d214-08de429af188&id=53208c5d-a823-40d3-e79e-08de429af17b", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æ°å¢å°å", |
| | | "pathName": "subpackages/mine/editAddress/editAddress", |
| | | "query": "id=53208c5d-a823-40d3-e79e-08de429af17b", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æå¡è¯¦æ
", |
| | | "pathName": "subpackages/sercice/serciceDetail/serciceDetail", |
| | | "query": "id=53208c5d-a823-40d3-e79e-08de429af17b", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æå¡ç¡®è®¤", |
| | |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æ°å¢å°å", |
| | | "pathName": "subpackages/mine/editAddress/editAddress", |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "å°å管ç", |
| | | "pathName": "subpackages/mine/addressManange/addressManange", |
| | | "query": "", |
| | |
| | | ] |
| | | } |
| | | }, |
| | | "libVersion": "3.11.2" |
| | | "libVersion": "3.12.1" |
| | | } |
| | |
| | | }, |
| | | { |
| | | root: 'subpackages/sercice', |
| | | pages: ['serciceDetail/serciceDetail'], |
| | | pages: ['serciceDetail/serciceDetail', 'addStandardOrder/addStandardOrder'], |
| | | }, |
| | | { |
| | | root: 'subpackages/user', |
| ÎļþÃû´Ó apps/housekeepingMiniApp/src/pages/home/StandardServiceCard.vue ÐÞ¸Ä |
| | |
| | | <template> |
| | | <div class="standard-service-card-wrapper"> |
| | | <img :src="setOSSLink(file)" class="standard-service-card-cover" /> |
| | | <SquareView> |
| | | <img :src="setOSSLink(file)" class="standard-service-card-cover" /> |
| | | </SquareView> |
| | | <div class="standard-service-card-content"> |
| | | <div class="standard-service-card-content-title">{{ name }}</div> |
| | | <div class="standard-service-card-content-price-wrapper"> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import { setOSSLink } from '@12333/utils'; |
| | | import { SquareView } from '@12333/components'; |
| | | |
| | | defineOptions({ |
| | | name: 'StandardServiceCard', |
| | |
| | | border-radius: 12px; |
| | | |
| | | .standard-service-card-cover { |
| | | height: 240px; |
| | | height: 100%; |
| | | border-radius: 12px; |
| | | object-fit: cover; |
| | | width: 100%; |
| | |
| | | font-weight: 600; |
| | | font-size: 32px; |
| | | color: #ff3949; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .standard-service-card-content-suffix { |
| | |
| | | mineReserveServiceConfirm = '/subpackages/mine/mineReserveServiceConfirm/mineReserveServiceConfirm', |
| | | |
| | | serciceDetail = '/subpackages/sercice/serciceDetail/serciceDetail', |
| | | addStandardOrder = '/subpackages/sercice/addStandardOrder/addStandardOrder', |
| | | |
| | | extraPage = '/subpackages/extraPage/extraPage/extraPage', |
| | | } |
| | |
| | | import * as electronSignServices from '@12333/services/apiV2/electronSign'; |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import { getUserCertificationFrontStatusAdapter } from '@12333/utils'; |
| | | import { UserCertificationFrontStatus } from '@12333/constants'; |
| | | import { useUser } from './user'; |
| | | |
| | | type UseMyCertificationAuditInfoOptions = { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import { BaseData, useInfiniteLoading } from '@12333/hooks'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as enterpriseServices from '@12333/services/apiV2/enterprise'; |
| | | import { InfiniteData } from '@tanstack/vue-query'; |
| | | |
| | | type UseEnterpriseAddressesOptions = { |
| | | rows?: number; |
| | | onSuccess?: (data: InfiniteData<BaseData<API.GetEnterpriseAddressesQueryResultItem>>) => any; |
| | | }; |
| | | |
| | | export function useEnterpriseAddresses(options: UseEnterpriseAddressesOptions = {}) { |
| | | const { rows = 20, onSuccess } = options; |
| | | |
| | | const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetEnterpriseAddressesQuery = { |
| | | pageModel: { |
| | | rows: rows, |
| | | page: pageParam, |
| | | }, |
| | | }; |
| | | |
| | | return enterpriseServices.getEnterpriseAddresses(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['enterpriseServices/getEnterpriseAddresses', rows], |
| | | onSuccess(data) { |
| | | onSuccess?.(data); |
| | | }, |
| | | } |
| | | ); |
| | | |
| | | return { infiniteLoadingProps, invalidateQueries }; |
| | | } |
| | |
| | | export * from './login'; |
| | | export * from './authentication'; |
| | | export * from './app'; |
| | | export * from './enterprise'; |
| | |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { object2query, LocationUtils } from '@12333/utils'; |
| | | import { |
| | | EnumUserBankCardAccess, |
| | | ParkOrHRStatus, |
| | | UserCertificationFrontStatus, |
| | | } from '@12333/constants'; |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import { MaybeRef } from 'vue'; |
| | | import { useRefeshDidShow } from '@12333/hooks/infiniteLoading'; |
| | | import * as userResumeServices from '@12333/services/apiV2/userResume'; |
| | | import { useUserResume as useUserResumeHook } from '@12333/hooks'; |
| | | |
| | | export function useUser() { |
| | |
| | | |
| | | export function useShowAdvertisements() { |
| | | const { data: advertisements, refetch } = useQuery({ |
| | | queryKey: ['enterpriseWalletServices/getEnterpriseWalletAccessSelect'], |
| | | queryKey: ['advertisementServices/getShowAdvertisements'], |
| | | queryFn: () => { |
| | | return advertisementServices.getShowAdvertisements( |
| | | { |
| | |
| | | return { |
| | | positionListChunk, |
| | | positionGrid, |
| | | positionList, |
| | | }; |
| | | } |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="index-page-wrapper" :title="''" :need-auth="false"> |
| | | <template #left> |
| | | <PageLayoutWithBg class="index-page-wrapper" :title="'é¦é¡µ'" :need-auth="false"> |
| | | <!-- <template #left> |
| | | <div class="menu-btn-wrapper menu-logo"> |
| | | <img :src="IconLogo" class="logo" /> |
| | | </div> |
| | | </template> |
| | | </template> --> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | commonMode |
| | |
| | | <div class="city-btn-text">{{ locationCity }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="home-banner-wrapper"> |
| | | <nut-swiper :auto-play="3000"> |
| | | <SquareView class="home-banner-wrapper" :width-power="2"> |
| | | <nut-swiper :auto-play="3000" class="home-banner-swiper"> |
| | | <nut-swiper-item v-for="(item, index) in advertisements" :key="item.id"> |
| | | <img :src="item.file" class="banner-img" draggable="false" /> |
| | | </nut-swiper-item> |
| | | </nut-swiper> |
| | | </div> |
| | | </SquareView> |
| | | <!-- <div class="home-recommend-wrapper"> |
| | | <div class="home-recommend-item">æ¨è</div> |
| | | <div class="home-recommend-item">æ¨è</div> |
| | |
| | | style="height: 160px" |
| | | > --> |
| | | <nut-grid class="home-gird" :column-num="5"> |
| | | <nut-grid-item v-for="item in positionGrid" :key="item.value" :text="item.label"> |
| | | <nut-grid-item |
| | | v-for="item in positionGrid" |
| | | :key="item.value" |
| | | :text="item.label" |
| | | @click="goService(item)" |
| | | > |
| | | <img :src="setOSSLink(item.data.field2)" class="home-grid-item-icon" /> |
| | | <!-- <Dongdong /> --> |
| | | </nut-grid-item> |
| | |
| | | import { setLocationCity } from '@/utils'; |
| | | import _ from 'lodash'; |
| | | import IconLogo from '@/assets/home/icon-logo.png'; |
| | | import { TaskCard } from '@12333/components'; |
| | | import { SquareView } from '@12333/components'; |
| | | import IconLocaltion from '@/assets/task/icon-localtion.png'; |
| | | import { useAllAreaList, useInfiniteLoading, useTaskList } from '@12333/hooks'; |
| | | import { useAccessLogin } from '@/hooks'; |
| | |
| | | import { setOSSLink, trim } from '@12333/utils'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { EnumPagedListOrder, EnumStandardServiceReleaseStatus } from '@12333/constants'; |
| | | import StandardServiceCard from './StandardServiceCard.vue'; |
| | | import { useSystemStore } from '@/stores/modules/system'; |
| | | |
| | | const { locationCity } = useUser(); |
| | | |
| | |
| | | keywords: queryState.keywords, |
| | | }; |
| | | |
| | | return standardServiceServices.getStandardServices(params, { |
| | | return standardServiceServices.getOpenStandardServices(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['standardServiceServices/getStandardServices', queryState], |
| | | queryKey: ['standardServiceServices/getOpenStandardServices', queryState], |
| | | } |
| | | ); |
| | | |
| | |
| | | url: `${RouterPath.serciceDetail}?id=${item.id}`, |
| | | }); |
| | | } |
| | | |
| | | const switchTab = useSwitchTab(); |
| | | const systemStore = useSystemStore(); |
| | | |
| | | function goService(item: API.SelectOptionStringGetDictionaryDataSelectQueryResultOption) { |
| | | systemStore.setServicePageJobCode(item.value); |
| | | switchTab({ |
| | | url: `${RouterPath.service}`, |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | .home-banner-wrapper { |
| | | margin-bottom: 20px; |
| | | |
| | | .home-banner-swiper { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .banner-img { |
| | | width: 100%; |
| | | height: 260px; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | object-position: center top; |
| | | } |
| | | } |
| | | |
| | |
| | | <template> |
| | | <nut-category :category="data.category" @change="change" class="category-page-inner"> |
| | | <ProCategory ref="categoryRef" :category="category" @change="change" class="category-page-inner"> |
| | | <nut-category-pane :categoryChild="data.categoryChild" @onChange="onChange"> |
| | | </nut-category-pane> |
| | | </nut-category> |
| | | </ProCategory> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import { useCheckReceiveTasks, useTaskList } from '@12333/hooks'; |
| | | import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants'; |
| | | import dayjs from 'dayjs'; |
| | | import { categorydata } from './3x_categoryData'; |
| | | import { useDictionaryDataSelect, useStandardServiceList } from '@12333/hooks'; |
| | | import { CategoryCode, EnumStandardServiceReleaseStatus, PositionCodeEnum } from '@12333/constants'; |
| | | import { setOSSLink } from '@12333/utils'; |
| | | import { ProCategory } from '@12333/components'; |
| | | import { useSystemStore } from '@/stores/modules/system'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const systemStore = useSystemStore(); |
| | | const { servicePageJobCode } = storeToRefs(systemStore); |
| | | |
| | | const categoryRef = ref(); |
| | | |
| | | const data = reactive({ |
| | | categoryInfo: categorydata.categoryInfo, |
| | | category: categorydata.categoryInfo.category, |
| | | categoryChild: categorydata.categoryChild, |
| | | category: [], |
| | | categoryChild: [], |
| | | }); |
| | | |
| | | const { dictionaryDataList: positionList, ensureQueryData } = useDictionaryDataSelect({ |
| | | categoryCode: CategoryCode.Position, |
| | | field1: PositionCodeEnum.Housekeeping, |
| | | }); |
| | | |
| | | const { ensureStandardServiceList, standardServiceListForCategoryMap } = useStandardServiceList({ |
| | | params: { |
| | | releaseStatus: EnumStandardServiceReleaseStatus.InProcess, |
| | | }, |
| | | }); |
| | | |
| | | onMounted(async () => { |
| | | try { |
| | | await Promise.all([ensureQueryData(), ensureStandardServiceList()]); |
| | | if (positionList.value.length > 0 && categoryRef.value) { |
| | | initCategory(); |
| | | // const first = positionList.value[0]; |
| | | // data.categoryChild = convertCategoryChild( |
| | | // first.value, |
| | | // standardServiceListForCategoryMap.value[first.value] |
| | | // ); |
| | | } |
| | | } catch (error) {} |
| | | }); |
| | | |
| | | function initCategory() { |
| | | const currentIndex = Math.max( |
| | | positionList.value.findIndex((x) => x.value === servicePageJobCode.value), |
| | | 0 |
| | | ); |
| | | categoryRef.value.getChildList(currentIndex); |
| | | systemStore.setServicePageJobCode(''); |
| | | } |
| | | |
| | | watch(servicePageJobCode, () => { |
| | | if (servicePageJobCode.value) { |
| | | initCategory(); |
| | | } |
| | | }); |
| | | |
| | | function convertCategoryChild(jobCode: string, list: API.GetStandardServicesQueryResultItem[]) { |
| | | const categoryChild = { |
| | | catId: jobCode, |
| | | catName: '', |
| | | catLevel: 2, |
| | | catType: 1, |
| | | childCateList: [], |
| | | }; |
| | | if (list?.length > 0) { |
| | | categoryChild.childCateList = list.map((x) => ({ |
| | | backImg: setOSSLink(x.file), |
| | | catId: x.id, |
| | | catName: x.name, |
| | | showPic: true, |
| | | showVideo: false, |
| | | })); |
| | | } |
| | | return [categoryChild]; |
| | | } |
| | | |
| | | const category = computed(() => |
| | | positionList.value.map((x) => ({ |
| | | ...x, |
| | | catName: x.label, |
| | | })) |
| | | ); |
| | | |
| | | const change = (index: number) => { |
| | | data.categoryChild = [].concat(data.categoryInfo.category[index + 1].children); |
| | | const current = positionList.value[index]; |
| | | data.categoryChild = convertCategoryChild( |
| | | current.value, |
| | | standardServiceListForCategoryMap.value[current.value] |
| | | ); |
| | | }; |
| | | const onChange = () => { |
| | | console.log('å½ååç±»æ°æ®'); |
| | | const onChange = (ev) => { |
| | | console.log('å½ååç±»æ°æ®', ev); |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.serciceDetail}?id=${ev.catId}`, |
| | | }); |
| | | }; |
| | | </script> |
| | | |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="task-page-wrapper" title="å
¨é¨åç±»"> |
| | | <PageLayout class="task-page-wrapper" title="å
¨é¨åç±»" has-border> |
| | | <InnerPage /> |
| | | </PageLayoutWithBg> |
| | | </PageLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | |
| | | redirectPath: string; |
| | | isTabSwitch: boolean; |
| | | isFirstEnter: boolean; |
| | | |
| | | servicePageJobCode: string; |
| | | } |
| | | |
| | | export const useSystemStore = defineStore({ |
| | |
| | | menuButtonTop: 0, |
| | | |
| | | isFirstEnter: true, |
| | | |
| | | servicePageJobCode: '', |
| | | }), |
| | | |
| | | actions: { |
| | |
| | | this.options = options; // æ¾ä¸ä¸é¡µé¢ç¸å
³çæ°æ®ä¾å¦sceneç 页é¢é«åº¦ä¹ç±»çä¸åï¼ |
| | | }, |
| | | |
| | | setServicePageJobCode(jobCode: string) { |
| | | this.servicePageJobCode = jobCode; |
| | | }, |
| | | |
| | | setInfo(info: Taro.getSystemInfoSync.Result) { |
| | | this.info = info; |
| | | console.log('info: ', info); |
| | |
| | | .bole-input-textarea:not(.nut-input--disabled) { |
| | | color: boleGetCssVar('text-color', 'primary') !important; |
| | | height: 100rpx; |
| | | |
| | | .textarea-placeholder { |
| | | color: boleGetCssVar('text-color', 'placeholder') !important; |
| | | font-size: 26rpx; |
| | | } |
| | | } |
| | | |
| | | .bole-input-text-placeholder { |
| | |
| | | <img :src="OssAssets.login.AuthBg" class="authorization-page-auth" /> |
| | | </template> |
| | | |
| | | <div class="authorization-page-title">欢è¿ä½¿ç¨å·¥æèµ</div> |
| | | <div class="authorization-page-title">欢è¿ä½¿ç¨818å®¶æ¿</div> |
| | | |
| | | <slot></slot> |
| | | </PageLayout> |
| | |
| | | <template> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | scrollViewClassName="common-page-infinite-scroll-list" |
| | | v-bind="infiniteLoadingProps" |
| | | > |
| | | <nut-address-list |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { useInfiniteLoading, useTaskList } from '@12333/hooks'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as enterpriseServices from '@12333/services/apiV2/enterprise'; |
| | | import { Message } from '@12333/utils'; |
| | |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id ?? ''; |
| | | const mode = route.params?.mode ?? ''; |
| | | const isSelectMode = mode === 'select'; |
| | | |
| | | const dataOptions = reactive({ |
| | | id: 'id', |
| | | addressDetail: 'addressDetail', |
| | |
| | | goAddress(item.id); |
| | | }; |
| | | |
| | | const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetEnterpriseAddressesQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | }, |
| | | }; |
| | | |
| | | return enterpriseServices.getEnterpriseAddresses(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['enterpriseServices/getEnterpriseAddresses'], |
| | | } |
| | | ); |
| | | const { infiniteLoadingProps, invalidateQueries } = useEnterpriseAddresses(); |
| | | |
| | | function goAddress(id?: string) { |
| | | Taro.navigateTo({ |
| | |
| | | countyCode: data.areaCode, |
| | | latitude: data.latitude, |
| | | longitude: data.longitude, |
| | | address: data.addressName, |
| | | }; |
| | | form.addressDetail = data.addressDetail; |
| | | form.isDefault = data.isDefault; |
| | |
| | | <template> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | scrollViewClassName="common-page-infinite-scroll-list" |
| | | v-bind="infiniteLoadingProps" |
| | | > |
| | | <div class="mineCollectTask-service-list"> |
| | | <TaskCard |
| | | <StandardServiceCard |
| | | v-for="item in infiniteLoadingProps.flattenListData" |
| | | :key="item.id" |
| | | @click="goSerciceDetail(item)" |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { TaskCard } from '@12333/components'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import * as taskUserServices from '@12333/services/apiV2/taskUser'; |
| | | import { useInfiniteLoading, useTaskList } from '@12333/hooks'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { EnumPagedListOrder, EnumStandardServiceReleaseStatus } from '@12333/constants'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | releaseStatus: EnumStandardServiceReleaseStatus.InProcess, |
| | | isCollected: true, |
| | | }); |
| | | |
| | | const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetTaskInfosQuery = { |
| | | let params: API.GetStandardServicesQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'collectionTime', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | isCollected: true, |
| | | releaseStatus: queryState.releaseStatus, |
| | | isCollected: queryState.isCollected, |
| | | }; |
| | | |
| | | return taskServices.getOpenTaskInfos(params, { |
| | | return standardServiceServices.getOpenStandardServices(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getOpenTaskInfos'], |
| | | queryKey: ['standardServiceServices/getOpenStandardServices', queryState], |
| | | } |
| | | ); |
| | | |
| | | function goSerciceDetail(item: any) { |
| | | function goSerciceDetail(item: API.GetStandardServicesQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.serciceDetail}?id=${item.id}`, |
| | | }); |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="mineCollectTask-page-wrapper" :title="'ææ¶èçä»»å¡'"> |
| | | <PageLayout class="mineCollectTask-page-wrapper" :title="'ææ¶èçä»»å¡'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </PageLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import MineServiceDetailView from '../../components/MineServiceDetailView.vue'; |
| | | import { MineServiceDetailView } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { useCheckReceiveTaskUserSubmit } from '@12333/hooks'; |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ProTabs, ProTabPane } from '@12333/components'; |
| | | import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants'; |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ProTabs, ProTabPane } from '@12333/components'; |
| | | import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants'; |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import MineServiceDetailView from '../../components/MineServiceDetailView.vue'; |
| | | import { MineServiceDetailView } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { RouterPath } from '@/constants'; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <ContentScrollView hasPaddingTop> |
| | | <ServiceDetailAddressCard |
| | | :name="selectedAddress?.name ?? ''" |
| | | :contactPhoneNumber="selectedAddress?.contactPhoneNumber ?? ''" |
| | | :addressDetail="selectedAddress?.addressDetail ?? ''" |
| | | showArrow |
| | | @click="goSelectAddress" |
| | | /> |
| | | <ServiceDetailGoodCard |
| | | :name="detail?.name" |
| | | :price="spec?.price" |
| | | :specName="spec?.name" |
| | | :specNumber="specNumber" |
| | | :imgUrl="detail?.files?.[0]" |
| | | /> |
| | | <!-- <List> |
| | | <ListItem title="æå¡æ¶é´"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ 'è¯·éæ©' }}</div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="æå¡æºæ"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ 'è¯·éæ©' }}</div> |
| | | </template> |
| | | </ListItem> |
| | | </List> --> |
| | | <nut-form :model-value="form" ref="formRef" :rules="rules" class="addStandardOrder-form"> |
| | | <nut-form-item |
| | | label="æå¡å¼å§æ¶é´:" |
| | | class="bole-form-item" |
| | | prop="beginTime" |
| | | label-width="90px" |
| | | > |
| | | <ChooseInputWithDatePicker |
| | | v-model="form.beginTime" |
| | | :minDate="nowDate" |
| | | placeholder="è¯·éæ©" |
| | | type="datetime" |
| | | format="YYYY-MM-DD HH:mm:ss" |
| | | ></ChooseInputWithDatePicker> |
| | | </nut-form-item> |
| | | <nut-form-item |
| | | label="æå¡ç»ææ¶é´:" |
| | | class="bole-form-item" |
| | | prop="endTime" |
| | | label-width="90px" |
| | | > |
| | | <ChooseInputWithDatePicker |
| | | v-model="form.endTime" |
| | | :minDate="endMinTime" |
| | | :maxDate="endMaxTime" |
| | | placeholder="è¯·éæ©" |
| | | type="datetime" |
| | | format="YYYY-MM-DD HH:mm:ss" |
| | | ></ChooseInputWithDatePicker> |
| | | </nut-form-item> |
| | | <nut-form-item |
| | | label="夿³¨:" |
| | | class="bole-form-item alignTop" |
| | | prop="remark" |
| | | label-width="90px" |
| | | > |
| | | <nut-textarea |
| | | v-model="form.remark" |
| | | class="bole-input-textarea" |
| | | rows="4" |
| | | placeholder="请填å夿³¨ä¿¡æ¯" |
| | | > |
| | | </nut-textarea> |
| | | </nut-form-item> |
| | | </nut-form> |
| | | </ContentScrollView> |
| | | <PageFooter> |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm" |
| | | >ç«å³ä¸å</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | | <nut-address |
| | | v-model:visible="form.selectAddressVisible" |
| | | v-model:value="form.addressId" |
| | | type="exist" |
| | | :exist-address="existAddress" |
| | | :is-show-custom-address="false" |
| | | @selected="selected" |
| | | exist-address-title="éæ©å°å" |
| | | ></nut-address> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | ServiceDetailAddressCard, |
| | | ServiceDetailGoodCard, |
| | | List, |
| | | ListItem, |
| | | ChooseInputWithDatePicker, |
| | | } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { RouterPath } from '@/constants'; |
| | | import { useStandardServiceDetail } from '@12333/hooks'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; |
| | | import dayjs from 'dayjs'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id ?? ''; |
| | | const specId = route.params?.specId ?? ''; |
| | | const specNumber = Number(route.params?.specNumber); |
| | | |
| | | const form = reactive({ |
| | | addressId: '', |
| | | selectAddressVisible: false, |
| | | beginTime: '', |
| | | endTime: '', |
| | | supplierEnterpriseId: '', |
| | | enterpriseEmployeeIds: [] as string[], |
| | | remark: '', |
| | | }); |
| | | |
| | | const nowDate = dayjs().toDate(); |
| | | const endMinTime = computed(() => { |
| | | if (form.beginTime) { |
| | | return dayjs(form.beginTime).add(1, 'minute').toDate(); |
| | | } else { |
| | | return dayjs().toDate(); |
| | | } |
| | | }); |
| | | const endMaxTime = computed(() => { |
| | | if (form.beginTime) { |
| | | return dayjs(dayjs(form.beginTime).format('YYYY-MM-DD 23:59:59')).toDate(); |
| | | } else { |
| | | return undefined; |
| | | } |
| | | }); |
| | | |
| | | const rules = reactive<FormRules>({ |
| | | beginTime: [{ required: true, message: 'è¯·éæ©æå¡å¼å§æ¶é´' }], |
| | | endTime: [{ required: true, message: 'è¯·éæ©æå¡ç»ææ¶é´' }], |
| | | }); |
| | | |
| | | const { isLoading, isError, detail, refetch } = useStandardServiceDetail({ |
| | | id, |
| | | }); |
| | | |
| | | const spec = computed(() => { |
| | | if (detail.value.specs?.length > 0) { |
| | | return detail.value.specs.find((x) => x.id === specId); |
| | | } |
| | | return null; |
| | | }); |
| | | |
| | | const { infiniteLoadingProps } = useEnterpriseAddresses({ |
| | | rows: 100, |
| | | onSuccess(res) { |
| | | const data = res.pages[0].data; |
| | | const address = data.find((item) => item.isDefault); |
| | | if (address) { |
| | | form.addressId = address.id; |
| | | } else { |
| | | form.addressId = data[0].id; |
| | | } |
| | | }, |
| | | }); |
| | | |
| | | const existAddress = computed(() => { |
| | | return infiniteLoadingProps.value.flattenListData.map((x) => ({ |
| | | id: x.id, |
| | | addressDetail: x.addressDetail, |
| | | cityName: '', |
| | | countyName: '', |
| | | provinceName: '', |
| | | selectedAddress: x.id === form.addressId, |
| | | townName: '', |
| | | name: x.name, |
| | | phone: x.contactPhoneNumber, |
| | | })); |
| | | }); |
| | | |
| | | const selectedAddress = computed(() => { |
| | | const address = infiniteLoadingProps.value.flattenListData.find( |
| | | (item) => item.id === form.addressId |
| | | ); |
| | | return address || infiniteLoadingProps.value.flattenListData[0]; |
| | | }); |
| | | |
| | | function goSelectAddress() { |
| | | // Taro.navigateTo({ |
| | | // url: `${RouterPath.addressManange}?mode=select`, |
| | | // }); |
| | | form.selectAddressVisible = true; |
| | | } |
| | | |
| | | const selected = (prevExistAdd, nowExistAdd, arr) => { |
| | | form.addressId = nowExistAdd.id; |
| | | }; |
| | | |
| | | const formRef = ref<any>(null); |
| | | function goConfirm() { |
| | | if (!formRef.value) return; |
| | | formRef.value.validate().then(({ valid, errors }: any) => { |
| | | if (valid) { |
| | | // addStandardOrder(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | async function addStandardOrder() { |
| | | try { |
| | | let params: API.AddStandardOrderCommand = { |
| | | serviceId: detail.value.id, |
| | | serviceName: detail.value.name, |
| | | serviceCode: detail.value.code, |
| | | specId: spec.value.id, |
| | | specName: spec.value.name, |
| | | specPrice: spec.value.price ?? 0, |
| | | specNumber: specNumber, |
| | | addressId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | name: detail.value.name, |
| | | contactPhoneNumber: 'string', |
| | | provinceCode: 'string', |
| | | provinceContent: 'string', |
| | | cityCode: 'string', |
| | | cityContent: 'string', |
| | | areaCode: 'string', |
| | | areaContent: 'string', |
| | | addressName: 'string', |
| | | addressDetail: 'string', |
| | | longitude: 0, |
| | | latitude: 0, |
| | | beginTime: '2025-12-24T08:25:08.372Z', |
| | | endTime: '2025-12-24T08:25:08.372Z', |
| | | supplierEnterpriseId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | enterpriseEmployeeIds: ['3fa85f64-5717-4562-b3fc-2c963f66afa6'], |
| | | remark: 'string', |
| | | payAccess: 1, |
| | | }; |
| | | let res = await standardOrderServices.addStandardOrder(params); |
| | | } catch (error) {} |
| | | } |
| | | |
| | | async function pay() { |
| | | try { |
| | | let params: API.PayStandardOrderCommand = { |
| | | id: '9e919af2-3d33-4eac-f6dc-08de429676b3', |
| | | }; |
| | | let res = await standardOrderServices.payStandardOrder(params); |
| | | if (res) { |
| | | Taro.requestPayment({ |
| | | timeStamp: res.timestamp, |
| | | nonceStr: res.nonceStr, |
| | | package: res.package, |
| | | signType: res.signType as any, |
| | | paySign: res.paySign, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .addStandardOrder-page-wrapper { |
| | | .addStandardOrder-form { |
| | | .nut-cell-group__wrap { |
| | | box-shadow: none; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageLayout class="addStandardOrder-page-wrapper" title="é¢çº¦ä¸å" has-border> |
| | | <InnerPage /> |
| | | </PageLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'addStandardOrder', |
| | | }); |
| | | </script> |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="mineHire-page-wrapper" :title="'æå¡å'" :need-auth="false"> |
| | | <PageLayout class="serciceDetail-page-wrapper" :title="detail?.name ?? ''" :need-auth="false"> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <ContentScrollView style="background-color: transparent"> serciceDetail </ContentScrollView> |
| | | <PageFooter> |
| | | <!-- <PageFooterAction |
| | | :icon="IconShare" |
| | | text="å享" |
| | | :isFlex="false" |
| | | openType="share" |
| | | ></PageFooterAction> |
| | | <PageFooterAction |
| | | :icon="userResumeInfo.isCollected ? IconAttentionActive : IconAttention" |
| | | text="æ¶è" |
| | | :isFlex="false" |
| | | @click="handleAttention" |
| | | ></PageFooterAction> --> |
| | | <PageFooterBtn type="primary" @click="skuState.visible = true">é¢çº¦ä¸å</PageFooterBtn> |
| | | <PageFooterBtn type="primary" @click="pay">é¢çº¦ä¸å</PageFooterBtn> |
| | | </PageFooter> |
| | | <InfiniteLoading |
| | | commonMode |
| | | :refetch="refetch" |
| | | :isLoading="isLoading" |
| | | :isError="isError" |
| | | :showMoreText="false" |
| | | scrollViewClassName="common-infinite-scroll-list-no-padding" |
| | | > |
| | | <div class="serciceDetail-top-view"> |
| | | <SquareView> |
| | | <nut-swiper |
| | | :auto-play="3000" |
| | | v-if="detail?.files?.length > 0" |
| | | class="serciceDetail-swiper" |
| | | > |
| | | <nut-swiper-item |
| | | v-for="(item, index) in detail.files" |
| | | :key="item" |
| | | class="serciceDetail-swiper-item" |
| | | > |
| | | <img |
| | | :src="setOSSLink(item)" |
| | | class="serciceDetail-swiper-item-img" |
| | | draggable="false" |
| | | /> |
| | | </nut-swiper-item> |
| | | </nut-swiper> |
| | | </SquareView> |
| | | <div class="serciceDetail-top-view-title-wrapper"> |
| | | <div class="serciceDetail-price-wrapper"> |
| | | <div class="serciceDetail-price">{{ toThousand(minPrice) }}</div> |
| | | <div class="serciceDetail-price-unit">å
èµ·</div> |
| | | </div> |
| | | <div class="serciceDetail-top-view-title">{{ detail?.name ?? '' }}</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <List class="serciceDetail-content-list"> |
| | | <ListItem title="è§æ ¼" @click="openSkuDialog()"> |
| | | <template #extra> |
| | | <div>å
±{{ detail.specs?.length }}ç±»</div> |
| | | </template> |
| | | </ListItem> |
| | | </List> |
| | | <ProTabs |
| | | v-model="tab" |
| | | name="serciceDetail-content-tab" |
| | | class="serciceDetail-content-tabs" |
| | | flexTitle |
| | | > |
| | | <ProTabPane :title="`æå¡è¯¦æ
`" pane-key="1"> |
| | | <RichEditorContent :content="detail?.description ?? ''"></RichEditorContent> |
| | | </ProTabPane> |
| | | <ProTabPane :title="`客æ·è¯ä»·`" pane-key="2"> |
| | | <NoData /> |
| | | </ProTabPane> |
| | | <ProTabPane :title="`ç¸å
³æ¨è`" pane-key="3"> |
| | | <NoData /> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | </InfiniteLoading> |
| | | <Sku |
| | | v-model:visible="skuState.visible" |
| | | :sku="skuState.sku" |
| | |
| | | @clickBtnOperate="clickBtnOperate" |
| | | > |
| | | </Sku> |
| | | <PageFooter> |
| | | <PageFooterAction |
| | | :icon="detail.isCollection ? IconAttentionActive : IconAttention" |
| | | text="æ¶è" |
| | | :isFlex="false" |
| | | @click="handleAttention" |
| | | ></PageFooterAction> |
| | | <PageFooterAction |
| | | :icon="IconShare" |
| | | text="客æ" |
| | | :isFlex="false" |
| | | :open-type="'contact'" |
| | | ></PageFooterAction> |
| | | <PageFooterBtn type="primary" @click="openSkuDialog()">é¢çº¦ä¸å</PageFooterBtn> |
| | | </PageFooter> |
| | | </LoadingLayout> |
| | | </PageLayoutWithBg> |
| | | </PageLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { useStandardServiceDetail } from '@12333/hooks'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import { toThousand, setOSSLink } from '@12333/utils'; |
| | | import { Sku, Goods, SkuItem } from '@12333/components'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { toThousand, setOSSLink, Message } from '@12333/utils'; |
| | | import { |
| | | Sku, |
| | | Goods, |
| | | SkuItem, |
| | | SkuUtils, |
| | | List, |
| | | ListItem, |
| | | ProTabs, |
| | | ProTabPane, |
| | | SquareView, |
| | | } from '@12333/components'; |
| | | import { useAccessLogin } from '@/hooks'; |
| | | import IconShare from '@/assets/flexJob/icon-share.png'; |
| | | import IconAttention from '@/assets/flexJob/icon-attention-lg.png'; |
| | | import IconAttentionActive from '@/assets/flexJob/icon-attention-lg-active.png'; |
| | | |
| | | defineOptions({ |
| | | name: 'serciceDetail', |
| | |
| | | const router = Taro.useRouter(); |
| | | const id = router.params?.id ?? ''; |
| | | |
| | | const { isLoading, isError, detail, refetch } = useStandardServiceDetail({ |
| | | const tab = ref('1'); |
| | | |
| | | const { isLoading, isError, detail, refetch, minPrice } = useStandardServiceDetail({ |
| | | id, |
| | | onSuccess(res) { |
| | | skuState.sku = [ |
| | | { |
| | | id: '1', |
| | | id: SkuUtils.DefaultSkuSpecId, |
| | | name: 'è§æ ¼', |
| | | list: res.specs.map((item, index) => ({ |
| | | id: item.id, |
| | | name: item.name, |
| | | price: item.price, |
| | | active: index === 0, |
| | | disable: false, |
| | | })), |
| | | }, |
| | | ]; |
| | | skuState.goods = { |
| | | skuId: '1', |
| | | skuId: SkuUtils.DefaultSkuSpecId, |
| | | price: toThousand(res.specs[0].price), |
| | | imagePath: setOSSLink(res.files[0]), |
| | | name: res.name, |
| | |
| | | }); |
| | | |
| | | // åºé¨æä½æé®è§¦å |
| | | const clickBtnOperate = (op) => { |
| | | console.log('ç¹å»äºæä½æé®', op); |
| | | const clickBtnOperate = (op: { type: string; value: number }) => { |
| | | goAddStandardOrder(op.value); |
| | | }; |
| | | |
| | | async function addStandardOrder() { |
| | | try { |
| | | let params: API.AddStandardOrderCommand = { |
| | | serviceId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | serviceName: 'string', |
| | | specId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | specName: 'string', |
| | | specPrice: 0, |
| | | specNumber: 0, |
| | | addressId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | beginTime: '2025-12-24T06:44:24.840Z', |
| | | endTime: '2025-12-24T06:44:24.840Z', |
| | | supplierEnterpriseId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | enterpriseEmployeeIds: ['3fa85f64-5717-4562-b3fc-2c963f66afa6'], |
| | | remark: 'string', |
| | | payAccess: 1, |
| | | }; |
| | | let res = await standardOrderServices.addStandardOrder(params); |
| | | } catch (error) {} |
| | | } |
| | | const openSkuDialog = () => { |
| | | skuState.visible = true; |
| | | }; |
| | | |
| | | async function pay() { |
| | | const goAddStandardOrder = useAccessLogin((specNumber: number) => { |
| | | const spec = SkuUtils.getCurrentActiveSpec(skuState.sku); |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.addStandardOrder}?specNumber=${specNumber}&specId=${spec.id}&id=${id}`, |
| | | }); |
| | | }); |
| | | |
| | | async function handleAttention() { |
| | | try { |
| | | let params: API.PayStandardOrderCommand = { |
| | | id: '9e919af2-3d33-4eac-f6dc-08de429676b3', |
| | | let params: API.CollectionStandardServiceCommand = { |
| | | ids: [id], |
| | | isCollect: !detail.value.isCollection, |
| | | }; |
| | | let res = await standardOrderServices.payStandardOrder(params); |
| | | let res = await standardServiceServices.collectionStandardService(params); |
| | | if (res) { |
| | | Taro.requestPayment({ |
| | | timeStamp: res.timestamp, |
| | | nonceStr: res.nonceStr, |
| | | package: res.package, |
| | | signType: res.signType as any, |
| | | paySign: res.paySign, |
| | | }); |
| | | refetch({ type: 'inactive' }); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .serciceDetail-page-wrapper { |
| | | .serciceDetail-swiper { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | .serciceDetail-swiper-item-img { |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | /* å¯éï¼è°æ´å¾çè£åªç坹齿¹å¼ï¼é»è®¤å±
ä¸ï¼ */ |
| | | object-position: center center; |
| | | } |
| | | } |
| | | |
| | | .serciceDetail-top-view { |
| | | margin-bottom: 20px; |
| | | background-color: #fff; |
| | | |
| | | .serciceDetail-top-view-title-wrapper { |
| | | padding: 24px boleGetCssVar('size', 'body-padding-h') 32px; |
| | | |
| | | .serciceDetail-price-wrapper { |
| | | display: flex; |
| | | align-items: flex-end; |
| | | margin-bottom: 24px; |
| | | |
| | | .serciceDetail-price { |
| | | font-weight: 600; |
| | | font-size: 48px; |
| | | color: #ff6414; |
| | | line-height: 52px; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .serciceDetail-price-unit { |
| | | font-weight: 400; |
| | | font-size: 28px; |
| | | color: #ff6414; |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | |
| | | .serciceDetail-top-view-title { |
| | | font-weight: 500; |
| | | font-size: 32px; |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | line-height: 44px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .serciceDetail-content-list { |
| | | margin-bottom: 20px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | "CClient:staging:build": "pnpm run -C apps/cMiniApp build:weapp:staging:upload", |
| | | "UnderTakeClient:build": "pnpm run -C apps/underTakeMiniApp build:weapp:upload", |
| | | "UnderTakeClient:staging:build": "pnpm run -C apps/underTakeMiniApp build:weapp:staging:upload", |
| | | "Housekeeping:build": "pnpm run -C apps/housekeepingMiniApp build:weapp:upload", |
| | | "Housekeeping:staging:build": "pnpm run -C apps/housekeepingMiniApp build:weapp:staging:upload", |
| | | "build:all": "pnpm run -r --parallel build:weapp:upload" |
| | | }, |
| | | "browserslist": [ |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="mine-service-detail-view-wrapper"> |
| | | <ServiceDetailAddressCard |
| | | :name="contactName" |
| | | :contactPhoneNumber="contactPhoneNumber" |
| | | :addressDetail="addressDetail" |
| | | /> |
| | | <ServiceDetailGoodCard |
| | | :name="serviceName" |
| | | :price="price" |
| | | :specName="specName" |
| | | :specNumber="specNumber" |
| | | :imgUrl="imgUrl" |
| | | /> |
| | | |
| | | <List> |
| | | <ListItem title="订åç¶æ" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ '订åç¶æ' }}</div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="æå¡æ¶é´" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item"> |
| | | {{ '2025-12-12 12:00-14:00' }} |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="æå¡æºæ" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ 'xxxxxå
¬å¸' }}</div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="夿³¨" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ 'ææ¯å¤æ³¨ä¿¡æ¯' }}</div> |
| | | </template> |
| | | </ListItem> |
| | | </List> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import List from '../List/List.vue'; |
| | | import ListItem from '../List/ListItem.vue'; |
| | | import ServiceDetailAddressCard from './ServiceDetailAddressCard.vue'; |
| | | import ServiceDetailGoodCard from './ServiceDetailGoodCard.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'MineServiceDetailView', |
| | | }); |
| | | |
| | | type Props = { |
| | | contactName?: string; |
| | | /** èç³»çµè¯ */ |
| | | contactPhoneNumber?: string; |
| | | /** çå¸åº+详ç»å°å+é¨çå· */ |
| | | addressDetail?: string; |
| | | serviceName?: string; |
| | | price?: number; |
| | | specName?: string; |
| | | specNumber?: number; |
| | | imgUrl?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .mine-service-detail-view-wrapper { |
| | | .mine-service-detail-card { |
| | | padding: 24px 32px; |
| | | margin-bottom: 24px; |
| | | background-color: #fff; |
| | | border-radius: 12px; |
| | | } |
| | | |
| | | .mine-service-detail-view-list-item { |
| | | font-weight: 400; |
| | | font-size: 28px; |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | </style> |
| ÎļþÃû´Ó apps/housekeepingMiniApp/src/components/Card/ReserveServiceCard.vue ÐÞ¸Ä |
| | |
| | | EnumTaskSettlementStatus, |
| | | EnumTaskStatus, |
| | | EnumUserGender, |
| | | EnumBillingMethodText, |
| | | EnumUserGenderText, |
| | | EnumSettlementCycleText, |
| | | BillingMethodEnumUnit, |
| | | EnumTaskUserHireStatus, |
| | | } from '@12333/constants'; |
| | | import dayjs from 'dayjs'; |
| | | import { TaskUtils, toThousand } from '@12333/utils'; |
| | | import { toThousand } from '@12333/utils'; |
| | | import { TaskPrice } from '@12333/components'; |
| | | |
| | | defineOptions({ |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="mine-service-detail-view-address"> |
| | | <div class="mine-service-detail-view-address-inner"> |
| | | <div class="mine-service-detail-view-title-wrapper"> |
| | | <div class="mine-service-detail-view-title">æå¡å°å</div> |
| | | </div> |
| | | <div class="mine-service-detail-view-item">{{ addressDetail }}</div> |
| | | <div class="mine-service-detail-view-item">{{ name }} {{ contactPhoneNumber }}</div> |
| | | </div> |
| | | <img v-if="showArrow" :src="IconArrow" class="mine-service-detail-view-arrow" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import IconArrow from '@/assets/setting/icon-arrow.png'; |
| | | |
| | | defineOptions({ |
| | | name: 'ServiceDetailAddressCard', |
| | | }); |
| | | |
| | | type Props = { |
| | | name?: string; |
| | | /** èç³»çµè¯ */ |
| | | contactPhoneNumber?: string; |
| | | /** çå¸åº+详ç»å°å+é¨çå· */ |
| | | addressDetail?: string; |
| | | showArrow?: boolean; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | showArrow: false, |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .mine-service-detail-view-address { |
| | | padding: 24px 32px; |
| | | margin-bottom: 24px; |
| | | background-color: #fff; |
| | | border-radius: 12px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .mine-service-detail-view-address-inner { |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | |
| | | .mine-service-detail-view-title-wrapper { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 14px; |
| | | |
| | | .mine-service-detail-view-title { |
| | | flex: 1; |
| | | min-width: 0; |
| | | @include ellipsis; |
| | | font-size: 30px; |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | line-height: 42px; |
| | | } |
| | | } |
| | | |
| | | .mine-service-detail-view-item { |
| | | font-weight: 400; |
| | | @include ellipsis; |
| | | font-size: 24px; |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | line-height: 36px; |
| | | |
| | | & + .mine-service-detail-view-item { |
| | | margin-top: 14px; |
| | | } |
| | | } |
| | | |
| | | .mine-service-detail-view-arrow { |
| | | width: 32px; |
| | | height: 32px; |
| | | margin-left: 12px; |
| | | } |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="service-detail-good-card"> |
| | | <nut-card |
| | | :img-url="setOSSLink(imgUrl)" |
| | | :title="name ?? ''" |
| | | :price="toThousand(price ?? 0)" |
| | | class="service-good-card" |
| | | > |
| | | <template #prolist> |
| | | <div class="card-tag-list"> |
| | | <span class="tag">{{ specName }}</span> |
| | | </div> |
| | | </template> |
| | | <template #origin> |
| | | <div></div> |
| | | </template> |
| | | <template #footer> |
| | | <div class="card-footer">x{{ specNumber }}</div> |
| | | </template> |
| | | </nut-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { toThousand, setOSSLink } from '@12333/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'ServiceDetailGoodCard', |
| | | }); |
| | | |
| | | type Props = { |
| | | name?: string; |
| | | price?: number; |
| | | specName?: string; |
| | | specNumber?: number; |
| | | imgUrl?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .service-detail-good-card { |
| | | padding: 24px 32px; |
| | | margin-bottom: 24px; |
| | | background-color: #fff; |
| | | border-radius: 12px; |
| | | |
| | | .card-tag-list { |
| | | margin: 6px 0 2px; |
| | | height: 30px; |
| | | overflow: hidden; |
| | | display: flex; |
| | | |
| | | .tag { |
| | | padding: 0 10px; |
| | | border-radius: 2px; |
| | | font-size: 20px; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | color: #999; |
| | | background-color: #f2f2f7; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | |
| | | .nut-card__right__shop { |
| | | /* flex: 1; |
| | | min-height: 0; */ |
| | | } |
| | | |
| | | .card-footer { |
| | | /* justify-content: flex-end; */ |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | } |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="nut-category"> |
| | | <div class="nut-category__cateList"> |
| | | <div v-if="type == 'classify' || type == 'text'"> |
| | | <div v-for="(item, index) in category" :key="index" class="nut-category__cateListLeft"> |
| | | <div |
| | | :class="[ |
| | | checkIndex == index |
| | | ? 'nut-category__cateListItemChecked' |
| | | : 'nut-category__cateListItem', |
| | | ]" |
| | | @click="getChildList(index)" |
| | | > |
| | | {{ item.catName }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <slot></slot> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'ProCategory', |
| | | }); |
| | | |
| | | type CategoryType = { |
| | | catName?: string; |
| | | [key: string]: any; |
| | | }; |
| | | |
| | | type Props = { |
| | | type?: 'classify' | 'text' | 'custom'; |
| | | category?: CategoryType[]; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | type: 'classify', |
| | | category: () => [], |
| | | }); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'change', index: number): void; |
| | | }>(); |
| | | |
| | | const checkIndex = ref(0); |
| | | const categoryLeft = ref(false); //æ¯å¦æ¾ç¤ºslot |
| | | |
| | | const getChildList = (index: number) => { |
| | | checkIndex.value = index; |
| | | emit('change', index); |
| | | }; |
| | | |
| | | defineExpose({ getChildList }); |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="square-view" :style="{ paddingTop: pTopRate }"> |
| | | <div class="square-view-inner"> |
| | | <slot></slot> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { computed } from 'vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'SquareView', |
| | | }); |
| | | |
| | | type Props = { |
| | | widthPower?: number; |
| | | heightPower?: number; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | widthPower: 1, |
| | | heightPower: 1, |
| | | }); |
| | | |
| | | const pTopRate = computed(() => { |
| | | return `${(props.heightPower / props.widthPower) * 100}%`; |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .square-view { |
| | | position: relative; |
| | | |
| | | .square-view-inner { |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | left: 0; |
| | | top: 0; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | type: props.type, |
| | | maxDate: props.maxDate, |
| | | onConfirm: ({ selectedValue }) => { |
| | | emit('update:modelValue', dayjs(selectedValue.join('-')).format(props.format)); |
| | | let _selectedVale = ''; |
| | | if (selectedValue.length > 3) { |
| | | _selectedVale = `${selectedValue.slice(0, 3).join('-')} ${selectedValue |
| | | .slice(3) |
| | | .join(':')}`; |
| | | } else { |
| | | _selectedVale = selectedValue.join('-'); |
| | | } |
| | | emit('update:modelValue', dayjs(_selectedVale).format(props.format)); |
| | | onClose(); |
| | | }, |
| | | onChange: () => { |
| | |
| | | <template #sku-header-price> |
| | | <div class="pro-sku-header"> |
| | | <div class="pro-sku-header-title">{{ goods.name }}</div> |
| | | <nut-price :price="goods.price" /> |
| | | <div class="pro-sku-header-spec">{{ currentSpecName }}</div> |
| | | <nut-price :price="goods.price" size="large" /> |
| | | </div> |
| | | </template> |
| | | <template #sku-header-extra> |
| | | <div></div> |
| | | </template> |
| | | </nut-sku> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { toThousand } from '@12333/utils'; |
| | | import { Goods, SkuItem } from './sku'; |
| | | import { Goods, SkuItem, SkuUtils } from './sku'; |
| | | import { computed } from 'vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'Sku', |
| | |
| | | |
| | | const selectSku = (ss) => { |
| | | const { sku, skuIndex, parentSku, parentIndex } = ss; |
| | | console.log('sku: ', sku); |
| | | if (sku.disable) return false; |
| | | props.sku[parentIndex].list.forEach((s) => { |
| | | s.active = s.id == sku.id; |
| | |
| | | goods.value = { |
| | | ...goods.value, |
| | | skuId: sku.id, |
| | | price: toThousand(sku.price), |
| | | price: sku.price, |
| | | }; |
| | | }; |
| | | |
| | | const currentSpecName = computed(() => { |
| | | const spec = SkuUtils.getCurrentActiveSpec(props.sku); |
| | | if (spec) { |
| | | return spec.name ?? ''; |
| | | } |
| | | return ''; |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | .pro-sku-header { |
| | | flex: 1; |
| | | min-height: 0; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | |
| | | .pro-sku-header-title { |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | } |
| | | |
| | | .pro-sku-header-spec { |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | font-size: 26px; |
| | | } |
| | | } |
| | | |
| | | .nut-sku-content { |
| | | width: 100%; |
| | | box-sizing: border-box; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | disable: boolean; |
| | | id: string; |
| | | name: string; |
| | | price: number; |
| | | }[]; |
| | | }; |
| | | |
| | |
| | | skuId: string; |
| | | name: string; |
| | | }; |
| | | |
| | | export class SkuUtils { |
| | | static DefaultSkuSpecId = 'spec'; |
| | | |
| | | static getCurrentSku(skuList: SkuItem[], goods: Goods) { |
| | | const sku = skuList.find((item) => item.id === goods.skuId); |
| | | return sku; |
| | | } |
| | | |
| | | static getCurrentSpecSkuItem(skuList: SkuItem[]) { |
| | | const sku = skuList.find((item) => item.id === this.DefaultSkuSpecId); |
| | | return sku; |
| | | } |
| | | |
| | | static getCurrentActiveSpec(skuList: SkuItem[]) { |
| | | const sku = this.getCurrentSpecSkuItem(skuList); |
| | | if (sku) { |
| | | return sku.list.find((item) => item.active); |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | export { default as TaskPrice } from './Card/TaskPrice.vue'; |
| | | export { default as TaskDetailWelfareItem } from './Card/TaskDetailWelfareItem.vue'; |
| | | export { default as TaskCheckPersonalView } from './Card/TaskCheckPersonalView.vue'; |
| | | export { default as MineServiceDetailView } from './Card/MineServiceDetailView.vue'; |
| | | export { default as TaskCheckHistoryCard } from './Card/TaskCheckHistoryCard.vue'; |
| | | export { default as FlexJobTopView } from './Card/FlexJobTopView.vue'; |
| | | export { default as PayrollManageDetailCard } from './Card/PayrollManageDetailCard.vue'; |
| | | export { default as ReserveServiceCard } from './Card/ReserveServiceCard.vue'; |
| | | export { default as QueryMenuView } from './Menu/QueryMenuView.vue'; |
| | | export { default as QueryMenuItem } from './Menu/QueryMenuItem.vue'; |
| | | export { default as ProRadio } from './Form/ProRadio.vue'; |
| | |
| | | export { default as ChunkTitle } from './Chunk/ChunkTitle.vue'; |
| | | export { default as Sku } from './Sku/Sku.vue'; |
| | | export * from './Sku/sku'; |
| | | export { default as SquareView } from './Chunk/SquareView.vue'; |
| | | export { default as ProCategory } from './Category/Category.vue'; |
| | | export { default as ServiceDetailAddressCard } from './Card/ServiceDetailAddressCard.vue'; |
| | | export { default as ServiceDetailGoodCard } from './Card/ServiceDetailGoodCard.vue'; |
| | |
| | | Pass = 30, |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åå页å表-éå¶åºæ¯ */ |
| | | export enum EnumGetStandardOrdersQueryScene { |
| | | /**é¢çº¦è®¢å */ |
| | | Appointment = 10, |
| | | /**æ¯ä»è®¢å */ |
| | | Pay = 20, |
| | | /**ç»ç®è®¢å */ |
| | | Settlement = 30, |
| | | } |
| | | |
| | | /** æä¿ä¾åºåè´¦å· */ |
| | | export enum EnumInsuranceSupplierAccess { |
| | | /**人èµå */ |
| | |
| | | Cancelled = 30, |
| | | } |
| | | |
| | | /** æ å订å鿬¾ç¶æ */ |
| | | export enum EnumStandardOrderRefundStatus { |
| | | /**å¾
鿬¾ */ |
| | | Wait = 10, |
| | | /**已鿬¾ */ |
| | | Completed = 20, |
| | | /**鿬¾å¤±è´¥ */ |
| | | Fail = 30, |
| | | } |
| | | |
| | | /** æ å订åç»ç®ç¶æ */ |
| | | export enum EnumStandardOrderSettlementStatus { |
| | | /**å¾
ç»ç® */ |
| | |
| | | export enum EnumUserWalletTransactionType { |
| | | /**æ¯ä» */ |
| | | Payment = 1, |
| | | /**鿬¾ */ |
| | | Refund = 2, |
| | | /**æ¶å
¥ */ |
| | | Income = 10, |
| | | /**æç° */ |
| | |
| | | return queryClient.ensureQueryData< |
| | | API.SelectOptionStringGetDictionaryDataSelectQueryResultOption[] |
| | | >({ |
| | | queryKey: ['dictionaryServices/getDictionaryDataSelect'], |
| | | queryKey: ['dictionaryServices/getDictionaryDataSelect', params], |
| | | }); |
| | | } |
| | | |
| | | function updateDictionaryDataSelect(categoryId?: string) { |
| | | queryClient.invalidateQueries({ |
| | | queryKey: ['dictionaryServices/getDictionaryDataSelect'], |
| | | queryKey: ['dictionaryServices/getDictionaryDataSelect', params], |
| | | }); |
| | | } |
| | | |
| | |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { MaybeRef, unref } from 'vue'; |
| | | import { computed, MaybeRef, unref } from 'vue'; |
| | | import { groupBy } from 'lodash'; |
| | | |
| | | type UseStandardServiceDetailOptions = { |
| | | id: MaybeRef<string>; |
| | |
| | | }, |
| | | }); |
| | | |
| | | const minPrice = computed(() => { |
| | | if (!data.value?.specs?.length) { |
| | | return 0; |
| | | } else { |
| | | return Math.min(...data.value.specs.map((x) => x.price)); |
| | | } |
| | | }); |
| | | |
| | | return { |
| | | detail: data, |
| | | refetch, |
| | | isLoading, |
| | | isError, |
| | | minPrice, |
| | | }; |
| | | } |
| | | |
| | | type UseStandardServiceListOptions = { |
| | | params?: MaybeRef<API.GetOpenStandardServiceListQuery>; |
| | | onSuccess?: (data: API.GetStandardServicesQueryResultItem[]) => any; |
| | | }; |
| | | |
| | | export function useStandardServiceList(options: UseStandardServiceListOptions = {}) { |
| | | const { params = {}, onSuccess } = options; |
| | | const { |
| | | data: standardServiceList, |
| | | refetch, |
| | | isLoading, |
| | | isError, |
| | | } = useQuery({ |
| | | queryKey: ['standardServiceServices/getOpenStandardServiceList', params], |
| | | queryFn: async () => { |
| | | return await standardServiceServices.getOpenStandardServiceList(unref(params), { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | placeholderData: () => [] as API.GetStandardServicesQueryResultItem[], |
| | | onSuccess(data) { |
| | | onSuccess?.(data); |
| | | }, |
| | | }); |
| | | |
| | | const standardServiceListForCategory = computed(() => { |
| | | return standardServiceList.value.map((x) => ({ |
| | | ...x, |
| | | catName: x.name, |
| | | })); |
| | | }); |
| | | |
| | | const standardServiceListForCategoryMap = computed(() => { |
| | | const group = groupBy(standardServiceListForCategory.value, 'jobCode'); |
| | | return group; |
| | | }); |
| | | |
| | | const queryClient = useQueryClient(); |
| | | |
| | | function ensureStandardServiceList() { |
| | | return queryClient.ensureQueryData<API.GetStandardServicesQueryResultItem[]>({ |
| | | queryKey: ['standardServiceServices/getOpenStandardServiceList', params], |
| | | }); |
| | | } |
| | | |
| | | return { |
| | | standardServiceList, |
| | | ensureStandardServiceList, |
| | | standardServiceListForCategory, |
| | | standardServiceListForCategoryMap, |
| | | }; |
| | | } |
| | |
| | | import * as logRecords from './logRecords'; |
| | | import * as dictionary from './dictionary'; |
| | | import * as taskCheckReceive from './taskCheckReceive'; |
| | | import * as standardOrder from './standardOrder'; |
| | | import * as standardService from './standardService'; |
| | | import * as userResume from './userResume'; |
| | | import * as auth from './auth'; |
| | | import * as taskUser from './taskUser'; |
| | | import * as enterpriseInsuranceProduct from './enterpriseInsuranceProduct'; |
| | | import * as standardOrder from './standardOrder'; |
| | | import * as eventUtils from './eventUtils'; |
| | | import * as enterpriseCooperationWallet from './enterpriseCooperationWallet'; |
| | | import * as insuranceProduct from './insuranceProduct'; |
| | |
| | | logRecords, |
| | | dictionary, |
| | | taskCheckReceive, |
| | | standardOrder, |
| | | standardService, |
| | | userResume, |
| | | auth, |
| | | taskUser, |
| | | enterpriseInsuranceProduct, |
| | | standardOrder, |
| | | eventUtils, |
| | | enterpriseCooperationWallet, |
| | | insuranceProduct, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ å订ååæ¶ POST /api/flexjob/standardOrder/cancelStandardOrderAppointment */ |
| | | /** æ å订ååæ¶é¢çº¦ POST /api/flexjob/standardOrder/cancelStandardOrderAppointment */ |
| | | export async function cancelStandardOrderAppointment( |
| | | body: API.CancelStandardOrderAppointmentCommand, |
| | | options?: API.RequestConfig |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ åè®¢åæ ¡éªæ¯ä»ç»æ POST /api/flexjob/standardOrder/checkPayStandardOrder */ |
| | | export async function checkPayStandardOrder( |
| | | body: API.CheckPayStandardOrderCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.CheckPayStandardOrderCommandResult>( |
| | | '/api/flexjob/standardOrder/checkPayStandardOrder', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ åè®¢åæ ¡éªéæ¬¾ç»æ POST /api/flexjob/standardOrder/checkRefundStandardOrder */ |
| | | export async function checkRefundStandardOrder( |
| | | body: API.CheckRefundStandardOrderCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.CheckRefundStandardOrderCommandResult>( |
| | | '/api/flexjob/standardOrder/checkRefundStandardOrder', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订å详æ
GET /api/flexjob/standardOrder/getStandardOrder */ |
| | | export async function getStandardOrder( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åé¢çº¦å页å表 POST /api/flexjob/standardOrder/getStandardOrderAppointments */ |
| | | export async function getStandardOrderAppointments( |
| | | body: API.GetStandardOrderAppointmentsQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardOrderAppointmentsQueryResult>( |
| | | '/api/flexjob/standardOrder/getStandardOrderAppointments', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ åè®¢åæ¯ä»å页å表 POST /api/flexjob/standardOrder/getStandardOrderPays */ |
| | | export async function getStandardOrderPays( |
| | | body: API.GetStandardOrderPaysQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardOrderPaysQueryResult>( |
| | | '/api/flexjob/standardOrder/getStandardOrderPays', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åå页å表 POST /api/flexjob/standardOrder/getStandardOrders */ |
| | | export async function getStandardOrders( |
| | | body: API.GetStandardOrdersQuery, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åæå¡äººåå页å表 POST /api/flexjob/standardOrder/getStandardOrderServers */ |
| | | export async function getStandardOrderServers( |
| | | body: API.GetStandardOrderServersQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardOrderServersQueryResult>( |
| | | '/api/flexjob/standardOrder/getStandardOrderServers', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åç»ç®å页å表 POST /api/flexjob/standardOrder/getStandardOrderSettlements */ |
| | | export async function getStandardOrderSettlements( |
| | | body: API.GetStandardOrderSettlementsQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardOrderSettlementsQueryResult>( |
| | | '/api/flexjob/standardOrder/getStandardOrderSettlements', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åä¾åºåå页å表 POST /api/flexjob/standardOrder/getStandardOrderSupplierEnterprises */ |
| | | export async function getStandardOrderSupplierEnterprises( |
| | | body: API.GetStandardOrderSupplierEnterprisesQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardOrderSupplierEnterprisesQueryResult>( |
| | | '/api/flexjob/standardOrder/getStandardOrderSupplierEnterprises', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ åè®¢åæ¯ä» POST /api/flexjob/standardOrder/payStandardOrder */ |
| | | export async function payStandardOrder( |
| | | body: API.PayStandardOrderCommand, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åæå¡è¯¦æ
GET /api/flexjob/standardService/getOpenStandardService */ |
| | | export async function getOpenStandardService( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | | params: API.APIgetOpenStandardServiceParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardServiceQueryResult>( |
| | | '/api/flexjob/standardService/getOpenStandardService', |
| | | { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢å¼æ¾æ å订åæå¡å页å表 POST /api/flexjob/standardService/getOpenStandardServiceList */ |
| | | export async function getOpenStandardServiceList( |
| | | body: API.GetOpenStandardServiceListQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardServicesQueryResultItem[]>( |
| | | '/api/flexjob/standardService/getOpenStandardServiceList', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢å¼æ¾æ å订åæå¡å页å表 POST /api/flexjob/standardService/getOpenStandardServices */ |
| | | export async function getOpenStandardServices( |
| | | body: API.GetOpenStandardServicesQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardServicesQueryResult>( |
| | | '/api/flexjob/standardService/getOpenStandardServices', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åæå¡è¯¦æ
GET /api/flexjob/standardService/getStandardService */ |
| | | export async function getStandardService( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åæå¡äººåå页å表 POST /api/flexjob/standardService/getStandardServiceServers */ |
| | | export async function getStandardServiceServers( |
| | | body: API.GetStandardServiceServersQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardServiceServersQueryResult>( |
| | | '/api/flexjob/standardService/getStandardServiceServers', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åæå¡ä¾åºåå页å表 POST /api/flexjob/standardService/getStandardServiceSupplierEnterprises */ |
| | | export async function getStandardServiceSupplierEnterprises( |
| | | body: API.GetStandardServiceSupplierEnterprisesQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetStandardServiceSupplierEnterprisesQueryResult>( |
| | | '/api/flexjob/standardService/getStandardServiceSupplierEnterprises', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** ä¿åæ å订åæå¡ POST /api/flexjob/standardService/saveStandardService */ |
| | | export async function saveStandardService( |
| | | body: API.SaveStandardServiceCommand, |
| | |
| | | roleId?: string; |
| | | } |
| | | |
| | | interface APIgetOpenStandardServiceParams { |
| | | /** Id */ |
| | | id?: string; |
| | | } |
| | | |
| | | interface APIgetPartyAEnterpriseParams { |
| | | /** åä½Id */ |
| | | id?: string; |
| | |
| | | operatorToken?: string; |
| | | } |
| | | |
| | | interface CheckPayStandardOrderCommand { |
| | | /** 订åId */ |
| | | id?: string; |
| | | } |
| | | |
| | | interface CheckPayStandardOrderCommandResult { |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | /** æ¯ä»æ¶é´ */ |
| | | payTime?: string; |
| | | /** æ¯ä»å®ææ¶é´ */ |
| | | payCompletedTime?: string; |
| | | } |
| | | |
| | | interface CheckReceiveTaskCommand { |
| | | /** æäº¤Id */ |
| | | id?: string; |
| | |
| | | checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus; |
| | | } |
| | | |
| | | interface CheckRefundStandardOrderCommand { |
| | | /** 订åIdï¼äºéä¸ï¼ */ |
| | | id?: string; |
| | | /** 鿬¾äº¤æç¼å·ï¼äºéä¸ï¼ */ |
| | | refundCode?: string; |
| | | } |
| | | |
| | | interface CheckRefundStandardOrderCommandResult { |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | /** æ¯ä»æ¶é´ */ |
| | | payTime?: string; |
| | | /** æ¯ä»å®ææ¶é´ */ |
| | | payCompletedTime?: string; |
| | | refundStatus?: EnumStandardOrderRefundStatus; |
| | | /** 鿬¾æ¶é´ */ |
| | | refundTime?: string; |
| | | /** 鿬¾å®ææ¶é´ */ |
| | | refundCompletedTime?: string; |
| | | } |
| | | |
| | | type ChooseWxmpPhoneNumberCommand = Record<string, any>; |
| | | |
| | | type ClearTaskCollectCommand = Record<string, any>; |
| | |
| | | Pass = 30, |
| | | } |
| | | |
| | | enum EnumGetStandardOrdersQueryScene { |
| | | /**é¢çº¦è®¢å */ |
| | | Appointment = 10, |
| | | /**æ¯ä»è®¢å */ |
| | | Pay = 20, |
| | | /**ç»ç®è®¢å */ |
| | | Settlement = 30, |
| | | } |
| | | |
| | | enum EnumInsuranceSupplierAccess { |
| | | /**人èµå */ |
| | | WaterDropCloud = 10, |
| | |
| | | Cancelled = 30, |
| | | } |
| | | |
| | | enum EnumStandardOrderRefundStatus { |
| | | /**å¾
鿬¾ */ |
| | | Wait = 10, |
| | | /**已鿬¾ */ |
| | | Completed = 20, |
| | | /**鿬¾å¤±è´¥ */ |
| | | Fail = 30, |
| | | } |
| | | |
| | | enum EnumStandardOrderSettlementStatus { |
| | | /**å¾
ç»ç® */ |
| | | Wait = 10, |
| | |
| | | enum EnumUserWalletTransactionType { |
| | | /**æ¯ä» */ |
| | | Payment = 1, |
| | | /**鿬¾ */ |
| | | Refund = 2, |
| | | /**æ¶å
¥ */ |
| | | Income = 10, |
| | | /**æç° */ |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultCheckPayStandardOrderCommandResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: CheckPayStandardOrderCommandResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultCheckRefundStandardOrderCommandResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: CheckRefundStandardOrderCommandResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultEnterpriseUserElectronSignCommandResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardOrderAppointmentsQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetStandardOrderAppointmentsQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardOrderPaysQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetStandardOrderPaysQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardOrderQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardOrderServersQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetStandardOrderServersQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardOrderSettlementsQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetStandardOrderSettlementsQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardOrdersQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardOrderSupplierEnterprisesQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetStandardOrderSupplierEnterprisesQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardServiceCommentsQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardServiceServersQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetStandardServiceServersQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardServicesQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetStandardServiceSupplierEnterprisesQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetStandardServiceSupplierEnterprisesQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetTaskEnterpriseQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultListGetStandardServicesQueryResultItem { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | /** æ°æ® */ |
| | | data?: GetStandardServicesQueryResultItem[]; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultListGetUserInfoRolesQueryResultItem { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | remark?: string; |
| | | } |
| | | |
| | | interface GetOpenStandardServiceListQuery { |
| | | /** å
³é®åï¼æå¡å/Idï¼ */ |
| | | keywords?: string; |
| | | /** å²ä½ç¼å· */ |
| | | jobCode?: string; |
| | | /** å建æ¶é´-èµ·å§ */ |
| | | createdTimeBegin?: string; |
| | | /** å建æ¶é´-æªæ¢ */ |
| | | createdTimeEnd?: string; |
| | | releaseStatus?: EnumStandardServiceReleaseStatus; |
| | | recommendStatus?: EnumStandardServiceRecommendStatus; |
| | | /** æ¯å¦æ¶è */ |
| | | isCollected?: boolean; |
| | | } |
| | | |
| | | interface GetOpenStandardServicesQuery { |
| | | /** å
³é®åï¼æå¡å/Idï¼ */ |
| | | keywords?: string; |
| | | /** å²ä½ç¼å· */ |
| | | jobCode?: string; |
| | | /** å建æ¶é´-èµ·å§ */ |
| | | createdTimeBegin?: string; |
| | | /** å建æ¶é´-æªæ¢ */ |
| | | createdTimeEnd?: string; |
| | | releaseStatus?: EnumStandardServiceReleaseStatus; |
| | | recommendStatus?: EnumStandardServiceRecommendStatus; |
| | | /** æ¯å¦æ¶è */ |
| | | isCollected?: boolean; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetOpenTaskInfosQuery { |
| | | /** å
³é®åï¼ä»»å¡åç§°ï¼ */ |
| | | keywords?: string; |
| | |
| | | signName?: string; |
| | | } |
| | | |
| | | interface GetStandardOrderAppointmentsQuery { |
| | | appointmentStatus?: EnumStandardOrderAppointmentStatus; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetStandardOrderAppointmentsQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetStandardOrderAppointmentsQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetStandardOrderAppointmentsQueryResultItem { |
| | | /** 订åId */ |
| | | id?: string; |
| | | /** æå¡åç§° */ |
| | | serviceName?: string; |
| | | /** å®ä»éé¢ */ |
| | | payAmount?: number; |
| | | /** æå¡èµ·å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** æå¡æªæ¢æ¶é´ */ |
| | | endTime?: string; |
| | | /** æå¡å°åï¼çå¸åº+详ç»å°å+é¨çå·ï¼ */ |
| | | addressDetail?: string; |
| | | /** æå¡æºæ */ |
| | | supplierEnterpriseName?: string; |
| | | /** æå¡äººå */ |
| | | serverNames?: string[]; |
| | | appointmentStatus?: EnumStandardOrderAppointmentStatus; |
| | | } |
| | | |
| | | interface GetStandardOrderPaysQuery { |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetStandardOrderPaysQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetStandardOrderPaysQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetStandardOrderPaysQueryResultItem { |
| | | /** 订åId */ |
| | | id?: string; |
| | | /** æå¡åç§° */ |
| | | serviceName?: string; |
| | | /** å®ä»éé¢ */ |
| | | payAmount?: number; |
| | | /** æå¡èµ·å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** æå¡æªæ¢æ¶é´ */ |
| | | endTime?: string; |
| | | /** æå¡å°åï¼çå¸åº+详ç»å°å+é¨çå·ï¼ */ |
| | | addressDetail?: string; |
| | | /** æå¡æºæ */ |
| | | supplierEnterpriseName?: string; |
| | | /** æå¡äººå */ |
| | | serverNames?: string[]; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | } |
| | | |
| | | interface GetStandardOrderQueryResult { |
| | | /** 订åId */ |
| | | id?: string; |
| | |
| | | settlementAmount?: number; |
| | | } |
| | | |
| | | interface GetStandardOrderServersQuery { |
| | | /** 订åId */ |
| | | orderId?: string; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetStandardOrderServersQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetStandardOrderServersQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetStandardOrderServersQueryResultItem { |
| | | /** Id */ |
| | | id?: string; |
| | | /** 头å */ |
| | | avatar?: string; |
| | | /** å§å */ |
| | | name?: string; |
| | | gender?: EnumUserGender; |
| | | /** æ¯å¦å®å */ |
| | | isReal?: boolean; |
| | | realMethod?: EnumUserRealMethod; |
| | | /** å¹´é¾ */ |
| | | age?: number; |
| | | /** 身份ç¼å· */ |
| | | personalIdentityCode?: string; |
| | | /** 身份 */ |
| | | personalIdentityContent?: string; |
| | | /** å¦åç¼å· */ |
| | | educationalBackgroundCode?: string; |
| | | /** å¦å */ |
| | | educationalBackgroundContent?: string; |
| | | /** ä¸å²æ¬¡æ° */ |
| | | taskCount?: number; |
| | | /** å·¥ä½èµå */ |
| | | workSeniority?: string; |
| | | /** å·¥ä½ç»éª */ |
| | | workExperience?: string; |
| | | } |
| | | |
| | | interface GetStandardOrderSettlementsQuery { |
| | | /** å
³é®åï¼è®¢åå·/æå¡å/ä¾åºåï¼ */ |
| | | keywords?: string; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetStandardOrderSettlementsQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetStandardOrderSettlementsQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetStandardOrderSettlementsQueryResultItem { |
| | | /** 订åId */ |
| | | id?: string; |
| | | /** 订åå· */ |
| | | code?: string; |
| | | /** æå¡åç§° */ |
| | | serviceName?: string; |
| | | /** æå¡åå· */ |
| | | serviceCode?: string; |
| | | /** ç²æ¹ä¼ä¸Id */ |
| | | partyAEnterpriseId?: string; |
| | | /** ç²æ¹ä¼ä¸ */ |
| | | partyAEnterpriseName?: string; |
| | | /** æå¡å°åï¼çå¸åº+详ç»å°å+é¨çå·ï¼ */ |
| | | addressDetail?: string; |
| | | /** æå¡æºæ */ |
| | | supplierEnterpriseName?: string; |
| | | /** æå¡äººå */ |
| | | serverNames?: string[]; |
| | | /** å®ä»éé¢ */ |
| | | payAmount?: number; |
| | | /** 宿¶éé¢ */ |
| | | receiveAmount?: number; |
| | | /** æå¡è´¹ */ |
| | | serviceFee?: number; |
| | | /** ç»ç®éé¢ */ |
| | | settlementAmount?: number; |
| | | /** ç»ç®åå· */ |
| | | settlementCode?: string; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | /** ç»ç®æ¶é´ */ |
| | | settlementTime?: string; |
| | | /** æå¡èµ·å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** æå¡æªæ¢æ¶é´ */ |
| | | endTime?: string; |
| | | } |
| | | |
| | | interface GetStandardOrdersQuery { |
| | | scene?: EnumGetStandardOrdersQueryScene; |
| | | /** å
³é®åï¼è®¢åå·/æå¡åï¼ */ |
| | | keywords?: string; |
| | | /** ä¸åæ¶é´-èµ·å§ */ |
| | |
| | | payTimeEnd?: string; |
| | | appointmentStatus?: EnumStandardOrderAppointmentStatus; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | |
| | | serviceName?: string; |
| | | /** æå¡åå· */ |
| | | serviceCode?: string; |
| | | /** ä¸åç¨æ·Id */ |
| | | createdUserId?: string; |
| | | /** ä¸åç¨æ· */ |
| | | createdUserName?: string; |
| | | /** èç³»çµè¯ */ |
| | | createdUserContactPhoneNumber?: string; |
| | | /** ä¸åæ¶é´ */ |
| | | createdTime?: string; |
| | | /** æ¯ä»æ¶é´ */ |
| | | payTime?: string; |
| | | appointmentStatus?: EnumStandardOrderAppointmentStatus; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | /** ç²æ¹ä¼ä¸Id */ |
| | | partyAEnterpriseId?: string; |
| | | /** ç²æ¹ä¼ä¸ */ |
| | | partyAEnterpriseName?: string; |
| | | /** èç³»çµè¯ */ |
| | | contactPhoneNumber?: string; |
| | | /** ä¾åºåId */ |
| | | supplierEnterpriseId?: string; |
| | | /** ä¾åºå */ |
| | | supplierEnterpriseName?: string; |
| | | /** ä¾åºåèç³»çµè¯ */ |
| | | supplierContactPhoneNumber?: string; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | /** æ¯ä»å®ææ¶é´ */ |
| | | payCompletedTime?: string; |
| | | /** å®ä»éé¢ */ |
| | | payAmount?: number; |
| | | /** 宿¶éé¢ */ |
| | | receiveAmount?: number; |
| | | /** æå¡è´¹ */ |
| | | serviceFee?: number; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | /** ç»ç®åå· */ |
| | | settlementCode?: string; |
| | | /** ç»ç®æ¶é´ */ |
| | | settlementTime?: string; |
| | | /** ç»ç®éé¢ */ |
| | | settlementAmount?: number; |
| | | } |
| | | |
| | | interface GetStandardOrderSupplierEnterprisesQuery { |
| | | /** 订åId */ |
| | | orderId?: string; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetStandardOrderSupplierEnterprisesQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetStandardOrderSupplierEnterprisesQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetStandardOrderSupplierEnterprisesQueryResultItem { |
| | | /** Id */ |
| | | id?: string; |
| | | /** 头å */ |
| | | avatar?: string; |
| | | /** ä¼ä¸å
¨ç§° */ |
| | | enterpriseName?: string; |
| | | /** æå¡äººå */ |
| | | serverCount?: number; |
| | | /** æå¡äººæ¬¡ */ |
| | | serviceCount?: number; |
| | | /** ç»è¥èå´ */ |
| | | mainBusiness?: string; |
| | | } |
| | | |
| | | interface GetStandardServiceCommentsQuery { |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | |
| | | cityContent?: string; |
| | | } |
| | | |
| | | interface GetStandardServiceServersQuery { |
| | | /** ä¾åºåId */ |
| | | supplierEnterpriseId?: string; |
| | | /** æå¡èµ·å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** æå¡æªæ¢æ¶é´ */ |
| | | endTime?: string; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetStandardServiceServersQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetStandardServiceServersQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetStandardServiceServersQueryResultItem { |
| | | /** Id */ |
| | | id?: string; |
| | | /** 头å */ |
| | | avatar?: string; |
| | | /** å§å */ |
| | | name?: string; |
| | | gender?: EnumUserGender; |
| | | /** æ¯å¦å®å */ |
| | | isReal?: boolean; |
| | | realMethod?: EnumUserRealMethod; |
| | | /** å¹´é¾ */ |
| | | age?: number; |
| | | /** 身份ç¼å· */ |
| | | personalIdentityCode?: string; |
| | | /** 身份 */ |
| | | personalIdentityContent?: string; |
| | | /** å¦åç¼å· */ |
| | | educationalBackgroundCode?: string; |
| | | /** å¦å */ |
| | | educationalBackgroundContent?: string; |
| | | /** ä¸å²æ¬¡æ° */ |
| | | taskCount?: number; |
| | | /** å·¥ä½èµå */ |
| | | workSeniority?: string; |
| | | /** å·¥ä½ç»éª */ |
| | | workExperience?: string; |
| | | } |
| | | |
| | | interface GetStandardServicesQuery { |
| | | /** å
³é®åï¼æå¡å/Idï¼ */ |
| | | keywords?: string; |
| | |
| | | file?: string; |
| | | /** è¡ä¸ç±»å« */ |
| | | industryCategoryContent?: string; |
| | | /** å²ä½ç¼å· */ |
| | | jobCode?: string; |
| | | /** å²ä½ */ |
| | | jobContent?: string; |
| | | /** æå¡å */ |
| | |
| | | recommendStatus?: EnumStandardServiceRecommendStatus; |
| | | /** æ¯å¦æ¶è */ |
| | | isCollection?: boolean; |
| | | /** æ¶èæ¶é´ */ |
| | | collectionTime?: string; |
| | | /** å建æ¶é´ */ |
| | | createdTime?: string; |
| | | /** ä¾åºåæ°é */ |
| | | supplierCount?: number; |
| | | } |
| | | |
| | | interface GetStandardServiceSupplierEnterprisesQuery { |
| | | /** æå¡Id */ |
| | | serviceId?: string; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetStandardServiceSupplierEnterprisesQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetStandardServiceSupplierEnterprisesQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetStandardServiceSupplierEnterprisesQueryResultItem { |
| | | /** Id */ |
| | | id?: string; |
| | | /** 头å */ |
| | | avatar?: string; |
| | | /** ä¼ä¸å
¨ç§° */ |
| | | enterpriseName?: string; |
| | | /** æå¡äººå */ |
| | | serverCount?: number; |
| | | /** æå¡äººæ¬¡ */ |
| | | serviceCount?: number; |
| | | /** ç»è¥èå´ */ |
| | | mainBusiness?: string; |
| | | } |
| | | |
| | | type GetSupplierEnterpriseSelectQuery = Record<string, any>; |
| | | |
| | | interface GetSupplierEnterpriseSelectQueryOption { |
| | |
| | | reject_reason: string; |
| | | } |
| | | |
| | | interface WeChatPayTransactionsJsApiNotifyCommand { |
| | | /** éç¥IDï¼åè°éç¥çå¯ä¸ç¼å· */ |
| | | id?: string; |
| | | /** éç¥å建æ¶é´ |
| | | 1ãå®ä¹ï¼æ¬æ¬¡åè°éç¥åå»ºçæ¶é´ |
| | | 2ãæ ¼å¼ï¼éµå¾ªrfc3339æ åæ ¼å¼ï¼yyyy-MM-DDTHH:mm:ss+TIMEZONEï¼ç¤ºä¾ï¼2015-05-20T13:29:35+08:00 表示å京æ¶é´2015å¹´5æ20æ¥13ç¹29å35ç§ï¼ */ |
| | | create_time?: string; |
| | | /** éç¥çç±»åï¼å¾®ä¿¡æ¯ä»åè°éç¥çç±»å |
| | | æ¯ä»æåéç¥çç±»å为TRANSACTION.SUCCESS */ |
| | | event_type?: string; |
| | | /** éç¥æ°æ®ç±»åï¼éç¥çèµæºæ°æ®ç±»åï¼åºå®ä¸ºencrypt-resource */ |
| | | resource_type?: string; |
| | | resource?: WeChatPayTransactionsJsApiNotifyCommandResource; |
| | | /** åè°æè¦ï¼å¾®ä¿¡æ¯ä»å¯¹åè°å
容çæè¦å¤æ³¨ */ |
| | | summary?: string; |
| | | } |
| | | |
| | | interface WeChatPayTransactionsJsApiNotifyCommandResource { |
| | | /** å å¯ç®æ³ç±»åï¼åè°æ°æ®å¯æçå å¯ç®æ³ç±»åï¼ç®å为AEAD_AES_256_GCMï¼å¼åè
éè¦ä½¿ç¨åæ ·ç±»åçæ°æ®è¿è¡è§£å¯ */ |
| | | algorithm?: string; |
| | | /** æ°æ®å¯æï¼Base64ç¼ç åçåè°æ°æ®å¯æï¼æå¡åéBase64è§£ç 并使ç¨APIV3å¯é¥è§£å¯ï¼å
·ä½åèå¦ä½è§£å¯è¯ä¹¦ååè°æ¥æ */ |
| | | ciphertext?: string; |
| | | /** éå æ°æ®ï¼åä¸è§£å¯çéå æ°æ®ï¼è¯¥å段å¯è½ä¸ºç©º */ |
| | | associated_data?: string; |
| | | /** åå§åè°ç±»åï¼å å¯åç对象类åï¼ä¸ºtransaction */ |
| | | original_type?: string; |
| | | /** éæºä¸²ï¼åä¸è§£å¯çéæºä¸² */ |
| | | nonce?: string; |
| | | } |
| | | |
| | | interface WxmpLoginCommand { |
| | | /** ç¨æ·ç»å½åè¯ */ |
| | | code: string; |
| | |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 微信JSæ¯ä»éç¥ POST /api/user/userWallet/weChatPayTransactionsJsApiNotify */ |
| | | export async function weChatPayTransactionsJsApiNotify( |
| | | body: API.WeChatPayTransactionsJsApiNotifyCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<boolean>('/api/user/userWallet/weChatPayTransactionsJsApiNotify', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |