wupengfei
昨天 c2463c02a17f92df55ec77ed2da3fb724290c072
fix: bug
9个文件已修改
166 ■■■■ 已修改文件
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/constants/router.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/hooks/user.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/mine/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/wallet/unboundAlipay/InnerPage.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/List/IncomeDetailListItem.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/enterpriseEmployee.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/services/apiV2/typings.d.ts 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
@@ -22,7 +22,7 @@
    ></ProTabPane>
  </ProTabs>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list"
    scrollViewClassName="common-infinite-scroll-list payroll-manage-list"
    v-bind="infiniteLoadingProps"
    :key="queryState.paymentStatus"
  >
@@ -144,4 +144,17 @@
<style lang="scss">
@import '@/styles/common.scss';
.payrollManage-page-wrapper {
  .payroll-manage-list {
    .income-detail-list-item-inner {
      display: flex;
      flex-direction: column;
      background: #ffffff;
      border-radius: 12px;
      padding: 40px;
      margin-bottom: 24px;
    }
  }
}
</style>
apps/cMiniApp/src/constants/router.ts
@@ -41,7 +41,7 @@
  mineWallet = '/subpackages/wallet/mineWallet/mineWallet',
  unboundBankCard = '/subpackages/wallet/unboundBankCard/unboundBankCard',
  unboundAlipay = '/subpackages/wallet/unboundBankCard/unboundAlipay',
  unboundAlipay = '/subpackages/wallet/unboundAlipay/unboundAlipay',
  bindBankCard = '/subpackages/wallet/bindBankCard/bindBankCard',
  incomeDetail = '/subpackages/wallet/incomeDetail/incomeDetail',
  incomeDetailInfo = '/subpackages/wallet/incomeDetailInfo/incomeDetailInfo',
apps/cMiniApp/src/hooks/user.ts
@@ -29,6 +29,14 @@
    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);
  });
  return {
    user: userInfo,
    userDetail: userDetail,
@@ -37,6 +45,8 @@
    locationCity,
    userId,
    isBindBank,
    isBindAlipay,
    isBindWechat,
  };
}
apps/cMiniApp/src/pages/mine/index.vue
@@ -71,7 +71,7 @@
            </div>
          </div>
          <div class="mine-balance-content-item">
            <div class="mine-balance-content-item-title">可提现</div>
            <div class="mine-balance-content-item-title">已发放</div>
            <div class="mine-balance-content-item-money withdraw">
              ¥{{ toThousand(userDetail?.balance ?? 0) }}
            </div>
apps/cMiniApp/src/subpackages/wallet/mineWallet/InnerPage.vue
@@ -12,6 +12,20 @@
        </div>
      </template>
    </ListItem>
    <ListItem title="支付宝" @click="goBankAlipay">
      <template #extra>
        <div class="bind-bank-card">
          {{ isBindAlipay ? '已绑定' : '未绑定、立即绑定' }}
        </div>
      </template>
    </ListItem>
    <ListItem title="微信">
      <template #extra>
        <div class="bind-bank-card">
          {{ '已绑定' }}
        </div>
      </template>
    </ListItem>
  </List>
</template>
@@ -24,7 +38,7 @@
  name: 'InnerPage',
});
const { userDetail, isBindBank } = useUser();
const { userDetail, isBindBank, isBindAlipay, isBindWechat } = useUser();
function goIncomeDetail() {
  Taro.navigateTo({
@@ -48,6 +62,15 @@
  },
  { message: '完成实名认证后才可进行银行卡绑定' }
);
const goBankAlipay = useAccessReal(
  () => {
    Taro.navigateTo({
      url: `${isBindAlipay.value ? RouterPath.bindBankCard : RouterPath.unboundAlipay}`,
    });
  },
  { message: '完成实名认证后才可进行支付宝绑定' }
);
</script>
<style lang="scss">
apps/cMiniApp/src/subpackages/wallet/unboundAlipay/InnerPage.vue
@@ -16,11 +16,8 @@
<script setup lang="ts">
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { ProFormCaptcha } from 'senin-mini/components';
import { FormValidator, Message } from '@12333/utils';
import { Message } from '@12333/utils';
import * as userServices from '@12333/services/apiV2/user';
import Taro from '@tarojs/taro';
import { useQueryClient } from '@tanstack/vue-query';
import { EnumUserBankCardAccess } from '@12333/constants';
const { userDetail } = useUser();
@@ -31,35 +28,12 @@
const form = reactive({
  name: userDetail.value?.name ?? '',
  identity: userDetail.value?.identity ?? '',
  phoneNumber: '',
  code: '',
  bank: '',
  bankBranch: '',
  verifyCode: '',
});
const rules = reactive<FormRules>({
  code: [
    { required: true, message: '请输入银行卡号' },
    { message: '请输入正确的银行卡号', validator: FormValidator.validatorBankCard },
  ],
  bank: [{ required: true, message: '请输入开户行' }],
  phoneNumber: [
    { required: true, message: '请填写手机号码' },
    { message: '请输入正确的手机号码', validator: FormValidator.validatorPhoneNumber },
  ],
  verifyCode: [{ required: true, message: '请输入验证码' }],
  code: [{ required: true, message: '请输入支付宝账号' }],
});
async function onGetCaptcha(phoneNumber: string) {
  await userServices.sendSavePersonalUserBankCardVerifyCode(
    {
      phoneNumber: form.phoneNumber,
    },
    { showLoading: false }
  );
}
const formRef = ref<any>(null);
function handleConfirm() {
@@ -75,10 +49,7 @@
  try {
    let params: API.SavePersonalUserBankCardCommand = {
      code: form.code,
      bank: form.bank,
      phoneNumber: form.phoneNumber,
      verifyCode: form.verifyCode,
      access: EnumUserBankCardAccess.Bank,
      access: EnumUserBankCardAccess.AliPay,
    };
    let res = await userServices.savePersonalUserBankCard(params);
    if (res) {
packages/components/src/List/IncomeDetailListItem.vue
@@ -44,12 +44,10 @@
  padding: 0 boleGetCssVar('size', 'body-padding-h');
  .income-detail-list-item-inner {
    padding: 24px 0 18px;
    border-bottom: 1px solid #f6f6f6;
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border-radius: 12px;
    padding: 40px;
    margin-bottom: 24px;
    &.border-none {
      border-bottom: none;
packages/services/apiV2/enterpriseEmployee.ts
@@ -2,6 +2,24 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 企业批量签约合同 POST /api/user/enterpriseEmployee/batchEnterpriseSignContract */
export async function batchEnterpriseSignContract(
  body: API.BatchEnterpriseSignContractCommand,
  options?: API.RequestConfig
) {
  return request<API.BatchEnterpriseSignContractCommandResult>(
    '/api/user/enterpriseEmployee/batchEnterpriseSignContract',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 编辑灵工信息 POST /api/user/enterpriseEmployee/editEnterpriseEmployee */
export async function editEnterpriseEmployee(
  body: API.EditEnterpriseEmployeeCommand,
packages/services/apiV2/typings.d.ts
@@ -398,6 +398,29 @@
    address?: string;
  }
  interface BatchEnterpriseSignContractCommand {
    /** 灵工Id */
    ids?: string[];
  }
  interface BatchEnterpriseSignContractCommandResult {
    /** 签约成功灵工Id */
    successIds?: string[];
    /** 签约失败的灵工信息 */
    errors?: BatchEnterpriseSignContractCommandResultError[];
  }
  interface BatchEnterpriseSignContractCommandResultError {
    /** 姓名 */
    name?: string;
    /** 手机号 */
    contactPhoneNumber?: string;
    /** 身份证号 */
    identity?: string;
    /** 错误消息 */
    errorMessages?: string;
  }
  interface BindWxmpUserInfoCommand {
    /** 访问令牌 */
    accessToken: string;
@@ -1358,6 +1381,24 @@
  interface ExportTaskSettlementOrderRostersCommand {
    /** 结算订单Id */
    id?: string;
  }
  interface FriendlyResultBatchEnterpriseSignContractCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: BatchEnterpriseSignContractCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultBoolean {
@@ -3833,6 +3874,12 @@
    bindProperty?: string;
    /** 是否必填 */
    required?: boolean;
    /** 坐标X */
    x?: number;
    /** 坐标Y */
    y?: number;
    /** 页码 */
    page?: number;
  }
  type GetCurrentLogierMenusQuery = Record<string, any>;
@@ -6999,6 +7046,12 @@
    bindProperty?: string;
    /** 是否必填 */
    required?: boolean;
    /** 坐标X */
    x?: number;
    /** 坐标Y */
    y?: number;
    /** 页码 */
    page?: number;
  }
  interface SaveDictionaryCategoryCommand {