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