diff --git a/src/router/index.js b/src/router/index.js index 300690e..6ce8294 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -38,6 +38,12 @@ const routes = [ meta: { title: '手术间利用率' }, component: () => import('@/views/pageRoom/index.vue'), }, + { + path: '/pagecare', + name: 'pagecare', + meta: { title: '护理监控数据可视化' }, + component: () => import('@/views/pageCare/index.vue'), + }, ], }, { diff --git a/src/views/pageCare/bottomLeft/index.scss b/src/views/pageCare/bottomLeft/index.scss new file mode 100644 index 0000000..30096bc --- /dev/null +++ b/src/views/pageCare/bottomLeft/index.scss @@ -0,0 +1,92 @@ +.box { + width: vw(552); + height: vh(438); + box-sizing: border-box; + border: 2px solid #DFE0F3; + box-shadow: 2px 4px 20px 0px rgba(87, 68, 175, 0.2); + background: linear-gradient(180deg, rgba(240, 243, 253, 0.95) 0%, rgba(232, 238, 253, 0.95) 100%); + border-radius: vw(8); + padding: vh(16) vw(8); + position: relative; + + header { + height: vh(48); + background-image: url("@/assets/img/pageMonitor/headerLine.png"); + background-size: contain; + background-repeat: no-repeat; + background-position: center bottom; + + div { + width: vw(200); + height: vh(40); + background-image: url("@/assets/img/pageMonitor/headerBg.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + margin-left: vw(12); + display: flex; + align-items: center; + + p { + color: #444444; + font-size: vw(22); + padding-left: vw(32); + } + } + } + + main { + height: vh(350); + } + + .sidebar { + position: absolute; + right: -1px; + top: 16%; + + >div { + width: vw(40); + height: vh(70); + background: #E9E4FF; + display: flex; + justify-content: center; + position: relative; + z-index: 10; + + span { + color: rgba(90, 73, 173, 0.5); + font-size: vw(16); + + } + + &:first-of-type { + transform: skewY(-30deg); + + span { + transform: skewY(30deg); + line-height: vh(60); + } + } + + &:last-of-type { + margin-top: vw(-24); + transform: skewY(30deg); + + span { + transform: skewY(-30deg); + line-height: vh(90); + } + } + + &.active { + background: #5C4BAD; + z-index: 1; + height: vh(82); + + span { + color: #fff; + } + } + } + } +} diff --git a/src/views/pageCare/bottomLeft/index.vue b/src/views/pageCare/bottomLeft/index.vue new file mode 100644 index 0000000..36c9da0 --- /dev/null +++ b/src/views/pageCare/bottomLeft/index.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/src/views/pageCare/bottomRight/eMid.vue b/src/views/pageCare/bottomRight/eMid.vue new file mode 100644 index 0000000..2440203 --- /dev/null +++ b/src/views/pageCare/bottomRight/eMid.vue @@ -0,0 +1,121 @@ + + + + diff --git a/src/views/pageCare/bottomRight/eRight.vue b/src/views/pageCare/bottomRight/eRight.vue new file mode 100644 index 0000000..030cb96 --- /dev/null +++ b/src/views/pageCare/bottomRight/eRight.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/views/pageCare/bottomRight/index.scss b/src/views/pageCare/bottomRight/index.scss new file mode 100644 index 0000000..092e415 --- /dev/null +++ b/src/views/pageCare/bottomRight/index.scss @@ -0,0 +1,176 @@ +.boxWrap { + width: vw(1280); + height: vh(438); + display: flex; + justify-content: space-between; + align-items: center; + + .opGradeBox {} + + .asaGradeBox { + width: vw(340); + height: 100%; + + header { + height: vh(48); + background-image: url("@/assets/img/pageMonitor/headerLine.png"); + background-size: contain; + background-repeat: no-repeat; + background-position: center bottom; + + div { + width: vw(200); + height: vh(40); + background-image: url("@/assets/img/pageMonitor/headerBg.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + margin-left: vw(12); + display: flex; + align-items: center; + + p { + color: #444444; + font-size: vw(22); + padding-left: vw(32); + } + } + } + } + + .opstatisticBox { + width: vw(624); + height: 100%; + + header { + height: vh(48); + background-image: url("@/assets/img/pageMonitor/headerLine.png"); + background-size: contain; + background-repeat: no-repeat; + background-position: center bottom; + + div { + width: vw(300); + height: vh(40); + background-image: url("@/assets/img/pageMonitor/headerBg.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + margin-left: vw(12); + display: flex; + align-items: center; + + p { + color: #444444; + font-size: vw(22); + padding-left: vw(32); + } + } + } + + .sidebar { + position: absolute; + right: -1px; + top: 16%; + + >div { + width: vw(40); + height: vh(70); + background: #E9E4FF; + display: flex; + justify-content: center; + position: relative; + z-index: 10; + + span { + color: rgba(90, 73, 173, 0.5); + font-size: vw(16); + + } + + &:first-of-type { + transform: skewY(-30deg); + + span { + transform: skewY(30deg); + line-height: vh(60); + } + } + + &:last-of-type { + margin-top: vw(-24); + transform: skewY(30deg); + + span { + transform: skewY(-30deg); + line-height: vh(90); + } + } + + &.active { + background: #5C4BAD; + z-index: 1; + height: vh(82); + + span { + color: #fff; + } + } + } + } + } + + .box { + box-sizing: border-box; + border: 2px solid #DFE0F3; + box-shadow: 2px 4px 20px 0px rgba(87, 68, 175, 0.2); + background: linear-gradient(180deg, rgba(240, 243, 253, 0.95) 0%, rgba(232, 238, 253, 0.95) 100%); + border-radius: vw(8); + padding: vh(16) vw(8); + position: relative; + } + + main { + height: vh(350); + } +} + +.opstatisticBox { + .bottom { + height: 100%; + display: flex; + justify-content: space-evenly; + align-items: center; + flex-direction: column; + + div { + width: vw(560); + height: vh(150); + box-sizing: border-box; + padding: vh(24) vw(20); + background: linear-gradient(180deg, #F2F3FA 0%, #DEE6FF 100%); + border: 2px solid #EDE9F4; + border-radius: vw(4); + + .secondRow { + margin-top: vh(12); + margin-bottom: vh(4); + font-size: vw(20); + color: #302D32; + } + + .thridRow { + font-size: vw(28); + color: #605C68; + + span { + font-size: vw(44); + color: #5D49AF; + margin-right: 2px; + } + } + } + + } + +} diff --git a/src/views/pageCare/bottomRight/index.vue b/src/views/pageCare/bottomRight/index.vue new file mode 100644 index 0000000..d8b0c4f --- /dev/null +++ b/src/views/pageCare/bottomRight/index.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/src/views/pageCare/index.vue b/src/views/pageCare/index.vue new file mode 100644 index 0000000..915858a --- /dev/null +++ b/src/views/pageCare/index.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/views/pageCare/topLeft/index.scss b/src/views/pageCare/topLeft/index.scss new file mode 100644 index 0000000..025894e --- /dev/null +++ b/src/views/pageCare/topLeft/index.scss @@ -0,0 +1,177 @@ +.box { + width: vw(552); + height: vh(444); + box-sizing: border-box; + margin-bottom: vh(24); + border: 2px solid #DFE0F3; + box-shadow: 2px 4px 20px 0px rgba(87, 68, 175, 0.2); + background: linear-gradient(180deg, rgba(240, 243, 253, 0.95) 0%, rgba(232, 238, 253, 0.95) 100%); + border-radius: vw(8); + padding: vh(8) vw(8); + + header { + height: vh(48); + background-image: url("@/assets/img/pageMonitor/headerLine.png"); + background-size: contain; + background-repeat: no-repeat; + background-position: center bottom; + + div { + width: vw(200); + height: vh(40); + background-image: url("@/assets/img/pageMonitor/headerBg.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + margin-left: vw(12); + display: flex; + align-items: center; + + p { + color: #444444; + font-size: vw(22); + padding-left: vw(32); + } + } + } + + main { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + align-items: center; + height: vh(390); + + .top { + width: vw(488); + height: vh(160); + display: flex; + justify-content: space-evenly; + align-items: center; + background: linear-gradient(180deg, #F2F3FA 0%, #EAE9FE 100%); + border: 1px solid #EDE9F4; + box-sizing: border-box; + border-radius: vw(4); + + .left { + div:first-of-type { + display: flex; + align-items: center; + margin-bottom: vh(12); + min-width: vw(120); + + img { + margin-right: vw(8); + } + + span { + font-size: vw(20); + color: #302D32; + } + } + + div:last-of-type { + color: #876395; + font-size: vw(24); + line-height: vw(44); + letter-spacing: 2px; + + span { + color: #924AAC; + font-size: vw(44); + vertical-align: bottom; + } + } + } + + .right { + .numBox { + width: vw(276); + height: vh(50); + background: linear-gradient(272deg, rgba(255, 85, 238, 0.045) 2%, rgba(150, 35, 135, 0.066) 99%); + border: 2px solid; + border-image: linear-gradient(161deg, rgba(255, 169, 205, 0.4) -11%, rgba(255, 169, 202, 0) 42%) 1.5; + box-sizing: border-box; + padding: 0 vw(16); + display: flex; + justify-content: space-between; + align-items: center; + + .leftTextBox { + display: flex; + align-items: center; + + .potionBox { + width: vw(4); + height: vw(4); + border-radius: 100%; + background: #D58DFF; + box-shadow: 0px 0px vw(4) vw(2) #D58DFF; + margin-right: vw(12); + } + + span { + font-size: vw(16); + color: #571273; + } + } + + .rightTextBox { + font-size: vw(14); + color: #571273; + line-height: vw(28); + + span { + font-size: vw(28); + color: #924AAC; + vertical-align: bottom; + margin-right: vw(4); + } + } + + &:first-of-type { + margin-bottom: vh(20); + } + } + } + + } + + .bottom { + width: vw(488); + height: vh(160); + display: flex; + justify-content: space-between; + + div { + width: vw(146); + height: vh(160); + box-sizing: border-box; + padding: vh(24) vw(20); + background: linear-gradient(180deg, #F2F3FA 0%, #DEE6FF 100%); + border: 2px solid #EDE9F4; + border-radius: vw(4); + + .secondRow { + margin-top: vh(12); + margin-bottom: vh(4); + font-size: vw(16); + color: #302D32; + } + + .thridRow { + font-size: vw(28); + color: #605C68; + + span { + font-size: vw(44); + color: #5D49AF; + margin-right: 2px; + } + } + } + + } + + } +} diff --git a/src/views/pageCare/topLeft/index.vue b/src/views/pageCare/topLeft/index.vue new file mode 100644 index 0000000..b6821b3 --- /dev/null +++ b/src/views/pageCare/topLeft/index.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/views/pageCare/topRight/index.scss b/src/views/pageCare/topRight/index.scss new file mode 100644 index 0000000..d797114 --- /dev/null +++ b/src/views/pageCare/topRight/index.scss @@ -0,0 +1,145 @@ +.box { + width: vw(1280); + height: vh(444); + box-sizing: border-box; + margin-bottom: vh(24); + box-sizing: border-box; + border: 2px solid #DFE0F3; + box-shadow: 2px 4px 20px 0px rgba(87, 68, 175, 0.2); + background: linear-gradient(180deg, rgba(240, 243, 253, 0.95) 0%, rgba(232, 238, 253, 0.95) 100%); + border-radius: vw(8); + padding: vh(24); + position: relative; +} + +:deep(.el-carousel) { + height: 100%; + + .el-carousel__container { + height: 100%; + + .el-carousel__item { + section { + height: 100%; + display: grid; + grid-template-columns: repeat(auto-fill, vw(186)); + justify-content: space-between; + align-content: space-between; + + >div { + height: vh(112); + box-sizing: border-box; + background: linear-gradient(180deg, rgba(232, 238, 255, 0.4) 0%, #E8EEFF 100%); + border: 2px solid #E3E5FD; + border-radius: vw(8); + + p { + font-size: vw(22); + color: #000; + text-align: center; + letter-spacing: 2px; + line-height: vh(54); + } + + .line { + height: 1px; + background: linear-gradient(90deg, rgba(0, 109, 171, 0) -1%, #A7DFFF 50%, rgba(0, 109, 171, 0) 98%); + } + + div:last-of-type { + box-sizing: border-box; + height: vh(54); + padding: 0 vw(20); + display: flex; + align-items: center; + justify-content: space-evenly; + + span { + color: #000; + font-size: vw(20); + letter-spacing: 1px; + } + } + + &.opEnter { + p { + color: #0F69D6; + } + + div:last-of-type { + span { + color: #0F69D6; + } + } + + } + + &.anesStart { + p { + color: #424CFE; + } + + div:last-of-type { + span { + color: #424CFE; + } + } + + } + + &.opStart { + p { + color: #8B2CAD; + } + + div:last-of-type { + span { + color: #8B2CAD; + } + } + + } + + &.opEnd { + p { + color: #37900B; + } + + div:last-of-type { + span { + color: #37900B; + } + } + + } + + &.anesEnd { + p { + color: #5B4CAF; + } + + div:last-of-type { + span { + color: #5B4CAF; + } + } + + } + + &.empty { + p { + color: #037E7E; + } + + div:last-of-type { + span { + color: #037E7E; + } + } + + } + } + } + } + } +} diff --git a/src/views/pageCare/topRight/index.vue b/src/views/pageCare/topRight/index.vue new file mode 100644 index 0000000..fa1f169 --- /dev/null +++ b/src/views/pageCare/topRight/index.vue @@ -0,0 +1,117 @@ + + + + + + diff --git a/src/views/waitList/index.vue b/src/views/waitList/index.vue index 51c1ae3..6167acf 100644 --- a/src/views/waitList/index.vue +++ b/src/views/waitList/index.vue @@ -144,8 +144,8 @@ export default { statusToTxt, textWaitToColor, onGetPageData() { - // let today = dayjs().format('YYYY-MM-DD'); - let today = '2024-06-06'; + let today = dayjs().format('YYYY-MM-DD'); + // let today = '2024-06-06'; // let today = '2025-02-26'; const QueryFiledDic = {}; this.queryCondition.forEach(queryItem => {