zhengyiming
7 天以前 da109a468d7065fb1a0201cc2a81fb189e3f62cd
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdmin
2个文件已添加
11个文件已修改
247 ■■■■■ 已修改文件
.eslintrc-auto-import.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/task.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/user.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/user.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Permission/OperationUserManage.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/TaskManageDetail.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/TaskManageList.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/components/SelltementDetailView.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/components/SignDetailView.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
types/global.d.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -34,13 +34,17 @@
    "EnumRoleWebApiDataPowerText": true,
    "EnumRoleWebApiDataPowerTextForFilter": true,
    "EnumSettlementCycle": true,
    "EnumSettlementCycleText": true,
    "EnumSmsAccess": true,
    "EnumSmsAccessText": true,
    "EnumTaskCheckReceiveStatus": true,
    "EnumTaskRecommendStatus": true,
    "EnumTaskRecommendStatusText": true,
    "EnumTaskReleaseStatus": true,
    "EnumTaskReleaseStatusText": true,
    "EnumTaskSettlementStatus": true,
    "EnumTaskStatus": true,
    "EnumTaskStatusText": true,
    "EnumUserGender": true,
    "EnumUserInfoStatusText": true,
    "EnumUserStatus": true,
auto-imports.d.ts
@@ -41,13 +41,17 @@
  const EnumRoleWebApiDataPowerText: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText']
  const EnumRoleWebApiDataPowerTextForFilter: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter']
  const EnumSettlementCycle: typeof import('./src/constants/apiEnum')['EnumSettlementCycle']
  const EnumSettlementCycleText: typeof import('./src/constants/task')['EnumSettlementCycleText']
  const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
  const EnumSmsAccessText: typeof import('./src/constants/enterprise')['EnumSmsAccessText']
  const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
  const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']
  const EnumTaskRecommendStatusText: typeof import('./src/constants/task')['EnumTaskRecommendStatusText']
  const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']
  const EnumTaskReleaseStatusText: typeof import('./src/constants/task')['EnumTaskReleaseStatusText']
  const EnumTaskSettlementStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']
  const EnumTaskStatus: typeof import('./src/constants/apiEnum')['EnumTaskStatus']
  const EnumTaskStatusText: typeof import('./src/constants/task')['EnumTaskStatusText']
  const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
  const EnumUserInfoStatus: typeof import('./src/constants/apiEnum')['EnumUserInfoStatus']
  const EnumUserInfoStatusText: typeof import('./src/constants/user')['EnumUserInfoStatusText']
@@ -287,13 +291,17 @@
    readonly EnumRoleWebApiDataPowerText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText']>
    readonly EnumRoleWebApiDataPowerTextForFilter: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter']>
    readonly EnumSettlementCycle: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSettlementCycle']>
    readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']>
    readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']>
    readonly EnumSmsAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessText']>
    readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']>
    readonly EnumTaskRecommendStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']>
    readonly EnumTaskRecommendStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskRecommendStatusText']>
    readonly EnumTaskReleaseStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']>
    readonly EnumTaskReleaseStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskReleaseStatusText']>
    readonly EnumTaskSettlementStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']>
    readonly EnumTaskStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskStatus']>
    readonly EnumTaskStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskStatusText']>
    readonly EnumUserGender: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserGender']>
    readonly EnumUserInfoStatusText: UnwrapRef<typeof import('./src/constants/user')['EnumUserInfoStatusText']>
    readonly EnumUserStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserStatus']>
src/constants/index.ts
@@ -16,3 +16,4 @@
export * from './apiEnumText';
export * from './user';
export * from './dic';
export * from './task';
src/constants/task.ts
New file
@@ -0,0 +1,18 @@
export const EnumTaskStatusText = {
  [EnumTaskStatus.Wait]: '待安排',
  [EnumTaskStatus.Complete]: '已安排',
};
export const EnumSettlementCycleText = {
  [EnumSettlementCycle.Month]: '月结',
  [EnumSettlementCycle.Week]: '周结',
  [EnumSettlementCycle.Day]: '日结',
};
export const EnumTaskReleaseStatusText = {
  [EnumTaskReleaseStatus.InProcess]: '发布中',
  [EnumTaskReleaseStatus.Stopped]: '已停止',
};
export const EnumTaskRecommendStatusText = {
  [EnumTaskRecommendStatus.No]: '未推荐',
  [EnumTaskRecommendStatus.Yes]: '已推荐',
};
src/constants/user.ts
@@ -1,4 +1,4 @@
export const EnumUserInfoStatusText = {
  [EnumUserInfoStatus.Normal]: '正常',
  [EnumUserInfoStatus.Disabled]: '禁用',
  [EnumUserStatus.Normal]: '正常',
  [EnumUserStatus.Disabled]: '禁用',
};
src/services/api/typings.d.ts
@@ -1179,10 +1179,6 @@
    addressName?: string;
    /** 任务地点详细地址 */
    addressDetail?: string;
    /** 经度 */
    longitude?: number;
    /** 纬度 */
    latitude?: number;
    /** 任务开始时间 */
    beginTime?: string;
    /** 任务结束时间 */
@@ -1197,10 +1193,8 @@
    pageModel?: PagedListQueryPageModel;
    /** 关键字(任务名称) */
    keywords?: string;
    /** 发布时间-开始 */
    beginTime?: string;
    /** 发布时间-结束 */
    endTime?: string;
    /** 发布时间 */
    time?: string;
    /** 任务地点所属城市编号 */
    cityCode?: string;
    settlementCycle?: EnumSettlementCycle;
src/services/api/user.ts
@@ -35,21 +35,6 @@
  });
}
/** 查询用户简历 GET /api/user/user/getUserResume */
export async function getUserResume(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetUserResumeParams,
  options?: API.RequestConfig
) {
  return request<API.GetUserResumeQueryResult>('/api/user/user/getUserResume', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
/** 设置用户信息角色 PUT /api/user/user/setUserInfoRoles */
export async function setUserInfoRoles(
  body: API.SetUserInfoRolesCommand,
src/views/Permission/OperationUserManage.vue
@@ -24,8 +24,8 @@
            v-model="row.status"
            active-text="启用"
            inactive-text="禁用"
            :active-value="EnumUserInfoStatus.Normal"
            :inactive-value="EnumUserInfoStatus.Disabled"
            :active-value="EnumUserStatus.Normal"
            :inactive-value="EnumUserStatus.Disabled"
            :before-change="() => setStatus(row)"
          />
        </template>
@@ -50,9 +50,9 @@
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import { formatRoleName } from '@/utils';
import * as userInfoServices from '@/services/api/userInfo';
import * as userServices from '@/services/api/user';
import { Message } from '@bole-core/core';
import { EnumUserInfoStatus } from '@/constants';
import { EnumUserStatus } from '@/constants';
import SetOperationUserRoleDialog from './components/SetOperationUserRoleDialog.vue';
defineOptions({
@@ -95,7 +95,7 @@
        },
        keywords: extraParamState.keywords,
      };
      let res = await userInfoServices.getOperationUserInfos(params, {
      let res = await userServices.getOperationUserInfos(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -106,7 +106,7 @@
      keywords: '',
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
    },
    queryKey: ['userInfoServices/getOperationUserInfos'],
    queryKey: ['userServices/getOperationUserInfos'],
    columnsRenderProps: {},
  }
);
@@ -114,16 +114,14 @@
async function setStatus(row: API.GetOperationUserInfosQueryResultItem) {
  try {
    await Message.tipMessage(
      `确认要${row.status === EnumUserInfoStatus.Normal ? '禁用' : '启用'}该账号吗?`
      `确认要${row.status === EnumUserStatus.Normal ? '禁用' : '启用'}该账号吗?`
    );
    let params: API.SetUserInfoStatusCommand = {
      ids: [row.id],
      status:
        row.status === EnumUserInfoStatus.Normal
          ? EnumUserInfoStatus.Disabled
          : EnumUserInfoStatus.Normal,
        row.status === EnumUserStatus.Normal ? EnumUserStatus.Disabled : EnumUserStatus.Normal,
    };
    let res = await userInfoServices.setUserInfoStatus(params);
    let res = await userServices.setUserInfoStatus(params);
    return !!res;
  } catch (error) {}
}
@@ -154,7 +152,7 @@
      userInfoId: editForm.userInfoId,
      roleIds: editForm.roleIds,
    };
    let res = await userInfoServices.setUserInfoRoles(params);
    let res = await userServices.setUserInfoRoles(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
@@ -168,7 +166,7 @@
      userInfoId: row.id,
      // clientType: row.clientType,
    };
    let res = await userInfoServices.getUserInfoRoles(params);
    let res = await userServices.getUserInfoRoles(params);
    return res;
  } catch (error) {}
}
src/views/TaskManage/TaskManageDetail.vue
@@ -8,6 +8,9 @@
        <ProTabPane lazy label="报名详情" name="sign">
          <SignDetailView></SignDetailView>
        </ProTabPane>
        <ProTabPane lazy label="结算详情" name="settle">
          <SelltementDetailView></SelltementDetailView>
        </ProTabPane>
      </ProTabs>
    </AppContainer>
  </LoadingLayout>
@@ -17,6 +20,7 @@
import { AppContainer, ProTabs, ProTabPane } from '@bole-core/components';
import TaskDetailView from './components/TaskDetailView.vue';
import SignDetailView from './components/SignDetailView.vue';
import SelltementDetailView from './components/SelltementDetailView.vue';
defineOptions({
  name: 'TaskManageDetail',
src/views/TaskManage/TaskManageList.vue
@@ -5,11 +5,8 @@
        <template #query>
          <QueryFilterItem tip-content="发布状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="[
                { value: true, label: '发布中' },
                { value: false, label: '已停止' },
              ]"
              v-model="extraParamState.releaseStatus"
              :value-enum="EnumTaskReleaseStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -17,11 +14,8 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="推荐状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="[
                { value: true, label: '已推荐' },
                { value: false, label: '未推荐' },
              ]"
              v-model="extraParamState.recommendStatus"
              :value-enum="EnumTaskRecommendStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -29,7 +23,7 @@
          </QueryFilterItem>
          <QueryFilterItem tip-content="发布时间">
            <FieldDatePicker
              v-model="extraParamState.beginDate"
              v-model="extraParamState.time"
              type="daterange"
              range-separator="~"
              start-placeholder="开始日期"
@@ -40,7 +34,7 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.keyword"
              v-model="extraParamState.keywords"
              style="width: 260px"
              placeholder="任务名称"
              @on-click-search="getList"
@@ -70,7 +64,8 @@
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import { ModelValueType } from 'element-plus';
import * as enterpriseServices from '@/services/api/enterprise';
import * as taskServices from '@/services/api/task';
import { EnumTaskReleaseStatusText, EnumTaskRecommendStatusText } from '@/constants';
defineOptions({
  name: 'OperationManageList',
@@ -118,15 +113,18 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetEnterprisesQuery = {
      let params: API.GetTaskInfosQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        // searchKeys: extraParamState.keyword,
        keywords: extraParamState.keywords,
        releaseStatus: extraParamState.releaseStatus,
        recommendStatus: extraParamState.recommendStatus,
        // time: extraParamState.time,
      };
      let res = await enterpriseServices.getEnterprises(params, {
      let res = await taskServices.getTaskInfos(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -134,11 +132,10 @@
  },
  {
    defaultExtraParams: {
      keyword: '',
      pageType: '' as any as number,
      status: '' as any as boolean,
      beginDate: [] as unknown as ModelValueType,
      endDate: [] as unknown as ModelValueType,
      keywords: '',
      releaseStatus: '' as any as EnumTaskReleaseStatus,
      recommendStatus: '' as any as EnumTaskRecommendStatus,
      time: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {},
src/views/TaskManage/components/SelltementDetailView.vue
New file
@@ -0,0 +1,83 @@
<template>
  <LoadingLayout :loading="state.loading">
    <AppContainer>
      <ProTableV2
        v-bind="proTableProps"
        :columns="settleColumns"
        :operationBtns="settleOperationBtns"
      >
      </ProTableV2>
    </AppContainer>
  </LoadingLayout>
</template>
<script setup lang="ts">
import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components';
import { ModelValueType } from 'element-plus';
import * as enterpriseServices from '@/services/api/enterprise';
defineOptions({
  name: 'SelltementDetailView',
});
const operationBtnMap: Record<string, OperationBtnType> = {
  'settle-downloadBtn': { emits: { onClick: (role) => handleDownload(role) } },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const [settleColumns] = useGroupColumns(column, ['settle-']);
const [settleOperationBtns] = useGroupOperationBtns(operationBtns, ['settle-']);
const router = useRouter();
const BaseState = {
  loading: true,
};
const state = reactive({ ...BaseState });
onMounted(async () => {
  await getList();
  state.loading = false;
});
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetEnterprisesQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        // searchKeys: extraParamState.keyword,
      };
      let res = await enterpriseServices.getEnterprises(params, {
        showLoading: !state.loading,
      });
      return res;
    } catch (error) {}
  },
  {
    defaultExtraParams: {
      keyword: '',
      pageType: '' as any as number,
      status: '' as any as boolean,
      beginDate: [] as unknown as ModelValueType,
      endDate: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {},
  }
);
function handleDownload(row) {}
</script>
src/views/TaskManage/components/SignDetailView.vue
@@ -1,21 +1,14 @@
<template>
  <LoadingLayout :loading="state.loading">
    <AppContainer>
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      <ProTableV2 v-bind="proTableProps" :columns="signColumns" :operationBtns="signOperationBtns">
      </ProTableV2>
    </AppContainer>
  </LoadingLayout>
</template>
<script setup lang="ts">
import {
  OperationBtnType,
  ProTableV2,
  LoadingLayout,
  AppContainer,
  useTable,
} from '@bole-core/components';
import { useAccess } from '@/hooks';
import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components';
import { ModelValueType } from 'element-plus';
import * as enterpriseServices from '@/services/api/enterprise';
@@ -24,25 +17,15 @@
});
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: { emits: { onClick: (role) => goDetail(role) } },
  recommendBtn: {
    emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
    extraProps: {
      hide: (row) => row.status,
    },
  },
  cancelRecommendBtn: {
    emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
    props: { type: 'danger' },
    extraProps: {
      hide: (row) => !row.status,
    },
  },
  'sign-detailBtn': { emits: { onClick: (role) => goDetail(role) } },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
  operationBtnMap,
});
const [signColumns] = useGroupColumns(column, ['sign-']);
const [signOperationBtns] = useGroupOperationBtns(operationBtns, ['sign-']);
const router = useRouter();
const BaseState = {
@@ -92,7 +75,7 @@
  }
);
async function setAdvertiseOnShowStatus(row) {
async function handleRecommend(row) {
  try {
  } catch (error) {}
}
types/global.d.ts
@@ -137,9 +137,9 @@
    provinceName?: string;
    cityName?: string;
    countyName?: string;
    provinceCode?: number;
    cityCode?: number;
    countyCode?: number;
    provinceCode?: string;
    cityCode?: string;
    countyCode?: string;
    address?: string;
  }