wupengfei
3 天以前 0df6e2d32260a40902b2984880ffc9a7b112d105
fix: bug
已修改4个文件
已添加1个文件
157 ■■■■■ 文件已修改
apps/bStandardMiniApp/src/subpackages/task/taskCheck/InnerPage.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bStandardMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bStandardMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/StandardTaskCheckCard.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bStandardMiniApp/src/subpackages/task/taskCheck/InnerPage.vue
@@ -23,20 +23,35 @@
      :key="queryState.checkReceiveStatus"
    >
      <template #renderItem="{ item }">
        <MyTaskCard
        <!-- <MyTaskCard
          :name="item.name"
          :beginTime="item.beginTime"
          :endTime="item.endTime"
          :addressName="item.addressName"
          @click="goSubmitTaskDetail(item)"
        />
        /> -->
        <StandardTaskCheckCard
          :serviceName="item.name"
          :begin-time="item.beginTime"
          :end-time="item.endTime"
          :contact="item.name"
          :contactPhoneNumber="item.name"
          :address-detail="item.addressName"
          @click="goSubmitTaskDetail(item)"
        ></StandardTaskCheckCard>
      </template>
    </InfiniteLoading>
  </div>
</template>
<script setup lang="ts">
import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components';
import {
  MyTaskCard,
  ProTabs,
  ProTabPane,
  Calendar,
  StandardTaskCheckCard,
} from '@12333/components';
import Taro from '@tarojs/taro';
import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants';
import { useCheckReceiveTasks } from '@12333/hooks';
apps/bStandardMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -1,12 +1,21 @@
<template>
  <LoadingLayout>
    <ContentView>
      <MyTaskCard
      <!-- <MyTaskCard
        :name="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.name"
        :addressName="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.addressName"
        :showMyTaskArrow="false"
        :showTime="false"
      ></MyTaskCard>
      ></MyTaskCard> -->
      <StandardTaskCheckCard
        :serviceName="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.name"
        :begin-time="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.beginTime"
        :end-time="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.endTime"
        :contact="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.name"
        :contactPhoneNumber="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.name"
        :address-detail="infiniteLoadingProps?.listData?.pages?.[0]?.objectData?.addressName"
        :showArrow="false"
      ></StandardTaskCheckCard>
      <ChunkTitle title="验收列表" />
    </ContentView>
    <InfiniteLoading
@@ -27,7 +36,6 @@
          :submitCheckReceiveStatus="item.submitCheckReceiveStatus"
          :checkHistoryType="item.checkHistoryType"
          @checkReceive="goTaskDetail(item)"
          @checkInOrOut="(ev) => checkReceiveTask(ev, item)"
        />
      </template>
    </InfiniteLoading>
@@ -39,7 +47,7 @@
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import { useInfiniteLoading } from '@12333/hooks';
import TaskCheckCard from '../components/TaskCheckCard.vue';
import { MyTaskCard, NumberInput, ChunkTitle } from '@12333/components';
import { MyTaskCard, NumberInput, ChunkTitle, StandardTaskCheckCard } from '@12333/components';
import {
  EnumTaskCheckReceiveMethod,
  EnumTaskCheckReceiveStatus,
apps/bStandardMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue
@@ -23,13 +23,13 @@
      ></TaskCheckFileCard>
    </ContentScrollView>
    <PageFooter>
      <PageFooterBtn
      <!-- <PageFooterBtn
        type="primary"
        :color="Colors.Info"
        class="dark-btn"
        @click="openDialog(detail?.checkInTime ?? '')"
        >修改服务费</PageFooterBtn
      >
      > -->
      <PageFooterBtn type="primary" @click="checkReceiveTask()">验收</PageFooterBtn>
    </PageFooter>
    <nut-popup v-model:visible="dialogVisible">
packages/components/src/Card/StandardTaskCheckCard.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
<template>
  <div class="standard-task-check-card-wrapper">
    <div class="standard-task-check-card-title-wrapper">
      <div class="standard-task-check-card-title">{{ serviceName }}</div>
      <slot name="title-right">
        <RectRight v-if="showArrow" :size="12" class="my-task-card-arrow" />
        <div v-else></div>
      </slot>
    </div>
    <div class="standard-task-check-card-item-list">
      <div class="standard-task-check-card-item">
        <!-- <div class="standard-task-check-card-item-label">服务时间:</div> -->
        <div class="standard-task-check-card-item-content">
          {{
            `${dayjs(beginTime).format('YYYYå¹´MM月D日 HH:mm:ss')} - ${dayjs(endTime).format(
              'YYYYå¹´MM月D日 HH:mm:ss'
            )}`
          }}
        </div>
      </div>
      <div class="standard-task-check-card-item">
        <div class="standard-task-check-card-item-label">联系人:</div>
        <div class="standard-task-check-card-item-content">
          {{ `${contact} ${contactPhoneNumber}` }}
        </div>
      </div>
      <div class="standard-task-check-card-item">
        <div class="standard-task-check-card-item-label">服务地址:</div>
        <div class="standard-task-check-card-item-content">
          {{ addressDetail }}
        </div>
      </div>
    </div>
  </div>
</template>
<script setup lang="ts">
import dayjs from 'dayjs';
import { RectRight } from '@nutui/icons-vue-taro';
defineOptions({
  name: 'StandardTaskCheckCard',
});
type Props = {
  serviceName?: string;
  beginTime?: string;
  endTime?: string;
  addressDetail?: string;
  contact?: string;
  contactPhoneNumber?: string;
  showArrow?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
  showArrow: true,
});
const emit = defineEmits<{
  (e: 'apply', id: string): void;
}>();
</script>
<style lang="scss">
@import '@/styles/common.scss';
.standard-task-check-card-wrapper {
  padding: 24px 32px;
  margin-bottom: 24px;
  background-color: #fff;
  border-radius: 12px;
  &:last-child {
    margin-bottom: 0;
  }
  .standard-task-check-card-title-wrapper {
    display: flex;
    align-items: center;
    margin-bottom: 14px;
    .standard-task-check-card-title {
      flex: 1;
      min-width: 0;
      @include ellipsis;
      font-size: 30px;
      color: boleGetCssVar('text-color', 'primary');
      line-height: 42px;
    }
  }
  .standard-task-check-card-item-list {
    margin-bottom: 6px;
    .standard-task-check-card-item {
      font-size: 24px;
      color: boleGetCssVar('text-color', 'regular');
      line-height: 36px;
      margin-bottom: 6px;
      display: flex;
      align-items: flex-start;
      .standard-task-check-card-item-content {
        flex: 1;
        min-width: 0;
      }
      &:last-child {
        margin-bottom: 0;
      }
    }
  }
}
</style>
packages/components/src/index.ts
@@ -39,6 +39,7 @@
export { default as FlexJobTopView } from './Card/FlexJobTopView.vue';
export { default as PayrollManageDetailCard } from './Card/PayrollManageDetailCard.vue';
export { default as ReserveServiceCard } from './Card/ReserveServiceCard.vue';
export { default as StandardTaskCheckCard } from './Card/StandardTaskCheckCard.vue';
export { default as QueryMenuView } from './Menu/QueryMenuView.vue';
export { default as QueryMenuItem } from './Menu/QueryMenuItem.vue';
export { default as ProRadio } from './Form/ProRadio.vue';