zhengyiming
9 小时以前 89ec68eec9ebe8e8e9ff67a8e8f65214b2f96cde
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
已修改6个文件
204 ■■■■ 文件已修改
apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/MineServiceDetailView.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/standardOrder.ts 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/hooks/standardOrder.ts 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue
@@ -1,13 +1,31 @@
<template>
  <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> -->
  <ContentScrollView hasPaddingTop>
    <MineServiceDetailView :addressDetail="detail?.addressDetail" />
    <MineServiceDetailView
      :contactName="detail?.name"
      :contactPhoneNumber="detail?.contactPhoneNumber"
      :addressDetail="detail?.addressDetail"
      :serviceName="detail?.serviceName"
      :price="detail?.serviceFee"
      :specName="detail?.specName"
      :specNumber="detail?.specNumber"
      :imgUrl="detail?.serviceFile"
      statusText="预约状态"
      :beginTime="detail?.beginTime"
      :endTime="detail?.endTime"
      :supplierEnterpriseName="detail?.supplierEnterpriseName"
      :remark="detail?.remark"
    >
      <template #status>
        {{ EnumStandardOrderAppointmentStatusText[detail?.appointmentStatus] }}
      </template>
    </MineServiceDetailView>
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" class="business-card-btn" @click="goCancel"
  <PageFooter v-if="detail?.appointmentStatus === EnumStandardOrderAppointmentStatus.WaitSure">
    <PageFooterBtn class="business-card-btn" @click="cancelStandardOrderAppointment"
      >取消预约</PageFooterBtn
    >
    <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm"
    <PageFooterBtn type="primary" class="business-card-btn" @click="handleSubmit"
      >确认预约</PageFooterBtn
    >
  </PageFooter>
@@ -17,7 +35,14 @@
<script setup lang="ts">
import { MineServiceDetailView } from '@12333/components';
import Taro from '@tarojs/taro';
import {
  EnumStandardOrderAppointmentStatus,
  EnumStandardOrderAppointmentStatusText,
} from '@12333/constants';
import { useStandardOrder } from '@12333/hooks';
import { Message } from '@12333/utils';
import { goBack } from '@/utils';
import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
defineOptions({
  name: 'InnerPage',
@@ -30,9 +55,32 @@
  id: id,
});
function goCancel() {}
async function cancelStandardOrderAppointment() {
  try {
    await Message.confirm({ message: '确认要取消预约吗?' });
    let params: API.CancelStandardOrderAppointmentCommand = {
      id: id,
    };
    let res = await standardOrderServices.cancelStandardOrderAppointment(params);
    if (res) {
      Message.success('操作成功');
      goBack();
    }
  } catch (error) {}
}
function goConfirm() {}
async function handleSubmit() {
  try {
    let params: API.SureStandardOrderAppointmentCommand = {
      id: id,
    };
    let res = await standardOrderServices.sureStandardOrderAppointment(params);
    if (res) {
      Message.success('操作成功');
      goBack();
    }
  } catch (error) {}
}
</script>
<style lang="scss">
apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue
@@ -1,6 +1,6 @@
<template>
  <ProTabs
    v-model="queryState.payStatus"
    v-model="queryState.supplierEnterpriseOrderStatus"
    name="home-tab"
    :showPaneContent="false"
    class="home-tabs"
@@ -9,14 +9,19 @@
    title-scroll
  >
    <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane>
    <ProTabPane :title="`待支付`" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane>
    <ProTabPane :title="`已支付`" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane>
    <ProTabPane :title="`已完成`" :pane-key="EnumStandardOrderPayStatus.Cancelled"></ProTabPane>
    <ProTabPane
      :title="`待收款`"
      :pane-key="EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Wait"
    ></ProTabPane>
    <ProTabPane
      :title="`已完成`"
      :pane-key="EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Completed"
    ></ProTabPane>
  </ProTabs>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list home-list"
    v-bind="infiniteLoadingProps"
    :key="queryState.payStatus"
    :key="queryState.supplierEnterpriseOrderStatus"
  >
    <template #renderItem="{ item }">
      <ReserveServiceCard
@@ -26,9 +31,15 @@
        :end-time="item.endTime"
        :supplierEnterpriseName="item.supplierEnterpriseName"
        :address-detail="item.addressDetail"
        :appointmentStatus="item.appointmentStatus"
        @click="goOrderDetail(item)"
      >
        <template #status>
          {{
            EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText[
              item.supplierEnterpriseOrderStatus
            ]
          }}
        </template>
        <template #serviceCustome>
          {{ `服务人员:${item.serverNames}` }}
        </template>
@@ -40,7 +51,10 @@
<script setup lang="ts">
import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components';
import { useGetStandardOrders } from '@12333/hooks';
import { EnumStandardOrderPayStatus } from '@12333/constants';
import {
  EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus,
  EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText,
} from '@12333/constants';
import Taro from '@tarojs/taro';
defineOptions({
apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue
@@ -1,25 +1,37 @@
<template>
  <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> -->
  <ContentScrollView hasPaddingTop>
    <MineServiceDetailView />
    <MineServiceDetailView
      :contactName="detail?.name"
      :contactPhoneNumber="detail?.contactPhoneNumber"
      :addressDetail="detail?.addressDetail"
      :serviceName="detail?.serviceName"
      :price="detail?.serviceFee"
      :specName="detail?.specName"
      :specNumber="detail?.specNumber"
      :imgUrl="detail?.serviceFile"
      statusText="订单状态"
      :beginTime="detail?.beginTime"
      :endTime="detail?.endTime"
      :supplierEnterpriseName="detail?.supplierEnterpriseName"
      :remark="detail?.remark"
    >
      <template #status>
        {{
          EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText[
            detail?.supplierEnterpriseOrderStatus
          ]
        }}
      </template>
    </MineServiceDetailView>
  </ContentScrollView>
  <PageFooter class="order-settle-bar">
    <PageFooterBtn class="business-card-btn" @click="cancelStandardOrderAppointment"
      >取消预约</PageFooterBtn
    >
    <PageFooterBtn type="primary" class="business-card-btn" @click="handleSubmit"
      >确认预约</PageFooterBtn
    >
  </PageFooter>
  <!-- </LoadingLayout> -->
</template>
<script setup lang="ts">
import { MineServiceDetailView } from '@12333/components';
import Taro from '@tarojs/taro';
import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
import { Message } from '@12333/utils';
import { goBack } from '@/utils';
import { EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText } from '@12333/constants';
import { useStandardOrder } from '@12333/hooks';
defineOptions({
@@ -32,33 +44,6 @@
const { detail } = useStandardOrder({
  id: id,
});
async function cancelStandardOrderAppointment() {
  try {
    await Message.confirm({ message: '确认要取消预约吗?' });
    let params: API.CancelStandardOrderAppointmentCommand = {
      id: id,
    };
    let res = await standardOrderServices.cancelStandardOrderAppointment(params);
    if (res) {
      Message.success('操作成功');
      goBack();
    }
  } catch (error) {}
}
async function handleSubmit() {
  try {
    let params: API.SureStandardOrderAppointmentCommand = {
      id: id,
    };
    let res = await standardOrderServices.sureStandardOrderAppointment(params);
    if (res) {
      Message.success('操作成功');
      goBack();
    }
  } catch (error) {}
}
</script>
<style lang="scss">
packages/components/src/Card/MineServiceDetailView.vue
@@ -14,26 +14,28 @@
    />
    <List>
      <ListItem title="订单状态" :showArrow="false">
      <ListItem :title="statusText" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">{{ '订单状态' }}</div>
          <div class="mine-service-detail-view-list-item">
            <slot name="status"> </slot>
          </div>
        </template>
      </ListItem>
      <ListItem title="服务时间" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">
            {{ '2025-12-12 12:00-14:00' }}
            {{ format(beginTime, 'YYYY-MM-DD HH:mm') }}-{{ format(endTime, 'YYYY-MM-DD HH:mm') }}
          </div>
        </template>
      </ListItem>
      <ListItem title="服务机构" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">{{ 'xxxxx公司' }}</div>
          <div class="mine-service-detail-view-list-item">{{ supplierEnterpriseName }}</div>
        </template>
      </ListItem>
      <ListItem title="备注" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">{{ '我是备注信息' }}</div>
          <div class="mine-service-detail-view-list-item">{{ remark }}</div>
        </template>
      </ListItem>
    </List>
@@ -45,6 +47,7 @@
import ListItem from '../List/ListItem.vue';
import ServiceDetailAddressCard from './ServiceDetailAddressCard.vue';
import ServiceDetailGoodCard from './ServiceDetailGoodCard.vue';
import { format } from '@12333/utils';
defineOptions({
  name: 'MineServiceDetailView',
@@ -61,6 +64,12 @@
  specName?: string;
  specNumber?: number;
  imgUrl?: string;
  beginTime?: string;
  endTime?: string;
  supplierEnterpriseName?: string;
  remark?: string;
  statusText?: string;
};
const props = withDefaults(defineProps<Props>(), {});
packages/constants/standardOrder.ts
@@ -1,5 +1,7 @@
import {
  EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus,
  EnumGetStandardOrdersQueryScene,
  EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus,
  EnumStandardOrderAppointmentStatus,
  EnumStandardOrderPayStatus,
  EnumStandardOrderSettlementStatus,
@@ -30,7 +32,17 @@
};
export const EnumGetStandardOrdersQuerySceneText = {
  [EnumGetStandardOrdersQueryScene.Appointment]: '预约订单',
  [EnumGetStandardOrdersQueryScene.Pay]: '支付订单',
  [EnumGetStandardOrdersQueryScene.Settlement]: '结算订单',
  [EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder]: '甲方企业订单管理',
  [EnumGetStandardOrdersQueryScene.SupplierEnterpriseOrder]: '人资企业订单管理',
};
export const EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText = {
  [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Wait]: '待支付',
  [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Pay]: '已支付',
  [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Completed]: '已完成',
};
export const EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText = {
  [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Wait]: '待收款',
  [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Completed]: '已完成',
};
packages/hooks/standardOrder.ts
@@ -4,7 +4,12 @@
import { computed, MaybeRef, reactive, unref } from 'vue';
import { groupBy } from 'lodash';
import { useInfiniteLoading } from '@12333/hooks';
import { EnumStandardOrderAppointmentStatus, EnumStandardOrderPayStatus } from '@12333/constants';
import {
  EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus,
  EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus,
  EnumStandardOrderAppointmentStatus,
  EnumStandardOrderPayStatus,
} from '@12333/constants';
type UseStandardServiceDetailOptions = {
  id: MaybeRef<string>;
@@ -103,6 +108,9 @@
  const queryState = reactive({
    appointmentStatus: 0 as any as EnumStandardOrderAppointmentStatus,
    payStatus: 0 as any as EnumStandardOrderPayStatus,
    partAEnterpriseOrderStatus: 0 as any as EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus,
    supplierEnterpriseOrderStatus:
      0 as any as EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus,
  });
  const { infiniteLoadingProps } = useInfiniteLoading(
@@ -120,6 +128,12 @@
      if (queryState.payStatus) {
        params.payStatus = queryState.payStatus;
      }
      if (queryState.partAEnterpriseOrderStatus) {
        params.partAEnterpriseOrderStatus = queryState.partAEnterpriseOrderStatus;
      }
      if (queryState.supplierEnterpriseOrderStatus) {
        params.supplierEnterpriseOrderStatus = queryState.supplierEnterpriseOrderStatus;
      }
      return standardOrderServices.getStandardOrders(params, {
        showLoading: false,