diff --git a/.env b/.env index 0f9c97e2..b958619d 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ # 标题 -VITE_APP_TITLE=芋道管理系统 +VITE_APP_TITLE=AI心航360° # 项目本地运行端口号 VITE_PORT=80 diff --git a/src/api/prison/ai-dash-entry/index.ts b/src/api/prison/ai-dash-entry/index.ts new file mode 100644 index 00000000..570af494 --- /dev/null +++ b/src/api/prison/ai-dash-entry/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +/** 风险分布数据项 */ +export interface RiskDistributionVO { + name: string + value: number + color: string +} + +/** 风险趋势数据项 */ +export interface RiskTrendVO { + month: string + highRisk: number + warning: number + normal: number +} + +/** AI心航360°统计数据 */ +export interface AiDashEntryStatisticsVO { + // 统计卡片 + totalCount: number + monthlyNewCount: number + monthlyChange: number + highRiskCount: number + highRiskMonthlyNew: number + highRiskMonthlyChange: number + warningCount: number + warningMonthlyNew: number + warningMonthlyChange: number + normalCount: number + normalMonthlyNew: number + normalMonthlyChange: number + // 图表数据 + riskDistribution: RiskDistributionVO[] + riskTrendData: RiskTrendVO[] +} + +/** 重点关注对象 */ +export interface FocusPersonVO { + id: number + name: string + gender: string + age: number + riskLevelType: string + riskLevel: string + supervisionArea: string + psychologicalRiskLevel: string + isNew: boolean +} + +/** 重点关注对象分页请求 */ +export interface FocusPersonPageReqVO { + pageNo: number + pageSize: number + riskLevelType?: string + name?: string + areaId?: number +} + +/** AI心航360° API */ +export const AiDashEntryApi = { + /** 获取AI心航360°统计数据 */ + getStatistics: async (): Promise => { + return await request.get({ url: '/prison/dashboard/ai-dash-entry/statistics' }) + }, + + /** 获取重点关注对象分页列表 */ + getFocusPersonPage: async (params: FocusPersonPageReqVO) => { + return await request.get({ url: '/prison/dashboard/ai-dash-entry/focus-person-page', params }) + } +} diff --git a/src/api/prison/consumption/index.ts b/src/api/prison/consumption/index.ts index e0a124bf..73651199 100644 --- a/src/api/prison/consumption/index.ts +++ b/src/api/prison/consumption/index.ts @@ -90,5 +90,17 @@ export const ConsumptionApi = { // 导出消费订单 Excel exportConsumption: async (params: ConsumptionPageParams) => { return await request.download({ url: `/prison/consumption/export-excel`, params }) + }, + + // 获取导入模板 + getImportTemplate: async () => { + return await request.download({ url: `/prison/consumption/get-import-template` }) + }, + + // 导入消费记录 + importConsumption: async (file: File) => { + const formData = new FormData() + formData.append('file', file) + return await request.upload({ url: `/prison/consumption/import`, data: formData }) } } diff --git a/src/api/prison/evaluation-report/index.ts b/src/api/prison/evaluation-report/index.ts index 8f3d0d19..6cbd342b 100644 --- a/src/api/prison/evaluation-report/index.ts +++ b/src/api/prison/evaluation-report/index.ts @@ -1,4 +1,5 @@ import request from '@/config/axios' +import { getAccessToken } from '@/utils/auth' export interface TemplateVO { id?: number @@ -72,10 +73,15 @@ export interface ReportVO { templateName?: string title?: string evaluationDate?: string + evaluationType?: number + evaluationCycle?: number riskLevel?: number conclusion?: string suggestions?: string // 与后端一致 areaName?: string // 与后端一致 + areaId?: number + evaluatorId?: number + evaluatorName?: string status: number aiStatus?: number auditorId?: number @@ -86,6 +92,17 @@ export interface ReportVO { createTime?: string } +// 报告更新请求VO - 只包含需要更新的字段 +export interface ReportUpdateReqVO { + id: number + dimensions?: string // 维度内容,JSON格式 + conclusion?: string + suggestions?: string + riskLevel?: number + status?: number + remark?: string +} + export interface ReportPageReqVO { pageNo: number pageSize: number @@ -109,6 +126,7 @@ export interface DimensionDataVO { modifiedTime?: string dataSource?: string rawData?: string + createTime?: string } export interface CommentVO { @@ -318,7 +336,8 @@ export interface DimensionDataSourcesVO { // ========== 流式生成 API ========== export const StreamApi = { // 流式生成维度内容 - streamGenerateDimension: async (dimensionId: number, prisonerId: number, customPrompt?: string): Promise => { + // 注意:EventSource API 不支持自定义 HTTP Header,所以需要通过 URL 参数传递 token + streamGenerateDimension: async (dimensionId: number, prisonerId: number, customPrompt?: string, systemPrompt?: string): Promise => { const baseUrl = import.meta.env.VITE_BASE_URL || '' const url = new URL(`${baseUrl}/admin-api/prison/evaluation-report/dimension/stream-generate`, window.location.origin) url.searchParams.set('dimensionId', dimensionId.toString()) @@ -326,6 +345,14 @@ export const StreamApi = { if (customPrompt) { url.searchParams.set('customPrompt', customPrompt) } + if (systemPrompt) { + url.searchParams.set('systemPrompt', systemPrompt) + } + // 添加 token 参数用于认证(EventSource 不支持 Header) + const token = getAccessToken() + if (token) { + url.searchParams.set('token', token) + } return new EventSource(url.toString()) } } diff --git a/src/api/prison/evaluation/index.ts b/src/api/prison/evaluation/index.ts index eb7d8199..44f6f814 100644 --- a/src/api/prison/evaluation/index.ts +++ b/src/api/prison/evaluation/index.ts @@ -108,12 +108,17 @@ export interface EvaluationReport { /** 快捷评语 */ export interface ReportComment { id: number + commentType: number // 评语类型:1-入监评估 2-定期考核 3-出监评估 4-减刑假释 5-专项评估 + dimensionId?: number // 维度ID + dimensionName?: string // 维度名称 content: string // 评语内容 - type: number // 评语类型:1-入监评估 2-定期考核 3-出监评估 4-减刑假释 5-专项评估 - dimension?: string // 适用维度 - usageCount?: number // 使用次数 + level?: number // 评级等级:1-优秀 2-良好 3-一般 4-较差 5-危险 + tags?: string // 标签(逗号分隔) + useCount?: number // 使用次数 isBuiltin?: boolean // 是否内置 + sort?: number // 排序 status: number // 状态:0-停用 1-启用 + remark?: string // 备注 creator?: string createTime?: string } diff --git a/src/api/prison/report/index.ts b/src/api/prison/report/index.ts index a80c1fcb..410e447c 100644 --- a/src/api/prison/report/index.ts +++ b/src/api/prison/report/index.ts @@ -1,5 +1,8 @@ import request from '@/config/axios' +// 导入评估报告更新请求类型 +import type { ReportUpdateReqVO } from '../evaluation-report' + // ============ 评估报告模板相关类型 ============ /** 评估报告模板分页参数 */ @@ -63,6 +66,8 @@ export interface ReportDimensionContent { aiGenerateTime?: string // AI生成时间 lastModifyTime?: string // 最后修改时间 lastModifyBy?: string // 最后修改人 + enableAi?: boolean + sort?: number } /** 评估报告 */ @@ -72,6 +77,8 @@ export interface Report { prisonerId: number // 罪犯ID prisonerNo: string // 罪犯编号 prisonerName?: string // 罪犯姓名 + areaId?: number // 监区ID + areaName?: string // 监区名称 templateId: number // 模板ID templateName?: string // 模板名称 title: string // 报告标题 @@ -97,6 +104,23 @@ export interface Report { createTime?: string } +/** 报告创建请求 */ +export interface ReportCreateReqVO { + prisonerId: number + templateId: number + title: string + reportDate?: string + evaluationDate?: string + evaluationCycle?: number + evaluationType?: number + prisonerNo?: string + prisonerName?: string + areaId?: number + areaName?: string + status?: number + dimensions?: ReportDimensionContent[] +} + // ============ 快捷评语相关类型 ============ /** 快捷评语分类 */ @@ -201,12 +225,12 @@ export const ReportApi = { }, // 新增报告 - createReport: async (data: Report) => { + createReport: async (data: ReportCreateReqVO) => { return await request.post({ url: '/prison/evaluation-report/report/create', data }) }, - // 修改报告 - updateReport: async (data: Report) => { + // 修改报告 - 只传递需要更新的字段 + updateReport: async (data: ReportUpdateReqVO) => { return await request.put({ url: '/prison/evaluation-report/report/update', data }) }, diff --git a/src/api/prison/risk/index.ts b/src/api/prison/risk/index.ts index c8c03223..f29e46c1 100644 --- a/src/api/prison/risk/index.ts +++ b/src/api/prison/risk/index.ts @@ -119,5 +119,10 @@ export const RiskApi = { // 导出风险评估 Excel exportRisk: async (params) => { return await request.download({ url: `/prison/risk/export-excel`, params }) + }, + + // 获取导入模板 + getImportTemplate: async () => { + return await request.download({ url: `/prison/risk/get-import-template` }) } } diff --git a/src/api/prison/riskassessment/index.ts b/src/api/prison/riskassessment/index.ts index 1abfa0b1..a1bf2c47 100644 --- a/src/api/prison/riskassessment/index.ts +++ b/src/api/prison/riskassessment/index.ts @@ -72,5 +72,10 @@ export const RiskAssessmentApi = { // 导出危险评估 Excel exportRiskAssessment: async (params: RiskAssessmentPageParams) => { return await request.download({ url: `/prison/risk-assessment/export-excel`, params }) + }, + + // 获取导入模板 + getImportTemplate: async () => { + return await request.download({ url: `/prison/risk-assessment/get-import-template` }) } } \ No newline at end of file diff --git a/src/api/prison/score/index.ts b/src/api/prison/score/index.ts index 9dbd5b9e..63469541 100644 --- a/src/api/prison/score/index.ts +++ b/src/api/prison/score/index.ts @@ -74,5 +74,10 @@ export const ScoreApi = { // 导出计分考核 Excel exportScore: async (params: ScorePageParams) => { return await request.download({ url: `/prison/score/export-excel`, params }) + }, + + // 获取导入模板 + getImportTemplate: async () => { + return await request.download({ url: `/prison/score/get-import-template` }) } } \ No newline at end of file diff --git a/src/api/prison/situation/index.ts b/src/api/prison/situation/index.ts index 189e4533..95445208 100644 --- a/src/api/prison/situation/index.ts +++ b/src/api/prison/situation/index.ts @@ -114,6 +114,11 @@ export const SituationApi = { return await request.download({ url: `/prison/situation/export-excel`, params }) }, + // 获取导入模板 + getImportTemplate: async () => { + return await request.download({ url: `/prison/situation/get-import-template` }) + }, + // 导出 AreaApi 供页面使用 AreaApi } diff --git a/src/api/prison/warning/index.ts b/src/api/prison/warning/index.ts index 5e138017..35963bf0 100644 --- a/src/api/prison/warning/index.ts +++ b/src/api/prison/warning/index.ts @@ -169,6 +169,11 @@ export const WarningApi = { return await request.download({ url: `/prison/warning/export-excel`, params }) }, + // 获取导入模板 + getImportTemplate: async () => { + return await request.download({ url: `/prison/warning/get-import-template` }) + }, + // 导出 AreaApi 供页面使用 AreaApi } diff --git a/src/assets/imgs/avatar.png b/src/assets/imgs/avatar.png new file mode 100644 index 00000000..3dcdf1c0 Binary files /dev/null and b/src/assets/imgs/avatar.png differ diff --git a/src/assets/imgs/logo.png b/src/assets/imgs/logo.png index 7e1043f2..3dcdf1c0 100644 Binary files a/src/assets/imgs/logo.png and b/src/assets/imgs/logo.png differ diff --git a/src/components/DictTag/src/DictTag.vue b/src/components/DictTag/src/DictTag.vue index 6414eaab..a1dd7240 100644 --- a/src/components/DictTag/src/DictTag.vue +++ b/src/components/DictTag/src/DictTag.vue @@ -72,7 +72,7 @@ export default defineComponent({ // 添加标签的文字颜色为白色,解决自定义背景颜色时标签文字看不清的问题 diff --git a/src/components/DiyEditor/index.vue b/src/components/DiyEditor/index.vue index fa23a4d0..96ed4606 100644 --- a/src/components/DiyEditor/index.vue +++ b/src/components/DiyEditor/index.vue @@ -171,7 +171,7 @@ />
手机扫码预览 - +
diff --git a/src/components/ImportDialog/index.vue b/src/components/ImportDialog/index.vue new file mode 100644 index 00000000..2e112a08 --- /dev/null +++ b/src/components/ImportDialog/index.vue @@ -0,0 +1,163 @@ + + + diff --git a/src/config/axios/service.ts b/src/config/axios/service.ts index 9ae5e93f..75f6df0f 100644 --- a/src/config/axios/service.ts +++ b/src/config/axios/service.ts @@ -82,14 +82,18 @@ service.interceptors.request.use( const isFormUrlEncoded = contentType === 'application/x-www-form-urlencoded' || contentType.includes('application/x-www-form-urlencoded') + const isMultipartFormData = + contentType === 'multipart/form-data' || + contentType.includes('multipart/form-data') if (isFormUrlEncoded) { // 使用表单序列化 if (config.data && typeof config.data !== 'string') { config.data = qs.stringify(config.data, { allowDots: true, indices: false }) } - } else { + } else if (!isMultipartFormData) { // 默认使用 JSON 序列化,确保数组被正确序列化为 JSON 数组 // 这包括 'application/json' 以及其他情况 + // 注意:multipart/form-data 类型不进行转换,需要保持 FormData 对象原样 if (config.data && typeof config.data === 'object') { config.data = JSON.stringify(config.data) config.headers['Content-Type'] = 'application/json' @@ -115,7 +119,6 @@ service.interceptors.request.use( }, (error: AxiosError) => { // Do something with request error - console.log(error) // for debug return Promise.reject(error) } ) @@ -235,7 +238,6 @@ service.interceptors.response.use( } }, (error: AxiosError) => { - console.log('err' + error) // for debug let { message } = error const { t } = useI18n() if (message === 'Network Error') { diff --git a/src/layout/components/UserInfo/src/UserInfo.vue b/src/layout/components/UserInfo/src/UserInfo.vue index 355aabc8..49231c5f 100644 --- a/src/layout/components/UserInfo/src/UserInfo.vue +++ b/src/layout/components/UserInfo/src/UserInfo.vue @@ -68,10 +68,10 @@ const toDocument = () => {
{{ t('common.profile') }}
- +
{{ t('lock.lockScreen') }}
diff --git a/src/locales/en.ts b/src/locales/en.ts index ace21ae6..700ec47d 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -113,8 +113,8 @@ export default { small: 'Small' }, login: { - welcome: 'Welcome to the system', - message: 'Backstage management system', + welcome: 'Welcome to AI Xinhang 360°', + message: 'Focusing on psychological needs of different individuals, building a full-process, intelligent one-stop psychological evaluation service platform, making psychological assessment more professional, efficient, and caring.', tenantname: 'TenantName', username: 'Username', password: 'Password', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index e3e7a118..e617cb95 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -114,8 +114,8 @@ export default { small: '小' }, login: { - welcome: '欢迎使用本系统', - message: '开箱即用的中后台管理系统', + welcome: '欢迎使用AI心航360°', + message: '聚焦不同人员心理需求,构建全流程、智能化的一站式心理测评服务平台,让心理评估更专业、更高效、更贴心。', tenantname: '租户名称', username: '用户名', password: '密码', @@ -470,4 +470,4 @@ export default { } }, 'OAuth 2.0': 'OAuth 2.0' // 避免菜单名是 OAuth 2.0 时,一直 warn 报错 -} \ No newline at end of file +} diff --git a/src/permission.ts b/src/permission.ts index a01a4f69..b087307f 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -55,18 +55,13 @@ const whiteList = [ '/register', '/oauthLogin/gitee', '/dashboard', // Dashboard 页面 - '/dashentry' // DashEntry 页面 + '/ai-dash-entry' // DashEntry 页面 ] // 路由加载前 router.beforeEach(async (to, from, next) => { start() loadStart() - // 如果是主页路径或 dashboard 路径,直接放行(跳过权限验证) - if (to.path === '/dashboard' || to.path === '/dashentry') { - next() - return - } if (getAccessToken()) { if (to.path === '/login') { next({ path: '/' }) @@ -100,6 +95,10 @@ router.beforeEach(async (to, from, next) => { } } else { if (whiteList.indexOf(to.path) !== -1) { + const permissionStore = usePermissionStoreWithOut() + if (permissionStore.getRouters.length === 0) { + await permissionStore.generateRoutes() + } next() } else { next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index d7b4fbe4..f3eebca5 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -59,7 +59,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ children: [ { path: 'index', - component: () => import('@/views/Home/Index.vue'), + component: () => import('@/views/DashEntry/DashEntry.vue'), name: 'Index', meta: { title: t('router.home'), @@ -186,16 +186,6 @@ const remainingRouter: AppRouteRecordRaw[] = [ } }, - { - path: '/dashentry', - component: () => import('@/views/DashEntry/DashEntry.vue'), - name: 'DashEntry', - meta: { - hidden: true, - title: 'DashEntry', - noTagsView: true - } - }, { path: '/login', component: () => import('@/views/Login/Login.vue'), @@ -769,158 +759,8 @@ const remainingRouter: AppRouteRecordRaw[] = [ } ] }, - // 监管看板路由(开发测试用,上线后由后端菜单动态生成) - { - path: '/prison', - component: Layout, - name: 'Prison', - meta: { - hidden: true - }, - children: [ - { - path: 'prisoner/dashboard', - component: () => import('@/views/Dashboard/Index.vue'), - name: 'PrisonerDashboardInPrison', - meta: { - title: '个人中心', - icon: 'ep:user', - permission: 'prison:prisoner:dashboard', - noCache: false, - hidden: true, - canTo: true - } - }, - { - path: 'situation-platform', - component: () => import('@/views/prison/situation/index.vue'), - name: 'PrisonSituationPlatform', - meta: { - title: '狱情收集', - icon: 'ep:warning', - permission: 'prison:situation:query', - noCache: false, - hidden: true, - canTo: true - } - }, - { - path: 'report/edit', - component: () => import('@/views/prison/evaluation-mgmt/report/ReportForm.vue'), - name: 'PrisonReportEdit', - meta: { - title: '评估报告编辑', - icon: 'ep:document-checked', - permission: 'prison:report:update', - noCache: true, - hidden: true, - canTo: true - } - } - ] - }, - // 评估报告管理路由(开发测试用) - { - path: '/prison/evaluation-mgmt', - component: Layout, - redirect: '/prison/evaluation-mgmt/template', - name: 'PrisonEvaluationMgmt', - meta: { - title: '评估报告管理', - icon: 'documentation', - hidden: true - }, - children: [ - { - path: 'template', - component: () => import('@/views/prison/evaluation-mgmt/template/index.vue'), - name: 'EvaluationTemplate', - meta: { - title: '模板管理', - icon: 'component', - permission: 'prison:evaluation-report:template:query', - noCache: false, - hidden: false, - canTo: true - } - }, - { - path: 'report', - component: () => import('@/views/prison/evaluation-mgmt/report/index.vue'), - name: 'EvaluationReport', - meta: { - title: '报告管理', - icon: 'documentation', - permission: 'prison:evaluation-report:report:query', - noCache: false, - hidden: false, - canTo: true - } - }, - { - path: 'report/edit', - component: () => import('@/views/prison/evaluation-mgmt/report/ReportForm.vue'), - name: 'EvaluationReportEdit', - meta: { - title: '评估报告编辑', - icon: 'document-checked', - permission: 'prison:evaluation-report:report:update', - noCache: true, - hidden: true, - canTo: true - } - }, - { - path: 'comment', - component: () => import('@/views/prison/evaluation-mgmt/comment/index.vue'), - name: 'EvaluationComment', - meta: { - title: '评语管理', - icon: 'chat-dot-round', - permission: 'prison:evaluation-report:comment:query', - noCache: false, - hidden: false, - canTo: true - } - }, - { - path: 'report-template', - redirect: '/prison/evaluation-mgmt/template', - name: 'ReportTemplateRedirect', - meta: { - title: '报告模板', - hidden: true - } - } - ] - }, - // 服刑人员评估报告管理(新版) - { - path: '/prison/evaluation-mgmt', - component: Layout, - redirect: '/prison/evaluation-mgmt/prisoner-manage', - name: 'PrisonEvaluationMgmt', - meta: { - title: '评估报告管理', - icon: 'documentation', - hidden: false - }, - children: [ - { - path: 'prisoner-manage', - component: () => import('@/views/prison/evaluation-report/prisoner/ReportManage.vue'), - name: 'PrisonerReportManage', - meta: { - title: '服刑人员报告管理', - icon: 'user', - permission: 'prison:evaluation-report:prisoner:query', - noCache: false, - hidden: false, - canTo: true - } - } - ] - } + + ] export default remainingRouter diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index 4a2ca9ae..6aaf58a1 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -72,34 +72,34 @@ export const useAppStore = defineStore('app', { isDark: wsCache.get(CACHE_KEY.IS_DARK) || false, // 是否是暗黑模式 currentSize: wsCache.get('default') || 'default', // 组件尺寸 theme: wsCache.get(CACHE_KEY.THEME) || { - // 主题色 - elColorPrimary: '#409eff', - // 左侧菜单边框颜色 - leftMenuBorderColor: 'inherit', - // 左侧菜单背景颜色 - leftMenuBgColor: '#001529', - // 左侧菜单浅色背景颜色 - leftMenuBgLightColor: '#0f2438', - // 左侧菜单选中背景颜色 - leftMenuBgActiveColor: 'var(--el-color-primary)', - // 左侧菜单收起选中背景颜色 - leftMenuCollapseBgActiveColor: 'var(--el-color-primary)', - // 左侧菜单字体颜色 - leftMenuTextColor: '#bfcbd9', - // 左侧菜单选中字体颜色 - leftMenuTextActiveColor: '#fff', - // logo字体颜色 - logoTitleTextColor: '#fff', - // logo边框颜色 - logoBorderColor: 'inherit', - // 头部背景颜色 - topHeaderBgColor: '#fff', - // 头部字体颜色 - topHeaderTextColor: 'inherit', - // 头部悬停颜色 - topHeaderHoverColor: '#f6f6f6', - // 头部边框颜色 - topToolBorderColor: '#eee' + // 主题色 + elColorPrimary: '#536dfe', + // 左侧菜单边框颜色 + leftMenuBorderColor: '#eee', + // 左侧菜单背景颜色 + leftMenuBgColor: '#fff', + // 左侧菜单浅色背景颜色 + leftMenuBgLightColor: '#fff', + // 左侧菜单选中背景颜色 + leftMenuBgActiveColor: 'RGBA(83,109,254,0.1)', + // 左侧菜单收起选中背景颜色 + leftMenuCollapseBgActiveColor: 'RGBA(83,109,254,0.1)', + // 左侧菜单字体颜色 + leftMenuTextColor: '#333', + // 左侧菜单选中字体颜色 + leftMenuTextActiveColor: 'var(--el-color-primary)', + // logo字体颜色 + logoTitleTextColor: 'inherit', + // logo边框颜色 + logoBorderColor: '#eee', + // 头部背景颜色 + topHeaderBgColor: '#fff', + // 头部字体颜色 + topHeaderTextColor: 'inherit', + // 头部悬停颜色 + topHeaderHoverColor: '#f6f6f6', + // 头部边框颜色 + topToolBorderColor: '#eee' } } }, diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 0f6d968f..57de9f77 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -270,6 +270,10 @@ export enum DICT_TYPE { PRISON_RECORD_PASS_STATUS = 'prison_record_pass_status', // 问卷答题是否及格 PRISON_RECORD_STATUS = 'prison_record_status', // 问卷答题记录状态 PRISON_QUESTION_AUTO_FILL_SOURCE = 'prison_question_auto_fill_source', // 问卷问题自动填充来源 + PRISON_SITUATION_CATEGORY = 'prison_situation_category', // 狱情分类 + PRISON_SITUATION_LEVEL = 'prison_situation_level', // 狱情等级 + PRISON_SITUATION_SOURCE = 'prison_situation_source', // 狱情来源 + PRISON_SITUATION_STATUS = 'prison_situation_status', // 狱情状态 PRISON_AREA_LEVEL = 'prison_area_level', // 监区级别:1-监区(大队) 2-分监区(中队) PRISON_RELEASE_TYPE = 'prison_release_type', // 释放类型:1-刑满释放 2-假释 3-暂予监外执行 4-减刑 5-法院裁定释放 6-死亡 7-其他 PRISON_AREA_CHANGE_TYPE = 'prison_area_change_type', // 变动类型:1-入监分配 2-调监 3-出监 4-移交转入 5-移交转出 @@ -281,6 +285,17 @@ export enum DICT_TYPE { PRISON_ASSESSMENT_PASS_STATUS = 'prison_assessment_pass_status', // 测评及格状态:1-及格 2-不及格 3-待评分 PRISON_ASSESSMENT_ANSWER_STATUS = 'prison_assessment_answer_status', // 测评答题状态:1-待评分 2-已评分 + // ========== 预警模块 ========== + PRISON_WARNING_TYPE = 'prison_warning_type', // 预警类型 + PRISON_WARNING_LEVEL = 'prison_warning_level', // 预警等级 + PRISON_WARNING_SOURCE = 'prison_warning_source', // 预警来源 + PRISON_WARNING_STATUS = 'prison_warning_status', // 预警状态 + + // ========== 风险评估模块 ========== + PRISON_RISK_ASSESSMENT_TYPE = 'prison_risk_assessment_type', // 风险评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估 + PRISON_RISK_ASSESS_METHOD = 'prison_risk_assess_method', // 评估方式:1-问卷评估 2-量表评估 3-综合评估 + PRISON_RISK_MENTAL_STATE = 'prison_risk_mental_state', // 精神状态:1-正常 2-异常 + // ========== 评估报告模块 ========== PRISON_REPORT_STATUS = 'prison_report_status', // 报告状态:1-草稿 2-待审核 3-已通过 4-已退回 5-已归档 PRISON_REPORT_TEMPLATE_TYPE = 'prison_report_template_type', // 报告模板类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估 diff --git a/src/views/DashEntry/DashEntry.vue b/src/views/DashEntry/DashEntry.vue index 2a6d71b5..0f3af436 100644 --- a/src/views/DashEntry/DashEntry.vue +++ b/src/views/DashEntry/DashEntry.vue @@ -42,7 +42,7 @@
重点关注对象列表
- + diff --git a/src/views/prison/evaluation-mgmt/report/LlmResultPanel.vue b/src/views/prison/evaluation-mgmt/report/LlmResultPanel.vue index e0a181a3..97461971 100644 --- a/src/views/prison/evaluation-mgmt/report/LlmResultPanel.vue +++ b/src/views/prison/evaluation-mgmt/report/LlmResultPanel.vue @@ -26,6 +26,24 @@ 生成结果
+ + + {{ isEditing ? '取消编辑' : '手动编辑' }} + + + + 应用 + 复制 @@ -33,16 +51,42 @@
-
- +
+
+
+ + 分析过程 +
+
+ +
+
+ +
+
+ +
+ +
- + + 手动编辑 +
-