zhengyiming
3 天以前 23b5582be8bfadad2ef9ee352dc61644474abe55
fix: bug
3个文件已修改
139 ■■■■ 已修改文件
apps/bMiniApp/project.private.config.json 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollChange/InnerPage.vue 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.private.config.json
@@ -23,6 +23,27 @@
        "miniprogram": {
            "list": [
                {
                    "name": "发薪修改",
                    "pathName": "subpackages/payrollManage/payrollChange/payrollChange",
                    "query": "orderRosterId=5262960e-a190-4419-9943-08de11389ea2&settleId=225c2ed0-aefc-43aa-ff08-08de11385920&operatorToken=04e6c650-4240-4fc4-8ae6-7e96231780b2",
                    "scene": null,
                    "launchMode": "default"
                },
                {
                    "name": "发薪详情",
                    "pathName": "subpackages/payrollManage/payrollManageDetail/payrollManageDetail",
                    "query": "id=225c2ed0-aefc-43aa-ff08-08de11385920&operatorToken=5b571348-e388-4ce1-b718-baa0257184de",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "验收详情",
                    "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail",
                    "query": "id=d1061ab6-9431-49cd-8840-08de0f9d7fb0&date=2025-10-22&checkReceiveStatus=20",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "发布任务",
                    "pathName": "subpackages/task/publishTask/publishTask",
                    "query": "",
@@ -33,13 +54,6 @@
                    "name": "验收管理",
                    "pathName": "subpackages/task/taskCheck/taskCheck",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "验收详情",
                    "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail",
                    "query": "id=927b9898-1e9f-4aec-99aa-08ddf4e125c9&date=2025-10-19&checkReceiveStatus=10",
                    "launchMode": "default",
                    "scene": null
                }
apps/bMiniApp/src/subpackages/payrollManage/payrollChange/InnerPage.vue
@@ -11,28 +11,30 @@
            :max="999999999999"
            :precision="2"
            type="text"
            disabled
          />
          <div class="form-input-unit">元</div>
        </div>
      </nut-form-item>
      <nut-form-item label="超时:" class="bole-form-item" prop="serviceFee" label-width="90px">
      <nut-form-item label="超时:" class="bole-form-item" prop="timeoutHours" label-width="90px">
        <div class="bole-form-input-wrapper">
          <NumberInput
            v-model.trim="form.serviceFee"
            v-model.trim="form.timeoutHours"
            class="nut-input-text bole-input-text"
            placeholder="请输入超时时长"
            :min="0"
            :max="999999999999"
            :precision="2"
            type="text"
            @change="onTimeoutHoursChange"
          />
          <div class="form-input-unit">小时</div>
        </div>
      </nut-form-item>
      <nut-form-item label="超时费用:" class="bole-form-item" prop="serviceFee" label-width="90px">
      <nut-form-item label="超时费用:" class="bole-form-item" prop="timeoutFee" label-width="90px">
        <div class="bole-form-input-wrapper">
          <NumberInput
            v-model.trim="form.serviceFee"
            v-model.trim="form.timeoutFee"
            class="nut-input-text bole-input-text"
            placeholder="请输入超时费用"
            :min="0"
@@ -43,10 +45,10 @@
          <div class="form-input-unit">元</div>
        </div>
      </nut-form-item>
      <nut-form-item label="其他费用:" class="bole-form-item" prop="serviceFee" label-width="90px">
      <nut-form-item label="其他费用:" class="bole-form-item" prop="otherFee" label-width="90px">
        <div class="bole-form-input-wrapper">
          <NumberInput
            v-model.trim="form.serviceFee"
            v-model.trim="form.otherFee"
            class="nut-input-text bole-input-text"
            placeholder="请输入其他费用"
            :min="0"
@@ -57,10 +59,10 @@
          <div class="form-input-unit">元</div>
        </div>
      </nut-form-item>
      <nut-form-item label="开户行:" class="bole-form-item" prop="bank" label-width="90px">
        {{ `结算费用${0}元` }}
      <nut-form-item label="结算金额:" class="bole-form-item" prop="bank" label-width="90px">
        {{ `${settlementAmount}元` }}
      </nut-form-item>
      <nut-form-item label="备注:" class="bole-form-item" prop="remark" label-width="90px">
      <nut-form-item label="备注:" class="bole-form-item alignTop" prop="remark" label-width="90px">
        <nut-textarea v-model="form.remark" rows="4" placeholder="请输入备注"> </nut-textarea>
      </nut-form-item>
    </nut-form>
@@ -75,18 +77,74 @@
import { NumberInput } from '@12333/components';
import { FormValidator, Message } from '@12333/utils';
import * as userServices from '@12333/services/apiV2/user';
import { EnumUserBankCardAccess } from '@12333/constants';
import { EnumEnterpriseWalletAccess, EnumUserBankCardAccess } from '@12333/constants';
import { goBack } from '@/utils';
import Taro from '@tarojs/taro';
import * as taskUserServices from '@12333/services/apiV2/taskUser';
import { useQuery } from '@tanstack/vue-query';
import * as taskServices from '@12333/services/apiV2/task';
import { useEventChannel } from 'senin-mini/hooks';
defineOptions({
  name: 'InnerPage',
});
const { userDetail, updateUserInfo } = useUser();
const router = Taro.useRouter();
//结算单id
const settleId = router.params?.settleId ?? '';
//人员id
const orderRosterId = router.params?.orderRosterId ?? '';
const operatorToken = router.params?.operatorToken ?? '';
const { isLoading, refetch } = useQuery({
  queryKey: ['taskUserServices/getSettlementTaskUsers', settleId, operatorToken],
  queryFn: async () => {
    let params: API.APIgetSettlementTaskUsersParams = {
      id: settleId,
      operatorToken: operatorToken,
    };
    return await taskUserServices.getSettlementTaskUsers(params, {
      showLoading: false,
    });
  },
  placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult),
  onSuccess(res) {
    const settlementTaskUser = res.data.find((x) => x.id === orderRosterId);
    if (res?.detail) {
      form.serviceFee = settlementTaskUser?.serviceFee ?? 0;
      form.actualSettlementAmount = settlementTaskUser?.actualSettlementAmount ?? 0;
      form.receiveAccount = settlementTaskUser?.receiveAccount ?? '';
      form.bank = settlementTaskUser?.bank ?? '';
      form.settlementAccess = res?.detail?.settlementAccess;
      form.timeoutServiceFee = res?.detail?.timeoutServiceFee ?? 0;
      form.timeoutHours = settlementTaskUser?.timeoutHours ?? ('' as any as number);
      form.timeoutFee = settlementTaskUser?.timeoutFee ?? ('' as any as number);
      form.otherFee = settlementTaskUser?.otherFee ?? ('' as any as number);
      form.remark = settlementTaskUser?.remark ?? '';
      // form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
      // form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
    }
  },
});
const form = reactive({
  serviceFee: '' as any as number,
  actualSettlementAmount: '' as any as number,
  receiveAccount: '',
  bank: '',
  settlementAccess: EnumEnterpriseWalletAccess.PingAnPay,
  timeoutServiceFee: 0,
  timeoutHours: '' as any as number,
  timeoutFee: '' as any as number,
  otherFee: '' as any as number,
  remark: '',
});
const settlementAmount = computed(
  () => Number(form.timeoutFee ?? 0) + Number(form.serviceFee ?? 0) + Number(form.otherFee ?? 0)
);
const rules = reactive<FormRules>({
  code: [
@@ -101,6 +159,10 @@
  verifyCode: [{ required: true, message: '请输入验证码' }],
});
function onTimeoutHoursChange(event: any) {
  form.timeoutFee = form.timeoutServiceFee * event.detail.value;
}
const formRef = ref<any>(null);
function handleConfirm() {
  if (!formRef.value) return;
@@ -111,16 +173,32 @@
  });
}
const eventChannel = useEventChannel();
async function confirm() {
  try {
    let params: API.SavePersonalUserBankCardCommand = {};
    let res = await userServices.savePersonalUserBankCard(params);
    let params: API.EditTaskSettlementOrderRosterCommand = {
      id: orderRosterId,
      settlementAmount: settlementAmount.value,
      actualSettlementAmount: form.actualSettlementAmount,
      receiveAccount: form.receiveAccount,
      bank: form.bank,
      // totalWorkHours: editForm.totalWorkHours,
      // bankBranch: editForm.bankBranch,
      serviceFee: form.serviceFee,
      timeoutHours: form.timeoutHours,
      timeoutFee: form.timeoutFee,
      otherFee: form.otherFee,
      remark: form.remark,
    };
    let res = await taskServices.editTaskSettlementOrderRoster(params);
    if (res) {
      Message.success('修改成功', {
        onClosed() {
          goBack();
        },
      });
      eventChannel.emit('update');
    }
  } catch (error) {}
}
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
@@ -192,7 +192,12 @@
function goPayrollChange(item: API.GetSettlementTaskUsersQueryResultItem) {
  Taro.navigateTo({
    url: `${RouterPath.payrollChange}?id=${item.id}`,
    url: `${RouterPath.payrollChange}?orderRosterId=${item.id}&settleId=${id}&operatorToken=${operatorToken}`,
    events: {
      update: function () {
        refetch();
      },
    },
  });
}
</script>