wupengfei
6 天以前 a4978ef36ce6dc9c6723b61b20fd27cffd907ad9
feat: 任务
6个文件已修改
97 ■■■■■ 已修改文件
.eslintrc-auto-import.json 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/task.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/DictionaryManage/components/AddOrEditDictionaryDialog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/TaskManageList.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/TaskManage/components/TaskDetailView.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -5,7 +5,6 @@
    "AreaType": true,
    "AuthorizeType": true,
    "BooleanOptions": true,
    "CallingConventions": true,
    "CategoryCode": true,
    "CertificateTypeCodeEnum": true,
    "ChargeTypeEnum": true,
@@ -42,11 +41,13 @@
    "EnumSmsAccessText": true,
    "EnumSmsTemplateType": true,
    "EnumTaskCheckReceiveStatus": true,
    "EnumTaskCheckReceiveStatusText": true,
    "EnumTaskRecommendStatus": true,
    "EnumTaskRecommendStatusText": true,
    "EnumTaskReleaseStatus": true,
    "EnumTaskReleaseStatusText": true,
    "EnumTaskSettlementStatus": true,
    "EnumTaskSettlementStatusText": true,
    "EnumTaskStatus": true,
    "EnumTaskStatusText": true,
    "EnumUserGender": true,
@@ -55,7 +56,6 @@
    "EnumUserStatus": true,
    "EnumUserType": true,
    "EnumUserTypeText": true,
    "EventAttributes": true,
    "ExtractDefaultPropTypes": true,
    "ExtractPropTypes": true,
    "ExtractPublicPropTypes": true,
@@ -64,7 +64,6 @@
    "FastColumnList": true,
    "FastDataButtonList": true,
    "FastPageButtonList": true,
    "FieldAttributes": true,
    "FlexEnterpriseCertificationStatus": true,
    "FlexEnterpriseCertificationStatusText": true,
    "FlexTaskWorkerHireEnum": true,
@@ -73,7 +72,6 @@
    "FlexWorkerEleSignEnumText": true,
    "Gender": true,
    "GenderText": true,
    "GenericParameterAttributes": true,
    "GlobalEvent": true,
    "GlobalEventContext": true,
    "GlobalEventListener": true,
@@ -81,13 +79,9 @@
    "InjectionKey": true,
    "IsConfiguredText": true,
    "IsRealText": true,
    "LayoutKind": true,
    "MaybeRef": true,
    "MaybeRefOrGetter": true,
    "MemberTypes": true,
    "MenuSvgIconMap": true,
    "MethodAttributes": true,
    "MethodImplAttributes": true,
    "ModuleColumns": true,
    "MyRegExp": true,
    "OSSBaseURL": true,
@@ -103,24 +97,18 @@
    "OssRich": true,
    "OssUser": true,
    "OssUserSign": true,
    "ParameterAttributes": true,
    "PropType": true,
    "PropertyAttributes": true,
    "Ref": true,
    "RoleClientType": true,
    "SecurityRuleSet": true,
    "Slot": true,
    "Slots": true,
    "SubModuleKey": true,
    "SubModuleTitle": true,
    "SubModuleType": true,
    "TaskCreationOptions": true,
    "TaskStatus": true,
    "ThemeColorItem": true,
    "ThemeColorName": true,
    "ThemeColors": true,
    "ThemeColorsType": true,
    "TypeAttributes": true,
    "UsePortraitTableColumnsItem": true,
    "UsePortraitTableOptions": true,
    "VNode": true,
auto-imports.d.ts
@@ -49,11 +49,13 @@
  const EnumSmsAccessText: typeof import('./src/constants/enterprise')['EnumSmsAccessText']
  const EnumSmsTemplateType: typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']
  const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
  const EnumTaskCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']
  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 EnumTaskSettlementStatusText: typeof import('./src/constants/task')['EnumTaskSettlementStatusText']
  const EnumTaskStatus: typeof import('./src/constants/apiEnum')['EnumTaskStatus']
  const EnumTaskStatusText: typeof import('./src/constants/task')['EnumTaskStatusText']
  const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
@@ -237,7 +239,7 @@
  export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
  import('vue')
  // @ts-ignore
  export type { CallingConventions, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EventAttributes, FieldAttributes, GenericParameterAttributes, LayoutKind, MemberTypes, MethodAttributes, MethodImplAttributes, ParameterAttributes, PropertyAttributes, SecurityRuleSet, TaskCreationOptions, TaskStatus, TypeAttributes, CallingConventions, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EventAttributes, FieldAttributes, GenericParameterAttributes, LayoutKind, MemberTypes, MethodAttributes, MethodImplAttributes, ParameterAttributes, PropertyAttributes, SecurityRuleSet, TaskCreationOptions, TaskStatus, TypeAttributes } from './src/constants/apiEnum'
  export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType } from './src/constants/apiEnum'
  import('./src/constants/apiEnum')
  // @ts-ignore
  export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
@@ -284,7 +286,6 @@
    readonly AreaType: UnwrapRef<typeof import('./src/constants/enum')['AreaType']>
    readonly AuthorizeType: UnwrapRef<typeof import('./src/constants/enum')['AuthorizeType']>
    readonly BooleanOptions: UnwrapRef<typeof import('./src/constants/enum')['BooleanOptions']>
    readonly CallingConventions: UnwrapRef<typeof import('./src/constants/apiEnum')['CallingConventions']>
    readonly CategoryCode: UnwrapRef<typeof import('./src/constants/dic')['CategoryCode']>
    readonly CertificateTypeCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['CertificateTypeCodeEnum']>
    readonly ChargeTypeEnum: UnwrapRef<typeof import('./src/constants/enterprise')['ChargeTypeEnum']>
@@ -317,11 +318,13 @@
    readonly EnumSmsAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessText']>
    readonly EnumSmsTemplateType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']>
    readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']>
    readonly EnumTaskCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']>
    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 EnumTaskSettlementStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskSettlementStatusText']>
    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']>
@@ -330,12 +333,10 @@
    readonly EnumUserStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserStatus']>
    readonly EnumUserType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserType']>
    readonly EnumUserTypeText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumUserTypeText']>
    readonly EventAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['EventAttributes']>
    readonly FastButtonMap: UnwrapRef<typeof import('./src/constants/module')['FastButtonMap']>
    readonly FastColumnList: UnwrapRef<typeof import('./src/constants/module')['FastColumnList']>
    readonly FastDataButtonList: UnwrapRef<typeof import('./src/constants/module')['FastDataButtonList']>
    readonly FastPageButtonList: UnwrapRef<typeof import('./src/constants/module')['FastPageButtonList']>
    readonly FieldAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['FieldAttributes']>
    readonly FlexEnterpriseCertificationStatus: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatus']>
    readonly FlexEnterpriseCertificationStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatusText']>
    readonly FlexTaskWorkerHireEnum: UnwrapRef<typeof import('./src/constants/cPerson')['FlexTaskWorkerHireEnum']>
@@ -344,15 +345,10 @@
    readonly FlexWorkerEleSignEnumText: UnwrapRef<typeof import('./src/constants/cPerson')['FlexWorkerEleSignEnumText']>
    readonly Gender: UnwrapRef<typeof import('./src/constants/enum')['Gender']>
    readonly GenderText: UnwrapRef<typeof import('./src/constants/enum')['GenderText']>
    readonly GenericParameterAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['GenericParameterAttributes']>
    readonly IdentityCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['IdentityCodeEnum']>
    readonly IsConfiguredText: UnwrapRef<typeof import('./src/constants/enterprise')['IsConfiguredText']>
    readonly IsRealText: UnwrapRef<typeof import('./src/constants/enterprise')['IsRealText']>
    readonly LayoutKind: UnwrapRef<typeof import('./src/constants/apiEnum')['LayoutKind']>
    readonly MemberTypes: UnwrapRef<typeof import('./src/constants/apiEnum')['MemberTypes']>
    readonly MenuSvgIconMap: UnwrapRef<typeof import('./src/constants/menu')['MenuSvgIconMap']>
    readonly MethodAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['MethodAttributes']>
    readonly MethodImplAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['MethodImplAttributes']>
    readonly ModuleColumns: UnwrapRef<typeof import('./src/constants/module')['ModuleColumns']>
    readonly MyRegExp: UnwrapRef<typeof import('./src/constants/regExp')['MyRegExp']>
    readonly OSSBaseURL: UnwrapRef<typeof import('./src/constants/oss')['OSSBaseURL']>
@@ -368,17 +364,11 @@
    readonly OssRich: UnwrapRef<typeof import('./src/constants/oss')['OssRich']>
    readonly OssUser: UnwrapRef<typeof import('./src/constants/oss')['OssUser']>
    readonly OssUserSign: UnwrapRef<typeof import('./src/constants/oss')['OssUserSign']>
    readonly ParameterAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['ParameterAttributes']>
    readonly PropertyAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['PropertyAttributes']>
    readonly RoleClientType: UnwrapRef<typeof import('./src/constants/role')['RoleClientType']>
    readonly SecurityRuleSet: UnwrapRef<typeof import('./src/constants/apiEnum')['SecurityRuleSet']>
    readonly SubModuleKey: UnwrapRef<typeof import('./src/constants/module')['SubModuleKey']>
    readonly SubModuleTitle: UnwrapRef<typeof import('./src/constants/module')['SubModuleTitle']>
    readonly SubModuleType: UnwrapRef<typeof import('./src/constants/module')['SubModuleType']>
    readonly TaskCreationOptions: UnwrapRef<typeof import('./src/constants/apiEnum')['TaskCreationOptions']>
    readonly TaskStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['TaskStatus']>
    readonly ThemeColors: UnwrapRef<typeof import('./src/constants/theme')['ThemeColors']>
    readonly TypeAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['TypeAttributes']>
    readonly VerifyStatus: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatus']>
    readonly VerifyStatusColor: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatusColor']>
    readonly VerifyStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatusText']>
src/constants/task.ts
@@ -37,3 +37,13 @@
  [EnumBillingMethod.Hour]: '元/小时',
  [EnumBillingMethod.Piece]: '元/件',
};
export const EnumTaskSettlementStatusText = {
  [EnumTaskSettlementStatus.Wait]: '待结算',
  [EnumTaskSettlementStatus.Completed]: '已结算',
};
export const EnumTaskCheckReceiveStatusText = {
  [EnumTaskCheckReceiveStatus.Wait]: '待验收',
  [EnumTaskCheckReceiveStatus.Completed]: '已验收',
};
src/views/DictionaryManage/components/AddOrEditDictionaryDialog.vue
@@ -43,6 +43,7 @@
        label="图片:"
        prop="field2"
        v-if="category?.data?.code === CategoryCode.Welfare"
        :check-rules="[{ type: 'upload', message: '请上传图片' }]"
      >
        <ProFormImageUpload v-model:file-url="form.field2" :limitFileCount="1"></ProFormImageUpload>
      </ProFormItemV2>
src/views/TaskManage/TaskManageList.vue
@@ -74,16 +74,15 @@
});
const operationBtnMap: Record<string, OperationBtnType> = {
  detailBtn: { emits: { onClick: (role) => goDetail(role) } },
  detailBtn: { emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row) } },
  recommendBtn: {
    emits: { onClick: (role) => setTaskInfoRecommendStatus(role) },
    emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => setTaskInfoRecommendStatus(row) },
    extraProps: {
      hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.Yes,
    },
  },
  cancelRecommendBtn: {
    emits: { onClick: (role) => setTaskInfoRecommendStatus(role) },
    props: { type: 'danger' },
    emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => setTaskInfoRecommendStatus(row) },
    extraProps: {
      hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.No,
    },
@@ -141,7 +140,18 @@
      time: [] as unknown as ModelValueType,
      orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
    },
    columnsRenderProps: {},
    columnsRenderProps: {
      billingMethod: { type: 'enum', valueEnum: EnumBillingMethodText },
      settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText },
      genderLimit: { type: 'enum', valueEnum: EnumUserGenderText },
      status: { type: 'enum', valueEnum: EnumTaskStatusText },
      releaseStatus: { type: 'enum', valueEnum: EnumTaskReleaseStatusText },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
      settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText },
      beginTime: { type: 'date', format: 'YYYY-MM-DD' },
      endTime: { type: 'date', format: 'YYYY-MM-DD' },
      serviceFee: { type: 'money' },
    },
  }
);
src/views/TaskManage/components/TaskDetailView.vue
@@ -48,8 +48,6 @@
                <ProFormCheckbox
                  v-model="form.benefits"
                  :value-enum="welfareList"
                  enumLabelKey="name"
                  enum-value-key="code"
                ></ProFormCheckbox>
              </ProFormItemV2>
            </ProFormColItem>
@@ -90,8 +88,6 @@
                <ProFormCheckbox
                  v-model="form.credentialLimits"
                  :value-enum="certificateTypeList"
                  enumLabelKey="name"
                  enum-value-key="code"
                ></ProFormCheckbox>
              </ProFormItemV2>
            </ProFormColItem>
@@ -99,7 +95,11 @@
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="任务地点:" prop="weMapInfo">
                <WeMap v-model="form.weMapInfo" />
                {{
                  `${form.weMapInfo.provinceName ?? ''}${form.weMapInfo.cityName ?? ''}${
                    form.weMapInfo.addressName ?? ''
                  }`
                }}
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
@@ -203,11 +203,11 @@
    form.billingMethod = data.billingMethod;
    form.serviceFee = data.serviceFee;
    form.settlementCycle = data.settlementCycle;
    form.benefits = data.benefits?.map((x) => x.code) ?? [];
    form.benefits = data.benefits?.map((x) => x.benefitCode) ?? [];
    form.ageMinLimit = data.ageMinLimit;
    form.ageMaxLimit = data.ageMaxLimit;
    form.genderLimit = data.genderLimit;
    form.credentialLimits = data.credentialLimits?.map((x) => x.code) ?? [];
    form.credentialLimits = data.credentialLimits?.map((x) => x.typeCode) ?? [];
    form.time = [
      format(data.beginTime, 'YYYY-MM-DD 00:00:00'),
      format(data.endTime, 'YYYY-MM-DD 23:59:59'),
@@ -215,8 +215,8 @@
    form.weMapInfo = {
      latitude: data.latitude,
      longitude: data.longitude,
      provinceName: data.provinceName,
      cityName: data.cityName,
      provinceName: data.provinceContent,
      cityName: data.cityContent,
      provinceCode: data.provinceCode,
      cityCode: data.cityCode,
      addressName: data.addressName,
@@ -235,4 +235,16 @@
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
:deep() {
  .radio-with-input-extra-wrapper {
    display: flex;
  }
  .form-age-range {
    .pro-from-item-read-content-wrapper {
      width: auto;
    }
  }
}
</style>