已修改29个文件
已重命名9个文件
已添加14个文件
已删除15个文件
已复制8个文件
4089 ■■■■ 文件已修改
apps/bStandardMiniApp/config/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cStandardMiniApp/config/dev.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cStandardMiniApp/config/index.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/config/dev.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/config/index.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/project.config.json 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/project.private.config.json 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/app.config.ts 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/components/Card/ReserveServiceCard.vue 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/constants/app.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/constants/router.ts 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/constants/tabBar.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/custom-tab-bar/index.tsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/hooks/user.ts 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/pages/home/index.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/pages/mine/index.scss 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/pages/mine/index.vue 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/pages/service/3x_categoryData.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/pages/service/InnerPage.vue 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/pages/service/service.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/pages/service/service.vue 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/stores/modules/user.ts 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/components/MineServiceDetailView.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/login/authorization/authorization.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/addressManange/InnerPage.vue 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/addressManange/addressManange.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/addressManange/addressManange.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/InnerPage.vue 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/companyInfo.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/companyInfo.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/editAddress/editAddress.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/editAddress/editAddress.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailCard.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/InnerPage.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineHire/InnerPage.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineHire/mineHire.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineHired/InnerPage.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineHired/mineHired.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineHired/mineHired.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/InnerPage.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/mineOrderDetail.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/mineOrderDetail.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderManage/InnerPage.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderManage/mineOrderManage.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderManage/mineOrderManage.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/InnerPage.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/mineReserveService.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/mineReserveService.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineSign/mineSign.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/mineSign/mineSign.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/InnerPage.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/personalInfo.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/personalInfo.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/mine/setting/setting.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.config.ts 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/housekeepingMiniApp/types/global.d.ts 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Input/ChooseLocationInput.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/constants/apiEnum.ts 122 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/hooks/identify.ts 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/advertisement.ts 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/auth.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/enterprise.ts 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/index.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/standardOrder.ts 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/standardService.ts 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 1137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bStandardMiniApp/config/index.js
@@ -108,7 +108,7 @@
      if (process.env.NODE_ENV === 'development') {
        chain
          .plugin('analyzer')
          .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [{ analyzerPort: 8889 }]);
          .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [{ analyzerPort: 8789 }]);
      }
      chain.plugin('unplugin-auto-import').use(
apps/cStandardMiniApp/config/dev.js
@@ -16,6 +16,7 @@
      '@tarojs/plugin-mock',
      {
        mocks: mocks,
        port: 9528,
      },
    ],
  ],
apps/cStandardMiniApp/config/index.js
@@ -106,7 +106,9 @@
    },
    webpackChain(chain, webpack) {
      if (process.env.NODE_ENV === 'development') {
        chain.plugin('analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, []);
        chain
          .plugin('analyzer')
          .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [{ analyzerPort: 8787 }]);
      }
      chain.plugin('unplugin-auto-import').use(
apps/housekeepingMiniApp/config/dev.js
@@ -16,6 +16,7 @@
      '@tarojs/plugin-mock',
      {
        mocks: mocks,
        port: 9529,
      },
    ],
  ],
apps/housekeepingMiniApp/config/index.js
@@ -106,7 +106,9 @@
    },
    webpackChain(chain, webpack) {
      if (process.env.NODE_ENV === 'development') {
        chain.plugin('analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, []);
        chain
          .plugin('analyzer')
          .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [{ analyzerPort: 8788 }]);
      }
      chain.plugin('unplugin-auto-import').use(
apps/housekeepingMiniApp/project.config.json
@@ -3,8 +3,8 @@
    "description": "",
    "setting": {
        "urlCheck": false,
        "es6": true,
        "enhance": true,
        "es6": false,
        "enhance": false,
        "postcss": false,
        "preloadBackgroundData": false,
        "minified": false,
@@ -51,7 +51,7 @@
    "srcMiniprogramRoot": "dist/",
    "condition": {},
    "simulatorPluginLibVersion": {},
    "appid": "wxb9e0baf4f87aa0de",
    "appid": "wx3669dd12a0915f7d",
    "packOptions": {
        "ignore": [],
        "include": []
apps/housekeepingMiniApp/project.private.config.json
@@ -19,6 +19,81 @@
        "ignoreDevUnusedFiles": true,
        "useIsolateContext": true
    },
    "condition": {},
    "condition": {
        "miniprogram": {
            "list": [
                {
                    "name": "订单详情",
                    "pathName": "subpackages/mine/mineOrderDetail/mineOrderDetail",
                    "query": "id=123",
                    "scene": null,
                    "launchMode": "default"
                },
                {
                    "name": "新增地址",
                    "pathName": "subpackages/mine/editAddress/editAddress",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "地址管理",
                    "pathName": "subpackages/mine/addressManange/addressManange",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "企业信息",
                    "pathName": "subpackages/mine/companyInfo/companyInfo",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "个人信息",
                    "pathName": "subpackages/mine/personalInfo/personalInfo",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "设置",
                    "pathName": "subpackages/mine/setting/setting",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "收藏",
                    "pathName": "subpackages/mine/mineCollectTask/mineCollectTask",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "我的订单",
                    "pathName": "subpackages/mine/mineOrderManage/mineOrderManage",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "我的预约",
                    "pathName": "subpackages/mine/mineReserveService/mineReserveService",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "我的",
                    "pathName": "pages/mine/index",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                }
            ]
        }
    },
    "libVersion": "3.11.2"
}
apps/housekeepingMiniApp/src/app.config.ts
@@ -1,6 +1,6 @@
export default defineAppConfig({
  entryPagePath: 'pages/home/index',
  pages: ['pages/home/index', 'pages/task/task', 'pages/mine/index'],
  pages: ['pages/home/index', 'pages/service/service', 'pages/mine/index'],
  requiredPrivateInfos: ['getLocation', 'chooseLocation'],
  permission: {
    'scope.userLocation': {
@@ -26,7 +26,7 @@
        text: '首页',
      },
      {
        pagePath: 'pages/task/task',
        pagePath: 'pages/service/service',
        iconPath: 'assets/tabbar/icon-task.png',
        selectedIconPath: 'assets/tabbar/icon-task-active.png',
        text: '服务',
@@ -75,30 +75,20 @@
    {
      root: 'subpackages/mine',
      pages: [
        'mineSign/mineSign',
        'mineHire/mineHire',
        'mineHired/mineHired',
        'mineCancel/mineCancel',
        'mineCollectTask/mineCollectTask',
        'mineAgreementSign/mineAgreementSign',
        'mineAgreementSignDetail/mineAgreementSignDetail',
        'mineReserveService/mineReserveService',
        'mineOrderManage/mineOrderManage',
        'setting/setting',
        'personalInfo/personalInfo',
        'companyInfo/companyInfo',
        'addressManange/addressManange',
        'editAddress/editAddress',
        'mineOrderDetail/mineOrderDetail',
      ],
    },
    {
      root: 'subpackages/wallet',
      pages: [
        'mineWallet/mineWallet',
        'bindBankCard/bindBankCard',
        'unboundBankCard/unboundBankCard',
        'unboundAlipay/unboundAlipay',
        'bindAlipay/bindAlipay',
        'incomeDetail/incomeDetail',
        'incomeDetailInfo/incomeDetailInfo',
        'withdraw/withdraw',
        'withdrawResult/withdrawResult',
        'withdrawDetailInfo/withdrawDetailInfo',
      ],
      root: 'subpackages/sercice',
      pages: ['serciceDetail/serciceDetail'],
    },
    {
      root: 'subpackages/user',
apps/housekeepingMiniApp/src/components/Card/ReserveServiceCard.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,204 @@
<template>
  <div class="reserve-service-card-wrapper" :class="{ 'un-read': unRead }">
    <div class="reserve-service-card-title-wrapper">
      <div class="reserve-service-card-title">{{ name }}</div>
      <slot name="title-right">
        <TaskPrice
          v-if="releaseStatus !== EnumTaskReleaseStatus.Stopped"
          :value="toThousand(serviceFee ?? 0)"
          :unit="BillingMethodEnumUnit[billingMethod]"
          :billingMethod="billingMethod"
        />
      </slot>
    </div>
    <div class="reserve-service-card-item-list">
      <div class="reserve-service-card-item">
        æœåŠ¡æ—¶é—´ï¼š{{ dayjs(beginTime).format('YYYYå¹´MM月D日') }} 13:00-15:00
      </div>
      <div class="reserve-service-card-item">服务地址:{{ addressName }}</div>
    </div>
    <div class="reserve-service-card-footer">
      <div class="reserve-service-card-left">
        <div class="reserve-service-card-footer-address">服务机构:我是机构名称</div>
      </div>
      <div class="reserve-service-card-status">待确认</div>
    </div>
  </div>
</template>
<script setup lang="ts">
import {
  EnumBillingMethod,
  EnumSettlementCycle,
  EnumTaskCheckReceiveStatus,
  EnumTaskRecommendStatus,
  EnumTaskReleaseStatus,
  EnumTaskSettlementStatus,
  EnumTaskStatus,
  EnumUserGender,
  EnumBillingMethodText,
  EnumUserGenderText,
  EnumSettlementCycleText,
  BillingMethodEnumUnit,
  EnumTaskUserHireStatus,
} from '@12333/constants';
import dayjs from 'dayjs';
import { TaskUtils, toThousand } from '@12333/utils';
import { TaskPrice } from '@12333/components';
defineOptions({
  name: 'ReserveServiceCard',
});
type Props = {
  /** Id */
  id?: string;
  /** ä»»åŠ¡åç§° */
  name: string;
  /** ä»»åŠ¡å•å· */
  code?: string;
  billingMethod?: EnumBillingMethod;
  /** æœåŠ¡è´¹ */
  serviceFee?: number;
  settlementCycle?: EnumSettlementCycle;
  /** ç¦åˆ© */
  benefits?: API.GetTaskInfoQueryResultBenefit[];
  genderLimit?: EnumUserGender;
  /** èµ„格证书类型 */
  credentialLimits?: API.GetTaskInfoQueryResultCredentialLimit[];
  /** ä»»åŠ¡åœ°ç‚¹æ‰€å±žçœä»½ç¼–å· */
  provinceCode?: string;
  /** ä»»åŠ¡åœ°ç‚¹æ‰€å±žçœä»½ */
  provinceContent?: string;
  /** ä»»åŠ¡åœ°ç‚¹æ‰€å±žåŸŽå¸‚ç¼–å· */
  cityCode?: string;
  /** ä»»åŠ¡åœ°ç‚¹æ‰€å±žåŸŽå¸‚ */
  cityContent?: string;
  /** ä»»åŠ¡åœ°ç‚¹åç§° */
  addressName?: string;
  /** ä»»åŠ¡åœ°ç‚¹è¯¦ç»†åœ°å€ */
  addressDetail?: string;
  /** ç»åº¦ */
  longitude?: number;
  /** çº¬åº¦ */
  latitude?: number;
  /** æŠ¥åäººæ•° */
  userCount?: number;
  status?: EnumTaskStatus;
  /** ä»»åŠ¡å¼€å§‹æ—¶é—´ */
  beginTime?: string;
  /** ä»»åŠ¡ç»“æŸæ—¶é—´ */
  endTime?: string;
  releaseStatus?: EnumTaskReleaseStatus;
  checkReceiveStatus?: EnumTaskCheckReceiveStatus;
  settlementStatus?: EnumTaskSettlementStatus;
  recommendStatus?: EnumTaskRecommendStatus;
  /** åˆ›å»ºæ—¶é—´ */
  createdTime?: string;
  hireStatus?: EnumTaskUserHireStatus;
  unRead?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
  showActions: true,
  unRead: false,
});
const emit = defineEmits<{
  (e: 'apply', id: string): void;
}>();
</script>
<style lang="scss">
@import '@/styles/common.scss';
.reserve-service-card-wrapper {
  padding: 24px 32px;
  margin-bottom: 24px;
  background-color: #fff;
  border-radius: 12px;
  .task-price {
    color: boleGetCssVar('color', 'danger');
  }
  &.un-read {
    position: relative;
    &::before {
      content: '';
      position: absolute;
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background-color: red;
      right: 18px;
      top: 12px;
    }
  }
  &:last-child {
    margin-bottom: 0;
  }
  .reserve-service-card-title-wrapper {
    display: flex;
    align-items: center;
    margin-bottom: 14px;
    .reserve-service-card-title {
      flex: 1;
      min-width: 0;
      @include ellipsis;
      font-size: 30px;
      color: boleGetCssVar('text-color', 'primary');
      line-height: 42px;
    }
  }
  .reserve-service-card-item-list {
    margin-bottom: 6px;
    .reserve-service-card-item {
      font-size: 24px;
      color: boleGetCssVar('text-color', 'regular');
      line-height: 36px;
      margin-bottom: 6px;
      &:last-child {
        margin-bottom: 0;
      }
    }
  }
  .reserve-service-card-footer {
    display: flex;
    align-items: center;
    .reserve-service-card-left {
      flex: 1;
      min-width: 0;
      display: flex;
      align-items: center;
      .reserve-service-card-footer-address {
        font-size: 24px;
        color: boleGetCssVar('text-color', 'regular');
        line-height: 36px;
        flex: 1;
        min-width: 0;
        @include ellipsis;
      }
    }
    .reserve-service-card-status {
      font-size: 32px;
      color: boleGetCssVar('text-color', 'regular');
      line-height: 36px;
    }
  }
}
</style>
apps/housekeepingMiniApp/src/constants/app.ts
@@ -1,7 +1,8 @@
import { EnumUserType, EnumClientType } from '@12333/constants';
import { EnumUserType, EnumClientType, EnumEnterpriseType } from '@12333/constants';
export const AppLocalConfig = {
  userType: EnumUserType.Personal,
  userType: EnumUserType.Enterprise,
  enterpriseType: EnumEnterpriseType.PartyA,
  clientType: EnumClientType.Wxmp,
};
apps/housekeepingMiniApp/src/constants/router.ts
@@ -6,7 +6,7 @@
  loginByForm = '/subpackages/login/loginByForm/loginByForm',
  registerForm = '/subpackages/login/registerForm/registerForm',
  home = '/pages/home/index',
  task = '/pages/task/task',
  service = '/pages/service/service',
  mine = '/pages/mine/index',
  editRichContent = '/subpackages/editRichContent/editRichContent',
@@ -20,25 +20,17 @@
  authenticationFace = '/subpackages/authentication/authenticationFace/authenticationFace',
  citySelect = '/subpackages/city/citySelect/citySelect',
  mineSign = '/subpackages/mine/mineSign/mineSign',
  mineHire = '/subpackages/mine/mineHire/mineHire',
  mineHired = '/subpackages/mine/mineHired/mineHired',
  mineCancel = '/subpackages/mine/mineCancel/mineCancel',
  mineCollectTask = '/subpackages/mine/mineCollectTask/mineCollectTask',
  mineAgreementSign = '/subpackages/mine/mineAgreementSign/mineAgreementSign',
  mineAgreementSignDetail = '/subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail',
  mineReserveService = '/subpackages/mine/mineReserveService/mineReserveService',
  mineOrderManage = '/subpackages/mine/mineOrderManage/mineOrderManage',
  setting = '/subpackages/mine/setting/setting',
  personalInfo = '/subpackages/mine/personalInfo/personalInfo',
  companyInfo = '/subpackages/mine/companyInfo/companyInfo',
  addressManange = '/subpackages/mine/addressManange/addressManange',
  editAddress = '/subpackages/mine/editAddress/editAddress',
  mineOrderDetail = '/subpackages/mine/mineOrderDetail/mineOrderDetail',
  mineWallet = '/subpackages/wallet/mineWallet/mineWallet',
  unboundBankCard = '/subpackages/wallet/unboundBankCard/unboundBankCard',
  bindBankCard = '/subpackages/wallet/bindBankCard/bindBankCard',
  unboundAlipay = '/subpackages/wallet/unboundAlipay/unboundAlipay',
  bindAlipay = '/subpackages/wallet/bindAlipay/bindAlipay',
  incomeDetail = '/subpackages/wallet/incomeDetail/incomeDetail',
  incomeDetailInfo = '/subpackages/wallet/incomeDetailInfo/incomeDetailInfo',
  withdraw = '/subpackages/wallet/withdraw/withdraw',
  withdrawResult = '/subpackages/wallet/withdrawResult/withdrawResult',
  withdrawDetailInfo = '/subpackages/wallet/withdrawDetailInfo/withdrawDetailInfo',
  serciceDetail = '/subpackages/sercice/serciceDetail/serciceDetail',
  extraPage = '/subpackages/extraPage/extraPage/extraPage',
}
apps/housekeepingMiniApp/src/constants/tabBar.ts
@@ -1,11 +1,11 @@
export const TabBarPageRouter = {
  Home: '/pages/home/index',
  Task: '/pages/task/task',
  Service: '/pages/service/service',
  Mine: '/pages/mine/index',
};
export const TabBarPageRouterList = [
  TabBarPageRouter.Home,
  TabBarPageRouter.Task,
  TabBarPageRouter.Service,
  TabBarPageRouter.Mine,
];
apps/housekeepingMiniApp/src/custom-tab-bar/index.tsx
@@ -49,7 +49,7 @@
  click: (url: string, index: number) => typeof url === 'string',
};
const whitePageList = [RouterPath.home, RouterPath.mine];
const whitePageList = [RouterPath.home, RouterPath.service, RouterPath.mine];
export default {
  name: 'CustomTabBar',
@@ -129,7 +129,7 @@
          }}
        >
          <TarBarItem
            text={'找工作'}
            text={'首页'}
            icon="../assets/tabbar/icon-home.png"
            activeIcon="../assets/tabbar/icon-home-active.png"
            pagePath={TabBarPageRouter.Home}
@@ -141,10 +141,10 @@
          ></TarBarItem>
          <TarBarItem
            text="任务"
            text="服务"
            icon="../assets/tabbar/icon-task.png"
            activeIcon="../assets/tabbar/icon-task-active.png"
            pagePath={TabBarPageRouter.Task}
            pagePath={TabBarPageRouter.Service}
            currentPath={_router.path}
            active={system.activeTab === 1}
            className="task"
apps/housekeepingMiniApp/src/hooks/user.ts
@@ -25,17 +25,9 @@
    return userDetail.value?.isReal;
  });
  const isBindBank = computed(() => {
    return userDetail.value?.bankCardAAccesses?.includes(EnumUserBankCardAccess.Bank);
  });
  const isBindAlipay = computed(() => {
    return userDetail.value?.bankCardAAccesses?.includes(EnumUserBankCardAccess.AliPay);
  });
  const isBindWechat = computed(() => {
    return userDetail.value?.bankCardAAccesses?.includes(EnumUserBankCardAccess.WeChatPay);
  });
  const displayName = computed(() =>
    userDetail.value.enterpriseIsReal ? userDetail.value.enterpriseName : userDetail.value.name
  );
  return {
    user: userInfo,
@@ -44,9 +36,7 @@
    isCertified,
    locationCity,
    userId,
    isBindBank,
    isBindAlipay,
    isBindWechat,
    displayName,
  };
}
apps/housekeepingMiniApp/src/pages/home/index.vue
@@ -32,6 +32,11 @@
            </nut-swiper-item>
          </nut-swiper>
        </div>
        <div class="home-recommend-wrapper">
          <div class="home-recommend-item">推荐</div>
          <div class="home-recommend-item">推荐</div>
          <div class="home-recommend-item">推荐</div>
        </div>
        <nut-grid class="home-gird">
          <nut-grid-item text="text"><Dongdong /></nut-grid-item>
          <nut-grid-item text="text"><Dongdong /></nut-grid-item>
@@ -191,6 +196,21 @@
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 20px;
  }
  .home-recommend-wrapper {
    margin-bottom: 20px;
    display: flex;
    gap: 20px;
    .home-recommend-item {
      flex: 1;
      min-width: 0;
      height: 200px;
      background-color: #fff;
      border-radius: 12px;
      padding: 24px 32px;
    }
  }
}
.home-list {
apps/housekeepingMiniApp/src/pages/mine/index.scss
@@ -26,7 +26,8 @@
      display: flex;
      flex-direction: column;
      padding: 6px 0;
      justify-content: space-between;
      // justify-content: space-between;
      justify-content: center;
      .user-info-item {
        font-weight: 600;
@@ -99,6 +100,17 @@
          width: 32px;
          height: 32px;
        }
        .mine-order-list-title-arrow-wrapper {
          display: flex;
          align-items: center;
          .mine-order-list-title-sub-text {
            font-size: 24px;
            color: boleGetCssVar('text-color', 'secondary');
            line-height: 28px;
          }
        }
      }
      .mine-order-list-content {
        padding: 24px 0;
apps/housekeepingMiniApp/src/pages/mine/index.vue
@@ -11,44 +11,12 @@
      <img :src="OssAssets.mine.Bg" class="mine-page-bg" :style="{ height: `${bgHeight}px` }" />
    </template>
    <ContentView>
      <UserHomeTopView :showUserHomePageBtn="isLogin" :showOperation="isLogin">
      <UserHomeTopView :showOperation="isLogin">
        <template #avatar>
          <div class="mine-avatar-wrapper" @click="goLogin">
            <UserAvatar :size="52" class="mine-avatar" />
            <div class="user-info" v-if="isLogin">
              <div class="user-info-item">{{ userDetail?.name ?? '' }}</div>
              <div class="user-info-auth">
                <div class="user-info-auth-item">
                  <div class="user-info-unCertified">
                    <div
                      class="user-info-unCertified-text"
                      v-if="userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal"
                    >
                      æœªè®¤è¯
                    </div>
                    <div class="user-info-unCertified-text" v-else>
                      {{ EnumUserRealMethodText[userDetail?.realMethod]
                      }}{{ EnumPersonalUserRealStatusText[userDetail?.realStatus] }}
                    </div>
                    <div
                      class="user-info-unCertified-btn"
                      @click.stop="goAuthentication"
                      v-if="
                        userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal ||
                        userDetail?.realStatus === EnumPersonalUserRealStatus.Fail
                      "
                    >
                      ç«‹å³è®¤è¯
                    </div>
                  </div>
                  <!-- <div class="user-info-unCertified" v-else>
                    <img :src="IconAuth" class="user-info-unCertified-icon" />
                    <div class="user-info-unCertified-text">
                      {{ EnumUserRealMethodText[userDetail?.realMethod] }}{{ EnumPersonalUserRealStatusText[userDetail?.realStatus] }}
                    </div>
                  </div> -->
                </div>
              </div>
              <div class="user-info-item">{{ displayName }}</div>
            </div>
            <div class="mine-go-login" v-else>去登录</div>
          </div>
@@ -56,94 +24,67 @@
      </UserHomeTopView>
    </ContentView>
    <ContentScrollView v-if="isLogin" class="mine-content-scroll-view">
      <List class="mine-list-wrapper mine-balance">
        <div class="mine-balance-content">
          <div class="mine-balance-content-item">
            <div class="mine-balance-content-item-title">我的收益</div>
            <div class="mine-balance-content-item-money income">
              ï¿¥{{ toThousand(userDetail?.incomeCount ?? 0) }}
            </div>
          </div>
          <div class="mine-balance-content-item">
            <div class="mine-balance-content-item-title">待结算</div>
            <div class="mine-balance-content-item-money settlement">
              ï¿¥{{ toThousand(userDetail?.waitSettlement ?? 0) }}
            </div>
          </div>
          <div class="mine-balance-content-item">
            <div class="mine-balance-content-item-title">已发放</div>
            <div class="mine-balance-content-item-money withdraw">
              ï¿¥{{ toThousand(userDetail?.releaseedCount ?? 0) }}
            </div>
          </div>
        </div>
        <div class="mine-balance-btn" @click="goMineWallet">
          è¿›å…¥æˆ‘的钱包
          <img :src="IconArrow" class="mine-balance-btn-icon" />
        </div>
      </List>
      <List class="mine-list-wrapper mine-order-list">
        <div class="mine-order-list-title">
          <div class="mine-order-list-title-text">我的订单</div>
          <img :src="IconArrow" class="mine-order-list-title-icon" />
          <div class="mine-order-list-title-text">我的预约</div>
          <div class="mine-order-list-title-arrow-wrapper" @click="goMineReserveService">
            <div class="mine-order-list-title-sub-text">全部预约</div>
            <img :src="IconArrow" class="mine-order-list-title-icon" />
          </div>
        </div>
        <div class="mine-order-list-content">
          <nut-badge
            class="mine-order-list-item"
            top="8"
            :dot="userDetail?.taskCount > 0"
            @click="goMineSign"
            :dot="false"
            @click="goMineReserveService"
          >
            <img :src="IconOrderSign" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已报名</div>
            <div class="mine-order-list-text">待确认</div>
          </nut-badge>
          <nut-badge
            class="mine-order-list-item"
            top="8"
            :dot="userDetail?.hirePassTaskCount > 0"
            @click="goMineHired"
            :dot="false"
            @click="goMineReserveService"
          >
            <img :src="IconOrderHire" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已录用</div>
            <div class="mine-order-list-text">待服务</div>
          </nut-badge>
          <nut-badge
            class="mine-order-list-item"
            top="8"
            :dot="userDetail?.arrangeCompleteTaskCount > 0"
            @click="goMineHire"
            :dot="false"
            @click="goMineReserveService"
          >
            <img :src="IconOrderHire" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已安排</div>
          </nut-badge>
          <!-- <nut-badge
            class="mine-order-list-item"
            top="8"
            :value="userDetail?.hirePassTaskCount ?? 0"
            @click="goMineHire"
          >
            <img :src="IconOrderHire" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已安排</div>
            <div class="mine-order-list-text">已完成</div>
          </nut-badge>
          <nut-badge
            class="mine-order-list-item"
            top="8"
            :value="userDetail?.hireRefuseTaskCount ?? 0"
            @click="goMineCancel"
            :dot="false"
            @click="goMineReserveService"
          >
            <img :src="IconOrderCancel" class="mine-order-list-icon" />
            <div class="mine-order-list-text">已取消</div>
          </nut-badge> -->
          </nut-badge>
        </div>
      </List>
      <List class="mine-list-wrapper mine-setting-list">
        <ListItem :icon="IconCollect" title="我收藏的任务" @click="goMineCollectTask"></ListItem>
        <ListItem :icon="IconAgreement" title="协议签约" @click="goMineAgreementSign"></ListItem>
        <ListItem :icon="IconAgreement" title="订单管理" @click="goMineOrderManage"></ListItem>
        <ListItem :icon="IconCollect" title="收藏夹" @click="goMineCollectTask"></ListItem>
        <ListItem
          :icon="IconRecruit"
          v-if="!userDetail.enterpriseIsReal"
          title="升级企业版"
          @click="goCompanyInfo"
        ></ListItem>
        <ListItem :icon="IconSetting" title="设置" @click="goSetting"></ListItem>
        <!-- <ListItem :icon="IconRecruit" title="我要招人/用人" @click="goSetting"></ListItem> -->
      </List>
    </ContentScrollView>
    <CustomerServiceButton />
    <!-- <CustomerServiceButton /> -->
  </PageLayoutWithBg>
</template>
@@ -157,37 +98,20 @@
import IconOrderSign from '@/assets/mine/icon-order-sign.png';
import IconOrderHire from '@/assets/mine/icon-order-hire.png';
import IconOrderCancel from '@/assets/mine/icon-order-cancel.png';
import IconAuth from '@/assets/mine/icon-auth.png';
import { useUser, useIsLogin, useGoLogin } from '@/hooks';
import Taro from '@tarojs/taro';
import { RouterPath, OssAssets } from '@/constants';
import {
  EnumUserRealMethodText,
  EnumPersonalUserRealStatusText,
  EnumPersonalUserRealStatus,
} from '@12333/constants';
import { List, ListItem, CustomerServiceButton } from '@12333/components';
import { useSystemStore } from '@/stores/modules/system';
import PageLayoutWithBg from '@/components/Layout/PageLayoutWithBg.vue';
import { toThousand } from '@12333/utils';
import { useIntervalFn } from 'senin-mini/hooks';
import { useQuery } from '@tanstack/vue-query';
const { userDetail, isCertified, updateUserInfo } = useUser();
const { userDetail, updateUserInfo, displayName } = useUser();
const isLogin = useIsLogin();
const systemStore = useSystemStore();
const { goLoginFn } = useGoLogin();
const bgHeight = computed(() => 133 + systemStore.navHeight);
useQuery({
  queryKey: ['updateUserInfo'],
  queryFn: () => {},
  enabled: computed(
    () => isLogin.value && userDetail.value?.realStatus === EnumPersonalUserRealStatus.Checking
  ),
  refetchInterval: 5000,
});
Taro.useDidShow(() => {
  if (isLogin.value) {
    updateUserInfo();
@@ -222,30 +146,20 @@
  };
});
function goAuthentication() {
  goPage(RouterPath.authenticationHome);
function goCompanyInfo() {
  goPage(RouterPath.companyInfo);
}
function goMineSign() {
  goPage(RouterPath.mineSign);
}
function goMineHire() {
  goPage(RouterPath.mineHire);
}
function goMineCancel() {
  goPage(RouterPath.mineCancel);
}
function goMineHired() {
  goPage(RouterPath.mineHired);
}
function goMineCollectTask() {
  goPage(RouterPath.mineCollectTask);
}
function goMineAgreementSign() {
  goPage(RouterPath.mineAgreementSign);
function goMineReserveService() {
  goPage(RouterPath.mineReserveService);
}
function goMineWallet() {
  goPage(RouterPath.mineWallet);
function goMineOrderManage() {
  goPage(RouterPath.mineOrderManage);
}
</script>
apps/housekeepingMiniApp/src/pages/service/3x_categoryData.ts
apps/housekeepingMiniApp/src/pages/service/InnerPage.vue
apps/housekeepingMiniApp/src/pages/service/service.config.ts
apps/housekeepingMiniApp/src/pages/service/service.vue
apps/housekeepingMiniApp/src/stores/modules/user.ts
@@ -31,7 +31,7 @@
  userInfo?: Nullable<API.LoginCommandCallback>;
  token?: Nullable<string>;
  refreshToken?: Nullable<string>;
  userDetail?: Nullable<API.GetPersonalLoginInfoQueryResult>;
  userDetail?: Nullable<API.GetEnterpriseLoginInfoQueryResult>;
  firstGetUserDetail?: boolean;
  firstLaunch?: boolean;
@@ -142,6 +142,7 @@
          password: params.password,
          type: AppLocalConfig.userType,
          clientType: AppLocalConfig.clientType,
          enterpriseType: AppLocalConfig.enterpriseType,
        },
        { showLoading: false }
      );
@@ -192,7 +193,7 @@
    async getCurrentUserInfo() {
      try {
        let res = await authServices.getPersonalLoginInfo({}, { showLoading: false });
        let res = await authServices.getEnterpriseLoginInfo({}, { showLoading: false });
        if (res) {
          // res.frontStatus = getUserCertificationFrontStatusAdapter(
          //   res.userCertificationStatus,
@@ -219,7 +220,7 @@
      setUserInfo(this.userInfo);
    },
    setUserDetail(detail: API.GetPersonalLoginInfoQueryResult) {
    setUserDetail(detail: API.GetEnterpriseLoginInfoQueryResult) {
      this.userDetail = detail;
      setUserDetail(detail);
    },
apps/housekeepingMiniApp/src/subpackages/components/MineServiceDetailView.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
<template>
  <div class="mine-service-detail-view-wrapper">
    <div class="mine-service-detail-view-address">
      <div class="mine-service-detail-view-title-wrapper">
        <div class="mine-service-detail-view-title">服务地址</div>
      </div>
      <div class="mine-service-detail-view-item">浙江省宁波市鄞州区河清北路55号博浪大厦24层</div>
      <div class="mine-service-detail-view-item">阳阳 13333333333</div>
    </div>
    <nut-card
      :img-url="'//img10.360buyimg.com/n2/s240x240_jfs/t1/210890/22/4728/163829/6163a590Eb7c6f4b5/6390526d49791cb9.jpg!q70.jpg'"
      :title="'服务名称'"
      :price="'155.00'"
      vip-price=""
    ></nut-card>
    <List>
      <ListItem title="订单状态" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">{{ '订单状态' }}</div>
        </template>
      </ListItem>
      <ListItem title="服务时间" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">
            {{ '2025-12-12 12:00-14:00' }}
          </div>
        </template>
      </ListItem>
      <ListItem title="服务机构" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">{{ 'xxxxx公司' }}</div>
        </template>
      </ListItem>
      <ListItem title="备注" :showArrow="false">
        <template #extra>
          <div class="mine-service-detail-view-list-item">{{ '我是备注信息' }}</div>
        </template>
      </ListItem>
    </List>
  </div>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { List, ListItem } from '@12333/components';
defineOptions({
  name: 'MineServiceDetailView',
});
// type Props = {
// }
// const props = withDefaults(defineProps<Props>(), {
// })
</script>
<style lang="scss">
@import '@/styles/common.scss';
.mine-service-detail-view-wrapper {
  .mine-service-detail-view-address {
    padding: 24px 32px;
    margin-bottom: 24px;
    background-color: #fff;
    border-radius: 12px;
    .mine-service-detail-view-title-wrapper {
      display: flex;
      align-items: center;
      margin-bottom: 14px;
      .mine-service-detail-view-title {
        flex: 1;
        min-width: 0;
        @include ellipsis;
        font-size: 30px;
        color: boleGetCssVar('text-color', 'primary');
        line-height: 42px;
      }
    }
    .mine-service-detail-view-item {
      font-weight: 400;
      @include ellipsis;
      font-size: 24px;
      color: boleGetCssVar('text-color', 'primary');
      line-height: 36px;
      & + .mine-service-detail-view-item {
        margin-top: 14px;
      }
    }
  }
  .mine-service-detail-view-list-item {
    font-weight: 400;
    font-size: 28px;
    color: boleGetCssVar('text-color', 'secondary');
    line-height: 40px;
  }
}
</style>
apps/housekeepingMiniApp/src/subpackages/login/authorization/authorization.vue
@@ -114,6 +114,7 @@
      const params: API.WxmpLoginCommand = {
        code: loginRes.code,
        type: AppLocalConfig.userType,
        enterpriseType: AppLocalConfig.enterpriseType,
      };
      wxMiniAppUserLoginRes.value = await authServices.wxmpLogin(params);
      if (wxMiniAppUserLoginRes.value?.isBindPhoneNumber) {
apps/housekeepingMiniApp/src/subpackages/mine/addressManange/InnerPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
<template>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list home-list"
    v-bind="infiniteLoadingProps"
  >
    <nut-address-list
      :data="infiniteLoadingProps.flattenListData"
      @del-icon="delClick"
      @edit-icon="editClick"
      :show-bottom-button="false"
      :data-options="dataOptions"
      style="padding-bottom: 0"
    >
    </nut-address-list>
  </InfiniteLoading>
  <PageFooter>
    <PageFooterBtn type="primary" @click="goAddress()">添加地址</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import { useInfiniteLoading, useTaskList } from '@12333/hooks';
import Taro from '@tarojs/taro';
import * as enterpriseServices from '@12333/services/apiV2/enterprise';
import { Message } from '@12333/utils';
defineOptions({
  name: 'InnerPage',
});
const dataOptions = reactive({
  id: 'id',
  addressDetail: 'addressDetail',
  addressName: 'name',
  phone: 'contactPhoneNumber',
  defaultAddress: 'isDefault',
});
const delClick = async (_, item: API.GetEnterpriseAddressesQueryResultItem) => {
  try {
    await Message.confirm({
      message: '确定要删除吗?',
    });
    let params: API.DeleteEnterpriseAddressCommand = {
      ids: [item.id],
    };
    let res = await enterpriseServices.deleteEnterpriseAddress(params);
    if (res) {
      Message.success('删除成功');
      invalidateQueries();
    }
  } catch (error) {}
};
const editClick = (_, item: API.GetEnterpriseAddressesQueryResultItem) => {
  goAddress(item.id);
};
const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.GetEnterpriseAddressesQuery = {
      pageModel: {
        rows: 20,
        page: pageParam,
      },
    };
    return enterpriseServices.getEnterpriseAddresses(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['enterpriseServices/getEnterpriseAddresses'],
  }
);
function goAddress(id?: string) {
  Taro.navigateTo({
    url: id ? `${RouterPath.editAddress}?id=${id}` : RouterPath.editAddress,
  });
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/housekeepingMiniApp/src/subpackages/mine/addressManange/addressManange.config.ts
apps/housekeepingMiniApp/src/subpackages/mine/addressManange/addressManange.vue
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue copy to apps/housekeepingMiniApp/src/subpackages/mine/addressManange/addressManange.vue
Îļþ´Ó apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue ¸´ÖÆ
@@ -1,14 +1,14 @@
<template>
  <PageLayoutWithBg class="mineCancel-page-wrapper" :title="'已取消'">
  <PageLayout class="addressManange-page-wrapper" :title="'地址管理'" has-border>
    <InnerPage></InnerPage>
  </PageLayoutWithBg>
  </PageLayout>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'mineCancel',
  name: 'addressManange',
});
</script>
apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/InnerPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,137 @@
<template>
  <ContentScrollView :paddingH="false">
    <nut-form :model-value="form" ref="formRef" :rules="rules">
      <nut-form-item label="头像:" class="bole-form-item" prop="avatar">
        <Uploader v-model:file-list="form.avatar" :maximum="1" class="bole-uploader"> </Uploader>
      </nut-form-item>
      <nut-form-item label="营业执照:" class="bole-form-item alignTop" prop="licenseUrl" required>
        <Uploader
          v-model:file-list="form.licenseUrl"
          :maximum="1"
          :limitFileSize="10"
          class="bole-uploader nopaddingtop"
          @my-success="handleLicenseUrlChange"
        >
        </Uploader>
      </nut-form-item>
      <nut-form-item label="企业名称:" class="bole-form-item" prop="enterpriseName" required>
        <nut-input
          v-model.trim="form.enterpriseName"
          class="nut-input-text bole-input-text"
          placeholder="请输入您营业执照上的企业名称"
          type="text"
          :max-length="35"
        />
      </nut-form-item>
      <nut-form-item
        label="统一社会信用代码:"
        class="bole-form-item"
        prop="societyCreditCode"
        required
      >
        <nut-input
          v-model.trim="form.societyCreditCode"
          class="nut-input-text bole-input-text"
          placeholder="请输入您营业执照上的信用代码"
          type="text"
        />
      </nut-form-item>
      <nut-form-item label="手机号:" class="bole-form-item" prop="contactPhoneNumber" required>
        <nut-input
          v-model.trim="form.contactPhoneNumber"
          placeholder="请输入手机号"
          type="text"
          disabled
        />
      </nut-form-item>
    </nut-form>
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" @click="handleConfirm">保存</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { convertApi2FormUrlOnlyOne, FormValidator, Message } from '@12333/utils';
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import { goBack } from '@/utils';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
import { vatLicense } from '@12333/hooks';
import * as enterpriseServices from '@12333/services/apiV2/enterprise';
defineOptions({
  name: 'InnerPage',
});
const { userDetail, updateUserInfo } = useUser();
const form = reactive({
  avatar: convertApi2FormUrlOnlyOne(userDetail.value.originalAvatar),
  licenseUrl: convertApi2FormUrlOnlyOne(userDetail.value.licenseImage),
  enterpriseName: userDetail.value.enterpriseName ?? '',
  societyCreditCode: userDetail.value.societyCreditCode ?? '',
  contactPhoneNumber: userDetail.value.contactPhoneNumber ?? '',
});
const handleLicenseUrlChange = (response: FileItem) => {
  vatLicense(response, {
    onSuccess(res) {
      let tips: string[] = [];
      res?.enterpriseName ? (form.enterpriseName = res.enterpriseName) : tips.push('商户名称');
      res?.societyCreditCode
        ? (form.societyCreditCode = res.societyCreditCode)
        : tips.push('统一社会信用代码');
      if (tips.length > 0) {
        Message.error(`未能识别到您上传的图片,请重新上传清晰的图片或手动输入${tips.join('和')}`);
      }
    },
  });
};
const rules = reactive<FormRules>({
  licenseUrl: [
    { required: true, message: '请上传营业执照', validator: FormValidator.validatorArray },
  ],
  enterpriseName: [{ required: true, message: '请输入企业名称' }],
  societyCreditCode: [
    { required: true, message: '请输入您营业执照上的信用代码' },
    { message: '请输入正确的信用代码', validator: FormValidator.validatorSocietyCreditCode },
  ],
  contactPhoneNumber: [
    { required: true, message: '请输入手机号' },
    { validator: FormValidator.validatorPhoneNumber, message: '请输入正确的手机号' },
  ],
});
const formRef = ref<any>(null);
function handleConfirm() {
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
      confirm();
    }
  });
}
async function confirm() {
  try {
    let params: API.SetEnterpriseLoginInfoCommand = {
      avatar: form.avatar?.[0]?.path ?? '',
      licenseImage: form.licenseUrl?.[0]?.path ?? '',
      enterpriseName: form.enterpriseName,
      societyCreditCode: form.societyCreditCode,
      contactPhoneNumber: form.contactPhoneNumber,
    };
    let res = await enterpriseServices.setEnterpriseLoginInfo(params);
    if (res) {
      Message.success('保存成功', {
        onClosed() {
          goBack();
          updateUserInfo();
        },
      });
    }
  } catch (error) {}
}
</script>
apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/companyInfo.config.ts
apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/companyInfo.vue
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue copy to apps/housekeepingMiniApp/src/subpackages/mine/companyInfo/companyInfo.vue
Îļþ´Ó apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue ¸´ÖÆ
@@ -1,14 +1,14 @@
<template>
  <PageLayoutWithBg class="mineCancel-page-wrapper" :title="'已取消'">
  <PageLayout class="companyInfo-page-wrapper" :title="'企业信息'" has-border>
    <InnerPage></InnerPage>
  </PageLayoutWithBg>
  </PageLayout>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'mineCancel',
  name: 'companyInfo',
});
</script>
apps/housekeepingMiniApp/src/subpackages/mine/editAddress/InnerPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,172 @@
<template>
  <ContentScrollView :paddingH="false">
    <nut-form :model-value="form" ref="formRef" :rules="rules" label-position="top">
      <nut-form-item label="姓名:" class="bole-form-item" prop="name" required>
        <nut-input v-model="form.name" placeholder="请输入姓名"> </nut-input>
      </nut-form-item>
      <nut-form-item label="手机号:" class="bole-form-item" prop="contactPhoneNumber" required>
        <nut-input v-model.trim="form.contactPhoneNumber" placeholder="请输入手机号" type="text" />
      </nut-form-item>
      <!-- <nut-form-item label="公司所在地" class="bole-form-item" prop="areaList" required>
        <ChooseInputWithAreaPicker
          :columns="areaTree"
          v-model="form.areaList"
          placeholder="请选择您公司的所在地"
        ></ChooseInputWithAreaPicker>
      </nut-form-item> -->
      <nut-form-item label="详细地址:" class="bole-form-item" prop="weMapInfo" required>
        <ChooseLocationInput
          inputAlign="left"
          placeholder="请选择详细地址"
          v-model="form.weMapInfo"
        />
      </nut-form-item>
      <nut-form-item label="门牌号:" class="bole-form-item" prop="addressDetail" required>
        <nut-input v-model="form.addressDetail" placeholder="例如:xx小区xx单元xxx"> </nut-input>
      </nut-form-item>
      <nut-form-item
        label="默认地址:"
        class="bole-form-item"
        prop="isDefault"
        label-position="left"
      >
        <div class="switch-wrapper">
          <nut-switch v-model="form.isDefault" />
        </div>
      </nut-form-item>
    </nut-form>
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" @click="handleConfirm">保存</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { useQuery } from '@tanstack/vue-query';
import Taro from '@tarojs/taro';
import * as enterpriseServices from '@12333/services/apiV2/enterprise';
import { FormValidator, Message } from '@12333/utils';
import { goBack } from '@/utils';
import { ChooseLocationInput } from '@12333/components';
defineOptions({
  name: 'InnerPage',
});
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const isCopy = router.params?.isCopy === 'true';
const isEdit = !!id;
const form = reactive({
  name: '',
  contactPhoneNumber: '',
  provinceCode: '',
  cityCode: '',
  areaCode: '',
  weMapInfo: {} as WeMapModel,
  //   addressName: '',
  addressDetail: '',
  isDefault: false,
});
const rules = reactive<FormRules>({
  name: [{ required: true, message: '请输入姓名' }],
  contactPhoneNumber: [
    { required: true, message: '请输入手机号' },
    { validator: FormValidator.validatorPhoneNumber, message: '请输入正确的手机号' },
  ],
  weMapInfo: [
    { required: true, message: '请选择详细地址', validator: FormValidator.validatorWeMap },
  ],
  addressDetail: [{ required: true, message: '请输入门牌号' }],
});
const {
  isLoading,
  isError,
  data: detail,
  refetch,
} = useQuery({
  queryKey: ['enterpriseServices/getEnterpriseAddress', id],
  queryFn: async () => {
    return await enterpriseServices.getEnterpriseAddress(
      { id: id },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.GetEnterpriseAddressQueryResult),
  enabled: isEdit,
  onSuccess(data) {
    form.name = data.name;
    form.contactPhoneNumber = data.contactPhoneNumber;
    form.weMapInfo = {
      provinceName: data.provinceContent,
      cityName: data.cityContent,
      provinceCode: data.provinceCode,
      cityCode: data.cityCode,
      countyCode: data.areaCode,
      latitude: data.latitude,
      longitude: data.longitude,
    };
    form.addressDetail = data.addressDetail;
    form.isDefault = data.isDefault;
  },
});
const formRef = ref<any>(null);
function handleConfirm() {
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
      confirm();
    }
  });
}
async function confirm() {
  try {
    let params: API.SaveEnterpriseAddressCommand = {
      name: form.name,
      contactPhoneNumber: form.contactPhoneNumber,
      provinceCode: form.weMapInfo.provinceCode,
      cityCode: form.weMapInfo.cityCode,
      areaCode: form.weMapInfo.countyCode,
      addressName: form.weMapInfo.address,
      addressDetail: form.addressDetail,
      longitude: form.weMapInfo.longitude,
      latitude: form.weMapInfo.latitude,
      isDefault: form.isDefault,
    };
    if (isEdit) {
      params.id = id;
    }
    let res = await enterpriseServices.saveEnterpriseAddress(params);
    if (res) {
      Message.success(isEdit ? '编辑成功' : '添加成功', {
        onClosed() {
          goBack();
        },
      });
    }
  } catch (error) {}
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.editAddress-page-wrapper {
  .switch-wrapper {
    display: flex;
    justify-content: flex-end;
  }
}
</style>
apps/housekeepingMiniApp/src/subpackages/mine/editAddress/editAddress.config.ts
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.config.ts copy to apps/housekeepingMiniApp/src/subpackages/mine/editAddress/editAddress.config.ts
apps/housekeepingMiniApp/src/subpackages/mine/editAddress/editAddress.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
<template>
  <PageLayout class="editAddress-page-wrapper" :title="title" has-border>
    <InnerPage></InnerPage>
  </PageLayout>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'editAddress',
});
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const title = computed(() => (id ? '编辑地址' : '新增地址'));
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSign/InnerPage.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.config.ts
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSign/mineAgreementSign.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailCard.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/InnerPage.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue
@@ -1,31 +1,17 @@
<template>
  <div class="my-collect-task">
    <div class="my-collect-task-title">收藏任务列表</div>
    <div class="my-collect-task-btn" @click="clearExpiredTask">清空已失效任务</div>
  </div>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list home-list"
    v-bind="infiniteLoadingProps"
  >
    <template #renderItem="{ item }">
    <div class="mineCollectTask-service-list">
      <TaskCard
        :id="item.id"
        :name="item.name"
        :address-name="item.addressName"
        :begin-time="item.beginTime"
        :end-time="item.endTime"
        :gender-limit="item.genderLimit"
        :service-fee="item.serviceFee"
        :billing-method="item.billingMethod"
        :settlement-cycle="item.settlementCycle"
        :benefits="item.benefits"
        :show-actions="true"
        :release-status="item.releaseStatus"
        :hireStatus="item.hireStatus"
        @apply="goTaskDetail"
      >
      </TaskCard>
    </template>
        v-for="item in infiniteLoadingProps.flattenListData"
        :key="item.id"
        @click="goSerciceDetail(item)"
        v-bind="item"
        style="min-width: 0"
      />
    </div>
  </InfiniteLoading>
</template>
@@ -35,7 +21,6 @@
import * as taskUserServices from '@12333/services/apiV2/taskUser';
import { useInfiniteLoading, useTaskList } from '@12333/hooks';
import Taro from '@tarojs/taro';
import { Message } from '@12333/utils';
defineOptions({
  name: 'InnerPage',
@@ -51,56 +36,28 @@
      isCollected: true,
    };
    return taskServices.getTaskInfos(params, {
    return taskServices.getOpenTaskInfos(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['taskServices/getTaskInfos'],
    queryKey: ['taskServices/getOpenTaskInfos'],
  }
);
function goTaskDetail(id: string) {
function goSerciceDetail(item: any) {
  Taro.navigateTo({
    url: `${RouterPath.taskDetail}?id=${id}&from=apply`,
    url: `${RouterPath.serciceDetail}?id=${item.id}`,
  });
}
async function clearExpiredTask() {
  try {
    await Message.confirm({
      message: '确定要清空已失效任务吗?',
    });
    let res = await taskUserServices.clearTaskCollect({});
    if (res) {
      Message.success('清空成功');
      invalidateQueries();
    }
  } catch (error) {}
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.mineCollectTask-page-wrapper {
  .my-collect-task {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 30px 40px;
    .my-collect-task-title {
      font-size: 28px;
      line-height: 40px;
      color: boleGetCssVar('text-color', 'primary');
    }
    .my-collect-task-btn {
      font-size: 24px;
      line-height: 34px;
      color: boleGetCssVar('text-color', 'regular');
    }
  }
.mineCollectTask-service-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 20px;
}
</style>
apps/housekeepingMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineHire/mineHire.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineHired/InnerPage.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineHired/mineHired.config.ts
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineHired/mineHired.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/InnerPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
<template>
  <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> -->
  <ContentScrollView hasPaddingTop>
    <MineServiceDetailView />
  </ContentScrollView>
  <!-- </LoadingLayout> -->
</template>
<script setup lang="ts">
import MineServiceDetailView from '../../components/MineServiceDetailView.vue';
import Taro from '@tarojs/taro';
import * as standardServiceServices from '@12333/services/apiV2/standardService';
import { useCheckReceiveTaskUserSubmit } from '@12333/hooks';
defineOptions({
  name: 'InnerPage',
});
const route = Taro.useRouter();
const id = route.params?.id as string;
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/mineOrderDetail.config.ts
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/mineOrderDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<template>
  <PageLayout class="mineOrderDetail-page-wrapper" title="订单详情" has-border>
    <InnerPage />
  </PageLayout>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'mineOrderDetail',
});
</script>
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderManage/InnerPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
<template>
  <ProTabs
    v-model="queryState.status"
    name="home-tab"
    :showPaneContent="false"
    class="home-tabs"
    isTransparent
    title-gutter="12"
    title-scroll
  >
    <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane>
    <ProTabPane
      :title="`待支付`"
      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire"
    ></ProTabPane>
    <ProTabPane
      :title="`已支付`"
      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract"
    ></ProTabPane>
    <ProTabPane
      :title="`已完成`"
      :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse"
    ></ProTabPane>
  </ProTabs>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list home-list"
    v-bind="infiniteLoadingProps"
    :key="queryState.status"
  >
    <template #renderItem="{ item }">
      <ReserveServiceCard
        :name="item.name"
        :begin-time="item.beginTime"
        :end-time="item.endTime"
        :billing-method="item.billingMethod"
        :benefits="item.benefits"
        :service-fee="item.serviceFee"
        :settlement-cycle="item.settlementCycle"
        :address-name="item.addressName"
        @click="goMineOrderDetail(item)"
      >
      </ReserveServiceCard>
    </template>
  </InfiniteLoading>
</template>
<script setup lang="ts">
import { ProTabs, ProTabPane } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
import { useInfiniteLoading } from '@12333/hooks';
import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants';
import * as taskServices from '@12333/services/apiV2/task';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'InnerPage',
});
const queryState = reactive({
  status: 0 as any as GetPersonalApplyTaskInfosQueryStatus,
});
const userStore = useUserStore();
const { infiniteLoadingProps } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.GetTaskInfosQuery = {
      pageModel: {
        rows: 20,
        page: pageParam,
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      },
    };
    return taskServices.getOpenTaskInfos(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['taskServices/getOpenTaskInfos', queryState],
  }
);
function goMineOrderDetail(item: any) {
  Taro.navigateTo({
    url: `${RouterPath.mineOrderDetail}?id=${item.id}`,
  });
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderManage/mineOrderManage.config.ts
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineHire/mineHire.config.ts copy to apps/housekeepingMiniApp/src/subpackages/mine/mineOrderManage/mineOrderManage.config.ts
apps/housekeepingMiniApp/src/subpackages/mine/mineOrderManage/mineOrderManage.vue
ÎļþÃû´Ó apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue ÐÞ¸Ä
@@ -1,5 +1,5 @@
<template>
  <PageLayoutWithBg class="mineCancel-page-wrapper" :title="'已取消'">
  <PageLayoutWithBg class="mineHire-page-wrapper" :title="'我的订单'">
    <InnerPage></InnerPage>
  </PageLayoutWithBg>
</template>
@@ -8,7 +8,7 @@
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'mineCancel',
  name: 'mineOrderManage',
});
</script>
apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/InnerPage.vue
ÎļþÃû´Ó apps/housekeepingMiniApp/src/subpackages/mine/mineSign/InnerPage.vue ÐÞ¸Ä
@@ -14,13 +14,14 @@
      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire"
    ></ProTabPane>
    <ProTabPane
      :title="`待签约`"
      :title="`待服务`"
      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract"
    ></ProTabPane>
    <ProTabPane
      :title="`已谢绝`"
      :title="`已完成`"
      :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse"
    ></ProTabPane>
    <ProTabPane :title="`已取消`" :pane-key="40"></ProTabPane>
  </ProTabs>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list home-list"
@@ -28,7 +29,7 @@
    :key="queryState.status"
  >
    <template #renderItem="{ item }">
      <TaskCard
      <ReserveServiceCard
        :name="item.name"
        :begin-time="item.beginTime"
        :end-time="item.endTime"
@@ -37,33 +38,18 @@
        :service-fee="item.serviceFee"
        :settlement-cycle="item.settlementCycle"
        :address-name="item.addressName"
        :unRead="item.unRead"
        @click="goTaskDetail(item)"
        @click="goSerciceDetail(item)"
      >
        <template #actions>
          <div
            class="task-card-actions-text"
            :style="{ color: GetPersonalApplyTaskInfosQueryStatusColor[item.status] }"
          >
            {{ GetPersonalApplyTaskInfosQueryStatusText[item.status] }}
          </div>
        </template>
      </TaskCard>
      </ReserveServiceCard>
    </template>
  </InfiniteLoading>
</template>
<script setup lang="ts">
import { TaskCard, ProTabs, ProTabPane } from '@12333/components';
import { ProTabs, ProTabPane } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
import { useInfiniteLoading } from '@12333/hooks';
import {
  EnumPagedListOrder,
  GetPersonalApplyTaskInfosQueryStatus,
  GetPersonalApplyTaskInfosQueryStatusText,
  GetPersonalApplyTaskInfosQueryStatusColor,
  EnumReadScene,
} from '@12333/constants';
import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants';
import * as taskServices from '@12333/services/apiV2/task';
import Taro from '@tarojs/taro';
@@ -79,39 +65,30 @@
const { infiniteLoadingProps } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.GetPersonalApplyTaskInfosQuery = {
    let params: API.GetTaskInfosQuery = {
      pageModel: {
        rows: 20,
        page: pageParam,
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      },
    };
    if (Number(queryState.status)) {
      params.status = queryState.status;
    }
    return taskServices.getPersonalApplyTaskInfos(params, {
    return taskServices.getOpenTaskInfos(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['taskServices/getPersonalApplyTaskInfos', queryState],
    queryKey: ['taskServices/getOpenTaskInfos', queryState],
  }
);
function goTaskDetail(item: API.GetPersonalApplyTaskInfosQueryResultItem) {
function goSerciceDetail(item: any) {
  Taro.navigateTo({
    url: `${RouterPath.taskDetail}?id=${item.id}&from=sign&readScene=${EnumReadScene.TaskUserApplyForPersonal}`,
    url: `${RouterPath.serciceDetail}?id=${item.id}`,
  });
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.mineSign-page-wrapper {
  .task-card-actions-text {
    font-size: 24px;
    line-height: 42px;
  }
}
</style>
apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/mineReserveService.config.ts
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineHire/mineHire.config.ts copy to apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/mineReserveService.config.ts
apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/mineReserveService.vue
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue copy to apps/housekeepingMiniApp/src/subpackages/mine/mineReserveService/mineReserveService.vue
Îļþ´Ó apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue ¸´ÖÆ
@@ -1,5 +1,5 @@
<template>
  <PageLayoutWithBg class="mineCancel-page-wrapper" :title="'已取消'">
  <PageLayoutWithBg class="mineHire-page-wrapper" :title="'我的预约'">
    <InnerPage></InnerPage>
  </PageLayoutWithBg>
</template>
@@ -8,7 +8,7 @@
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'mineCancel',
  name: 'mineReserveService',
});
</script>
apps/housekeepingMiniApp/src/subpackages/mine/mineSign/mineSign.config.ts
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/mineSign/mineSign.vue
ÎļþÒÑɾ³ý
apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/InnerPage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<template>
  <ContentScrollView :paddingH="false">
    <nut-form :model-value="form" ref="formRef" :rules="rules">
      <nut-form-item label="头像:" class="bole-form-item" prop="avatar">
        <Uploader v-model:file-list="form.avatar" :maximum="1" class="bole-uploader"> </Uploader>
      </nut-form-item>
      <nut-form-item label="姓名:" class="bole-form-item" prop="name" required>
        <nut-input
          v-model.trim="form.name"
          placeholder="请输入姓名"
          :disabled="userDetail.isReal"
        />
      </nut-form-item>
      <nut-form-item label="手机号:" class="bole-form-item" prop="contactPhoneNumber" required>
        <nut-input
          v-model.trim="form.contactPhoneNumber"
          placeholder="请输入手机号"
          type="text"
          disabled
        />
      </nut-form-item>
    </nut-form>
  </ContentScrollView>
  <PageFooter>
    <PageFooterBtn type="primary" @click="handleConfirm">保存</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { convertApi2FormUrlOnlyOne, FormValidator, Message } from '@12333/utils';
import * as enterpriseServices from '@12333/services/apiV2/enterprise';
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import { goBack } from '@/utils';
defineOptions({
  name: 'InnerPage',
});
const { userDetail, updateUserInfo } = useUser();
const form = reactive({
  avatar: convertApi2FormUrlOnlyOne(userDetail.value.originalAvatar),
  name: userDetail.value.name ?? '',
  contactPhoneNumber: userDetail.value.contactPhoneNumber ?? '',
});
const rules = reactive<FormRules>({
  name: [{ required: true, message: '请输入姓名' }],
  contactPhoneNumber: [
    { required: true, message: '请输入手机号' },
    { validator: FormValidator.validatorPhoneNumber, message: '请输入正确的手机号' },
  ],
});
const formRef = ref<any>(null);
function handleConfirm() {
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
      confirm();
    }
  });
}
async function confirm() {
  try {
    let params: API.SetEnterpriseLoginInfoCommand = {
      name: form.name,
      avatar: form.avatar?.[0]?.path ?? '',
      contactPhoneNumber: form.contactPhoneNumber,
    };
    let res = await enterpriseServices.setEnterpriseLoginInfo(params);
    if (res) {
      Message.success('保存成功', {
        onClosed() {
          goBack();
          updateUserInfo();
        },
      });
    }
  } catch (error) {}
}
</script>
apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/personalInfo.config.ts
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.config.ts copy to apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/personalInfo.config.ts
apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/personalInfo.vue
copy from apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue copy to apps/housekeepingMiniApp/src/subpackages/mine/personalInfo/personalInfo.vue
Îļþ´Ó apps/housekeepingMiniApp/src/subpackages/mine/mineCancel/mineCancel.vue ¸´ÖÆ
@@ -1,14 +1,14 @@
<template>
  <PageLayoutWithBg class="mineCancel-page-wrapper" :title="'已取消'">
  <PageLayout class="personalInfo-page-wrapper" :title="'个人信息'" has-border>
    <InnerPage></InnerPage>
  </PageLayoutWithBg>
  </PageLayout>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'mineCancel',
  name: 'personalInfo',
});
</script>
apps/housekeepingMiniApp/src/subpackages/mine/setting/setting.vue
@@ -1,18 +1,15 @@
<template>
  <PageLayout title="设置" class="setting-page-wrapper" hasBorder>
    <List>
      <!-- <ListItem title="登录账号">
        <template #extra>
          <div class="user-account">
            {{ userAccount }}
          </div>
        </template>
      </ListItem> -->
      <ListItem title="用户协议" @click="goMineUserPolicy"></ListItem>
      <ListItem
        title="公司信息"
        v-if="userDetail.enterpriseIsReal"
        @click="goCompanyInfo"
      ></ListItem>
      <ListItem title="个人信息" v-else @click="goPersonalInfo"></ListItem>
      <ListItem title="地址管理" @click="goAddressManage"></ListItem>
      <ListItem title="隐私政策" @click="goPrivacyPolicy"></ListItem>
      <ListItem title="退出登录" @click="handleLoginout"></ListItem>
      <!-- <ListItem title="人工客服" @click="goMineService"></ListItem> -->
      <!-- <nut-button :open-type="'contact'" class="setting-page-service">人工客服</nut-button> -->
    </List>
  </PageLayout>
</template>
@@ -20,10 +17,11 @@
<script setup lang="ts">
import { PageLayout } from '@/components';
import { List, ListItem } from '@12333/components';
import { addStarForString, Message } from '@12333/utils';
import { Message } from '@12333/utils';
import { useUserStore } from '@/stores/modules/user';
import { useQueryClient } from '@tanstack/vue-query';
import Taro from '@tarojs/taro';
import { useUser } from '@/hooks';
defineOptions({
  name: 'setting',
@@ -31,22 +29,32 @@
const userStore = useUserStore();
const queryClient = useQueryClient();
const { userDetail } = useUser();
const userAccount = computed(() => {
  return addStarForString(userStore?.userDetail?.name, 4, 8);
});
function goMineUserPolicy() {
  Taro.navigateTo({
    url: RouterPath.mineUserPolicy,
  });
}
function goPrivacyPolicy() {
  Taro.navigateTo({
    url: RouterPath.privacyPolicy,
  });
}
function goPersonalInfo() {
  Taro.navigateTo({
    url: RouterPath.personalInfo,
  });
}
function goCompanyInfo() {
  Taro.navigateTo({
    url: RouterPath.companyInfo,
  });
}
function goAddressManage() {
  Taro.navigateTo({
    url: RouterPath.addressManange,
  });
}
async function handleLoginout() {
  try {
    await Message.confirm({
@@ -58,24 +66,6 @@
    });
  } catch (error) {}
}
function goMineService() {
  // const encodedUrl = encodeURIComponent('https://work.weixin.qq.com/kfid/kfcd24e0c60fd91099');
  Taro.openCustomerServiceChat({
    extInfo: {
      // url: 'https://work.weixin.qq.com/kfid/kfcd24e0c60fd91099',
      url: `${RouterPath.setting}`,
    },
    corpId: 'wwc84cb8e0525c772f',
    // corpId: 'kfc2335f41fb4f0c0bc',
    fail: (res) => {
      Taro.showToast({
        title: res.errMsg,
        icon: 'none',
      });
    },
  });
}
</script>
<style lang="scss">
apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.config.ts
apps/housekeepingMiniApp/src/subpackages/sercice/serciceDetail/serciceDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<template>
  <PageLayoutWithBg class="mineHire-page-wrapper" :title="'服务名'" :need-auth="false">
    <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
      <ContentScrollView style="background-color: transparent"> serciceDetail </ContentScrollView>
    </LoadingLayout>
  </PageLayoutWithBg>
</template>
<script setup lang="ts">
import { useTaskInfo } from '@12333/hooks';
import InnerPage from './InnerPage.vue';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'serciceDetail',
});
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const { isLoading, isError, detail, refetch } = useTaskInfo({
  id,
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>
apps/housekeepingMiniApp/types/global.d.ts
@@ -74,10 +74,11 @@
  provinceName?: string;
  cityName?: string;
  countyName?: string;
  provinceCode?: number;
  cityCode?: number;
  countyCode?: number;
  provinceCode?: string;
  cityCode?: string;
  countyCode?: string;
  address?: string;
  addressName?: string;
}
declare const uni = Taro
packages/components/src/Input/ChooseLocationInput.vue
@@ -16,7 +16,7 @@
    </template>
    <template #right>
      <slot name="right">
        <img :src="IconLocation" class="choose-location-input-icon" />
        <!-- <img :src="IconLocation" class="choose-location-input-icon" /> -->
      </slot>
    </template>
  </nut-input>
packages/constants/apiEnum.ts
@@ -1,6 +1,20 @@
/* eslint-disable */
// @ts-ignore
/** å¹¿å‘Šé¡µé¢ */
export enum EnumAdvertisementPage {
  /**甲方小程序首页 */
  PartAWxmpHome = 10,
}
/** å¹¿å‘ŠçŠ¶æ€ */
export enum EnumAdvertisementStatus {
  /**展示中 */
  InProcess = 20,
  /**已下架 */
  Stopped = 100,
}
/** è®¡è´¹æ–¹å¼ */
export enum EnumBillingMethod {
  /**按月 */
@@ -165,6 +179,8 @@
  Identity3 = 10,
  /**企业四要素 */
  Identity4 = 20,
  /**客户自认证 */
  Customer = 30,
}
/** ä¼ä¸šç±»åž‹ */
@@ -419,6 +435,8 @@
  BestSign = 10,
  /**支付宝信任签 */
  AlipaySign = 20,
  /**客户自认证 */
  Customer = 30,
}
/** èµ„源控制器 */
@@ -427,68 +445,72 @@
  FlexJobServerDictionary = 0,
  /**标准订单服务 */
  FlexJobServerStandardService = 1,
  /**标准订单 */
  FlexJobServerStandardOrder = 2,
  /**任务 */
  FlexJobServerTask = 2,
  FlexJobServerTask = 3,
  /**任务人员 */
  FlexJobServerTaskUser = 3,
  FlexJobServerTaskUser = 4,
  /**任务验收 */
  FlexJobServerTaskCheckReceive = 4,
  FlexJobServerTaskCheckReceive = 5,
  /**投保产品 */
  FlexJobServerInsuranceProduct = 5,
  FlexJobServerInsuranceProduct = 6,
  /**企业投保产品 */
  FlexJobServerEnterpriseInsuranceProduct = 6,
  FlexJobServerEnterpriseInsuranceProduct = 7,
  /**广告 */
  CommonServerAdvertisement = 8,
  /**编号地址 */
  CommonServerCodeUrls = 7,
  CommonServerCodeUrls = 9,
  /**文件 */
  CommonServerFileUtils = 8,
  CommonServerFileUtils = 10,
  /**事件 */
  CommonServerEventUtils = 9,
  CommonServerEventUtils = 11,
  /**文字识别 */
  CommonServerOcrUtils = 10,
  CommonServerOcrUtils = 12,
  /**日志记录 */
  CommonServerLogRecords = 11,
  CommonServerLogRecords = 13,
  /**同步数据库 */
  CommonServerSyncDatabase = 12,
  CommonServerSyncDatabase = 14,
  /**短信工具 */
  CommonServerSmsUtils = 13,
  CommonServerSmsUtils = 15,
  /**配置 */
  CommonServerSettings = 14,
  CommonServerSettings = 16,
  /**已读 */
  CommonServerReadRecord = 15,
  CommonServerReadRecord = 17,
  /**微信小程序 */
  CommonServerWxmp = 16,
  CommonServerWxmp = 18,
  /**用户认证 */
  UserServerAuth = 17,
  UserServerAuth = 19,
  /**用户菜单 */
  UserServerMenu = 18,
  UserServerMenu = 20,
  /**用户资源 */
  UserServerResource = 19,
  UserServerResource = 21,
  /**用户角色 */
  UserServerRole = 20,
  UserServerRole = 22,
  /**用户信息 */
  UserServerUser = 21,
  UserServerUser = 23,
  /**用户钱包 */
  UserServerUserWallet = 22,
  UserServerUserWallet = 24,
  /**电子签 */
  UserServerElectronSign = 23,
  UserServerElectronSign = 25,
  /**用户简历 */
  UserServerUserResume = 24,
  UserServerUserResume = 26,
  /**企业信息 */
  UserServerEnterprise = 25,
  UserServerEnterprise = 27,
  /**企业钱包 */
  UserServerEnterpriseWallet = 26,
  UserServerEnterpriseWallet = 28,
  /**企业合作钱包 */
  UserServerEnterpriseCooperationWallet = 27,
  UserServerEnterpriseCooperationWallet = 29,
  /**灵工信息 */
  UserServerEnterpriseEmployee = 28,
  UserServerEnterpriseEmployee = 30,
  /**电子签 */
  ElectronSignServerElectronSign = 29,
  ElectronSignServerElectronSign = 31,
  /**短信 */
  ToolServerSms = 30,
  ToolServerSms = 32,
  /**小程序 */
  ToolServerWxmp = 31,
  ToolServerWxmp = 33,
  /**保险 */
  WaterDropCloudServerInsurance = 32,
  WaterDropCloudServerInsurance = 34,
}
/** èµ„源请求方式 */
@@ -553,6 +575,44 @@
  Fail = 30,
}
/** æ ‡å‡†è®¢å•预约状态 */
export enum EnumStandardOrderAppointmentStatus {
  /**待确认 */
  WaitSure = 10,
  /**待服务 */
  WaitServe = 20,
  /**已完成 */
  Completed = 30,
  /**已取消 */
  Cancelled = 40,
}
/** æ ‡å‡†è®¢å•支付状态 */
export enum EnumStandardOrderPayStatus {
  /**待支付 */
  Wait = 10,
  /**已支付 */
  Completed = 20,
  /**已取消 */
  Cancelled = 30,
}
/** æ ‡å‡†è®¢å•结算状态 */
export enum EnumStandardOrderSettlementStatus {
  /**待结算 */
  Wait = 10,
  /**已完成 */
  Completed = 20,
}
/** æ ‡å‡†è®¢å•服务推荐状态 */
export enum EnumStandardServiceRecommendStatus {
  /**未推荐 */
  No = 10,
  /**已推荐 */
  Yes = 20,
}
/** æ ‡å‡†è®¢å•服务-发布状态 */
export enum EnumStandardServiceReleaseStatus {
  /**发布中 */
packages/hooks/identify.ts
@@ -1,26 +1,20 @@
import { EnumOcrAccess } from '@12333/constants';
import * as accountServices from '@12333/services/api/Account';
import * as ocrUtilsServices from '@12333/services/apiV2/ocrUtils';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
import _ from 'lodash';
type VatLicenseOptions = {
  onSuccess?: (res: API.LicenseOcrModel) => any;
  onSuccess?: (res: API.BaiduOcrBusinessLicenseResultModel) => any;
};
export async function vatLicense(response: FileItem, options: VatLicenseOptions = {}) {
  try {
    if (response?.url) {
      const { onSuccess } = options;
      let res = await accountServices.vatLicense({
      let res = await ocrUtilsServices.getLicenseOcr({
        url: response.url,
      });
      onSuccess?.(
        _.mapValues(res, (x) => {
          if (x === '无') return '';
          return x;
        })
      );
      onSuccess?.(res.model);
    }
  } catch (error) {}
}
packages/services/apiV2/advertisement.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** æŸ¥è¯¢å¹¿å‘Šè¯¦æƒ… GET /api/common/advertisement/getAdvertisement */
export async function getAdvertisement(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetAdvertisementParams,
  options?: API.RequestConfig
) {
  return request<API.GetAdvertisementQueryResult>('/api/common/advertisement/getAdvertisement', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** æŸ¥è¯¢å¹¿å‘Šæ—¥å¿—分页列表 POST /api/common/advertisement/getAdvertisementLogs */
export async function getAdvertisementLogs(
  body: API.GetAdvertisementLogsQuery,
  options?: API.RequestConfig
) {
  return request<API.HistoryQueryResult>('/api/common/advertisement/getAdvertisementLogs', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æŸ¥è¯¢å¹¿å‘Šåˆ†é¡µåˆ—表 POST /api/common/advertisement/getAdvertisements */
export async function getAdvertisements(
  body: API.GetAdvertisementsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetAdvertisementsQueryResult>('/api/common/advertisement/getAdvertisements', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æŸ¥è¯¢å±•示广告列表 GET /api/common/advertisement/getShowAdvertisements */
export async function getShowAdvertisements(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetShowAdvertisementsParams,
  options?: API.RequestConfig
) {
  return request<API.GetShowAdvertisementsQueryResultItem[]>(
    '/api/common/advertisement/getShowAdvertisements',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** ä¿å­˜å¹¿å‘Š POST /api/common/advertisement/saveAdvertisement */
export async function saveAdvertisement(
  body: API.SaveAdvertisementCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/common/advertisement/saveAdvertisement', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** è®¾ç½®å¹¿å‘ŠçŠ¶æ€ PUT /api/common/advertisement/setAdvertisementStatus */
export async function setAdvertisementStatus(
  body: API.SetAdvertisementStatusCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/common/advertisement/setAdvertisementStatus', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/auth.ts
@@ -32,6 +32,21 @@
  });
}
/** é€‰æ‹©å¾®ä¿¡æ‰‹æœºå· POST /api/user/auth/chooseWxmpPhoneNumber */
export async function chooseWxmpPhoneNumber(
  body: API.ChooseWxmpPhoneNumberCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/user/auth/chooseWxmpPhoneNumber', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** èŽ·å–é˜¿é‡Œäº‘OSS授权信息 GET /api/user/auth/getAliyunOSSAcs */
export async function getAliyunOSSAcs(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
packages/services/apiV2/enterprise.ts
@@ -2,6 +2,21 @@
// @ts-ignore
import { request } from '@/utils/request';
/** åˆ é™¤ä¼ä¸šåœ°å€ DELETE /api/user/enterprise/deleteEnterpriseAddress */
export async function deleteEnterpriseAddress(
  body: API.DeleteEnterpriseAddressCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/user/enterprise/deleteEnterpriseAddress', {
    method: 'DELETE',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æŸ¥è¯¢ä¼ä¸šè¯¦æƒ… GET /api/user/enterprise/getEnterprise */
export async function getEnterprise(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
@@ -17,6 +32,39 @@
  });
}
/** æŸ¥è¯¢ä¼ä¸šåœ°å€è¯¦æƒ… GET /api/user/enterprise/getEnterpriseAddress */
export async function getEnterpriseAddress(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseAddressParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseAddressQueryResult>('/api/user/enterprise/getEnterpriseAddress', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** æŸ¥è¯¢ä¼ä¸šåœ°å€åˆ†é¡µåˆ—表 POST /api/user/enterprise/getEnterpriseAddresses */
export async function getEnterpriseAddresses(
  body: API.GetEnterpriseAddressesQuery,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseAddressesQueryResult>(
    '/api/user/enterprise/getEnterpriseAddresses',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** æŸ¥è¯¢ä¼ä¸šç”µå­ç­¾é…ç½® GET /api/user/enterprise/getEnterpriseElectronSignSetting */
export async function getEnterpriseElectronSignSetting(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
@@ -169,6 +217,21 @@
  });
}
/** ä¿å­˜ä¼ä¸šåœ°å€ POST /api/user/enterprise/saveEnterpriseAddress */
export async function saveEnterpriseAddress(
  body: API.SaveEnterpriseAddressCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterprise/saveEnterpriseAddress', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** ä¿å­˜ä¼ä¸šè´¹ç”¨ POST /api/user/enterprise/saveEnterpriseCost */
export async function saveEnterpriseCost(
  body: API.SaveEnterpriseCostCommand,
@@ -229,6 +292,21 @@
  });
}
/** è®¾ç½®ä¼ä¸šç™»å½•用户信息 PUT /api/user/enterprise/setEnterpriseLoginInfo */
export async function setEnterpriseLoginInfo(
  body: API.SetEnterpriseLoginInfoCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/user/enterprise/setEnterpriseLoginInfo', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** è®¾ç½®ä¼ä¸šçŸ­ä¿¡é…ç½® PUT /api/user/enterprise/setEnterpriseSmsSetting */
export async function setEnterpriseSmsSetting(
  body: API.SetEnterpriseSmsSettingCommand,
packages/services/apiV2/index.ts
@@ -14,10 +14,12 @@
import * as logRecords from './logRecords';
import * as dictionary from './dictionary';
import * as taskCheckReceive from './taskCheckReceive';
import * as standardService from './standardService';
import * as userResume from './userResume';
import * as auth from './auth';
import * as taskUser from './taskUser';
import * as enterpriseInsuranceProduct from './enterpriseInsuranceProduct';
import * as standardOrder from './standardOrder';
import * as eventUtils from './eventUtils';
import * as enterpriseCooperationWallet from './enterpriseCooperationWallet';
import * as insuranceProduct from './insuranceProduct';
@@ -26,10 +28,10 @@
import * as menu from './menu';
import * as sms from './sms';
import * as userWallet from './userWallet';
import * as advertisement from './advertisement';
import * as fileUtils from './fileUtils';
import * as settings from './settings';
import * as wxmpUtils from './wxmpUtils';
import * as standardService from './standardService';
export default {
  enterprise,
  enterpriseEmployee,
@@ -43,10 +45,12 @@
  logRecords,
  dictionary,
  taskCheckReceive,
  standardService,
  userResume,
  auth,
  taskUser,
  enterpriseInsuranceProduct,
  standardOrder,
  eventUtils,
  enterpriseCooperationWallet,
  insuranceProduct,
@@ -55,8 +59,8 @@
  menu,
  sms,
  userWallet,
  advertisement,
  fileUtils,
  settings,
  wxmpUtils,
  standardService,
};
packages/services/apiV2/standardOrder.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,198 @@
/* eslint-disable */
// @ts-ignore
import { request } from '@/utils/request';
/** é¢„约下单(标准订单) POST /api/flexjob/standardOrder/addStandardOrder */
export async function addStandardOrder(
  body: API.AddStandardOrderCommand,
  options?: API.RequestConfig
) {
  return request<API.AddStandardOrderCommandResult>('/api/flexjob/standardOrder/addStandardOrder', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æ ‡å‡†è®¢å•取消 POST /api/flexjob/standardOrder/cancelStandardOrderAppointment */
export async function cancelStandardOrderAppointment(
  body: API.CancelStandardOrderAppointmentCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/flexjob/standardOrder/cancelStandardOrderAppointment', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•详情 GET /api/flexjob/standardOrder/getStandardOrder */
export async function getStandardOrder(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetStandardOrderParams,
  options?: API.RequestConfig
) {
  return request<API.GetStandardOrderQueryResult>('/api/flexjob/standardOrder/getStandardOrder', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•预约分页列表 POST /api/flexjob/standardOrder/getStandardOrderAppointments */
export async function getStandardOrderAppointments(
  body: API.GetStandardOrderAppointmentsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetStandardOrderAppointmentsQueryResult>(
    '/api/flexjob/standardOrder/getStandardOrderAppointments',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•支付分页列表 POST /api/flexjob/standardOrder/getStandardOrderPays */
export async function getStandardOrderPays(
  body: API.GetStandardOrderPaysQuery,
  options?: API.RequestConfig
) {
  return request<API.GetStandardOrderPaysQueryResult>(
    '/api/flexjob/standardOrder/getStandardOrderPays',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•分页列表 POST /api/flexjob/standardOrder/getStandardOrders */
export async function getStandardOrders(
  body: API.GetStandardOrdersQuery,
  options?: API.RequestConfig
) {
  return request<API.GetStandardOrdersQueryResult>('/api/flexjob/standardOrder/getStandardOrders', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•服务人员分页列表 POST /api/flexjob/standardOrder/getStandardOrderServers */
export async function getStandardOrderServers(
  body: API.GetStandardOrderServersQuery,
  options?: API.RequestConfig
) {
  return request<API.GetStandardOrderServersQueryResult>(
    '/api/flexjob/standardOrder/getStandardOrderServers',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•结算分页列表 POST /api/flexjob/standardOrder/getStandardOrderSettlements */
export async function getStandardOrderSettlements(
  body: API.GetStandardOrderSettlementsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetStandardOrderSettlementsQueryResult>(
    '/api/flexjob/standardOrder/getStandardOrderSettlements',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•供应商分页列表 POST /api/flexjob/standardOrder/getStandardOrderSupplierEnterprises */
export async function getStandardOrderSupplierEnterprises(
  body: API.GetStandardOrderSupplierEnterprisesQuery,
  options?: API.RequestConfig
) {
  return request<API.GetStandardOrderSupplierEnterprisesQueryResult>(
    '/api/flexjob/standardOrder/getStandardOrderSupplierEnterprises',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** æ ‡å‡†è®¢å•支付 POST /api/flexjob/standardOrder/payStandardOrder */
export async function payStandardOrder(
  body: API.PayStandardOrderCommand,
  options?: API.RequestConfig
) {
  return request<API.PayStandardOrderCommandResult>('/api/flexjob/standardOrder/payStandardOrder', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æ ‡å‡†è®¢å•服务确认 POST /api/flexjob/standardOrder/sureStandardOrder */
export async function sureStandardOrder(
  body: API.SureStandardOrderCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/flexjob/standardOrder/sureStandardOrder', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æ ‡å‡†è®¢å•确认预约 POST /api/flexjob/standardOrder/sureStandardOrderAppointment */
export async function sureStandardOrderAppointment(
  body: API.SureStandardOrderAppointmentCommand,
  options?: API.RequestConfig
) {
  return request<string>('/api/flexjob/standardOrder/sureStandardOrderAppointment', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/standardService.ts
@@ -2,6 +2,21 @@
// @ts-ignore
import { request } from '@/utils/request';
/** æ”¶è—æ ‡å‡†è®¢å•服务 POST /api/flexjob/standardService/collectionStandardService */
export async function collectionStandardService(
  body: API.CollectionStandardServiceCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/flexjob/standardService/collectionStandardService', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•服务详情 GET /api/flexjob/standardService/getStandardService */
export async function getStandardService(
  // å åŠ ç”Ÿæˆçš„Param类型 (非body参数swagger默认没有生成对象)
@@ -20,6 +35,24 @@
  );
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•服务评论分页列表 POST /api/flexjob/standardService/getStandardServiceComments */
export async function getStandardServiceComments(
  body: API.GetStandardServiceCommentsQuery,
  options?: API.RequestConfig
) {
  return request<API.GetStandardServiceCommentsQueryResult>(
    '/api/flexjob/standardService/getStandardServiceComments',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** æŸ¥è¯¢æ ‡å‡†è®¢å•服务分页列表 POST /api/flexjob/standardService/getStandardServices */
export async function getStandardServices(
  body: API.GetStandardServicesQuery,
@@ -52,3 +85,33 @@
    ...(options || {}),
  });
}
/** è®¾ç½®æ ‡å‡†è®¢å•服务是否推荐 PUT /api/flexjob/standardService/setStandardServiceRecommendStatus */
export async function setStandardServiceRecommendStatus(
  body: API.SetStandardServiceRecommendStatusCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/flexjob/standardService/setStandardServiceRecommendStatus', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** è®¾ç½®æ ‡å‡†è®¢å•服务发布状态 PUT /api/flexjob/standardService/setStandardServiceReleaseStatus */
export async function setStandardServiceReleaseStatus(
  body: API.SetStandardServiceReleaseStatusCommand,
  options?: API.RequestConfig
) {
  return request<number>('/api/flexjob/standardService/setStandardServiceReleaseStatus', {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
packages/services/apiV2/typings.d.ts
@@ -25,6 +25,43 @@
    contractEnd?: string;
  }
  interface AddStandardOrderCommand {
    /** æœåŠ¡Id */
    serviceId?: string;
    /** æœåŠ¡å */
    serviceName?: string;
    /** è§„æ ¼ */
    specId?: string;
    /** è§„格名称 */
    specName?: string;
    /** è§„格价格 */
    specPrice?: number;
    /** è§„格数量 */
    specNumber?: number;
    /** åœ°å€Id */
    addressId?: string;
    /** æœåŠ¡èµ·å§‹æ—¶é—´ */
    beginTime?: string;
    /** æœåŠ¡æˆªæ­¢æ—¶é—´ */
    endTime?: string;
    /** ä¾›åº”商Id */
    supplierEnterpriseId?: string;
    /** æœåŠ¡äººå‘˜Id */
    enterpriseEmployeeIds?: string[];
    /** å¤‡æ³¨ */
    remark?: string;
    payAccess?: EnumUserBankCardAccess;
    /** å®žä»˜é‡‘额 */
    payAmount?: number;
  }
  interface AddStandardOrderCommandResult {
    /** Id */
    id?: string;
    /** æ”¯ä»˜åœ°å€ */
    payUrl?: string;
  }
  interface AgainSureTaskSettlementOrderRosterCommand {
    /** åå•Id */
    id?: string;
@@ -35,6 +72,11 @@
    request?: CheckHealthQuery;
  }
  interface APIgetAdvertisementParams {
    /** Id */
    id?: string;
  }
  interface APIgetAliyunOSSAcsParams {
    /** èŽ·å–é˜¿é‡Œäº‘OSS授权信息 */
    request?: GetAliyunOSSAcsQuery;
@@ -123,6 +165,11 @@
    all?: boolean;
  }
  interface APIgetEnterpriseAddressParams {
    /** Id */
    id?: string;
  }
  interface APIgetEnterpriseContractTemplateSelectParams {
    /** ä¼ä¸šId */
    enterpriseId?: string;
@@ -312,6 +359,16 @@
    operatorToken?: string;
  }
  interface APIgetShowAdvertisementsParams {
    /** é¡µé¢ */
    page?: EnumAdvertisementPage;
  }
  interface APIgetStandardOrderParams {
    /** è®¢å•Id */
    id?: string;
  }
  interface APIgetStandardServiceParams {
    /** Id */
    id?: string;
@@ -596,6 +653,13 @@
    insuranceSupplierId?: string;
  }
  interface CancelStandardOrderAppointmentCommand {
    /** è®¢å•Id */
    id?: string;
    /** å–消原因 */
    appointmentCancelReason?: string;
  }
  interface ChangePhoneNumberCommand {
    /** æ‰‹æœºå·ç  */
    phoneNumber: string;
@@ -650,6 +714,8 @@
    checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
  }
  type ChooseWxmpPhoneNumberCommand = Record<string, any>;
  type ClearTaskCollectCommand = Record<string, any>;
  interface CloseEnterpriseWalletCommand {
@@ -658,6 +724,13 @@
    access?: EnumEnterpriseWalletAccess;
  }
  interface CollectionStandardServiceCommand {
    /** Id */
    ids?: string[];
    /** æ˜¯å¦æ”¶è— */
    isCollect?: boolean;
  }
  interface CollectTaskCommand {
    /** ä»»åŠ¡Id */
    ids?: string[];
@@ -681,6 +754,10 @@
    ids: string[];
  }
  interface DeleteEnterpriseAddressCommand {
    ids: string[];
  }
  interface DeleteMenuCommand {
    ids: string[];
  }
@@ -818,6 +895,18 @@
    enterpriseId?: string;
  }
  enum EnumAdvertisementPage {
    /**甲方小程序首页 */
    PartAWxmpHome = 10,
  }
  enum EnumAdvertisementStatus {
    /**展示中 */
    InProcess = 20,
    /**已下架 */
    Stopped = 100,
  }
  enum EnumBillingMethod {
    /**按月 */
    Month = 10,
@@ -963,6 +1052,8 @@
    Identity3 = 10,
    /**企业四要素 */
    Identity4 = 20,
    /**客户自认证 */
    Customer = 30,
  }
  enum EnumEnterpriseType {
@@ -1193,6 +1284,8 @@
    BestSign = 10,
    /**支付宝信任签 */
    AlipaySign = 20,
    /**客户自认证 */
    Customer = 30,
  }
  enum EnumResourceController {
@@ -1200,68 +1293,72 @@
    FlexJobServerDictionary = 0,
    /**标准订单服务 */
    FlexJobServerStandardService = 1,
    /**标准订单 */
    FlexJobServerStandardOrder = 2,
    /**任务 */
    FlexJobServerTask = 2,
    FlexJobServerTask = 3,
    /**任务人员 */
    FlexJobServerTaskUser = 3,
    FlexJobServerTaskUser = 4,
    /**任务验收 */
    FlexJobServerTaskCheckReceive = 4,
    FlexJobServerTaskCheckReceive = 5,
    /**投保产品 */
    FlexJobServerInsuranceProduct = 5,
    FlexJobServerInsuranceProduct = 6,
    /**企业投保产品 */
    FlexJobServerEnterpriseInsuranceProduct = 6,
    FlexJobServerEnterpriseInsuranceProduct = 7,
    /**广告 */
    CommonServerAdvertisement = 8,
    /**编号地址 */
    CommonServerCodeUrls = 7,
    CommonServerCodeUrls = 9,
    /**文件 */
    CommonServerFileUtils = 8,
    CommonServerFileUtils = 10,
    /**事件 */
    CommonServerEventUtils = 9,
    CommonServerEventUtils = 11,
    /**文字识别 */
    CommonServerOcrUtils = 10,
    CommonServerOcrUtils = 12,
    /**日志记录 */
    CommonServerLogRecords = 11,
    CommonServerLogRecords = 13,
    /**同步数据库 */
    CommonServerSyncDatabase = 12,
    CommonServerSyncDatabase = 14,
    /**短信工具 */
    CommonServerSmsUtils = 13,
    CommonServerSmsUtils = 15,
    /**配置 */
    CommonServerSettings = 14,
    CommonServerSettings = 16,
    /**已读 */
    CommonServerReadRecord = 15,
    CommonServerReadRecord = 17,
    /**微信小程序 */
    CommonServerWxmp = 16,
    CommonServerWxmp = 18,
    /**用户认证 */
    UserServerAuth = 17,
    UserServerAuth = 19,
    /**用户菜单 */
    UserServerMenu = 18,
    UserServerMenu = 20,
    /**用户资源 */
    UserServerResource = 19,
    UserServerResource = 21,
    /**用户角色 */
    UserServerRole = 20,
    UserServerRole = 22,
    /**用户信息 */
    UserServerUser = 21,
    UserServerUser = 23,
    /**用户钱包 */
    UserServerUserWallet = 22,
    UserServerUserWallet = 24,
    /**电子签 */
    UserServerElectronSign = 23,
    UserServerElectronSign = 25,
    /**用户简历 */
    UserServerUserResume = 24,
    UserServerUserResume = 26,
    /**企业信息 */
    UserServerEnterprise = 25,
    UserServerEnterprise = 27,
    /**企业钱包 */
    UserServerEnterpriseWallet = 26,
    UserServerEnterpriseWallet = 28,
    /**企业合作钱包 */
    UserServerEnterpriseCooperationWallet = 27,
    UserServerEnterpriseCooperationWallet = 29,
    /**灵工信息 */
    UserServerEnterpriseEmployee = 28,
    UserServerEnterpriseEmployee = 30,
    /**电子签 */
    ElectronSignServerElectronSign = 29,
    ElectronSignServerElectronSign = 31,
    /**短信 */
    ToolServerSms = 30,
    ToolServerSms = 32,
    /**小程序 */
    ToolServerWxmp = 31,
    ToolServerWxmp = 33,
    /**保险 */
    WaterDropCloudServerInsurance = 32,
    WaterDropCloudServerInsurance = 34,
  }
  enum EnumResourceMethod {
@@ -1321,6 +1418,40 @@
    Fail = 30,
  }
  enum EnumStandardOrderAppointmentStatus {
    /**待确认 */
    WaitSure = 10,
    /**待服务 */
    WaitServe = 20,
    /**已完成 */
    Completed = 30,
    /**已取消 */
    Cancelled = 40,
  }
  enum EnumStandardOrderPayStatus {
    /**待支付 */
    Wait = 10,
    /**已支付 */
    Completed = 20,
    /**已取消 */
    Cancelled = 30,
  }
  enum EnumStandardOrderSettlementStatus {
    /**待结算 */
    Wait = 10,
    /**已完成 */
    Completed = 20,
  }
  enum EnumStandardServiceRecommendStatus {
    /**未推荐 */
    No = 10,
    /**已推荐 */
    Yes = 20,
  }
  enum EnumStandardServiceReleaseStatus {
    /**发布中 */
    InProcess = 20,
@@ -1747,6 +1878,24 @@
    settlementTimeEnd?: string;
  }
  interface FriendlyResultAddStandardOrderCommandResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: AddStandardOrderCommandResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultBatchEnterpriseSignContractCommandResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
@@ -1875,6 +2024,42 @@
    timestamp?: number;
  }
  interface FriendlyResultGetAdvertisementQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetAdvertisementQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetAdvertisementsQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetAdvertisementsQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetAliyunOSSAcsQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
@@ -2181,6 +2366,42 @@
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseAddressesQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetEnterpriseAddressesQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseAddressQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetEnterpriseAddressQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseContractTemplateLogsQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
@@ -3027,6 +3248,150 @@
    timestamp?: number;
  }
  interface FriendlyResultGetStandardOrderAppointmentsQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardOrderAppointmentsQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardOrderPaysQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardOrderPaysQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardOrderQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardOrderQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardOrderServersQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardOrderServersQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardOrderSettlementsQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardOrderSettlementsQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardOrdersQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardOrdersQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardOrderSupplierEnterprisesQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardOrderSupplierEnterprisesQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardServiceCommentsQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: GetStandardServiceCommentsQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultGetStandardServiceQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
@@ -3388,6 +3753,24 @@
    timestamp?: number;
  }
  interface FriendlyResultHistoryQueryResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: HistoryQueryResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultImportEnterpriseEmployeesCommandResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
@@ -3614,6 +3997,25 @@
    timestamp?: number;
  }
  interface FriendlyResultListGetShowAdvertisementsQueryResultItem {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    /** æ•°æ® */
    data?: GetShowAdvertisementsQueryResultItem[];
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultListGetUserInfoRolesQueryResultItem {
    /** è·Ÿè¸ªId */
    traceId?: string;
@@ -3966,6 +4368,24 @@
    timestamp?: number;
  }
  interface FriendlyResultPayStandardOrderCommandResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** çŠ¶æ€ç  */
    code?: number;
    /** é”™è¯¯ç  */
    errorCode?: string;
    data?: PayStandardOrderCommandResult;
    /** æ‰§è¡ŒæˆåŠŸ */
    success?: boolean;
    /** é”™è¯¯ä¿¡æ¯ */
    msg?: any;
    /** é™„加数据 */
    extras?: any;
    /** æ—¶é—´æˆ³ */
    timestamp?: number;
  }
  interface FriendlyResultPersonalUserElectronSignCommandResult {
    /** è·Ÿè¸ªId */
    traceId?: string;
@@ -4093,6 +4513,68 @@
    timestamp?: number;
  }
  interface GetAdvertisementLogsQuery {
    /** Id */
    id?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetAdvertisementQueryResult {
    /** Id */
    id?: string;
    page?: EnumAdvertisementPage;
    /** å¹¿å‘Šåç§° */
    name?: string;
    /** å¼€å§‹æ—¶é—´ */
    beginTime?: string;
    /** ç»“束时间 */
    endTime?: string;
    /** å¹¿å‘Šå›¾ç‰‡ */
    file?: string;
    /** å¹¿å‘Šé“¾æŽ¥ */
    url?: string;
    status?: EnumAdvertisementStatus;
    /** æŽ’序 */
    sort?: number;
  }
  interface GetAdvertisementsQuery {
    /** å…³é”®å­—(广告名称) */
    keywords?: string;
    /** å¹¿å‘Šå¼€å§‹æ—¶é—´ */
    beginTime?: string;
    /** å¹¿å‘Šç»“束时间 */
    endTime?: string;
    page?: EnumAdvertisementPage;
    status?: EnumAdvertisementStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetAdvertisementsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetAdvertisementsQueryResultItem[];
  }
  interface GetAdvertisementsQueryResultItem {
    /** Id */
    id?: string;
    page?: EnumAdvertisementPage;
    /** å¹¿å‘Šåç§° */
    name?: string;
    /** å¼€å§‹æ—¶é—´ */
    beginTime?: string;
    /** ç»“束时间 */
    endTime?: string;
    /** å¹¿å‘Šå›¾ç‰‡ */
    file?: string;
    /** å¹¿å‘Šé“¾æŽ¥ */
    url?: string;
    status?: EnumAdvertisementStatus;
    /** æŽ’序 */
    sort?: number;
  }
  type GetAlipayNotifyCommand = Record<string, any>;
  type GetAliyunOSSAcsQuery = Record<string, any>;
@@ -4576,6 +5058,10 @@
    checkReceiveMethods?: EnumTaskCheckReceiveMethod[];
    /** æ˜¯å¦å†…部任务 */
    isInternal?: boolean;
    /** è”系人 */
    contacts?: string;
    /** è”系电话 */
    contactPhoneNumber?: string;
  }
  interface GetCodeUrlQueryResult {
@@ -5005,6 +5491,60 @@
    mergeSignCost?: number;
  }
  interface GetEnterpriseAddressesQuery {
    pageModel?: PagedListQueryPageModel;
  }
  interface GetEnterpriseAddressesQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetEnterpriseAddressesQueryResultItem[];
  }
  interface GetEnterpriseAddressesQueryResultItem {
    /** Id */
    id?: string;
    /** å§“名 */
    name?: string;
    /** è”系电话 */
    contactPhoneNumber?: string;
    /** çœå¸‚区+详细地址+门牌号 */
    addressDetail?: string;
    /** æ˜¯å¦é»˜è®¤ */
    isDefault?: boolean;
  }
  interface GetEnterpriseAddressQueryResult {
    /** Id */
    id?: string;
    /** å§“名 */
    name?: string;
    /** è”系电话 */
    contactPhoneNumber?: string;
    /** çœä»½ç¼–号 */
    provinceCode?: string;
    /** çœä»½ */
    provinceContent?: string;
    /** åŸŽå¸‚编号 */
    cityCode?: string;
    /** åŸŽå¸‚ */
    cityContent?: string;
    /** åŒºç¼–号 */
    areaCode?: string;
    /** åŒº */
    areaContent?: string;
    /** è¯¦ç»†åœ°å€ */
    addressName?: string;
    /** é—¨ç‰Œå· */
    addressDetail?: string;
    /** ç»åº¦ */
    longitude?: number;
    /** çº¬åº¦ */
    latitude?: number;
    /** æ˜¯å¦é»˜è®¤ */
    isDefault?: boolean;
  }
  interface GetEnterpriseContractTemplateLogsQuery {
    /** æ¨¡æ¿Id */
    id?: string;
@@ -5297,13 +5837,22 @@
  interface GetEnterpriseLoginInfoQueryResult {
    /** Id */
    id?: string;
    type?: EnumUserType;
    /** å¤´åƒ */
    avatar?: string;
    /** å§“名 */
    name?: string;
    /** æ‰‹æœºå· */
    contactPhoneNumber?: string;
    gender?: EnumUserGender;
    /** è¥ä¸šæ‰§ç…§ç…§ç‰‡ */
    licenseImage?: string;
    /** ä¼ä¸šId */
    enterpriseId?: string;
    /** ä¼ä¸šå…¨ç§° */
    enterpriseName?: string;
    /** ç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç  */
    societyCreditCode?: string;
    /** ä¼ä¸šæ˜¯å¦å®žå */
    enterpriseIsReal?: boolean;
    /** è§’色 */
@@ -5321,6 +5870,7 @@
  interface GetEnterpriseQueryResult {
    /** Id */
    id?: string;
    type?: EnumEnterpriseType;
    /** ä¼ä¸šå…¨ç§° */
    enterpriseName?: string;
    /** ç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç  */
@@ -5353,6 +5903,15 @@
    userName?: string;
    /** åœ¨æ‹›å²—位数量 */
    taskCount?: number;
    cooperationStatus?: EnumEnterpriseCooperationStatus;
    signStatus?: EnumEnterpriseCooperationSignStatus;
    /** åˆä½œåè®® */
    cooperationAgreementUrl?: string;
    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
    /** æœåŠ¡è´¹ */
    serviceFeeRate?: number;
    /** å‘票税点 */
    invoiceTaxPointRate?: number;
  }
  type GetEnterpriseReceiveAccountQuery = Record<string, any>;
@@ -5409,6 +5968,11 @@
    industryTypeContent?: string;
    /** æ˜¯å¦å·²é…ç½® */
    isConfigured?: boolean;
    /** å…³è”服务 */
    standardServiceCount?: number;
    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
    /** æœåŠ¡è´¹ */
    serviceFeeRate?: number;
  }
  interface GetEnterpriseWalletAccessSelectQueryOption {
@@ -7169,6 +7733,17 @@
    ereceiptDownloadOssUrl?: string;
  }
  interface GetShowAdvertisementsQueryResultItem {
    /** Id */
    id?: string;
    /** å¹¿å‘Šåç§° */
    name?: string;
    /** å¹¿å‘Šå›¾ç‰‡ */
    file?: string;
    /** å¹¿å‘Šé“¾æŽ¥ */
    url?: string;
  }
  interface GetSmsLogsQuery {
    /** åˆ›å»ºæ—¶é—´-起始 */
    createdTimeBegin?: string;
@@ -7254,6 +7829,346 @@
    signName?: string;
  }
  interface GetStandardOrderAppointmentsQuery {
    appointmentStatus?: EnumStandardOrderAppointmentStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetStandardOrderAppointmentsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetStandardOrderAppointmentsQueryResultItem[];
  }
  interface GetStandardOrderAppointmentsQueryResultItem {
    /** è®¢å•Id */
    id?: string;
    /** æœåŠ¡åç§° */
    serviceName?: string;
    /** å®žä»˜é‡‘额 */
    payAmount?: number;
    /** æœåŠ¡èµ·å§‹æ—¶é—´ */
    beginTime?: string;
    /** æœåŠ¡æˆªæ­¢æ—¶é—´ */
    endTime?: string;
    /** æœåŠ¡åœ°å€ï¼ˆçœå¸‚åŒº+详细地址+门牌号) */
    addressDetail?: string;
    /** æœåŠ¡æœºæž„ */
    supplierEnterpriseName?: string;
    /** æœåŠ¡äººå‘˜ */
    serverNames?: string[];
    appointmentStatus?: EnumStandardOrderAppointmentStatus;
  }
  interface GetStandardOrderPaysQuery {
    payStatus?: EnumStandardOrderPayStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetStandardOrderPaysQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetStandardOrderPaysQueryResultItem[];
  }
  interface GetStandardOrderPaysQueryResultItem {
    /** è®¢å•Id */
    id?: string;
    /** æœåŠ¡åç§° */
    serviceName?: string;
    /** å®žä»˜é‡‘额 */
    payAmount?: number;
    /** æœåŠ¡èµ·å§‹æ—¶é—´ */
    beginTime?: string;
    /** æœåŠ¡æˆªæ­¢æ—¶é—´ */
    endTime?: string;
    /** æœåŠ¡åœ°å€ï¼ˆçœå¸‚åŒº+详细地址+门牌号) */
    addressDetail?: string;
    /** æœåŠ¡æœºæž„ */
    supplierEnterpriseName?: string;
    /** æœåŠ¡äººå‘˜ */
    serverNames?: string[];
    payStatus?: EnumStandardOrderPayStatus;
  }
  interface GetStandardOrderQueryResult {
    /** è®¢å•Id */
    id?: string;
    /** æœåŠ¡Id */
    serviceId?: string;
    /** æœåŠ¡å */
    serviceName?: string;
    /** ç”²æ–¹ä¼ä¸šId */
    partyAEnterpriseId?: string;
    /** ç”²æ–¹ä¼ä¸š */
    partyAEnterpriseName?: string;
    /** è§„æ ¼Id */
    specId?: string;
    /** è§„格名称 */
    specName?: string;
    /** è§„格价格 */
    specPrice?: number;
    /** è§„格数量 */
    specNumber?: number;
    /** åœ°å€Id */
    addressId?: string;
    /** å§“名 */
    name?: string;
    /** è”系电话 */
    contactPhoneNumber?: string;
    /** çœä»½ç¼–号 */
    provinceCode?: string;
    /** çœä»½ */
    provinceContent?: string;
    /** åŸŽå¸‚编号 */
    cityCode?: string;
    /** åŸŽå¸‚ */
    cityContent?: string;
    /** åŒºç¼–号 */
    areaCode?: string;
    /** åŒº */
    areaContent?: string;
    /** è¯¦ç»†åœ°å€ */
    addressName?: string;
    /** é—¨ç‰Œå· */
    addressDetail?: string;
    /** ç»åº¦ */
    longitude?: number;
    /** çº¬åº¦ */
    latitude?: number;
    /** æœåŠ¡èµ·å§‹æ—¶é—´ */
    beginTime?: string;
    /** æœåŠ¡æˆªæ­¢æ—¶é—´ */
    endTime?: string;
    /** ä¾›åº”商Id */
    supplierEnterpriseId?: string;
    /** ä¾›åº”商 */
    supplierEnterpriseName?: string;
    /** æœåŠ¡äººå‘˜Id */
    serverId?: string;
    /** æœåŠ¡äººå‘˜å§“å */
    serverName?: string;
    /** æœåŠ¡äººå‘˜è”ç³»ç”µè¯ */
    serverContactPhoneNumber?: string;
    /** å¤‡æ³¨ */
    remark?: string;
    payAccess?: EnumUserBankCardAccess;
    appointmentStatus?: EnumStandardOrderAppointmentStatus;
    /** é¢„约完成/取消时间 */
    appointmentCompletedTime?: string;
    /** å–消原因 */
    appointmentCancelReason?: string;
    payStatus?: EnumStandardOrderPayStatus;
    /** å®žä»˜é‡‘额 */
    payAmount?: number;
    /** æ”¯ä»˜æ—¶é—´ */
    payTime?: string;
    settlementStatus?: EnumStandardOrderSettlementStatus;
    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
    /** æœåŠ¡è´¹ */
    serviceFee?: number;
    /** å®žæ”¶é‡‘额 */
    receiveAmount?: number;
    /** ç»“算金额 */
    settlementAmount?: number;
  }
  interface GetStandardOrderServersQuery {
    /** è®¢å•Id */
    orderId?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetStandardOrderServersQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetStandardOrderServersQueryResultItem[];
  }
  interface GetStandardOrderServersQueryResultItem {
    /** Id */
    id?: string;
    /** å¤´åƒ */
    avatar?: string;
    /** å§“名 */
    name?: string;
    gender?: EnumUserGender;
    /** æ˜¯å¦å®žå */
    isReal?: boolean;
    realMethod?: EnumUserRealMethod;
    /** å¹´é¾„ */
    age?: number;
    /** èº«ä»½ç¼–号 */
    personalIdentityCode?: string;
    /** èº«ä»½ */
    personalIdentityContent?: string;
    /** å­¦åŽ†ç¼–å· */
    educationalBackgroundCode?: string;
    /** å­¦åކ */
    educationalBackgroundContent?: string;
    /** ä¸Šå²—次数 */
    taskCount?: number;
    /** å·¥ä½œèµ„历 */
    workSeniority?: string;
    /** å·¥ä½œç»éªŒ */
    workExperience?: string;
  }
  interface GetStandardOrderSettlementsQuery {
    /** å…³é”®å­—(订单号/服务名/供应商) */
    keywords?: string;
    settlementStatus?: EnumStandardOrderSettlementStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetStandardOrderSettlementsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetStandardOrderSettlementsQueryResultItem[];
  }
  interface GetStandardOrderSettlementsQueryResultItem {
    /** è®¢å•Id */
    id?: string;
    /** è®¢å•号 */
    code?: string;
    /** æœåŠ¡åç§° */
    serviceName?: string;
    /** æœåŠ¡å•å· */
    serviceCode?: string;
    /** ç”²æ–¹ä¼ä¸šId */
    partyAEnterpriseId?: string;
    /** ç”²æ–¹ä¼ä¸š */
    partyAEnterpriseName?: string;
    /** æœåŠ¡åœ°å€ï¼ˆçœå¸‚åŒº+详细地址+门牌号) */
    addressDetail?: string;
    /** æœåŠ¡æœºæž„ */
    supplierEnterpriseName?: string;
    /** æœåŠ¡äººå‘˜ */
    serverNames?: string[];
    /** å®žä»˜é‡‘额 */
    payAmount?: number;
    /** å®žæ”¶é‡‘额 */
    receiveAmount?: number;
    /** æœåŠ¡è´¹ */
    serviceFee?: number;
    /** ç»“算金额 */
    settlementAmount?: number;
    /** ç»“算单号 */
    settlementCode?: string;
    settlementStatus?: EnumStandardOrderSettlementStatus;
    /** ç»“ç®—æ—¶é—´ */
    settlementTime?: string;
    /** æœåŠ¡èµ·å§‹æ—¶é—´ */
    beginTime?: string;
    /** æœåŠ¡æˆªæ­¢æ—¶é—´ */
    endTime?: string;
  }
  interface GetStandardOrdersQuery {
    /** å…³é”®å­—(订单号/服务名) */
    keywords?: string;
    /** ä¸‹å•æ—¶é—´-起始 */
    createdTimeBegin?: string;
    /** ä¸‹å•æ—¶é—´-截止 */
    createdTimeEnd?: string;
    /** æ”¯ä»˜æ—¶é—´-起始 */
    payTimeBegin?: string;
    /** æ”¯ä»˜æ—¶é—´-截止 */
    payTimeEnd?: string;
    appointmentStatus?: EnumStandardOrderAppointmentStatus;
    payStatus?: EnumStandardOrderPayStatus;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetStandardOrdersQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetStandardOrdersQueryResultItem[];
  }
  interface GetStandardOrdersQueryResultItem {
    /** Id */
    id?: string;
    /** è®¢å•号 */
    code?: string;
    /** æœåŠ¡å */
    serviceName?: string;
    /** æœåŠ¡å•å· */
    serviceCode?: string;
    /** ä¸‹å•æ—¶é—´ */
    createdTime?: string;
    /** æ”¯ä»˜æ—¶é—´ */
    payTime?: string;
    appointmentStatus?: EnumStandardOrderAppointmentStatus;
    payStatus?: EnumStandardOrderPayStatus;
    settlementStatus?: EnumStandardOrderSettlementStatus;
    /** ç”²æ–¹ä¼ä¸šId */
    partyAEnterpriseId?: string;
    /** ç”²æ–¹ä¼ä¸š */
    partyAEnterpriseName?: string;
    /** è”系电话 */
    contactPhoneNumber?: string;
    /** å®žä»˜é‡‘额 */
    payAmount?: number;
    /** å®žæ”¶é‡‘额 */
    receiveAmount?: number;
    /** æœåŠ¡è´¹ */
    serviceFee?: number;
    /** ç»“算金额 */
    settlementAmount?: number;
  }
  interface GetStandardOrderSupplierEnterprisesQuery {
    /** è®¢å•Id */
    orderId?: string;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetStandardOrderSupplierEnterprisesQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetStandardOrderSupplierEnterprisesQueryResultItem[];
  }
  interface GetStandardOrderSupplierEnterprisesQueryResultItem {
    /** Id */
    id?: string;
    /** å¤´åƒ */
    avatar?: string;
    /** ä¼ä¸šå…¨ç§° */
    enterpriseName?: string;
    /** æœåŠ¡äººå‘˜ */
    serverCount?: number;
    /** æœåŠ¡äººæ¬¡ */
    serviceCount?: number;
    /** ç»è¥èŒƒå›´ */
    mainBusiness?: string;
  }
  interface GetStandardServiceCommentsQuery {
    pageModel?: PagedListQueryPageModel;
  }
  interface GetStandardServiceCommentsQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: GetStandardServiceCommentsQueryResultItem[];
  }
  interface GetStandardServiceCommentsQueryResultItem {
    /** Id */
    id?: string;
    /** ç”¨æˆ·å */
    userName?: string;
    /** è¯„分 */
    star?: number;
    /** å†…容 */
    content?: string;
    /** åˆ›å»ºæ—¶é—´ */
    createdTime?: string;
  }
  interface GetStandardServiceQueryResult {
    /** Id */
    id?: string;
@@ -7271,6 +8186,8 @@
    code?: string;
    /** è§„æ ¼ */
    specs?: GetStandardServiceQueryResultSpec[];
    /** æœ€ä½Žè§„格价格 */
    minSpecPrice?: number;
    /** å›¾ç‰‡ */
    files?: string[];
    /** æœåŠ¡æè¿° */
@@ -7278,6 +8195,9 @@
    /** ä¾›åº”商 */
    suppliers?: GetStandardServiceQueryResultSupplier[];
    releaseStatus?: EnumStandardServiceReleaseStatus;
    recommendStatus?: EnumStandardServiceRecommendStatus;
    /** æ˜¯å¦æ”¶è— */
    isCollection?: boolean;
  }
  interface GetStandardServiceQueryResultSpec {
@@ -7313,11 +8233,16 @@
  interface GetStandardServicesQuery {
    /** å…³é”®å­—(服务名/Id) */
    keywords?: string;
    /** å²—位编号 */
    jobCode?: string;
    /** åˆ›å»ºæ—¶é—´-起始 */
    createdTimeBegin?: string;
    /** åˆ›å»ºæ—¶é—´-截止 */
    createdTimeEnd?: string;
    releaseStatus?: EnumTaskReleaseStatus;
    releaseStatus?: EnumStandardServiceReleaseStatus;
    recommendStatus?: EnumStandardServiceRecommendStatus;
    /** æ˜¯å¦æ”¶è— */
    isCollected?: boolean;
    pageModel?: PagedListQueryPageModel;
  }
@@ -7330,15 +8255,22 @@
  interface GetStandardServicesQueryResultItem {
    /** Id */
    id?: string;
    /** é¦–个图片 */
    file?: string;
    /** è¡Œä¸šç±»åˆ« */
    industryCategoryContent?: string;
    /** å²—位 */
    jobContent?: string;
    /** æœåŠ¡å */
    name?: string;
    /** æœ€ä½Žè§„格价格 */
    minSpecPrice?: number;
    /** æœåŠ¡å•å· */
    code?: string;
    releaseStatus?: EnumStandardServiceReleaseStatus;
    recommendStatus?: EnumStandardServiceRecommendStatus;
    /** æ˜¯å¦æ”¶è— */
    isCollection?: boolean;
    /** åˆ›å»ºæ—¶é—´ */
    createdTime?: string;
    /** ä¾›åº”商数量 */
@@ -8162,6 +9094,24 @@
    hiddenAlipay?: boolean;
  }
  interface HistoryQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** æ•°æ® */
    data?: HistoryQueryResultItem[];
  }
  interface HistoryQueryResultItem {
    /** è·Ÿè¸ªId */
    traceId?: string;
    /** æ“ä½œäºº */
    createdUser?: string;
    /** æ“ä½œæ—¶é—´ */
    createdTime?: string;
    operate?: EnumDbAuditOperate;
    /** æ“ä½œå†…容 */
    content?: string[];
  }
  interface ImportEnterpriseEmployeesCommand {
    /** Excel地址 */
    excelUrl?: string;
@@ -8444,6 +9394,30 @@
    enterpriseType?: EnumEnterpriseType;
  }
  interface PayStandardOrderCommand {
    /** è®¢å•Id */
    id?: string;
  }
  interface PayStandardOrderCommandResult {
    /** æ—¶é—´æˆ³
从 1970 å¹´ 1 æœˆ 1 æ—¥ 00:00:00 è‡³ä»Šçš„秒数,即当前的时间 */
    timestamp?: string;
    /** éšæœºå­—符串
长度为32个字符以下 */
    nonceStr?: string;
    /** ç»Ÿä¸€ä¸‹å•接口返回的 prepay_id å‚数值
提交格式如:prepay_id=*** */
    package?: string;
    /** ç­¾åç®—法,应与后台下单时的值一致
MD5 ä»…在 v2 ç‰ˆæœ¬æŽ¥å£é€‚用
HMAC-SHA256 ä»…在 v2 ç‰ˆæœ¬æŽ¥å£é€‚用
RSA ä»…在 v3 ç‰ˆæœ¬æŽ¥å£é€‚用 */
    signType?: string;
    /** ç­¾åï¼Œå…·ä½“见微信支付文档 */
    paySign?: string;
  }
  interface PersonalUserElectronSignCommand {
    /** çµå·¥Id(二选一) */
    id?: string;
@@ -8576,6 +9550,24 @@
    taskInfoId?: string;
  }
  interface SaveAdvertisementCommand {
    page?: EnumAdvertisementPage;
    /** å¹¿å‘Šåç§° */
    name?: string;
    /** å¼€å§‹æ—¶é—´ */
    beginTime?: string;
    /** ç»“束时间 */
    endTime?: string;
    /** å¹¿å‘Šå›¾ç‰‡ */
    file?: string;
    /** å¹¿å‘Šé“¾æŽ¥ */
    url?: string;
    /** æŽ’序 */
    sort?: number;
    /** Id */
    id?: string;
  }
  interface SaveCodeUrlCommand {
    scene?: EnumCodeUrlScene;
    /** åœ°å€ */
@@ -8691,6 +9683,31 @@
    id?: string;
  }
  interface SaveEnterpriseAddressCommand {
    /** å§“名 */
    name?: string;
    /** è”系电话 */
    contactPhoneNumber?: string;
    /** çœä»½ç¼–号 */
    provinceCode?: string;
    /** åŸŽå¸‚编号 */
    cityCode?: string;
    /** åŒºç¼–号 */
    areaCode?: string;
    /** è¯¦ç»†åœ°å€ */
    addressName?: string;
    /** é—¨ç‰Œå· */
    addressDetail?: string;
    /** ç»åº¦ */
    longitude?: number;
    /** çº¬åº¦ */
    latitude?: number;
    /** æ˜¯å¦é»˜è®¤ */
    isDefault?: boolean;
    /** Id */
    id?: string;
  }
  interface SaveEnterpriseCommand {
    /** ä¼ä¸šå…¨ç§° */
    enterpriseName: string;
@@ -8718,6 +9735,15 @@
    userName?: string;
    /** å¯†ç  */
    password?: string;
    cooperationStatus?: EnumEnterpriseCooperationStatus;
    signStatus?: EnumEnterpriseCooperationSignStatus;
    /** åˆä½œåè®® */
    cooperationAgreementUrl?: string;
    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
    /** æœåŠ¡è´¹ */
    serviceFeeRate?: number;
    /** å‘票税点 */
    invoiceTaxPointRate?: number;
    /** Id */
    id?: string;
  }
@@ -9298,6 +10324,12 @@
    relationId?: string;
  }
  interface SetAdvertisementStatusCommand {
    /** Id */
    ids?: string[];
    status?: EnumAdvertisementStatus;
  }
  interface SetDictionaryDataIsDisabledCommand {
    ids?: string[];
    /** æ˜¯å¦å·²ç¦ç”¨ */
@@ -9327,6 +10359,21 @@
    insuranceSupplierAccount?: string;
  }
  interface SetEnterpriseLoginInfoCommand {
    /** å¤´åƒ */
    avatar?: string;
    /** å§“名 */
    name?: string;
    /** è¥ä¸šæ‰§ç…§ç…§ç‰‡ */
    licenseImage?: string;
    /** ä¼ä¸šå…¨ç§° */
    enterpriseName?: string;
    /** ç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç  */
    societyCreditCode?: string;
    /** æ‰‹æœºå· */
    contactPhoneNumber?: string;
  }
  interface SetEnterpriseSmsSettingCommand {
    /** Id */
    id?: string;
@@ -9370,6 +10417,18 @@
    userInfoIds?: string[];
  }
  interface SetStandardServiceRecommendStatusCommand {
    /** Id */
    ids?: string[];
    recommendStatus?: EnumStandardServiceRecommendStatus;
  }
  interface SetStandardServiceReleaseStatusCommand {
    /** Id */
    ids?: string[];
    releaseStatus?: EnumStandardServiceReleaseStatus;
  }
  interface SetTaskInfoRecommendStatusCommand {
    /** Id */
    ids?: string[];
@@ -9507,6 +10566,20 @@
    remark?: string;
  }
  interface SureStandardOrderAppointmentCommand {
    /** è®¢å•Id */
    id?: string;
  }
  interface SureStandardOrderCommand {
    /** è®¢å•Id */
    id?: string;
    /** è¯„分 */
    commentStar?: number;
    /** è¯„ä»· */
    commentContent?: string;
  }
  interface SureTaskSettlementCommand {
    /** ä»»åŠ¡Id */
    taskInfoId?: string;