wupengfei
6 天以前 41d9daf134e8f096eca81278967a2683f81ae03c
src/views/EmploymentManage/CheckReceiveTaskDetail.vue
@@ -16,11 +16,7 @@
            </ProFormColItem>
            <ProFormColItem :span="8">
              <ProFormItemV2 label="服务费金额:">
                {{
                  taskInfo.billingMethod === EnumBillingMethod.Face
                    ? EnumBillingMethodText[taskInfo.billingMethod]
                    : `${taskInfo.serviceFee}${EnumBillingMethodUnitText[taskInfo.billingMethod]}`
                }}
                {{ OrderUtils.getServiceFeeText(taskInfo.serviceFee, taskInfo.billingMethod) }}
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
@@ -44,11 +40,7 @@
        </ProForm>
      </el-card>
      <ProTableV2
        v-bind="proTableProps"
        :columns="CheckReceiveTaskDetailColumns"
        :operationBtns="operationBtns"
      >
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
    <CheckManageDialog v-bind="dialogProps" />
@@ -63,18 +55,15 @@
  AppContainer,
  useTable,
  useFormDialog,
  defineOperationBtns,
  ProForm,
  ProFormCol,
  ProFormColItem,
  ProFormItemV2,
  ProTableQueryFilterBar,
} from '@bole-core/components';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import * as taskServices from '@/services/api/task';
import { useQuery } from '@tanstack/vue-query';
import { CheckReceiveTaskDetailColumns } from './constants';
import { EnumBillingMethodUnitText, EnumBillingMethod, EnumBillingMethodText } from '@/constants';
import { hiddenIDNumberForEnd4, OrderUtils } from '@/utils';
import dayjs from 'dayjs';
import CheckManageDialog from './components/CheckManageDialog.vue';
import ManualCheckManageDialog from './components/ManualCheckManageDialog.vue';
@@ -83,31 +72,31 @@
  name: 'CheckReceiveTaskDetail',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'exportBtn',
      name: '验收',
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role) => openDialog(role, true),
    },
  },
  acceptanceBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
    extraProps: {
      hide: (row: API.GetCheckReceiveTaskQueryResultItem) =>
        row.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed ||
        state.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn,
        !(
          (row.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
            row.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit) &&
          row.checkReceiveMethods.includes(EnumTaskCheckReceiveMethod.Submit) &&
          taskInfo.value?.isInternal
        ),
    },
  },
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
    emits: {
      onClick: (role) => openDialog(role, true),
    },
  },
]);
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const route = useRoute();
const id = (route.params.id as string) ?? '';
@@ -127,7 +116,9 @@
const BaseState = {
  loading: true,
  checkReceiveMethod: '' as any as EnumTaskCheckReceiveMethod,
  checkReceiveMethods: [] as any as EnumTaskCheckReceiveMethod[],
  isInternal: false,
};
const state = reactive({ ...BaseState });
@@ -163,7 +154,8 @@
      let res = await taskCheckReceiveServices.getCheckReceiveTask(params, {
        showLoading: !state.loading,
      });
      state.checkReceiveMethod = res.objectData?.checkReceiveMethod;
      state.checkReceiveMethods = res.objectData?.checkReceiveMethods;
      state.isInternal = res.objectData?.isInternal;
      return res;
    } catch (error) {}
  },
@@ -175,27 +167,40 @@
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      lastSubmitTime: { type: 'date' },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
      identity: {
        formatter: (row: API.GetCheckReceiveTaskQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);
function openDialog(row: API.GetCheckReceiveTaskQueryResultItem, isDetail = false) {
  if (state.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
    handleManualEdit({
      id: row.id,
    });
  } else {
    handleEdit({
      id: row.id,
      isDetail,
    });
  }
  // if (state.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
  //   handleManualEdit({
  //     id: row.id,
  //   });
  // } else {
  // }
  handleEdit({
    id: row.id,
    checkReceiveMethods: state.checkReceiveMethods,
    isInternal: state.isInternal,
    tabType: state.checkReceiveMethods.includes(EnumTaskCheckReceiveMethod.CheckIn)
      ? 'signRecord'
      : '',
    isDetail,
  });
}
const { dialogProps, handleEdit } = useFormDialog({
  defaultFormParams: {
    id: '',
    checkReceiveMethods: [] as any as EnumTaskCheckReceiveMethod[],
    isInternal: false,
    isDetail: false,
    tabType: '',
  },
});