wupengfei
2 天以前 28eded0a5f7b7cb6c9d09fb50deb056f47ce51ae
src/views/EmploymentManage/EmploymentSignList.vue
@@ -24,14 +24,11 @@
          </QueryFilterItem>
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2
        v-bind="proTableProps"
        :columns="EmploymentSignColumns"
        :operationBtns="operationBtns"
      >
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
    <StaffInfoDialog v-bind="dialogStaffInfoProps" />
    <RefuseDialog v-bind="dialogProps" />
  </LoadingLayout>
</template>
@@ -45,59 +42,59 @@
  QueryFilterItem,
  useTable,
  FieldRadio,
  defineOperationBtns,
  useFormDialog,
  UploadUserFile,
} from '@bole-core/components';
import { EmploymentSignColumns } from './constants/columns';
import { Message } from '@bole-core/core';
import { EnumUserGender, EnumTaskUserHireStatusText } from '@/constants';
import StaffInfoDialog from '@/views/FlexJobManage/components/StaffInfoDialog.vue';
import { convertApi2FormUrlOnlyOne } from '@/utils';
import { convertApi2FormUrlOnlyOne, hiddenIDNumberForEnd4 } from '@/utils';
import * as taskUserServices from '@/services/api/taskUser';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
import RefuseDialog from './components/RefuseDialog.vue';
defineOptions({
  name: 'EmploymentSignList',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
  },
  {
    data: {
      enCode: 'recruitBtn',
      name: '录用',
    },
  recruitBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Pass),
      onClick: (role) => handleRecruit(role.id, EnumTaskUserHireStatus.Pass),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
        row.hireStatus === EnumTaskUserHireStatus.Pass,
    },
  },
  {
    data: {
      enCode: 'refuseBtn',
      name: '谢绝',
    },
  cancelRecruitBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse),
      onClick: (role) => handleCancelRecruit(role.id, EnumTaskUserHireStatus.Cancel),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
        row.hireStatus !== EnumTaskUserHireStatus.Pass,
    },
  },
  refuseBtn: {
    emits: {
      onClick: (role) => openRefuseDialog(role),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
        row.hireStatus !== EnumTaskUserHireStatus.Wait,
    },
  },
]);
};
const { column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();
const route = useRoute();
@@ -151,6 +148,11 @@
    columnsRenderProps: {
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText },
      identity: {
        formatter: (row: API.GetTaskUsersQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);
@@ -202,17 +204,47 @@
  } catch (error) {}
}
async function setTaskUserHire(
  row: API.GetTaskUsersQueryResultItem,
  hireStatus: EnumTaskUserHireStatus
) {
const { dialogProps, handleAdd, editForm } = useFormDialog({
  onConfirm: handleRefuse,
  defaultFormParams: {
    id: '',
    remark: '',
  },
});
async function openRefuseDialog(row: API.GetTaskUsersQueryResultItem) {
  try {
    await Message.tipMessage(
      `确认要${hireStatus === EnumTaskUserHireStatus.Pass ? '录用' : '谢绝'}吗?`
    );
    let params: API.SetTaskUserHireCommand = {
    await Message.tipMessage(`确认要谢绝吗?`);
    handleAdd({
      id: row.id,
    });
  } catch (error) {}
}
async function handleRefuse() {
  setTaskUserHire(editForm.id, EnumTaskUserHireStatus.Refuse, editForm.remark);
}
async function handleRecruit(id: string, hireStatus: EnumTaskUserHireStatus) {
  try {
    await Message.tipMessage(`确认要录用吗?`);
    setTaskUserHire(id, hireStatus);
  } catch (error) {}
}
async function handleCancelRecruit(id: string, hireStatus: EnumTaskUserHireStatus) {
  try {
    await Message.tipMessage(`确认要取消录用吗?`);
    setTaskUserHire(id, hireStatus);
  } catch (error) {}
}
async function setTaskUserHire(id: string, hireStatus: EnumTaskUserHireStatus, remark?: string) {
  try {
    let params: API.SetTaskUserHireCommand = {
      id: id,
      hireStatus: hireStatus,
      hireRemark: remark,
    };
    let res = await taskUserServices.setTaskUserHire(params);
    if (res) {