cc12458 hai 1 ano
pai
achega
417848352f

+ 12 - 6
src/pages/index.vue

@@ -3,7 +3,6 @@ import UserPassword        from '@/components/UserPassword.vue';
 import UserPreview         from '@/components/UserPreview.vue';
 import type { UserModel }  from '@/model/system.model';
 import { accountMethod }   from '@/request/api/account.api';
-import { userMethod }      from '@/request/api/system.api';
 import { useAccountStore } from '@/stores';
 import { LogoutOutlined }  from '@ant-design/icons-vue';
 import { useElementSize }  from '@vueuse/core';
@@ -40,13 +39,14 @@ const current = ref<string[]>([]);
 
 
 const { loading: userLoading, send: loadUser } = useRequest(
-  () => accountMethod(token.value),
+  () => accountMethod(token.value!),
   { immediate: false },
 );
 
 async function openUserPreview() {
   if ( userLoading.value ) return;
   const { user: model } = await loadUser();
+  if ( !model ) return;
   VxeUI.drawer.open({
     title: `用户信息`,
     maskClosable: true,
@@ -117,7 +117,7 @@ function updateUserPassword(model: UserModel, index?: number) {
 <style scoped lang="scss">
 .page-container {
   > header {
-    background-color: var(--color-primary);
+    background-image: linear-gradient(to right, #154665, #1a82ca);
     padding-right: 12px;
     color: #fff;
 
@@ -149,7 +149,7 @@ function updateUserPassword(model: UserModel, index?: number) {
       line-height: normal;
 
       .ant-menu-item,
-      .ant-menu-submenu .ant-menu-submenu-title, {
+      .ant-menu-submenu .ant-menu-submenu-title {
         display: flex;
         flex-direction: column;
         justify-content: center;
@@ -167,11 +167,17 @@ function updateUserPassword(model: UserModel, index?: number) {
     }
 
     > .ant-menu-item-selected,
-    > .ant-menu-submenu-selected, {
-      background-color: #3a5788;
+    > .ant-menu-submenu-selected {
+      background-color: #1a82ca;
       color: #fff;
     }
 
+
+    .ant-menu-item:hover:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected),
+    .ant-menu-submenu-title:hover:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected) {
+      color: rgba(255, 255, 255, 0.75);
+    }
+
     .ant-menu-item-selected::after {
       display: none;
     }

+ 7 - 7
src/pages/index/patient/history.vue

@@ -26,11 +26,11 @@ const searchFormProps = reactive<VxeFormProps<PatientQuery>>({
   titleColon: true,
   data: {},
   items: [
-    { field: 'patientName', title: '患者姓名', span: 6, itemRender: { name: 'VxeInput' } },
-    // { field: 'phone', title: '手机号码', span: 6, itemRender: { name: 'VxeInput', props: { maxLength: 11 } } },
-    { field: 'cardno', title: '身份证号', span: 6, itemRender: { name: 'VxeInput', props: { maxLength: 18 } } },
+    { field: 'patientName', title: '患者姓名', span: 8, itemRender: { name: 'VxeInput' } },
+    // { field: 'phone', title: '手机号码', span: 8, itemRender: { name: 'VxeInput', props: { maxLength: 11 } } },
+    { field: 'cardno', title: '身份证号', span: 8, itemRender: { name: 'VxeInput', props: { maxLength: 18 } } },
     {
-      field: 'isHaveHealthAnalysisReport', title: '健康分析报告', span: 6, itemRender: {
+      field: 'isHaveHealthAnalysisReport', title: '健康分析报告', span: 8, itemRender: {
         name: 'VxeRadioGroup',
         options: [
           { label: '有', value: true },
@@ -42,7 +42,7 @@ const searchFormProps = reactive<VxeFormProps<PatientQuery>>({
       },
     },
     {
-      field: 'tagIds', title: '标签', span: 6, itemRender: {
+      field: 'tagIds', title: '标签', span: 8, itemRender: {
         name: 'VxeSelect',
         props: {
           loading: tagsLoading,
@@ -53,7 +53,7 @@ const searchFormProps = reactive<VxeFormProps<PatientQuery>>({
       },
     },
     {
-      span: 6, itemRender: {
+      span: 8, itemRender: {
         name: 'VxeButtonGroup',
         options: [
           { type: 'submit', content: '查询', status: 'primary' },
@@ -73,7 +73,7 @@ const gridOptions = reactive<VxeGridProps<PatientReportModel>>({
   id: 'patient-history-list',
   border: true,
   showOverflow: true,
-  height: 'auto',
+  height: 'auto', autoResize: false, syncResize: true,
   scrollY: { enabled: true, gt: 0 },
   toolbarConfig: {
     custom: true,

+ 1 - 1
src/pages/index/patient/room@aside.vue

@@ -64,7 +64,7 @@ function handle(model: PatientReportModel) {
 
   &__header {
     padding: 12px 24px;
-    background-color: var(--color-primary);
+    background-image: linear-gradient(to right, #186498, #1969a1);
   }
 
   &__content {

+ 4 - 4
src/pages/index/system/role.vue

@@ -28,15 +28,15 @@ const searchFormProps = reactive<VxeFormProps<RoleQuery>>({
     status: void 0,
   },
   items: [
-    { field: 'roleName', title: '角色名称', span: 6, itemRender: { name: 'VxeInput' } },
+    { field: 'roleName', title: '角色名称', span: 8, itemRender: { name: 'VxeInput' } },
     {
-      field: 'status', title: '是否启用', span: 6, itemRender: {
+      field: 'status', title: '是否启用', span: 8, itemRender: {
         name: 'VxeSelect',
         options: statusOptions,
       },
     },
     {
-      span: 6, itemRender: {
+      span: 8, itemRender: {
         name: 'VxeButtonGroup',
         options: [
           { type: 'submit', content: '查询', status: 'primary' },
@@ -56,7 +56,7 @@ const gridOptions = reactive<VxeGridProps<RoleModel>>({
   id: 'role-list',
   border: true,
   showOverflow: true,
-  height: 'auto',
+  height: 'auto', autoResize: false, syncResize: true,
   scrollY: { enabled: true, gt: 0 },
   toolbarConfig: {
     custom: true,

+ 6 - 6
src/pages/index/system/tag.vue

@@ -27,16 +27,16 @@ const searchFormProps = reactive<VxeFormProps<TagQuery>>({
   titleColon: true,
   data: {},
   items: [
-    { field: 'name', title: '标签名称', span: 6, itemRender: { name: 'VxeInput' } },
+    { field: 'name', title: '标签名称', span: 8, itemRender: { name: 'VxeInput' } },
     {
-      field: 'status', title: '是否启用', span: 6, itemRender: {
+      field: 'status', title: '是否启用', span: 8, itemRender: {
         name: 'VxeSelect',
         options: statusOptions,
       },
     },
-    { field: 'status', title: '创建者', span: 6, itemRender: { name: 'VxeInput' } },
+    { field: 'status', title: '创建者', span: 8, itemRender: { name: 'VxeInput' } },
     {
-      field: 'parentIds', title: '上级标签', span: 6, itemRender: {
+      field: 'parentIds', title: '上级标签', span: 8, itemRender: {
         name: 'VxeSelect',
         props: {
           loading: tagsLoading,
@@ -47,7 +47,7 @@ const searchFormProps = reactive<VxeFormProps<TagQuery>>({
       },
     },
     {
-      span: 6, itemRender: {
+      span: 8, itemRender: {
         name: 'VxeButtonGroup',
         options: [
           { type: 'submit', content: '查询', status: 'primary' },
@@ -67,7 +67,7 @@ const gridOptions = reactive<VxeGridProps<TagModel>>({
   id: 'tag-list',
   border: true,
   showOverflow: true,
-  height: 'auto',
+  height: 'auto', autoResize: false, syncResize: true,
   scrollY: { enabled: true, gt: 0 },
   toolbarConfig: {
     custom: true,

+ 7 - 7
src/pages/index/system/user.vue

@@ -29,12 +29,12 @@ const searchFormProps = reactive<VxeFormProps<UserQuery>>({
   titleColon: true,
   data: {},
   items: [
-    { field: 'userName', title: '系统账号', span: 6, itemRender: { name: 'VxeInput' } },
-    { field: 'nickName', title: '姓名', span: 6, itemRender: { name: 'VxeInput' } },
-    { field: 'jobnumber', title: '工号', span: 6, itemRender: { name: 'VxeInput' } },
-    { field: 'phonenumber', title: '手机号码', span: 6, itemRender: { name: 'VxeInput' } },
+    { field: 'userName', title: '系统账号', span: 8, itemRender: { name: 'VxeInput' } },
+    { field: 'nickName', title: '姓名', span: 8, itemRender: { name: 'VxeInput' } },
+    { field: 'jobnumber', title: '工号', span: 8, itemRender: { name: 'VxeInput' } },
+    { field: 'phonenumber', title: '手机号码', span: 8, itemRender: { name: 'VxeInput' } },
     {
-      field: 'deptId', title: '医院 / 科室', span: 6, itemRender: {
+      field: 'deptId', title: '医院 / 科室', span: 8, itemRender: {
         name: 'VxeTreeSelect',
         props: {
           loading: computed(() => branchLoading.value),
@@ -44,7 +44,7 @@ const searchFormProps = reactive<VxeFormProps<UserQuery>>({
       },
     },
     {
-      span: 6, itemRender: {
+      span: 8, itemRender: {
         name: 'VxeButtonGroup',
         options: [
           { type: 'submit', content: '查询', status: 'primary' },
@@ -64,7 +64,7 @@ const gridOptions = reactive<VxeGridProps<UserModel>>({
   id: 'user-list',
   border: true,
   showOverflow: true,
-  height: 'auto',
+  height: 'auto', autoResize: false, syncResize: true,
   scrollY: { enabled: true, gt: 0 },
   toolbarConfig: {
     custom: true,

+ 2 - 1
src/request/api/account.api.ts

@@ -1,4 +1,5 @@
 import { type AccountFormState, type PeopleModel, transformAccount } from '@/model';
+import type { UserModel }                                            from '@/model/system.model';
 import request                                                       from '@/request/alova';
 import router                                                        from '@/router';
 
@@ -15,7 +16,7 @@ export interface AccountModel {
   local: PeopleModel;
   menus?: Menu[];
 
-  user?: Record<string, any>;
+  user?: UserModel;
 }
 
 

+ 1 - 1
src/themes/index.ts

@@ -3,7 +3,7 @@ import { camelToKebabCase } from '@/tools/string';
 
 const theme = {
   token: {
-    colorPrimary: '#42b7fd',
+    colorPrimary: '#1a82ca',
   },
 };