Commit 58eeed70 by huangqy

初始化四巷库

parents
> 1%
last 2 versions
not dead
.DS_Store
node_modules
/dist
dataName
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# junmp-ltk
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
private Integer WorkType; 作业类型
private Integer aisle; 巷道号
private String status; 作业状态
/**
* 巷道
*/
private Integer aisle;
/**
* 起始层
*/
@TableField("s_layer")
private Integer sLayer;
/**
* 起始列
*/
@TableField("s_rank")
private Integer sRank;
/**
* 起始排
*/
@TableField("s_row")
private Integer sRow;
/**
* 目标层
*/
@TableField("t_layer")
private Integer tLayer;
/**
* 目标列
*/
@TableField("t_rank")
private Integer tRank;
/**
* 目标排
*/
@TableField("t_row")
private Integer tRow;
/**
* 托盘号
*/
@TableField("pallet_id")
private String palletId;
/**
* 到站台标志
*/
@TableField("station_id")
private String stationId;
/**
* 单据编号
*/
@TableField("bill_id")
private Long billId;
/**
*
*/
@TableField("gate_id")
private Integer gateId;
/**
* 优先级
*/
@TableField("order_id")
private Integer orderId;
/**
* 处理时间
*/
@TableField("deal_time")
private LocalDateTime dealTime;
/**
* 发送时间
*/
@TableField("send_time")
private LocalDateTime sendTime;
/**
* 运行时间
*/
@TableField("run_time")
private LocalDateTime runTime;
/**
* 工作状态
*/
private String status;
/**
* 工作类型
*/
@TableField("work_type")
private Integer workType;
:close-on-click-modal="false"
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "junmp-ltk",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build"
},
"dependencies": {
"@jiaminghi/data-view": "^2.10.0",
"ant-design-vue": "^1.7.2",
"axios": "^0.21.1",
"core-js": "^3.6.5",
"echarts": "^4.9.0",
"element-ui": "^2.15.7",
"nprogress": "^0.2.0",
"swiper": "^6.3.5",
"vue": "^2.6.11",
"vue-awesome-swiper": "^3.1.3",
"vue-router": "^3.2.0",
"vuex": "^3.4.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"generate-asset-webpack-plugin": "^0.3.0",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"vue-template-compiler": "^2.6.11"
}
}
{
"data": [
{
"id": 1,
"DJH": "219445566",
"PZH": "PZH[12633]",
"FH": "分户单位11",
"DW": "成都军需库",
"WZDM": "TH-23",
"PM": "95A夏季常服",
"HX": "175/88A",
"PC": "27日32批次",
"SL": 233,
"YSL": 230,
"SSL": 200,
"TPH": "A-25-400",
"PFID": "25E1346235235235235",
"RFIDNUM": 150,
"USER": "24管理员",
"ZH": "admin",
"XD": "225巷道",
"ZT": "322站台",
"ZTBM": "32-HD",
"HW": "5号货位",
"HWBM": "hd-5-2462",
"HG": "64号货格",
"HGBM": "HD5-64250",
"FWDW": "成都43号"
},
{
"id": 2,
"DJH": "214455366",
"PZH": "PZH[12323]",
"FH": "分户单位11",
"DW": "成都军需库",
"WZDM": "TH-293",
"PM": "95A夏季常服",
"HX": "175/88A",
"PC": "2日32批次",
"SL": 233,
"YSL": 230,
"SSL": 200,
"TPH": "A-285-400",
"PFID": "25E1346235235235235",
"RFIDNUM": 150,
"USER": "274管理员",
"ZH": "admin",
"XD": "25巷道",
"ZT": "32站台",
"ZTBM": "3332-HD",
"HW": "54号货位",
"HWBM": "hd-5-2462",
"HG": "64号货格",
"HGBM": "HD5-64250",
"FWDW": "成都43号"
},
{
"id": 3,
"DJH": "21445566",
"PZH": "PZH[1233]",
"FH": "分户单位211",
"DW": "成都军需库",
"WZDM": "TH-23",
"PM": "95A夏季常服",
"HX": "175/88A",
"PC": "21日32批次",
"SL": 2331,
"YSL": 2301,
"SSL": 2010,
"TPH": "A-215-400",
"PFID": "25E1346235235235235",
"RFIDNUM": 150,
"USER": "214管理员",
"ZH": "admin",
"XD": "252巷道",
"ZT": "352站台",
"ZTBM": "352-HD",
"HW": "52号货位",
"HWBM": "hd-5-2462",
"HG": "64号货格",
"HGBM": "HD5-645250",
"FWDW": "成都413号"
},
{
"id": 4,
"DJH": "2124455566",
"PZH": "PZH[12233]",
"FH": "分户单位11",
"DW": "成都军需库",
"WZDM": "TH-23",
"PM": "95A夏季常服",
"HX": "175/88A",
"PC": "2日32批次",
"SL": 2333,
"YSL": 2230,
"SSL": 2020,
"TPH": "A-225-4040",
"PFID": "25E1346235235235235",
"RFIDNUM": 1150,
"USER": "214管理员",
"ZH": "admin",
"XD": "251巷道",
"ZT": "321站台",
"ZTBM": "32-HD",
"HW": "55号货位",
"HWBM": "hd-5-2462",
"HG": "654号货格",
"HGBM": "HD5-64250",
"FWDW": "成都43号"
}
]
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>军需立体库作业管理信息系统</title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="ltkApp"></div>
<!-- built files will be auto injected -->
<script>
window._CONFIG = {};
window._CONFIG['publicURL'] = 'http://192.168.3.130:10026';
window._CONFIG['domianURL'] = 'http://192.168.3.130:10026/LTK';
window._CONFIG['screenFull'] = 'http://127.0.0.1:9602'
</script>
<style>
.el-card {overflow-y: auto;}
.active-top-card { overflow: hidden;}
.top-card { overflow: hidden;}
</style>
</body>
</html>
<template>
<div id="ltkApp">
<!-- 路由占位符 -->
<router-view v-if="isRouterAlive"></router-view>
</div>
</template>
<script>
export default {
name: 'ltkApp',
provide () {
return {
reload: this.reload
}
},
data () {
return {
isRouterAlive: true
}
},
methods: {
reload () {
this.isRouterAlive = false
this.$nextTick(function () {
this.isRouterAlive = true
})
}
}
}
</script>
<style>
#ltkApp {
width: 100%;
height: 100%;
}
/* 解决element ui中table渲染错位问题 */
.el-table--border th.gutter:last-of-type {
display: block!important; width: 17px!important;
}
</style>
/* 全局样式表 */
html, body, #ltkApp {
box-sizing: border-box;
height: 100%;
width: 100%;
min-width: 1600px !important;
margin: 0;
padding: 0;
/* min-width: 1266px; */
}
/* 整体内容区域 */
.body {
display: flex;
flex-flow: nowrap column;
justify-content: space-between;
align-items: stretch;
box-sizing: border-box;
background:rgb(210, 248, 211) !important;
}
/* 内容区域 */
.main_box {
box-sizing: border-box;
height: 100%;
/* min-height: 700px; */
padding: 15px;
margin-bottom: 10px;
/* background-color: #fff; */
/* border-radius: 3px;
box-shadow: 0px 0px 4px rgba(29, 60, 13, .8); */
/* overflow: auto; */
}
/* 面包屑导航 */
.el-breadcrumb {
/* height: 40px; */
/* height: 4vh; */
padding: 10px 20px !important;
margin-bottom: 15px;
border-left: 3px solid #36427c;
border-radius: 4px;
font-size: 15px;
background: #fff;
box-shadow: -2px 2px 3px rgba(29, 60, 13, .8);
line-height: 40px !important;
user-select: none;
cursor: default !important;
}
/* 取消下划线和颜色 */
a {
text-decoration: none;
}
/* 取消列表的点 */
li {
list-style: none;
}
/* 取消倾斜 */
em,
i {
font-style: normal;
}
/* 浮动 */
.fl {
float: left;
}
.fr {
float: right;
}
/* 清除浮动 */
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
.clearfix {
/* IE6.7专用 */
*zoom: 1;
}
.mgr15 {
margin-right: 15px !important;
}
.mgl15 {
margin-left: 15px !important;
}
.mgb15 {
margin-bottom: 15px !important;
}
.mgt15 {
margin-top: 15px !important;
}
/* 上下布局 */
.flex_column {
display: flex;
flex-flow: nowrap column;
justify-content: space-between;
box-sizing: border-box;
align-items: stretch;
}
.el-dropdown {
border: none !important;
}
.el-dropdown-link {
cursor: pointer;
color: #409EFF;
}
.el-icon-arrow-down {
font-size: 12px;
}
/* 可点击按钮 */
.click {
cursor: pointer;
user-select: none;
}
/* .el-table__body-wrapper{
z-index: 2 !important
} */
/* 设置滚动条的样式 */
::-webkit-scrollbar {
width: 6px;
height: 6px;
background-color: #c7d1da;
z-index: 9999 !important;
}
/* 滚动槽 */
::-webkit-scrollbar-track {
border-radius: 2px;
z-index: 9999 !important;
}
/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
border-radius:2px;
background: #bbbbc3;
z-index: 9999 !important;
}
/* 操作功能区域 */
.operate_box {
margin-bottom: 10px;
}
/* 操作功能区域样式 */
.serch_form {
padding: 10px 10px 0;
border-radius: 4px;
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);
}
/* 组件样式更改优化 */
/* 优化 - 去掉抽屉选中样式 */
.el-drawer:focus,
.el-drawer__header span:focus,
.el-drawer__header button:focus {
outline: none;
}
/* 抽屉标题样式更改 */
.el-drawer__header {
margin: 0px !important;
padding-bottom: 10px !important;
padding-top: 10px !important;
border-bottom: 1px solid #e8e8e8;
font-weight: 700;
/* font-family: 'Share Tech Mono', monospace; */
}
.el-drawer__body {
overflow: auto;
}
.el-button {
box-sizing: border-box;
}
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover {
background-color: #FFF8DC !important;
}
/* 表格样式 */
.el-table {
border-radius: 4px;
margin-top: -15px;
}
.el-card {
border: 0px solid #EBEEF5 !important;
border-radius: 0px !important;
}
.el-card__body {
padding: 25px 25px 15px 25px !important;
}
.ltk_card_body {
padding: 15px;
background: #fff;
border: 1px solid rgb(19, 138, 36);
}
.el-table thead {
color: #000 !important;;
font-weight: 600;
}
.ant-btn-background-ghost.ant-btn-primary{
color: rgb(27,151,37);
background-color: transparent;
border-color: rgb(27,151,37);
text-shadow: none;
}
.ant-btn-background-ghost.ant-btn-primary:hover, .ant-btn-background-ghost.ant-btn-primary:focus {
color: rgb(27,151,37);
background-color: transparent;
border-color: rgb(27,151,37);
}
.el-pagination.is-background .el-pager li:not(.disabled).active {
background-color: rgb(27,151,37) !important;
color: #FFF;
}
/* 表格鼠标样式修改 */
.el-table__row {
cursor: pointer;
color: #000;
}
/* 激活的table样式 */
.success-row {
background: #ecf5ff !important;
}
/* .el-table__header-wrapper {
color: #000 !important;
} */
/* 多选框样式 */
.el-table-column--selection .cell {
padding: 0 !important;
}
/* 分页样式 */
.el-pagination {
margin: 10px 0;
}
.el-divider--horizontal {
margin: 5px 0 !important;
}
/* 分割线设置 */
.el-divider .el-divider__text {
font-size: 16px;
font-weight: 700;
color: #284527;
text-shadow: 0 0px 1px #2a770d;
}
/* alert警告样式 */
.el-alert {
margin-bottom: 10px !important;
}
.el-date-editor .el-range-separator {
padding: 0 5px;
width: 10% !important;
color: #303133;
}
.el-table--d .el-table__body tr.el-table__row--d.current-row td, .el-table__body tr.current-row>td {
/* color: #fff; */
background-color: #FFF8DC !important;
}
/* .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #FFF8DC !important;
} */
.el-table--d .el-table__body tr.el-table__row--d td {
background: #F1FDF1 !important;
}
/* tabs页样式 */
.el-tabs__content {
box-sizing: border-box;
height: 92%;
}
/* 轮播表样式 */
.dv-scroll-board {
/* background: red !important; */
color: #000 !important;
}
.dv-scroll-board .header {
text-align: center !important;
font-weight: 600;
color: #fff;
}
.dv-scroll-board .rows {
text-align: center;
}
.dv-scroll-board .rows .row-item {
font-size: 13px !important;
/* color: #0f76f8; */
}
/* .dv-scroll-board .rows .row-item:nth-child(odd) {
color: #0f76f8;
} */
.dv-scroll-board .header {
text-align: center !important;
font-weight: 500;
color: #185E1E;
font-size: 14px;
}
/* 动态环样式 */
.dv-active-ring-chart .active-ring-info .active-ring-name {
color: #000 !important;
margin-top: 5px;
font-size: 15px !important;
}
/* 胶囊图样式优化 */
.dv-capsule-chart {
color: #000 !important;
}
.dv-capsule-chart .capsule-item-column {
margin: 0 !important;
height: 100% !important;
}
/* 查询条件标题样式 */
.somall_title {
font-size: 14px;
color: #606266;
padding: 0 5px 0 15px;
}
/* element样式定义更改 */
/* .el-button--primary {
background-color: #1E341D !important;
border-color: #1E341D !important;
}
.el-button--primary:hover {
background-color: #284527 !important;
} */
/* #ff4d4f */
/* .el-button--danger {
background-color: #8F2C2C !important;
border-color: #8F2C2C !important;
}
.el-button--danger:hover {
background-color: #BF2B2D !important;
} */
/* .el-radio-button__orig-radio:checked+.el-radio-button__inner {
background-color: #1E341D !important;
border-color: #1E341D !important;
box-shadow: -1px 0 0 0 #1E341D !important;
} */
/* btn按钮样式 */
.success {
background: #67c23a !important;
border-color: #67c23a !important;
}
.success:hover {
background: #85ce61 !important;
border-color: #85ce61 !important;
}
.warning {
background: #e6a23c !important;
border-color: #e6a23c !important;
}
.warning:hover {
background: #ebb563 !important;
border-color: #ebb563 !important;
}
.info {
background: #909399 !important;
border-color: #909399 !important;
}
.info:hover {
background: #a6a9ad !important;
border-color: #a6a9ad !important;
}
/* 出库,入库tag */
.success_tag,
.primary_tag,
.warning_tag,
.danger_tag {
padding: 0px 4px 3px;
border-radius: 3px;
}
.success_tag {
border: 1px solid #67c23a;
background: #e1f3d8;
color: #67c23a;
}
.primary_tag {
border: 1px solid #409eff;
background: #b3d8ff;
color: #409eff;
}
.warning_tag {
border: 1px solid #e6a23c;
background: #FFEFD5;
color: #e6a23c;
}
.danger_tag {
border: 1px solid #ff4d4f;
background: #FFE4E1;
color: #ff4d4f;
}
/* 首页切换按钮 */
.tabs_scoll .el-radio-button__inner:hover {
color: rgb(19, 138, 36);
background-color: #f0f9eb;
}
.tabs_scoll .is-active .el-radio-button__inner,
.tabs_scoll .is-active .el-radio-button__inner:hover {
background: rgb(19, 138, 36) !important;
color: #fff;
}
.tabs_scoll .el-radio-button__orig-radio:checked+.el-radio-button__inner {
border-color: #2c452c;
box-shadow: none;
}
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1635322291765" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8486" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#cdcdcd" p-id="8487"></path><path d="M814.933333 322.133333c-123.733333 0-185.6-46.933333-232.533333-83.2-25.6-19.2-46.933333-36.266667-70.4-36.266666-23.466667 0-40.533333 14.933333-64 34.133333-42.666667 36.266667-100.266667 83.2-238.933333 83.2h-4.266667s0 2.133333 4.266667 12.8c4.266667 6.4 10.666667 14.933333 17.066666 25.6 14.933333 21.333333 55.466667 113.066667 55.466667 113.066667s2.133333 2.133333 6.4 4.266666c2.133333 2.133333 4.266667 6.4 4.266667 8.533334-2.133333 6.4-2.133333 12.8-2.133334 19.2v2.133333l-2.133333 2.133333c-4.266667 4.266667-6.4 6.4-6.4 10.666667v6.4h-2.133333c-29.866667 10.666667-49.066667 40.533333-49.066667 76.8 0 23.466667 14.933333 40.533333 25.6 51.2 14.933333 14.933333 34.133333 25.6 53.333333 29.866667h2.133334v2.133333c19.2 51.2 61.866667 81.066667 93.866666 98.133333 38.4 21.333333 81.066667 29.866667 102.4 29.866667s61.866667-8.533333 102.4-29.866667c32-17.066667 74.666667-49.066667 93.866667-98.133333V682.666667h2.133333c19.2-4.266667 38.4-17.066667 53.333334-32 17.066667-17.066667 25.6-34.133333 25.6-51.2 2.133333-36.266667-12.8-68.266667-42.666667-78.933334h-4.266667v-6.4c0-4.266667-2.133333-8.533333-6.4-10.666666l-2.133333-2.133334v-2.133333c0-4.266667-2.133333-6.4-2.133333-10.666667 0-2.133333-2.133333-4.266667-2.133334-6.4l-2.133333-4.266666c0-2.133333 0-4.266667 2.133333-4.266667 2.133333-2.133333 4.266667-2.133333 4.266667-4.266667 0 0 36.266667-96 59.733333-119.466666 8.533333-8.533333 14.933333-14.933333 19.2-21.333334 2.133333-4.266667 4.266667-6.4 6.4-6.4 4.266667 2.133333 2.133333 0 0 0z m-360.533333-17.066666h115.2v53.333333c0 10.666667-8.533333 23.466667-27.733333 36.266667-12.8 8.533333-27.733333 14.933333-27.733334 14.933333h-4.266666s-14.933333-6.4-27.733334-14.933333c-19.2-12.8-27.733333-25.6-27.733333-36.266667v-53.333333z m-119.466667 189.866666s104.533333-14.933333 177.066667-14.933333c72.533333 0 177.066667 14.933333 177.066667 14.933333v25.6s-68.266667 36.266667-149.333334 44.8c-10.666667 0-19.2 2.133333-29.866666 2.133334-70.4 0-138.666667-27.733333-164.266667-38.4l-12.8-6.4 2.133333-27.733334z" fill="#1296db" p-id="8488"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1635123174191" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12880" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M786.285714 128a91.428571 91.428571 0 0 1 91.428572 91.428571v566.857143a91.428571 91.428571 0 0 1-91.428572 91.428572H237.714286a91.428571 91.428571 0 0 1-91.428572-91.428572V219.428571a91.428571 91.428571 0 0 1 91.428572-91.428571h548.571428zM368.749714 421.302857h-54.857143v293.376h54.857143V421.321143z m175.250286-125.696h-54.857143v419.072h54.857143V295.606857z m175.195429 251.428572h-54.857143v167.643428h54.857143v-167.643428z" p-id="12881" fill="#0F7EFF"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1635123174191" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12880" data-spm-anchor-id="a313x.7781069.0.i2" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M786.285714 128a91.428571 91.428571 0 0 1 91.428572 91.428571v566.857143a91.428571 91.428571 0 0 1-91.428572 91.428572H237.714286a91.428571 91.428571 0 0 1-91.428572-91.428572V219.428571a91.428571 91.428571 0 0 1 91.428572-91.428571h548.571428zM368.749714 421.302857h-54.857143v293.376h54.857143V421.321143z m175.250286-125.696h-54.857143v419.072h54.857143V295.606857z m175.195429 251.428572h-54.857143v167.643428h54.857143v-167.643428z" p-id="12881" fill="#E6A23C"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1635123174191" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12880" data-spm-anchor-id="a313x.7781069.0.i2" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M786.285714 128a91.428571 91.428571 0 0 1 91.428572 91.428571v566.857143a91.428571 91.428571 0 0 1-91.428572 91.428572H237.714286a91.428571 91.428571 0 0 1-91.428572-91.428572V219.428571a91.428571 91.428571 0 0 1 91.428572-91.428571h548.571428zM368.749714 421.302857h-54.857143v293.376h54.857143V421.321143z m175.250286-125.696h-54.857143v419.072h54.857143V295.606857z m175.195429 251.428572h-54.857143v167.643428h54.857143v-167.643428z" p-id="12881" fill="#20354B"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1635123174191" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12880" data-spm-anchor-id="a313x.7781069.0.i2" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M786.285714 128a91.428571 91.428571 0 0 1 91.428572 91.428571v566.857143a91.428571 91.428571 0 0 1-91.428572 91.428572H237.714286a91.428571 91.428571 0 0 1-91.428572-91.428572V219.428571a91.428571 91.428571 0 0 1 91.428572-91.428571h548.571428zM368.749714 421.302857h-54.857143v293.376h54.857143V421.321143z m175.250286-125.696h-54.857143v419.072h54.857143V295.606857z m175.195429 251.428572h-54.857143v167.643428h54.857143v-167.643428z" p-id="12881" fill="#67C23A"></path></svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1361px" height="609px" viewBox="0 0 1361 609" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
<title>Group 21</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Ant-Design-Pro-3.0" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="账户密码登录-校验" transform="translate(-79.000000, -82.000000)">
<g id="Group-21" transform="translate(77.000000, 73.000000)">
<g id="Group-18" opacity="0.8" transform="translate(74.901416, 569.699158) rotate(-7.000000) translate(-74.901416, -569.699158) translate(4.901416, 525.199158)">
<ellipse id="Oval-11" fill="#CFDAE6" opacity="0.25" cx="63.5748792" cy="32.468367" rx="21.7830479" ry="21.766008"></ellipse>
<ellipse id="Oval-3" fill="#CFDAE6" opacity="0.599999964" cx="5.98746479" cy="13.8668601" rx="5.2173913" ry="5.21330997"></ellipse>
<path d="M38.1354514,88.3520215 C43.8984227,88.3520215 48.570234,83.6838647 48.570234,77.9254015 C48.570234,72.1669383 43.8984227,67.4987816 38.1354514,67.4987816 C32.3724801,67.4987816 27.7006688,72.1669383 27.7006688,77.9254015 C27.7006688,83.6838647 32.3724801,88.3520215 38.1354514,88.3520215 Z" id="Oval-3-Copy" fill="#CFDAE6" opacity="0.45"></path>
<path d="M64.2775582,33.1704963 L119.185836,16.5654915" id="Path-12" stroke="#CFDAE6" stroke-width="1.73913043" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M42.1431708,26.5002681 L7.71190162,14.5640702" id="Path-16" stroke="#E0B4B7" stroke-width="0.702678964" opacity="0.7" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.405357899873153,2.108036953469981"></path>
<path d="M63.9262187,33.521561 L43.6721326,69.3250951" id="Path-15" stroke="#BACAD9" stroke-width="0.702678964" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.405357899873153,2.108036953469981"></path>
<g id="Group-17" transform="translate(126.850922, 13.543654) rotate(30.000000) translate(-126.850922, -13.543654) translate(117.285705, 4.381889)" fill="#CFDAE6">
<ellipse id="Oval-4" opacity="0.45" cx="9.13482653" cy="9.12768076" rx="9.13482653" ry="9.12768076"></ellipse>
<path d="M18.2696531,18.2553615 C18.2696531,13.2142826 14.1798519,9.12768076 9.13482653,9.12768076 C4.08980114,9.12768076 0,13.2142826 0,18.2553615 L18.2696531,18.2553615 Z" id="Oval-4" transform="translate(9.134827, 13.691521) scale(-1, -1) translate(-9.134827, -13.691521) "></path>
</g>
</g>
<g id="Group-14" transform="translate(216.294700, 123.725600) rotate(-5.000000) translate(-216.294700, -123.725600) translate(106.294700, 35.225600)">
<ellipse id="Oval-2" fill="#CFDAE6" opacity="0.25" cx="29.1176471" cy="29.1402439" rx="29.1176471" ry="29.1402439"></ellipse>
<ellipse id="Oval-2" fill="#CFDAE6" opacity="0.3" cx="29.1176471" cy="29.1402439" rx="21.5686275" ry="21.5853659"></ellipse>
<ellipse id="Oval-2-Copy" stroke="#CFDAE6" opacity="0.4" cx="179.019608" cy="138.146341" rx="23.7254902" ry="23.7439024"></ellipse>
<ellipse id="Oval-2" fill="#BACAD9" opacity="0.5" cx="29.1176471" cy="29.1402439" rx="10.7843137" ry="10.7926829"></ellipse>
<path d="M29.1176471,39.9329268 L29.1176471,18.347561 C23.1616351,18.347561 18.3333333,23.1796097 18.3333333,29.1402439 C18.3333333,35.1008781 23.1616351,39.9329268 29.1176471,39.9329268 Z" id="Oval-2" fill="#BACAD9"></path>
<g id="Group-9" opacity="0.45" transform="translate(172.000000, 131.000000)" fill="#E6A1A6">
<ellipse id="Oval-2-Copy-2" cx="7.01960784" cy="7.14634146" rx="6.47058824" ry="6.47560976"></ellipse>
<path d="M0.549019608,13.6219512 C4.12262681,13.6219512 7.01960784,10.722722 7.01960784,7.14634146 C7.01960784,3.56996095 4.12262681,0.670731707 0.549019608,0.670731707 L0.549019608,13.6219512 Z" id="Oval-2-Copy-2" transform="translate(3.784314, 7.146341) scale(-1, 1) translate(-3.784314, -7.146341) "></path>
</g>
<ellipse id="Oval-10" fill="#CFDAE6" cx="218.382353" cy="138.685976" rx="1.61764706" ry="1.61890244"></ellipse>
<ellipse id="Oval-10-Copy-2" fill="#E0B4B7" opacity="0.35" cx="179.558824" cy="175.381098" rx="1.61764706" ry="1.61890244"></ellipse>
<ellipse id="Oval-10-Copy" fill="#E0B4B7" opacity="0.35" cx="180.098039" cy="102.530488" rx="2.15686275" ry="2.15853659"></ellipse>
<path d="M28.9985381,29.9671598 L171.151018,132.876024" id="Path-11" stroke="#CFDAE6" opacity="0.8"></path>
</g>
<g id="Group-10" opacity="0.799999952" transform="translate(1054.100635, 36.659317) rotate(-11.000000) translate(-1054.100635, -36.659317) translate(1026.600635, 4.659317)">
<ellipse id="Oval-7" stroke="#CFDAE6" stroke-width="0.941176471" cx="43.8135593" cy="32" rx="11.1864407" ry="11.2941176"></ellipse>
<g id="Group-12" transform="translate(34.596774, 23.111111)" fill="#BACAD9">
<ellipse id="Oval-7" opacity="0.45" cx="9.18534718" cy="8.88888889" rx="8.47457627" ry="8.55614973"></ellipse>
<path d="M9.18534718,17.4450386 C13.8657264,17.4450386 17.6599235,13.6143199 17.6599235,8.88888889 C17.6599235,4.16345787 13.8657264,0.332739156 9.18534718,0.332739156 L9.18534718,17.4450386 Z" id="Oval-7"></path>
</g>
<path d="M34.6597385,24.809694 L5.71666084,4.76878945" id="Path-2" stroke="#CFDAE6" stroke-width="0.941176471"></path>
<ellipse id="Oval" stroke="#CFDAE6" stroke-width="0.941176471" cx="3.26271186" cy="3.29411765" rx="3.26271186" ry="3.29411765"></ellipse>
<ellipse id="Oval-Copy" fill="#F7E1AD" cx="2.79661017" cy="61.1764706" rx="2.79661017" ry="2.82352941"></ellipse>
<path d="M34.6312443,39.2922712 L5.06366663,59.785082" id="Path-10" stroke="#CFDAE6" stroke-width="0.941176471"></path>
</g>
<g id="Group-19" opacity="0.33" transform="translate(1282.537219, 446.502867) rotate(-10.000000) translate(-1282.537219, -446.502867) translate(1142.537219, 327.502867)">
<g id="Group-17" transform="translate(141.333539, 104.502742) rotate(275.000000) translate(-141.333539, -104.502742) translate(129.333539, 92.502742)" fill="#BACAD9">
<circle id="Oval-4" opacity="0.45" cx="11.6666667" cy="11.6666667" r="11.6666667"></circle>
<path d="M23.3333333,23.3333333 C23.3333333,16.8900113 18.1099887,11.6666667 11.6666667,11.6666667 C5.22334459,11.6666667 0,16.8900113 0,23.3333333 L23.3333333,23.3333333 Z" id="Oval-4" transform="translate(11.666667, 17.500000) scale(-1, -1) translate(-11.666667, -17.500000) "></path>
</g>
<circle id="Oval-5-Copy-6" fill="#CFDAE6" cx="201.833333" cy="87.5" r="5.83333333"></circle>
<path d="M143.5,88.8126685 L155.070501,17.6038544" id="Path-17" stroke="#BACAD9" stroke-width="1.16666667"></path>
<path d="M17.5,37.3333333 L127.466252,97.6449735" id="Path-18" stroke="#BACAD9" stroke-width="1.16666667"></path>
<polyline id="Path-19" stroke="#CFDAE6" stroke-width="1.16666667" points="143.902597 120.302281 174.935455 231.571342 38.5 147.510847 126.366941 110.833333"></polyline>
<path d="M159.833333,99.7453842 L195.416667,89.25" id="Path-20" stroke="#E0B4B7" stroke-width="1.16666667" opacity="0.6"></path>
<path d="M205.333333,82.1372105 L238.719406,36.1666667" id="Path-24" stroke="#BACAD9" stroke-width="1.16666667"></path>
<path d="M266.723424,132.231988 L207.083333,90.4166667" id="Path-25" stroke="#CFDAE6" stroke-width="1.16666667"></path>
<circle id="Oval-5" fill="#C1D1E0" cx="156.916667" cy="8.75" r="8.75"></circle>
<circle id="Oval-5-Copy-3" fill="#C1D1E0" cx="39.0833333" cy="148.75" r="5.25"></circle>
<circle id="Oval-5-Copy-2" fill-opacity="0.6" fill="#D1DEED" cx="8.75" cy="33.25" r="8.75"></circle>
<circle id="Oval-5-Copy-4" fill-opacity="0.6" fill="#D1DEED" cx="243.833333" cy="30.3333333" r="5.83333333"></circle>
<circle id="Oval-5-Copy-5" fill="#E0B4B7" cx="175.583333" cy="232.75" r="5.25"></circle>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
// 封装的侧边图标栏
<template>
<div v-bind="$attrs" class="big_aside_box" :style="{background: backgroundColor, color: textColor }">
<swiper ref="ltkSwiper" :options="swiperOptions">
<swiper-slide v-for="item in asidList" :key="item.id">
<div :class="`box ${active === item.path ? 'active' : ''}`" @click="activeClick(item)">
<el-row>
<el-col :span="10">
<i :class="item.icon"></i>
</el-col>
<el-col :span="12">
<span v-if="item.title.length > 4" style="padding: 6px 0"> {{item.title.substring(0, 3)}} <br/>{{item.title.substring(3, item.title.length)}}</span>
<span v-else> {{item.title.substring(0, 4)}}</span>
</el-col>
</el-row>
</div>
</swiper-slide>
<div class="swiper-button-prev2 swiper-button-white" slot="button-prev" @click="prev"></div>
<div class="swiper-button-next2 swiper-button-white" slot="button-next" @click="next"></div>
</swiper>
</div>
</template>
<script>
import 'swiper/swiper-bundle.min.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
name: 'bo-big-aside',
components: {
swiper,
swiperSlide
},
props: {
// 宽
width: {
default: 180
},
// 背景色
backgroundColor: {
default: 'transparent'
},
// 字体颜色
textColor: {
default: '#fff'
},
// 选中
active: '',
// 导航栏数据
asidList: {
},
// 控制动态线条显示
activeLine: ''
},
data () {
return {
swiperOptions: {
direction: 'vertical',
height: 142,
speed: 120,//侧边栏滑轮速度
mousewheel: true,//开启鼠标滚动条
navigation: {
nextEl: '.swiper-button-next2',
prevEl: '.swiper-button-prev2',
},
}
}
},
computed: {
swiper() {
return this.$refs.ltkSwiper.swiper
}
},
created () {
// this.activeLine = this.$route.path.split('/')[1]
},
methods: {
prev() {
this.$refs.ltkSwiper.swiper.slidePrev();
},
next() {
this.$refs.ltkSwiper.swiper.slideNext();
},
activeClick (val) {
this.$emit('click', val)
}
},
computed: {
}
}
</script>
<style scoped lang='less'>
.big_aside_box {
position: relative;
height: 100%;
width: 100%;
text-align: center;
transition: all .2s linear 0s;
box-sizing: border-box;
.box {
display: flex;
flex-flow: nowrap column;
justify-content: center;
height: 132px;
width: 100%;
background: radial-gradient(circle, #1D9A29 0%, #1B6E24 47%, #0B5513 81%, #0A4A10 100%);
user-select: none;
cursor: pointer;
border: 8px solid rgb(16,108,23);
box-sizing: border-box;
// 动画效果
transition: .3s all linear;
i {
font-size: 60px;
font-weight: 500;
margin-left: 8px;
color: #fff;
}
span {
display: block;
padding: 25px 0;
text-align: center;
font-weight: 600;
font-family: 'Microsoft YaHei';
color: #fff;
font-size: 26px;
}
}
.box:hover {
background: rgba(26, 137, 34, 0.6);
color: #fff;
i {
font-size: 60px;
font-weight: 500;
margin-left: 8px;
color: #fff;
}
}
.active {
background: radial-gradient(circle, #F7AD31 0%, #C25F15 100%);
color: #fff;
text-shadow: 0 1px 1px #3b4520;
i {
color: #fff;
font-size: 60px;
font-weight: 500;
margin-left: 8px;
}
}
}
.big_aside_box::-webkit-scrollbar{
width: 1px;
background: transparent !important;
}
.big_aside_box::-webkit-scrollbar-thumb {
background: #649f73;
z-index: 9999 !important;
}
</style>
// 封装的侧边图标栏
// 封装的侧边图标栏
<template>
<div v-bind="$attrs" class="big_aside_box" :style="{background: backgroundColor, color: textColor }">
<swiper ref="ltkSwiper" :options="swiperOptions">
<swiper-slide v-for="item in asidList" :key="item.id">
<div :class="`box ${active === item.path ? 'active' : ''}`" @click="activeClick(item)">
<el-row>
<el-col :span="10">
<i :class="item.icon"></i>
</el-col>
<el-col :span="12">
<span v-if="item.menuName.length > 4" style="padding: 6px 0"> {{item.menuName.substring(0, 3)}} <br/>{{item.menuName.substring(3, item.menuName.length)}}</span>
<span v-else> {{item.menuName.substring(0, 4)}}</span>
</el-col>
</el-row>
</div>
</swiper-slide>
<div class="swiper-button-prev2 swiper-button-white" slot="button-prev" @click="prev"></div>
<div class="swiper-button-next2 swiper-button-white" slot="button-next" @click="next"></div>
</swiper>
</div>
</template>
<script>
import 'swiper/swiper-bundle.min.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
name: 'bo-big-aside',
components: {
swiper,
swiperSlide
},
props: {
// v-if="item.path === this.$route.path.split('/')[1]"
// 宽
width: {
default: 180
},
// 背景色
backgroundColor: {
default: 'transparent'
},
// 字体颜色
textColor: {
default: '#fff'
},
// 选中
active: '',
// 导航栏数据
asidList: {
},
// 控制动态线条显示
activeLine: ''
},
data () {
return {
swiperOptions: {
direction: 'vertical',
height: 95,
navigation: {
nextEl: '.swiper-button-next2',
prevEl: '.swiper-button-prev2',
},
}
}
},
computed: {
swiper() {
return this.$refs.ltkSwiper.swiper
}
},
created () {
// this.activeLine = this.$route.path.split('/')[1]
},
methods: {
prev() {
this.$refs.ltkSwiper.swiper.slidePrev();
},
next() {
this.$refs.ltkSwiper.swiper.slideNext();
},
activeClick (val) {
console.log(val)
this.$emit('click', val)
}
},
computed: {
}
}
</script>
<style scoped lang='less'>
.big_aside_box {
position: relative;
height: 100%;
width: 100%;
text-align: center;
transition: all .2s linear 0s;
box-sizing: border-box;
.box {
display: flex;
flex-flow: nowrap column;
justify-content: center;
height: 83px;
width: 100%;
background: radial-gradient(circle, #1D9A29 0%, #1B6E24 47%, #0B5513 81%, #0A4A10 100%);
user-select: none;
cursor: pointer;
border: 5px solid rgb(16,108,23);
box-sizing: border-box;
// 动画效果
transition: .3s all linear;
i {
font-size: 40px;
font-weight: 500;
line-height: 80px;
margin-left: 8px;
color: #fff;
}
span {
display: block;
padding: 25px 0;
text-align: center;
font-weight: 540;
font-family: 'Microsoft YaHei';
color: #fff;
font-size: 20px;
}
}
.box:hover {
background: rgba(26, 137, 34, 0.6);
color: #fff;
i {
font-size: 40px;
font-weight: 500;
line-height: 80px;
margin-left: 8px;
color: #fff;
}
}
.active {
background: radial-gradient(circle, #F7AD31 0%, #C25F15 100%);
color: #fff;
text-shadow: 0 1px 1px #3b4520;
i {
color: #fff;
font-size: 40px;
line-height: 80px;
font-weight: 500;
margin-left: 8px;
}
}
}
.big_aside_box::-webkit-scrollbar{
width: 1px;
background: transparent !important;
}
.big_aside_box::-webkit-scrollbar-thumb {
background: #649f73;
z-index: 9999 !important;
}
</style>
<template>
<div class="svg">
<a :href="url" target="_blank">
<img :src="require('@icons/数据大屏.png')" style="width: 20px;">
</a>
</div>
</template>
<script>
export default {
name: 'Github',
data() {
return {
url: ""
}
},
created() {
this.url = window._CONFIG['screenFull'] + "?storeCode=" + JSON.parse(sessionStorage.getItem('storeList'))
}
}
</script>
<style scoped>
.svg {
display: inline-block;
cursor: pointer;
fill: #f6f6f6;
width: 20px;
height: 20px;
vertical-align: -4px;
}
</style>
// 描述列表组件
<template>
<div v-bind="$attrs" class="desCription_box" :activeData="activeData" :title="title">
<div class="title">
{{title}}
</div>
<div class="desCription_box_body">
<div v-for="(item, index) in activeData" :key="index" class="desCription_box_body_p" :style="`width: ${100 / styleData.width}%`">
<span class="desCription_box_body_p_title">{{item.name}} :</span>
<span class="desCription_box_body_p_text">
{{item.value}}
</span>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'bo-description',
props: {
activeData: {
type: Array
},
title: {
type: String
}
},
data () {
return {
styleData: {
width: 7,
// ...data
...this.$attrs
}
}
},
created () {
// console.log(this.$attrs);
},
methods: {
},
computed: {
}
}
</script>
<style scoped lang='less'>
.desCription_box {
height: 100%;
width: 100%;
.title {
font-size: 16px;
font-weight: 800;
color: #262626;
margin-bottom: 10px;
}
.desCription_box_body {
box-sizing: border-box;
display: flex;
flex-flow: wrap row;
justify-content: flex-start;
// align-items: center;
height: 70%;
.desCription_box_body_p {
box-sizing: border-box;
display: flex;
flex-flow: nowrap row;
justify-content: space-around;
align-items: stretch;
border: 1px solid #e8e8e8;
width: 100%;
.desCription_box_body_p_title {
display: flex;
align-items: center;
width: 33%;
padding: 5px;
font-size: 15px;
text-indent: 8px;
border-right: 1px solid #e8e8e8;
background: #fafafa;
color: #909399;
font-weight: 600;
// text-align: center;
}
.desCription_box_body_p_text {
display: flex;
align-items: center;
justify-content: center;
width: 67%;
padding: 8px;
font-size: 13px;
color: #606266;
// text-indent: 4px;
// text-align: center;
}
}
}
}
</style>
<template>
<div id="clock">
<span class="date">{{ date }} {{ time }}</span>
</div>
</template>
<script>
const week = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
function zeroPadding(num, digit) {
var zero = ''
for(var i = 0; i < digit; i++) {
zero += '0'
}
return (zero + num).slice(-digit)
}
export default {
name: 'bo-time',
data () {
return {
date: '',
time: ''
}
},
created () {
this.setTime()
},
methods: {
updateTime () {
var cd = new Date()
this.time = zeroPadding(cd.getHours(), 2) + ':' + zeroPadding(cd.getMinutes(), 2) + ':' + zeroPadding(cd.getSeconds(), 2)
this.date = zeroPadding(cd.getFullYear(), 4) + '-' + zeroPadding(cd.getMonth()+1, 2) + '-' + zeroPadding(cd.getDate(), 2) + ' ' + week[cd.getDay()]
},
setTime () {
this.updateTime()
setInterval(this.updateTime, 1000)
}
},
computed: {
}
}
</script>
<style scoped lang='less'>
#clock {
display: flex;
flex-flow: column nowrap;
justify-content: space-between;
align-items: stretch;
box-sizing: border-box;
width: 100%;
height: 100%;
padding: 15px;
font-family: 'Share Tech Mono', monospace;
color: #ffffff;
text-align: center;
color: #daf6ff;
text-shadow: 0 0 20px rgba(10, 175, 230, 1), 0 0 20px rgba(10, 175, 230, 0);
.date {
letter-spacing: 1px;
margin: 0;
padding: 0;
color: #ffffff;
font-size: 18px;
font-weight: 500;
}
.clock_text {
letter-spacing: 1px;
margin: 0;
padding: 0 !important;
font-size: 10px;
// padding: 20px 0 0;
}
}
</style>
// 入口文件 通过入口文件直接导入所有的组件
// 引入组件
import smallTitle from './smallTitle.vue'
import bigAside from './bigAside.vue'
import statistic from './statistic.vue'
import tableColumn from './tableColumn.vue'
import boTime from './boTime.vue'
import boDescription from './boDescription.vue'
import bigScreen from './bigScreen.vue'
const component = [
smallTitle,
bigAside,
statistic,
tableColumn,
boTime,
boDescription,
bigScreen
]
function install (Vue) {
// 通过循环自动注册
component.forEach(item => {
Vue.component(item.name, item)
})
}
export default {
install
}
<template>
<div class="small_title">
<slot />
</div>
</template>
<script>
export default {
name: 'bo-small-title',
props: {
},
data () {
return {
}
},
created () {
},
methods: {
},
computed: {
}
}
</script>
<style scoped lang='less'>
.small_title {
padding: 10px 0;
font-size: 16px;
font-weight: 700;
color: #284527;
text-shadow: 0 0px 1px #2a770d;
user-select: none;
cursor: default !important;
margin-left: 10px;
// font-size: 13px;
// color: #9f9f9f;
// user-select: none;
// cursor: default !important;
}
</style>
<template>
<div class="statis_box" v-bind="$attrs" :style="`background: ${dataList.backgroundColor}; color: ${dataList.textColor}`">
<!-- <div class="top_box">
{{dataList.headerText}}
<span v-if="dataList.headerTextTow">
/
<i :style="`background: ${dataList.headerTextColor}; fontSize: 14px; fontWeight: 500; padding: 2px 5px`">{{dataList.headerTextTow}}</i>
</span>
</div> -->
<div class="cent_box">
<!-- <div class="img" > -->
<i :class="dataList.icon" :style="`color: ${dataList.iconColor}; fontSize: ${dataList.iconSize}`"></i>
<!-- </div> -->
<div class="text">
{{dataList.headerText}}
<span v-if="dataList.headerTextTow">
/
<i :style="`background: ${dataList.headerTextColor}; fontSize: 14px; fontWeight: 500; padding: 2px 5px`">{{dataList.headerTextTow}}</i>
</span>
<!-- {{dataList.text}} -->
</div>
</div>
<div class="bto_box" :style="`background: ${dataList.bottomColor}`">
<!-- {{ dataList.bottomText }} -->
{{dataList.text}}
</div>
</div>
</template>
<script>
export default {
name: 'bo-statistic',
props: {
// dataList: {
// type: Object,
// required: true, // 必填
// default: () => {
// return {
// // 底部装饰色
// bottomColor: 'rgba(0, 0, 0, .2)',
// // 背景色
// backgroundColor: '#20354b',
// // 文字颜色
// textColor: '#fff',
// // 图标色
// iconColor: '#fff',
// // 图标的大小
// iconSize: '64px',
// // 顶部文字信息
// headerText: '测试',
// // icon图标
// icon: 'el-icon-s-cooperation',
// // 描述信息
// text: '描述信息',
// // 底部表述信息
// bottomText: '',
// }
// }
// }
},
data () {
return {
dataList: {
// 底部装饰色
bottomColor: 'rgba(0, 0, 0, .2)',
// 背景色
backgroundColor: '#20354b',
// 文字颜色
textColor: '#fff',
// 图标色
iconColor: '#fff',
// 图标的大小
iconSize: '64px',
// 顶部文字信息
headerText: '指定货位入库',
// icon图标
icon: 'el-icon-s-cooperation',
// 描述信息
text: '描述信息',
// 底部表述信息
bottomText: '',
// ...data
...this.$attrs.data
}
}
},
created () {
// this.getData()
},
mounted () {
// this.getBlankPall()
},
methods: {
// updeData () {
// this.$emit('upData', val)
// }
// getData () {
// const obj = {
// ...this.dataList,
// ...this.$attrs.data
// }
// console.log(obj);
// this.$set(this, 'dataList', obj )
// }
},
computed: {
// 计算属性的getter
// dataList: function () {
// return {
// // ...this.$attrs.data
// // ...this.dataListOne,
// // ...data
// // ...this.$attrs.data
// }
// }
}
}
</script>
<style scoped lang='less'>
.statis_box {
overflow: hidden;
display: flex;
flex-flow: nowrap column;
justify-content: space-between;
width: 100%;
height: 80%;
border-radius: 7px;
box-sizing: border-box;
.top_box {
padding: 10px 20px 0;
font-size: 17px;
font-weight: 700;
text-align: right;
}
.cent_box {
display: flex;
flex-flow: nowrap row;
justify-content: space-between;
padding: 10px 20px 0;
i {
transform: translateY(15%);
}
// .img {
// overflow: hidden;
// text-align: center;
// vertical-align: text-bottom;
// // border-radius: 50%;
// }
.text {
font-size: 24px;
// line-height: 50px;
transform: translateY(20%);
}
}
.bto_box {
height: 30px;
line-height: 30px;
text-indent: 20px;
font-size: 13px;
font-weight: 500;
color: rgba(255, 255, 255, .7);
}
}
</style>
// 未完成
<template v-for="(item, index) in column" :active="active">
<el-table-column v-if="item.label === active" :prop="item.prop" :label="item.label" :fixed="item.fixed" :align="item.align"></el-table-column>
</template>
<script>
export default {
name: 'bo-table-column',
props: {
column: [],
active: ''
},
data () {
return {
}
},
created () {
console.log(this.column);
console.log(this.active);
},
methods: {
},
computed: {
}
}
</script>
<style scoped lang='less'>
</style>
<template>
<!-- 借用归还统计表 -->
<div id="home_charts" v-bind="$attrs">
</div>
</template>
<script>
// 引入echarts
// import echarts from 'echarts'
import echarts from 'echarts'
export default {
data () {
return {
}
},
created () {
},
// 操作dom元素
mounted () {
//实现自适应部分
this.resizefun = ()=>{
echarts.init(document.getElementById('home_charts')).resize()
}
window.addEventListener('resize',this.resizefun)
},
//移除事件监听,避免内存泄漏
beforeDestroy() {
window.removeEventListener('resize', this.resizefun)
this.resizefun = null
},
methods: {
// 渲染数据表
async getInitEcharts (val) {
const option = val
// 操作准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('home_charts'))
// 绘制图表
myChart.setOption(option)
}
},
computed: {
}
}
</script>
<style scoped lang='less'>
#home_charts {
width: 100%;
height: 100%;
}
</style>
import Vue from 'vue'
import App from './App.vue'
import routes from './router'
import store from './store'
import VueRouter from "vue-router";
// axios
import axios from 'axios'
// import ech from 'echarts'
// 引入字体图标
import './assets/fonts/iconfont.css'
import 'element-ui/lib/theme-chalk/index.css'
// 引入element
import './plugins/element'
// 引入ant
import './plugins/ant'
// 引入dataV装饰组件
import './plugins/dataV'
// 引入自定义组件
import boUi from './components/bo-ui/index'
Vue.use(boUi)
// 导入进度条插件
import NProgress from 'nprogress'
// 导入进度条样式
import 'nprogress/nprogress.css'
axios.defaults.baseURL = window._CONFIG['domianURL'];
// 配置请求超时
// axios.defaults.timeout = 15 * 1000 // 超时时间
// axios.defaults.timeout = 0
// axios.defaults.retryDelay = 1000 // 请求间隔
// axios.defaults.retry = 2 // 重试次数
// 按钮权限控制方法 v-permission
Vue.directive('permission', {
inserted (el, vDir) {
// let btnPermission = store.getters.buttons
let btnPermission = store.state.buttons
if (vDir.value) {
if (!btnPermission.includes(vDir.value)) {
el.parentNode.removeChild(el)
}
}
}
})
// 获取焦点方法 v-focus
// Vue.directive('focus', {
// inserted (el) {
// // 聚焦元素
// el.focus()
// }
// })
// 注册一个拦截器为所有请求添加请求头
axios.interceptors.request.use(config => {
// 给请求头添加一个名为Authorization的密匙
config.headers.Authorization = sessionStorage.getItem('token')
// config.headers['Token'] = sessionStorage.getItem('token')
// 显示进度条
NProgress.start()
return config
})
// let retry = axios.defaults.retry
// 添加响应拦截器
axios.interceptors.response.use(
res => {
// 隐藏进度条
NProgress.done()
return res
},
error => {
// 异常处理
const { config, code, message } = error
if (error.response) {
switch (error.response.status) {
case 401:
let flag = true
// 401 清除token信息并跳转到登录页面
Vue.prototype.$message.error('您无此权限,正在返回登陆页面')
if (flag) {
flag = false
sessionStorage.clear()
setTimeout(() => {
window.location.href = '/'
location.reload()
}, 2000)
}
case 404:
Vue.prototype.$message.error('请求失败,请检查请求地址是否正确')
return NProgress.done()
case 408:
Vue.prototype.$message.error('请求超时,请检查网络')
}
}
// if (code === 'ECONNABORTED' || message === 'Network Error') {
// // 请求超时
// console.warn(`请求超时,将在 ${error.config.retryDelay / 1000} 秒后重试 剩余重试次数${retry - 1}次`)
// return new Promise(resolve => {
// setTimeout(async _ => {
// --retry
// if (retry <= 0) {
// Vue.prototype.$message.error('请求超时,请检查网络')
// // 隐藏进度条
// NProgress.done()
// retry = axios.defaults.retry
// console.log(retry);
// return Promise.reject(error)
// }
// resolve(await axios.request(config))
// }, error.config.retryDelay)
// })
// }
// return Promise.reject(error.response.data)
return Promise.reject(error.response)
})
// 将axios方法放在Vue原型让供全局使用
Vue.prototype.$axios = axios
// 将axios请求超时的时间放在全局
// Vue.prototype.$axios_retry = (axios.defaults.timeout + axios.defaults.retryDelay + 100) * axios.defaults.retry
Vue.config.productionTip = false
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location, onResolve, onReject) {
if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
return originalPush.call(this, location).catch(err => err)
}
let instance = null
let router = null
function render(props) {
// 在 render 中创建 VueRouter,可以保证在卸载微应用时,移除 location 事件监听,防止事件污染
router = new VueRouter({
// 运行在主应用中时,添加路由命名空间 /vue
base: window.__POWERED_BY_QIANKUN__ ? "/main/ltk" : "/",
routes
});
if (window.__POWERED_BY_QIANKUN__) {
router.beforeEach((to, from, next) => {
if (!to.path.includes("/main") && to.path !== "/login") {
next({
path: "/main/ltk" + (to.path == "/" ? "" : to.path)
})
next()
} if (to.path == '/main/ltk') {
next({
path: "main/ltk/index"
})
}
else {
next()
}
})
}
instance = new Vue({
router,
store,
render: h => h(App)
}).$mount('#ltkApp'); // 这里是挂载到自己的html中 基座会拿到这个挂载后的html 将其插入进去
}
if (window.__POWERED_BY_QIANKUN__) { // 动态添加publicPath
__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}
if (!window.__POWERED_BY_QIANKUN__) { // 默认独立运行
render();
}
// 父应用加载子应用,子应用必须暴露三个接口:bootstrap、mount、unmount
// 子组件的协议就ok了
export async function bootstrap(props) {
};
export async function mount(props) {
// 加了true之后,会自动调取前面这个回调方法,这样可以拿到主应用(基座)修改的值
props.onGlobalStateChange((state, prev) => {
// state: 变更后的状态; prev 变更前的状态
}, true);
Vue.prototype.$onGlobalStateChange = props.onGlobalStateChange;
Vue.prototype.$setGlobalState = props.setGlobalState;
if (props.getGlobalState().token) {
window.sessionStorage.setItem('token', props.getGlobalState().token)
window.sessionStorage.setItem('userData', JSON.stringify(props.getGlobalState().userData))
window.sessionStorage.setItem('storeList', JSON.stringify(props.getGlobalState().storeList))
window.sessionStorage.setItem('navList', JSON.stringify(props.getGlobalState().menuList[0].children))
}
render(props);
}
export async function unmount(props) {
console.log('关闭立体库应用')
instance.$destroy();
instance = null;
router = null;
}
import Vue from 'vue'
import { Button, Descriptions, Empty, Icon, Statistic, Tree, TreeSelect, Modal ,Table, Input, FormModel } from 'ant-design-vue'
Vue.use(Statistic)
Vue.use(Empty)
Vue.use(Tree)
Vue.use(TreeSelect)
Vue.use(Icon)
Vue.use(Button)
Vue.use(Descriptions)
Vue.use(Modal)
Vue.use(Table)
Vue.use(Input)
Vue.use(FormModel)
import Vue from 'vue'
import { activeRingChart, borderBox12, capsuleChart, decoration1, decoration2, decoration3, scrollBoard, scrollRankingBoard } from '@jiaminghi/data-view'
Vue.use(scrollBoard)
Vue.use(activeRingChart)
Vue.use(capsuleChart)
Vue.use(scrollRankingBoard)
Vue.use(borderBox12)
Vue.use(decoration3)
Vue.use(decoration1)
Vue.use(decoration2)
import Vue from 'vue'
// 按需导入组件
import {
Form,
FormItem,
Input,
Button,
Message,
Container,
Header,
Aside,
Main,
Footer,
Menu,
Submenu,
MenuItem,
Breadcrumb,
BreadcrumbItem,
Card,
Row,
Col,
Table,
TableColumn,
Switch,
Tooltip,
Pagination,
Dialog,
MessageBox,
Tag,
Tree,
Select,
Option,
Cascader,
Alert,
Tabs,
TabPane,
Steps,
Step,
Checkbox,
CheckboxGroup,
Upload,
Timeline,
TimelineItem,
DatePicker,
Divider,
Avatar,
Badge,
Drawer,
Radio,
RadioButton,
RadioGroup,
InputNumber,
Dropdown,
DropdownItem,
DropdownMenu,
Loading,
Collapse,
CollapseItem,
Descriptions,
DescriptionsItem
} from 'element-ui'
// import element from 'element-ui'
Vue.use(Step)
Vue.use(Steps)
Vue.use(Alert)
Vue.use(Tabs)
Vue.use(TabPane)
Vue.use(Button)
Vue.use(Form)
Vue.use(FormItem)
Vue.use(Input)
Vue.use(Container)
Vue.use(Header)
Vue.use(Aside)
Vue.use(Main)
Vue.use(Footer)
Vue.use(Menu)
Vue.use(Submenu)
Vue.use(MenuItem)
Vue.use(Breadcrumb)
Vue.use(BreadcrumbItem)
Vue.use(Card)
Vue.use(Row)
Vue.use(Col)
Vue.use(Table)
Vue.use(TableColumn)
Vue.use(Switch)
Vue.use(Tooltip)
Vue.use(Pagination)
Vue.use(Dialog)
Vue.use(Tag)
Vue.use(Tree)
Vue.use(Select)
Vue.use(Option)
Vue.use(Cascader)
Vue.use(Checkbox)
Vue.use(CheckboxGroup)
Vue.use(Upload)
Vue.use(Timeline)
Vue.use(TimelineItem)
Vue.use(DatePicker)
Vue.use(Divider)
Vue.use(Avatar)
Vue.use(Badge)
Vue.use(Drawer)
Vue.use(Radio)
Vue.use(RadioButton)
Vue.use(RadioGroup)
Vue.use(InputNumber)
Vue.use(Dropdown)
Vue.use(DropdownMenu)
Vue.use(DropdownItem)
Vue.use(Collapse)
Vue.use(CollapseItem)
Vue.use(Descriptions)
Vue.use(DescriptionsItem)
Vue.use(Loading)
// 绑定方法到Vue全局为所有vue实例添加方法
// 弹出对话框
// import Element from 'element-ui';
// Vue.use(Element)
// , { size: 'small', zIndex: 3000 }
Vue.prototype.$message = Message
// 弹出确认提示框
Vue.prototype.$confirm = MessageBox.confirm
import Vue from 'vue'
import VueRouter from 'vue-router'
import store from '../store'
/* 引入路由文件 */
// 物资入库
import receive from './modules/receive'
// 物资出库
import delivery from './modules/delivery'
// 堆垛机作业管理
import work from './modules/work'
// 应急出入库
import emergency from './modules/emergency'
// 物资抽检
import spotCheck from './modules/spotCheck'
// 基础数据
import basicData from './modules/basicData'
// 账目管理
import account from './modules/account'
// 日志管理
import audit from './modules/audit'
// 统计分析
import statistics from './modules/statistics'
// 系统管理
import system from './modules/system'
// 盘库管理
import inventory from './modules/inventory'
// 温湿度管理
import wsd from './modules/wsd'
// ant样式
import 'ant-design-vue/dist/antd.css'
// 导入全局样式
import '../assets/css/global.css'
Vue.use(VueRouter)
let prefix = window.__POWERED_BY_QIANKUN__ ? '/main/ltk' : '';
const routes = [
{
path: '',
redirect: '/login',
},
{
path: '/',
redirect: '/login',
},
{
path: '/login',
name: 'login',
component: () => import(/* webpackChunkName: "login" */ '@/login/Login.vue')
},
{
path: prefix + '/index',
name: 'index',
redirect: prefix + '/index',
component: () => import(/* webpackChunkName: "index" */ '@/index.vue'),
// 子路由
children: [
{
// 欢迎首页
path: prefix + '/index',
component: () => import(/* webpackChunkName: "Home" */ '@/home.vue')
},
// 物资入库
...receive,
// 物资出库
...delivery,
// 堆垛机作业管理
...work,
// 应急出入库
...emergency,
// 物资抽检
...spotCheck,
// 基础数据
...basicData,
// 账目管理
...account,
// 日志管理
...audit,
// 统计分析
...statistics,
// 系统管理
...system,
// 盘库管理
...inventory,
...wsd
]
},
{
path: '/404',
component: () => import(/* webpackChunkName: "404" */ '@/404.vue'),
},
// {
// path: '*',
// redirect: '/404',
// }
]
export default routes
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论