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/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/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/router/modules/remaining.ts b/src/router/modules/remaining.ts index d220aad4..c0c8d7e1 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -759,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/prison/evaluation-mgmt/comment/CommentForm.vue b/src/views/prison/evaluation-mgmt/comment/CommentForm.vue index ad3259d9..9af15bed 100644 --- a/src/views/prison/evaluation-mgmt/comment/CommentForm.vue +++ b/src/views/prison/evaluation-mgmt/comment/CommentForm.vue @@ -2,15 +2,15 @@ - + - - + + - - + + @@ -31,6 +31,8 @@ import { ReportCommentApi, ReportComment } from '@/api/prison/evaluation' defineOptions({ name: 'CommentForm' }) +const message = useMessage() + const emit = defineEmits(['success']) const dialogVisible = ref(false) @@ -40,15 +42,20 @@ const formRef = ref() const formData = reactive({ id: undefined, + commentType: undefined as number | undefined, + dimensionId: undefined as number | undefined, + dimensionName: '', content: '', - type: undefined as number | undefined, - dimension: '', - status: 1 + level: undefined as number | undefined, + tags: '', + sort: 0, + status: 1, + remark: '' }) const rules = { content: [{ required: true, message: '评语内容不能为空', trigger: 'blur' }], - type: [{ required: true, message: '评语类型不能为空', trigger: 'change' }], + commentType: [{ required: true, message: '评语类型不能为空', trigger: 'change' }], status: [{ required: true, message: '状态不能为空', trigger: 'change' }] } @@ -63,20 +70,30 @@ const open = (type: string, id?: number) => { const resetForm = () => { formData.id = undefined + formData.commentType = undefined + formData.dimensionId = undefined + formData.dimensionName = '' formData.content = '' - formData.type = undefined - formData.dimension = '' + formData.level = undefined + formData.tags = '' + formData.sort = 0 formData.status = 1 + formData.remark = '' } const loadData = async (id: number) => { const data = await ReportCommentApi.getComment(id) if (data) { formData.id = data.id + formData.commentType = data.commentType + formData.dimensionId = data.dimensionId + formData.dimensionName = data.dimensionName || '' formData.content = data.content - formData.type = data.type - formData.dimension = data.dimension || '' + formData.level = data.level + formData.tags = data.tags || '' + formData.sort = data.sort || 0 formData.status = data.status + formData.remark = data.remark || '' } } diff --git a/src/views/prison/evaluation-mgmt/comment/index.vue b/src/views/prison/evaluation-mgmt/comment/index.vue index 33562fb7..e395ed54 100644 --- a/src/views/prison/evaluation-mgmt/comment/index.vue +++ b/src/views/prison/evaluation-mgmt/comment/index.vue @@ -8,9 +8,9 @@ :inline="true" label-width="90px" > - + - - + + @@ -56,13 +56,13 @@ - + - - + +