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