From 256ca1dc87a379c0aaa4da00d8bc5b4ecdc57f1e Mon Sep 17 00:00:00 2001 From: Tenno-UI <3856423906@qq.com> Date: Sun, 23 Nov 2025 21:04:01 +0800 Subject: [PATCH] :p --- auto-imports.d.ts | 78 ------------------------------- docs/psh.md | 117 +++++++++++++++++++++++++++++++++++++++++++++- vite.config.ts | 24 ---------- 3 files changed, 116 insertions(+), 103 deletions(-) delete mode 100644 auto-imports.d.ts delete mode 100644 vite.config.ts diff --git a/auto-imports.d.ts b/auto-imports.d.ts deleted file mode 100644 index cb86568..0000000 --- a/auto-imports.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// noinspection JSUnusedGlobalSymbols -// Generated by unplugin-auto-import -// biome-ignore lint: disable -export {} -declare global { - const EffectScope: typeof import('vue')['EffectScope'] - const computed: typeof import('vue')['computed'] - const createApp: typeof import('vue')['createApp'] - const customRef: typeof import('vue')['customRef'] - const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] - const defineComponent: typeof import('vue')['defineComponent'] - const effectScope: typeof import('vue')['effectScope'] - const getCurrentInstance: typeof import('vue')['getCurrentInstance'] - const getCurrentScope: typeof import('vue')['getCurrentScope'] - const getCurrentWatcher: typeof import('vue')['getCurrentWatcher'] - const h: typeof import('vue')['h'] - const inject: typeof import('vue')['inject'] - const isProxy: typeof import('vue')['isProxy'] - const isReactive: typeof import('vue')['isReactive'] - const isReadonly: typeof import('vue')['isReadonly'] - const isRef: typeof import('vue')['isRef'] - const isShallow: typeof import('vue')['isShallow'] - const markRaw: typeof import('vue')['markRaw'] - const nextTick: typeof import('vue')['nextTick'] - const onActivated: typeof import('vue')['onActivated'] - const onBeforeMount: typeof import('vue')['onBeforeMount'] - const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] - const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] - const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] - const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] - const onDeactivated: typeof import('vue')['onDeactivated'] - const onErrorCaptured: typeof import('vue')['onErrorCaptured'] - const onMounted: typeof import('vue')['onMounted'] - const onRenderTracked: typeof import('vue')['onRenderTracked'] - const onRenderTriggered: typeof import('vue')['onRenderTriggered'] - const onScopeDispose: typeof import('vue')['onScopeDispose'] - const onServerPrefetch: typeof import('vue')['onServerPrefetch'] - const onUnmounted: typeof import('vue')['onUnmounted'] - const onUpdated: typeof import('vue')['onUpdated'] - const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] - const provide: typeof import('vue')['provide'] - const reactive: typeof import('vue')['reactive'] - const readonly: typeof import('vue')['readonly'] - const ref: typeof import('vue')['ref'] - const resolveComponent: typeof import('vue')['resolveComponent'] - const shallowReactive: typeof import('vue')['shallowReactive'] - const shallowReadonly: typeof import('vue')['shallowReadonly'] - const shallowRef: typeof import('vue')['shallowRef'] - const toRaw: typeof import('vue')['toRaw'] - const toRef: typeof import('vue')['toRef'] - const toRefs: typeof import('vue')['toRefs'] - const toValue: typeof import('vue')['toValue'] - const triggerRef: typeof import('vue')['triggerRef'] - const unref: typeof import('vue')['unref'] - const useAttrs: typeof import('vue')['useAttrs'] - const useCssModule: typeof import('vue')['useCssModule'] - const useCssVars: typeof import('vue')['useCssVars'] - const useId: typeof import('vue')['useId'] - const useLink: typeof import('vue-router')['useLink'] - const useModel: typeof import('vue')['useModel'] - const useRoute: typeof import('vue-router')['useRoute'] - const useRouter: typeof import('vue-router')['useRouter'] - const useSlots: typeof import('vue')['useSlots'] - const useTemplateRef: typeof import('vue')['useTemplateRef'] - const watch: typeof import('vue')['watch'] - const watchEffect: typeof import('vue')['watchEffect'] - const watchPostEffect: typeof import('vue')['watchPostEffect'] - const watchSyncEffect: typeof import('vue')['watchSyncEffect'] -} -// for type re-export -declare global { - // @ts-ignore - export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, ShallowRef, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' - import('vue') -} diff --git a/docs/psh.md b/docs/psh.md index 73a3495..b20a2fc 100644 --- a/docs/psh.md +++ b/docs/psh.md @@ -1 +1,116 @@ -:p~~~ \ No newline at end of file +:p~~~ + +## 金华人才网数据库表分析 +### 用户体系表 + +#### 用户表 +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| user_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 用户唯一ID | +| username | VARCHAR(50) | NOT NULL, UNIQUE | 用户名 | +| password_hash | VARCHAR(255) | NOT NULL | 加密密码 | +| email | VARCHAR(100) | NOT NULL, UNIQUE | 邮箱 | +| user_type | ENUM('job_seeker', 'employer', 'admin') | NOT NULL | 用户类型 | +| phone | VARCHAR(20) | | 手机号 | +| registration_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 注册时间 | +| status | ENUM('active', 'inactive', 'banned') | DEFAULT 'active' | 状态 | + +#### 个人用户表(关联) + +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| company_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 企业ID | +| user_id | BIGINT | FOREIGN KEY | **关联用户**ID | +| company_name | VARCHAR(200) | NOT NULL | 企业名称 | +| industry | VARCHAR(100) | | 行业 | +| company_size | ENUM('1-50', '51-200', '201-500') | | 企业规模 | +| contact_person | VARCHAR(100) | | 联系人 | + +#### 企业用户表(关联) + +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| company_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 企业ID | +| user_id | BIGINT | FOREIGN KEY | 关联用户ID | +| company_name | VARCHAR(200) | NOT NULL | 企业名称 | +| industry | VARCHAR(100) | | 行业 | +| company_size | ENUM('1-50', '51-200', '201-500') | | 企业规模 | +| contact_person | VARCHAR(100) | | 联系人 | + +### 招聘核心表 + +#### 职位表 +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| job_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 职位ID | +| company_id | BIGINT | FOREIGN KEY | 企业ID | +| job_title | VARCHAR(200) | NOT NULL | 职位名称 | +| job_category | VARCHAR(100) | | 职位类别 | +| salary_min | DECIMAL(10,2) | | 最低薪资 | +| salary_max | DECIMAL(10,2) | | 最高薪资 | +| work_location | VARCHAR(100) | | 工作地点 | +| status | ENUM('published', 'draft', 'closed') | DEFAULT 'published' | 状态 | + +#### 投递记录表 +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| application_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 投递ID | +| seeker_id | BIGINT | FOREIGN KEY | 求职者ID | +| job_id | BIGINT | FOREIGN KEY | 职位ID | +| apply_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 投递时间 | +| status | ENUM('pending', 'viewed', 'accepted', 'rejected') | DEFAULT 'pending' | 状态 | + +### 功能服务表 + +#### 人才政策表 +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| policy_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 政策ID | +| policy_title | VARCHAR(200) | NOT NULL | 政策标题 | +| policy_type | ENUM('subsidy', 'housing', 'entrepreneurship') | | 政策类型 | +| applicable_target | ENUM('graduates', 'postgraduates', 'all') | | 适用对象 | +| status | ENUM('active', 'expired') | DEFAULT 'active' | 状态 | + + +#### 政策申请表 +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| apply_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 申请ID | +| user_id | BIGINT | FOREIGN KEY | 用户ID | +| policy_id | BIGINT | FOREIGN KEY | 政策ID | +| apply_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 申请时间 | +| status | ENUM('pending', 'approved', 'rejected') | DEFAULT 'pending' | 申请状态 | + +#### 招聘活动表 +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| event_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 活动ID | +| event_name | VARCHAR(200) | NOT NULL | 活动名称 | +| event_time | DATETIME | | 活动时间 | +| event_location | VARCHAR(300) | | 活动地点 | +| organizer | VARCHAR(200) | | 主办方 | +| status | ENUM('upcoming', 'ongoing', 'completed') | | 状态 | + +#### 增值服务表 + +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| service_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 服务ID | +| service_name | VARCHAR(100) | NOT NULL | 服务名称 | +| service_price | DECIMAL(10,2) | | 服务价格 | +| target_audience | ENUM('job_seeker', 'employer', 'both') | | 目标用户 | +| status | ENUM('active', 'inactive') | DEFAULT 'active' | 状态 | + + +### 辅助功能表 + +#### 搜素记录表 + +| 字段名 | 数据类型 | 约束 | 说明 | +|--------|----------|------|------| +| search_id | BIGINT | PRIMARY KEY, AUTO_INCREMENT | 搜索ID | +| user_id | BIGINT | FOREIGN KEY | 用户ID | +| keyword | VARCHAR(200) | | 搜索关键词 | +| search_type | ENUM('job', 'company', 'policy') | | 搜索类型 | +| search_time | DATETIME | DEFAULT CURRENT_TIMESTAMP | 搜索时间 | + diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index 21d82a0..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { defineConfig } from "vite"; -import vue from "@vitejs/plugin-vue"; -import { fileURLToPath, URL } from "node:url"; -import tailwindcss from "@tailwindcss/vite"; -import vueJsx from "@vitejs/plugin-vue-jsx"; -import AutoImport from "unplugin-auto-import/vite"; - -// https://vite.dev/config/ -export default defineConfig({ - plugins: [ - vue(), - tailwindcss(), - vueJsx(), - AutoImport({ - imports: ["vue", "vue-router"], - dts: true, - }), - ], - resolve: { - alias: { - "@": fileURLToPath(new URL("./src", import.meta.url)), - }, - }, -});