From bddfec7e062404ea563299b75c91d9b172339d0a Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 08 八月 2025 16:31:05 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp --- apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue | 12 ++- apps/cMiniApp/src/subpackages/task/components/CompanyTaskList.vue | 4 apps/cMiniApp/src/subpackages/task/components/CompanyInfo.vue | 18 +++++- packages/hooks/index.ts | 1 apps/cMiniApp/src/constants/app.ts | 2 apps/cMiniApp/src/subpackages/task/components/CompanyDesc.vue | 10 +++ apps/cMiniApp/project.private.config.json | 7 ++ apps/cMiniApp/src/subpackages/task/companyDetail/companyDetail.vue | 36 +++-------- packages/hooks/enterprise.ts | 29 +++++++++ types/api.d.ts | 4 + 10 files changed, 85 insertions(+), 38 deletions(-) diff --git a/apps/cMiniApp/project.private.config.json b/apps/cMiniApp/project.private.config.json index c7ac5b7..ca80844 100644 --- a/apps/cMiniApp/project.private.config.json +++ b/apps/cMiniApp/project.private.config.json @@ -9,6 +9,13 @@ "miniprogram": { "list": [ { + "name": "鍏徃璇︽儏", + "pathName": "subpackages/task/companyDetail/companyDetail", + "query": "id=f775538f-985c-4d51-7985-08ddd5c71bbf", + "launchMode": "default", + "scene": null + }, + { "name": "浠诲姟璇︽儏", "pathName": "subpackages/task/taskDetail/taskDetail", "query": "id=04c75425-e783-4dbf-0f16-08ddd626b756", diff --git a/apps/cMiniApp/src/constants/app.ts b/apps/cMiniApp/src/constants/app.ts index bcda41b..cd671f7 100644 --- a/apps/cMiniApp/src/constants/app.ts +++ b/apps/cMiniApp/src/constants/app.ts @@ -1,6 +1,6 @@ import { EnumUserType, EnumClientType } from '@12333/constants'; export const AppLocalConfig = { - userType: EnumUserType.Operation, + userType: EnumUserType.Enterprise, clientType: EnumClientType.PcWeb, }; diff --git a/apps/cMiniApp/src/subpackages/task/companyDetail/companyDetail.vue b/apps/cMiniApp/src/subpackages/task/companyDetail/companyDetail.vue index c501244..5cbc167 100644 --- a/apps/cMiniApp/src/subpackages/task/companyDetail/companyDetail.vue +++ b/apps/cMiniApp/src/subpackages/task/companyDetail/companyDetail.vue @@ -2,7 +2,12 @@ <PageLayoutWithBg class="companyDetail-page-wrapper" title="鍏徃璇︽儏" :need-auth="false"> <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> <ContentView> - <CompanyDesc style="background-color: #fff" :showArrow="false"></CompanyDesc> + <CompanyDesc + style="background-color: #fff" + :showArrow="false" + :enterpriseName="enterpriseDetail?.enterpriseName ?? ''" + :taskCount="enterpriseDetail?.taskCount ?? 0" + ></CompanyDesc> </ContentView> <ProTabs v-model="tab" @@ -17,7 +22,7 @@ <CompanyTaskList /> </ProTabPane> <ProTabPane :title="`浼佷笟淇℃伅`" pane-key="2"> - <CompanyInfo /> + <CompanyInfo :enterpriseId="enterpriseId" /> </ProTabPane> </ProTabs> </LoadingLayout> @@ -26,41 +31,20 @@ <script setup lang="ts"> import Taro from '@tarojs/taro'; -import { useQuery } from '@tanstack/vue-query'; -import * as flexWorkerServices from '@12333/services/api/FlexWorker'; import CompanyDesc from '../components/CompanyDesc.vue'; import CompanyTaskList from '../components/CompanyTaskList.vue'; import CompanyInfo from '../components/CompanyInfo.vue'; import { ProTabs, ProTabPane } from '@12333/components'; +import { useEnterpriseDetail } from '@12333/hooks'; defineOptions({ name: 'companyDetail', }); const router = Taro.useRouter(); -const companyId = router.params?.id ?? ''; +const enterpriseId = router.params?.id ?? ''; const tab = ref('1'); -const { - isLoading, - isError, - data: detail, - refetch, -} = useQuery({ - queryKey: ['flexWorkerServices/getOrdeForDetail', companyId], - queryFn: async () => { - return await flexWorkerServices.getOrdeForDetail( - { id: companyId }, - { - showLoading: false, - } - ); - }, - placeholderData: () => ({} as API.OrderInfoDto), -}); +const { isLoading, isError, enterpriseDetail, refetch } = useEnterpriseDetail({ id: enterpriseId }); </script> - -<style lang="scss"> -@import '@/styles/common.scss'; -</style> diff --git a/apps/cMiniApp/src/subpackages/task/components/CompanyDesc.vue b/apps/cMiniApp/src/subpackages/task/components/CompanyDesc.vue index f3641da..36f3e1b 100644 --- a/apps/cMiniApp/src/subpackages/task/components/CompanyDesc.vue +++ b/apps/cMiniApp/src/subpackages/task/components/CompanyDesc.vue @@ -4,9 +4,12 @@ <div class="taskDetail-company-title">{{ enterpriseName }}</div> <RectRight v-if="showArrow" :size="8" class="taskDetail-company-arrow" /> </div> - <div class="taskDetail-company-info"> + <div class="taskDetail-company-info" v-if="isCertified"> <img :src="IconSafe" class="safe-company-info-icon" /> <div class="taskDetail-company-info-text">宸茶璇� | {{ taskCount }}涓矖浣嶅湪鎷�</div> + </div> + <div class="taskDetail-company-info" v-else> + <div class="taskDetail-company-info-text danger">鏈璇�</div> </div> </div> </template> @@ -21,6 +24,7 @@ type Props = { showArrow?: boolean; + isCertified?: boolean; enterpriseName?: string; taskCount?: number; /** @@ -80,6 +84,10 @@ flex: 1; min-width: 0; @include ellipsis; + + &.danger { + color: boleGetCssVar('color', 'danger'); + } } } } diff --git a/apps/cMiniApp/src/subpackages/task/components/CompanyInfo.vue b/apps/cMiniApp/src/subpackages/task/components/CompanyInfo.vue index bd9390f..39fc6a2 100644 --- a/apps/cMiniApp/src/subpackages/task/components/CompanyInfo.vue +++ b/apps/cMiniApp/src/subpackages/task/components/CompanyInfo.vue @@ -3,11 +3,11 @@ <div v-if="isCertified" class="companyInfo-info-wrapper"> <div class="companyInfo-info-item"> <div class="companyInfo-info-item-label">浼佷笟鍚嶇О</div> - <div class="companyInfo-info-item-content">姹熻タ鍚涙鼎鍟嗗姟鏈嶅姟鏈夐檺鍏徃</div> + <div class="companyInfo-info-item-content">{{ enterpriseDetail.enterpriseName }}</div> </div> <div class="companyInfo-info-item"> <div class="companyInfo-info-item-label">缁熶竴绀句細淇$敤浠g爜</div> - <div class="companyInfo-info-item-content">420902197910211010</div> + <div class="companyInfo-info-item-content">{{ enterpriseDetail.societyCreditCode }}</div> </div> <div class="companyInfo-info-item"> <div class="companyInfo-info-item-label">娉ㄥ唽璧勬湰</div> @@ -43,12 +43,24 @@ <script setup lang="ts"> import IconNoCertified from '@/assets/task/icon-no-certified.png'; +import { useEnterpriseDetail } from '@12333/hooks'; defineOptions({ name: 'CompanyInfo', }); -const isCertified = ref(true); +type Props = { + enterpriseId?: string; +}; + +const props = withDefaults(defineProps<Props>(), {}); + +/** + * TODO 浼佷笟鏄惁璁よ瘉 娉ㄥ唽璧勬湰 + */ +const isCertified = ref(false); + +const { enterpriseDetail } = useEnterpriseDetail({ id: toRef(props, 'enterpriseId') }); </script> <style lang="scss"> diff --git a/apps/cMiniApp/src/subpackages/task/components/CompanyTaskList.vue b/apps/cMiniApp/src/subpackages/task/components/CompanyTaskList.vue index fcbfcfe..f61648b 100644 --- a/apps/cMiniApp/src/subpackages/task/components/CompanyTaskList.vue +++ b/apps/cMiniApp/src/subpackages/task/components/CompanyTaskList.vue @@ -1,7 +1,7 @@ <template> <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps"> <template #renderItem="{ item }"> - <TaskCard @click="goTaskDetail(item)" /> + <TaskCard @click="goTaskDetail(item)" v-bind="item" /> </template> </InfiniteLoading> </template> @@ -17,7 +17,7 @@ const { queryState, infiniteLoadingProps } = useTaskList(); -function goTaskDetail(item: API.GetFlexTaskListOutput) { +function goTaskDetail(item: API.GetTaskInfosQueryResultItem) { Taro.navigateTo({ url: `${RouterPath.taskDetail}?id=${item.id}`, }); diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue index ce816ca..6a0d918 100644 --- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue @@ -43,7 +43,7 @@ <TaskDetailWelfareItem v-for="benefit in detail.benefits" :key="benefit.benefitCode" - :icon="IconAttentioActive" + :icon="setOSSLink(benefit.benefitField2)" :text="benefit.benefitContent" /> </div> @@ -127,7 +127,7 @@ import './taskDetail.scss'; import CompanyDesc from '../components/CompanyDesc.vue'; import dayjs from 'dayjs'; -import { TaskUtils, toThousand } from '@12333/utils'; +import { TaskUtils, toThousand, setOSSLink } from '@12333/utils'; import { EnumSettlementCycleText, BillingMethodEnumUnit, @@ -176,8 +176,10 @@ }); const goCompanyDetail = useAccessLogin(() => { - Taro.navigateTo({ - url: `${RouterPath.companyDetail}?id=${taskId}`, - }); + if (detail.value.enterpriseId) { + Taro.navigateTo({ + url: `${RouterPath.companyDetail}?id=${detail.value.enterpriseId}`, + }); + } }); </script> diff --git a/packages/hooks/enterprise.ts b/packages/hooks/enterprise.ts new file mode 100644 index 0000000..3217a6b --- /dev/null +++ b/packages/hooks/enterprise.ts @@ -0,0 +1,29 @@ +import { useQuery, useQueryClient } from '@tanstack/vue-query'; +import * as enterpriseServices from '@12333/services/apiV2/enterprise'; +import { MaybeRef, unref } from 'vue'; + +type UseEnterpriseDetailOptions = { + id: MaybeRef<string>; +}; + +export function useEnterpriseDetail({ id }: UseEnterpriseDetailOptions) { + const { data, refetch, isLoading, isError } = useQuery({ + queryKey: ['enterpriseServices/getEnterprise', id], + queryFn: async () => { + return await enterpriseServices.getEnterprise( + { id: unref(id) }, + { + showLoading: false, + } + ); + }, + placeholderData: () => ({} as API.GetEnterpriseQueryResult), + }); + + return { + enterpriseDetail: data, + refetch, + isLoading, + isError, + }; +} diff --git a/packages/hooks/index.ts b/packages/hooks/index.ts index 20402e6..9f10388 100644 --- a/packages/hooks/index.ts +++ b/packages/hooks/index.ts @@ -4,3 +4,4 @@ export * from './dic'; export * from './setting'; export * from './identify'; +export * from './enterprise'; diff --git a/types/api.d.ts b/types/api.d.ts index ac80dc0..98ee682 100644 --- a/types/api.d.ts +++ b/types/api.d.ts @@ -49,4 +49,8 @@ id?: string quickQuery?: string } + + interface GetTaskInfoQueryResult{ + enterpriseName?:string + } } -- Gitblit v1.9.1