zhengyiming
2025-11-11 7041b2e8a0e9ff955f50d59c8d5c3dc3185396a6
feat: s
6个文件已修改
312 ■■■■ 已修改文件
src/router/index.ts 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/CheckManage.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/CheckReceiveTaskDetail.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/EmploymentManageArrange.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/EmploymentSignList.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/TaskManageList.vue 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts
@@ -96,113 +96,6 @@
    },
  },
  {
    path: '/EmploymentManage',
    redirect: 'noRedirect',
    component: Layout,
    hidden: false,
    alwaysShow: true,
    meta: {
      rank: 10020,
      title: '用人管理',
      rootMenu: true,
      icon: 'home',
    },
    children: [
      {
        path: '/TaskManageList',
        name: 'TaskManageList',
        hidden: false,
        alwaysShow: true,
        component: () => import('@/views/EmploymentManage/TaskManageList.vue'),
        meta: {
          rank: 10021,
          title: '任务管理',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/AddOrEditEmployment/:id?',
        name: 'AddOrEditEmployment',
        hidden: true,
        alwaysShow: false,
        component: () => import('@/views/EmploymentManage/AddOrEditEmployment.vue'),
        meta: {
          rank: 10022,
          title: '发布编辑人员',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/EmploymentManageDetail/:id',
        name: 'EmploymentManageDetail',
        hidden: true,
        alwaysShow: false,
        component: () => import('@/views/EmploymentManage/EmploymentManageDetail.vue'),
        meta: {
          rank: 10023,
          title: '人员管理详情',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/EmploymentSignList/:id',
        name: 'EmploymentSignList',
        hidden: true,
        alwaysShow: false,
        component: () => import('@/views/EmploymentManage/EmploymentSignList.vue'),
        meta: {
          rank: 10024,
          title: '报名列表',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/EmploymentManageArrange/:id',
        name: 'EmploymentManageArrange',
        hidden: true,
        alwaysShow: false,
        component: () => import('@/views/EmploymentManage/EmploymentManageArrange.vue'),
        meta: {
          rank: 10025,
          title: '人员安排',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/CheckManage',
        name: 'CheckManage',
        hidden: false,
        alwaysShow: true,
        component: () => import('@/views/EmploymentManage/CheckManage.vue'),
        meta: {
          rank: 10030,
          title: '验收管理',
          // rootMenu: true,
          icon: 'home',
        },
      },
      {
        path: '/CheckReceiveTaskDetail/:id',
        name: 'CheckReceiveTaskDetail',
        hidden: true,
        alwaysShow: false,
        component: () => import('@/views/EmploymentManage/CheckReceiveTaskDetail.vue'),
        meta: {
          rank: 10031,
          title: '验收详情',
          // rootMenu: true,
          icon: 'home',
        },
      },
    ],
  },
  {
    path: '/ServiceChargeManage',
    redirect: 'noRedirect',
    component: Layout,
src/views/EmploymentManage/CheckManage.vue
@@ -36,11 +36,7 @@
          </QueryFilterItem>
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2
        v-bind="proTableProps"
        :columns="CheckManageColumns"
        :operationBtns="operationBtns"
      >
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
  </LoadingLayout>
@@ -57,10 +53,8 @@
  useTable,
  FieldDatePicker,
  FieldRadio,
  defineOperationBtns,
  useFormDialog,
} from '@bole-core/components';
import { CheckManageColumns } from './constants';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import { ModelValueType } from 'element-plus';
import { downloadFileByUrl, format, OrderUtils, setOSSLink } from '@/utils';
@@ -70,21 +64,13 @@
  name: 'CheckManage',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role) => goCheckReceiveTaskDetail(role),
    },
  },
  {
    data: {
      enCode: 'exportBtn',
      name: '导出',
    },
  exportBtn: {
    emits: {
      onClick: (role) => handleExport(role),
    },
@@ -93,7 +79,11 @@
        row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.Completed,
    },
  },
]);
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();
src/views/EmploymentManage/CheckReceiveTaskDetail.vue
@@ -40,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" />
@@ -59,7 +55,6 @@
  AppContainer,
  useTable,
  useFormDialog,
  defineOperationBtns,
  ProForm,
  ProFormCol,
  ProFormColItem,
@@ -69,7 +64,6 @@
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 { OrderUtils } from '@/utils';
import { EnumBillingMethodUnitText, EnumBillingMethod, EnumBillingMethodText } from '@/constants';
import dayjs from 'dayjs';
@@ -80,31 +74,17 @@
  name: 'CheckReceiveTaskDetail',
});
const operationBtns = defineOperationBtns([
  // {
  //   data: {
  //     enCode: 'exportBtn',
  //     name: '验收',
  //   },
  //   emits: {
  //     onClick: (role) => openDialog(role),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetCheckReceiveTaskQueryResultItem) =>
  //       row.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed ||
  //       state.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn,
  //   },
  // },
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: {
    emits: {
      onClick: (role) => openDialog(role, true),
    },
  },
]);
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const route = useRoute();
const id = (route.params.id as string) ?? '';
src/views/EmploymentManage/EmploymentManageArrange.vue
@@ -33,11 +33,7 @@
          </QueryFilterItem>
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2
        v-bind="proTableProps"
        :columns="EmploymentArrangeColumns"
        :operationBtns="operationBtns"
      >
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
  </LoadingLayout>
@@ -54,9 +50,7 @@
  useTable,
  FieldDatePicker,
  FieldRadio,
  defineOperationBtns,
} from '@bole-core/components';
import { EmploymentArrangeColumns } from './constants';
import { Message } from '@bole-core/core';
import * as taskUserServices from '@/services/api/taskUser';
import {
@@ -68,12 +62,8 @@
  name: 'EmploymentManageArrange',
});
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'arrangeBtn',
      name: '安排',
    },
const operationBtnMap: Record<string, OperationBtnType> = {
  arrangeBtn: {
    emits: {
      onClick: (role) => handleArrange(role),
    },
@@ -82,7 +72,11 @@
        row.arrangeStatus === EnumTaskUserArrangeStatus.Complete,
    },
  },
]);
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();
const route = useRoute();
src/views/EmploymentManage/EmploymentSignList.vue
@@ -24,11 +24,7 @@
          </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" />
@@ -45,11 +41,9 @@
  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';
@@ -61,21 +55,13 @@
  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),
    },
@@ -84,11 +70,7 @@
        row.hireStatus === EnumTaskUserHireStatus.Pass,
    },
  },
  {
    data: {
      enCode: 'refuseBtn',
      name: '谢绝',
    },
  refuseBtn: {
    emits: {
      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Refuse),
    },
@@ -97,7 +79,11 @@
        row.hireStatus !== EnumTaskUserHireStatus.Wait,
    },
  },
]);
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();
const route = useRoute();
src/views/EmploymentManage/TaskManageList.vue
@@ -43,14 +43,15 @@
          </QueryFilterItem>
        </template>
        <template #btn>
          <el-button @click="goAddOrEdit()" type="primary">发布</el-button>
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
            @click="goAddOrEdit()"
            type="primary"
            >发布</el-button
          >
        </template>
      </ProTableQueryFilterBar>
      <ProTableV2
        v-bind="proTableProps"
        :columns="EmploymentManageColumns"
        :operationBtns="operationBtns"
      >
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
        <template #userCount="{ row }">
          <el-button link type="primary" @click="goSignList(row)">{{
            row.userCount || 0
@@ -88,47 +89,7 @@
});
const operationBtnMap: Record<string, OperationBtnType> = {
  // editBtn: {
  //   emits: {
  //     onClick: (role) => goAddOrEdit(role),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetTaskInfosQueryResultItem) => row.status === EnumTaskStatus.Complete,
  //   },
  // },
  detailBtn: {
    emits: {
      onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
    },
  },
  // publishBtn: {
  //   emits: {
  //     onClick: (row: API.GetTaskInfosQueryResultItem) =>
  //       setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetTaskInfosQueryResultItem) =>
  //       row.releaseStatus === EnumTaskReleaseStatus.InProcess,
  //   },
  // },
  // unPublishBtn: {
  //   emits: {
  //     onClick: (row: API.GetTaskInfosQueryResultItem) =>
  //       setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
  //   },
  //   extraProps: {
  //     hide: (row: API.GetTaskInfosQueryResultItem) =>
  //       row.releaseStatus === EnumTaskReleaseStatus.Stopped,
  //   },
  // },
};
const operationBtns = defineOperationBtns([
  {
    data: {
      enCode: 'editBtn',
      name: '编辑',
    },
  editBtn: {
    emits: {
      onClick: (role) => goAddOrEdit(role),
    },
@@ -136,20 +97,12 @@
      hide: (row: API.GetTaskInfosQueryResultItem) => row.status === EnumTaskStatus.Complete,
    },
  },
  {
    data: {
      enCode: 'detailBtn',
      name: '详情',
    },
  detailBtn: {
    emits: {
      onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row),
    },
  },
  {
    data: {
      enCode: 'publishBtn',
      name: '发布',
    },
  publishBtn: {
    emits: {
      onClick: (row: API.GetTaskInfosQueryResultItem) =>
        setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess),
@@ -159,11 +112,7 @@
        row.releaseStatus === EnumTaskReleaseStatus.InProcess,
    },
  },
  {
    data: {
      enCode: 'unPublishBtn',
      name: '停止发布',
    },
  unPublishBtn: {
    emits: {
      onClick: (row: API.GetTaskInfosQueryResultItem) =>
        setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped),
@@ -173,11 +122,7 @@
        row.releaseStatus === EnumTaskReleaseStatus.Stopped,
    },
  },
  {
    data: {
      enCode: 'arrangeBtn',
      name: '安排',
    },
  arrangeBtn: {
    emits: {
      onClick: (row: API.GetTaskInfosQueryResultItem) => handleArrange(row),
    },
@@ -186,7 +131,11 @@
        row.releaseStatus === EnumTaskReleaseStatus.Stopped,
    },
  },
]);
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const router = useRouter();