From 06a7a72a7b6dd4ef2c0c70314dfc3d1f99768c5d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 12 二月 2025 17:41:34 +0800
Subject: [PATCH] fix: task

---
 apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.config.ts |    3 
 apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue             |  130 ++++++++++++++++++++++++++
 apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.vue       |   13 ++
 apps/cMiniApp/src/assets/task/icon-localtion.png                             |    0 
 apps/cMiniApp/src/styles/var.scss                                            |    2 
 apps/cMiniApp/src/pages/home/index.vue                                       |    8 +
 apps/cMiniApp/src/subpackages/task/taskDetail/taskDetail.scss                |    2 
 apps/cMiniApp/src/pages/task/InnerPage.vue                                   |    5 
 apps/cMiniApp/src/assets/task/icon-phone.png                                 |    0 
 apps/cMiniApp/project.private.config.json                                    |   14 ++
 apps/cMiniApp/src/assets/task/icon-attention.png                             |    0 
 apps/cMiniApp/src/assets/task/icon-attention-active.png                      |    0 
 apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.config.ts |    3 
 apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.vue       |   13 ++
 apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue                  |    6 
 apps/cMiniApp/src/subpackages/mine/editMineInfo/editMineInfo.vue             |    2 
 apps/cMiniApp/src/constants/router.ts                                        |    2 
 apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue             |   50 ++++++++++
 apps/cMiniApp/src/app.config.ts                                              |    7 +
 packages/components/src/Calendar/Calendar.vue                                |   28 ++++-
 packages/components/src/Card/MyTaskCard.vue                                  |   11 +
 21 files changed, 283 insertions(+), 16 deletions(-)

diff --git a/apps/cMiniApp/project.private.config.json b/apps/cMiniApp/project.private.config.json
index c721439..9d3688a 100644
--- a/apps/cMiniApp/project.private.config.json
+++ b/apps/cMiniApp/project.private.config.json
@@ -9,6 +9,20 @@
         "miniprogram": {
             "list": [
                 {
+                    "name": "楠屾敹璇︽儏",
+                    "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail",
+                    "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2",
+                    "launchMode": "default",
+                    "scene": null
+                },
+                {
+                    "name": "鎻愪氦楠屾敹",
+                    "pathName": "subpackages/task/taskSubmitCheck/taskSubmitCheck",
+                    "query": "id=57a8f533-2a46-7a88-e008-3a1775810dd2",
+                    "launchMode": "default",
+                    "scene": null
+                },
+                {
                     "name": "浠诲姟",
                     "pathName": "pages/task/task",
                     "query": "",
diff --git a/apps/cMiniApp/src/app.config.ts b/apps/cMiniApp/src/app.config.ts
index 3111eec..65b63e7 100644
--- a/apps/cMiniApp/src/app.config.ts
+++ b/apps/cMiniApp/src/app.config.ts
@@ -86,7 +86,12 @@
     },
     {
       root: 'subpackages/task',
-      pages: ['taskDetail/taskDetail', 'companyDetail/companyDetail'],
+      pages: [
+        'taskDetail/taskDetail',
+        'companyDetail/companyDetail',
+        'taskSubmitCheck/taskSubmitCheck',
+        'taskCheckDetail/taskCheckDetail',
+      ],
     },
     {
       root: 'subpackages/user',
diff --git a/apps/cMiniApp/src/assets/task/icon-attention-active.png b/apps/cMiniApp/src/assets/task/icon-attention-active.png
index b1c6265..a226f67 100644
--- a/apps/cMiniApp/src/assets/task/icon-attention-active.png
+++ b/apps/cMiniApp/src/assets/task/icon-attention-active.png
Binary files differ
diff --git a/apps/cMiniApp/src/assets/task/icon-attention.png b/apps/cMiniApp/src/assets/task/icon-attention.png
index eba95ca..81bdc6b 100644
--- a/apps/cMiniApp/src/assets/task/icon-attention.png
+++ b/apps/cMiniApp/src/assets/task/icon-attention.png
Binary files differ
diff --git a/apps/cMiniApp/src/assets/task/icon-localtion.png b/apps/cMiniApp/src/assets/task/icon-localtion.png
new file mode 100644
index 0000000..71784b5
--- /dev/null
+++ b/apps/cMiniApp/src/assets/task/icon-localtion.png
Binary files differ
diff --git a/apps/cMiniApp/src/assets/task/icon-phone.png b/apps/cMiniApp/src/assets/task/icon-phone.png
new file mode 100644
index 0000000..55a2b00
--- /dev/null
+++ b/apps/cMiniApp/src/assets/task/icon-phone.png
Binary files differ
diff --git a/apps/cMiniApp/src/constants/router.ts b/apps/cMiniApp/src/constants/router.ts
index e23d68a..2c320ea 100644
--- a/apps/cMiniApp/src/constants/router.ts
+++ b/apps/cMiniApp/src/constants/router.ts
@@ -12,6 +12,8 @@
 
   taskDetail = '/subpackages/task/taskDetail/taskDetail',
   companyDetail = '/subpackages/task/companyDetail/companyDetail',
+  taskSubmitCheck = '/subpackages/task/taskSubmitCheck/taskSubmitCheck',
+  taskCheckDetail = '/subpackages/task/taskCheckDetail/taskCheckDetail',
 
   // userInfo = '/subpackages/setting/userInfo/userInfo',
   // setting = '/subpackages/setting/setting/setting',
diff --git a/apps/cMiniApp/src/pages/home/index.vue b/apps/cMiniApp/src/pages/home/index.vue
index 9be0cad..e8739cf 100644
--- a/apps/cMiniApp/src/pages/home/index.vue
+++ b/apps/cMiniApp/src/pages/home/index.vue
@@ -16,7 +16,7 @@
           ></BlSearchbar>
         </div>
         <div class="city-btn" @click="goCitySelect">
-          <Location2 :size="16" />
+          <img :src="IconLocaltion" class="city-btn-icon" />
           <div class="city-btn-text">{{ locationCity }}</div>
         </div>
       </div>
@@ -73,6 +73,7 @@
 import IconLogo from '@/assets/home/icon-logo.png';
 import { TaskCard, ProTabs, ProTabPane } from '@12333/components';
 import HomeQueryMenuView from './HomeQueryMenuView.vue';
+import IconLocaltion from '@/assets/task/icon-localtion.png';
 
 const { locationCity } = useUser();
 
@@ -134,6 +135,11 @@
       padding-left: 36px;
       color: boleGetCssVar('text-color', 'primary');
 
+      .city-btn-icon {
+        width: 40px;
+        height: 40px;
+      }
+
       .city-btn-text {
         max-width: 200px;
         @include ellipsis;
diff --git a/apps/cMiniApp/src/pages/task/InnerPage.vue b/apps/cMiniApp/src/pages/task/InnerPage.vue
index 159140e..a00811a 100644
--- a/apps/cMiniApp/src/pages/task/InnerPage.vue
+++ b/apps/cMiniApp/src/pages/task/InnerPage.vue
@@ -59,8 +59,11 @@
 );
 
 function goSubmitTaskDetail(item: API.FrontOrderList) {
+  //   Taro.navigateTo({
+  //     url: `${RouterPath.taskSubmitCheck}?id=${item.id}`,
+  //   });
   Taro.navigateTo({
-    url: `${RouterPath.taskDetail}?id=${item.id}`,
+    url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
   });
 }
 </script>
diff --git a/apps/cMiniApp/src/styles/var.scss b/apps/cMiniApp/src/styles/var.scss
index ee7a0b6..400367a 100644
--- a/apps/cMiniApp/src/styles/var.scss
+++ b/apps/cMiniApp/src/styles/var.scss
@@ -9,7 +9,7 @@
     'body-background-color': $body-background-color,
     'title-color': #444444,
     'shadow-color': rgba(0, 0, 0, 0.15),
-    'warning': #ef9c00,
+    'warning': #ff7d00,
     'danger': #fe3333,
     'success': #31b573,
     'info': #e9e8e8,
diff --git a/apps/cMiniApp/src/subpackages/mine/editMineInfo/editMineInfo.vue b/apps/cMiniApp/src/subpackages/mine/editMineInfo/editMineInfo.vue
index 8485302..0f814db 100644
--- a/apps/cMiniApp/src/subpackages/mine/editMineInfo/editMineInfo.vue
+++ b/apps/cMiniApp/src/subpackages/mine/editMineInfo/editMineInfo.vue
@@ -1,5 +1,5 @@
 <template>
-  <PageLayout class="index-page-wrapper" :title="'缂栬緫涓汉淇℃伅'">
+  <PageLayout class="index-page-wrapper" :title="'缂栬緫涓汉淇℃伅'" has-border>
     <InnerPage></InnerPage>
   </PageLayout>
 </template>
diff --git a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
new file mode 100644
index 0000000..4979b79
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -0,0 +1,130 @@
+<template>
+  <ContentScrollView style="background-color: transparent">
+    <MyTaskCard :showMyTaskArrow="false"></MyTaskCard>
+    <div class="taskCheckDetail-status-wrapper">
+      <div class="taskCheckDetail-status-title">楠屾敹鐓х墖</div>
+      <div
+        class="taskCheckDetail-status"
+        :style="{
+          color: Colors.Warning,
+        }"
+      >
+        寰呴獙鏀�
+      </div>
+    </div>
+    <div class="taskCheckDetail-time">2024.11.14 9:28:39</div>
+    <nut-grid
+      square
+      :column-num="3"
+      :border="false"
+      :gutter="20"
+      v-if="list.length > 0"
+      class="taskCheckDetail-img-grid"
+    >
+      <nut-grid-item
+        v-for="(item, index) in list"
+        :key="item"
+        class="publish-circle-friend-file-grid-item"
+      >
+        <div class="taskCheckDetail-img-grid-item">
+          <PreviewImage :src="item" class="taskCheckDetail-img" :urls="list" />
+        </div>
+      </nut-grid-item>
+    </nut-grid>
+  </ContentScrollView>
+  <!-- <div class="taskCheckDetail-tips-wrapper">
+    <div class="taskCheckDetail-tips-text">鎮ㄥ皻鏈粦瀹氶摱琛屽崱锛屾殏鏃舵棤娉曠粨绠楁湇鍔¤垂</div>
+    <div class="taskCheckDetail-tips-btn">绔嬪嵆缁戝畾閾惰鍗′俊鎭�</div>
+  </div> -->
+</template>
+
+<script setup lang="ts">
+import { MyTaskCard, PreviewImage } from '@12333/components';
+import { Colors } from '@12333/constants';
+
+defineOptions({
+  name: 'InnerPage',
+});
+
+const list = ref([
+  'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg',
+  'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg',
+  'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg',
+  'https://storage.360buyimg.com/jdc-article/fristfabu.jpg',
+]);
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+
+.taskCheckDetail-page-wrapper {
+  .taskCheckDetail-status-wrapper {
+    display: flex;
+    align-items: center;
+    font-weight: 600;
+    font-size: 28px;
+    line-height: 32px;
+    margin-bottom: 16px;
+
+    .taskCheckDetail-status-title {
+      color: boleGetCssVar('text-color', 'primary');
+      flex: 1;
+      min-width: 0;
+    }
+  }
+
+  .taskCheckDetail-time {
+    font-weight: 400;
+    font-size: 24px;
+    color: boleGetCssVar('text-color', 'regular');
+    line-height: 36px;
+    margin-bottom: 22px;
+  }
+
+  .taskCheckDetail-img-grid {
+    padding: 0 !important;
+
+    .publish-circle-friend-file-grid-item {
+      .nut-grid-item__content--square {
+        padding: 0;
+        border: none;
+        display: block;
+        background-color: transparent;
+      }
+    }
+
+    .taskCheckDetail-img-grid-item {
+      width: 100%;
+      height: 100%;
+      box-sizing: border-box;
+      position: relative;
+      padding: 20px;
+    }
+
+    .taskCheckDetail-img {
+      border-radius: 8px;
+      width: 100% !important;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+
+  .taskCheckDetail-tips-wrapper {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    font-weight: 400;
+    font-size: 24px;
+    line-height: 32px;
+    padding: 20px 0;
+
+    .taskCheckDetail-tips-text {
+      color: boleGetCssVar('text-color', 'secondary');
+    }
+
+    .taskCheckDetail-tips-btn {
+      color: boleGetCssVar('color', 'primary');
+    }
+  }
+}
+</style>
diff --git a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.config.ts b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+  disableScroll: true,
+});
diff --git a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.vue b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.vue
new file mode 100644
index 0000000..3d08fd1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/taskCheckDetail.vue
@@ -0,0 +1,13 @@
+<template>
+  <PageLayoutWithBg class="taskCheckDetail-page-wrapper" title="楠屾敹璇︽儏">
+    <InnerPage />
+  </PageLayoutWithBg>
+</template>
+
+<script setup lang="ts">
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+  name: 'taskCheckDetail',
+});
+</script>
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index 763c349..2226d4f 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -16,7 +16,7 @@
         </div>
         <div class="taskDetail-address-wrapper">
           <div class="taskDetail-address-title-wrapper">
-            <img :src="IconAttentioActive" class="taskDetail-address-title-icon" />
+            <img :src="IconLocaltion" class="taskDetail-address-title-icon" />
             <div class="taskDetail-address-title">瀹佹尝鏌忔偊閰掑簵</div>
           </div>
           <div class="taskDetail-address-info-wrapper">
@@ -75,7 +75,7 @@
         :isFlex="false"
         openType="share"
       ></PageFooterAction>
-      <PageFooterAction :icon="IconShare" text="鎵嬫満" :isFlex="false"></PageFooterAction>
+      <PageFooterAction :icon="IconPhone" text="鎵嬫満" :isFlex="false"></PageFooterAction>
       <PageFooterBtn type="primary">鎶ュ悕</PageFooterBtn>
     </PageFooter>
   </LoadingLayout>
@@ -91,7 +91,9 @@
 import IconAttentioActive from '@/assets/task/icon-attention-active.png';
 import { RectRight } from '@nutui/icons-vue-taro';
 import IconShare from '@/assets/task/icon-share.png';
+import IconPhone from '@/assets/task/icon-phone.png';
 import IconSafe from '@/assets/task/icon-safe.png';
+import IconLocaltion from '@/assets/task/icon-localtion.png';
 import './taskDetail.scss';
 import TaskDetailWelfareItem from '../components/TaskDetailWelfareItem.vue';
 import CompanyDesc from '../components/CompanyDesc.vue';
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/taskDetail.scss b/apps/cMiniApp/src/subpackages/task/taskDetail/taskDetail.scss
index 0d92c6c..779f63d 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/taskDetail.scss
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/taskDetail.scss
@@ -142,6 +142,4 @@
       }
     }
   }
-
-  
 }
diff --git a/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
new file mode 100644
index 0000000..a7af757
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
@@ -0,0 +1,50 @@
+<template>
+  <ContentScrollView :paddingH="false">
+    <nut-form :model-value="form" ref="formRef" :rules="rules">
+      <nut-form-item label="涓婁紶鐓х墖:" class="bole-form-item alignTop" prop="imgUrl" required>
+        <Uploader
+          v-model:file-list="form.imgUrl"
+          :maximum="9"
+          :limitFileSize="10"
+          class="bole-uploader nopaddingtop"
+        >
+        </Uploader>
+      </nut-form-item>
+    </nut-form>
+  </ContentScrollView>
+  <PageFooter :isOnlyAction="false">
+    <PageFooterBtn type="primary" @click="handleSubmit()">鎻愪氦</PageFooterBtn>
+  </PageFooter>
+</template>
+
+<script setup lang="ts">
+import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
+import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
+import { FormValidator } from '@12333/utils';
+
+defineOptions({
+  name: 'InnerPage',
+});
+
+const form = reactive({
+  imgUrl: [] as FileItem[],
+});
+
+const rules = reactive<FormRules>({
+  imgUrl: [{ required: true, message: '璇蜂笂浼犵収鐗�', validator: FormValidator.validatorArray }],
+});
+
+const formRef = ref<any>(null);
+
+function handleSubmit() {
+  if (!formRef.value) return;
+  formRef.value.validate().then(({ valid, errors }: any) => {
+    if (valid) {
+    }
+  });
+}
+</script>
+
+<style lang="scss">
+@import '@/styles/common.scss';
+</style>
diff --git a/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.config.ts b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+  disableScroll: true,
+});
diff --git a/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.vue b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.vue
new file mode 100644
index 0000000..1cede41
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/taskSubmitCheck.vue
@@ -0,0 +1,13 @@
+<template>
+  <PageLayout class="taskSubmitCheck-page-wrapper" title="鎻愪氦楠屾敹" has-border>
+    <InnerPage />
+  </PageLayout>
+</template>
+
+<script setup lang="ts">
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+  name: 'taskSubmitCheck',
+});
+</script>
diff --git a/packages/components/src/Calendar/Calendar.vue b/packages/components/src/Calendar/Calendar.vue
index 251bdbb..c973d70 100644
--- a/packages/components/src/Calendar/Calendar.vue
+++ b/packages/components/src/Calendar/Calendar.vue
@@ -1,16 +1,17 @@
 <template>
   <div class="bole-calendar-wrapper">
-    <div class="bole-calendar-inner">
+    <div :class="['bole-calendar-inner', { isCollapse }]">
       <nut-calendar-card v-model="model" class="bole-calendar"></nut-calendar-card>
     </div>
-    <div class="bole-calendar-arrow">
-      <DownArrow :size="12" />
+    <div :class="['bole-calendar-arrow', { active: !isCollapse }]" @click="toggle">
+      <DownArrow :size="12" :class="['bole-calendar-arrow-icon']" />
     </div>
   </div>
 </template>
 
 <script setup lang="ts">
 import { DownArrow } from '@nutui/icons-vue-taro';
+import { useToggle } from 'senin-mini/hooks';
 
 defineOptions({
   name: 'Calendar',
@@ -20,6 +21,8 @@
 
 // const props = withDefaults(defineProps<Props>(), {});
 const model = defineModel<Date | Date[]>();
+
+const { isCollapse, toggle } = useToggle(true);
 </script>
 
 <style lang="scss">
@@ -31,13 +34,28 @@
   }
 
   .bole-calendar-inner {
-    height: 500px;
-    overflow: hidden;
+    overflow: auto;
+    transition: all 1s ease;
+    max-height: 2000px;
+
+    &.isCollapse {
+      max-height: 500px;
+    }
   }
 
   .bole-calendar-arrow {
     display: flex;
     justify-content: center;
+
+    .bole-calendar-arrow-icon {
+      transition: all 0.2s linear;
+    }
+
+    &.active {
+      .bole-calendar-arrow-icon {
+        transform: rotate(180deg);
+      }
+    }
   }
 }
 </style>
diff --git a/packages/components/src/Card/MyTaskCard.vue b/packages/components/src/Card/MyTaskCard.vue
index 33e7a87..ecd1447 100644
--- a/packages/components/src/Card/MyTaskCard.vue
+++ b/packages/components/src/Card/MyTaskCard.vue
@@ -1,7 +1,8 @@
 <template>
   <TaskCard v-bind="props" :show-actions="false" class="my-task-card-wrapper">
     <template #title-right>
-      <RectRight :size="12" class="my-task-card-arrow" />
+      <RectRight :size="12" class="my-task-card-arrow" v-if="showMyTaskArrow" />
+      <div v-else></div>
     </template>
     <div class="my-task-card-time">2025骞�2鏈�5鏃� 鑷� 2025骞�3鏈�5鏃�</div>
   </TaskCard>
@@ -16,7 +17,13 @@
   name: 'MyTaskCard',
 });
 
-const props = withDefaults(defineProps<CommonTaskCardProps>(), {});
+type Props = CommonTaskCardProps & {
+  showMyTaskArrow?: boolean;
+};
+
+const props = withDefaults(defineProps<Props>(), {
+  showMyTaskArrow: true,
+});
 </script>
 
 <style lang="scss">

--
Gitblit v1.9.1