From 507131cbff30df768441a2167d1c7396ba5ceea2 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 29 十二月 2025 15:35:23 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
---
apps/bStandardMiniApp/ci/private.wxc47d6f255e7d0566.key | 27 +
apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/chooseSupplier.vue | 2
apps/bStandardMiniApp/ci/upload.js | 2
apps/housekeepingMiniApp/src/pages/mine/index.vue | 2
packages/services/apiV2/standardOrder.ts | 18 +
apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue | 4
apps/housekeepingMiniApp/src/components/JobDetailContent/components/experienceView.vue | 61 ++++
apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.config.ts | 3
packages/services/types.d.ts | 18 +
apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.config.ts | 3
apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/InnerPage.vue | 86 ++++++
apps/housekeepingMiniApp/src/subpackages/sercice/chooseEnterpriseEmployee/InnerPage.vue | 10
apps/housekeepingMiniApp/src/subpackages/login/authorization/authorization.vue | 4
apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/InnerPage.vue | 23 +
packages/services/apiV2/index.ts | 4
apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue | 28 +
packages/components/src/Sku/sku.ts | 2
apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.vue | 6
apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/InnerPage.vue | 2
packages/constants/apiEnum.ts | 2
apps/housekeepingMiniApp/src/components/JobDetailContent/JobDetailContent.vue | 148 ++++++++++
packages/hooks/standardOrder.ts | 15
apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/InnerPage.vue | 4
apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/InnerPage.vue | 8
apps/housekeepingMiniApp/src/utils/request/index.ts | 4
apps/housekeepingMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue | 55 +++
apps/housekeepingMiniApp/src/components/JobDetailContent/components/curriculumView.vue | 157 +++++++++++
/dev/null | 27 -
apps/housekeepingMiniApp/src/subpackages/mine/addressManange/InnerPage.vue | 2
apps/housekeepingMiniApp/src/subpackages/mine/setting/setting.vue | 2
apps/housekeepingMiniApp/src/hooks/user.ts | 2
package.json | 4
apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.vue | 13
packages/services/apiV2/typings.d.ts | 60 ++++
apps/housekeepingMiniApp/src/stores/modules/user.ts | 3
apps/housekeepingMiniApp/src/app.config.ts | 2
apps/housekeepingMiniApp/src/constants/router.ts | 2
apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.vue | 13
38 files changed, 766 insertions(+), 62 deletions(-)
diff --git a/apps/bStandardMiniApp/ci/private.wx3669dd12a0915f7d.key b/apps/bStandardMiniApp/ci/private.wx3669dd12a0915f7d.key
deleted file mode 100644
index 484380b..0000000
--- a/apps/bStandardMiniApp/ci/private.wx3669dd12a0915f7d.key
+++ /dev/null
@@ -1,27 +0,0 @@
------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-----
diff --git a/apps/bStandardMiniApp/ci/private.wxc47d6f255e7d0566.key b/apps/bStandardMiniApp/ci/private.wxc47d6f255e7d0566.key
new file mode 100644
index 0000000..4352b49
--- /dev/null
+++ b/apps/bStandardMiniApp/ci/private.wxc47d6f255e7d0566.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAy7wtgTQmuEPpJDRPu2rkSpOyf4OabpFFRbrdBdnhERLswO67
+P3DzxFhi9PkReA0nwr6D/UrkmKSCA/Jao7wIv7Md4ZVe3feKYMKGIGpZEBdVzZNG
+GplzpCYvkGpC+PO/cvnn+I7G4pMTq//A/XYV4MjlcIuZHbQKQ7Q+lGKv5rd3NsEA
+tpH2OmFmHWmSTu5wJuNjK3P44CgCdc+bGMb4ik3zX8VKRpDJ7JCNe0fKv0f1vnhP
+0yRZENT4ag3dkMF+H6cztMXiBJxxgz2RI7xWuyEHkJcMf5MGUxHTlFNpbw6K4RxC
++clGv0/qgV//tLmdq4ArfFQqnzTrAQhfHOUYdwIDAQABAoIBAQCAtnYZNpVvvJfC
+Y7orsbBg3UbcAIzEZcrZ7uBMHgZu/wHMMgbiYb3fwedi1SgQLF9+TVad437gYK4z
+SB2za8wrMEIkjnXMzeMClmKegBGcdOGkavLTQzcn8WgDWN7O4U+GmBPRmIJWCo1X
+ENEgUEYqKUGrBMbLWT9S3sDahi6TFxw2TH8nnOXPV5+p23A3t3hygsYyJ1Il/mLQ
+g3KCUTN63QB5Xo2ZP11ypC03eoO1pmx57m+f7Sq48AUxnBWZxTfDosmZsnbSDbjj
+va9zT5quImy7kn1PfbSgoDpSrSDqPVDwKITu5FUJU+ISlYElHeu7Ux2N3B0O3fvG
+ln5qec/hAoGBAPZ2uX41Pycoj7GJpS9AOm3Kl00nHZswKuT461Z/+DSaaQAorDiC
+bsDr5l/fNG57kywzKbC1DsJdcV9Fm16wTV6l0Y2dLuIZVeFINRQySK1exiF+yTXJ
+BoGHFjtls8j1Q/9PDsc7ok3n+i29qdiNv+odH8HdIrsQHjW2KojADBUbAoGBANOe
+N2gQ6qdsQUCf9yxntxmFp137Jwb4IN9ePB8qp06PHYpvqnMvtfb8QJ+NPPbpfuh0
+9MkfVzxK5430FqVsHzvJ5pUfgO+Ewi4V2F1hDEtrEFB0MUFrRWOXmGa5nsnbK/HN
+mRzsnZyICem8kQ6HHTYPCgTCU6vi6TwNl3GypCvVAoGBAITxn7cTU8B0oaX7gG3P
+cHT+ncSRP+gRAGJIXvFmz+TYEaFzTwqgWMuZs8etJ6Qc5lMmOevGjnKLYvcoHdni
+salHOpTv33U4g1mk0HTXdtqFz8wLjs+DYw4FZxmdD3Br1EToSSlw4mixpAJ+Vxqn
+w4iuMw4okW5kEFearrDbHulXAoGBALP6KfFOAeRmg5Cs/BE+HFGOhGu/wM+ClKKk
+iMmRAz4jJeKpWfQhLcdjfqqz+pecupyFa/Lpvs2+fvUSFXiXXnEBJCTL6GLNLED5
+v0ybz1MNOZDTYVjcHOW49prXX58Z0mQSkhgxfVK1uIicIVqTu1pQrBqkE3lqwSac
+AKNoZYwJAoGACHsuxgMHOZ0fe+IG3x1wIM2EDdvQtJJG5LspfBVczGliCZOwCGLi
+HRVxpTzzTYN/XTSNZYjkDL8S9i8R/BL8GHUzBrPDjrwpf1Mny/vIoeW4vlKKcGaf
+VcWFjh8LDO85zl1yvcEI1erFT9ZNHCF+qtpCTVuDdMPKozJUAPehkjA=
+-----END RSA PRIVATE KEY-----
diff --git a/apps/bStandardMiniApp/ci/upload.js b/apps/bStandardMiniApp/ci/upload.js
index 48063fb..e79cb1d 100644
--- a/apps/bStandardMiniApp/ci/upload.js
+++ b/apps/bStandardMiniApp/ci/upload.js
@@ -27,7 +27,7 @@
return {
weapp: {
appid: config.appid,
- privateKeyPath: `${projectPath}/ci/private.wx3669dd12a0915f7d.key`,
+ privateKeyPath: `${projectPath}/ci/private.wxc47d6f255e7d0566.key`,
robot: robot,
setting: {
minify: false,
diff --git a/apps/housekeepingMiniApp/src/app.config.ts b/apps/housekeepingMiniApp/src/app.config.ts
index 8d628ee..208a520 100644
--- a/apps/housekeepingMiniApp/src/app.config.ts
+++ b/apps/housekeepingMiniApp/src/app.config.ts
@@ -96,6 +96,8 @@
'addStandardOrder/addStandardOrder',
'chooseSupplier/chooseSupplier',
'chooseEnterpriseEmployee/chooseEnterpriseEmployee',
+ 'EnterpriseEmployeeDetail/EnterpriseEmployeeDetail',
+ 'supplierDetail/supplierDetail',
],
},
{
diff --git a/apps/housekeepingMiniApp/src/components/JobDetailContent/JobDetailContent.vue b/apps/housekeepingMiniApp/src/components/JobDetailContent/JobDetailContent.vue
new file mode 100644
index 0000000..3a10cd7
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -0,0 +1,148 @@
+<template>
+ <ContentView style="background-color: transparent" class="job-detail-content">
+ <FlexJobTopView
+ :avatar="avatar"
+ :name="name"
+ :age="age"
+ :isReal="isReal"
+ :gender="gender"
+ :personalIdentityContent="personalIdentityContent"
+ :educationalBackgroundContent="educationalBackgroundContent"
+ :taskCount="taskCount"
+ size="small"
+ class="job-detail-content-top"
+ />
+ <div class="job-detail-content-contact-info">
+ <div class="job-detail-content-contact-info-item">
+ <div class="job-detail-content-contact-info-item-label">鎵嬫満鍙凤細</div>
+ <div class="job-detail-content-contact-info-item-text">
+ {{ isCollapse ? contactPhoneNumber : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
+ </div>
+ </div>
+ <div class="job-detail-content-contact-info-item">
+ <div class="job-detail-content-contact-info-item-label">韬唤璇佸彿锛�</div>
+ <div class="job-detail-content-contact-info-item-text">
+ {{ isCollapse ? hiddenIDNumberForEnd4(identity) : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
+ </div>
+ </div>
+ </div>
+ </ContentView>
+ <div style="flex: 1; min-height: 0">
+ <ProTabs
+ v-model="tab"
+ name="job-detail-content-tab"
+ :showSmile="false"
+ class="job-detail-content-tabs"
+ isTransparent
+ title-gutter="8"
+ fullHeight
+ >
+ <ProTabPane :title="`绠�鍘哷" pane-key="1">
+ <curriculumView
+ :userExpectJobs="userExpectJobs"
+ :freeTime="freeTime"
+ :jobSeekingStatus="jobSeekingStatus"
+ :userCredentials="userCredentials"
+ :workSeniority="workSeniority"
+ :workExperience="workExperience"
+ :photos="photos"
+ :height="height"
+ :weight="weight"
+ :shoeSize="shoeSize"
+ :videos="videos"
+ />
+ </ProTabPane>
+ <ProTabPane :title="`缁忓巻`" pane-key="2">
+ <experienceView :taskInfoUsers="taskInfoUsers" />
+ </ProTabPane>
+ </ProTabs>
+ </div>
+
+ <PageFooter>
+ <slot name="footer"></slot>
+ </PageFooter>
+</template>
+
+<script setup lang="ts">
+import { FlexJobTopView, ProTabs, ProTabPane } from '@12333/components';
+import { hiddenIDNumberForEnd4 } from '@12333/utils';
+import curriculumView from './components/curriculumView.vue';
+import experienceView from './components/experienceView.vue';
+import { EnumUserGender } from '@12333/constants';
+
+defineOptions({
+ name: 'JobDetailContent',
+});
+
+type Props = {
+ isCollapse: boolean;
+
+ avatar?: string;
+ name?: string;
+ gender?: EnumUserGender;
+ age?: number;
+ isReal?: boolean;
+ personalIdentityContent?: string;
+ educationalBackgroundContent?: string;
+ taskCount?: number;
+ contactPhoneNumber?: string;
+ identity?: string;
+
+ userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
+ freeTime?: API.EnumPersonalFreeTime;
+ jobSeekingStatus?: API.EnumPersonalJobSeekingStatus;
+ userCredentials?: API.GetUserResumeQueryResultCredential[];
+ workSeniority?: string;
+ workExperience?: string;
+ photos?: string[];
+ videos?: string[];
+ /** 韬珮 */
+ height?: number;
+ /** 浣撻噸 */
+ weight?: number;
+ shoeSize?: number;
+
+ taskInfoUsers?: API.GetUserResumeQueryResultExperience[];
+};
+
+const tab = ref('1');
+const props = withDefaults(defineProps<Props>(), {});
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.job-detail-content-top {
+ margin-bottom: 20px;
+}
+
+.job-detail-content-contact-info {
+ padding-left: 130px;
+ margin-bottom: 78px;
+
+ .job-detail-content-contact-info-item {
+ display: flex;
+ align-items: center;
+ font-weight: 400;
+ font-size: 24px;
+ line-height: 28px;
+ margin-bottom: 22px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+
+ .job-detail-content-contact-info-item-label {
+ color: boleGetCssVar('text-color', 'secondary');
+ margin-right: 8px;
+ }
+
+ .job-detail-content-contact-info-item-text {
+ color: boleGetCssVar('text-color', 'primary');
+ flex: 1;
+ min-width: 0;
+ @include ellipsis;
+ }
+ }
+}
+</style>
diff --git a/apps/housekeepingMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue b/apps/housekeepingMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue
new file mode 100644
index 0000000..4da3a13
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue
@@ -0,0 +1,55 @@
+<template>
+ <div class="curriculum-list-item">
+ <div class="curriculum-list-item-label" :style="{ width: props.labelWidth }">
+ {{ props.label }}
+ </div>
+ <div class="curriculum-list-item-text">
+ <slot>{{ props.text }}</slot>
+ </div>
+ </div>
+</template>
+
+<script setup lang="ts">
+defineOptions({
+ name: 'CurriculumViewItem',
+});
+
+type Props = {
+ label?: string;
+ text?: string;
+ labelWidth?: number | string;
+};
+
+const props = withDefaults(defineProps<Props>(), {
+ labelWidth: 'auto',
+});
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.job-detail-content-tabs {
+ .curriculum-list-item {
+ display: flex;
+ margin-bottom: 14px;
+ font-weight: 400;
+ font-size: 24px;
+ line-height: 36px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+
+ .curriculum-list-item-label {
+ color: boleGetCssVar('text-color', 'secondary');
+ }
+
+ .curriculum-list-item-text {
+ color: boleGetCssVar('text-color', 'primary');
+ flex: 1;
+ min-width: 0;
+ @include ellipsis;
+ }
+ }
+}
+</style>
diff --git a/apps/housekeepingMiniApp/src/components/JobDetailContent/components/curriculumView.vue b/apps/housekeepingMiniApp/src/components/JobDetailContent/components/curriculumView.vue
new file mode 100644
index 0000000..e60bab7
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/components/JobDetailContent/components/curriculumView.vue
@@ -0,0 +1,157 @@
+<template>
+ <ContentScrollView>
+ <Cell :show-title="false">
+ <!-- <CellChunk title="姹傝亴鎰忓悜">
+ <div class="curriculum-list">
+ <CurriculumViewItem label="鏈熸湜宀椾綅锛�">
+ <div class="curriculum-position-list">
+ <div
+ v-for="userExpectJob in userExpectJobs"
+ :key="userExpectJob.expectJobCode"
+ class="curriculum-position-list-item"
+ >
+ {{ userExpectJob.expectJobContent }}
+ </div>
+ </div>
+ </CurriculumViewItem>
+ <CurriculumViewItem label="绌洪棽鏃堕棿锛�" :text="EnumPersonalFreeTimeText[freeTime]">
+ </CurriculumViewItem>
+ <CurriculumViewItem
+ label="姹傝亴鐘舵�侊細"
+ :text="EnumPersonalJobSeekingStatusText[jobSeekingStatus]"
+ >
+ </CurriculumViewItem>
+ </div>
+ </CellChunk> -->
+ <CellChunk title="璧勬牸璇佷功" v-if="_userCredentials.length > 0">
+ <nut-grid square :column-num="3" :border="false" :gutter="20" class="pro-img-grid">
+ <nut-grid-item
+ v-for="(item, index) in _userCredentials"
+ :key="item"
+ class="pro-img-grid-item"
+ >
+ <div class="pro-img-grid-img-item">
+ <PreviewImage :src="item" class="pro-img-grid-img" :urls="_userCredentials" />
+ </div>
+ </nut-grid-item>
+ </nut-grid>
+ </CellChunk>
+ <CellChunk title="宸ヤ綔缁忛獙">
+ <CurriculumViewItem label="宸ヤ綔骞撮檺锛�" :text="workSeniority"> </CurriculumViewItem>
+ <CurriculumViewItem label="宸ヤ綔缁忛獙锛�" :text="workExperience"> </CurriculumViewItem>
+ </CellChunk>
+ <CellChunk title="璇︾粏淇℃伅">
+ <CurriculumViewItem
+ label="韬珮锛�"
+ :text="height && `${height} cm`"
+ :label-width="labelWidth"
+ ></CurriculumViewItem>
+ <CurriculumViewItem
+ label="浣撻噸锛�"
+ :text="weight && `${weight} kg`"
+ :label-width="labelWidth"
+ ></CurriculumViewItem>
+ <CurriculumViewItem
+ label="闉嬬爜锛�"
+ :text="shoeSize && `${shoeSize} 鐮乣"
+ :label-width="labelWidth"
+ ></CurriculumViewItem>
+ <CurriculumViewItem label="涓汉鐓х墖锛�">
+ <nut-grid
+ square
+ :column-num="2"
+ :border="false"
+ :gutter="20"
+ v-if="_photos.length > 0"
+ class="pro-img-grid"
+ >
+ <nut-grid-item v-for="(item, index) in _photos" :key="item" class="pro-img-grid-item">
+ <div class="pro-img-grid-img-item">
+ <PreviewImage :src="item" class="pro-img-grid-img" :urls="_photos" />
+ </div>
+ </nut-grid-item>
+ </nut-grid>
+ </CurriculumViewItem>
+ <CurriculumViewItem label="涓汉瑙嗛锛�">
+ <nut-grid
+ square
+ :column-num="2"
+ :border="false"
+ :gutter="20"
+ v-if="_photos.length > 0"
+ class="pro-img-grid"
+ >
+ <nut-grid-item v-for="(item, index) in _videos" :key="item" class="pro-img-grid-item">
+ <div class="pro-img-grid-img-item">
+ <video class="pro-img-grid-img" :src="item" />
+ </div>
+ </nut-grid-item>
+ </nut-grid>
+ </CurriculumViewItem>
+ </CellChunk>
+ </Cell>
+ </ContentScrollView>
+</template>
+
+<script setup lang="ts">
+import CurriculumViewItem from './CurriculumViewItem.vue';
+import { PreviewImage, Cell, CellChunk } from '@12333/components';
+import Taro from '@tarojs/taro';
+import { EnumPersonalFreeTimeText, EnumPersonalJobSeekingStatusText } from '@12333/constants';
+import { setOSSLink } from '@12333/utils';
+import { Video } from '@tarojs/components';
+
+defineOptions({
+ name: 'curriculumView',
+});
+
+type Props = {
+ userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
+ freeTime?: API.EnumPersonalFreeTime;
+ jobSeekingStatus?: API.EnumPersonalJobSeekingStatus;
+ userCredentials?: API.GetUserResumeQueryResultCredential[];
+ workSeniority?: string;
+ workExperience?: string;
+ photos?: string[];
+ videos?: string[];
+ /** 韬珮 */
+ height?: number;
+ /** 浣撻噸 */
+ weight?: number;
+ shoeSize?: number;
+};
+
+const props = withDefaults(defineProps<Props>(), {
+ userExpectJobs: () => [],
+ userCredentials: () => [],
+ photos: () => [],
+ videos: () => [],
+});
+
+const _userCredentials = computed(() => props.userCredentials.map((x) => setOSSLink(x.img)));
+const _photos = computed(() => props.photos.map((x) => setOSSLink(x)));
+const _videos = computed(() => props.videos.map((x) => setOSSLink(x)));
+
+const labelWidth = Taro.pxTransform(120);
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.job-detail-content-tabs {
+ .curriculum-position-list {
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ column-gap: 24px;
+ row-gap: 16px;
+
+ .curriculum-position-list-item {
+ font-weight: 500;
+ font-size: 24px;
+ color: boleGetCssVar('color', 'warning');
+ line-height: 36px;
+ }
+ }
+}
+</style>
diff --git a/apps/housekeepingMiniApp/src/components/JobDetailContent/components/experienceView.vue b/apps/housekeepingMiniApp/src/components/JobDetailContent/components/experienceView.vue
new file mode 100644
index 0000000..970c589
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/components/JobDetailContent/components/experienceView.vue
@@ -0,0 +1,61 @@
+<template>
+ <ContentScrollView>
+ <Cell title="宀椾綅缁忓巻">
+ <nut-steps
+ v-if="taskInfoUsers.length > 0"
+ direction="vertical"
+ progress-dot
+ :current="10000003"
+ class="job-detail-content-steps"
+ >
+ <nut-step
+ v-for="(taskInfoUser, index) in taskInfoUsers"
+ :key="index"
+ :title="dayjs(taskInfoUser.hireTime).format('YYYY.MM.DD')"
+ >
+ <template #content>
+ <p>鍦▄{ taskInfoUser.enterpriseName }}锛�</p>
+ <p>鍋氳繃{{ taskInfoUser.name }}</p>
+ </template>
+ </nut-step>
+ </nut-steps>
+ <NoData v-else />
+ </Cell>
+ </ContentScrollView>
+</template>
+
+<script setup lang="ts">
+import NoData from '../../NoData/NoData.vue';
+import dayjs from 'dayjs';
+import { Cell } from '@12333/components';
+
+defineOptions({
+ name: 'experienceView',
+});
+
+type Props = {
+ taskInfoUsers?: API.GetUserResumeQueryResultExperience[];
+};
+
+const props = withDefaults(defineProps<Props>(), {
+ taskInfoUsers: () => [],
+});
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.job-detail-content-tabs {
+ .job-detail-content-steps {
+ .nut-step-main {
+ margin-bottom: 40px;
+ }
+
+ .nut-step:last-child {
+ .nut-step-main {
+ margin-bottom: 0;
+ }
+ }
+ }
+}
+</style>
diff --git a/apps/housekeepingMiniApp/src/constants/router.ts b/apps/housekeepingMiniApp/src/constants/router.ts
index cf7e7fc..2149e00 100644
--- a/apps/housekeepingMiniApp/src/constants/router.ts
+++ b/apps/housekeepingMiniApp/src/constants/router.ts
@@ -37,6 +37,8 @@
addStandardOrder = '/subpackages/sercice/addStandardOrder/addStandardOrder',
chooseSupplier = '/subpackages/sercice/chooseSupplier/chooseSupplier',
chooseEnterpriseEmployee = '/subpackages/sercice/chooseEnterpriseEmployee/chooseEnterpriseEmployee',
+ EnterpriseEmployeeDetail = '/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail',
+ supplierDetail = '/subpackages/sercice/supplierDetail/supplierDetail',
extraPage = '/subpackages/extraPage/extraPage/extraPage',
}
diff --git a/apps/housekeepingMiniApp/src/hooks/user.ts b/apps/housekeepingMiniApp/src/hooks/user.ts
index 8498fdb..ca88e1b 100644
--- a/apps/housekeepingMiniApp/src/hooks/user.ts
+++ b/apps/housekeepingMiniApp/src/hooks/user.ts
@@ -20,7 +20,7 @@
});
const displayName = computed(() =>
- userDetail.value.enterpriseIsReal ? userDetail.value.enterpriseName : userDetail.value.name
+ userDetail.value?.enterpriseIsReal ? userDetail.value?.enterpriseName : userDetail.value?.name
);
return {
diff --git a/apps/housekeepingMiniApp/src/pages/mine/index.vue b/apps/housekeepingMiniApp/src/pages/mine/index.vue
index 98173c5..3f9743d 100644
--- a/apps/housekeepingMiniApp/src/pages/mine/index.vue
+++ b/apps/housekeepingMiniApp/src/pages/mine/index.vue
@@ -76,7 +76,7 @@
<ListItem :icon="IconCollect" title="鏀惰棌澶�" @click="goMineCollectTask"></ListItem>
<ListItem
:icon="IconRecruit"
- v-if="!userDetail.enterpriseIsReal"
+ v-if="!userDetail?.enterpriseIsReal"
title="鍗囩骇浼佷笟鐗�"
@click="goCompanyInfo"
></ListItem>
diff --git a/apps/housekeepingMiniApp/src/stores/modules/user.ts b/apps/housekeepingMiniApp/src/stores/modules/user.ts
index c320813..dafe7d2 100644
--- a/apps/housekeepingMiniApp/src/stores/modules/user.ts
+++ b/apps/housekeepingMiniApp/src/stores/modules/user.ts
@@ -107,8 +107,8 @@
accessToken: wxMiniAppUserLoginRes.accessToken,
});
res.accessToken = bindRes.accessToken;
- this.loginSuccess(res);
}
+ this.loginSuccess(res);
return res;
} catch (error) {
console.log('error3: ', error);
@@ -213,6 +213,7 @@
},
setUserInfoAction(info: API.LoginCommandCallback) {
+ console.log('info: ', info);
this.userInfo = {
...this.userInfo,
...info,
diff --git a/apps/housekeepingMiniApp/src/subpackages/login/authorization/authorization.vue b/apps/housekeepingMiniApp/src/subpackages/login/authorization/authorization.vue
index 063085a..613959e 100644
--- a/apps/housekeepingMiniApp/src/subpackages/login/authorization/authorization.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/login/authorization/authorization.vue
@@ -116,7 +116,9 @@
type: AppLocalConfig.userType,
enterpriseType: AppLocalConfig.enterpriseType,
};
- wxMiniAppUserLoginRes.value = await authServices.wxmpLogin(params);
+ wxMiniAppUserLoginRes.value = await authServices.wxmpLogin(params, {
+ getResponse: true,
+ });
if (wxMiniAppUserLoginRes.value?.isBindPhoneNumber) {
isAccount.value = true;
}
diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/addressManange/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/addressManange/InnerPage.vue
index 470a453..4acc89c 100644
--- a/apps/housekeepingMiniApp/src/subpackages/mine/addressManange/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/addressManange/InnerPage.vue
@@ -35,7 +35,7 @@
const dataOptions = reactive({
id: 'id',
- addressDetail: 'addressDetail',
+ fullAddress: 'addressName',
addressName: 'name',
phone: 'contactPhoneNumber',
defaultAddress: 'isDefault',
diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue
index 03500ee..89f7951 100644
--- a/apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue
@@ -1,7 +1,7 @@
<template>
<ContentScrollView :paddingH="false">
<nut-form :model-value="form" ref="formRef" :rules="rules" label-position="top">
- <nut-form-item label="濮撳悕:" class="bole-form-item" prop="name" required>
+ <nut-form-item label="濮撳悕:" class="bole-form-item" prop="name">
<nut-input v-model="form.name" placeholder="璇疯緭鍏ュ鍚�"> </nut-input>
</nut-form-item>
<nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="contactPhoneNumber" required>
@@ -73,7 +73,7 @@
});
const rules = reactive<FormRules>({
- name: [{ required: true, message: '璇疯緭鍏ュ鍚�' }],
+ // name: [{ required: true, message: '璇疯緭鍏ュ鍚�' }],
contactPhoneNumber: [
{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿' },
{ validator: FormValidator.validatorPhoneNumber, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙�' },
diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/InnerPage.vue
index c000fb8..979e0dc 100644
--- a/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/InnerPage.vue
@@ -75,7 +75,7 @@
// onMounted(() => {
// standardOrderServices.checkPayStandardOrder({
-// id: 'ca8c17a1-6c44-446e-2e88-08de443f2678',
+// id: 'ac33ec5d-5972-45e0-63a5-08de46a118d9',
// });
// });
diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/InnerPage.vue
index 447f859..c6310a3 100644
--- a/apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/InnerPage.vue
@@ -4,7 +4,7 @@
<nut-form-item label="澶村儚:" class="bole-form-item" prop="avatar">
<Uploader v-model:file-list="form.avatar" :maximum="1" class="bole-uploader"> </Uploader>
</nut-form-item>
- <nut-form-item label="濮撳悕:" class="bole-form-item" prop="name" required>
+ <nut-form-item label="濮撳悕:" class="bole-form-item" prop="name">
<nut-input
v-model.trim="form.name"
placeholder="璇疯緭鍏ュ鍚�"
@@ -47,7 +47,7 @@
});
const rules = reactive<FormRules>({
- name: [{ required: true, message: '璇疯緭鍏ュ鍚�' }],
+ // name: [{ required: true, message: '璇疯緭鍏ュ鍚�' }],
contactPhoneNumber: [
{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿' },
{ validator: FormValidator.validatorPhoneNumber, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙�' },
diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/setting/setting.vue b/apps/housekeepingMiniApp/src/subpackages/mine/setting/setting.vue
index cb75d8e..861999f 100644
--- a/apps/housekeepingMiniApp/src/subpackages/mine/setting/setting.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/setting/setting.vue
@@ -3,7 +3,7 @@
<List>
<ListItem
title="鍏徃淇℃伅"
- v-if="userDetail.enterpriseIsReal"
+ v-if="userDetail?.enterpriseIsReal"
@click="goCompanyInfo"
></ListItem>
<ListItem title="涓汉淇℃伅" v-else @click="goPersonalInfo"></ListItem>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.config.ts b/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.vue
new file mode 100644
index 0000000..2fd34ca
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/EnterpriseEmployeeDetail.vue
@@ -0,0 +1,13 @@
+<template>
+ <PageLayoutWithBg class="enterpriseEmployeeDetail-page-wrapper" title="鏈嶅姟浜哄憳璇︽儏">
+ <InnerPage />
+ </PageLayoutWithBg>
+</template>
+
+<script setup lang="ts">
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'EnterpriseEmployeeDetail',
+});
+</script>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/InnerPage.vue
new file mode 100644
index 0000000..c2278df
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/EnterpriseEmployeeDetail/InnerPage.vue
@@ -0,0 +1,86 @@
+<template>
+ <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
+ <JobDetailContent
+ :avatar="userResumeInfo.avatar"
+ :name="userResumeInfo.name"
+ :age="userResumeInfo.age"
+ :isReal="userResumeInfo.isReal"
+ :gender="userResumeInfo.gender"
+ :personalIdentityContent="userResumeInfo.personalIdentityContent"
+ :educationalBackgroundContent="userResumeInfo.educationalBackgroundContent"
+ :taskCount="userResumeInfo.taskCount"
+ :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
+ :identity="userResumeInfo.identity"
+ :isCollapse="isCollapse"
+ :userExpectJobs="userResumeInfo.userExpectJobs"
+ :freeTime="userResumeInfo.freeTime"
+ :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
+ :userCredentials="userResumeInfo.userCredentials"
+ :workSeniority="userResumeInfo.workSeniority"
+ :workExperience="userResumeInfo.workExperience"
+ :photos="userResumeInfo.photos"
+ :height="userResumeInfo.height"
+ :weight="userResumeInfo.weight"
+ :shoeSize="userResumeInfo.shoeSize"
+ :videos="userResumeInfo.videos"
+ :taskInfoUsers="userResumeInfo.taskInfoUsers"
+ >
+ <template #footer>
+ <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="handleContact">绔嬪嵆鑱旂郴</PageFooterBtn>
+ </template>
+ </JobDetailContent>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import Taro from '@tarojs/taro';
+import { useToggle } from 'senin-mini/hooks';
+import { Message } from '@12333/utils';
+import { useUserResume } from '@12333/hooks';
+import { useAccessLogin } from '@/hooks';
+import * as userResumeServices from '@12333/services/apiV2/userResume';
+import IconShare from '@/assets/flexJob/icon-share.png';
+
+defineOptions({
+ name: 'InnerPage',
+});
+
+const router = Taro.useRouter();
+const enterpriseEmployeeId = router.params?.id ?? '';
+const userId = router.params?.userId ?? '';
+
+const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
+ userId: userId,
+});
+
+const { isCollapse, toggle } = useToggle();
+
+const handleContact = useAccessLogin(async () => {
+ try {
+ if (!isCollapse.value) {
+ await userResumeServices.contactUserResume({ id: userId });
+ toggle();
+ } else {
+ Taro.makePhoneCall({
+ phoneNumber: userResumeInfo.value.contactPhoneNumber,
+ });
+ }
+ } catch (error) {}
+});
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
index 5732f29..c3eb447 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
@@ -75,6 +75,19 @@
></ChooseInputWithSuppliers>
</nut-form-item>
<nut-form-item
+ label="鏀粯閫氶亾:"
+ class="bole-form-item"
+ prop="payAccess"
+ label-width="90px"
+ required
+ >
+ <ChooseInputWithPicker
+ v-model="form.payAccess"
+ placeholder="璇烽�夋嫨鏀粯閫氶亾"
+ :value-enum="EnumUserBankCardAccessTextFormStandard"
+ />
+ </nut-form-item>
+ <nut-form-item
label="澶囨敞:"
class="bole-form-item alignTop"
prop="remark"
@@ -118,6 +131,7 @@
List,
ListItem,
ChooseInputWithDatePicker,
+ ChooseInputWithPicker,
} from '@12333/components';
import Taro from '@tarojs/taro';
import { RouterPath } from '@/constants';
@@ -125,7 +139,7 @@
import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import dayjs from 'dayjs';
-import { EnumUserBankCardAccess } from '@12333/constants';
+import { EnumUserBankCardAccess, EnumUserBankCardAccessTextFormStandard } from '@12333/constants';
import { Message } from '@12333/utils';
defineOptions({
@@ -147,6 +161,7 @@
enterpriseEmployeeId: '',
enterpriseEmployeeName: '',
remark: '',
+ payAccess: EnumUserBankCardAccess.WeChatPay,
});
const nowDate = dayjs().toDate();
@@ -169,6 +184,7 @@
beginTime: [{ required: true, message: '璇烽�夋嫨鏈嶅姟寮�濮嬫椂闂�' }],
endTime: [{ required: true, message: '璇烽�夋嫨鏈嶅姟缁撴潫鏃堕棿' }],
enterpriseEmployeeId: [{ required: true, message: '璇烽�夋嫨鏈嶅姟鏈烘瀯' }],
+ payAccess: [{ required: true, message: '璇烽�夋嫨鏀粯閫氶亾' }],
});
const { isLoading, isError, detail, refetch } = useStandardServiceDetail({
@@ -293,11 +309,13 @@
paySign: res.paySign,
});
Message.success('鏀粯鎴愬姛');
- Taro.redirectTo({
- url: `${RouterPath.mineOrderDetail}?id=${orderId}`,
- });
}
- } catch (error) {}
+ } catch (error) {
+ } finally {
+ Taro.redirectTo({
+ url: `${RouterPath.mineOrderDetail}?id=${orderId}`,
+ });
+ }
}
</script>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/chooseEnterpriseEmployee/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/chooseEnterpriseEmployee/InnerPage.vue
index 3967215..8faa252 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/chooseEnterpriseEmployee/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/chooseEnterpriseEmployee/InnerPage.vue
@@ -16,7 +16,9 @@
:workExperience="item.workExperience"
>
<template #actions>
- <nut-button type="primary" plain>鏌ョ湅璇︽儏</nut-button>
+ <nut-button type="primary" plain @click="goEnterpriseEmployeeDetail(item)"
+ >鏌ョ湅璇︽儏</nut-button
+ >
<nut-button type="primary" @click="handleChoose(item)">閫夋嫨</nut-button>
</template>
</ChooseServerCard>
@@ -70,4 +72,10 @@
} as SelectEnterpriseEmployeeEvent);
goBack(2);
}
+
+function goEnterpriseEmployeeDetail(item: API.GetStandardServiceServersQueryResultItem) {
+ Taro.navigateTo({
+ url: `${RouterPath.EnterpriseEmployeeDetail}?id=${item.id}&userId=${item.userId}`,
+ });
+}
</script>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/InnerPage.vue
index 48fd7b5..2967878 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/InnerPage.vue
@@ -12,7 +12,7 @@
:serviceCount="item.serviceCount"
>
<template #actions>
- <nut-button type="primary" plain>鏌ョ湅璇︽儏</nut-button>
+ <nut-button type="primary" plain @click="goSupplierDetail(item)">鏌ョ湅璇︽儏</nut-button>
<nut-button type="primary" @click="goEnterpriseEmployee(item)">閫夋嫨</nut-button>
</template>
</ChooseSupplierCard>
@@ -69,4 +69,10 @@
},
});
}
+
+function goSupplierDetail(item: API.GetStandardServiceSupplierEnterprisesQueryResultItem) {
+ Taro.navigateTo({
+ url: `${RouterPath.supplierDetail}?id=${item.id}`,
+ });
+}
</script>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/chooseSupplier.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/chooseSupplier.vue
index d77734f..2b68d48 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/chooseSupplier.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/chooseSupplier/chooseSupplier.vue
@@ -1,5 +1,5 @@
<template>
- <PageLayoutWithBg class="addStandardOrder-page-wrapper" title="閫夋嫨鏈嶅姟鏈烘瀯">
+ <PageLayoutWithBg class="chooseSupplier-page-wrapper" title="閫夋嫨鏈嶅姟鏈烘瀯">
<InnerPage />
</PageLayoutWithBg>
</template>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.vue
index 6911877..7f7375d 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.vue
@@ -137,7 +137,7 @@
];
skuState.goods = {
skuId: SkuUtils.DefaultSkuSpecId,
- price: toThousand(res.specs[0].price),
+ price: res.specs[0].price,
imagePath: setOSSLink(res.files[0]),
name: res.name,
};
@@ -166,7 +166,7 @@
});
});
-async function handleAttention() {
+const handleAttention = useAccessLogin(async () => {
try {
let params: API.CollectionStandardServiceCommand = {
ids: [id],
@@ -177,7 +177,7 @@
refetch({ type: 'inactive' });
}
} catch (error) {}
-}
+});
</script>
<style lang="scss">
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/InnerPage.vue
new file mode 100644
index 0000000..02a2b4a
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/InnerPage.vue
@@ -0,0 +1,23 @@
+<template>
+ <div></div>
+</template>
+
+<script setup lang="ts">
+import Taro from '@tarojs/taro';
+// 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: 'InnerPage',
+});
+
+const router = Taro.useRouter();
+const enterpriseId = router.params?.id ?? '';
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.config.ts b/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.vue
new file mode 100644
index 0000000..177f728
--- /dev/null
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/supplierDetail/supplierDetail.vue
@@ -0,0 +1,13 @@
+<template>
+ <PageLayoutWithBg class="supplierDetail-page-wrapper" title="鏈嶅姟鏈烘瀯璇︽儏">
+ <InnerPage />
+ </PageLayoutWithBg>
+</template>
+
+<script setup lang="ts">
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'supplierDetail',
+});
+</script>
diff --git a/apps/housekeepingMiniApp/src/utils/request/index.ts b/apps/housekeepingMiniApp/src/utils/request/index.ts
index 2ebbed6..ac4f2bc 100644
--- a/apps/housekeepingMiniApp/src/utils/request/index.ts
+++ b/apps/housekeepingMiniApp/src/utils/request/index.ts
@@ -47,9 +47,9 @@
REDIRECT = 9,
}
// 涓庡悗绔害瀹氱殑鍝嶅簲鏁版嵁鏍煎紡
-interface ResponseStructure {
+export interface ResponseStructure<TData = any> {
success: boolean;
- data: any;
+ data: TData;
/**
* http鐘舵�佸悧
*/
diff --git a/package.json b/package.json
index c1cdcd1..9614b79 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,10 @@
"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",
+ "CStandard:build": "pnpm run -C apps/cStandardMiniApp build:weapp:upload",
+ "CStandard:staging:build": "pnpm run -C apps/cStandardMiniApp build:weapp:staging:upload",
+ "BStandard:build": "pnpm run -C apps/bStandardMiniApp build:weapp:upload",
+ "BStandard:staging:build": "pnpm run -C apps/bStandardMiniApp build:weapp:staging:upload",
"build:all": "pnpm run -r --parallel build:weapp:upload"
},
"browserslist": [
diff --git a/packages/components/src/Sku/sku.ts b/packages/components/src/Sku/sku.ts
index 23d2e2d..fc46abb 100644
--- a/packages/components/src/Sku/sku.ts
+++ b/packages/components/src/Sku/sku.ts
@@ -12,7 +12,7 @@
export type Goods = {
imagePath: string;
- price: string;
+ price: number;
skuId: string;
name: string;
};
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
index d81c52a..69697f3 100644
--- a/packages/constants/apiEnum.ts
+++ b/packages/constants/apiEnum.ts
@@ -265,6 +265,8 @@
export enum EnumEnterpriseWalletTransactionType {
/**鍏呭�� */
Recharge = 10,
+ /**鏀跺叆 */
+ Income = 11,
/**杞处 */
Transfer = 20,
}
diff --git a/packages/hooks/standardOrder.ts b/packages/hooks/standardOrder.ts
index 987b48d..ecdb491 100644
--- a/packages/hooks/standardOrder.ts
+++ b/packages/hooks/standardOrder.ts
@@ -19,13 +19,13 @@
export function useStandardServiceDetail({ id, onSuccess }: UseStandardServiceDetailOptions) {
const { data, refetch, isLoading, isError } = useQuery({
- queryKey: ['standardServiceServices/getStandardService', id],
+ queryKey: ['standardServiceServices/getOpenStandardService', id],
queryFn: async () => {
let params: API.APIgetStandardServiceParams = {
id: unref(id),
};
- return await standardServiceServices.getStandardService(params, {
+ return await standardServiceServices.getOpenStandardService(params, {
showLoading: false,
});
},
@@ -36,11 +36,12 @@
});
const minPrice = computed(() => {
- if (!data.value?.specs?.length) {
- return 0;
- } else {
- return Math.min(...data.value.specs.map((x) => x.price));
- }
+ // if (!data.value?.specs?.length) {
+ // return 0;
+ // } else {
+ // return Math.min(...data.value.specs.map((x) => x.price));
+ // }
+ return data.value?.minSpecPrice ?? 0;
});
return {
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
index 10b88c6..aa4cd2f 100644
--- a/packages/services/apiV2/index.ts
+++ b/packages/services/apiV2/index.ts
@@ -9,13 +9,13 @@
import * as task from './task';
import * as enterpriseWallet from './enterpriseWallet';
import * as ocrUtils from './ocrUtils';
+import * as standardOrder from './standardOrder';
import * as electronSign from './electronSign';
import * as resource from './resource';
import * as logRecords from './logRecords';
import * as dictionary from './dictionary';
import * as taskCheckReceive from './taskCheckReceive';
import * as taskUser from './taskUser';
-import * as standardOrder from './standardOrder';
import * as standardService from './standardService';
import * as userResume from './userResume';
import * as auth from './auth';
@@ -40,13 +40,13 @@
task,
enterpriseWallet,
ocrUtils,
+ standardOrder,
electronSign,
resource,
logRecords,
dictionary,
taskCheckReceive,
taskUser,
- standardOrder,
standardService,
userResume,
auth,
diff --git a/packages/services/apiV2/standardOrder.ts b/packages/services/apiV2/standardOrder.ts
index 22de738..a38f968 100644
--- a/packages/services/apiV2/standardOrder.ts
+++ b/packages/services/apiV2/standardOrder.ts
@@ -98,6 +98,24 @@
});
}
+/** 鏌ヨ鏍囧噯璁㈠崟缁撶畻璇︽儏 GET /api/flexjob/standardOrder/getStandardOrderSettlement */
+export async function getStandardOrderSettlement(
+ // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+ params: API.APIgetStandardOrderSettlementParams,
+ options?: API.RequestConfig
+) {
+ return request<API.GetStandardOrderSettlementQueryResult>(
+ '/api/flexjob/standardOrder/getStandardOrderSettlement',
+ {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ }
+ );
+}
+
/** 鏌ヨ鏍囧噯璁㈠崟璇︽儏 GET /api/flexjob/standardOrder/getSureStandardOrder */
export async function getSureStandardOrder(
// 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index a623f2f..117a99a 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -408,6 +408,11 @@
scene?: EnumGetStandardOrdersQueryScene;
}
+ interface APIgetStandardOrderSettlementParams {
+ /** 璁㈠崟Id */
+ id?: string;
+ }
+
interface APIgetStandardServiceParams {
/** Id */
id?: string;
@@ -1222,6 +1227,8 @@
enum EnumEnterpriseWalletTransactionType {
/**鍏呭�� */
Recharge = 10,
+ /**鏀跺叆 */
+ Income = 11,
/**杞处 */
Transfer = 20,
}
@@ -3447,6 +3454,24 @@
timestamp?: number;
}
+ interface FriendlyResultGetStandardOrderSettlementQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetStandardOrderSettlementQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultGetStandardOrdersQueryResult {
/** 璺熻釜Id */
traceId?: string;
@@ -8228,6 +8253,38 @@
contactPhoneNumber?: string;
}
+ interface GetStandardOrderSettlementQueryResult {
+ /** 璁㈠崟Id */
+ id?: string;
+ /** 浠樻浜鸿处鎴� */
+ payerAccount?: string;
+ /** 浠樻浜哄悕绉� */
+ payerName?: string;
+ /** 浠樻浜哄紑鎴疯 */
+ payerBank?: string;
+ /** 浠樻浜烘敮琛� */
+ payerBankBranch?: string;
+ /** 鏀舵浜哄鍚� */
+ receiveName?: string;
+ /** 鏀舵璐︽埛 */
+ receiveAccount?: string;
+ /** 鏀舵浜哄紑鎴疯 */
+ receiveBank?: string;
+ /** 鏀舵浜烘敮琛� */
+ receiveBankBranch?: string;
+ /** 甯佺 */
+ currency?: string;
+ /** 甯佺 */
+ currencyName?: string;
+ settlementStatus?: EnumStandardOrderSettlementStatus;
+ /** 缁撶畻鏃堕棿 */
+ settlementTime?: string;
+ /** 缁撶畻閲戦 */
+ settlementAmount?: number;
+ /** 鐢靛瓙鏀舵嵁涓嬭浇閾炬帴 */
+ ereceiptDownloadOssUrl?: string;
+ }
+
interface GetStandardOrdersQuery {
scene?: EnumGetStandardOrdersQueryScene;
/** 鍏抽敭瀛楋紙璁㈠崟鍙�/鏈嶅姟鍚嶏級 */
@@ -8245,6 +8302,7 @@
partAEnterpriseOrderStatus?: EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus;
supplierEnterpriseOrderStatus?: EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus;
settlementStatus?: EnumStandardOrderSettlementStatus;
+ taskCheckReceiveStatus?: EnumTaskCheckReceiveStatus;
pageModel?: PagedListQueryPageModel;
}
@@ -8418,6 +8476,8 @@
id?: string;
/** 澶村儚 */
avatar?: string;
+ /** 鐢ㄦ埛ID */
+ userId?: string;
/** 濮撳悕 */
name?: string;
gender?: EnumUserGender;
diff --git a/packages/services/types.d.ts b/packages/services/types.d.ts
index 930c5be..6fcdd5a 100644
--- a/packages/services/types.d.ts
+++ b/packages/services/types.d.ts
@@ -1,4 +1,22 @@
declare module '@/utils/request' {
export const request: IRequest;
+ export interface ResponseStructure<TData = any> {
+ success: boolean;
+ data: TData;
+ /**
+ * http鐘舵�佸悧
+ */
+ code?: number;
+ /**
+ * 閿欒鐮�
+ */
+ errorCode?: string;
+ /**
+ * 閿欒淇℃伅
+ */
+ msg?: string;
+ showType?: ErrorShowType;
+ traceId?: string;
+ }
}
\ No newline at end of file
--
Gitblit v1.10.0