From ae1b411fcb54f794646b32b29c47cb380163f95e Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 17 二月 2025 14:32:05 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
---
apps/bMiniApp/src/app.config.ts | 6 +
packages/components/src/index.ts | 1
apps/bMiniApp/src/constants/router.ts | 1
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue | 8 +
apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.vue | 17 ++++
packages/components/src/Card/SignCard.vue | 75 ++++++++++++++++++
apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.config.ts | 3
apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue | 93 +++++++++++++++++++++++
apps/bMiniApp/project.private.config.json | 7 -
9 files changed, 201 insertions(+), 10 deletions(-)
diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index ccb2035..fab06fe 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -77,13 +77,6 @@
"query": "",
"launchMode": "default",
"scene": null
- },
- {
- "name": "",
- "pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage",
- "query": "",
- "launchMode": "default",
- "scene": null
}
]
}
diff --git a/apps/bMiniApp/src/app.config.ts b/apps/bMiniApp/src/app.config.ts
index 54ee05b..65805de 100644
--- a/apps/bMiniApp/src/app.config.ts
+++ b/apps/bMiniApp/src/app.config.ts
@@ -102,7 +102,11 @@
},
{
root: 'subpackages/flexJobManage',
- pages: ['flexJobManage/flexJobManage', 'flexJobDetailFromManage/flexJobDetailFromManage'],
+ pages: [
+ 'flexJobManage/flexJobManage',
+ 'flexJobDetailFromManage/flexJobDetailFromManage',
+ 'flexJobSign/flexJobSign',
+ ],
},
],
// preloadRule: {
diff --git a/apps/bMiniApp/src/constants/router.ts b/apps/bMiniApp/src/constants/router.ts
index 1d664e3..51db33e 100644
--- a/apps/bMiniApp/src/constants/router.ts
+++ b/apps/bMiniApp/src/constants/router.ts
@@ -15,6 +15,7 @@
flexJobManage = '/subpackages/flexJobManage/flexJobManage/flexJobManage',
flexJobDetailFromManage = '/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage',
+ flexJobSign = '/subpackages/flexJobManage/flexJobSign/flexJobSign',
// userInfo = '/subpackages/setting/userInfo/userInfo',
// setting = '/subpackages/setting/setting/setting',
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
index 34e4490..6bc6b6b 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
@@ -29,7 +29,7 @@
>
<nut-button type="primary" @click.stop="checkContract">鏌ョ湅鍚堢害</nut-button>
</template>
- <nut-button v-else type="primary" @click.stop="goSignContract">绛剧害</nut-button>
+ <nut-button v-else type="primary" @click.stop="goSignContract(item)">绛剧害</nut-button>
</template>
</FlexJobCard>
</template>
@@ -80,7 +80,11 @@
function checkContract() {}
function handleUnContract() {}
-function goSignContract() {}
+function goSignContract(item: API.FrontOrderList) {
+ Taro.navigateTo({
+ url: `${RouterPath.flexJobSign}`,
+ });
+}
</script>
<style lang="scss">
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue
new file mode 100644
index 0000000..324e935
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue
@@ -0,0 +1,93 @@
+<template>
+ <div class="searchbar-container">
+ <BlSearchbar
+ v-model.trim="searchValue"
+ placeholder="鎼滅储鍚堝悓鍚�/缂栧彿"
+ @search="handleSearch"
+ @change="handleSearch"
+ ></BlSearchbar>
+ <ChunkTitle title="鍚堝悓鍒楄〃" />
+ </div>
+
+ <InfiniteLoading
+ scrollViewClassName="common-infinite-scroll-list flexJobSign-list"
+ v-bind="infiniteLoadingProps"
+ >
+ <template #renderItem="{ item }">
+ <SignCard @click="handleCheck(item)" v-model:checked-id="checkedId" :id="item.id"></SignCard>
+ </template>
+ </InfiniteLoading>
+
+ <PageFooter>
+ <PageFooterBtn type="primary">閭�璇风绾�</PageFooterBtn>
+ </PageFooter>
+</template>
+
+<script setup lang="ts">
+import { useInfiniteLoading } from '@12333/hooks';
+import { OrderInputType } from '@12333/constants';
+import * as orderServices from '@12333/services/api/Order';
+import _ from 'lodash';
+import { trim } from '@12333/utils';
+import { SignCard } from '@12333/components';
+
+defineOptions({
+ name: 'InnerPage',
+});
+
+const searchValue = ref('');
+const queryState = reactive({
+ searchValueTrim: '',
+});
+
+const checkedId = ref('');
+
+const handleSearch = _.debounce(function () {
+ queryState.searchValueTrim = trim(searchValue.value);
+}, 300);
+
+const { infiniteLoadingProps } = useInfiniteLoading(
+ ({ pageParam }) => {
+ let params: API.FrontOrderListInput = {
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ orderInput: [{ property: 'isRecommend', order: OrderInputType.Desc }],
+ },
+ };
+
+ return orderServices.getFrontOrderList(params, {
+ showLoading: false,
+ });
+ },
+ {
+ queryKey: ['orderServices/getFrontOrderList'],
+ }
+);
+
+function handleCheck(item: API.OrderInfoDto) {
+ checkedId.value = item.id;
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.flexJobSign-page-wrapper {
+ .searchbar-container {
+ padding: 30px 60px;
+ }
+
+ .chunk-title-wrapper {
+ padding: 30px 10px 0;
+ }
+
+ .flexJobSign-list {
+ .infinite-list-inner {
+ background-color: #ffffff;
+ padding: 0 30px;
+ border-radius: 12px;
+ }
+ }
+}
+</style>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.config.ts b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.vue
new file mode 100644
index 0000000..8a8c226
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/flexJobSign.vue
@@ -0,0 +1,17 @@
+<template>
+ <PageLayoutWithBg class="flexJobSign-page-wrapper" :title="'绛剧害'">
+ <InnerPage></InnerPage>
+ </PageLayoutWithBg>
+</template>
+
+<script setup lang="ts">
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'flexJobSign',
+});
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>
diff --git a/packages/components/src/Card/SignCard.vue b/packages/components/src/Card/SignCard.vue
new file mode 100644
index 0000000..a0e38fb
--- /dev/null
+++ b/packages/components/src/Card/SignCard.vue
@@ -0,0 +1,75 @@
+<template>
+ <div class="sign-card-wrapper">
+ <div class="sign-card-title">{{ '鍚堝悓缂栧彿锛�0293848340' }}</div>
+ <div class="sign-card-content">
+ <div class="sign-card-content-name">{{ 'xxxx鍔冲姟鍏徃鍚堝悓' }}</div>
+ <div class="sign-card-content-icon">
+ <IconFont v-if="selected" name="check-checked" color="#3A71FF" size="16"></IconFont>
+ <IconFont v-else name="check-normal" size="16"></IconFont>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script setup lang="ts">
+import { IconFont } from '@nutui/icons-vue-taro';
+import { computed } from 'vue';
+
+defineOptions({
+ name: 'SignCard',
+});
+
+type Props = {
+ checkedId?: string;
+ id: string;
+};
+
+const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+ (e: 'update:checkedId', value: string): void;
+}>();
+
+const innerCheckedId = computed({
+ get() {
+ return props.checkedId;
+ },
+ set(val) {
+ emit('update:checkedId', val);
+ },
+});
+
+const selected = computed(() => innerCheckedId.value === props.id);
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.sign-card-wrapper {
+ padding: 24px 24px 20px 10px;
+ border-bottom: 2px solid #f6f6f6;
+
+ .sign-card-title {
+ font-size: 20px;
+ color: boleGetCssVar('text-color', 'secondary');
+ margin-bottom: 14px;
+ }
+
+ .sign-card-content {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .sign-card-content-name {
+ font-size: 24px;
+ line-height: 32px;
+ color: boleGetCssVar('text-color', 'primary');
+ }
+
+ .sign-card-content-icon {
+ width: 32px;
+ height: 32px;
+ }
+ }
+}
+</style>
diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts
index 2e4af05..eff99ae 100644
--- a/packages/components/src/index.ts
+++ b/packages/components/src/index.ts
@@ -23,6 +23,7 @@
export { default as MineAgreementSignCard } from './Card/MineAgreementSignCard.vue';
export { default as JobApplicationCard } from './Card/JobApplicationCard.vue';
export { default as MyTaskCard } from './Card/MyTaskCard.vue';
+export { default as SignCard } from './Card/SignCard.vue';
export { default as FlexJobCard } from './Card/FlexJobCard.vue';
export { default as TaskPrice } from './Card/TaskPrice.vue';
export { default as TaskDetailWelfareItem } from './Card/TaskDetailWelfareItem.vue';
--
Gitblit v1.9.1