diff --git a/src/api/recruit/recruitstudentsignup.ts b/src/api/recruit/recruitstudentsignup.ts index ffc02f3..956a249 100644 --- a/src/api/recruit/recruitstudentsignup.ts +++ b/src/api/recruit/recruitstudentsignup.ts @@ -433,6 +433,19 @@ export const changeMajor = (obj: any) => { }); }; +/** + * 退档恢复 + * @param obj + */ +export const resetSign = (obj: any) => { + return request({ + url: '/recruit/recruitstudentsignup/resetSign', + method: 'post', + data: obj, + }); +}; + + /** * 重新推送 * @param obj @@ -550,3 +563,11 @@ export const interview = (obj: any) => { data: obj, }); }; + + +export const queryAllRecruitUser = () => { + return request({ + url: '/recruit/recruitstudentsignup/queryAllRecruitUser', + method: 'get' + }); +}; diff --git a/src/api/recruit/recruitstudentsignupturnover.ts b/src/api/recruit/recruitstudentsignupturnover.ts index bd30fac..67f0b7a 100644 --- a/src/api/recruit/recruitstudentsignupturnover.ts +++ b/src/api/recruit/recruitstudentsignupturnover.ts @@ -52,8 +52,8 @@ export const delObj = (id: string | number) => { */ export const putObj = (obj: any) => { return request({ - url: '/recruit/recruitstudentsignupturnover', - method: 'put', + url: '/recruit/recruitstudentsignupturnover/edit', + method: 'post', data: obj, }); }; diff --git a/src/components/ClickableTag/index.vue b/src/components/ClickableTag/index.vue index 8fe6817..1961923 100644 --- a/src/components/ClickableTag/index.vue +++ b/src/components/ClickableTag/index.vue @@ -2,7 +2,8 @@ (), { @@ -50,7 +52,8 @@ const props = withDefaults(defineProps(), { size: 'default', leftIcon: undefined, middleIcon: undefined, - rightIcon: undefined + rightIcon: undefined, + width: undefined }) // 获取实际的右侧图标:未传值时使用默认图标,传 null 则不显示 @@ -97,7 +100,6 @@ export default { } } } - .middle-icon { animation: pulse 1.5s ease-in-out infinite; } diff --git a/src/components/DetailPopover/README.md b/src/components/DetailPopover/README.md new file mode 100644 index 0000000..417cb2a --- /dev/null +++ b/src/components/DetailPopover/README.md @@ -0,0 +1,162 @@ +# DetailPopover 详情弹窗组件 + +一个通用的详情弹窗组件,用于展示结构化的详情信息。 + +## 功能特性 + +- ✅ 自定义标题和标题图标 +- ✅ 支持多个详情项(label + content) +- ✅ 支持横向/纵向布局 +- ✅ 支持自定义内容(插槽或组件) +- ✅ 支持标签图标 +- ✅ 支持内容区域自定义样式类 + +## Props + +| 参数 | 说明 | 类型 | 可选值 | 默认值 | +|-----|------|------|-------|--------| +| title | 标题 | string | - | '' | +| titleIcon | 标题图标组件 | Component | - | undefined | +| items | 详情项列表 | DetailItem[] | - | [] | +| placement | 弹出位置 | string | top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end | right | +| width | Popover 宽度 | string \| number | - | 300 | +| trigger | 触发方式 | string | click/focus/hover/contextmenu | click | +| popperClass | Popover 自定义类名 | string | - | '' | + +## DetailItem 接口 + +```typescript +interface DetailItem { + label?: string // 标签文本 + content?: string | number // 内容文本 + labelIcon?: Component // 标签图标 + layout?: 'horizontal' | 'vertical' // 布局方向,默认 vertical + contentClass?: string // 内容区域的自定义类名 + component?: Component // 自定义组件 + componentProps?: Record // 自定义组件的 props +} +``` + +## Slots + +| 插槽名 | 说明 | 参数 | +|--------|------|------| +| reference | 触发元素 | - | +| content-{index} | 自定义第 index 项的内容 | { item: DetailItem } | +| custom-content | 自定义内容(显示在所有详情项之后) | - | + +## 使用示例 + +### 基础用法 + +```vue + + + +``` + +### 横向布局 + +```vue + + + +``` + +### 使用插槽自定义内容 + +```vue + + + + + + + + + +``` + +### 使用标签图标 + +```vue + + + +``` + +## 样式自定义 + +可以通过 `contentClass` 为内容区域添加自定义样式类: + +```vue + + + + + +``` diff --git a/src/components/DetailPopover/index.vue b/src/components/DetailPopover/index.vue new file mode 100644 index 0000000..e227ac3 --- /dev/null +++ b/src/components/DetailPopover/index.vue @@ -0,0 +1,185 @@ + + + + + + + diff --git a/src/config/global.ts b/src/config/global.ts index dd8dbc0..9079377 100644 --- a/src/config/global.ts +++ b/src/config/global.ts @@ -62,12 +62,6 @@ export const PUSHED_STATUS_LIST = [ { label: "已推送", value: "1" ,type: "success"}, ]; -// 数据来源 (使用字典 recruit_data_source) -export const DATA_SOURCE_LIST = [ - { label: "学校", value: "0" }, - { label: "市平台", value: "1" } -]; - // 录取通知书发放状态 export const NOTICE_SEND_STATUS_LIST = [ { label: "未发放", value: "0" }, @@ -123,6 +117,13 @@ export const NEW_CITY_MATERIAL_STATUS_LIST = [ { label: "已上传", value: "1" }, ]; +// 异动审核状态 +export const TURNOVER_AUDIT_STATUS_LIST = [ + { label: "待审核", value: "1" ,type: "warning", icon: "Clock"}, + { label: "驳回", value: "2" ,type: "danger", icon: "CircleClose"}, + { label: "通过", value: "3" ,type: "success", icon: "CircleCheck"} +]; + /** * 根据值从状态列表中获取配置项 * @param statusList 状态列表 diff --git a/src/theme/element.scss b/src/theme/element.scss index 9086ca8..29aa617 100644 --- a/src/theme/element.scss +++ b/src/theme/element.scss @@ -350,6 +350,12 @@ color: var(--el-text-color-regular); } + &.detail-dialog .el-dialog__body { + min-height: 80vh !important; + max-height: 80vh !important; + height: 80vh !important; + } + .el-dialog__footer { padding: 12px 20px; diff --git a/src/views/recruit/backSchoolCheckin/stu-check-in.vue b/src/views/recruit/backSchoolCheckin/stu-check-in.vue index 3e99af1..84afc6f 100644 --- a/src/views/recruit/backSchoolCheckin/stu-check-in.vue +++ b/src/views/recruit/backSchoolCheckin/stu-check-in.vue @@ -49,6 +49,7 @@ import { ref, reactive } from 'vue' import { useMessage } from '/@/hooks/message' import { useDict } from '/@/hooks/dict' import { putBackObj } from '/@/api/recruit/recruitstudentsignup' +import { getDicts } from '/@/api/admin/dict' // 消息提示 hooks const message = useMessage() @@ -119,8 +120,8 @@ const init = async (formData: any, pageData: any) => { checkInStatusData.value = [] try { - const data = await getTypeValue('check_in_status') - checkInStatusData.value = data.data || [] + const dictData = await getDicts('check_in_status') + checkInStatusData.value = dictData.data || [] } catch (error) { console.error('获取字典数据失败', error) } diff --git a/src/views/recruit/newstucheckin/index.vue b/src/views/recruit/newstucheckin/index.vue index 61914ab..2e7a226 100644 --- a/src/views/recruit/newstucheckin/index.vue +++ b/src/views/recruit/newstucheckin/index.vue @@ -1,32 +1,87 @@ - - - + - + - - - - - + + + diff --git a/src/views/recruit/recruitstudentsignup/majorChange.vue b/src/views/recruit/recruitstudentsignup/majorChange.vue index 5adfbfa..b96a15f 100644 --- a/src/views/recruit/recruitstudentsignup/majorChange.vue +++ b/src/views/recruit/recruitstudentsignup/majorChange.vue @@ -25,14 +25,14 @@ - + - + @@ -46,7 +46,7 @@ - + - + - + - {{ dataForm.feeTuition + dataForm.feeAgency }} + {{ Number(dataForm.feeTuition) + Number(dataForm.feeAgency) }} - - + + @@ -110,17 +110,18 @@