wupengfei
2025-12-02 2fdbeac4cb1aa1ff97a9b1f5ccbe28ddae5e77e3
Merge branch 'dev-1.3.0.4' of http://120.26.58.240:8888/r/flexJobAdminBClient into dev-1.3.0.4
1个文件已修改
1个文件已添加
118 ■■■■■ 已修改文件
src/views/EmploymentManage/EmploymentSignList.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/components/RefuseDialog.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/EmploymentSignList.vue
@@ -28,6 +28,7 @@
      </ProTableV2>
    </AppContainer>
    <StaffInfoDialog v-bind="dialogStaffInfoProps" />
    <RefuseDialog v-bind="dialogProps" />
  </LoadingLayout>
</template>
@@ -50,6 +51,7 @@
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',
@@ -63,7 +65,7 @@
  },
  recruitBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Pass),
      onClick: (role) => setTaskUserHire(role.id, EnumTaskUserHireStatus.Pass),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
@@ -72,7 +74,7 @@
  },
  cancelRecruitBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Cancel),
      onClick: (role) => setTaskUserHire(role.id, EnumTaskUserHireStatus.Cancel),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
@@ -81,7 +83,7 @@
  },
  refuseBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse),
      onClick: (role) => openRefuseDialog(role),
    },
    extraProps: {
      hide: (row: API.GetTaskUsersQueryResultItem) =>
@@ -202,17 +204,44 @@
  } 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 setTaskUserHire(id: string, hireStatus: EnumTaskUserHireStatus, remark?: string) {
  try {
    if (hireStatus === EnumTaskUserHireStatus.Pass) {
      await Message.tipMessage(
        `确认要${
          hireStatus === EnumTaskUserHireStatus.Pass
            ? '录用'
            : hireStatus === EnumTaskUserHireStatus.Refuse
            ? '谢绝'
            : '取消录用'
        }吗?`
      );
    }
    let params: API.SetTaskUserHireCommand = {
      id: id,
      hireStatus: hireStatus,
      hireRemark: remark,
    };
    let res = await taskUserServices.setTaskUserHire(params);
    if (res) {
src/views/EmploymentManage/components/RefuseDialog.vue
New file
@@ -0,0 +1,67 @@
<template>
  <ProDialog title="谢绝" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="form" ref="dialogForm" label-width="110px">
      <ProFormItemV2 label="谢绝原因:" prop="remark" :check-rules="[{ message: '请输入谢绝原因' }]">
        <ProFormTextArea placeholder="请输入谢绝原因" v-model="form.remark"></ProFormTextArea>
      </ProFormItemV2>
    </ProForm>
    <template #footer>
      <span class="dialog-footer">
        <el-button @click="emit('onCancel')">取 消</el-button>
        <el-button type="primary" @click="handleConfirm">确 定</el-button>
      </span>
    </template>
  </ProDialog>
</template>
<script setup lang="ts">
import { FormInstance } from 'element-plus';
import {
  ProDialog,
  ProForm,
  ProFormItemV2,
  ProFormText,
  ProFormTextArea,
} from '@bole-core/components';
defineOptions({
  name: 'RefuseDialog',
});
// type Props = {};
// const props = withDefaults(defineProps<Props>(), {});
const visible = defineModel({ type: Boolean });
type Form = {
  title?: string;
  id: string;
  remark: string;
};
const form = defineModel<Form>('form');
const emit = defineEmits<{
  (e: 'onConfirm'): void;
  (e: 'onCancel'): void;
}>();
const dialogForm = ref<FormInstance>();
function onDialogClose() {
  if (!dialogForm.value) return;
  dialogForm.value.resetFields();
}
function handleConfirm() {
  if (!dialogForm.value) return;
  dialogForm.value.validate((valid) => {
    if (valid) {
      emit('onConfirm');
    } else {
      return;
    }
  });
}
</script>