{{ a.name }}
{{ b.name }}
diff --git a/.env.dev b/.env.dev index d1492654..29069178 100644 --- a/.env.dev +++ b/.env.dev @@ -1,7 +1,7 @@ ### # @Author: Do not edit # @Date: 2023-08-29 09:40:39 - # @LastEditTime: 2023-11-14 14:00:11 + # @LastEditTime: 2023-11-15 09:09:12 # @LastEditors: zhp # @Description: ### diff --git a/public/static/videos/login.webm b/public/static/videos/login.webm new file mode 100644 index 00000000..4ac1bdd2 Binary files /dev/null and b/public/static/videos/login.webm differ diff --git a/src/api/core/analysis/index.js b/src/api/core/analysis/index.js index 394bbdcf..e5f374e9 100644 --- a/src/api/core/analysis/index.js +++ b/src/api/core/analysis/index.js @@ -1,7 +1,7 @@ /* * @Author: zhp * @Date: 2023-09-12 14:07:04 - * @LastEditTime: 2023-11-07 14:17:38 + * @LastEditTime: 2023-11-10 10:23:43 * @LastEditors: DY * @Description: */ @@ -15,9 +15,10 @@ export function getYieldAnalysisPageData(query) { }) } +// 产线平衡分析 export function getCT(data) { return request({ - url: '/analysis/production-analysis/getCT', + url: '/analysis/equipment-analysis/getCT', method: 'post', data: data }) diff --git a/src/api/equipment/analysis/statistics.js b/src/api/equipment/analysis/statistics.js new file mode 100644 index 00000000..ebd60e17 --- /dev/null +++ b/src/api/equipment/analysis/statistics.js @@ -0,0 +1,27 @@ +/* + * @Author: Do not edit + * @Date: 2023-11-10 09:27:39 + * @LastEditTime: 2023-11-10 09:30:00 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +// 获得设备统计分析 +export function getEqAnalysis(query) { + return request({ + url: '/analysis/equipment-analysis/statistics', + method: 'get', + params: query + }) +} + +// 导出设备统计分析 +export function exportEqAnalysisExcel(query) { + return request({ + url: '/analysis/equipment-analysis/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} \ No newline at end of file diff --git a/src/api/equipment/base/alarm/records.js b/src/api/equipment/base/alarm/records.js new file mode 100644 index 00000000..8a4104ca --- /dev/null +++ b/src/api/equipment/base/alarm/records.js @@ -0,0 +1,60 @@ +/* + * @Author: Do not edit + * @Date: 2023-11-08 15:56:52 + * @LastEditTime: 2023-11-09 17:42:27 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +// 创建设备报警处理 +export function createAlarmHand(data) { + return request({ + url: '/base/equipment-alarm-hand/create', + method: 'post', + data: data + }) +} + +// 更新设备报警处理 +export function updateAlarmHand(data) { + return request({ + url: '/base/equipment-alarm-hand/update', + method: 'put', + data: data + }) +} + +// 删除设备报警处理 +export function deleteAlarmHand(id) { + return request({ + url: '/base/equipment-alarm-hand/delete?id=' + id, + method: 'delete' + }) +} + +//获得设备报警处理 +export function getAlarmHand(id) { + return request({ + url: '/base/equipment-alarm-hand/get?id=' + id, + method: 'get' + }) +} + +// 获得设备报警处理分页 +export function getAlarmHandPage(query) { + return request({ + url: '/base/equipment-alarm-hand/page', + method: 'get', + params: query + }) +} + + +//获得设备报警记录 +export function getAlarmLog(id) { + return request({ + url: '/base/equipment-alarm-log/get?id=' + id, + method: 'get' + }) +} diff --git a/src/api/equipment/base/inspection/record.js b/src/api/equipment/base/inspection/record.js new file mode 100644 index 00000000..5c0e2cb2 --- /dev/null +++ b/src/api/equipment/base/inspection/record.js @@ -0,0 +1,62 @@ +/* + * @Author: Do not edit + * @Date: 2023-11-08 15:56:52 + * @LastEditTime: 2023-11-11 19:52:54 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +// 根据设备获得所有巡检内容列表 +export function getcheckAllList(query) { + return request({ + url: '/base/equipment-check/listAll', + method: 'get', + params: query + }) +} + +// 创建设备巡检计划记录 +export function createCheckLog(data) { + return request({ + url: '/base/equipment-check-log/create', + method: 'post', + data: data + }) +} + +// 更新设备巡检计划记录 +export function updateCheckLog(data) { + return request({ + url: '/base/equipment-check-log/update', + method: 'put', + data: data + }) +} + +// 获得设备巡检计划记录 +export function getEqCheckLog(id) { + return request({ + url: '/base/equipment-check-log/get?id=' + id, + method: 'get' + }) +} + +// 导出设备巡检计划记录 +export function exportCheckLogExcel(query) { + return request({ + url: '/base/equipment-check-log/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} + +// 根据设备获得所有巡检配置列表 +export function getcheckConfigByEqList(query) { + return request({ + url: '/base/equipment-check-config/list', + method: 'get', + params: query + }) +} diff --git a/src/api/equipment/base/inspection/settings.js b/src/api/equipment/base/inspection/settings.js new file mode 100644 index 00000000..8d2ad8c9 --- /dev/null +++ b/src/api/equipment/base/inspection/settings.js @@ -0,0 +1,68 @@ +/* + * @Author: Do not edit + * @Date: 2023-11-08 15:56:52 + * @LastEditTime: 2023-11-10 09:04:50 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +// 获得设备巡检设置 +export function getEqCheck(id) { + return request({ + url: '/base/equipment-check-config/get?id=' + id, + method: 'get' + }) +} + +// 创建巡检项目 +export function createCheckDet(data) { + return request({ + url: '/base/equipment-check-config-det/create', + method: 'post', + data: data + }) +} + +// 更新巡检项目 +export function updateCheckDet(data) { + return request({ + url: '/base/equipment-check-config-det/update', + method: 'put', + data: data + }) +} + +// 删除巡检项目 +export function deleteCheckDet(id) { + return request({ + url: '/base/equipment-check-config-det/delete?id=' + id, + method: 'delete' + }) +} + +//巡检项目 +export function getCheckDet(id) { + return request({ + url: '/base/equipment-check-config-det/get?id=' + id, + method: 'get' + }) +} + +// 获得巡检项目分页 +export function getCheckDetPage(query) { + return request({ + url: '/base/equipment-check-config-det/page', + method: 'get', + params: query + }) +} + +// 获得x巡检所有列表 +export function getcheckList(query) { + return request({ + url: '/base/equipment-check/list', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/src/api/equipment/base/repair.js b/src/api/equipment/base/repair.js new file mode 100644 index 00000000..a93e4a9f --- /dev/null +++ b/src/api/equipment/base/repair.js @@ -0,0 +1,25 @@ +/* + * @Author: Do not edit + * @Date: 2023-11-10 16:09:33 + * @LastEditTime: 2023-11-10 16:50:08 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +//获得设备维修 +export function getEqRepair(id) { + return request({ + url: '/base/equipment-repair-log/get?id=' + id, + method: 'get' + }) +} + +// 更新设备维修记录 +export function updateEqRepair(data) { + return request({ + url: '/base/equipment-repair-log/update', + method: 'put', + data: data + }) +} \ No newline at end of file diff --git a/src/api/equipment/base/spare-parts/config.js b/src/api/equipment/base/spare-parts/config.js new file mode 100644 index 00000000..b2201cad --- /dev/null +++ b/src/api/equipment/base/spare-parts/config.js @@ -0,0 +1,51 @@ +/* + * @Author: Do not edit + * @Date: 2023-11-11 16:18:57 + * @LastEditTime: 2023-11-11 17:28:54 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +//获得备品备件配置 +export function getSparePartConfig(id) { + return request({ + url: '/base/equipment-spare-part-config/get?id=' + id, + method: 'get' + }) +} + +// 创建设备备品备件配置--抽屉 +export function createConfigDet(data) { + return request({ + url: '/base/equipment-spare-part-config-det/create', + method: 'post', + data: data + }) +} + +// 删除设备备品备件配置--抽屉 +export function deleteConfigDet(id) { + return request({ + url: '/base/equipment-spare-part-config-det/delete?id=' + id, + method: 'delete' + }) +} + +// 获得抽屉表格分页 +export function getConfigDetPage(query) { + return request({ + url: '/base/equipment-spare-part-config-det/page', + method: 'get', + params: query + }) +} + +// 获得备品备件列表 +export function getSparePartList(query) { + return request({ + url: '/base/equipment-spare-part/list', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/src/api/equipment/base/spare-parts/monitor.js b/src/api/equipment/base/spare-parts/monitor.js new file mode 100644 index 00000000..af4f2a42 --- /dev/null +++ b/src/api/equipment/base/spare-parts/monitor.js @@ -0,0 +1,45 @@ +/* + * @Author: Do not edit + * @Date: 2023-11-11 16:18:57 + * @LastEditTime: 2023-11-11 18:44:51 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +// 获得抽屉表格分页 +export function getConfigDetMonitorPage(query) { + return request({ + url: '/base/equipment-spare-part-config-det/monitor', + method: 'get', + params: query + }) +} + +// 创建设备备品备件更换log +export function createSparePartLog(data) { + return request({ + url: '/base/equipment-spare-part-log/create', + method: 'post', + data: data + }) +} + +// 获得设备备品备件更换log分页 +export function getSparePartLogPage(query) { + return request({ + url: '/base/equipment-spare-part-log/page', + method: 'get', + params: query + }) +} + +// 导出设备备品备件更换log +export function exportSparePartLogExcel(query) { + return request({ + url: '/base/equipment-spare-part-log/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} diff --git a/src/assets/icons/svg/exitbtn.svg b/src/assets/icons/svg/exitbtn.svg new file mode 100644 index 00000000..8b8b0eff --- /dev/null +++ b/src/assets/icons/svg/exitbtn.svg @@ -0,0 +1,12 @@ + + \ No newline at end of file diff --git a/src/assets/icons/svg/helpbtn.svg b/src/assets/icons/svg/helpbtn.svg new file mode 100644 index 00000000..5960b5b3 --- /dev/null +++ b/src/assets/icons/svg/helpbtn.svg @@ -0,0 +1,20 @@ + + \ No newline at end of file diff --git a/src/assets/images/choicepart/Core.png b/src/assets/images/choicepart/Core.png new file mode 100644 index 00000000..f1d1b73d Binary files /dev/null and b/src/assets/images/choicepart/Core.png differ diff --git a/src/assets/images/choicepart/Delivery.png b/src/assets/images/choicepart/Delivery.png new file mode 100644 index 00000000..b0331ade Binary files /dev/null and b/src/assets/images/choicepart/Delivery.png differ diff --git a/src/assets/images/choicepart/Energy.png b/src/assets/images/choicepart/Energy.png new file mode 100644 index 00000000..a6511565 Binary files /dev/null and b/src/assets/images/choicepart/Energy.png differ diff --git a/src/assets/images/choicepart/Equipment.png b/src/assets/images/choicepart/Equipment.png new file mode 100644 index 00000000..763e5396 Binary files /dev/null and b/src/assets/images/choicepart/Equipment.png differ diff --git a/src/assets/images/choicepart/Extend.png b/src/assets/images/choicepart/Extend.png new file mode 100644 index 00000000..ae319647 Binary files /dev/null and b/src/assets/images/choicepart/Extend.png differ diff --git a/src/assets/images/choicepart/Group.png b/src/assets/images/choicepart/Group.png new file mode 100644 index 00000000..3c16e819 Binary files /dev/null and b/src/assets/images/choicepart/Group.png differ diff --git a/src/assets/images/choicepart/Material.png b/src/assets/images/choicepart/Material.png new file mode 100644 index 00000000..b4b1364a Binary files /dev/null and b/src/assets/images/choicepart/Material.png differ diff --git a/src/assets/images/choicepart/Order.png b/src/assets/images/choicepart/Order.png new file mode 100644 index 00000000..7c8a3216 Binary files /dev/null and b/src/assets/images/choicepart/Order.png differ diff --git a/src/assets/images/choicepart/Packaging.png b/src/assets/images/choicepart/Packaging.png new file mode 100644 index 00000000..60ccd89e Binary files /dev/null and b/src/assets/images/choicepart/Packaging.png differ diff --git a/src/assets/images/choicepart/Quality.png b/src/assets/images/choicepart/Quality.png new file mode 100644 index 00000000..e6680dfa Binary files /dev/null and b/src/assets/images/choicepart/Quality.png differ diff --git a/src/assets/images/choicepart/Report.png b/src/assets/images/choicepart/Report.png new file mode 100644 index 00000000..a103eede Binary files /dev/null and b/src/assets/images/choicepart/Report.png differ diff --git a/src/assets/images/choicepart/System.png b/src/assets/images/choicepart/System.png new file mode 100644 index 00000000..30a1a7e8 Binary files /dev/null and b/src/assets/images/choicepart/System.png differ diff --git a/src/assets/images/choicepart/Warehouse.png b/src/assets/images/choicepart/Warehouse.png new file mode 100644 index 00000000..d808730d Binary files /dev/null and b/src/assets/images/choicepart/Warehouse.png differ diff --git a/src/assets/images/choicepart/avatar.png b/src/assets/images/choicepart/avatar.png new file mode 100644 index 00000000..4b1f623a Binary files /dev/null and b/src/assets/images/choicepart/avatar.png differ diff --git a/src/assets/images/choicepart/choice-item-back.png b/src/assets/images/choicepart/choice-item-back.png new file mode 100644 index 00000000..1cddcef5 Binary files /dev/null and b/src/assets/images/choicepart/choice-item-back.png differ diff --git a/src/assets/images/choicepart/choicepart-back.png b/src/assets/images/choicepart/choicepart-back.png new file mode 100644 index 00000000..2f7a3de4 Binary files /dev/null and b/src/assets/images/choicepart/choicepart-back.png differ diff --git a/src/assets/images/cnbm.png b/src/assets/images/cnbm.png new file mode 100644 index 00000000..ed7d3fdf Binary files /dev/null and b/src/assets/images/cnbm.png differ diff --git a/src/assets/images/login-bg.png b/src/assets/images/login-bg.png new file mode 100644 index 00000000..0156badd Binary files /dev/null and b/src/assets/images/login-bg.png differ diff --git a/src/assets/logo/cnbm.png b/src/assets/logo/cnbm.png new file mode 100644 index 00000000..ed7d3fdf Binary files /dev/null and b/src/assets/logo/cnbm.png differ diff --git a/src/assets/styles/login.scss b/src/assets/styles/login.scss index 7efb2546..db9f3a47 100644 --- a/src/assets/styles/login.scss +++ b/src/assets/styles/login.scss @@ -1,10 +1,13 @@ /* ===== PC DESIGN ===== */ -$W: 1000; +$W: 1080; $H: 1920; -$picW: 438; -$picH: 560; -$formW: 320; +// $picW: 438; +// $picH: 560; +$picW: 1080; +$picH: 1118; +$formW: 420; $tabW: $formW / 2; +// $rowH: 56; $rowH: 56; $buttonH: 50; @@ -15,6 +18,7 @@ $containerBgImage: '../assets/images/bg.png'; $logoWidth: 417px; $logoHeight: 64px; $logoImage: '../assets/logo/login-logo.png'; +$cnbmLogo: '../assets/logo/cnbm.png'; // container-content $contentWidth: round($W / $H * 100) * 1vw; $contentHeight: round($picH / $W * 100) / 100 * $contentWidth; @@ -22,7 +26,8 @@ $contentBgColor: #ffffff; // container-content-pic $picWidth: round($picW / $H * 100) * 1vw; $picHeight: inherit; -$picImage: '../assets/images/pic.png'; +// $picImage: '../assets/images/pic.png'; +$picImage: '../assets/images/login-bg.png'; // container-content-field $fieldWidth: $contentWidth - $picWidth; $fieldHeight: inherit; @@ -34,231 +39,309 @@ $buttonHeight: $buttonH * 1px; // - - - - - 页面基础设置 .container { - .login-code { - width: 33%; - height: 38px; - float: right; - img { - cursor: pointer; - width:100%;max-width:100px; height:auto; - vertical-align: middle; - } - } - // 元素 - width: inherit; - height: inherit; - min-width: 1080px; - min-height: 620px; - background-color: $containerBgColor; - background-image: url($containerBgImage); - background-size: cover; - // 定位 - position: relative; - display: flex; - justify-content: center; - align-items: center; - // 文字 - font-size: 14px; - font-family: Microsoft YaHei; - font-weight: 400; - .logo { - // 元素 - width: $logoWidth; - height: $logoHeight; - // background-image: url($logoImage); - // background-size: contain; - // 定位 - position: absolute; - top: 50px; - left: 50%; - margin-left: -$logoWidth/2; - } - .content { - // 元素 - width: $contentWidth; - height: $contentHeight; - background-color: #ffffff; - box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07); - border-radius: 20px; - // 定位 - position: relative; - .pic { - // 元素 - width: $picWidth; - height: $picHeight; - background-image: url($picImage); - background-repeat: no-repeat; - background-size: cover; - border-radius: 20px 0 0 20px; - // 定位 - position: absolute; - top: 0; - left: 0; - } - .field { - width: $fieldWidth; - height: $fieldHeight; - // 定位 - position: absolute; - top: 0; - left: $picWidth; - display:flex; - justify-content: center; - align-items: center; - .pc-title{ width: 100%; clear: both;} - .mobile-title, - .mobile-switch { - display: none; - } - .form { - box-sizing: border-box; - width: $formWidth; - // - - - tab - :deep(.el-tabs__content) { - padding: 20px 0 0; - } - :deep(.el-tabs__item) { - // 元素 - width: $tabWidth; - height: $rowHeight; - padding: 0; - // 文字 - line-height: $rowHeight; - color: #666666; - } - :deep(.el-tabs__item.is-active) { - font-weight: bold; - color: #2F53EB; - } - :deep(.el-tabs__active-bar) { - height: 3px; - border-radius: 2px; - } - // - - - input - :deep(.el-input__inner) { - // 元素 - width: 100%; - height: $rowHeight; - background: #f5f5f5; - border: 0; - border-radius: 28px; - // 文字 - text-align: center; - line-height: 19px; - color: #262626; - } - .code:deep(.el-input__inner) { - padding: 0 24px; - // 文字 - text-align: left; - } - :deep(.el-input__inner::-webkit-input-placeholder) { /* WebKit browsers */ - font-weight: 400; - color: #8C8C8C; - } - :deep(.el-input__inner:-moz-placeholder) { /* Mozilla Firefox 4 to 18 */ - font-weight: 400; - color: #8C8C8C; - } - :deep(.el-input__inner::-moz-placeholder) { /* Mozilla Firefox 19+ */ - font-weight: 400; - color: #8C8C8C; - opacity:1; - } - :deep(.el-input__inner:-ms-input-placeholder) { /* Internet Explorer 10+ */ - font-weight: 400; - color: #8C8C8C !important; - } - :deep(.el-form-item) { - position: relative; - .button-code { - // 元素 - height: $rowHeight; - box-sizing: border-box; - // 定位 - position: absolute; - top: 0; - right: 20px; - z-index: 1; - // 文字 - line-height: 20px; - font-size: 14px; - font-family: PingFang SC; - font-weight: 400; - color: #2F53EB; - span { - padding-left: 15px; - border-left: 2px solid #D9D9D9; - } - } - } - :deep(.el-form-item__error) { - padding-left: 24px; - } - .button { - width: 100%; - height: $buttonHeight; - background: rgba(24, 144, 255, 0.2); - border: 0; - border-radius: 24px; - margin-bottom: 20px; - // 文字 - line-height: 26px; - font-size: 20px; - color: #FFFFFF; - } - .button-active { - background: #2F53EB; - box-shadow: 0px 2px 8px rgba(0, 80, 184, 0.2); - } - } - } - } - .footer { - // 元素 - height: 16px; - line-height: 16px; - font-size: 12px; - color: #8c8c8c; - // 定位 - position: absolute; - bottom: 30px; - a, - a:hover, - a:active { - color: inherit; - text-decoration: none; - } - } + .login-code { + width: 33%; + height: 38px; + float: right; + img { + cursor: pointer; + width: 100%; + max-width: 100px; + height: auto; + vertical-align: middle; + } + } + // 元素 + width: inherit; + height: inherit; + min-width: 1080px; + min-height: 620px; + background-color: $containerBgColor; + // background-image: url($containerBgImage); + background-size: cover; + // 定位 + position: relative; + display: flex; + justify-content: center; + align-items: center; + // 文字 + font-size: 14px; + font-family: Microsoft YaHei; + font-weight: 400; + .logo { + // 元素 + width: $logoWidth; + height: $logoHeight; + // background-image: url($logoImage); + // background-size: contain; + // 定位 + position: absolute; + top: 50px; + left: 50%; + margin-left: -$logoWidth/2; + } + .content { + // 元素 + // width: $contentWidth; + // height: $contentHeight; + width: 100%; + height: 100%; + background-color: #ffffff; + // box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07); + // border-radius: 20px; + // 定位 + position: relative; + display: flex; + + .pic { + // 元素 + width: $picWidth; + height: $picHeight; + background-image: url($picImage); + background-repeat: no-repeat; + background-size: 100% 100%; + background-position: 0 0; + position: relative; + &::after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + // background: #f003; + display: inline-block; + } + } + .field { + // background: #ccc3; + position: relative; + padding-top: 196px; + flex: 1; + display: flex; + flex-direction: column; + // justify-content: center; + align-items: center; + .pc-title { + width: 100%; + text-align: center; + clear: both; + position: relative; + top: -36px; + + // h3.title { + // position: relative; + + // &::before { + // content: ''; + // background: url($cnbmLogo) 100% / 100% no-repeat; + // height: 48px; + // width: 48px; + // position: absolute; + // left: 0px; + // top: 4px; + // display: inline-block; + // } + // } + } + .mobile-title, + .mobile-switch { + display: none; + } + .form { + margin-top: 32px; + box-sizing: border-box; + // width: $formWidth; + width: 100%; + // - - - tab + :deep(.el-tabs__nav) { + // background: #f0f3; + } + :deep(.el-tabs__content) { + padding: 20px 0 0; + } + :deep(.el-tabs__item) { + user-select: none; + // 元素 + width: $tabWidth; + height: $rowHeight; + padding: 0; + // 文字 + line-height: $rowHeight; + color: #666666; + font-size: 18px; + font-weight: 400; + text-align: center; + } + :deep(.el-tabs__item.is-active) { + font-weight: 500; + color: #2f53eb; + } + :deep(.el-tabs__active-bar) { + height: 3px; + border-radius: 2px; + } + // - - - input + :deep(.el-input__inner) { + // 元素 + width: 100%; + height: $rowHeight; + background: #f5f5f5; + border: 0; + border-radius: 28px; + // 文字 + text-align: center; + line-height: 19px; + color: #262626; + } + .code:deep(.el-input__inner) { + padding: 0 24px; + // 文字 + text-align: left; + } + :deep(.el-input__inner::-webkit-input-placeholder) { + /* WebKit browsers */ + font-weight: 400; + color: #8c8c8c; + } + :deep(.el-input__inner:-moz-placeholder) { + /* Mozilla Firefox 4 to 18 */ + font-weight: 400; + color: #8c8c8c; + } + :deep(.el-input__inner::-moz-placeholder) { + /* Mozilla Firefox 19+ */ + font-weight: 400; + color: #8c8c8c; + opacity: 1; + } + :deep(.el-input__inner:-ms-input-placeholder) { + /* Internet Explorer 10+ */ + font-weight: 400; + color: #8c8c8c !important; + } + :deep(.el-form-item) { + position: relative; + .button-code { + // 元素 + height: $rowHeight; + box-sizing: border-box; + // 定位 + position: absolute; + top: 0; + right: 20px; + z-index: 1; + // 文字 + line-height: 20px; + font-size: 14px; + font-family: PingFang SC; + font-weight: 400; + color: #2f53eb; + span { + padding-left: 15px; + border-left: 2px solid #d9d9d9; + } + } + } + :deep(.el-form-item__error) { + padding-left: 24px; + } + .button { + width: 100%; + height: $buttonHeight; + background: rgba(24, 144, 255, 0.2); + border: 0; + border-radius: 24px; + margin-bottom: 20px; + // 文字 + line-height: 26px; + font-size: 20px; + color: #ffffff; + } + .button-active { + background: #2f53eb; + box-shadow: 0px 2px 8px rgba(0, 80, 184, 0.2); + } + } + } + } + + .login-form { + * { + user-select: none; + } + // - - - input + :deep(.el-input__inner) { + // 元素 + width: 420px; + height: 66px; + color: #262626; + font-size: 18px; + } + :deep(.el-checkbox__label) { + font-size: 18px; + line-height: 14px; + } + } + + .footer { + user-select: none; + // 元素 + height: 16px; + line-height: 16px; + font-size: 12px; + color: #8c8c8c; + // 定位 + position: absolute; + bottom: 30px; + a, + a:hover, + a:active { + color: inherit; + text-decoration: none; + } + } } // - - - - - PC 最小尺寸设置 @media screen and (min-width: 599px) and (max-width: 1366px) { - .container { - .content { - width: 710px; - height: 397px; - .pic { - width: 314px; - } - .field { - width: calc(710px - 314px); - left: 314px; - .form { - width: 320px; - :deep(.el-input__inner) { - width: 320px; - height: 56px; - } - .button { - height: 50px; - } - } - } - } - } -} + .container { + min-width: 599px; + .content { + // width: 710px; + // height: 397px; + width: 100%; + height: 100%; + .pic { + // width: 314px; + display: none; + } + .field { + // width: calc(710px - 314px); + // left: 314px; + // justify-content: center; + width: 100%; + .pc-title { + h3 { + font-size: 2.4rem !important; + } + } + + .form { + // width: 320px; + :deep(.el-input__inner) { + width: 320px; + height: 56px; + } + .button { + height: 50px; + } + } + } + } + } +} /* ===== MOBILE DESIGN ===== */ $mobileW: 375; @@ -273,115 +356,142 @@ $mobileButtonH: 48; $mobileContainerBgImage: '../assets/images/bg-mobile.png'; // container-content $mobileContentWidth: round($mobileContentW / $mobileW * 100) * 1vw; -$mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 * $mobileContentWidth; +$mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 * + $mobileContentWidth; // container-content-field-form -$mobileFormWidth: round($mobileFormW / $mobileW *100) * 1vw; +$mobileFormWidth: round($mobileFormW / $mobileW * 100) * 1vw; $mobileRowHeight: $mobileRowH * 1px; $mobileButtonHeight: $mobileButtonH * 1px; $iconBgImage: '../assets/images/icon.png'; // - - - - - 移动端设置 @media screen and (max-width: 599px) { - .container { - // 元素 - background-image: url($mobileContainerBgImage); - min-width: 280px; - min-height: 568px; - // 文字 - font-size: 17px; - font-family: PingFang SC; - font-weight: bold; - .logo { - display: none; - } + .container { + // 元素 + background-image: url($mobileContainerBgImage); + min-width: 280px; + min-height: 568px; + // 文字 + font-size: 14px; + font-family: PingFang SC; + font-weight: bold; + .logo { + display: none; + } - .content { - // 元素 - width: $mobileContentWidth; - height: $mobileContentHeight; - min-width: 250px; - min-height: 340px; - // 定位 - display: flex; - justify-content: center; - align-items: center; - .pic { - display: none; - } - .field { - // 元素 - width: inherit; - min-height: inherit; - // 定位 - left: 0; - display: flex; - flex-direction: column; - .mobile-title { - // 元素 - margin: 0 0 20px; - display: block; - } - .form { - width: $mobileFormWidth; - // - - - tab - :deep(.el-tabs__header) { - display: none; - } - :deep(.el-tabs__content) { - padding: 0; - } - // - - - input - :deep(.el-input__inner) { - height: $mobileRowHeight; - line-height: 24px; - // 文字 - text-align: center; - color: #262626; - } - :deep(.el-form-item) { - .button-code { - // 元素 - height: $mobileRowHeight; - } - } - .button { - height: $mobileButtonHeight; - line-height: 24px; - color: #FFFFFF; - } - } - .mobile-switch { - display: block; - line-height: 20px; - font-size: 14px; - font-weight: 400; - color: #595959; - margin: 0; - .icon { - width: 14px; - height: 14px; - display: inline-block; - background-image: url($iconBgImage); - background-size: cover; - } - } - .mobile-switch:hover { - cursor: pointer; - } - } - } - .footer { - // 元素 - font-size: 12px; - font-family: PingFang SC; - font-weight: 400; - line-height: 17px; - color: #333333; - opacity: 0.6; - // 定位 - position: absolute; - bottom: 20px; - } - } + .pc-title { + display: none; + } + .content { + // 元素 + width: $mobileContentWidth; + height: $mobileContentHeight; + min-width: 250px; + min-height: 340px; + // 定位 + display: flex; + justify-content: center; + align-items: center; + .pic { + display: none; + } + .field { + padding: 0; + // 元素 + width: inherit; + min-height: inherit; + // 定位 + left: 0; + display: flex; + flex-direction: column; + + .mobile-title { + // 元素 + margin: 0; + display: block; + } + + .form { + margin: 0; + width: $mobileFormWidth; + // - - - tab + :deep(.el-tabs__header) { + display: none; + } + :deep(.el-tabs__content) { + padding: 0; + } + // - - - input + :deep(.el-input__inner) { + height: $mobileRowHeight; + line-height: 24px; + // 文字 + text-align: center; + color: #262626; + } + :deep(.el-form-item) { + .button-code { + // 元素 + height: $mobileRowHeight; + } + } + .button { + height: $mobileButtonHeight; + line-height: 24px; + color: #ffffff; + } + } + + .login-form { + :deep(.el-input__inner) { + height: $mobileRowHeight; + line-height: 24px; + // 文字 + text-align: center; + color: #262626; + } + + :deep(#button-form-item) { + margin: 0 !important; + button { + // 元素 + height: $mobileRowHeight; + } + } + } + .mobile-switch { + display: block; + line-height: 20px; + font-size: 14px; + font-weight: 400; + color: #595959; + margin: 0; + .icon { + width: 14px; + height: 14px; + display: inline-block; + background-image: url($iconBgImage); + background-size: cover; + } + } + .mobile-switch:hover { + cursor: pointer; + } + } + } + + .footer { + // 元素 + font-size: 12px; + font-family: PingFang SC; + font-weight: 400; + line-height: 17px; + color: #333333; + opacity: 0.6; + // 定位 + // position: absolute; + bottom: -32px; + } + } } diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index 4902d3d8..d7c255e2 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -35,7 +35,7 @@ export default { const first = matched[0] if (!this.isDashboard(first)) { - matched = [{ path: '/index', meta: { title: '首页' }}].concat(matched) + matched = [{ path: '/', meta: { title: '首页' }}].concat(matched) } this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false) diff --git a/src/components/DialogForm/index.vue b/src/components/DialogForm/index.vue index f0c324ea..4449dab1 100644 --- a/src/components/DialogForm/index.vue +++ b/src/components/DialogForm/index.vue @@ -66,7 +66,10 @@ :key="col.key" :disabled="disabled" :is="col.subcomponent" - :inlineStyle="col.style"> + v-model="form[col.prop]" + :inlineStyle="col.style" + @on-change="$emit('update', form)" + v-bind="col.bind">
+ + 产线生产监控系统 +
+{{ a.name }}
{{ b.name }}
{{ c.name }}
@@ -76,11 +109,14 @@ v-for="d in wareData.four.slice((i - 1) * 10, i * 10)" :key="d.id + d.code" :title="d.name" - style="background: #fff8e8; float: left"> + :style="{ + background: bgColor[d.enabled], + float: 'left', + }">{{ d.name }}
@@ -106,7 +142,14 @@ export default { four: [], }, total: 0, - bgColor: ['#7362F3', '#16DC09', '#FFA08F'], + bgColor: ['#D7DBE5', '#D8E5FF'], + dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'], + cassetteStatusList: [ + { id: '1', name: '可用', color: '#16DC09' }, + { id: '2', name: '占用-待入库', color: '#FFD781' }, + { id: '3', name: '占用-有货', color: '#7362F3' }, + { id: '4', name: '占用-待出库', color: '#FFA08F' }, + ], formConfig: [ { type: 'button', @@ -130,26 +173,26 @@ export default { there: [], four: [], }), - getWarehouseList().then((response) => { - response.data.forEach((item) => { - if (item.storageType === 2) { - listByWarehouse(item.id).then((response) => { - response.data.forEach((a, b) => { - if (b % 4 === 0) { - this.wareData.one.push(a); - } else if (b % 4 === 1) { - this.wareData.two.push(a); - } else if (b % 4 === 2) { - this.wareData.there.push(a); - } else if (b % 4 === 3) { - this.wareData.four.push(a); + getWarehouseList().then((response) => { + response.data.forEach((item) => { + if (item.storageType === 2) { + listByWarehouse(item.id).then((response) => { + response.data.forEach((a, b) => { + if (b % 4 === 0) { + this.wareData.one.push(a); + } else if (b % 4 === 1) { + this.wareData.two.push(a); + } else if (b % 4 === 2) { + this.wareData.there.push(a); + } else if (b % 4 === 3) { + this.wareData.four.push(a); + } + }); + this.total = Math.ceil(response.data.length / 40); + }); } }); - this.total = Math.ceil(response.data.length / 40); - }); - } - }); - }); + }); }, buttonClick(val) { switch (val.btnName) { @@ -225,4 +268,25 @@ export default { top: 22px; right: 120px; } +.dashboard-legend { + margin: 5px 5px 10px 5px; + .dashboard-legend-cassette { + display: inline-block; + margin-right: 24px; + .dashboard-legend-cassette-cricle { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 6px; + } + } + .dashboard-legend-port { + display: inline-block; + height: 24px; + line-height: 24px; + border-radius: 4px; + padding: 0 16px; + margin-left: 24px; + } +} diff --git a/src/views/warehouse/end-material/warehouseRealtimeLocation/index.vue b/src/views/warehouse/end-material/warehouseRealtimeLocation/index.vue index b7176d9e..bcf0cd57 100644 --- a/src/views/warehouse/end-material/warehouseRealtimeLocation/index.vue +++ b/src/views/warehouse/end-material/warehouseRealtimeLocation/index.vue @@ -17,7 +17,7 @@{{ a.name }}
{{ b.name }}
{{ c.name }}
@@ -76,11 +109,14 @@ v-for="d in wareData.four.slice((i - 1) * 10, i * 10)" :key="d.id + d.code" :title="d.name" - style="background: #fff8e8; float: left"> + :style="{ + background: bgColor[d.enabled], + float: 'left', + }">{{ d.name }}
@@ -106,7 +142,14 @@ export default { four: [], }, total: 0, - bgColor: ['#7362F3', '#16DC09', '#FFA08F'], + bgColor: ['#D7DBE5', '#D8E5FF'], + dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'], + cassetteStatusList: [ + { id: '1', name: '可用', color: '#16DC09' }, + { id: '2', name: '占用-待入库', color: '#FFD781' }, + { id: '3', name: '占用-有货', color: '#7362F3' }, + { id: '4', name: '占用-待出库', color: '#FFA08F' }, + ], formConfig: [ { type: 'button', @@ -130,26 +173,26 @@ export default { there: [], four: [], }), - getWarehouseList().then((response) => { - response.data.forEach((item) => { - if (item.storageType === 5) { - listByWarehouse(item.id).then((response) => { - response.data.forEach((a, b) => { - if (b % 4 === 0) { - this.wareData.one.push(a); - } else if (b % 4 === 1) { - this.wareData.two.push(a); - } else if (b % 4 === 2) { - this.wareData.there.push(a); - } else if (b % 4 === 3) { - this.wareData.four.push(a); + getWarehouseList().then((response) => { + response.data.forEach((item) => { + if (item.storageType === 5) { + listByWarehouse(item.id).then((response) => { + response.data.forEach((a, b) => { + if (b % 4 === 0) { + this.wareData.one.push(a); + } else if (b % 4 === 1) { + this.wareData.two.push(a); + } else if (b % 4 === 2) { + this.wareData.there.push(a); + } else if (b % 4 === 3) { + this.wareData.four.push(a); + } + }); + this.total = Math.ceil(response.data.length / 40); + }); } }); - this.total = Math.ceil(response.data.length / 40); - }); - } - }); - }); + }); }, buttonClick(val) { switch (val.btnName) { @@ -225,4 +268,25 @@ export default { top: 22px; right: 120px; } +.dashboard-legend { + margin: 5px 5px 10px 5px; + .dashboard-legend-cassette { + display: inline-block; + margin-right: 24px; + .dashboard-legend-cassette-cricle { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 6px; + } + } + .dashboard-legend-port { + display: inline-block; + height: 24px; + line-height: 24px; + border-radius: 4px; + padding: 0 16px; + margin-left: 24px; + } +} diff --git a/src/views/warehouse/out-material/warehouseRealtimeLocation/index.vue b/src/views/warehouse/out-material/warehouseRealtimeLocation/index.vue index 64d43daf..56bd9a47 100644 --- a/src/views/warehouse/out-material/warehouseRealtimeLocation/index.vue +++ b/src/views/warehouse/out-material/warehouseRealtimeLocation/index.vue @@ -17,7 +17,7 @@{{ a.name }}
{{ b.name }}
{{ c.name }}
@@ -76,11 +109,14 @@ v-for="d in wareData.four.slice((i - 1) * 10, i * 10)" :key="d.id + d.code" :title="d.name" - style="background: #fff8e8; float: left"> + :style="{ + background: bgColor[d.enabled], + float: 'left', + }">{{ d.name }}
@@ -106,7 +142,14 @@ export default { four: [], }, total: 0, - bgColor: ['#7362F3', '#16DC09', '#FFA08F'], + bgColor: ['#D7DBE5', '#D8E5FF'], + dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'], + cassetteStatusList: [ + { id: '1', name: '可用', color: '#16DC09' }, + { id: '2', name: '占用-待入库', color: '#FFD781' }, + { id: '3', name: '占用-有货', color: '#7362F3' }, + { id: '4', name: '占用-待出库', color: '#FFA08F' }, + ], formConfig: [ { type: 'button', @@ -130,26 +173,26 @@ export default { there: [], four: [], }), - getWarehouseList().then((response) => { - response.data.forEach((item) => { - if (item.storageType === 3) { - listByWarehouse(item.id).then((response) => { - response.data.forEach((a, b) => { - if (b % 4 === 0) { - this.wareData.one.push(a); - } else if (b % 4 === 1) { - this.wareData.two.push(a); - } else if (b % 4 === 2) { - this.wareData.there.push(a); - } else if (b % 4 === 3) { - this.wareData.four.push(a); + getWarehouseList().then((response) => { + response.data.forEach((item) => { + if (item.storageType === 3) { + listByWarehouse(item.id).then((response) => { + response.data.forEach((a, b) => { + if (b % 4 === 0) { + this.wareData.one.push(a); + } else if (b % 4 === 1) { + this.wareData.two.push(a); + } else if (b % 4 === 2) { + this.wareData.there.push(a); + } else if (b % 4 === 3) { + this.wareData.four.push(a); + } + }); + this.total = Math.ceil(response.data.length / 40); + }); } }); - this.total = Math.ceil(response.data.length / 40); - }); - } - }); - }); + }); }, buttonClick(val) { switch (val.btnName) { @@ -225,4 +268,25 @@ export default { top: 22px; right: 120px; } +.dashboard-legend { + margin: 5px 5px 10px 5px; + .dashboard-legend-cassette { + display: inline-block; + margin-right: 24px; + .dashboard-legend-cassette-cricle { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 6px; + } + } + .dashboard-legend-port { + display: inline-block; + height: 24px; + line-height: 24px; + border-radius: 4px; + padding: 0 16px; + margin-left: 24px; + } +} diff --git a/src/views/warehouse/package-material/warehouseRealtimeLocation/index.vue b/src/views/warehouse/package-material/warehouseRealtimeLocation/index.vue index da46a2d8..eda55804 100644 --- a/src/views/warehouse/package-material/warehouseRealtimeLocation/index.vue +++ b/src/views/warehouse/package-material/warehouseRealtimeLocation/index.vue @@ -17,7 +17,7 @@{{ a.name }}
{{ b.name }}
{{ c.name }}
@@ -76,11 +109,14 @@ v-for="d in wareData.four.slice((i - 1) * 10, i * 10)" :key="d.id + d.code" :title="d.name" - style="background: #fff8e8; float: left"> + :style="{ + background: bgColor[d.enabled], + float: 'left', + }">{{ d.name }}
@@ -106,7 +142,14 @@ export default { four: [], }, total: 0, - bgColor: ['#7362F3', '#16DC09', '#FFA08F'], + bgColor: ['#D7DBE5', '#D8E5FF'], + dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'], + cassetteStatusList: [ + { id: '1', name: '可用', color: '#16DC09' }, + { id: '2', name: '占用-待入库', color: '#FFD781' }, + { id: '3', name: '占用-有货', color: '#7362F3' }, + { id: '4', name: '占用-待出库', color: '#FFA08F' }, + ], formConfig: [ { type: 'button', @@ -130,26 +173,26 @@ export default { there: [], four: [], }), - getWarehouseList().then((response) => { - response.data.forEach((item) => { - if (item.storageType === 4) { - listByWarehouse(item.id).then((response) => { - response.data.forEach((a, b) => { - if (b % 4 === 0) { - this.wareData.one.push(a); - } else if (b % 4 === 1) { - this.wareData.two.push(a); - } else if (b % 4 === 2) { - this.wareData.there.push(a); - } else if (b % 4 === 3) { - this.wareData.four.push(a); + getWarehouseList().then((response) => { + response.data.forEach((item) => { + if (item.storageType === 4) { + listByWarehouse(item.id).then((response) => { + response.data.forEach((a, b) => { + if (b % 4 === 0) { + this.wareData.one.push(a); + } else if (b % 4 === 1) { + this.wareData.two.push(a); + } else if (b % 4 === 2) { + this.wareData.there.push(a); + } else if (b % 4 === 3) { + this.wareData.four.push(a); + } + }); + this.total = Math.ceil(response.data.length / 40); + }); } }); - this.total = Math.ceil(response.data.length / 40); - }); - } - }); - }); + }); }, buttonClick(val) { switch (val.btnName) { @@ -225,4 +268,25 @@ export default { top: 22px; right: 120px; } +.dashboard-legend { + margin: 5px 5px 10px 5px; + .dashboard-legend-cassette { + display: inline-block; + margin-right: 24px; + .dashboard-legend-cassette-cricle { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 6px; + } + } + .dashboard-legend-port { + display: inline-block; + height: 24px; + line-height: 24px; + border-radius: 4px; + padding: 0 16px; + margin-left: 24px; + } +} diff --git a/src/views/warehouse/part-material/warehouseRealtimeLocation/index.vue b/src/views/warehouse/part-material/warehouseRealtimeLocation/index.vue index b0c93ded..00779a9c 100644 --- a/src/views/warehouse/part-material/warehouseRealtimeLocation/index.vue +++ b/src/views/warehouse/part-material/warehouseRealtimeLocation/index.vue @@ -17,7 +17,7 @@{{ a.name }}
{{ b.name }}
{{ c.name }}
@@ -76,11 +109,14 @@ v-for="d in wareData.four.slice((i - 1) * 10, i * 10)" :key="d.id + d.code" :title="d.name" - style="background: #fff8e8; float: left"> + :style="{ + background: bgColor[d.enabled], + float: 'left', + }">{{ d.name }}
@@ -106,7 +142,14 @@ export default { four: [], }, total: 0, - bgColor: ['#7362F3', '#16DC09', '#FFA08F'], + bgColor: ['#D7DBE5', '#D8E5FF'], + dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'], + cassetteStatusList: [ + { id: '1', name: '可用', color: '#16DC09' }, + { id: '2', name: '占用-待入库', color: '#FFD781' }, + { id: '3', name: '占用-有货', color: '#7362F3' }, + { id: '4', name: '占用-待出库', color: '#FFA08F' }, + ], formConfig: [ { type: 'button', @@ -130,26 +173,26 @@ export default { there: [], four: [], }), - getWarehouseList().then((response) => { - response.data.forEach((item) => { - if (item.storageType === 1) { - listByWarehouse(item.id).then((response) => { - response.data.forEach((a, b) => { - if (b % 4 === 0) { - this.wareData.one.push(a); - } else if (b % 4 === 1) { - this.wareData.two.push(a); - } else if (b % 4 === 2) { - this.wareData.there.push(a); - } else if (b % 4 === 3) { - this.wareData.four.push(a); + getWarehouseList().then((response) => { + response.data.forEach((item) => { + if (item.storageType === 1) { + listByWarehouse(item.id).then((response) => { + response.data.forEach((a, b) => { + if (b % 4 === 0) { + this.wareData.one.push(a); + } else if (b % 4 === 1) { + this.wareData.two.push(a); + } else if (b % 4 === 2) { + this.wareData.there.push(a); + } else if (b % 4 === 3) { + this.wareData.four.push(a); + } + }); + this.total = Math.ceil(response.data.length / 40); + }); } }); - this.total = Math.ceil(response.data.length / 40); - }); - } - }); - }); + }); }, buttonClick(val) { switch (val.btnName) { @@ -225,4 +268,25 @@ export default { top: 22px; right: 120px; } +.dashboard-legend { + margin: 5px 5px 10px 5px; + .dashboard-legend-cassette { + display: inline-block; + margin-right: 24px; + .dashboard-legend-cassette-cricle { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 6px; + } + } + .dashboard-legend-port { + display: inline-block; + height: 24px; + line-height: 24px; + border-radius: 4px; + padding: 0 16px; + margin-left: 24px; + } +} diff --git a/src/views/warehouse/raw-material/warehouseRealtimeLocation/index.vue b/src/views/warehouse/raw-material/warehouseRealtimeLocation/index.vue index aa2c9d51..5da72b0d 100644 --- a/src/views/warehouse/raw-material/warehouseRealtimeLocation/index.vue +++ b/src/views/warehouse/raw-material/warehouseRealtimeLocation/index.vue @@ -17,7 +17,7 @@