zhengyiming
3 天以前 c4a05d1cd214627d1f62a71b72f7f32087cee92d
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
3个文件已添加
2 文件已重命名
10个文件已修改
233 ■■■■ 已修改文件
apps/bMiniApp/src/subpackages/businessCard/components/BusinessCardDetailInfoView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.private.config.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/app.config.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/constants/router.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/task/InnerPage.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/TaskCheckHistoryCard.vue 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/TaskCheckPersonalView.vue 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/businessCard/components/BusinessCardDetailInfoView.vue
@@ -27,13 +27,13 @@
</template>
<script setup lang="ts">
import TaskCheckPersonalView from '../../task/components/TaskCheckPersonalView.vue';
import BusinessCardDetailItem from './BusinessCardDetailItem.vue';
import IconWechat from '@/assets/businessCard/icon-wechat.png';
import IconPosition from '@/assets/businessCard/icon-position.png';
import IconEmail from '@/assets/businessCard/icon-email.png';
import IconCompany from '@/assets/businessCard/icon-company.png';
import IconAddress from '@/assets/businessCard/icon-address.png';
import { TaskCheckPersonalView } from '@12333/components';
defineOptions({
  name: 'BusinessCardDetailInfoView',
apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
@@ -27,9 +27,20 @@
          <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
            {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
          </div> -->
          <nut-button type="primary" class="task-check-card-phone-btn" @click.stop="handleMore"
            >操作</nut-button
          <template
            v-if="props.submitCheckReceiveStatus !== EnumTaskUserSubmitCheckReceiveStatus.Fail"
          >
            <nut-button
              v-if="!checkInTime || !checkOutTime"
              type="primary"
              class="task-check-card-phone-btn"
              @click.stop="handleMore"
              >操作</nut-button
            >
            <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
              {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
            </div>
          </template>
        </template>
        <template v-else>
          <nut-button
@@ -48,14 +59,16 @@
</template>
<script setup lang="ts">
import TaskCheckPersonalView from './TaskCheckPersonalView.vue';
import {
  Colors,
  EnumUserGender,
  EnumTaskCheckReceiveStatus,
  EnumTaskCheckReceiveStatusText,
  EnumTaskCheckReceiveMethod,
  EnumGetCheckReceiveTasksQueryResultItemCheckStatus,
  EnumTaskUserSubmitCheckReceiveStatus,
} from '@12333/constants';
import { TaskCheckPersonalView } from '@12333/components';
import { CheckInOrOutEventEnum } from '../constants';
import { Portal } from 'senin-mini/components';
import { ActionSheet } from '@nutui/nutui-taro';
@@ -82,32 +95,35 @@
  /** 签出时间 */
  checkOutTime?: string;
  checkReceiveMethod?: EnumTaskCheckReceiveMethod;
  submitCheckReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
};
const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{
  (e: 'checkReceive'): void;
  (e: 'checkInOrOut', ev: CheckInOrOutEventEnum): void;
  (e: 'checkInOrOut', ev: EnumTaskUserSubmitCheckReceiveStatus): void;
}>();
const menuList = computed(() => {
  let _menuList = [];
  if (props.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
    _menuList.push(
      {
    _menuList.push({
      name: '未到岗',
      value: ManageActions.OutWork,
    });
    if (!props.checkInTime) {
      _menuList.push({
        name: '签到',
        value: ManageActions.CheckIn,
      },
      {
      });
    } else if (!props.checkOutTime) {
      _menuList.push({
        name: '签出',
        value: ManageActions.CheckOut,
      },
      {
        name: '未到岗',
        value: ManageActions.OutWork,
      }
    );
      });
    }
  }
  return _menuList;
@@ -138,13 +154,13 @@
function handleEmit(action: { name: string; value: number }) {
  switch (action.value) {
    case ManageActions.CheckIn:
      emit('checkInOrOut', CheckInOrOutEventEnum.CheckIn);
      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive);
      break;
    case ManageActions.CheckOut:
      emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut);
      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Success);
      break;
    case ManageActions.OutWork:
      emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut);
      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Fail);
      break;
  }
}
apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -24,6 +24,7 @@
          :contactPhoneNumber="item.contactPhoneNumber"
          :checkReceiveStatus="item.checkReceiveStatus"
          :checkReceiveMethod="detail?.checkReceiveMethod"
          :submitCheckReceiveStatus="item.submitCheckReceiveStatus"
          @checkReceive="goTaskDetail(item)"
          @checkInOrOut="(ev) => checkReceiveTask(ev, item.id)"
        />
@@ -38,7 +39,11 @@
import { useInfiniteLoading } from '@12333/hooks';
import TaskCheckCard from '../components/TaskCheckCard.vue';
import { MyTaskCard } from '@12333/components';
import { EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus } from '@12333/constants';
import {
  EnumTaskCheckReceiveMethod,
  EnumTaskCheckReceiveStatus,
  EnumTaskUserSubmitCheckReceiveStatus,
} from '@12333/constants';
import { Message, setOSSLink } from '@12333/utils';
import dayjs from 'dayjs';
import { CheckInOrOutEventEnum } from '../constants';
@@ -95,16 +100,20 @@
  }
}
async function checkReceiveTask(ev: CheckInOrOutEventEnum, taskInfoUserId: string) {
async function checkReceiveTask(ev: EnumTaskUserSubmitCheckReceiveStatus, taskInfoUserId: string) {
  try {
    let params: API.CheckReceiveTaskCommand = {
      taskInfoUserId: taskInfoUserId,
      date: dayjs(date).format('YYYY-MM-DD'),
    };
    if (ev === CheckInOrOutEventEnum.CheckIn) {
    if (ev === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive) {
      params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
    } else if (ev === CheckInOrOutEventEnum.CheckOut) {
      params.checkReceiveStatus = ev;
    } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Success) {
      params.checkOutTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
      params.checkReceiveStatus = ev;
    } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Fail) {
      params.checkReceiveStatus = ev;
    }
    let res = await taskCheckReceiveServices.checkReceiveTask(params);
    if (res) {
apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue
@@ -36,8 +36,7 @@
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import TaskCheckPersonalView from '../components/TaskCheckPersonalView.vue';
import { TaskCheckFileCard } from '@12333/components';
import { TaskCheckFileCard, TaskCheckPersonalView } from '@12333/components';
import { Colors, EnumTaskUserSubmitCheckReceiveStatus } from '@12333/constants';
import { Message, setOSSLink } from '@12333/utils';
import dayjs from 'dayjs';
apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
@@ -57,8 +57,7 @@
import Taro from '@tarojs/taro';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import { useInfiniteLoading } from '@12333/hooks';
import TaskCheckHistoryCard from '../components/TaskCheckHistoryCard.vue';
import { ProTabs, ProTabPane } from '@12333/components';
import { ProTabs, ProTabPane, TaskCheckHistoryCard } from '@12333/components';
import {
  EnumTaskUserSubmitCheckHistoryTypeText,
  EnumTaskUserSubmitCheckHistoryTypeColor,
apps/cMiniApp/project.private.config.json
@@ -26,8 +26,8 @@
                    "name": "任务",
                    "pathName": "pages/task/task",
                    "query": "",
                    "scene": null,
                    "launchMode": "default"
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "简历详细信息",
apps/cMiniApp/src/app.config.ts
@@ -120,6 +120,7 @@
        'companyDetail/companyDetail',
        'taskSubmitCheck/taskSubmitCheck',
        'taskCheckDetail/taskCheckDetail',
        'taskUserSubmitCheckHistories/taskUserSubmitCheckHistories',
      ],
    },
    {
apps/cMiniApp/src/constants/router.ts
@@ -14,6 +14,7 @@
  companyDetail = '/subpackages/task/companyDetail/companyDetail',
  taskSubmitCheck = '/subpackages/task/taskSubmitCheck/taskSubmitCheck',
  taskCheckDetail = '/subpackages/task/taskCheckDetail/taskCheckDetail',
  taskUserSubmitCheckHistories = '/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories',
  // userInfo = '/subpackages/setting/userInfo/userInfo',
  // setting = '/subpackages/setting/setting/setting',
apps/cMiniApp/src/pages/task/InnerPage.vue
@@ -28,7 +28,10 @@
          :addressName="item.addressName"
          :begin-time="item.beginTime"
          :end-time="item.endTime"
          showActions
          :showActions="
            item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn &&
            queryState.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
          "
          @click="goSubmitTaskDetail(item)"
        />
      </template>
@@ -40,7 +43,7 @@
import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components';
import Taro from '@tarojs/taro';
import { useCheckReceiveTasks, useTaskList } from '@12333/hooks';
import { EnumTaskCheckReceiveStatus } from '@12333/constants';
import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants';
defineOptions({
  name: 'InnerPage',
@@ -54,13 +57,21 @@
      url: `${RouterPath.taskSubmitCheck}?id=${item.id}&date=${queryState.date}`,
    });
  }
  if (
    Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
    Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed
  ) {
    Taro.navigateTo({
      url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
    });
  if (item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
    if (Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed) {
      Taro.navigateTo({
        url: `${RouterPath.taskUserSubmitCheckHistories}?id=${item.id}&date=${queryState.date}`,
      });
    }
  } else {
    if (
      Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
      Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed
    ) {
      Taro.navigateTo({
        url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
      });
    }
  }
}
</script>
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
New file
@@ -0,0 +1,105 @@
<template>
  <LoadingLayout>
    <ContentView>
      <ChunkTitle :title="title" />
    </ContentView>
    <ProTabs
      v-model="queryState.type"
      name="taskUserSubmitCheckHistories-tab"
      :showPaneContent="false"
      class="taskUserSubmitCheckHistories-tabs"
      isTransparent
      title-gutter="8"
      title-scroll
    >
      <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane>
      <ProTabPane
        :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckIn]"
        :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckIn"
      ></ProTabPane>
      <ProTabPane
        :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckOut]"
        :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckOut"
      ></ProTabPane>
      <ProTabPane
        :title="
          EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckIn]
        "
        :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckIn"
      ></ProTabPane>
      <ProTabPane
        :title="
          EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckOut]
        "
        :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckOut"
      ></ProTabPane>
    </ProTabs>
    <InfiniteLoading
      scrollViewClassName="common-infinite-scroll-list"
      v-bind="infiniteLoadingProps"
    >
      <template #renderItem="{ item }">
        <TaskCheckHistoryCard
          :avatar="setOSSLink(item.avatar)"
          :name="item.name"
          :gender="item.gender"
          :isReal="item.isReal"
          :contactPhoneNumber="item.contactPhoneNumber"
          :type="item.type"
          :checkTime="item.checkTime"
        />
      </template>
    </InfiniteLoading>
  </LoadingLayout>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import { useInfiniteLoading } from '@12333/hooks';
import { ProTabs, ProTabPane, TaskCheckHistoryCard } from '@12333/components';
import {
  EnumTaskUserSubmitCheckHistoryTypeText,
  EnumTaskUserSubmitCheckHistoryTypeColor,
  EnumTaskUserSubmitCheckHistoryType,
  WeekCN,
} from '@12333/constants';
import { Message, setOSSLink } from '@12333/utils';
import dayjs from 'dayjs';
defineOptions({
  name: 'InnerPage',
});
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const date = router.params?.date ?? '';
const title = `${dayjs(date).format('YYYY年MM月DD日')} 星期${WeekCN[dayjs(date).day()]}`;
const queryState = reactive({
  type: 0 as any as EnumTaskUserSubmitCheckHistoryType,
});
const { infiniteLoadingProps } = useInfiniteLoading(
  async ({ pageParam }) => {
    let params: API.GetCheckReceiveTaskUserSubmitCheckHistoriesQuery = {
      pageModel: {
        rows: 20,
        page: pageParam,
      },
      taskInfoId: id,
      date: dayjs(date).format('YYYY-MM-DD'),
      type: queryState.type,
    };
    let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmitCheckHistories(params, {
      showLoading: false,
    });
    return res;
  },
  {
    queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmitCheckHistories', queryState],
  }
);
</script>
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.vue
New file
@@ -0,0 +1,13 @@
<template>
  <PageLayoutWithBg class="taskUserSubmitCheckHistories-page-wrapper" title="验收详情">
    <InnerPage />
  </PageLayoutWithBg>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'taskUserSubmitCheckHistories',
});
</script>
packages/components/src/Card/TaskCheckHistoryCard.vue
packages/components/src/Card/TaskCheckPersonalView.vue
packages/components/src/index.ts
@@ -33,6 +33,8 @@
export { default as BindWalletView } from './Card/BindWalletView.vue';
export { default as TaskPrice } from './Card/TaskPrice.vue';
export { default as TaskDetailWelfareItem } from './Card/TaskDetailWelfareItem.vue';
export { default as TaskCheckPersonalView } from './Card/TaskCheckPersonalView.vue';
export { default as TaskCheckHistoryCard } from './Card/TaskCheckHistoryCard.vue';
export { default as FlexJobTopView } from './Card/FlexJobTopView.vue';
export { default as QueryMenuView } from './Menu/QueryMenuView.vue';
export { default as QueryMenuItem } from './Menu/QueryMenuItem.vue';