| | |
| | | </nut-form-item> |
| | | <nut-form-item label="常驻城市:" class="bole-form-item" prop="areaList"> |
| | | <ChooseInputWithAreaPicker |
| | | :columns="completeAreaTree" |
| | | :columns="areaTree" |
| | | v-model="form.areaList" |
| | | placeholder="请选择常驻城市" |
| | | ></ChooseInputWithAreaPicker> |
| | |
| | | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; |
| | | import { ChooseInputWithPicker, ChooseInputWithAreaPicker } from '@12333/components'; |
| | | import { convertApi2FormUrlOnlyOne, Message, setOSSLink } from '@12333/utils'; |
| | | import { useArea, useDictionaryDataSelect } from '@12333/hooks'; |
| | | import { useAreaTree, useDictionaryDataSelect } from '@12333/hooks'; |
| | | import { CategoryCode } from '@12333/constants'; |
| | | import * as userResumeServices from '@12333/services/apiV2/userResume'; |
| | | import Taro from '@tarojs/taro'; |
| | |
| | | categoryCode: CategoryCode.Education, |
| | | }); |
| | | |
| | | const { completeAreaTree } = useArea(); |
| | | const { areaTree } = useAreaTree(); |
| | | |
| | | const form = reactive({ |
| | | avatar: [], |
| | |
| | | Dictionary = 0, |
| | | /**任务 */ |
| | | Task = 1, |
| | | /**任务雇佣 */ |
| | | TaskUser = 2, |
| | | /**用户认证 */ |
| | | Auth = 2, |
| | | Auth = 3, |
| | | /**用户菜单 */ |
| | | Menu = 3, |
| | | Menu = 4, |
| | | /**用户资源 */ |
| | | Resource = 4, |
| | | Resource = 5, |
| | | /**用户角色 */ |
| | | Role = 5, |
| | | Role = 6, |
| | | /**用户信息 */ |
| | | User = 6, |
| | | User = 7, |
| | | /**用户简历 */ |
| | | UserResume = 7, |
| | | UserResume = 8, |
| | | /**企业信息 */ |
| | | Enterprise = 8, |
| | | Enterprise = 9, |
| | | } |
| | | |
| | | /** 资源请求方式 */ |
| | |
| | | Complete = 20, |
| | | } |
| | | |
| | | /** 任务录用状态 */ |
| | | export enum EnumTaskUserHireStatus { |
| | | /**待录用 */ |
| | | Wait = 10, |
| | | /**已录用 */ |
| | | Pass = 20, |
| | | /**已谢绝 */ |
| | | Refuse = 30, |
| | | } |
| | | |
| | | /** 用户性别 */ |
| | | export enum EnumUserGender { |
| | | /**男 */ |
| | |
| | | import { AreaType, CategoryCode } from '@12333/constants'; |
| | | import Taro, { EventChannel } from '@tarojs/taro'; |
| | | import { useDictionaryDataSelect } from './dic'; |
| | | import axios from 'axios'; |
| | | |
| | | export function useArea() { |
| | | const queryClient = useQueryClient(); |
| | |
| | | categoryCode: CategoryCode.Area, |
| | | staleTime: Infinity, |
| | | all: true, |
| | | maxDeep: AreaType.City, |
| | | maxDeep: AreaType.Area, |
| | | }); |
| | | |
| | | const areaList = computed(() => dictionaryDataList.value.map(convertDictionaryToAreaTreeNode)); |
| | | console.log('areaList: ', areaList); |
| | | |
| | | const areaTree = computed(() => formatAreaListToTree(areaList.value)); |
| | | // const areaTree = computed(() => formatAreaListToTree(areaList.value)); |
| | | |
| | | function getAreaFromCompleteAreaList(areaCode: string) { |
| | | return areaList.value.find((x) => x.areaCode === areaCode); |
| | |
| | | return { |
| | | completeAreaList: areaList, |
| | | areaList, |
| | | completeAreaTree: areaTree, |
| | | provinceList: computed(() => areaList.value.filter((x) => x.layer === AreaType.Province)), |
| | | // completeAreaTree: areaTree, |
| | | // provinceList: computed(() => areaList.value.filter((x) => x.layer === AreaType.Province)), |
| | | getAreaFromCompleteAreaList, |
| | | getAreaByAreaCode, |
| | | }; |
| | | } |
| | | |
| | | export function useAreaTree() { |
| | | axios.get('https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/12333/area.txt').then((res) => { |
| | | console.log(res); |
| | | }); |
| | | const { data } = useQuery({ |
| | | queryKey: ['area.txt'], |
| | | queryFn() { |
| | | return axios |
| | | .get<API.AreaTreeNode[]>( |
| | | 'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/12333/area.txt' |
| | | ) |
| | | .then((res) => res.data); |
| | | }, |
| | | |
| | | placeholderData: () => [] as API.AreaTreeNode[], |
| | | }); |
| | | |
| | | const areaTree = computed(() => formatAreaListToTree(data.value)); |
| | | |
| | | return { areaTree: areaTree }; |
| | | } |
| | | |
| | | function convertDictionaryToAreaTreeNode( |
| | | item: API.SelectOptionStringGetDictionaryDataSelectQueryResultOption |
| | | ) { |
| | | return { |
| | | children: [], |
| | | areaCode: item.data?.code, |
| | | parentCode: item.data?.field1, |
| | | parentCode: item.data?.parentCode, |
| | | areaName: item.label, |
| | | layer: Number(item.data?.field4), |
| | | quickQuery: item.data?.field2, |
| | |
| | | }; |
| | | } |
| | | |
| | | export function useProvinceList() { |
| | | const { provinceList } = useArea(); |
| | | // export function useProvinceList() { |
| | | // const { provinceList } = useArea(); |
| | | |
| | | return { |
| | | provinceList, |
| | | }; |
| | | } |
| | | // return { |
| | | // provinceList, |
| | | // }; |
| | | // } |
| | | |
| | | export const globalEventEmitter = new Taro.Events(); |
| | | |
| | |
| | | import * as task from './task'; |
| | | import * as enterprise from './enterprise'; |
| | | import * as role from './role'; |
| | | import * as taskUser from './taskUser'; |
| | | import * as menu from './menu'; |
| | | export default { |
| | | userResume, |
| | |
| | | task, |
| | | enterprise, |
| | | role, |
| | | taskUser, |
| | | menu, |
| | | }; |
New file |
| | |
| | | /* eslint-disable */ |
| | | // @ts-ignore |
| | | import { request } from '@/utils/request'; |
| | | |
| | | /** 报名任务 POST /api/flexjob/taskUser/applyTask */ |
| | | export async function applyTask(body: API.ApplyTaskCommand, options?: API.RequestConfig) { |
| | | return request<number>('/api/flexjob/taskUser/applyTask', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 收藏任务 POST /api/flexjob/taskUser/collectTask */ |
| | | export async function collectTask(body: API.CollectTaskCommand, options?: API.RequestConfig) { |
| | | return request<number>('/api/flexjob/taskUser/collectTask', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | |
| | | request?: GetUserResumeWorkExperienceQuery; |
| | | } |
| | | |
| | | interface ApplyTaskCommand { |
| | | /** 任务Id */ |
| | | ids?: string[]; |
| | | } |
| | | |
| | | interface BindWxmpUserInfoCommand { |
| | | /** 包括敏感数据在内的完整用户信息的加密数据 */ |
| | | encryptedData: string; |
| | |
| | | phoneNumber: string; |
| | | /** 验证码 */ |
| | | verifyCode: string; |
| | | } |
| | | |
| | | interface CollectTaskCommand { |
| | | /** 任务Id */ |
| | | ids?: string[]; |
| | | /** 是否收藏 */ |
| | | isCollect?: boolean; |
| | | } |
| | | |
| | | interface DeleteDictionaryCategoryCommand { |
| | |
| | | Dictionary = 0, |
| | | /**任务 */ |
| | | Task = 1, |
| | | /**任务雇佣 */ |
| | | TaskUser = 2, |
| | | /**用户认证 */ |
| | | Auth = 2, |
| | | Auth = 3, |
| | | /**用户菜单 */ |
| | | Menu = 3, |
| | | Menu = 4, |
| | | /**用户资源 */ |
| | | Resource = 4, |
| | | Resource = 5, |
| | | /**用户角色 */ |
| | | Role = 5, |
| | | Role = 6, |
| | | /**用户信息 */ |
| | | User = 6, |
| | | User = 7, |
| | | /**用户简历 */ |
| | | UserResume = 7, |
| | | UserResume = 8, |
| | | /**企业信息 */ |
| | | Enterprise = 8, |
| | | Enterprise = 9, |
| | | } |
| | | |
| | | enum EnumResourceMethod { |
| | |
| | | Wait = 10, |
| | | /**已安排 */ |
| | | Complete = 20, |
| | | } |
| | | |
| | | enum EnumTaskUserHireStatus { |
| | | /**待录用 */ |
| | | Wait = 10, |
| | | /**已录用 */ |
| | | Pass = 20, |
| | | /**已谢绝 */ |
| | | Refuse = 30, |
| | | } |
| | | |
| | | enum EnumUserGender { |
| | |
| | | releaseStatus?: EnumTaskReleaseStatus; |
| | | recommendStatus?: EnumTaskRecommendStatus; |
| | | checkReceiveStatus?: EnumTaskCheckReceiveStatus; |
| | | /** 录用状态 */ |
| | | hireStatus?: EnumTaskUserHireStatus[]; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | |
| | | recommendStatus?: EnumTaskRecommendStatus; |
| | | /** 创建时间 */ |
| | | createdTime?: string; |
| | | hireStatus?: EnumTaskUserHireStatus; |
| | | } |
| | | |
| | | interface GetTaskInfosQueryResultObjectData { |
| | |
| | | |
| | | export function formatAreaListToTree( |
| | | areaDataList: API.AreaTreeNode[], |
| | | parentId = '', |
| | | parentId = null, |
| | | maxLayer = AreaType.Area |
| | | ) { |
| | | const treeNodeList: API.AreaTreeNode[] = []; |
| | |
| | | const areaTreeNode: API.AreaTreeNode = { ...areaData }; |
| | | if (areaData.parentCode === parentId && areaData.layer <= maxLayer) { |
| | | const children = formatAreaListToTree(areaDataList, areaData.areaCode, maxLayer); |
| | | areaTreeNode.children = children; |
| | | if (children.length > 0) { |
| | | areaTreeNode.children = children; |
| | | } |
| | | treeNodeList.push(areaTreeNode); |
| | | } |
| | | }); |