diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index cc7c0e30..883c6d2f 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -39,22 +39,26 @@ "@riophae/vue-treeselect": "0.4.0", "axios": "0.28.1", "bpmn-js": "^11.1.0", - "bpmnlint": "^6.4.0", "bpmn-js-bpmnlint": "^0.15.0", + "bpmnlint": "^6.4.0", "bpmnlint-loader": "^0.1.4", - "file-drops": "^0.4.0", "clipboard": "2.0.8", "core-js": "3.37.1", "diagram-js": "^11.4.1", + "dom-to-image": "^2.6.0", "echarts": "5.4.0", "element-ui": "2.15.14", + "file-drops": "^0.4.0", "file-saver": "2.0.5", "fuse.js": "6.4.3", "highlight.js": "9.18.5", + "html2canvas": "^1.4.1", "js-beautify": "1.13.0", "js-cookie": "3.0.1", "jsencrypt": "3.0.0-rc.1", "nprogress": "0.2.0", + "pdf-lib": "^1.17.1", + "qrcode": "^1.5.4", "quill": "2.0.2", "screenfull": "5.0.2", "sortablejs": "1.10.2", diff --git a/ruoyi-ui/src/assets/logo/logo.png b/ruoyi-ui/src/assets/logo/logo.png index b440cf92..99f8a170 100644 Binary files a/ruoyi-ui/src/assets/logo/logo.png and b/ruoyi-ui/src/assets/logo/logo.png differ diff --git a/ruoyi-ui/src/assets/styles/element-variables.scss b/ruoyi-ui/src/assets/styles/element-variables.scss index 0c1c639b..71614891 100644 --- a/ruoyi-ui/src/assets/styles/element-variables.scss +++ b/ruoyi-ui/src/assets/styles/element-variables.scss @@ -53,7 +53,7 @@ $--font-path: '~element-ui/lib/theme-chalk/fonts'; .el-button { padding: 5px 12px !important; font-size: 12px !important; } .el-button--medium { padding: 6px 14px !important; font-size: 12px !important; } .el-button--small { padding: 4px 10px !important; font-size: 12px !important; } -.el-button--mini { padding: 3px 8px !important; font-size: 12px !important; } +.el-button--mini { padding: 4px 4px !important; font-size: 12px !important; } // 表格 .el-table { diff --git a/ruoyi-ui/src/assets/styles/sidebar.scss b/ruoyi-ui/src/assets/styles/sidebar.scss index d7b32b13..f7a0f0ea 100644 --- a/ruoyi-ui/src/assets/styles/sidebar.scss +++ b/ruoyi-ui/src/assets/styles/sidebar.scss @@ -1,227 +1,227 @@ -#app { - - .main-container { - height: 100%; - transition: margin-left .28s; - margin-left: $base-sidebar-width; - position: relative; - } - - .sidebarHide { - margin-left: 0!important; - } - - .sidebar-container { - -webkit-transition: width .28s; - transition: width 0.28s; - width: $base-sidebar-width !important; - background-color: $base-menu-background; - height: 100%; - position: fixed; - font-size: 0px; - top: 0; - bottom: 0; - left: 0; - z-index: 1001; - overflow: hidden; - -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35); - box-shadow: 2px 0 6px rgba(0,21,41,.35); - - // reset element-ui css - .horizontal-collapse-transition { - transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; - } - - .scrollbar-wrapper { - overflow-x: hidden !important; - } - - .el-scrollbar__bar.is-vertical { - right: 0px; - } - - .el-scrollbar { - height: 100%; - } - - &.has-logo { - .el-scrollbar { - height: calc(100% - 50px); - } - } - - .is-horizontal { - display: none; - } - - a { - display: inline-block; - width: 100%; - overflow: hidden; - } - - .svg-icon { - margin-right: 16px; - } - - .el-menu { - border: none; - height: 100%; - width: 100% !important; - } - - .el-menu-item, .el-submenu__title { - overflow: hidden !important; - text-overflow: ellipsis !important; - white-space: nowrap !important; - } - - // menu hover - .submenu-title-noDropdown, - .el-submenu__title { - &:hover { - background-color: rgba(255,255,255,.06) !important; - } - } - - & .theme-dark .is-active > .el-submenu__title { - color: $base-menu-color-active !important; - } - - .el-menu-item.is-active { - background-color: #1d4e89 !important; - color: #ffffff !important; - border-left: 3px solid #5dade2; - } - - & .nest-menu .el-submenu>.el-submenu__title, - & .el-submenu .el-menu-item { - min-width: $base-sidebar-width !important; - &:hover { background-color: rgba(255,255,255,.06) !important; } - } - - & .theme-dark .nest-menu .el-submenu>.el-submenu__title, - & .theme-dark .el-submenu .el-menu-item { - background-color: $base-sub-menu-background !important; - &:hover { background-color: $base-sub-menu-hover !important; } - } - } - - .hideSidebar { - .sidebar-container { - width: 54px !important; - } - - .main-container { - margin-left: 54px; - } - - .submenu-title-noDropdown { - padding: 0 !important; - position: relative; - - .el-tooltip { - padding: 0 !important; - - .svg-icon { - margin-left: 20px; - } - } - } - - .el-submenu { - overflow: hidden; - - &>.el-submenu__title { - padding: 0 !important; - - .svg-icon { - margin-left: 20px; - } - - } - } - - .el-menu--collapse { - .el-submenu { - &>.el-submenu__title { - &>span { - height: 0; - width: 0; - overflow: hidden; - visibility: hidden; - display: inline-block; - } - } - } - } - } - - .el-menu--collapse .el-menu .el-submenu { - min-width: $base-sidebar-width !important; - } - - // mobile responsive - .mobile { - .main-container { - margin-left: 0px; - } - - .sidebar-container { - transition: transform .28s; - width: $base-sidebar-width !important; - } - - &.hideSidebar { - .sidebar-container { - pointer-events: none; - transition-duration: 0.3s; - transform: translate3d(-$base-sidebar-width, 0, 0); - } - } - } - - .withoutAnimation { - - .main-container, - .sidebar-container { - transition: none; - } - } -} - -// when menu collapsed -.el-menu--vertical { - &>.el-menu { - .svg-icon { - margin-right: 16px; - } - } - - .nest-menu .el-submenu>.el-submenu__title, - .el-menu-item { - &:hover { - // you can use $subMenuHover - background-color: rgba(0, 0, 0, 0.06) !important; - } - } - - // the scroll bar appears when the subMenu is too long - >.el-menu--popup { - max-height: 100vh; - overflow-y: auto; - - &::-webkit-scrollbar-track-piece { - background: #d3dce6; - } - - &::-webkit-scrollbar { - width: 6px; - } - - &::-webkit-scrollbar-thumb { - background: #99a9bf; - border-radius: 20px; - } - } -} +#app { + + .main-container { + height: 100%; + transition: margin-left .28s; + margin-left: $base-sidebar-width; + position: relative; + } + + .sidebarHide { + margin-left: 0!important; + } + + .sidebar-container { + -webkit-transition: width .28s; + transition: width 0.28s; + width: $base-sidebar-width !important; + background-color: $base-menu-background; + height: 100%; + position: fixed; + font-size: 0px; + top: 0; + bottom: 0; + left: 0; + z-index: 1001; + overflow: hidden; + -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35); + box-shadow: 2px 0 6px rgba(0,21,41,.35); + + // reset element-ui css + .horizontal-collapse-transition { + transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; + } + + .scrollbar-wrapper { + overflow-x: hidden !important; + } + + .el-scrollbar__bar.is-vertical { + right: 0px; + } + + .el-scrollbar { + height: 100%; + } + + &.has-logo { + .el-scrollbar { + height: calc(100% - 56px); + } + } + + .is-horizontal { + display: none; + } + + a { + display: inline-block; + width: 100%; + overflow: hidden; + } + + .svg-icon { + margin-right: 16px; + } + + .el-menu { + border: none; + height: 100%; + width: 100% !important; + } + + .el-menu-item, .el-submenu__title { + overflow: hidden !important; + text-overflow: ellipsis !important; + white-space: nowrap !important; + } + + // menu hover + .submenu-title-noDropdown, + .el-submenu__title { + &:hover { + background-color: rgba(255,255,255,.06) !important; + } + } + + & .theme-dark .is-active > .el-submenu__title { + color: $base-menu-color-active !important; + } + + .el-menu-item.is-active { + background-color: #1d4e89 !important; + color: #ffffff !important; + border-left: 3px solid #5dade2; + } + + & .nest-menu .el-submenu>.el-submenu__title, + & .el-submenu .el-menu-item { + min-width: $base-sidebar-width !important; + &:hover { background-color: rgba(255,255,255,.06) !important; } + } + + & .theme-dark .nest-menu .el-submenu>.el-submenu__title, + & .theme-dark .el-submenu .el-menu-item { + background-color: $base-sub-menu-background !important; + &:hover { background-color: $base-sub-menu-hover !important; } + } + } + + .hideSidebar { + .sidebar-container { + width: 54px !important; + } + + .main-container { + margin-left: 54px; + } + + .submenu-title-noDropdown { + padding: 0 !important; + position: relative; + + .el-tooltip { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + } + } + + .el-submenu { + overflow: hidden; + + &>.el-submenu__title { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + + } + } + + .el-menu--collapse { + .el-submenu { + &>.el-submenu__title { + &>span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; + } + } + } + } + } + + .el-menu--collapse .el-menu .el-submenu { + min-width: $base-sidebar-width !important; + } + + // mobile responsive + .mobile { + .main-container { + margin-left: 0px; + } + + .sidebar-container { + transition: transform .28s; + width: $base-sidebar-width !important; + } + + &.hideSidebar { + .sidebar-container { + pointer-events: none; + transition-duration: 0.3s; + transform: translate3d(-$base-sidebar-width, 0, 0); + } + } + } + + .withoutAnimation { + + .main-container, + .sidebar-container { + transition: none; + } + } +} + +// when menu collapsed +.el-menu--vertical { + &>.el-menu { + .svg-icon { + margin-right: 16px; + } + } + + .nest-menu .el-submenu>.el-submenu__title, + .el-menu-item { + &:hover { + // you can use $subMenuHover + background-color: rgba(0, 0, 0, 0.06) !important; + } + } + + // the scroll bar appears when the subMenu is too long + >.el-menu--popup { + max-height: 100vh; + overflow-y: auto; + + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } + } +} diff --git a/ruoyi-ui/src/components/ChecklistSelect/index.vue b/ruoyi-ui/src/components/ChecklistSelect/index.vue new file mode 100644 index 00000000..bdb5e78f --- /dev/null +++ b/ruoyi-ui/src/components/ChecklistSelect/index.vue @@ -0,0 +1,72 @@ + + + + + + + diff --git a/ruoyi-ui/src/components/DragResizePanel/index.vue b/ruoyi-ui/src/components/DragResizePanel/index.vue new file mode 100644 index 00000000..d3e0e9a4 --- /dev/null +++ b/ruoyi-ui/src/components/DragResizePanel/index.vue @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/components/QRCode/index.vue b/ruoyi-ui/src/components/QRCode/index.vue new file mode 100644 index 00000000..4f780a8e --- /dev/null +++ b/ruoyi-ui/src/components/QRCode/index.vue @@ -0,0 +1,72 @@ + + + + {{ text }} + + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/ruoyi-ui/src/layout/components/Navbar.vue index 2544f7cb..05d53422 100644 --- a/ruoyi-ui/src/layout/components/Navbar.vue +++ b/ruoyi-ui/src/layout/components/Navbar.vue @@ -1,199 +1,221 @@ - - - - - - - - - - - - - - - - - - - - - - - {{ name }} - - - - - 个人中心 - - - 退出登录 - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + {{ name }} + + + + + 个人中心 + + + 退出登录 + + + + + + + + + + diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue index bd3510cc..05df4c75 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue +++ b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue @@ -1,94 +1,119 @@ - - - - - - {{ title }} - - - - {{ title }} - - - - - - - - + + + + + + + + + + {{ title }} + + + + + + + + + diff --git a/ruoyi-ui/src/views/mill/eqp/day.vue b/ruoyi-ui/src/views/mill/eqp/day.vue index 3b127bda..99e4d192 100644 --- a/ruoyi-ui/src/views/mill/eqp/day.vue +++ b/ruoyi-ui/src/views/mill/eqp/day.vue @@ -1,160 +1,308 @@ - - - - - - - - - 查询 - - + + + + + + + 查询 + + + - + {{ summary.partCount }} {{ summary.checklistCount }} {{ summary.totalCount }} + {{ summary.expectedTotal }} {{ summary.passCount }} - + {{ summary.failCount }} {{ summary.passRate }} + {{ summary.completionRate }} - - - - - + + + 按实际巡检人汇总 + + + + + + + + + + + 按负责人汇总 + + + + + + + + + + + + + + + + + + + + - - - - {{ r.inspectTime }} | 白班 | {{ r.inspector }} - {{ r.runStatus === 1 ? '✓ 正常' : '✗ 故障' }} - — {{ r.abnormalDesc }} - - - {{ r.runStatus === 1 ? '✓' : '✗' }} - - + + + + + {{ r.inspectTime }} | 白班 | {{ r.inspector }} | {{ r.runStatus == 1 ? '通过' : '不通过' }}{{ r.abnormalDesc ? '异常: ' + r.abnormalDesc : '' }} + + ✓ + ✗ + + - — + - - + - - - - {{ r.inspectTime }} | 夜班 | {{ r.inspector }} - {{ r.runStatus === 1 ? '✓ 正常' : '✗ 故障' }} - — {{ r.abnormalDesc }} - - - {{ r.runStatus === 1 ? '✓' : '✗' }} - - + + + + + {{ r.inspectTime }} | 夜班 | {{ r.inspector }} | {{ r.runStatus == 1 ? '通过' : '不通过' }} {{ r.abnormalDesc ? '异常: ' + r.abnormalDesc : '' }} + + ✓ + ✗ + + - — + - + + + + + +{{ scope.row.diff }} + {{ scope.row.diff }} + 0 + + + + + + diff --git a/ruoyi-ui/src/views/mill/eqp/index.vue b/ruoyi-ui/src/views/mill/eqp/index.vue index 2e9beca0..4a37d302 100644 --- a/ruoyi-ui/src/views/mill/eqp/index.vue +++ b/ruoyi-ui/src/views/mill/eqp/index.vue @@ -1,341 +1,649 @@ - - - - - - 设备列表 - - - - - + + + + + + + + + + + + + + + 搜索 - - 新增 - 修改 - 删除 - + + 新增 + 修改 + 删除 + - - 暂无数据 - - - {{ item.inspectPart }} - - {{ item.lineSection }} - · - {{ item.remark }} + + + + + + {{ item.inspectPart }} + + + {{ item.lineSection }} | + 负责人:{{ item.responsiblePerson }} + | {{ item.remark }} - {{ item.checklistCount }} - - - - - - - - - - - 巡检要求清单 - - — {{ currentPart.inspectPart }} - - 请从左侧选择设备 - - 查看巡检记录 - - - - 新增 - 修改 - 删除 - - - - - - - 点击左侧设备查看巡检要求 + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + 搜索 + 新增 + 修改 + 删除 + + + + + + + + + + + + + - - {{ scope.row.equipmentState || '—' }} - - - - - - - - - + + + + - - - - - + + + + + + - - + + - + + + + - + - - - - + + + + + + + + + + - - + + + + - + - - + + - - + + - - - - + - + diff --git a/ruoyi-ui/src/views/mill/eqp/record.vue b/ruoyi-ui/src/views/mill/eqp/record.vue index 498589e1..8ccb5564 100644 --- a/ruoyi-ui/src/views/mill/eqp/record.vue +++ b/ruoyi-ui/src/views/mill/eqp/record.vue @@ -1,31 +1,39 @@ - - - - - - + - + - - - - - - - + + - + + + + 搜索 @@ -34,267 +42,333 @@ - - - 返回设备 + + 新增 - 新增 + 修改 - 修改 + 删除 - 删除 + 导出 - - 导出 - - + - - - - + - - - + + + + - - {{ scope.row.shift === 1 ? '白班' : '夜班' }} - + {{ scope.row.shift == 1 ? '白班' : '夜班' }} - - {{ parseTime(scope.row.inspectTime, '{y}-{m}-{d} {h}:{i}') }} - - + - - {{ scope.row.runStatus === 1 ? '正常' : '故障' }} - + {{ parseTime(scope.row.inspectTime, '{y}-{m}-{d} {h}:{i}:{s}') }} - - - + - - — + {{ scope.row.runStatus == 1 ? '正常' : '故障' }} - + + - 设备 - 改 - 删 + + + + + + + + + 修改 + 删除 - + - - + + - - - - + + - - - - - - - + + - + - + + - + - + - - + + - + - +
{{ text }}
{{ item.inspectPart }}