Commit 14422c3c by T

第一次提交

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": {
"@antv/data-set": "^0.9.6",
"@antv/g2": "4.1.46",
"@jiaminghi/data-view": "^2.10.0",
"@riophae/vue-treeselect": "^0.4.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",
"save": "^2.4.0",
"tinymce": "^5.10.3",
"vue": "^2.6.11",
"vue-count-to": "^1.0.13",
"vue-g2": "^2.0.14",
"vue-quill-editor": "^3.0.6",
"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",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"sass": "1.26.2",
"sass-loader": "8.0.2",
"svg-sprite-loader": "^6.0.11",
"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>
<script>
window._CONFIG = {};
// window._CONFIG['dlURL'] = 'http://192.168.2.105:5007';
// window._CONFIG['dlURL'] = 'http://192.168.3.74:5001';
window._CONFIG['dlURL'] = 'http://41.204.124.248:5001';
</script>
</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="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
<!-- 全局配置 -->
<template>
<div id="app">
<!-- 路由占位符 -->
<router-view v-if="isRouterAlive"></router-view>
</div>
</template>
<script>
export default {
name: 'app',
provide () {
return {
reload: this.reload
}
},
data () {
return {
isRouterAlive: true
}
},
methods: {
reload () {
this.isRouterAlive = false
this.$nextTick(function () {
this.isRouterAlive = true
})
}
}
}
</script>
<style>
#app {
width: 100%;
height: 100%;
}
/* 解决element ui中table渲染错位问题 */
.el-table--border th.gutter:last-of-type {
display: block!important; width: 17px!important;
}
</style>
/* 全局样式表 */
html, body, #app {
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;
height: 100%;
width: 100%;
box-sizing: border-box;
}
/* 内容区域 */
.main_box {
box-sizing: border-box;
height: 100%;
min-height: 700px;
padding: 15px;
margin-bottom: 10px;
margin-top: 20px;
background-color: #fff;
border-radius: 3px;
box-shadow: 0px 0px 4px rgba(29, 60, 13, .8);
overflow: auto;
}
.fontStyle{
font-family:Microsoft YaHei;
font-size:18px;
font-weight: 800;
}
/* 面包屑导航 */
.el-breadcrumb {
float: right;
/* 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;
}
#dialogSize >>> .el-form-item__label {
font-size: 18px;
}
#dialogSize >>> .el-form-item__content {
font-size: 18px;
}
/* 取消下划线和颜色 */
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: 18px;
}
.details {
margin: auto;
}
/* 可点击按钮 */
.click {
cursor: pointer;
user-select: none;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.d-none > .el-submenu__title .el-submenu__icon-arrow{
display: none ;
/* margin-left: -16px; */
}
/* .el-submenu__title{
margin-left: -16px !important;
} */
.actions{
margin: 5px;
}
/* .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-table {
border-radius: 4px;
}
.el-card__body {
padding: 10px !important;
}
.el-table thead {
color: #000 !important;;
font-weight: 600;
}
/* 表格鼠标样式修改 */
.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: #49a1fb;
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: #49a1fb;
}
.diaC {
font-weight: 1000;
margin-left: 29px;
margin-bottom: 12px;
}
.el-table--striped .el-table__body tr.el-table__row--striped.current-row td, .el-table__body tr.current-row>td {
/* color: #fff; */
background-color: rgba(221, 235, 247)!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-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;
}
.tox .tox-notification {
background-color: #fff;
border-color: #c5c5c5;
border-style: solid;
border-width: 1px;
box-sizing: border-box;
display: -ms-grid;
display: grid;
-ms-grid-columns: minmax(40px, 1fr) auto minmax(40px, 1fr);
grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr);
margin-top: 5px;
opacity: 0;
padding: 5px;
transition: transform 100ms ease-in, opacity 150ms ease-in;
}
.tox .tox-notification--in {
opacity: 1;
}
.tox .tox-notification--success {
background-color: #dff0d8;
border-color: #d6e9c6;
}
.tox .tox-notification--error {
background-color: #f2dede;
border-color: #ebccd1;
}
.tox .tox-notification--warn {
background-color: #fcf8e3;
border-color: #faebcc;
}
.tox .tox-notification--info {
background-color: #d9edf7;
border-color: #779ecb;
}
.tox .tox-notification__body {
-ms-grid-row-align: center;
align-self: center;
color: #31708f;
font-size: 14px;
grid-column-end: 3;
-ms-grid-column-span: 1;
-ms-grid-column: 2;
grid-column-start: 2;
grid-row-end: 2;
-ms-grid-row: 1;
grid-row-start: 1;
text-align: center;
white-space: normal;
word-break: break-all;
word-break: break-word;
}
.tox .tox-notification__body > * {
margin: 0;
}
.tox .tox-notification__body > * + * {
margin-top: 1rem;
}
.tox .tox-notification__icon {
-ms-grid-row-align: center;
align-self: center;
-ms-grid-column-align: end;
grid-column-end: 2;
-ms-grid-column-span: 1;
-ms-grid-column: 1;
grid-column-start: 1;
grid-row-end: 2;
-ms-grid-row: 1;
grid-row-start: 1;
justify-self: end;
}
.tox .tox-notification__icon svg {
display: block;
}
.tox .tox-notification__dismiss {
-ms-grid-row-align: start;
align-self: start;
-ms-grid-column-align: end;
grid-column-end: 4;
-ms-grid-column-span: 1;
-ms-grid-column: 3;
grid-column-start: 3;
grid-row-end: 2;
-ms-grid-row: 1;
grid-row-start: 1;
justify-self: end;
}
.tox .tox-notification .tox-progress-bar {
-ms-grid-column-align: center;
grid-column-end: 4;
-ms-grid-column-span: 3;
-ms-grid-column: 1;
grid-column-start: 1;
grid-row-end: 3;
-ms-grid-row-span: 1;
-ms-grid-row: 2;
grid-row-start: 2;
justify-self: center;
}
/* 出库,入库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: #d6ddef;
background-color: #f0f9eb;
}
.tabs_scoll .is-active .el-radio-button__inner,
.tabs_scoll .is-active .el-radio-button__inner:hover {
background: #2c452c !important;
color: #fff;
}
.tabs_scoll .el-radio-button__orig-radio:checked+.el-radio-button__inner {
border-color: #2c452c;
box-shadow: none;
}
.el-form-item__label{
font-weight: 800;
}
/* 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;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>IconFont Demo</title>
<link rel="shortcut icon" href="https://img.alicdn.com/tps/i4/TB1_oz6GVXXXXaFXpXXJDFnIXXX-64-64.ico" type="image/x-icon"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">&#xe86b;</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=2315638" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe687;</span>
<div class="name">arrow-right-bold</div>
<div class="code-name">&amp;#xe687;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe688;</span>
<div class="name">arrow-up-filling</div>
<div class="code-name">&amp;#xe688;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe689;</span>
<div class="name">arrow-down-filling</div>
<div class="code-name">&amp;#xe689;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe68a;</span>
<div class="name">arrow-left-filling</div>
<div class="code-name">&amp;#xe68a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe68b;</span>
<div class="name">arrow-right-filling</div>
<div class="code-name">&amp;#xe68b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe605;</span>
<div class="name">Appstore</div>
<div class="code-name">&amp;#xe605;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe606;</span>
<div class="name">AppstoreAdd</div>
<div class="code-name">&amp;#xe606;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe608;</span>
<div class="name">Audit</div>
<div class="code-name">&amp;#xe608;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe609;</span>
<div class="name">Block</div>
<div class="code-name">&amp;#xe609;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe60f;</span>
<div class="name">CloudDownload</div>
<div class="code-name">&amp;#xe60f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe610;</span>
<div class="name">CloudUpload</div>
<div class="code-name">&amp;#xe610;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe614;</span>
<div class="name">CloudSync</div>
<div class="code-name">&amp;#xe614;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe618;</span>
<div class="name">Export</div>
<div class="code-name">&amp;#xe618;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe61c;</span>
<div class="name">Flag</div>
<div class="code-name">&amp;#xe61c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe61f;</span>
<div class="name">Gateway</div>
<div class="code-name">&amp;#xe61f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe622;</span>
<div class="name">Home</div>
<div class="code-name">&amp;#xe622;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe623;</span>
<div class="name">Interaction</div>
<div class="code-name">&amp;#xe623;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe620;</span>
<div class="name">Gold</div>
<div class="code-name">&amp;#xe620;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe624;</span>
<div class="name">Login</div>
<div class="code-name">&amp;#xe624;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe625;</span>
<div class="name">Logout</div>
<div class="code-name">&amp;#xe625;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe626;</span>
<div class="name">Import</div>
<div class="code-name">&amp;#xe626;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe629;</span>
<div class="name">Plus</div>
<div class="code-name">&amp;#xe629;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe62a;</span>
<div class="name">Partition</div>
<div class="code-name">&amp;#xe62a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe62b;</span>
<div class="name">Picture</div>
<div class="code-name">&amp;#xe62b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe62e;</span>
<div class="name">PieChart</div>
<div class="code-name">&amp;#xe62e;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe62f;</span>
<div class="name">Solution</div>
<div class="code-name">&amp;#xe62f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe743;</span>
<div class="name">340cloudy03</div>
<div class="code-name">&amp;#xe743;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74c;</span>
<div class="name">380</div>
<div class="code-name">&amp;#xe74c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74d;</span>
<div class="name">385</div>
<div class="code-name">&amp;#xe74d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe637;</span>
<div class="name">record</div>
<div class="code-name">&amp;#xe637;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe638;</span>
<div class="name">time</div>
<div class="code-name">&amp;#xe638;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe63a;</span>
<div class="name">order</div>
<div class="code-name">&amp;#xe63a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe63d;</span>
<div class="name">cart</div>
<div class="code-name">&amp;#xe63d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe63e;</span>
<div class="name">search</div>
<div class="code-name">&amp;#xe63e;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe63f;</span>
<div class="name">edit</div>
<div class="code-name">&amp;#xe63f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe640;</span>
<div class="name">link</div>
<div class="code-name">&amp;#xe640;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe641;</span>
<div class="name">setting</div>
<div class="code-name">&amp;#xe641;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe642;</span>
<div class="name">notification</div>
<div class="code-name">&amp;#xe642;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe643;</span>
<div class="name">notification_off</div>
<div class="code-name">&amp;#xe643;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe648;</span>
<div class="name">filter</div>
<div class="code-name">&amp;#xe648;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe651;</span>
<div class="name">check</div>
<div class="code-name">&amp;#xe651;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe652;</span>
<div class="name">close</div>
<div class="code-name">&amp;#xe652;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe653;</span>
<div class="name">forbidden</div>
<div class="code-name">&amp;#xe653;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8ad;</span>
<div class="name">播放记录</div>
<div class="code-name">&amp;#xe8ad;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8ae;</span>
<div class="name">创作</div>
<div class="code-name">&amp;#xe8ae;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8af;</span>
<div class="name">定位</div>
<div class="code-name">&amp;#xe8af;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b0;</span>
<div class="name">订单</div>
<div class="code-name">&amp;#xe8b0;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b1;</span>
<div class="name">更多</div>
<div class="code-name">&amp;#xe8b1;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b2;</span>
<div class="name">分享</div>
<div class="code-name">&amp;#xe8b2;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b3;</span>
<div class="name">排行榜</div>
<div class="code-name">&amp;#xe8b3;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b4;</span>
<div class="name">取票</div>
<div class="code-name">&amp;#xe8b4;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b5;</span>
<div class="name">日历</div>
<div class="code-name">&amp;#xe8b5;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b6;</span>
<div class="name">闪电</div>
<div class="code-name">&amp;#xe8b6;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b7;</span>
<div class="name">商圈</div>
<div class="code-name">&amp;#xe8b7;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b8;</span>
<div class="name">删除</div>
<div class="code-name">&amp;#xe8b8;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8b9;</span>
<div class="name">设置</div>
<div class="code-name">&amp;#xe8b9;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8bb;</span>
<div class="name">失败</div>
<div class="code-name">&amp;#xe8bb;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8bc;</span>
<div class="name">时间</div>
<div class="code-name">&amp;#xe8bc;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8bd;</span>
<div class="name">收藏</div>
<div class="code-name">&amp;#xe8bd;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8be;</span>
<div class="name">首页</div>
<div class="code-name">&amp;#xe8be;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8bf;</span>
<div class="name">数据</div>
<div class="code-name">&amp;#xe8bf;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c0;</span>
<div class="name">刷新</div>
<div class="code-name">&amp;#xe8c0;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c1;</span>
<div class="name">搜索</div>
<div class="code-name">&amp;#xe8c1;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c2;</span>
<div class="name">叹号</div>
<div class="code-name">&amp;#xe8c2;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c3;</span>
<div class="name">图片</div>
<div class="code-name">&amp;#xe8c3;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c4;</span>
<div class="name">问卷</div>
<div class="code-name">&amp;#xe8c4;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c5;</span>
<div class="name">下载</div>
<div class="code-name">&amp;#xe8c5;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c6;</span>
<div class="name">眼睛</div>
<div class="code-name">&amp;#xe8c6;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8c7;</span>
<div class="name">增加</div>
<div class="code-name">&amp;#xe8c7;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe611;</span>
<div class="name">运营</div>
<div class="code-name">&amp;#xe611;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe612;</span>
<div class="name">数据分析</div>
<div class="code-name">&amp;#xe612;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe613;</span>
<div class="name">电商系统</div>
<div class="code-name">&amp;#xe613;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>兼容性最好,支持 IE6+,及所有现代浏览器。</li>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.eot');
src: url('iconfont.eot?#iefix') format('embedded-opentype'),
url('iconfont.woff2') format('woff2'),
url('iconfont.woff') format('woff'),
url('iconfont.ttf') format('truetype'),
url('iconfont.svg#iconfont') format('svg');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
<pre><code class="language-css"
>.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-arrow-right-bold"></span>
<div class="name">
arrow-right-bold
</div>
<div class="code-name">.icon-arrow-right-bold
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-arrow-up-filling"></span>
<div class="name">
arrow-up-filling
</div>
<div class="code-name">.icon-arrow-up-filling
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-arrow-down-filling"></span>
<div class="name">
arrow-down-filling
</div>
<div class="code-name">.icon-arrow-down-filling
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-arrow-left-filling"></span>
<div class="name">
arrow-left-filling
</div>
<div class="code-name">.icon-arrow-left-filling
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-arrow-right-filling"></span>
<div class="name">
arrow-right-filling
</div>
<div class="code-name">.icon-arrow-right-filling
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Appstore"></span>
<div class="name">
Appstore
</div>
<div class="code-name">.icon-Appstore
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-AppstoreAdd"></span>
<div class="name">
AppstoreAdd
</div>
<div class="code-name">.icon-AppstoreAdd
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Audit"></span>
<div class="name">
Audit
</div>
<div class="code-name">.icon-Audit
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Block"></span>
<div class="name">
Block
</div>
<div class="code-name">.icon-Block
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-CloudDownload"></span>
<div class="name">
CloudDownload
</div>
<div class="code-name">.icon-CloudDownload
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-CloudUpload"></span>
<div class="name">
CloudUpload
</div>
<div class="code-name">.icon-CloudUpload
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-CloudSync"></span>
<div class="name">
CloudSync
</div>
<div class="code-name">.icon-CloudSync
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Export"></span>
<div class="name">
Export
</div>
<div class="code-name">.icon-Export
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Flag"></span>
<div class="name">
Flag
</div>
<div class="code-name">.icon-Flag
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Gateway"></span>
<div class="name">
Gateway
</div>
<div class="code-name">.icon-Gateway
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Home"></span>
<div class="name">
Home
</div>
<div class="code-name">.icon-Home
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Interaction"></span>
<div class="name">
Interaction
</div>
<div class="code-name">.icon-Interaction
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Gold"></span>
<div class="name">
Gold
</div>
<div class="code-name">.icon-Gold
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Login"></span>
<div class="name">
Login
</div>
<div class="code-name">.icon-Login
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Logout"></span>
<div class="name">
Logout
</div>
<div class="code-name">.icon-Logout
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Import"></span>
<div class="name">
Import
</div>
<div class="code-name">.icon-Import
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Plus"></span>
<div class="name">
Plus
</div>
<div class="code-name">.icon-Plus
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Partition"></span>
<div class="name">
Partition
</div>
<div class="code-name">.icon-Partition
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Picture"></span>
<div class="name">
Picture
</div>
<div class="code-name">.icon-Picture
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-PieChart"></span>
<div class="name">
PieChart
</div>
<div class="code-name">.icon-PieChart
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-Solution"></span>
<div class="name">
Solution
</div>
<div class="code-name">.icon-Solution
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-340cloudy03"></span>
<div class="name">
340cloudy03
</div>
<div class="code-name">.icon-340cloudy03
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-380"></span>
<div class="name">
380
</div>
<div class="code-name">.icon-380
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-385"></span>
<div class="name">
385
</div>
<div class="code-name">.icon-385
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test"></span>
<div class="name">
record
</div>
<div class="code-name">.icon-icon-test
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test1"></span>
<div class="name">
time
</div>
<div class="code-name">.icon-icon-test1
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test2"></span>
<div class="name">
order
</div>
<div class="code-name">.icon-icon-test2
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test5"></span>
<div class="name">
cart
</div>
<div class="code-name">.icon-icon-test5
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test6"></span>
<div class="name">
search
</div>
<div class="code-name">.icon-icon-test6
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test7"></span>
<div class="name">
edit
</div>
<div class="code-name">.icon-icon-test7
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test8"></span>
<div class="name">
link
</div>
<div class="code-name">.icon-icon-test8
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test9"></span>
<div class="name">
setting
</div>
<div class="code-name">.icon-icon-test9
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test10"></span>
<div class="name">
notification
</div>
<div class="code-name">.icon-icon-test10
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test11"></span>
<div class="name">
notification_off
</div>
<div class="code-name">.icon-icon-test11
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test12"></span>
<div class="name">
filter
</div>
<div class="code-name">.icon-icon-test12
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test13"></span>
<div class="name">
check
</div>
<div class="code-name">.icon-icon-test13
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test14"></span>
<div class="name">
close
</div>
<div class="code-name">.icon-icon-test14
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-icon-test15"></span>
<div class="name">
forbidden
</div>
<div class="code-name">.icon-icon-test15
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-bofangjilu"></span>
<div class="name">
播放记录
</div>
<div class="code-name">.icon-bofangjilu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-chuangzuo"></span>
<div class="name">
创作
</div>
<div class="code-name">.icon-chuangzuo
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-dingwei"></span>
<div class="name">
定位
</div>
<div class="code-name">.icon-dingwei
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-dingdan"></span>
<div class="name">
订单
</div>
<div class="code-name">.icon-dingdan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-gengduo"></span>
<div class="name">
更多
</div>
<div class="code-name">.icon-gengduo
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-fenxiang"></span>
<div class="name">
分享
</div>
<div class="code-name">.icon-fenxiang
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-paihangbang"></span>
<div class="name">
排行榜
</div>
<div class="code-name">.icon-paihangbang
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-qupiao"></span>
<div class="name">
取票
</div>
<div class="code-name">.icon-qupiao
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-rili"></span>
<div class="name">
日历
</div>
<div class="code-name">.icon-rili
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shandian"></span>
<div class="name">
闪电
</div>
<div class="code-name">.icon-shandian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shangquan"></span>
<div class="name">
商圈
</div>
<div class="code-name">.icon-shangquan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shanchu"></span>
<div class="name">
删除
</div>
<div class="code-name">.icon-shanchu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shezhi"></span>
<div class="name">
设置
</div>
<div class="code-name">.icon-shezhi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shibai"></span>
<div class="name">
失败
</div>
<div class="code-name">.icon-shibai
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shijian"></span>
<div class="name">
时间
</div>
<div class="code-name">.icon-shijian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shoucang"></span>
<div class="name">
收藏
</div>
<div class="code-name">.icon-shoucang
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shouye"></span>
<div class="name">
首页
</div>
<div class="code-name">.icon-shouye
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shuju"></span>
<div class="name">
数据
</div>
<div class="code-name">.icon-shuju
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shuaxin"></span>
<div class="name">
刷新
</div>
<div class="code-name">.icon-shuaxin
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-sousuo"></span>
<div class="name">
搜索
</div>
<div class="code-name">.icon-sousuo
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tanhao"></span>
<div class="name">
叹号
</div>
<div class="code-name">.icon-tanhao
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tupian"></span>
<div class="name">
图片
</div>
<div class="code-name">.icon-tupian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-wenjuan"></span>
<div class="name">
问卷
</div>
<div class="code-name">.icon-wenjuan
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xiazai"></span>
<div class="name">
下载
</div>
<div class="code-name">.icon-xiazai
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-yanjing"></span>
<div class="name">
眼睛
</div>
<div class="code-name">.icon-yanjing
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-zengjia"></span>
<div class="name">
增加
</div>
<div class="code-name">.icon-zengjia
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-yunying"></span>
<div class="name">
运营
</div>
<div class="code-name">.icon-yunying
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shujufenxi"></span>
<div class="name">
数据分析
</div>
<div class="code-name">.icon-shujufenxi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-dianshangxitong"></span>
<div class="name">
电商系统
</div>
<div class="code-name">.icon-dianshangxitong
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>兼容性良好,支持 IE8+,及所有现代浏览器。</li>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
<li>不过因为本质上还是使用的字体,所以多色图标还是不支持的。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-arrow-right-bold"></use>
</svg>
<div class="name">arrow-right-bold</div>
<div class="code-name">#icon-arrow-right-bold</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-arrow-up-filling"></use>
</svg>
<div class="name">arrow-up-filling</div>
<div class="code-name">#icon-arrow-up-filling</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-arrow-down-filling"></use>
</svg>
<div class="name">arrow-down-filling</div>
<div class="code-name">#icon-arrow-down-filling</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-arrow-left-filling"></use>
</svg>
<div class="name">arrow-left-filling</div>
<div class="code-name">#icon-arrow-left-filling</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-arrow-right-filling"></use>
</svg>
<div class="name">arrow-right-filling</div>
<div class="code-name">#icon-arrow-right-filling</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Appstore"></use>
</svg>
<div class="name">Appstore</div>
<div class="code-name">#icon-Appstore</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-AppstoreAdd"></use>
</svg>
<div class="name">AppstoreAdd</div>
<div class="code-name">#icon-AppstoreAdd</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Audit"></use>
</svg>
<div class="name">Audit</div>
<div class="code-name">#icon-Audit</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Block"></use>
</svg>
<div class="name">Block</div>
<div class="code-name">#icon-Block</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-CloudDownload"></use>
</svg>
<div class="name">CloudDownload</div>
<div class="code-name">#icon-CloudDownload</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-CloudUpload"></use>
</svg>
<div class="name">CloudUpload</div>
<div class="code-name">#icon-CloudUpload</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-CloudSync"></use>
</svg>
<div class="name">CloudSync</div>
<div class="code-name">#icon-CloudSync</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Export"></use>
</svg>
<div class="name">Export</div>
<div class="code-name">#icon-Export</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Flag"></use>
</svg>
<div class="name">Flag</div>
<div class="code-name">#icon-Flag</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Gateway"></use>
</svg>
<div class="name">Gateway</div>
<div class="code-name">#icon-Gateway</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Home"></use>
</svg>
<div class="name">Home</div>
<div class="code-name">#icon-Home</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Interaction"></use>
</svg>
<div class="name">Interaction</div>
<div class="code-name">#icon-Interaction</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Gold"></use>
</svg>
<div class="name">Gold</div>
<div class="code-name">#icon-Gold</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Login"></use>
</svg>
<div class="name">Login</div>
<div class="code-name">#icon-Login</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Logout"></use>
</svg>
<div class="name">Logout</div>
<div class="code-name">#icon-Logout</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Import"></use>
</svg>
<div class="name">Import</div>
<div class="code-name">#icon-Import</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Plus"></use>
</svg>
<div class="name">Plus</div>
<div class="code-name">#icon-Plus</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Partition"></use>
</svg>
<div class="name">Partition</div>
<div class="code-name">#icon-Partition</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Picture"></use>
</svg>
<div class="name">Picture</div>
<div class="code-name">#icon-Picture</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-PieChart"></use>
</svg>
<div class="name">PieChart</div>
<div class="code-name">#icon-PieChart</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-Solution"></use>
</svg>
<div class="name">Solution</div>
<div class="code-name">#icon-Solution</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-340cloudy03"></use>
</svg>
<div class="name">340cloudy03</div>
<div class="code-name">#icon-340cloudy03</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-380"></use>
</svg>
<div class="name">380</div>
<div class="code-name">#icon-380</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-385"></use>
</svg>
<div class="name">385</div>
<div class="code-name">#icon-385</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test"></use>
</svg>
<div class="name">record</div>
<div class="code-name">#icon-icon-test</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test1"></use>
</svg>
<div class="name">time</div>
<div class="code-name">#icon-icon-test1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test2"></use>
</svg>
<div class="name">order</div>
<div class="code-name">#icon-icon-test2</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test5"></use>
</svg>
<div class="name">cart</div>
<div class="code-name">#icon-icon-test5</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test6"></use>
</svg>
<div class="name">search</div>
<div class="code-name">#icon-icon-test6</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test7"></use>
</svg>
<div class="name">edit</div>
<div class="code-name">#icon-icon-test7</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test8"></use>
</svg>
<div class="name">link</div>
<div class="code-name">#icon-icon-test8</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test9"></use>
</svg>
<div class="name">setting</div>
<div class="code-name">#icon-icon-test9</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test10"></use>
</svg>
<div class="name">notification</div>
<div class="code-name">#icon-icon-test10</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test11"></use>
</svg>
<div class="name">notification_off</div>
<div class="code-name">#icon-icon-test11</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test12"></use>
</svg>
<div class="name">filter</div>
<div class="code-name">#icon-icon-test12</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test13"></use>
</svg>
<div class="name">check</div>
<div class="code-name">#icon-icon-test13</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test14"></use>
</svg>
<div class="name">close</div>
<div class="code-name">#icon-icon-test14</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-icon-test15"></use>
</svg>
<div class="name">forbidden</div>
<div class="code-name">#icon-icon-test15</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-bofangjilu"></use>
</svg>
<div class="name">播放记录</div>
<div class="code-name">#icon-bofangjilu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-chuangzuo"></use>
</svg>
<div class="name">创作</div>
<div class="code-name">#icon-chuangzuo</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dingwei"></use>
</svg>
<div class="name">定位</div>
<div class="code-name">#icon-dingwei</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dingdan"></use>
</svg>
<div class="name">订单</div>
<div class="code-name">#icon-dingdan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-gengduo"></use>
</svg>
<div class="name">更多</div>
<div class="code-name">#icon-gengduo</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fenxiang"></use>
</svg>
<div class="name">分享</div>
<div class="code-name">#icon-fenxiang</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-paihangbang"></use>
</svg>
<div class="name">排行榜</div>
<div class="code-name">#icon-paihangbang</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-qupiao"></use>
</svg>
<div class="name">取票</div>
<div class="code-name">#icon-qupiao</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-rili"></use>
</svg>
<div class="name">日历</div>
<div class="code-name">#icon-rili</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shandian"></use>
</svg>
<div class="name">闪电</div>
<div class="code-name">#icon-shandian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shangquan"></use>
</svg>
<div class="name">商圈</div>
<div class="code-name">#icon-shangquan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shanchu"></use>
</svg>
<div class="name">删除</div>
<div class="code-name">#icon-shanchu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shezhi"></use>
</svg>
<div class="name">设置</div>
<div class="code-name">#icon-shezhi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shibai"></use>
</svg>
<div class="name">失败</div>
<div class="code-name">#icon-shibai</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shijian"></use>
</svg>
<div class="name">时间</div>
<div class="code-name">#icon-shijian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shoucang"></use>
</svg>
<div class="name">收藏</div>
<div class="code-name">#icon-shoucang</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shouye"></use>
</svg>
<div class="name">首页</div>
<div class="code-name">#icon-shouye</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shuju"></use>
</svg>
<div class="name">数据</div>
<div class="code-name">#icon-shuju</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shuaxin"></use>
</svg>
<div class="name">刷新</div>
<div class="code-name">#icon-shuaxin</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-sousuo"></use>
</svg>
<div class="name">搜索</div>
<div class="code-name">#icon-sousuo</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tanhao"></use>
</svg>
<div class="name">叹号</div>
<div class="code-name">#icon-tanhao</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tupian"></use>
</svg>
<div class="name">图片</div>
<div class="code-name">#icon-tupian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-wenjuan"></use>
</svg>
<div class="name">问卷</div>
<div class="code-name">#icon-wenjuan</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xiazai"></use>
</svg>
<div class="name">下载</div>
<div class="code-name">#icon-xiazai</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-yanjing"></use>
</svg>
<div class="name">眼睛</div>
<div class="code-name">#icon-yanjing</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-zengjia"></use>
</svg>
<div class="name">增加</div>
<div class="code-name">#icon-zengjia</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-yunying"></use>
</svg>
<div class="name">运营</div>
<div class="code-name">#icon-yunying</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shujufenxi"></use>
</svg>
<div class="name">数据分析</div>
<div class="code-name">#icon-shujufenxi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dianshangxitong"></use>
</svg>
<div class="name">电商系统</div>
<div class="code-name">#icon-dianshangxitong</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1610437688187'); /* IE9 */
src: url('iconfont.eot?t=1610437688187#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAACFUAAsAAAAARMAAACEEAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCLYgrqeNVbATYCJAOCJAuBFAAEIAWEbQeGZhvFOCXjmCWwcQCQeF5O9v/fEugYg6e7iFYB4BVeqXa4yU4VTTj1yQ6fbsdOpcmbdGJvcXr4GndzM/4VwBj3U3gMEiSBeO28nE596gYWDiuYzxf1z/jJksVsQyl5+H6//61zv3q0aKbRFUInWyqkRIgQ32wsklmcqhTLL5Udp3XPP6zdB2xDYASNkg3OgHXeoPSQJqAGBsDwvNv+z+UC96JMBw4QcVSO4jNcOS+IijMXhhu1rIe+RHeT2xTT5zdpSPlcTbFhi+xpQWMNv7aW395atDn6OWAiYG43RcQTpCQlpV8jAl/9lV3zpj4vLVCIj+sQz20RCVFIE+KeN6f1UjzZ3S/ZSfueIUkHsLgEIFvppMCZRfTFvspXWwq0nPAQQGDh9g24GWsgc1CRFJdZYkXrBkj9H9NVHr33oqFo1uy6d+0JDGTyhOHIsBYB86/TXK1AAe3yVHbxF2h3CZaly/b/l5L4g87+Ukj2kcKyL31WnAPliJwcAEy9rQh2nLtnHdo5IqcII+JGW6dOc4d96rDutc3EnCHPgXeqbcoKy2MGY1plMHFL0zWGeMZEoiCIWLHdrVe+7pkElOrolBaXNw8ZxNtSAtLT/e05k9BRhi8xgxRju/mAn1TAZD9xHeAj/eHTb2gWBiAj88DLuXuzdOWRI/XPvKPySFG3Z1AA5AGdyAfZe2ZjeiKieKc86ev7S+kBtGqRz+QUKxKpTL5ETd/QikKW1sc+tZNdspUjMTKumxpskaqeNPFlaL40pQONTr83djLTrtOwf9NRsyqRxyukbJ9K/T/GK10GtHr6BoZG3gkKqompmSVJMSzHC6Ik64Zp2Y7r+UEYxUlKqVJrnFStXKnW6o1mq93p9vqD4Wg8mc7mUlmsPA4UhRh5DNWbM+ILkgv8WgLokSJFeQkUOAHAkJCAEaEAbxAa8AFhZD2cBWBMRMCEqIApMQAzYlKquA3AHHEAC8SldHAPFLgPwAaJAFskBuyQBLBHqoADUgMckR7givQBN2QIuCMTwAOZUqbyGSjwOSjwBSjwJSjwFQBPZA94IQ+qCfwJCvwFCvwNQEE+gJJ8ARX5AWryBzR0K8AJ3RlwRpfgqYBG4gCgkzgI6CIOAbqJYUAPcRjQSxwB9BFHAf3EMcAAcRwwSJgBQ8QJwDAxAhghTgJGiVHAGDEGGCdOASaI08IkuAXCFLgVwjT4GQgz4GchzIKfgzAHfh7CPPgFCAvgFyEsgl/CWJYA1sJtfOFf9Q9o+HvV2Satk/ybGppCEiYCSREK1YREiUwqDEaZTL6FEsKEj18rIyYLlCYhUsOEPlWwFU4UP16t93keyB+jw9zsW2rIzcZn7nnYH/Rin+yNPLNWojzTtePJEdMqbmMvMj+YaYJ21rbyXLOFW709PHYWFpk73nnflk6yYeYoQiTDlnLiIknitMT8VUDvNbrdMLpig82ZgpX4VtKUZxkXbdpmO2JHjOrHG4cwrjA3er1YxTV1mh6uFWGf1WbZbB0FM8bZcsZZHlvWljOMxsVrQ9VJ8LLtJs4PehGIvzcwZ/j+ypw2PeXPVrcIIy0Wfp8OnAqKsJqb+JR4kzPcreOoV3XUKZ+l0+JAVVvlVJg+w+cNLn6e8g/W9LBb97TpYE4NfFtmvhoKAk0RAkouTyKIv789G4RztiHxuTHFMysbU8WdDR7sGIJcR74KEANyNAwCDQsDYk9A6PKvU60AK57xTslByejIh+T7oyEnziS5NT3iV9T7gqpMlO4+ieChNlxuvc0OH98OPs2nPoh/wDJkdcZEvt5JzgqrDcpQsdENEjZ8kJkU55GinvD2vgFIUgDyfRMgOC0bE8PfI8mtqifk6mtm4BlU8FRLVgPkM+w0XcNYQ1odsasnt66F9jPPrEtoxGP2tWbNUweaG5zdxy+j6hga9l5cYEs/c9VXiR9gHAq8niEtY6HLDNmFI02aVX+RXD/4cm0vdN+N3uNPuoUEuG3a0g/5faeueXuf1usHdexFQOpytfdkC7kkcA9uHPlqZndv5TI7+vUBwXWL+2AeBMbAjuZb4obgdmYcRMJR0JhO0K2hDtZHRqeoH2iKW5c8nEIBhWJUuLbMQ+XR0Mh8UHo6g6QAp4oVrw7dEX9ISmh8GAZL2B5KpcGqHEVUELRhFXD2EAU4wPgdJQsDFIEYrEIQRwGCVDhVyl2QPdPPmTpVWTqxBYc6JVw+5U49GDSEjLC6UaECIhOlp+1aCVAqKHVK96MG0x9sNOLWe0YTbpTcNRmF2OHKdqDANIN7rfhQe5Ppb4hTQQhyrhLfSStYCLiV67KvJh2KTWRyJDM1ab9k4ubMb7dS4Zo2a5BBSoc9Qxj32l7ZpMj8ltRQ63OuyyfarXv7T1u/bVDmOhSGAoUYVuKUJ/cUZOJt0liqlhS0C9oWj6SB1v3ZhN5qocZLmp/ZrxQN2x2q0zXUuHVx3eSxxOA8ddrYA8VBiLWZbarTA3IEGiB0f26iJrnNi/pAK4MKE4NiEsurhArIJHxUum2gGKB+ItNUHpjy9ITtQx2QmunprkXDSqzjNojU+c2he+7NTueiwarQMV+3ZYnrIx11R68zzTtlczW9V7ftpy15G0ye2fUXp9o0pDSQSrR2utVdtTG0SU9MSBcIfcPv/acsXirpKPw+2SpWnpRrsEENRdhL1lPtVouh0XzpcmP9Spe80n7nAjcEeQtYblkH7jgnu93n6ybNbBWHyFjXyMG7axfuPYPLPSIP26bXHE1/Fp3XxPp0eE+JMr7AxwQcB+6sAdU1uyAjuNcs1ni2bC+c1nmsn7vjkvk2yb0agf23wVLzrUve5N59GuLjbnjPOgwP3fshc5yddE95J2jp1Owcp+ys2eHxrqtjy+5IxqQIQDY2SUeMf0cnoqkSX72nmzhRghYMaPoUQFKyeKwIQ1yDqmvwBBxZe+y2pSw2vmv3x1Ucbfo6UKfvZanJmWbLe/E7Yl9gvmIliXUld1XqX1ntaQXKIDgpjWoAGjdlUYesAPnLSBiTLniSVSpOtboi2E9OFo47J7xzbMaKEtqHloUAHlYwoaWk0BiGKFXWOKSlH61Tbbgs48f07VdM3Ak7KKQmSSlqjcOlAo1MN4BtBPDUS2mApaFIWNakVekkocmL2mgNyy82tjbAdbCwWfU3k80F1M31bqsUNhCd658HkEjQXALmu6yufa8YpjCMcg81enoMbYvnNIuaVtxCtT4tGw+0OLEOAGRiZmxVQEehjhUVmhUY38N+45CUjrmz/bV+UpKfcJA9WdhMZLMqvZXTMRHDd7TC9uyZvmofLao1txzwnikJagdmfaB+rivfRSHVz8I22UqgmmCsdDKBM8cnrX0tY0AEnjo7jxEfSBl3yynQFVhI+Er2xsz0GSqY2G09TF/+5SWKRUO/26g132JYPcQTzDU9r8NwKHUBa7+7WTTfmmC1mluv4+KdsxHAqCcgZic6hp6ibdaLZvrlF0HIwSAvUSu0Ufu3W8b7ZKfxndt+41ebTf2ar85+z0pQslEcmFPtp0Jlf5xYpqBbPJcvj1Ho1r0q0FIeOThvb24M1MGq7cW/a/m9OHX8SVKoddGFgfQpj0xVYoSWH2SC4xXh6nqJfS8wxGhbXxaMIchKHfR/w1NHKxOfH7Jxwmxds4UuKxcbb0bukfBBiwYl6pHC+PRuiZbpTOm6obDYWEUYrlSXdOnoTnfXsZ4WnR0zVlQHBlWKdVPH/1ZHLJ6vFzUzO7sZnQcB6zaFtsG+j5jUHnzDkOPAs9hGazOp6UmfsUpsVVaqrSucqyH7ngSyoVDmcLf1oc/0j482UjiakBC/B27xnW9lX101IDzto0/Q2BfmyQYy1Ng6GsTCSLeMiAH1mTDMn8KKdyIOsCYPXMjvuCL6O7iCjRpQYBcwNSumQxn4bk9wUapGpFso15Y6HjvSqFTrSolySf2oxgguzsW2VY522UnsVVVyJ2JQ+kaVmiaZxTNrQrhgaYcziiU3p1vbFPmiWzabjzbnlKhHI30sKSGpnySZjr6dZeCAJWvAQuZyyiE3wdVOZg4jmR1NbM25Xan8saqNdyQ+mHUsoW9qor42+CMz1ZpAf6R16N66+btP77+9eu6O7RdKOWPXItrxBVHMZtTLz5WTo0tjwgxm9+vWhBjLoBZfOKSZU2iGFO3hu0k1oOOFi2e7qNCt2vK5HioMmr92JW4Gmlk8sdhLfM3M7j7fbXH1DTMQHLHcgkHFxnh46WjCaidXSebwZuKruYxgLsabGBi07I1ORuuW8eKekW5J7r6PCu1Usco/jts9wdXxVpBfFZPVVLNqhOc6iM9sXshk5W9Y7srDteP+8wcXsM81/fE+EPlcST3vshe/qsXL9bxuJ+fs0Q5LHvaKWSdTGCNWyqvGwYXFSjkIt1PdwEKBrI0Qq8ebHXssVMZe87kSPRcaeK37qtq21X5Br7G9hdhmMCPFTwe3OcTb7mR73au7NVZxqra2de3MdIu7hlF/4Y3IVWwMb9Er1yJlTKuo7NTp2Vk6WSabwhDF+rZnKkz/fL51/NQv1fJGajst//CWcyl2aDHVL+lNtrHGoxmkf2GKNptvKVK6zzrnyVZnlPkfbbaV/AH/Hmk1/9TN/t9mMZ223uXYzIqVTTFXWRqWAxf/p3OzpaQkuBzhheGVB3OSvnfPpVhFBUHVq0Po1n4W+S4jpa5zZLJFzaDEEkMX3ir20IDjo1HEJH9pyCNFLFaxSeXivuN+TQpz442ZTh/6VavR5TpSJ2tgr/8M0uwEP3f8os07f8pGm5pIdEhm4jqkd/l/CxP5z2fJ0hCe5Qfx73rNYRl/8oou+zkJeJSoVDe8jMzDjk3eN3JU173Bi+9v/mrU3sqkq8xcxlaHZh+jJuka6waTBX48PblxDb75qBHJR4zafK0Rjetlojcu4JQIJzADZ8hYSt8t56tQOmXWNGCR4cud3Rit6TQg2lAtYuikUEJRvLMzATsXUQmHErMBOqRFQlH0hGyhiPb1rrvERLR38fDdiKYAX3wJimNapJsZO/1sWsLAGZJpgRbFkC8LdgW0iaSzSQkJJW6vJNFu9kJpd8Bu3eRgYHSigzRpkLILsYn8TNdrf7k/COvkTn2pmsdBoA55Bk9NoWcUpA9kPTra3X3kkdb4XtYNa8eO7qOPmLkfHQW6fqUzistxxDmbPNf3Ve+Nemca37m31vp9cxxvAIQFd9GSnQoawTyBd2YMluU1R4Cjcgou8AheKqd6hCU+/+GPt2JpnDDdbb5gw+e1evuH6UtYIsSNbQziCohxRDmKC+ZkecVg3pkCMC+/EZDHgkqZoIz/quRsZ5QiR1FnJTlRctNenxVc6uu3WHEQIsLFi1Oc85t+Z0Je3cpcCjGbGIeU/MKXZHmIwpOfjT765ELJyUOfXT2yJPxfSpB4lKKi1K0k5Cn8CJoixdRSU0NMg1J+QeKeXsURLiCBWtJm2WaSapa4CFq1jFQIxxFDtXUgROtiXyZX8p2TUeV+87WyXb/kzmIWEtIRlCB8cnGUFkm47QOWgKBRKFLLkDD8GD50P7r3pN+kN70WoXr26yS7yPMXaREM0S6aL15gv05MAeGZlTPWMOTMuwJEixHlRPxkahEB97aa8TxIFB+eje/GFRLZ+N1++vwGoo5QUBNyDzGhd9HtCDaFIduj25DvkbejmAM2GVvhhKjPO7DQyZtApdBhqALLI4tVxgMMYqr1J0fGB7mDDx8qqV2Tojp2nfj2YOQFPf4B/31j3TDJ0Sg0C42OpOG6JXs8C4RnJSbVgiRWGNExGIlMOXwPm5r5lK0LV5PzWOXgcxSpVryixAv1ShdxHTHqs8tqW9wljwxtT3pqM3yajsGYeXAsHB50znMoZ32KIuY+RBB1oBkSBsNzOGx1oJY8h4tq/2d22fTWfZiNBKIkDaonhsAxMpdOs7rKZXM4ZDQQYbMSW6pjktidJ3AggH+0An/cEKfxUWAZaM7p612GyJ1JPAWvqir/QZ5JOyMN1VoFL8lzABgiu66fVqIZJIWvrPxh01roJsmJhdwk3HFyLVvYeyevixWoGLthAHO169Nx5enrjQpesueuJE+FXRM8k8FAZKe2+qDtAnpem8Ybp5R4OqZwjNM8acDvEJ1cCXfIN51YN0lroYdNseVOCtICgjKTNL8c13EGXj699mVDpIvmkzdzChHFIDSSFTPHAB6vOHIKxVdyGM2uApGMUUHn+ExEjwSPrdmhJf9TuuQGo+OS0n/I6m4NBLkLOY3kmUgLuTbvTF4Noo/9fb9rveCYBdo/tB9EHXUwM21WZdKiRt4pEPSMmq7ZRZBDamwCb9Qbluw8601x2Hb0RcEO2+I7p1nZnKP3X3ubxeHX0ZvCAnO9lhqNqJaXB/bIsZgp70yf7BH5HgybyvBW+ozslmPYv14ZPsoCHlE+IlG2hHbp51ZowlqMYfqc8fpQjNzXT5aG1n+Q/weZJ2uv1rbL5iE/ErOJJ1DcDIhxy+Nm5qslaakS9W5weQeiPbHMR9EFJx7l0P554K4WDUEXfAQRXQSpxSTKiSca1fSMGUR/SY9gaLsyk632VWeELlY+M9RsdeaccHUAiodqkZSstDtn4pOU4qINhZXw7Mji3q9qn1SfNEmqBNh0A7Aigxevfu0og+fnQlJIrlLJoVrr/+l022SlFmy4QLMva9ctkOoIw/30ZcxEqKwMSm+iuuwqtcXQypXQO1a4dEUhcaZy++Iy/iz/+5vp6cpQofq1U4eJYvf8DX82FJ9fIIcmatOSgDDbh+4D5spaYblcyEd+sB1vWXHx3hc5X7d1dy8TBMKxsULhqIcDBb+upt72NefF3iQe/ySFFeQb5h0d4dgSryCvx1/dvCU4UCDqEy8jeuenSqRYYwZCI9VLGWppPcmC4kdx1A0HISAqWRdbXbUoRlqItc3KIIuJCwm/f4dTpAPRWxulGglBKctb0dVZlwjbXNVILtKfrbNKEIxUL2wTZZBDLuMdUSr5EzSN4m44+gTJeJ2G1RP9ULyGGEckBhPF80RiIE7XP3okSp797bUrsPH8/a30VXQ9nZa8UhA3AD9+/MfZoqJ2mtVaxTxF/PtvyuCphVAVbwU8ezE+XW+xjJuPe7ZxB2ELDiyEqnh17CSRgl1jenEMtwIMBMJmu4A0GYBhJRWU3Eq1enUYrn7YuhrodKzbNG/abVafJETiC0LsF7MfSCwisWXFBJ1Fr/TS1WDSDs8pbMyt+GMyBzq9w4pZgcVCqPzvfysJAwIdq+L05wJv3gzwLQ8jNB871owgYVYTmsnwsHLfgbMJcICV2WaYmOjsjPD1HyucmYmD8s8BLe4tFkuXe5e+5csXEAQDK2agoOMoxZDXsGCYqagiVQ5uWNu4rSCRoKbTxODoDKiiAspgxkKoiotW+r0gWfQ7m6uJNXC0k3diuZqWb/94WsG51bo8fsXK0MHatDQfIkr06YJqRZRbFZynf4hSFnM1m87xp6d7rLwu7N9FyYIKziJ2b9/qgpSdzYuAogSvQ9FTCvLyzi1vvdW9RCjKuN8g9V5wpeI3cIPCpmRlVw5Z3BWzsmt4HH9ezaV7JDnp3qV78/6cGl72rET300OVWdk8D/005/mARScpXwgKFa19gCApCZQvlMTo+iR2uJ0k/0Fa2lKMsKrv0HK6DJMlnPBrAmlTWloLDQfd89gApwNLr6OaF5QEjo/LBBlI/hfD3+85OLgK6qiS/+3EHoWXNnWM2/xf5BikttCArthyEoqLBmVBeWodXI+tj2ptvfdW5n7a+ojJ/LPVVjgN95cmADPhZ9bNaFo6vmd3fNy42PDRT11GkvGgrms8wrO6lsudxN8GHkj4z8pb5+MEK4+lLM7y0knpIinZm4JsuXpxG2yEr18/Bo0LIr8C0J0tSeoRTbdHqkbKKsEx4vQ0jeAxIMjx4TMFzFu/lYSYVRcbJo9v3XKUzuKy6FZaS2/vM781IAzwrxhw3uVz41NOhY6HDoErXd4OTbKATvPY0SOiop3fly1glrsXlTrv9ilR2+8DuXms/8+emmIEguY5TzlZzyZ/AO0E/fQMwkRTdTf04EDip71hbwx7Sv8A9+Cdj5+0V/DJHhMMr+K+yM5i0IO8oCfRGbYvQluiFegXkGTiNBaHRQ+GpFIWYEmlkMbRlLdTnMr0KbaGPZUOHG1Cx2NYc6zhLWlKE43FZdEeHhQICMIcxH5iB2xyEBs8DoQOMj+Zg3DaiBmPXWCmjBgIzqigFiT2yg0mxtRD+ZFwpsN725lN+IGE7Zm/Z27RRlTc0dK22foqve9FVi4Ua+2+saGixlV5EPD86JYG6L3+J2ba6zGDYA/QfCxIw2xSiBkl8dhTJEB6k6kJJFmBaRprC8ehOZthYC8Vjo5w942O7uOOjEqF9gA2OwNpDL9rZ6c8MHWg7GPp9WP7R1LsH+NqOsZGT/dnKa5bNrYds9aqfvNsDQRpSynuzmr6dr6Jv52udmY/d95GmvqtOE1ugxBoDTnSkvkvjTR+AL9fmPpEqJeMmkaSO0cFnYSpnj0xKKVbdefei1J2UUFr0H7ghpksfnZ2fJZ7eulPo9iP1qsU1rq55KOETt1epl905Fvpkl3AvfjcADY79TVOOLOc55RtSZkgg0G+ooz8rYOM3y82RVmc8T6L8DiPIIGrusAhkUOhDGZ5cJ39oNL0wSiiuCJ9orcdmKlNtCuejk4F2fqgrUY6oIdpIyDV8aRNjk4VTo6b7hU7ZnYkhktpvr5XH77kb8i+5iQnJ/NTomWfAiouhjKoWBAJCZC6GCgI7eYJUdYxKnXMertvEDK5u2L9t4srjG5Fohk82Wz+YURFbsbj6x+qzB5LeOGPaSN4S9SDOcqx1a7XlH1JzjXX1WOTJ2eu9IXL+GvEAaQ5WQ6QCwUXyfJt6+pT8JeXGOoZKWPXG/eNVniG+jX8pyXRdcfiycmCi0WvJg6ZNJmZD0zfiNckkOZckF/6d9taiV0OdomR4VqbMuok7Uy0MWtdMy4xhOLcpk/9v5fkf+R08l28zvRNQADY4Rc6mSpIzVbdag+NJY6s8Vh9rpijsbMfQMMpDpvMygK2ANPluFt4bSfBofST0lXFZdf8Np1qWN7FMWaomvXP/deM9fXpOWur83jDRZW5JOS3W+vllOX9NmIlGCmLVLVPi3okSd3ZBUB+XtvgqxeRLUA02fFQvD6ROPTq1RCRsKqJQ3GuyE3nzE35Z+mSDthigTsMGjrKzn7IxU0TQx6mLVuMuDdqBHw4cAjm9u0BzCGkBhx1ORpAdWjybWRp6rdDH6lHItgRR6gfoSYQfjjn4dqjRENi/jex/mRUZTpLCryq/BYeWlr1t4tH5cxfGFKChCeBAqhjgafyYdW7p+v3PU5wncmOXcQdD/DElZk+bR8tGBlAGBgAevfm/q4vYuGCnD2mHnS5dsXLWte2Vq+bf3Tjvoa2cSnHSzr79BH6tODPH3B1RdeVpgnPcrK3Df68xpea1xjV5S2ol7s+5E81hfws6urwphg1jwtBa5VrXgKhsHQKxhOLSxOgqX6AwzcY9JvDlNVnirnUtKrSFBBWEDbc59hxJ0PpCWHJbi8F+aug+qWEfCi3pimHqKrFgC3mIzB7t/HaMN9H8M2MPgN2+zVnAE3YMp2dzeOFOg3bv5hN4STMWOusPrlhxZ4lfkoLvM6FD0/Zr7GfGl6zCqfCBz98MKxM3kA1m6kbPNoOuwd6LLcaddA47NdVeBukM1qXexzpj3c/3O49/Bwy5M3zIGyAng97t3P6wTGEDlHHaYDDpNc7y9rLOfOa6jbMjbYOu5155U8bxirohisvTevTN/z1vMvVl27f/P7auwN7DUv7nlGLODzqo+c0FpVLY7oz6cPJ+uM7GotmojMleUzGVZ61Z+WEZ+M7Cqa/SVGqpYbIMGvs19QX0O2CqIFDedRiyqjDKJ4ZkKLpTw7piP8zdTINGz+w2F5JGXUc7S1iDtvkJjX0ikrd/OQPaQ/vnEug2Vxt1tZwOATobN6pT2WNzzAEgMR6QhWJriVgrLOthF8pwNX8jN3wjHLzJd9xEK695DXdMPfhXxLAjj4IZsWvcAkOLRK9Ciep8k3B0KZbkwZrHN85wvPYZn6FKx1EUiuLRl+zUQd5xps6A49q4Xe4yZQkKQHMh28zTIr+SQENW2Eqhsgkap6r2cYLBpE/aEazBN4VEAzwqseKMBxRK9sQmkxOQWUl4g8YggN5SvvIPYJJ5AEN1CbBh67hso/sgNlsqIvV20UiH9nKekyfIw4OUaU+ULHpW36AHYhC259yAJ5ZdFZuWVMiVTpXuEdrUiapVkIu6pLCo5/ZblL7G3bBnP8o0RdohK9wLWZE/oLa/3+K9X4+9aF0s25JGtxUEFAs+WeuHP4TxET5DPDf6R4qPbL2Pu8E87K86L8depOANb/FPCsDSv35wH/iGFbrR7eqDdw4hFDLsT+jtf15jJGUX77yFyg4+QsZd3+ppZUdlyl5T8B8C6Ddh50fBV/9Ce/PLwTfJCr/7pcq/vqVUAh/6jOV8iyYFFdi9RJBMmjRnAQq8ka1XJ1H/QU2ORkvK+nF/yAO2CJm4+n1I+/BQ1ThMuztnNkIE6kX73Z7B86RCJE6UDxumcP9ZGJYBzFW1F9ULxEkgxbNKbwlKvJm5VzdfP+/wCYnY8YUX2/5D+KAT1zMxlMO6T3zXFM0xTns7ZyJYUQwfqRevCMGOD9OIrCzdaB43Bawwv2E9GR42Vi/2k9rxvqm6n3m15ATFEgoUaFGgxZTLCCjQ48ZBopmWI4XRElWVE03TMt2XM8PwihOypVqrd5ottqdbq8/GI7Gk+ls/qtQLy+vb+8f25u9Eu3TxVzGSIdRRNvyqCGnr/pKYWTQOfT2+S6ooyf/dqEDw91eqKh42ULxMoSBKUJ9LvCl1rcvk0a+feVI/X/02lHSb5TGHUldJ7S/wS0tB/L3yavs7TFQ5Jt3Ttr8vWQ4yNPNB+qh/ugZolSM5G/eG22//UIWfRYmUeLsYy/Syw+XhvKHjIw8LvkPVJwiFD8QXreMWPGbXGLG6kV7qvTZT9PF9aI/DbRVOTuaRgzDjJKjlNkhYB6wClgHbAK2Z+7q+WfTQ+AscB64CFy6rqqGjPS2Q5dK1SZkOyfKNXp7AKRX09LnFi5IVBhxxGyrDhJbkCZwyR5SQEk3ER0WA+MkjbQ8G/YhFcMRUmrPhhbOLZ5MbCQyBHY8KHeEklKAz/UnuG0zdSnfu8sj+mygNCTKWPpWApdi8/kBfCeVZEaQsxLvSfqYt/kZ6mCT+Sn5U5JVRK4sfWKMvO9yRCZvLwAA') format('woff2'),
url('iconfont.woff?t=1610437688187') format('woff'),
url('iconfont.ttf?t=1610437688187') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1610437688187#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
margin-right: 5px;
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-arrow-right-bold:before {
content: "\e687";
}
.icon-arrow-up-filling:before {
content: "\e688";
}
.icon-arrow-down-filling:before {
content: "\e689";
}
.icon-arrow-left-filling:before {
content: "\e68a";
}
.icon-arrow-right-filling:before {
content: "\e68b";
}
.icon-Appstore:before {
content: "\e605";
}
.icon-AppstoreAdd:before {
content: "\e606";
}
.icon-Audit:before {
content: "\e608";
}
.icon-Block:before {
content: "\e609";
}
.icon-CloudDownload:before {
content: "\e60f";
}
.icon-CloudUpload:before {
content: "\e610";
}
.icon-CloudSync:before {
content: "\e614";
}
.icon-Export:before {
content: "\e618";
}
.icon-Flag:before {
content: "\e61c";
}
.icon-Gateway:before {
content: "\e61f";
}
.icon-Home:before {
content: "\e622";
}
.icon-Interaction:before {
content: "\e623";
}
.icon-Gold:before {
content: "\e620";
}
.icon-Login:before {
content: "\e624";
}
.icon-Logout:before {
content: "\e625";
}
.icon-Import:before {
content: "\e626";
}
.icon-Plus:before {
content: "\e629";
}
.icon-Partition:before {
content: "\e62a";
}
.icon-Picture:before {
content: "\e62b";
}
.icon-PieChart:before {
content: "\e62e";
}
.icon-Solution:before {
content: "\e62f";
}
.icon-340cloudy03:before {
content: "\e743";
}
.icon-380:before {
content: "\e74c";
}
.icon-385:before {
content: "\e74d";
}
.icon-icon-test:before {
content: "\e637";
}
.icon-icon-test1:before {
content: "\e638";
}
.icon-icon-test2:before {
content: "\e63a";
}
.icon-icon-test5:before {
content: "\e63d";
}
.icon-icon-test6:before {
content: "\e63e";
}
.icon-icon-test7:before {
content: "\e63f";
}
.icon-icon-test8:before {
content: "\e640";
}
.icon-icon-test9:before {
content: "\e641";
}
.icon-icon-test10:before {
content: "\e642";
}
.icon-icon-test11:before {
content: "\e643";
}
.icon-icon-test12:before {
content: "\e648";
}
.icon-icon-test13:before {
content: "\e651";
}
.icon-icon-test14:before {
content: "\e652";
}
.icon-icon-test15:before {
content: "\e653";
}
.icon-bofangjilu:before {
content: "\e8ad";
}
.icon-chuangzuo:before {
content: "\e8ae";
}
.icon-dingwei:before {
content: "\e8af";
}
.icon-dingdan:before {
content: "\e8b0";
}
.icon-gengduo:before {
content: "\e8b1";
}
.icon-fenxiang:before {
content: "\e8b2";
}
.icon-paihangbang:before {
content: "\e8b3";
}
.icon-qupiao:before {
content: "\e8b4";
}
.icon-rili:before {
content: "\e8b5";
}
.icon-shandian:before {
content: "\e8b6";
}
.icon-shangquan:before {
content: "\e8b7";
}
.icon-shanchu:before {
content: "\e8b8";
}
.icon-shezhi:before {
content: "\e8b9";
}
.icon-shibai:before {
content: "\e8bb";
}
.icon-shijian:before {
content: "\e8bc";
}
.icon-shoucang:before {
content: "\e8bd";
}
.icon-shouye:before {
content: "\e8be";
}
.icon-shuju:before {
content: "\e8bf";
}
.icon-shuaxin:before {
content: "\e8c0";
}
.icon-sousuo:before {
content: "\e8c1";
}
.icon-tanhao:before {
content: "\e8c2";
}
.icon-tupian:before {
content: "\e8c3";
}
.icon-wenjuan:before {
content: "\e8c4";
}
.icon-xiazai:before {
content: "\e8c5";
}
.icon-yanjing:before {
content: "\e8c6";
}
.icon-zengjia:before {
content: "\e8c7";
}
.icon-yunying:before {
content: "\e611";
}
.icon-shujufenxi:before {
content: "\e612";
}
.icon-dianshangxitong:before {
content: "\e613";
}
.icon-ziyuanjieyong:before {
content: "\e618";
}
!function(a){var c,l,h,o,i,v,t='<svg><symbol id="icon-arrow-right-bold" viewBox="0 0 1024 1024"><path d="M731.733333 480l-384-341.333333c-17.066667-14.933333-44.8-14.933333-59.733333 4.266666-14.933333 17.066667-14.933333 44.8 4.266667 59.733334L640 512 292.266667 821.333333c-17.066667 14.933333-19.2 42.666667-4.266667 59.733334 8.533333 8.533333 19.2 14.933333 32 14.933333 10.666667 0 19.2-4.266667 27.733333-10.666667l384-341.333333c8.533333-8.533333 14.933333-19.2 14.933334-32s-4.266667-23.466667-14.933334-32z" ></path></symbol><symbol id="icon-arrow-up-filling" viewBox="0 0 1024 1024"><path d="M541.866667 285.866667l345.6 345.6c17.066667 17.066667 17.066667 42.666667 0 59.733333-8.533333 8.533333-19.2 12.8-29.866667 12.8H168.533333c-23.466667 0-42.666667-19.2-42.666666-42.666667 0-10.666667 4.266667-21.333333 12.8-29.866666l343.466666-345.6c17.066667-17.066667 42.666667-17.066667 59.733334 0z" ></path></symbol><symbol id="icon-arrow-down-filling" viewBox="0 0 1024 1024"><path d="M482.133333 738.133333L136.533333 392.533333c-17.066667-17.066667-17.066667-42.666667 0-59.733333 8.533333-8.533333 19.2-12.8 29.866667-12.8h689.066667c23.466667 0 42.666667 19.2 42.666666 42.666667 0 10.666667-4.266667 21.333333-12.8 29.866666L541.866667 738.133333c-17.066667 17.066667-42.666667 17.066667-59.733334 0z" ></path></symbol><symbol id="icon-arrow-left-filling" viewBox="0 0 1024 1024"><path d="M268.8 480L633.6 149.333333c17.066667-14.933333 44.8-14.933333 59.733333 2.133334 6.4 8.533333 10.666667 19.2 10.666667 29.866666v661.333334c0 23.466667-19.2 42.666667-42.666667 42.666666-10.666667 0-21.333333-4.266667-27.733333-10.666666l-362.666667-330.666667c-17.066667-14.933333-19.2-42.666667-2.133333-59.733333-2.133333-2.133333 0-2.133333 0-4.266667z" ></path></symbol><symbol id="icon-arrow-right-filling" viewBox="0 0 1024 1024"><path d="M755.2 544L390.4 874.666667c-17.066667 14.933333-44.8 14.933333-59.733333-2.133334-6.4-8.533333-10.666667-19.2-10.666667-29.866666v-661.333334c0-23.466667 19.2-42.666667 42.666667-42.666666 10.666667 0 21.333333 4.266667 27.733333 10.666666l362.666667 330.666667c17.066667 14.933333 19.2 42.666667 2.133333 59.733333 2.133333 2.133333 0 2.133333 0 4.266667z" ></path></symbol><symbol id="icon-Appstore" viewBox="0 0 1024 1024"><path d="M457.159111 91.505778H109.710222a18.346667 18.346667 0 0 0-18.261333 18.289778v347.420444c0 10.040889 8.220444 18.289778 18.261333 18.289778h347.448889c10.040889 0 18.289778-8.248889 18.289778-18.289778V109.795556a18.346667 18.346667 0 0 0-18.289778-18.289778z m-59.448889 306.289778H169.159111V169.216h228.551111v228.579556zM914.318222 91.505778H566.897778a18.346667 18.346667 0 0 0-18.289778 18.289778v347.420444c0 10.040889 8.248889 18.289778 18.289778 18.289778h347.420444c10.069333 0 18.289778-8.248889 18.289778-18.289778V109.795556a18.346667 18.346667 0 0 0-18.289778-18.289778z m-59.448889 306.289778h-228.551111V169.216h228.579556v228.579556z m-397.681777 150.840888H109.710222a18.346667 18.346667 0 0 0-18.261333 18.289778v347.420445c0 10.069333 8.220444 18.289778 18.261333 18.289777h347.448889c10.040889 0 18.289778-8.248889 18.289778-18.289777V566.926222a18.346667 18.346667 0 0 0-18.289778-18.289778z m-59.448889 306.289778H169.159111V626.346667h228.551111v228.579555z m516.579555-306.289778H566.897778a18.346667 18.346667 0 0 0-18.289778 18.289778v347.420445c0 10.069333 8.248889 18.289778 18.289778 18.289777h347.420444c10.069333 0 18.289778-8.248889 18.289778-18.289777V566.926222a18.346667 18.346667 0 0 0-18.289778-18.289778z m-59.448889 306.289778h-228.551111V626.346667h228.579556v228.579555z" ></path></symbol><symbol id="icon-AppstoreAdd" viewBox="0 0 1024 1024"><path d="M457.187556 91.505778H109.795556a18.346667 18.346667 0 0 0-18.289778 18.289778v347.420444c0 10.040889 8.248889 18.289778 18.289778 18.289778h347.420444c10.069333 0 18.289778-8.248889 18.289778-18.289778V109.795556a18.346667 18.346667 0 0 0-18.289778-18.289778z m-59.420445 306.289778H169.187556V169.216h228.579555v228.579556z m516.551111-306.289778H566.897778a18.346667 18.346667 0 0 0-18.261334 18.289778v347.420444c0 10.040889 8.220444 18.289778 18.261334 18.289778h347.448889c10.040889 0 18.261333-8.248889 18.261333-18.289778V109.795556a18.346667 18.346667 0 0 0-18.261333-18.289778z m-59.420444 306.289778H626.346667V169.216h228.551111v228.579556z m59.448889 150.840888H566.897778a18.346667 18.346667 0 0 0-18.261334 18.289778v347.420445c0 10.069333 8.220444 18.289778 18.261334 18.289777h347.448889c10.040889 0 18.261333-8.248889 18.261333-18.289777V566.926222a18.346667 18.346667 0 0 0-18.261333-18.289778z m-59.448889 306.289778H626.346667V626.346667h228.551111v228.579555z m-443.420445-114.289778H265.187556v-146.289777a9.159111 9.159111 0 0 0-9.130667-9.130667H201.187556a9.159111 9.159111 0 0 0-9.130667 9.130667v146.289777H45.767111a9.159111 9.159111 0 0 0-9.130667 9.159112v54.840888c0 5.034667 4.096 9.159111 9.130667 9.159112h146.289778v146.261333c0 5.034667 4.096 9.159111 9.130667 9.159111h54.869333a9.159111 9.159111 0 0 0 9.130667-9.159111V813.795556h146.289777a9.159111 9.159111 0 0 0 9.159111-9.159112V749.795556a9.159111 9.159111 0 0 0-9.159111-9.159112z" ></path></symbol><symbol id="icon-Audit" viewBox="0 0 1024 1024"><path d="M265.159111 212.366222a9.159111 9.159111 0 0 0-9.130667 9.130667v54.869333c0 5.034667 4.124444 9.130667 9.130667 9.130667h438.869333a9.159111 9.159111 0 0 0 9.130667-9.130667V221.496889a9.159111 9.159111 0 0 0-9.130667-9.130667H265.159111z m210.289778 164.579556H265.159111a9.159111 9.159111 0 0 0-9.130667 9.130666v54.869334c0 5.006222 4.124444 9.130667 9.130667 9.130666h210.289778a9.159111 9.159111 0 0 0 9.159111-9.130666v-54.869334a9.159111 9.159111 0 0 0-9.159111-9.130666z m-54.840889 523.406222h-256V95.800889h640v365.710222c0 5.034667 4.096 9.130667 9.130667 9.130667h64a9.159111 9.159111 0 0 0 9.159111-9.130667V50.062222c0-20.252444-16.355556-36.579556-36.579556-36.579555H118.897778c-20.252444 0-36.579556 16.327111-36.579556 36.579555v896c0 20.195556 16.327111 36.551111 36.579556 36.551111h301.710222a9.159111 9.159111 0 0 0 9.130667-9.130666v-64a9.159111 9.159111 0 0 0-9.130667-9.159111z m502.840889-100.551111H758.897778v-41.813333a128 128 0 0 0 91.448889-122.766223c0-70.741333-57.258667-128-128-128a127.943111 127.943111 0 0 0-128 128 128.113778 128.113778 0 0 0 91.420444 122.737778v41.813333h-164.579555a18.346667 18.346667 0 0 0-18.261334 18.289778v173.738667c0 10.040889 8.220444 18.261333 18.261334 18.261333h402.289777c10.069333 0 18.289778-8.220444 18.289778-18.261333V818.062222a18.346667 18.346667 0 0 0-18.289778-18.261333z m-258.275556-164.579556a57.173333 57.173333 0 1 1 114.346667 0.028445 57.173333 57.173333 0 0 1-114.346667-0.028445z m205.710223 303.985778H573.752889v-68.551111h297.130667v68.551111z" ></path></symbol><symbol id="icon-Block" viewBox="0 0 1024 1024"><path d="M905.130667 356.494222h-237.710223V118.784a18.346667 18.346667 0 0 0-18.289777-18.289778H118.840889a18.346667 18.346667 0 0 0-18.289778 18.289778V649.102222c0 10.069333 8.248889 18.289778 18.289778 18.289778h237.710222v237.710222c0 10.069333 8.248889 18.289778 18.289778 18.289778h530.289778c10.069333 0 18.289778-8.248889 18.289777-18.289778V374.784a18.346667 18.346667 0 0 0-18.289777-18.289778z m-548.579556 18.289778v214.869333H178.289778V178.204444h411.420444v178.289778h-214.869333a18.346667 18.346667 0 0 0-18.289778 18.289778z m233.159111 59.448889v155.420444h-155.420444v-155.448889h155.420444z m256 411.420444H434.289778v-178.289777h214.840889c10.069333 0 18.289778-8.248889 18.289777-18.289778v-214.869334h178.289778V845.653333z" ></path></symbol><symbol id="icon-CloudDownload" viewBox="0 0 1024 1024"><path d="M640 734.065778h-84.679111V457.102222a9.159111 9.159111 0 0 0-9.159111-9.130666h-68.551111a9.159111 9.159111 0 0 0-9.159111 9.130666v276.935111H384a9.102222 9.102222 0 0 0-7.196444 14.734223l128 161.934222a9.130667 9.130667 0 0 0 14.392888 0l128-161.934222a9.102222 9.102222 0 0 0-7.196444-14.734223z" ></path><path d="M854.186667 345.742222C801.848889 207.644444 668.444444 109.511111 512.227556 109.511111S222.634667 207.559111 170.296889 345.6A228.693333 228.693333 0 0 0 0 566.670222a228.494222 228.494222 0 0 0 228.465778 228.579556h45.795555a9.159111 9.159111 0 0 0 9.159111-9.159111v-68.551111a9.159111 9.159111 0 0 0-9.130666-9.159112H228.465778a140.885333 140.885333 0 0 1-101.717334-43.064888 141.653333 141.653333 0 0 1-39.879111-103.537778 140.600889 140.600889 0 0 1 29.923556-82.403556 143.217778 143.217778 0 0 1 75.548444-49.948444l43.320889-11.320889 15.872-41.813333a280.632889 280.632889 0 0 1 100.693334-129.479112 276.707556 276.707556 0 0 1 160-50.545777c57.742222 0 113.038222 17.493333 160 50.517333a280.832 280.832 0 0 1 100.693333 129.479111l15.758222 41.728 43.207111 11.434667a142.364444 142.364444 0 0 1 105.244445 137.244444c0 37.831111-14.734222 73.500444-41.472 100.238222a140.572444 140.572444 0 0 1-100.124445 41.472h-45.795555a9.159111 9.159111 0 0 0-9.159111 9.159112v68.551111c0 5.034667 4.096 9.159111 9.130666 9.159111h45.824A228.494222 228.494222 0 0 0 1024 566.641778a228.608 228.608 0 0 0-169.813333-220.899556z" ></path></symbol><symbol id="icon-CloudUpload" viewBox="0 0 1024 1024"><path d="M519.224889 451.498667a9.102222 9.102222 0 0 0-11.207111-2.56 9.130667 9.130667 0 0 0-3.214222 2.56l-128 161.962666a9.102222 9.102222 0 0 0 7.224888 14.734223h84.451556v277.048888c0 5.006222 4.096 9.102222 9.130667 9.102223h68.551111a9.159111 9.159111 0 0 0 9.159111-9.102223v-276.935111H640a9.102222 9.102222 0 0 0 7.224889-14.734222l-128-162.076444z" ></path><path d="M854.186667 345.742222C801.848889 207.644444 668.444444 109.511111 512.227556 109.511111S222.634667 207.559111 170.296889 345.6A228.693333 228.693333 0 0 0 0 566.670222a228.494222 228.494222 0 0 0 228.465778 228.579556h45.795555a9.159111 9.159111 0 0 0 9.159111-9.159111v-68.551111a9.159111 9.159111 0 0 0-9.130666-9.159112H228.465778a140.885333 140.885333 0 0 1-101.717334-43.064888 141.653333 141.653333 0 0 1-39.879111-103.537778 140.600889 140.600889 0 0 1 29.923556-82.403556 143.217778 143.217778 0 0 1 75.548444-49.948444l43.320889-11.320889 15.872-41.813333a280.632889 280.632889 0 0 1 100.693334-129.479112 276.707556 276.707556 0 0 1 160-50.545777c57.742222 0 113.038222 17.493333 160 50.517333a280.832 280.832 0 0 1 100.693333 129.479111l15.758222 41.728 43.207111 11.434667a142.364444 142.364444 0 0 1 105.244445 137.244444c0 37.831111-14.734222 73.500444-41.472 100.238222a140.572444 140.572444 0 0 1-100.124445 41.472h-45.795555a9.159111 9.159111 0 0 0-9.159111 9.159112v68.551111c0 5.034667 4.096 9.159111 9.130666 9.159111h45.824A228.494222 228.494222 0 0 0 1024 566.641778a228.608 228.608 0 0 0-169.813333-220.899556z" ></path></symbol><symbol id="icon-CloudSync" viewBox="0 0 1024 1024"><path d="M854.19008 348.444444c-52.337778-138.154667-185.742222-236.458667-341.959111-236.458666S222.63808 210.204444 170.300302 348.387556A228.977778 228.977778 0 0 0 0.003413 570.936889c0.682667 119.324444 93.269333 216.348444 209.834667 226.759111a9.159111 9.159111 0 0 0 9.955556-9.159111v-69.034667a9.102222 9.102222 0 0 0-8.021334-9.016889 142.535111 142.535111 0 0 1-82.403555-39.424 140.856889 140.856889 0 0 1-42.496-101.262222c0-32 10.382222-62.179556 29.923555-87.324444a142.336 142.336 0 0 1 75.548445-49.92l43.320889-11.434667 15.872-41.955556a281.230222 281.230222 0 0 1 100.693333-129.706666 276.707556 276.707556 0 0 1 160-50.517334c57.742222 0 113.038222 17.493333 160 50.631112a278.641778 278.641778 0 0 1 59.875555 57.144888 275.541333 275.541333 0 0 1 40.817778 72.561778l15.758222 41.813334 43.235556 11.463111a141.937778 141.937778 0 0 1 105.244444 137.130666c0 38.4-15.075556 74.410667-42.524444 101.262223a142.250667 142.250667 0 0 1-82.176 39.424 9.016889 9.016889 0 0 0-7.879111 9.016888v69.148445c0 5.404444 4.693333 9.614222 10.040889 9.159111 116.252444-10.524444 208.583111-107.434667 209.379555-226.531556a228.977778 228.977778 0 0 0-169.813333-222.72z" ></path><path d="M357.606969 677.262222c2.076444-38.286222 17.948444-73.955556 45.141333-101.262222a154.908444 154.908444 0 0 1 109.710222-45.482667 154.168889 154.168889 0 0 1 109.738667 45.511111c1.592889 1.564444 3.072 3.185778 4.664889 4.892445l-28.558222 22.414222a9.159111 9.159111 0 0 0 3.413333 16.099556l112.241778 27.420444c5.688889 1.393778 11.320889-2.958222 11.320889-8.789333l0.568889-115.768889a9.102222 9.102222 0 0 0-14.734223-7.196445l-26.538666 20.792889a227.498667 227.498667 0 0 0-172.003556-78.392889c-122.737778 0-222.833778 97.251556-227.868444 219.079112a9.102222 9.102222 0 0 0 9.130666 9.472h54.755556a9.244444 9.244444 0 0 0 9.016889-8.789334z m372.679111 8.675556H675.558969a9.244444 9.244444 0 0 0-9.159111 8.704 154.510222 154.510222 0 0 1-45.141334 101.262222 154.908444 154.908444 0 0 1-109.710222 45.482667 154.168889 154.168889 0 0 1-109.710222-45.511111c-1.592889-1.592889-3.072-3.185778-4.693333-4.892445l28.586666-22.414222a9.102222 9.102222 0 0 0-3.413333-16.099556l-112.241778-27.448889a9.159111 9.159111 0 0 0-11.320889 8.817778l-0.455111 115.882667c0 7.68 8.675556 12.003556 14.734222 7.196444l26.510223-20.792889a227.498667 227.498667 0 0 0 172.003555 78.392889c122.737778 0 222.862222-97.251556 227.896889-219.079111a9.102222 9.102222 0 0 0-9.159111-9.500444z" ></path></symbol><symbol id="icon-Export" viewBox="0 0 1024 1024"><path d="M942.051556 792.32h-61.496889c-4.807111 0-8.817778 3.982222-8.817778 8.817778v70.599111h-719.644445V151.978667h719.786667v70.627555c0 4.807111 3.982222 8.817778 8.789333 8.817778h61.496889a8.817778 8.817778 0 0 0 8.789334-8.817778V108.088889c0-19.427556-15.644444-35.072-35.072-35.072H108.202667c-19.427556 0-35.072 15.644444-35.072 35.072v807.537778c0 19.427556 15.644444 35.100444 35.072 35.100444h807.537777c19.427556 0 35.100444-15.644444 35.100445-35.100444v-114.517334a8.817778 8.817778 0 0 0-8.817778-8.789333z m21.248-287.658667l-162.161778-128a9.159111 9.159111 0 0 0-14.876445 7.196445v86.869333H427.406222a9.159111 9.159111 0 0 0-9.130666 9.130667v64c0 5.034667 4.096 9.159111 9.130666 9.159111h358.855111v86.840889c0 7.68 8.931556 12.003556 14.876445 7.196444l162.133333-128a9.159111 9.159111 0 0 0 0-14.392889z" ></path></symbol><symbol id="icon-Flag" viewBox="0 0 1024 1024"><path d="M932.579556 275.569778H640.028444v-129.137778c0-20.224-16.355556-36.579556-36.579555-36.579556H137.159111V64.142222a9.159111 9.159111 0 0 0-9.130667-9.159111H64a9.159111 9.159111 0 0 0-9.159111 9.159111v896c0 5.034667 4.124444 9.130667 9.159111 9.130667H128a9.159111 9.159111 0 0 0 9.130667-9.130667V658.432h283.420444v129.137778c0 20.224 16.355556 36.579556 36.579556 36.579555h475.420444c20.252444 0 36.579556-16.355556 36.579556-36.579555V312.149333c0-20.252444-16.355556-36.579556-36.579556-36.579555zM137.159111 576.142222v-384h420.579556v384H137.159111zM886.897778 741.831111h-384v-83.427555h128a9.159111 9.159111 0 0 0 9.159111-9.159112V357.859556h246.840889v384z" ></path></symbol><symbol id="icon-Gateway" viewBox="0 0 1024 1024"><path d="M987.448889 374.869333c10.069333 0 18.289778-8.248889 18.289778-18.289777V146.289778a18.346667 18.346667 0 0 0-18.289778-18.289778h-210.289778a18.346667 18.346667 0 0 0-18.261333 18.289778v64H265.159111v-64A18.346667 18.346667 0 0 0 246.897778 128H36.608a18.346667 18.346667 0 0 0-18.289778 18.289778v210.289778c0 10.040889 8.248889 18.289778 18.289778 18.289777h64v274.261334h-64a18.346667 18.346667 0 0 0-18.289778 18.289777v210.289778c0 10.069333 8.248889 18.289778 18.289778 18.289778H246.897778c10.040889 0 18.261333-8.248889 18.261333-18.289778v-64H758.897778v64c0 10.069333 8.220444 18.289778 18.261333 18.289778h210.289778c10.069333 0 18.289778-8.248889 18.289778-18.289778v-210.289778a18.346667 18.346667 0 0 0-18.289778-18.289777h-64V374.897778h64zM832.028444 201.102222h100.579556v100.579556H832V201.130667zM91.448889 301.710222V201.130667h100.579555v100.579555H91.448889zM192.028444 822.897778H91.448889v-100.579556h100.579555v100.579556z m740.579556-100.579556v100.579556H832v-100.579556h100.579556z m-91.448889-73.159111h-64a18.346667 18.346667 0 0 0-18.261333 18.289778v64H265.159111v-64a18.346667 18.346667 0 0 0-18.261333-18.289778H182.897778V374.897778h64c10.040889 0 18.261333-8.248889 18.261333-18.289778v-64H758.897778v64c0 10.040889 8.220444 18.289778 18.261333 18.289778h64v274.261333z" ></path></symbol><symbol id="icon-Home" viewBox="0 0 1036 1024"><path d="M1014.646898 503.921778L573.046898 62.577778l-29.582222-29.582222a36.010667 36.010667 0 0 0-50.773334 0L21.50912 503.921778a73.016889 73.016889 0 0 0-21.504 52.593778c0.455111 40.220444 33.934222 72.334222 74.183111 72.334222h48.554667v372.224H913.384676V628.849778h49.607111a72.817778 72.817778 0 0 0 51.768889-21.475556 72.675556 72.675556 0 0 0 21.361777-51.768889c0-19.456-7.68-37.831111-21.475555-51.683555zM582.063787 918.784h-128v-233.130667h128V918.755556z m249.031111-372.224v372.224h-175.900445v-260.551111c0-25.258667-20.451556-45.738667-45.710222-45.738667h-182.840889c-25.258667 0-45.710222 20.48-45.710222 45.710222v260.579556H205.032676V546.56H95.322453L518.177564 124.046222l26.396445 26.396445 396.344889 396.117333h-109.824z" ></path></symbol><symbol id="icon-Interaction" viewBox="0 0 1024 1024"><path d="M932.579556 54.983111H91.448889c-20.224 0-36.579556 16.355556-36.579556 36.579556v841.159111c0 20.195556 16.355556 36.551111 36.579556 36.551111h841.130667c20.252444 0 36.579556-16.327111 36.579555-36.551111V91.562667c0-20.224-16.355556-36.579556-36.579555-36.579556z m-45.710223 832H137.159111V137.272889h749.710222v749.710222zM275.228444 525.852444h57.941334c4.209778 0 7.765333-3.413333 7.765333-7.765333v-90.168889c0-22.528 18.176-40.675556 40.561778-40.675555h235.093333v61.013333a7.68 7.68 0 0 0 12.458667 6.058667l124.672-97.962667a7.736889 7.736889 0 0 0 0-12.231111l-124.672-97.934222a7.68 7.68 0 0 0-12.458667 6.058666v61.041778h-235.207111a114.119111 114.119111 0 0 0-113.948444 114.403556v90.168889c0 4.551111 3.413333 7.992889 7.793777 7.992888z m-4.835555 154.168889l124.700444 97.934223a7.68 7.68 0 0 0 12.458667-6.058667v-61.013333h235.093333c62.976 0 113.948444-51.2 113.948445-114.403556V506.311111a7.765333 7.765333 0 0 0-7.765334-7.765333h-57.969777a7.765333 7.765333 0 0 0-7.765334 7.765333v90.168889c0 22.528-18.176 40.675556-40.561777 40.675556h-234.951112v-61.013334a7.68 7.68 0 0 0-12.487111-6.058666l-124.672 97.934222c-3.982222 2.844444-3.982222 8.931556 0 12.003555z" ></path></symbol><symbol id="icon-Gold" viewBox="0 0 1024 1024"><path d="M317.724444 466.204444h390.826667c0.483556 0 1.052444 0 1.507556-0.113777a9.102222 9.102222 0 0 0 7.537777-10.524445l-45.937777-283.420444a9.102222 9.102222 0 0 0-9.016889-7.651556H363.662222a9.102222 9.102222 0 0 0-9.016889 7.68l-45.966222 283.420445c-0.113778 0.455111-0.113778 1.024-0.113778 1.479111 0 5.034667 4.124444 9.130667 9.159111 9.130666z m104.220445-224h182.300444l23.637334 146.289778h-229.717334l23.779556-146.289778z m2.844444 323.100445a9.102222 9.102222 0 0 0-9.016889-7.68H116.821333a9.102222 9.102222 0 0 0-9.045333 7.68l-45.937778 283.420444c-0.113778 0.455111-0.113778 1.024-0.113778 1.479111 0 5.034667 4.096 9.159111 9.130667 9.159112h390.855111c0.455111 0 1.052444 0 1.507556-0.113778a9.102222 9.102222 0 0 0 7.537778-10.524445l-45.966223-283.420444z m-273.351111 216.348444l23.665778-146.289777h182.272l23.665778 146.289777H151.438222z m810.752 67.072l-45.966222-283.420444a9.102222 9.102222 0 0 0-9.016889-7.68h-298.951111a9.102222 9.102222 0 0 0-9.045333 7.68l-45.937778 283.420444c-0.113778 0.455111-0.113778 1.024-0.113778 1.479111 0 5.034667 4.096 9.159111 9.130667 9.159112h390.855111c0.455111 0 1.024 0 1.479111-0.113778a9.187556 9.187556 0 0 0 7.566222-10.524445zM642.844444 781.653333l23.637334-146.289777h182.300444l23.637334 146.289777h-229.575112z" ></path></symbol><symbol id="icon-Login" viewBox="0 0 1024 1024"><path d="M523.093333 20.622222A491.633778 491.633778 0 0 0 107.776 246.556444a9.130667 9.130667 0 0 0 7.68 14.08h80.327111a18.005333 18.005333 0 0 0 14.051556-6.627555c7.992889-9.728 16.583111-19.086222 25.6-28.017778A404.366222 404.366222 0 0 1 521.841778 107.52c54.727111 0 107.747556 10.609778 157.582222 31.772444a404.394667 404.394667 0 0 1 128.796444 86.755556 403.768889 403.768889 0 0 1 86.869334 128.568889 400.611556 400.611556 0 0 1 31.772444 157.468444 402.631111 402.631111 0 0 1-118.613333 286.065778 404.394667 404.394667 0 0 1-128.824889 86.755556 403.2 403.2 0 0 1-157.582222 31.744 404.394667 404.394667 0 0 1-286.407111-118.528 452.494222 452.494222 0 0 1-25.6-27.989334 18.176 18.176 0 0 0-14.051556-6.627555H115.427556a9.102222 9.102222 0 0 0-7.651556 14.051555c87.552 135.907556 240.213333 225.962667 414.065778 225.962667 269.937778 0 489.130667-217.258667 491.889778-486.4 2.730667-273.493333-216.803556-495.786667-490.666667-496.469333zM378.311111 640.056889v-86.869333H19.456a9.159111 9.159111 0 0 1-9.130667-9.130667v-64c0-5.034667 4.096-9.159111 9.130667-9.159111H378.311111v-86.840889c0-7.68 8.903111-12.003556 14.848-7.196445l162.190222 128a9.159111 9.159111 0 0 1 0 14.392889l-162.190222 128a9.216 9.216 0 0 1-14.848-7.196444z" ></path></symbol><symbol id="icon-Logout" viewBox="0 0 1024 1024"><path d="M918.869333 763.477333H838.542222a18.005333 18.005333 0 0 0-14.08 6.627556 368.924444 368.924444 0 0 1-25.6 28.017778 404.423111 404.423111 0 0 1-128.796444 86.755555 403.2 403.2 0 0 1-157.582222 31.744c-54.755556 0-107.804444-10.752-157.610667-31.772444a404.423111 404.423111 0 0 1-128.796445-86.755556 403.740444 403.740444 0 0 1-86.869333-128.568889 400.611556 400.611556 0 0 1-31.772444-157.468444 402.631111 402.631111 0 0 1 118.613333-286.065778 404.394667 404.394667 0 0 1 128.824889-86.755555 403.2 403.2 0 0 1 157.582222-31.744c54.755556 0 107.804444 10.609778 157.610667 31.772444a404.394667 404.394667 0 0 1 128.796444 86.755556c9.045333 9.016889 17.493333 18.375111 25.6 27.989333 3.413333 4.209778 8.704 6.627556 14.08 6.627555h80.327111a9.102222 9.102222 0 0 0 7.68-14.08A491.633778 491.633778 0 0 0 511.203556 20.622222C237.368889 21.333333 17.834667 243.598222 20.565333 517.12c2.759111 269.141333 221.952 486.4 491.918223 486.4 173.795556 0 326.513778-90.055111 414.037333-225.962667a9.102222 9.102222 0 0 0-7.651556-14.051555z m101.603556-258.616889l-162.161778-128a9.159111 9.159111 0 0 0-14.876444 7.196445v86.840889H484.579556a9.159111 9.159111 0 0 0-9.130667 9.159111v64c0 5.034667 4.124444 9.130667 9.130667 9.130667h358.855111v86.869333c0 7.68 8.931556 12.003556 14.876444 7.196444l162.161778-128a9.159111 9.159111 0 0 0 0-14.392889z" ></path></symbol><symbol id="icon-Import" viewBox="0 0 1024 1024"><path d="M942.051556 792.32h-61.496889c-4.807111 0-8.817778 3.982222-8.817778 8.817778v70.599111h-719.644445V151.978667h719.786667v70.627555c0 4.807111 3.982222 8.817778 8.789333 8.817778h61.496889a8.817778 8.817778 0 0 0 8.789334-8.817778V108.088889c0-19.427556-15.644444-35.072-35.072-35.072H108.202667c-19.427556 0-35.072 15.644444-35.072 35.072v807.537778c0 19.427556 15.644444 35.100444 35.072 35.100444h807.537777c19.427556 0 35.100444-15.644444 35.100445-35.100444v-114.517334a8.817778 8.817778 0 0 0-8.817778-8.817777z m15.644444-321.592889H598.840889v-86.869333a9.159111 9.159111 0 0 0-14.848-7.196445l-162.190222 128a9.159111 9.159111 0 0 0 0 14.392889l162.190222 128a9.159111 9.159111 0 0 0 14.848-7.196444v-86.840889h358.855111a9.159111 9.159111 0 0 0 9.130667-9.159111v-64a9.159111 9.159111 0 0 0-9.130667-9.130667z" ></path></symbol><symbol id="icon-Plus" viewBox="0 0 1024 1024"><path d="M477.696 100.636444h68.579556c6.087111 0 9.159111 3.043556 9.159111 9.130667v804.579556c0 6.087111-3.072 9.130667-9.159111 9.130666h-68.551112c-6.115556 0-9.159111-3.043556-9.159111-9.130666V109.767111c0-6.087111 3.043556-9.130667 9.130667-9.130667z" ></path><path d="M128 468.622222h768c6.115556 0 9.159111 3.043556 9.159111 9.159111v68.551111c0 6.115556-3.043556 9.159111-9.130667 9.159112h-768c-6.115556 0-9.159111-3.043556-9.159111-9.159112v-68.551111c0-6.115556 3.043556-9.159111 9.159111-9.159111z" ></path></symbol><symbol id="icon-Partition" viewBox="0 0 1024 1024"><path d="M659.000889 418.133333h293.831111a16.327111 16.327111 0 0 0 16.327111-16.355555V107.832889a16.327111 16.327111 0 0 0-16.355555-16.327111h-293.831112a16.327111 16.327111 0 0 0-16.327111 16.327111v106.183111h-155.079111a8.135111 8.135111 0 0 0-8.106666 8.106667v253.155555h-97.962667V364.942222a16.327111 16.327111 0 0 0-16.327111-16.327111H71.224889a16.327111 16.327111 0 0 0-16.355556 16.327111v293.944889c0 9.045333 7.310222 16.355556 16.355556 16.355556h293.831111a16.327111 16.327111 0 0 0 16.327111-16.355556v-110.279111h97.962667v253.155556c0 4.437333 3.640889 8.106667 8.106666 8.106666h155.079112v106.183111c0 9.016889 7.310222 16.327111 16.355555 16.327111h293.831111a16.327111 16.327111 0 0 0 16.327111-16.355555V622.364444a16.327111 16.327111 0 0 0-16.355555-16.355555H659.000889a16.327111 16.327111 0 0 0-16.355556 16.355555v114.289778h-89.827555v-449.137778h89.827555v114.261334c0 9.045333 7.310222 16.355556 16.355556 16.355555z m61.155555-249.031111h171.406223v171.52h-171.434667v-171.52z m-416.256 428.657778H132.465778V426.382222h171.434666v171.434667z m416.227556 85.845333h171.434667v171.548445h-171.434667v-171.52z" ></path></symbol><symbol id="icon-Picture" viewBox="0 0 1024 1024"><path d="M987.420444 109.511111H36.579556C16.355556 109.511111 0 125.838222 0 146.090667V877.511111c0 20.224 16.355556 36.579556 36.579556 36.579556h950.840888c20.224 0 36.579556-16.355556 36.579556-36.579556V146.090667c0-20.252444-16.355556-36.579556-36.579556-36.579556z m-45.710222 722.289778H82.289778V786.204444l158.293333-187.790222 171.52 203.434667 266.865778-316.330667 262.741333 311.523556v34.759111z m0-148.337778l-255.772444-303.331555a9.102222 9.102222 0 0 0-13.937778 0l-259.896889 308.110222-164.551111-195.072a9.102222 9.102222 0 0 0-13.937778 0l-151.324444 179.427555V191.800889h859.420444v491.662222zM274.289778 447.772444a100.551111 100.551111 0 1 0 0-201.130666 100.551111 100.551111 0 0 0 0 201.102222z m0-132.579555c17.720889 0 32 14.279111 32 32s-14.279111 32-32 32a31.943111 31.943111 0 0 1-32-32c0-17.720889 14.279111-32 32-32z" ></path></symbol><symbol id="icon-PieChart" viewBox="0 0 1024 1024"><path d="M914.261333 518.741333H505.116444V109.596444a9.159111 9.159111 0 0 0-9.130666-9.130666h-29.724445A455.395556 455.395556 0 0 0 143.075556 234.296889a455.111111 455.111111 0 0 0-97.962667 145.265778 454.428444 454.428444 0 0 0-35.982222 178.062222 455.395556 455.395556 0 0 0 133.831111 323.185778 455.111111 455.111111 0 0 0 145.237333 97.934222c56.32 23.893333 116.906667 36.124444 178.062222 36.010667a455.395556 455.395556 0 0 0 323.214223-133.831112 455.111111 455.111111 0 0 0 97.934222-145.265777c23.864889-56.32 36.124444-116.878222 36.010666-178.062223V527.928889a9.159111 9.159111 0 0 0-9.159111-9.159111z m-180.906666 308.337778a379.022222 379.022222 0 0 1-268.913778 109.966222 376.974222 376.974222 0 0 1-266.524445-111.104 376.974222 376.974222 0 0 1-111.075555-268.316444c0-101.376 39.424-196.693333 111.075555-268.344889a376.120889 376.120889 0 0 1 229.489778-109.169778V596.48h416.341334a376.32 376.32 0 0 1-110.392889 230.656z m281.486222-371.882667l-2.958222-32.227555a454.627556 454.627556 0 0 0-131.697778-279.523556 456.448 456.448 0 0 0-280.177778-131.413333L567.608889 9.016889a9.073778 9.073778 0 0 0-9.955556 9.016889v438.983111c0 5.006222 4.124444 9.130667 9.159111 9.130667l438.840889-1.137778a9.102222 9.102222 0 0 0 9.159111-9.841778z m-379.648-66.503111V95.431111a379.733333 379.733333 0 0 1 190.151111 102.627556 377.315556 377.315556 0 0 1 102.855111 189.838222l-293.006222 0.796444z" ></path></symbol><symbol id="icon-Solution" viewBox="0 0 1024 1024"><path d="M713.159111 228.352a9.159111 9.159111 0 0 0-9.130667-9.130667H265.159111a9.159111 9.159111 0 0 0-9.130667 9.130667v54.869333c0 5.034667 4.124444 9.130667 9.130667 9.130667h438.869333a9.159111 9.159111 0 0 0 9.130667-9.130667V228.352z m-9.130667 155.448889H265.159111a9.159111 9.159111 0 0 0-9.130667 9.130667v54.869333c0 5.006222 4.124444 9.130667 9.130667 9.130667h438.869333a9.159111 9.159111 0 0 0 9.130667-9.130667v-54.869333a9.159111 9.159111 0 0 0-9.130667-9.130667z m-228.579555 164.551111H265.159111a9.159111 9.159111 0 0 0-9.130667 9.159111v54.840889c0 5.034667 4.124444 9.159111 9.130667 9.159111h210.289778a9.159111 9.159111 0 0 0 9.159111-9.159111V557.511111a9.159111 9.159111 0 0 0-9.159111-9.159111z m-54.840889 352h-256V95.800889h640v393.130667c0 5.034667 4.096 9.159111 9.130667 9.159111h64a9.159111 9.159111 0 0 0 9.159111-9.159111V50.090667c0-20.252444-16.355556-36.579556-36.579556-36.579556H118.897778c-20.252444 0-36.579556 16.327111-36.579556 36.579556v896c0 20.195556 16.327111 36.551111 36.579556 36.551111h301.710222a9.159111 9.159111 0 0 0 9.130667-9.130667v-64a9.159111 9.159111 0 0 0-9.130667-9.159111z m407.751111-85.020444a164.608 164.608 0 0 0-110.648889-286.407112 164.608 164.608 0 0 0-110.592 286.435556 224.597333 224.597333 0 0 0-113.379555 185.230222c-0.227556 5.12 3.982222 9.500444 9.159111 9.500445h54.954666c4.807111 0 8.817778-3.783111 9.159112-8.704a151.125333 151.125333 0 0 1 150.755555-142.165334 151.125333 151.125333 0 0 1 150.727111 142.165334 9.159111 9.159111 0 0 0 9.130667 8.704h54.983111a9.102222 9.102222 0 0 0 9.130667-9.500445c-3.299556-79.416889-48.213333-148.110222-113.379556-185.258666z m-110.620444-213.248a91.392 91.392 0 1 1 0 182.840888 91.392 91.392 0 1 1 0-182.840888z" ></path></symbol><symbol id="icon-340cloudy03" viewBox="0 0 1024 1024"><path d="M512 256c102.4 0 195.2 60.8 233.6 153.6 9.6 22.4 32 38.4 57.6 38.4 86.4 3.2 156.8 73.6 156.8 160 0 89.6-70.4 160-160 160H176h-3.2C115.2 768 64 716.8 64 656S115.2 544 176 544H192c16 0 28.8-6.4 41.6-16s22.4-25.6 22.4-41.6c12.8-131.2 124.8-230.4 256-230.4m0-64c-166.4 0-304 128-320 288h-16c-96 0-176 80-176 176S76.8 832 172.8 832H800c124.8 0 224-99.2 224-224 0-121.6-96-220.8-217.6-224-51.2-112-163.2-192-294.4-192z" ></path><path d="M512 160c25.6 0 51.2 3.2 73.6 9.6 19.2-6.4 35.2-9.6 54.4-9.6 70.4 0 134.4 41.6 160 105.6 9.6 22.4 32 38.4 57.6 38.4 54.4 0 102.4 48 102.4 102.4v9.6c19.2 19.2 35.2 41.6 44.8 67.2 12.8-22.4 19.2-48 19.2-76.8 0-92.8-73.6-166.4-163.2-166.4C822.4 156.8 739.2 96 640 96c-64 0-121.6 25.6-166.4 67.2 12.8-3.2 25.6-3.2 38.4-3.2z" ></path></symbol><symbol id="icon-380" viewBox="0 0 1024 1024"><path d="M915.891 244.506c0-67.021-54.374-121.396-121.395-121.396-67.072 0-121.42 54.375-121.42 121.396 0 56.499 38.758 103.552 91.033 117.12v95.308h-95.335c-13.542-52.275-60.595-91.059-117.068-91.059-56.5 0-103.63 38.784-117.12 91.06H278.579v155.98c-52.25 13.543-91.059 60.621-91.059 117.069 0 67.098 54.349 121.446 121.42 121.446 67.022 0 121.396-54.348 121.396-121.446 0-56.448-38.81-103.603-91.085-117.069v-95.283h95.309c13.491 52.275 60.57 91.034 117.12 91.034 56.474 0 103.578-38.759 117.069-91.034h156.057V361.626c52.301-13.517 91.085-60.621 91.085-117.12M369.638 729.984c0 33.587-27.212 60.774-60.697 60.774-33.536 0-60.723-27.212-60.723-60.774 0-33.46 27.212-60.672 60.723-60.672 33.51 0 60.697 27.213 60.697 60.672m182.068-182.016c-33.536 0-60.724-27.213-60.724-60.698 0-33.536 27.213-60.723 60.724-60.723s60.697 27.213 60.697 60.723-27.187 60.698-60.697 60.698m242.79-242.765c-33.536 0-60.723-27.187-60.723-60.697s27.213-60.698 60.723-60.698 60.698 27.187 60.698 60.698-27.188 60.697-60.698 60.697" ></path></symbol><symbol id="icon-385" viewBox="0 0 1024 1024"><path d="M794.235 846.438V212.48a9.667 9.667 0 0 0-3.38-7.373l-91.668-78.5a9.667 9.667 0 0 0-9.687-1.72L368.968 244.593a9.667 9.667 0 0 0-6.288 9.052v13.599a9.667 9.667 0 0 0 12.944 9.093l272.322-97.751a9.667 9.667 0 0 1 12.944 9.113v703.754c0 5.325 4.32 9.667 9.666 9.667h179.487c5.325 0 9.666-4.321 9.666-9.667v-25.661a9.667 9.667 0 0 0-9.666-9.667h-46.121a9.667 9.667 0 0 1-9.687-9.666zM263.68 651.06l140.677-24.576a9.667 9.667 0 0 0 7.987-9.523v-64.225a9.667 9.667 0 0 0-12.288-9.319L259.4 582.984a9.667 9.667 0 0 0-7.066 9.298v49.274a9.667 9.667 0 0 0 11.346 9.524zM262 901.12h140.698c5.325 0 9.667-4.321 9.667-9.667V826.43a9.667 9.667 0 0 0-10.404-9.625l-140.698 10.67a9.667 9.667 0 0 0-8.929 9.646v54.333c0 5.325 4.342 9.667 9.667 9.667z m0.676-124.723l140.678-9.626a9.667 9.667 0 0 0 9.01-9.666V692.53a9.667 9.667 0 0 0-11.345-9.523l-140.677 24.576a9.667 9.667 0 0 0-7.987 9.544v49.602a9.667 9.667 0 0 0 10.321 9.646z m1.946-250.819l140.698-39.567a9.667 9.667 0 0 0 7.045-9.298v-64.184a9.667 9.667 0 0 0-12.862-9.114l-140.697 49.152a9.667 9.667 0 0 0-6.472 9.155v54.538a9.667 9.667 0 0 0 12.288 9.318zM491.52 265.605L170.127 385.638a9.667 9.667 0 0 0-6.287 9.053v496.783c0 5.325 4.321 9.666 9.667 9.666h25.518c5.324 0 9.666-4.32 9.666-9.666V417.976a9.627 9.627 0 0 1 6.554-9.134l229.171-78.5a9.667 9.667 0 0 1 12.8 9.155v551.936c0 5.366 4.342 9.687 9.667 9.687h113.91a9.667 9.667 0 0 0 9.686-9.769l-5.918-566.21a9.667 9.667 0 0 0-4.506-8.09l-79.995-50.545a9.667 9.667 0 0 0-8.54-0.9z" ></path></symbol><symbol id="icon-icon-test" viewBox="0 0 1024 1024"><path d="M805.088 759.84L589.248 544h305.152a382.144 382.144 0 0 1-89.312 215.84M127.968 512C128 310.72 282.976 145.92 480 129.6V512c0 8.864 3.648 16.864 9.44 22.656l270.4 270.4A382.208 382.208 0 0 1 512 896C299.936 896 128 724.096 128 512m766.4-32H544V129.6A383.68 383.68 0 0 1 894.4 480M512 64C264.96 64 64 264.96 64 512s200.96 448 448 448 448-200.96 448-448S759.04 64 512 64" fill="#181818" ></path></symbol><symbol id="icon-icon-test1" viewBox="0 0 1024 1024"><path d="M544 224h-64v288c0 8.832 3.584 16.832 9.376 22.656l192 191.968 45.248-45.248L544 498.752V224z" fill="#181818" ></path><path d="M512 896C300.256 896 128 723.744 128 512S300.256 128 512 128s384 172.256 384 384-172.256 384-384 384m0-832C264.576 64 64 264.576 64 512s200.576 448 448 448 448-200.576 448-448S759.424 64 512 64" fill="#181818" ></path></symbol><symbol id="icon-icon-test2" viewBox="0 0 1024 1024"><path d="M320 480h384v-64H320zM320 608h256v-64h-256zM320 736h256v-64h-256z" fill="#181818" ></path><path d="M832 160h-128V96H320v64H192c-19.2 0-32 12.8-32 32v704c0 19.2 12.8 32 32 32h640c19.2 0 32-12.8 32-32V192c0-19.2-12.8-32-32-32zM384 160h256v64h-256V160z m416 704H224V224h96v64h384V224h96v640z" fill="#181818" ></path></symbol><symbol id="icon-icon-test5" viewBox="0 0 1024 1024"><path d="M384 768a64 64 0 1 0 0.032 128.032A64 64 0 0 0 384 768M704 768a64 64 0 1 0 0.032 128.032A64 64 0 0 0 704 768M312.672 512l-51.424-192h560.96l-51.456 192H312.672z m583.36-224a32 32 0 0 0-32-32H244.064L209.792 128H96.032v64h64.64l145.728 544H800v-64H355.52l-25.696-96h490.048l12.16-45.376 64-238.88-0.768-0.192C895.424 290.336 896 289.28 896 288z" fill="#181818" ></path><path d="M448 448h192v-64h-192z" fill="#181818" ></path></symbol><symbol id="icon-icon-test6" viewBox="0 0 1024 1024"><path d="M192 448c0-141.152 114.848-256 256-256s256 114.848 256 256-114.848 256-256 256-256-114.848-256-256z m710.624 409.376l-206.88-206.88A318.784 318.784 0 0 0 768 448c0-176.736-143.264-320-320-320S128 271.264 128 448s143.264 320 320 320a318.784 318.784 0 0 0 202.496-72.256l206.88 206.88 45.248-45.248z" fill="#181818" ></path></symbol><symbol id="icon-icon-test7" viewBox="0 0 1024 1024"><path d="M128 896h768v-64H128zM256 704v-146.752l224-224L626.752 480l-224 224H256zM608 205.248L754.752 352 672 434.752 525.248 288 608 205.248z m214.624 169.408l0.032-0.032a32 32 0 0 0 0-45.248l-0.032-0.032-191.968-191.968-0.032-0.032a32 32 0 0 0-45.248 0l-0.032 0.032L192 530.752V768h237.248l393.376-393.344z" fill="#181818" ></path></symbol><symbol id="icon-icon-test8" viewBox="0 0 1024 1024"><path d="M832 128h-192v64h146.752l-265.376 265.376 45.248 45.248L832 237.248V384h64V128z" fill="#181818" ></path><path d="M768 832H192V256h352V192H160a32 32 0 0 0-32 32v640a32 32 0 0 0 32 32h640a32 32 0 0 0 32-32V480h-64v352z" fill="#181818" ></path></symbol><symbol id="icon-icon-test9" viewBox="0 0 1024 1024"><path d="M512 640c-70.592 0-128-57.408-128-128s57.408-128 128-128 128 57.408 128 128-57.408 128-128 128m0-320a192 192 0 0 0 0 384 192 192 0 0 0 0-384" fill="#202020" ></path><path d="M693.216 735.552a291.744 291.744 0 0 1-40.512 27.52c-1.216 0.64-2.368 1.472-3.616 2.144a286.08 286.08 0 0 1-34.048 15.392l-19.552 72.992-9.28 34.592c-0.576 0.128-1.152 0.32-1.76 0.384l-8.736 1.632c-3.52 0.64-7.104 1.088-10.656 1.6a357.152 357.152 0 0 1-53.056 3.744c-5.216 0-10.464-0.128-15.68-0.32l-8.64-0.48a355.936 355.936 0 0 1-28.736-2.944c-3.52-0.512-7.072-0.96-10.624-1.6a418.496 418.496 0 0 1-8.736-1.6l-1.76-0.416-9.28-34.56-19.584-73.024a286.784 286.784 0 0 1-47.84-23.776 287.488 287.488 0 0 1-30.304-21.28l-72.96 19.552-34.56 9.28-1.184-1.376a237.504 237.504 0 0 1-5.792-6.72c-2.304-2.784-4.512-5.664-6.752-8.512a315.84 315.84 0 0 1-16.928-23.424c-1.6-2.336-3.104-4.768-4.64-7.168a337.92 337.92 0 0 1-15.68-27.168 435.84 435.84 0 0 1-3.936-7.68c-1.536-3.104-3.072-6.208-4.512-9.344a362.912 362.912 0 0 1-7.296-17.024c-1.344-3.328-2.688-6.656-3.968-9.984l-2.976-8.448-0.512-1.696 25.184-25.184 53.568-53.632a292.8 292.8 0 0 1-3.68-41.28c0-1.28-0.192-2.496-0.192-3.744 0-1.28 0.192-2.464 0.192-3.744a292.8 292.8 0 0 1 3.68-41.28l-53.568-53.632-25.184-25.184a438.656 438.656 0 0 1 3.488-10.144c1.28-3.36 2.624-6.688 3.968-10.048a375.68 375.68 0 0 1 52.992-91.776c2.24-2.848 4.448-5.696 6.72-8.48 1.92-2.24 3.84-4.48 5.824-6.72l1.184-1.376 34.56 9.28 72.96 19.52c9.568-7.776 19.744-14.72 30.304-21.28l4.064-2.464a283.68 283.68 0 0 1 43.776-21.28l19.584-73.024 9.28-34.56 1.76-0.416c2.88-0.544 5.76-1.12 8.704-1.6 3.52-0.608 7.168-1.12 10.752-1.6 6.08-0.864 12.16-1.6 18.336-2.208a362.752 362.752 0 0 1 19.008-1.184c5.184-0.224 10.4-0.384 15.616-0.384 5.216 0 10.464 0.16 15.648 0.384a362.752 362.752 0 0 1 19.008 1.184c6.08 0.576 12.224 1.344 18.304 2.24 3.616 0.448 7.2 0.96 10.784 1.536l8.704 1.632 1.76 0.384 9.28 34.592 19.52 72.992c11.712 4.512 23.168 9.472 34.08 15.392 1.248 0.672 2.4 1.504 3.616 2.176 14.304 8.064 27.84 17.216 40.512 27.52l72.96-19.584 34.528-9.248 1.216 1.344c1.92 2.24 3.904 4.48 5.76 6.752 2.304 2.752 4.48 5.632 6.72 8.448 3.84 4.864 7.552 9.792 11.136 14.848 1.984 2.816 3.904 5.696 5.824 8.544l4.672 7.232a357.472 357.472 0 0 1 19.616 34.88 397.184 397.184 0 0 1 11.776 26.336c1.344 3.328 2.72 6.656 4 10.048 1.024 2.784 1.984 5.568 2.944 8.384 0.192 0.576 0.32 1.152 0.544 1.728l-25.184 25.184-53.6 53.6c1.92 12.064 3.104 24.352 3.488 36.896 0.064 2.72 0.384 5.44 0.384 8.16 0 2.752-0.32 5.44-0.384 8.16a291.136 291.136 0 0 1-3.52 36.864l53.632 53.632 25.184 25.184-0.544 1.696c-0.96 2.816-1.92 5.6-2.944 8.384-1.28 3.392-2.624 6.72-4 10.08a376.32 376.32 0 0 1-11.776 26.336 435.84 435.84 0 0 1-11.456 21.44c-2.624 4.544-5.376 8.992-8.16 13.44-1.536 2.368-3.072 4.8-4.64 7.136a315.84 315.84 0 0 1-16.96 23.456c-2.24 2.88-4.48 5.696-6.72 8.448-1.92 2.304-3.84 4.512-5.792 6.752-0.384 0.48-0.8 0.896-1.216 1.344l-34.56-9.248-72.96-19.52z m-305.12 139.328c-2.624-0.896-5.28-1.728-7.872-2.688l-3.328-1.216-3.328-1.28c4.896 1.92 9.856 3.584 14.816 5.248l-0.32-0.064z m-119.424-66.368l-2.656-2.24c-2.144-1.824-4.224-3.712-6.336-5.568l-0.224-0.192c3.968 3.52 7.936 6.976 12.064 10.272l-2.88-2.24z m623.776-245.664l-0.192-0.16-0.096-0.128h-0.032l-29.184-29.216c0.416-7.104 1.056-14.144 1.056-21.344 0-7.232-0.64-14.272-1.056-21.376l29.184-29.184 0.128-0.128 0.192-0.192 54.72-54.72a444.032 444.032 0 0 0-18.4-57.376 449.664 449.664 0 0 0-28.8-61.024c-11.424-19.84-24.576-38.08-38.432-55.456a449.024 449.024 0 0 0-40.48-44.64l-74.752 20.032-0.064 0.032-0.224 0.064-0.16 0.032h-0.032l-39.424 10.56a348.448 348.448 0 0 0-37.472-21.376l-10.624-39.68-0.032-0.064-0.032-0.16-0.064-0.224v-0.064l-20.032-74.752a447.68 447.68 0 0 0-58.88-12.736A448.128 448.128 0 0 0 512 64c-22.912 0-45.248 2.24-67.232 5.568-20.096 3.04-39.776 7.136-58.88 12.736l-20.032 74.752-0.032 0.064-0.064 0.224-0.032 0.16v0.064l-10.656 39.68c-12.928 6.464-25.504 13.472-37.472 21.44l-39.392-10.56-0.064-0.064h-0.16l-0.224-0.096h-0.064l-74.72-20.064c-14.432 13.76-27.84 28.8-40.48 44.64A446.816 446.816 0 0 0 124.032 288c-11.456 19.84-20.672 40.32-28.8 61.024A450.496 450.496 0 0 0 76.8 406.4l54.72 54.72v0.064l0.224 0.16 0.096 0.128v0.032l29.216 29.184C160.64 497.76 160 504.8 160 512c0 7.2 0.64 14.208 1.088 21.312l-29.184 29.184-0.032 0.032-0.096 0.128-0.192 0.192-0.032 0.032L76.8 617.6c4.704 19.328 11.008 38.464 18.4 57.344 8.128 20.704 17.344 41.216 28.8 61.056 11.456 19.84 24.576 38.08 38.464 55.424 12.672 15.872 26.048 30.88 40.48 44.64l74.72-20.032h0.064l0.224-0.064 0.16-0.064h0.064l39.36-10.56c12 7.936 24.576 14.912 37.504 21.376l10.656 39.712v0.224l0.096 0.224v0.032l20.064 74.752c19.104 5.6 38.784 9.728 58.88 12.736a447.68 447.68 0 0 0 67.2 5.6c22.976 0 45.28-2.24 67.296-5.6a442.56 442.56 0 0 0 58.88-12.736l20.032-74.752 0.064-0.256 0.064-0.192 10.624-39.68c12.928-6.496 25.504-13.504 37.44-21.44l39.456 10.56v0.032l0.192 0.032 0.224 0.064h0.064l74.752 20.032c14.4-13.76 27.808-28.768 40.48-44.64A449.92 449.92 0 0 0 900 736c11.456-19.84 20.64-40.32 28.768-61.056 7.424-18.88 13.728-37.984 18.432-57.344l-54.72-54.72h-0.032z" fill="#202020" ></path></symbol><symbol id="icon-icon-test10" viewBox="0 0 1024 1024"><path d="M192 768v-50.752l56.384-56.384 46.144-46.144 0.096-0.096-0.416-0.416A253.984 253.984 0 0 1 256 480a256 256 0 0 1 512 0c0 49.28-14.048 95.2-38.208 134.208l-0.416 0.416 0.096 0.096 46.144 46.144L832 717.248V768H192z m320 128a64 64 0 0 1-64-64h128a64 64 0 0 1-64 64z m374.624-214.656l-79.072-79.04A317.088 317.088 0 0 0 832 480c0-165.664-126.528-302.272-288-318.368V96h-64v65.632C318.528 177.728 192 314.336 192 480c0 43.328 8.736 84.608 24.448 122.304l-79.072 79.04A32.032 32.032 0 0 0 128 704v128h256c0 70.592 57.408 128 128 128s128-57.408 128-128h256v-128c0-8.832-3.584-16.832-9.376-22.656z" fill="#181818" ></path></symbol><symbol id="icon-icon-test11" viewBox="0 0 1024 1024"><path d="M192 736v-18.752l56.384-56.384 46.144-46.144 0.096-0.096-0.416-0.416A253.984 253.984 0 0 1 256 480a256 256 0 0 1 256-256c49.6 0 95.744 14.336 134.976 38.752l46.24-46.208A318.432 318.432 0 0 0 544 161.792V96h-64v65.632C318.528 177.728 192 314.336 192 480c0 43.328 8.736 84.608 24.448 122.304l-79.072 79.04A32.032 32.032 0 0 0 128 704v32h64zM301.248 768L727.04 342.208a253.504 253.504 0 0 1 2.752 272l-0.416 0.416 0.096 0.096 46.144 46.144L832 717.248V768H301.248zM512 896a64 64 0 0 1-64-64h128a64 64 0 0 1-64 64z m374.592-214.656l-79.04-79.04A317.664 317.664 0 0 0 832 480a317.76 317.76 0 0 0-58.56-184.16l145.184-145.216-45.248-45.248-142.336 142.336-45.28 45.28L105.376 873.376l45.248 45.248L237.248 832H384c0 70.592 57.408 128 128 128s128-57.408 128-128h256v-128a31.936 31.936 0 0 0-9.408-22.656z" fill="#181818" ></path></symbol><symbol id="icon-icon-test12" viewBox="0 0 1024 1024"><path d="M640 288a64 64 0 1 1 0.032-128.032A64 64 0 0 1 640 288z m123.456-96c-14.304-55.04-64-96-123.456-96s-109.152 40.96-123.456 96H128v64h388.544c14.304 55.04 64 96 123.456 96s109.152-40.96 123.456-96H896V192h-132.544zM640 864a64 64 0 1 1 0.032-128.032A64 64 0 0 1 640 864m0-192c-59.456 0-109.152 40.96-123.456 96H128v64h388.544c14.304 55.04 64 96 123.456 96s109.152-40.96 123.456-96H896v-64h-132.544c-14.304-55.04-64-96-123.456-96M384 576a64 64 0 1 1 0.032-128.032A64 64 0 0 1 384 576m0-192c-59.456 0-109.152 40.96-123.456 96H128v64h132.544c14.304 55.04 64 96 123.456 96s109.152-40.96 123.456-96H896v-64H507.456c-14.304-55.04-64-96-123.456-96" fill="#181818" ></path></symbol><symbol id="icon-icon-test13" viewBox="0 0 1024 1024"><path d="M512 896C299.936 896 128 724.064 128 512S299.936 128 512 128s384 171.936 384 384-171.936 384-384 384m0-832C264.96 64 64 264.96 64 512s200.96 448 448 448 448-200.96 448-448S759.04 64 512 64" fill="#181818" ></path><path d="M432 618.752l-121.376-121.376-45.248 45.248 166.624 166.624 326.624-326.624-45.248-45.248z" fill="#181818" ></path></symbol><symbol id="icon-icon-test14" viewBox="0 0 1024 1024"><path d="M512 896C299.936 896 128 724.064 128 512S299.936 128 512 128s384 171.936 384 384-171.936 384-384 384m0-832C264.96 64 64 264.96 64 512s200.96 448 448 448 448-200.96 448-448S759.04 64 512 64" fill="#181818" ></path><path d="M665.376 313.376L512 466.752l-153.376-153.376-45.248 45.248L466.752 512l-153.376 153.376 45.248 45.248L512 557.248l153.376 153.376 45.248-45.248L557.248 512l153.376-153.376z" fill="#181818" ></path></symbol><symbol id="icon-icon-test15" viewBox="0 0 1024 1024"><path d="M805.056 759.808L264.192 218.912A382.24 382.24 0 0 1 512 128.032c212.064 0 384 171.872 384 384 0 94.464-34.24 180.896-90.944 247.776M128 512a382.08 382.08 0 0 1 90.944-247.84l540.864 540.896A381.984 381.984 0 0 1 512 896C299.936 896 128 724.064 128 512M512 64C264.96 64 64 264.96 64 512s200.96 448 448 448 448-200.96 448-448S759.04 64 512 64" fill="#181818" ></path></symbol><symbol id="icon-bofangjilu" viewBox="0 0 1024 1024"><path d="M822.496 473.152l52.053333 29.290667C869.461333 306.56 709.098667 149.333333 512 149.333333c-200.298667 0-362.666667 162.368-362.666667 362.666667s162.368 362.666667 362.666667 362.666667c122.538667 0 234.645333-61.194667 301.578667-161.152a32 32 0 1 1 53.173333 35.616C788.064 866.634667 656.117333 938.666667 512 938.666667 276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667c0 10.954667-0.853333 26.357333-2.517334 46.528-1.930667 23.242667-27.274667 36.682667-47.594666 25.248l-97.450667-54.848a32 32 0 1 1 31.392-55.786667z m-493.12 176.213333L480 498.762667V320a32 32 0 0 1 64 0v192a32 32 0 0 1-9.376 22.624l-160 160a32 32 0 1 1-45.248-45.248z" ></path></symbol><symbol id="icon-chuangzuo" viewBox="0 0 1024 1024"><path d="M896 864a32 32 0 0 1 0 64H128a32 32 0 0 1 0-64z m-60.16-733.621333l15.093333 15.093333c45.866667 45.834667 45.866667 120.16 0 166.005333L418.794667 743.338667a160.192 160.192 0 0 1-78.122667 42.986666l-152.245333 34.197334c-23.84 5.365333-44.661333-16.853333-37.749334-40.288l43.338667-146.88a160.042667 160.042667 0 0 1 40.373333-67.925334l435.328-435.050666c45.866667-45.834667 120.245333-45.834667 166.112 0zM636.32 254.304L279.68 610.709333a96.021333 96.021333 0 0 0-24.213333 40.746667l-27.946667 94.656 99.093333-22.261333a96.117333 96.117333 0 0 0 46.869334-25.781334L726.933333 344.842667l-90.602666-90.538667z m78.698667-78.656l-33.397334 33.386667 90.602667 90.538666 33.386667-33.376a53.333333 53.333333 0 0 0 0-75.456l-15.093334-15.093333a53.408 53.408 0 0 0-75.498666 0z" ></path></symbol><symbol id="icon-dingwei" viewBox="0 0 1024 1024"><path d="M648.256 850.272a32 32 0 1 1-40.704-49.386667C758.304 676.693333 832 566.037333 832 471.072 832 293.344 688.693333 149.333333 512 149.333333c-176.693333 0-320 144.010667-320 321.738667 0 115.232 108.416 253.045333 329.173333 409.493333a32 32 0 0 1-37.013333 52.213334C248.021333 765.429333 128 612.853333 128 471.072 128 258.069333 299.882667 85.333333 512 85.333333s384 172.736 384 385.738667c0 118.378667-83.701333 244.053333-247.744 379.2zM512 618.666667c-82.474667 0-149.333333-66.858667-149.333333-149.333334s66.858667-149.333333 149.333333-149.333333 149.333333 66.858667 149.333333 149.333333-66.858667 149.333333-149.333333 149.333334z m0-64a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z" ></path></symbol><symbol id="icon-dingdan" viewBox="0 0 1024 1024"><path d="M821.333333 256a32 32 0 0 1 64 0v565.333333c0 64.8-52.533333 117.333333-117.333333 117.333334H256c-64.8 0-117.333333-52.533333-117.333333-117.333334V202.666667c0-64.8 52.533333-117.333333 117.333333-117.333334h597.333333a32 32 0 0 1 0 64H256a53.333333 53.333333 0 0 0-53.333333 53.333334v618.666666a53.333333 53.333333 0 0 0 53.333333 53.333334h512a53.333333 53.333333 0 0 0 53.333333-53.333334V256zM341.333333 437.333333a32 32 0 0 1 0-64h341.333334a32 32 0 0 1 0 64H341.333333z m0 170.666667a32 32 0 0 1 0-64h213.333334a32 32 0 0 1 0 64H341.333333z" ></path></symbol><symbol id="icon-gengduo" viewBox="0 0 1024 1024"><path d="M298.666667 586.666667a74.666667 74.666667 0 1 1 0-149.333334 74.666667 74.666667 0 0 1 0 149.333334z m213.333333 0a74.666667 74.666667 0 1 1 0-149.333334 74.666667 74.666667 0 0 1 0 149.333334z m213.333333 0a74.666667 74.666667 0 1 1 0-149.333334 74.666667 74.666667 0 0 1 0 149.333334z" ></path></symbol><symbol id="icon-fenxiang" viewBox="0 0 1024 1024"><path d="M853.333333 533.333333a32 32 0 0 1 64 0v266.666667c0 64.8-52.533333 117.333333-117.333333 117.333333H224c-64.8 0-117.333333-52.533333-117.333333-117.333333V256c0-64.8 52.533333-117.333333 117.333333-117.333333h277.333333a32 32 0 0 1 0 64H224a53.333333 53.333333 0 0 0-53.333333 53.333333v544a53.333333 53.333333 0 0 0 53.333333 53.333333h576a53.333333 53.333333 0 0 0 53.333333-53.333333V533.333333z m-42.058666-277.333333l-89.792-95.402667a32 32 0 0 1 46.613333-43.861333l140.544 149.333333C927.861333 286.485333 913.376 320 885.333333 320H724.704C643.029333 320 576 391.210667 576 480v192a32 32 0 1 1-64 0V480c0-123.296 94.784-224 212.704-224h86.570667z" ></path></symbol><symbol id="icon-paihangbang" viewBox="0 0 1024 1024"><path d="M544 661.333333a32 32 0 0 1-64 0V362.666667a32 32 0 0 1 64 0v298.666666z m160 0a32 32 0 0 1-64 0V490.666667a32 32 0 0 1 64 0v170.666666z m-320 0a32 32 0 0 1-64 0V448a32 32 0 0 1 64 0v213.333333zM202.666667 138.666667h618.666666c64.8 0 117.333333 52.533333 117.333334 117.333333v512c0 64.8-52.533333 117.333333-117.333334 117.333333H202.666667c-64.8 0-117.333333-52.533333-117.333334-117.333333V256c0-64.8 52.533333-117.333333 117.333334-117.333333z m0 64a53.333333 53.333333 0 0 0-53.333334 53.333333v512a53.333333 53.333333 0 0 0 53.333334 53.333333h618.666666a53.333333 53.333333 0 0 0 53.333334-53.333333V256a53.333333 53.333333 0 0 0-53.333334-53.333333H202.666667z" ></path></symbol><symbol id="icon-qupiao" viewBox="0 0 1024 1024"><path d="M821.333333 85.333333c64.8 0 117.333333 52.533333 117.333334 117.333334v149.333333c0 64.8-52.533333 117.333333-117.333334 117.333333h-21.333333v437.333334c0 26.368-30.101333 41.418667-51.2 25.6L682.666667 882.666667l-59.733334 44.8a42.666667 42.666667 0 0 1-51.2 0l-59.733333-44.8-59.733333 44.8a42.666667 42.666667 0 0 1-51.2 0l-59.733334-44.8-66.133333 49.6c-21.098667 15.818667-51.2 0.768-51.2-25.6V469.333333h-21.333333c-63.776 0-115.658667-50.88-117.290667-114.261333L85.333333 352V202.666667c0-64.8 52.533333-117.333333 117.333334-117.333334z m-96 213.333334H298.666667a10.666667 10.666667 0 0 0-10.666667 10.666666v533.333334l27.733333-20.8a42.666667 42.666667 0 0 1 51.2 0l59.733334 44.8 59.733333-44.8a42.666667 42.666667 0 0 1 51.2 0l59.733333 44.8 59.733334-44.8a42.666667 42.666667 0 0 1 51.2 0L736 842.666667V309.333333a10.666667 10.666667 0 0 0-10.666667-10.666666zM543.978667 588.981333a32 32 0 1 1 0 64h-128a32 32 0 1 1 0-64z m64.032-138.666666a32 32 0 0 1 0 64H415.989333a32 32 0 0 1 0-64zM821.333333 149.333333H202.666667a53.333333 53.333333 0 0 0-53.333334 53.333334v149.333333a53.333333 53.333333 0 0 0 53.333334 53.333333h21.333333v-96a74.666667 74.666667 0 0 1 74.666667-74.666666h426.666666a74.666667 74.666667 0 0 1 74.666667 74.666666v96h21.333333a53.333333 53.333333 0 0 0 53.28-51.018666L874.666667 352V202.666667a53.333333 53.333333 0 0 0-53.333334-53.333334z" ></path></symbol><symbol id="icon-rili" viewBox="0 0 1024 1024"><path d="M725.333333 170.666667h74.709334C864.853333 170.666667 917.333333 223.189333 917.333333 288.096V799.893333C917.333333 864.757333 864.832 917.333333 800.042667 917.333333H223.957333C159.146667 917.333333 106.666667 864.810667 106.666667 799.904V288.106667C106.666667 223.242667 159.168 170.666667 223.957333 170.666667H298.666667v-32a32 32 0 0 1 64 0v32h298.666666v-32a32 32 0 0 1 64 0v32z m0 64v32a32 32 0 0 1-64 0v-32H362.666667v32a32 32 0 0 1-64 0v-32h-74.709334A53.354667 53.354667 0 0 0 170.666667 288.096V799.893333A53.301333 53.301333 0 0 0 223.957333 853.333333h576.085334A53.354667 53.354667 0 0 0 853.333333 799.904V288.106667A53.301333 53.301333 0 0 0 800.042667 234.666667H725.333333z m-10.666666 224a32 32 0 0 1 0 64H309.333333a32 32 0 0 1 0-64h405.333334zM586.666667 618.666667a32 32 0 0 1 0 64H309.333333a32 32 0 0 1 0-64h277.333334z" ></path></symbol><symbol id="icon-shandian" viewBox="0 0 1024 1024"><path d="M395.765333 586.570667h-171.733333c-22.421333 0-37.888-22.442667-29.909333-43.381334L364.768 95.274667A32 32 0 0 1 394.666667 74.666667h287.957333c22.72 0 38.208 23.018667 29.632 44.064l-99.36 243.882666h187.050667c27.509333 0 42.186667 32.426667 24.042666 53.098667l-458.602666 522.56c-22.293333 25.408-63.626667 3.392-54.976-29.28l85.354666-322.421333zM416.714667 138.666667L270.453333 522.581333h166.869334a32 32 0 0 1 30.933333 40.181334l-61.130667 230.954666 322.176-367.114666H565.312c-22.72 0-38.208-23.018667-29.632-44.064l99.36-243.882667H416.714667z" ></path></symbol><symbol id="icon-shangquan" viewBox="0 0 1024 1024"><path d="M149.333333 874.666667V202.666667c0-64.8 52.533333-117.333333 117.333334-117.333334h277.333333c64.8 0 117.333333 52.533333 117.333333 117.333334v65.866666l149.952 77.653334A117.333333 117.333333 0 0 1 874.666667 450.378667V874.666667h32a32 32 0 0 1 0 64H117.333333a32 32 0 0 1 0-64h32z m512 0h149.333334V450.378667a53.333333 53.333333 0 0 0-28.8-47.36L661.333333 340.608V874.666667z m-448 0h384V202.666667a53.333333 53.333333 0 0 0-53.333333-53.333334H266.666667a53.333333 53.333333 0 0 0-53.333334 53.333334v672z" ></path></symbol><symbol id="icon-shanchu" viewBox="0 0 1024 1024"><path d="M202.666667 256h-42.666667a32 32 0 0 1 0-64h704a32 32 0 0 1 0 64H266.666667v565.333333a53.333333 53.333333 0 0 0 53.333333 53.333334h384a53.333333 53.333333 0 0 0 53.333333-53.333334V352a32 32 0 0 1 64 0v469.333333c0 64.8-52.533333 117.333333-117.333333 117.333334H320c-64.8 0-117.333333-52.533333-117.333333-117.333334V256z m224-106.666667a32 32 0 0 1 0-64h170.666666a32 32 0 0 1 0 64H426.666667z m-32 288a32 32 0 0 1 64 0v256a32 32 0 0 1-64 0V437.333333z m170.666666 0a32 32 0 0 1 64 0v256a32 32 0 0 1-64 0V437.333333z" ></path></symbol><symbol id="icon-shezhi" viewBox="0 0 1024 1024"><path d="M944.48 552.458667l-182.357333 330.666666a73.792 73.792 0 0 1-64.565334 38.325334h-362.133333a73.792 73.792 0 0 1-64.565333-38.325334l-182.357334-330.666666a75.338667 75.338667 0 0 1 0-72.682667l182.357334-330.666667a73.792 73.792 0 0 1 64.565333-38.325333h362.133333a73.792 73.792 0 0 1 64.565334 38.325333l182.357333 330.666667a75.338667 75.338667 0 0 1 0 72.682667z m-55.989333-31.146667a10.773333 10.773333 0 0 0 0-10.378667l-182.037334-330.666666a10.517333 10.517333 0 0 0-9.205333-5.482667H335.733333a10.517333 10.517333 0 0 0-9.205333 5.482667l-182.037333 330.666666a10.773333 10.773333 0 0 0 0 10.378667l182.037333 330.666667a10.517333 10.517333 0 0 0 9.205333 5.472h361.514667a10.517333 10.517333 0 0 0 9.205333-5.472l182.037334-330.666667zM513.738667 682.666667c-94.261333 0-170.666667-76.405333-170.666667-170.666667s76.405333-170.666667 170.666667-170.666667c94.250667 0 170.666667 76.405333 170.666666 170.666667s-76.416 170.666667-170.666666 170.666667z m0-64c58.912 0 106.666667-47.754667 106.666666-106.666667s-47.754667-106.666667-106.666666-106.666667-106.666667 47.754667-106.666667 106.666667 47.754667 106.666667 106.666667 106.666667z" ></path></symbol><symbol id="icon-shibai" viewBox="0 0 1024 1024"><path d="M878.08 731.274667a32 32 0 0 1-54.88-32.938667A360.789333 360.789333 0 0 0 874.666667 512c0-200.298667-162.368-362.666667-362.666667-362.666667S149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667a360.789333 360.789333 0 0 0 186.314667-51.445334 32 32 0 0 1 32.928 54.88A424.778667 424.778667 0 0 1 512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667c0 78.293333-21.152 153.568-60.586667 219.274667zM555.232 512l86.474667 86.474667a30.570667 30.570667 0 1 1-43.232 43.232L512 555.232l-86.474667 86.474667a30.570667 30.570667 0 1 1-43.232-43.232L468.768 512l-86.474667-86.474667a30.570667 30.570667 0 1 1 43.232-43.232L512 468.768l86.474667-86.474667a30.570667 30.570667 0 1 1 43.232 43.232L555.232 512z" ></path></symbol><symbol id="icon-shijian" viewBox="0 0 1024 1024"><path d="M878.08 731.274667a32 32 0 0 1-54.88-32.938667A360.789333 360.789333 0 0 0 874.666667 512c0-200.298667-162.368-362.666667-362.666667-362.666667S149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667a360.789333 360.789333 0 0 0 186.314667-51.445334 32 32 0 0 1 32.928 54.88A424.778667 424.778667 0 0 1 512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667c0 78.293333-21.152 153.568-60.586667 219.274667z m-548.704-81.898667L480 498.741333V320a32 32 0 0 1 64 0v192a32 32 0 0 1-9.376 22.624l-160 160a32 32 0 1 1-45.248-45.248z" ></path></symbol><symbol id="icon-shoucang" viewBox="0 0 1024 1024"><path d="M335.008 916.629333c-35.914667 22.314667-82.88 10.773333-104.693333-25.557333a77.333333 77.333333 0 0 1-8.96-57.429333l46.485333-198.24a13.141333 13.141333 0 0 0-4.021333-12.864l-152.16-132.586667c-31.605333-27.52-35.253333-75.648-8.234667-107.733333a75.68 75.68 0 0 1 51.733333-26.752L354.848 339.2c4.352-0.362667 8.245333-3.232 10.026667-7.594667l76.938666-188.170666c16.032-39.2 60.618667-57.92 99.52-41.461334a76.309333 76.309333 0 0 1 40.832 41.461334l76.938667 188.16c1.781333 4.373333 5.674667 7.253333 10.026667 7.605333l199.712 16.277333c41.877333 3.413333 72.885333 40.458667 69.568 82.517334a76.938667 76.938667 0 0 1-26.08 51.978666l-152.16 132.586667c-3.541333 3.082667-5.141333 8.074667-4.021334 12.853333l46.485334 198.24c9.621333 41.013333-15.36 82.336-56.138667 92.224a75.285333 75.285333 0 0 1-57.525333-9.237333l-170.976-106.24a11.296 11.296 0 0 0-12.010667 0l-170.986667 106.24zM551.786667 756.032l170.976 106.24c2.624 1.621333 5.717333 2.122667 8.650666 1.408 6.410667-1.557333 10.56-8.426667 8.928-15.424l-46.485333-198.24a77.141333 77.141333 0 0 1 24.277333-75.733333L870.293333 441.706667c2.485333-2.165333 4.053333-5.312 4.330667-8.746667 0.565333-7.136-4.490667-13.173333-10.976-13.696l-199.712-16.288a75.989333 75.989333 0 0 1-64.064-47.168l-76.938667-188.16a12.309333 12.309333 0 0 0-6.538666-6.741333c-5.898667-2.496-12.725333 0.373333-15.328 6.741333l-76.949334 188.16a75.989333 75.989333 0 0 1-64.064 47.168l-199.701333 16.288a11.68 11.68 0 0 0-7.978667 4.181333 13.226667 13.226667 0 0 0 1.333334 18.261334l152.16 132.586666a77.141333 77.141333 0 0 1 24.277333 75.733334l-46.485333 198.229333a13.333333 13.333333 0 0 0 1.514666 9.877333c3.488 5.792 10.581333 7.530667 16.064 4.128l170.986667-106.229333a75.296 75.296 0 0 1 79.562667 0z" ></path></symbol><symbol id="icon-shouye" viewBox="0 0 1024 1024"><path d="M155.584 342.56l312.874667-224.565333a74.666667 74.666667 0 0 1 87.082666 0l312.874667 224.565333A117.333333 117.333333 0 0 1 917.333333 437.866667V800c0 64.8-52.533333 117.333333-117.333333 117.333333H224c-64.8 0-117.333333-52.533333-117.333333-117.333333V437.877333a117.333333 117.333333 0 0 1 48.917333-95.317333z m37.322667 51.989333A53.333333 53.333333 0 0 0 170.666667 437.877333V800a53.333333 53.333333 0 0 0 53.333333 53.333333h576a53.333333 53.333333 0 0 0 53.333333-53.333333V437.877333a53.333333 53.333333 0 0 0-22.24-43.328L518.218667 169.984a10.666667 10.666667 0 0 0-12.437334 0L192.906667 394.56z" ></path></symbol><symbol id="icon-shuju" viewBox="0 0 1024 1024"><path d="M512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667-191.029333 426.666667-426.666667 426.666667z m0-64c200.298667 0 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667z m8.213333-265.674667l-81.429333-88.704-95.754667 99.264a32 32 0 1 1-46.058666-44.437333l119.36-123.733334a32 32 0 0 1 46.613333 0.576l81.792 89.109334 136.608-136.992a32 32 0 1 1 45.312 45.184l-160.213333 160.682666a32 32 0 0 1-46.24-0.96z" ></path></symbol><symbol id="icon-shuaxin" viewBox="0 0 1024 1024"><path d="M822.496 473.152a32 32 0 0 0-31.392 55.776l97.450667 54.848c20.32 11.434667 45.653333-2.005333 47.594666-25.248 1.674667-20.16 2.517333-35.573333 2.517334-46.528C938.666667 276.362667 747.637333 85.333333 512 85.333333S85.333333 276.362667 85.333333 512s191.029333 426.666667 426.666667 426.666667c144.106667 0 276.053333-72.032 354.752-189.536a32 32 0 1 0-53.173333-35.616C746.645333 813.461333 634.538667 874.666667 512 874.666667c-200.298667 0-362.666667-162.368-362.666667-362.666667s162.368-362.666667 362.666667-362.666667c197.098667 0 357.472 157.226667 362.538667 353.109334l-52.042667-29.290667z" ></path></symbol><symbol id="icon-sousuo" viewBox="0 0 1024 1024"><path d="M797.525333 752.266667c62.069333-72.736 97.28-165.002667 97.28-262.186667C894.816 266.528 713.621333 85.333333 490.08 85.333333 266.538667 85.333333 85.333333 266.538667 85.333333 490.069333 85.333333 713.610667 266.538667 894.826667 490.069333 894.826667a404.693333 404.693333 0 0 0 118.208-17.546667 32 32 0 0 0-18.666666-61.216 340.693333 340.693333 0 0 1-99.541334 14.762667C301.888 830.816 149.333333 678.261333 149.333333 490.069333 149.333333 301.888 301.888 149.333333 490.069333 149.333333 678.261333 149.333333 830.826667 301.888 830.826667 490.069333c0 89.28-35.381333 173.696-97.141334 237.322667a36.992 36.992 0 0 0 0.384 51.925333l149.973334 149.973334a32 32 0 0 0 45.258666-45.248L797.525333 752.266667z" ></path></symbol><symbol id="icon-tanhao" viewBox="0 0 1024 1024"><path d="M512 85.333333c235.637333 0 426.666667 191.029333 426.666667 426.666667 0 78.293333-21.152 153.568-60.586667 219.274667a32 32 0 0 1-54.88-32.938667A360.789333 360.789333 0 0 0 874.666667 512c0-200.298667-162.368-362.666667-362.666667-362.666667S149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667a360.789333 360.789333 0 0 0 186.314667-51.445334 32 32 0 0 1 32.928 54.88A424.778667 424.778667 0 0 1 512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333z m0 565.333334a42.666667 42.666667 0 1 1 0 85.333333 42.666667 42.666667 0 0 1 0-85.333333z m0-362.666667a42.666667 42.666667 0 0 1 42.666667 42.666667v234.666666a42.666667 42.666667 0 1 1-85.333334 0V330.666667a42.666667 42.666667 0 0 1 42.666667-42.666667z" ></path></symbol><symbol id="icon-tupian" viewBox="0 0 1024 1024"><path d="M938.666667 553.92V768c0 64.8-52.533333 117.333333-117.333334 117.333333H202.666667c-64.8 0-117.333333-52.533333-117.333334-117.333333V256c0-64.8 52.533333-117.333333 117.333334-117.333333h618.666666c64.8 0 117.333333 52.533333 117.333334 117.333333v297.92z m-64-74.624V256a53.333333 53.333333 0 0 0-53.333334-53.333333H202.666667a53.333333 53.333333 0 0 0-53.333334 53.333333v344.48A290.090667 290.090667 0 0 1 192 597.333333a286.88 286.88 0 0 1 183.296 65.845334C427.029333 528.384 556.906667 437.333333 704 437.333333c65.706667 0 126.997333 16.778667 170.666667 41.962667z m0 82.24c-5.333333-8.32-21.130667-21.653333-43.648-32.917333C796.768 511.488 753.045333 501.333333 704 501.333333c-121.770667 0-229.130667 76.266667-270.432 188.693334-2.730667 7.445333-7.402667 20.32-13.994667 38.581333-7.68 21.301333-34.453333 28.106667-51.370666 13.056-16.437333-14.634667-28.554667-25.066667-36.138667-31.146667A222.890667 222.890667 0 0 0 192 661.333333c-14.464 0-28.725333 1.365333-42.666667 4.053334V768a53.333333 53.333333 0 0 0 53.333334 53.333333h618.666666a53.333333 53.333333 0 0 0 53.333334-53.333333V561.525333zM320 480a96 96 0 1 1 0-192 96 96 0 0 1 0 192z m0-64a32 32 0 1 0 0-64 32 32 0 0 0 0 64z" ></path></symbol><symbol id="icon-wenjuan" viewBox="0 0 1024 1024"><path d="M895.946667 734.048l1.066666 1.013333a29.824 29.824 0 0 1 0 43.413334l-162.261333 152.96a31.925333 31.925333 0 0 1-22.762667 8.704 31.925333 31.925333 0 0 1-22.773333-8.704l-93.184-87.84a29.824 29.824 0 0 1 0-43.413334l1.077333-1.013333a32 32 0 0 1 43.904 0l70.976 66.901333 140.053334-132.021333a32 32 0 0 1 43.904 0zM768 85.333333c64.8 0 117.333333 52.533333 117.333333 117.333334v394.666666a32 32 0 0 1-64 0V202.666667a53.333333 53.333333 0 0 0-53.333333-53.333334H256a53.333333 53.333333 0 0 0-53.333333 53.333334v618.666666a53.333333 53.333333 0 0 0 53.333333 53.333334h234.666667a32 32 0 0 1 0 64H256c-64.8 0-117.333333-52.533333-117.333333-117.333334V202.666667c0-64.8 52.533333-117.333333 117.333333-117.333334zM554.666667 544a32 32 0 0 1 0 64H341.333333a32 32 0 0 1 0-64z m128-170.666667a32 32 0 0 1 0 64H341.333333a32 32 0 0 1 0-64z" ></path></symbol><symbol id="icon-xiazai" viewBox="0 0 1024 1024"><path d="M507.136 514.944c3.072-4.362667 7.210667-7.925333 12.032-10.314667a37.365333 37.365333 0 0 1 46.634667 6.144l97.418666 102.794667a32 32 0 0 1-46.442666 44.021333L565.333333 603.317333V853.333333a32 32 0 1 1-64 0V608.757333l-52.618666 50.016a32 32 0 0 1-44.096-46.4l102.517333-97.429333zM512 138.666667c123.018667 0 228.213333 85.696 259.424 204.469333C864.298667 344.736 938.666667 422.752 938.666667 518.218667 938.666667 614.688 862.752 693.333333 768.533333 693.333333a32 32 0 0 1 0-64C826.890667 629.333333 874.666667 579.84 874.666667 518.218667c0-61.610667-47.776-111.104-106.133334-111.104-5.856 0-11.626667 0.490667-17.301333 1.461333a32 32 0 0 1-37.024-26.666667C698.346667 279.04 612.714667 202.666667 512 202.666667c-73.834667 0-140.928 41.066667-177.376 106.613333a32 32 0 0 1-30.122667 16.373333c-3.168-0.213333-6.357333-0.32-9.568-0.32C214.784 325.333333 149.333333 393.141333 149.333333 477.333333S214.784 629.333333 294.933333 629.333333a32 32 0 1 1 0 64C178.912 693.333333 85.333333 596.373333 85.333333 477.333333c0-116.938667 90.293333-212.554667 203.456-215.904C338.090667 185.696 421.013333 138.666667 512 138.666667z" ></path></symbol><symbol id="icon-yanjing" viewBox="0 0 1024 1024"><path d="M512 832c-156.448 0-296.021333-98.730667-418.410667-291.605333a52.938667 52.938667 0 0 1 0-56.789334C215.978667 290.730667 355.552 192 512 192c156.448 0 296.021333 98.730667 418.410667 291.605333a52.938667 52.938667 0 0 1 0 56.789334C808.021333 733.269333 668.448 832 512 832z m0-576c-129.514667 0-249.461333 83.850667-360.117333 256C262.538667 684.149333 382.485333 768 512 768c129.514667 0 249.461333-83.850667 360.117333-256C761.461333 339.850667 641.514667 256 512 256z m0 405.333333c-83.210667 0-150.666667-66.858667-150.666667-149.333333S428.789333 362.666667 512 362.666667s150.666667 66.858667 150.666667 149.333333S595.210667 661.333333 512 661.333333z m0-64c47.552 0 86.101333-38.208 86.101333-85.333333S559.552 426.666667 512 426.666667c-47.552 0-86.101333 38.208-86.101333 85.333333s38.549333 85.333333 86.101333 85.333333z" ></path></symbol><symbol id="icon-zengjia" viewBox="0 0 1024 1024"><path d="M512 938.666667C276.362667 938.666667 85.333333 747.637333 85.333333 512S276.362667 85.333333 512 85.333333s426.666667 191.029333 426.666667 426.666667-191.029333 426.666667-426.666667 426.666667z m0-64c200.298667 0 362.666667-162.368 362.666667-362.666667S712.298667 149.333333 512 149.333333 149.333333 311.701333 149.333333 512s162.368 362.666667 362.666667 362.666667z m32-394.666667h128a32 32 0 0 1 0 64H544v128a32 32 0 0 1-64 0V544H352a32 32 0 0 1 0-64h128V352a32 32 0 0 1 64 0v128z" ></path></symbol><symbol id="icon-yunying" viewBox="0 0 1024 1024"><path d="M539.62 70.5c-15 0-27.17 12.17-27.17 27.17v386.71c0 15 12.17 27.17 27.17 27.17h386.71c15 0 27.17-12.17 27.17-27.17 0-228.21-185.66-413.88-413.88-413.88z m27.17 386.71V125.85c176.65 13.26 318.1 154.71 331.35 331.36H566.79z" fill="#231815" ></path><path d="M867.55 598.1c-14.59-3.21-29.17 5.92-32.45 20.56-36.48 162.53-183.98 280.5-350.72 280.5-198.25 0-359.54-161.29-359.54-359.54 0-166.75 117.96-314.24 280.49-350.71 14.65-3.29 23.85-17.82 20.56-32.46-3.28-14.65-17.87-23.85-32.45-20.56C206.32 177.88 70.5 347.67 70.5 539.62c0 228.21 185.66 413.88 413.88 413.88 191.95 0 361.74-135.81 403.73-322.94 3.29-14.64-5.92-29.17-20.56-32.46z" fill="#231815" ></path></symbol><symbol id="icon-shujufenxi" viewBox="0 0 1024 1024"><path d="M180.85 631.96c-17.42 0-31.54 14.12-31.54 31.54v220.77c0 17.42 14.12 31.54 31.54 31.54s31.54-14.12 31.54-31.54V663.5c0-17.42-14.13-31.54-31.54-31.54zM874.05 347.8c17.25-2.47 29.23-18.45 26.75-35.7l-25.33-176.86c-2.46-17.24-18.54-29.14-35.68-26.75l-176.86 25.34c-17.25 2.47-29.23 18.46-26.75 35.7 2.25 15.72 15.74 27.07 31.17 27.07 1.49 0 3-0.11 4.51-0.32l107.67-15.43L631.58 382.6 404.77 212.5c-11.9-8.93-28.47-8.32-39.7 1.49L112.76 434.76c-13.11 11.47-14.43 31.4-2.96 44.5 6.24 7.13 14.97 10.77 23.75 10.77 7.36 0 14.77-2.57 20.76-7.8L387.37 278.3l231.86 173.89c6.74 5.07 15.15 7.17 23.56 5.97a31.56 31.56 0 0 0 20.8-12.55l161.14-219.73 13.63 95.17c2.25 15.72 15.74 27.07 31.17 27.07 1.5 0 3.01-0.1 4.52-0.32zM653.92 568.88c-17.42 0-31.54 14.12-31.54 31.54v283.85c0 17.42 14.12 31.54 31.54 31.54s31.54-14.12 31.54-31.54V600.42c0-17.41-14.12-31.54-31.54-31.54z" fill="#231815" ></path><path d="M417.38 426.96c-17.42 0-31.54 14.12-31.54 31.54v425.77c0 17.42 14.12 31.54 31.54 31.54s31.54-14.12 31.54-31.54V458.5c0-17.42-14.12-31.54-31.54-31.54zM890.46 458.5c-17.42 0-31.54 14.12-31.54 31.54v394.23c0 17.42 14.12 31.54 31.54 31.54S922 901.69 922 884.27V490.04c0-17.42-14.12-31.54-31.54-31.54z" fill="#231815" ></path></symbol><symbol id="icon-dianshangxitong" viewBox="0 0 1024 1024"><path d="M241.35 451.86h73.55l62.15 88.77c4.7 6.72 12.81 10.17 20.92 8.83 8.09-1.31 14.71-7.15 17.05-15.01l57.3-193.37 68.06 242.03a21.37 21.37 0 0 0 19.6 15.55c0.32 0.01 0.64 0.02 0.96 0.02 8.83 0 16.8-5.44 19.95-13.75l61.97-162.67 26.65 47.97a21.353 21.353 0 0 0 18.67 10.98h94.47c11.79 0 21.36-9.56 21.36-21.36s-9.57-21.36-21.36-21.36h-81.91l-42.84-77.11c-4.03-7.25-11.75-11.58-20.2-10.93-8.29 0.59-15.47 5.94-18.42 13.7L564 509.32l-70.59-250.99A21.37 21.37 0 0 0 473 242.76c-9.91-0.2-17.92 6.16-20.63 15.29l-65.72 221.83-43.13-61.61a21.348 21.348 0 0 0-17.49-9.11h-84.67c-11.79 0-21.36 9.56-21.36 21.36s9.56 21.34 21.35 21.34z" fill="#231815" ></path><path d="M903.53 101.42H120.47c-15.72 0-28.47 12.75-28.47 28.47v581.64c0 15.72 12.75 28.47 28.47 28.47h783.05c15.72 0 28.47-12.75 28.47-28.47V129.89c0.01-15.72-12.74-28.47-28.46-28.47z m-28.48 581.64h-726.1V158.37h726.1v524.69zM665.05 865.63H337.59c-15.72 0-28.47 12.75-28.47 28.47s12.75 28.47 28.47 28.47h327.46c15.72 0 28.47-12.75 28.47-28.47s-12.74-28.47-28.47-28.47z" fill="#231815" ></path></symbol></svg>',m=(m=document.getElementsByTagName("script"))[m.length-1].getAttribute("data-injectcss");if(m&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(a){console&&console.log(a)}}function s(){i||(i=!0,h())}c=function(){var a,c,l,h;(h=document.createElement("div")).innerHTML=t,t=null,(l=h.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",a=l,(c=document.body).firstChild?(h=a,(l=c.firstChild).parentNode.insertBefore(h,l)):c.appendChild(a))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(h=c,o=a.document,i=!1,(v=function(){try{o.documentElement.doScroll("left")}catch(a){return void setTimeout(v,50)}s()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,s())})}(window);
\ No newline at end of file
{
"id": "2315638",
"name": "管理",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "15838566",
"name": "arrow-right-bold",
"font_class": "arrow-right-bold",
"unicode": "e687",
"unicode_decimal": 59015
},
{
"icon_id": "15838581",
"name": "arrow-up-filling",
"font_class": "arrow-up-filling",
"unicode": "e688",
"unicode_decimal": 59016
},
{
"icon_id": "15838582",
"name": "arrow-down-filling",
"font_class": "arrow-down-filling",
"unicode": "e689",
"unicode_decimal": 59017
},
{
"icon_id": "15838583",
"name": "arrow-left-filling",
"font_class": "arrow-left-filling",
"unicode": "e68a",
"unicode_decimal": 59018
},
{
"icon_id": "15838584",
"name": "arrow-right-filling",
"font_class": "arrow-right-filling",
"unicode": "e68b",
"unicode_decimal": 59019
},
{
"icon_id": "19099080",
"name": "Appstore",
"font_class": "Appstore",
"unicode": "e605",
"unicode_decimal": 58885
},
{
"icon_id": "19099081",
"name": "AppstoreAdd",
"font_class": "AppstoreAdd",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "19099090",
"name": "Audit",
"font_class": "Audit",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "19099095",
"name": "Block",
"font_class": "Block",
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "19099120",
"name": "CloudDownload",
"font_class": "CloudDownload",
"unicode": "e60f",
"unicode_decimal": 58895
},
{
"icon_id": "19099121",
"name": "CloudUpload",
"font_class": "CloudUpload",
"unicode": "e610",
"unicode_decimal": 58896
},
{
"icon_id": "19099124",
"name": "CloudSync",
"font_class": "CloudSync",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "19099162",
"name": "Export",
"font_class": "Export",
"unicode": "e618",
"unicode_decimal": 58904
},
{
"icon_id": "19099187",
"name": "Flag",
"font_class": "Flag",
"unicode": "e61c",
"unicode_decimal": 58908
},
{
"icon_id": "19099202",
"name": "Gateway",
"font_class": "Gateway",
"unicode": "e61f",
"unicode_decimal": 58911
},
{
"icon_id": "19099220",
"name": "Home",
"font_class": "Home",
"unicode": "e622",
"unicode_decimal": 58914
},
{
"icon_id": "19099222",
"name": "Interaction",
"font_class": "Interaction",
"unicode": "e623",
"unicode_decimal": 58915
},
{
"icon_id": "19099226",
"name": "Gold",
"font_class": "Gold",
"unicode": "e620",
"unicode_decimal": 58912
},
{
"icon_id": "19099231",
"name": "Login",
"font_class": "Login",
"unicode": "e624",
"unicode_decimal": 58916
},
{
"icon_id": "19099232",
"name": "Logout",
"font_class": "Logout",
"unicode": "e625",
"unicode_decimal": 58917
},
{
"icon_id": "19099235",
"name": "Import",
"font_class": "Import",
"unicode": "e626",
"unicode_decimal": 58918
},
{
"icon_id": "19099262",
"name": "Plus",
"font_class": "Plus",
"unicode": "e629",
"unicode_decimal": 58921
},
{
"icon_id": "19099269",
"name": "Partition",
"font_class": "Partition",
"unicode": "e62a",
"unicode_decimal": 58922
},
{
"icon_id": "19099270",
"name": "Picture",
"font_class": "Picture",
"unicode": "e62b",
"unicode_decimal": 58923
},
{
"icon_id": "19099301",
"name": "PieChart",
"font_class": "PieChart",
"unicode": "e62e",
"unicode_decimal": 58926
},
{
"icon_id": "19099302",
"name": "Solution",
"font_class": "Solution",
"unicode": "e62f",
"unicode_decimal": 58927
},
{
"icon_id": "19218761",
"name": "340cloudy03",
"font_class": "340cloudy03",
"unicode": "e743",
"unicode_decimal": 59203
},
{
"icon_id": "19218811",
"name": "380",
"font_class": "380",
"unicode": "e74c",
"unicode_decimal": 59212
},
{
"icon_id": "19218821",
"name": "385",
"font_class": "385",
"unicode": "e74d",
"unicode_decimal": 59213
},
{
"icon_id": "8776711",
"name": "record",
"font_class": "icon-test",
"unicode": "e637",
"unicode_decimal": 58935
},
{
"icon_id": "8776715",
"name": "time",
"font_class": "icon-test1",
"unicode": "e638",
"unicode_decimal": 58936
},
{
"icon_id": "8776784",
"name": "order",
"font_class": "icon-test2",
"unicode": "e63a",
"unicode_decimal": 58938
},
{
"icon_id": "8776823",
"name": "cart",
"font_class": "icon-test5",
"unicode": "e63d",
"unicode_decimal": 58941
},
{
"icon_id": "8776842",
"name": "search",
"font_class": "icon-test6",
"unicode": "e63e",
"unicode_decimal": 58942
},
{
"icon_id": "8776843",
"name": "edit",
"font_class": "icon-test7",
"unicode": "e63f",
"unicode_decimal": 58943
},
{
"icon_id": "8776871",
"name": "link",
"font_class": "icon-test8",
"unicode": "e640",
"unicode_decimal": 58944
},
{
"icon_id": "8776873",
"name": "setting",
"font_class": "icon-test9",
"unicode": "e641",
"unicode_decimal": 58945
},
{
"icon_id": "8776987",
"name": "notification",
"font_class": "icon-test10",
"unicode": "e642",
"unicode_decimal": 58946
},
{
"icon_id": "8776988",
"name": "notification_off",
"font_class": "icon-test11",
"unicode": "e643",
"unicode_decimal": 58947
},
{
"icon_id": "8777080",
"name": "filter",
"font_class": "icon-test12",
"unicode": "e648",
"unicode_decimal": 58952
},
{
"icon_id": "8777388",
"name": "check",
"font_class": "icon-test13",
"unicode": "e651",
"unicode_decimal": 58961
},
{
"icon_id": "8777389",
"name": "close",
"font_class": "icon-test14",
"unicode": "e652",
"unicode_decimal": 58962
},
{
"icon_id": "8777399",
"name": "forbidden",
"font_class": "icon-test15",
"unicode": "e653",
"unicode_decimal": 58963
},
{
"icon_id": "11372646",
"name": "播放记录",
"font_class": "bofangjilu",
"unicode": "e8ad",
"unicode_decimal": 59565
},
{
"icon_id": "11372647",
"name": "创作",
"font_class": "chuangzuo",
"unicode": "e8ae",
"unicode_decimal": 59566
},
{
"icon_id": "11372652",
"name": "定位",
"font_class": "dingwei",
"unicode": "e8af",
"unicode_decimal": 59567
},
{
"icon_id": "11372658",
"name": "订单",
"font_class": "dingdan",
"unicode": "e8b0",
"unicode_decimal": 59568
},
{
"icon_id": "11372659",
"name": "更多",
"font_class": "gengduo",
"unicode": "e8b1",
"unicode_decimal": 59569
},
{
"icon_id": "11372666",
"name": "分享",
"font_class": "fenxiang",
"unicode": "e8b2",
"unicode_decimal": 59570
},
{
"icon_id": "11372680",
"name": "排行榜",
"font_class": "paihangbang",
"unicode": "e8b3",
"unicode_decimal": 59571
},
{
"icon_id": "11372684",
"name": "取票",
"font_class": "qupiao",
"unicode": "e8b4",
"unicode_decimal": 59572
},
{
"icon_id": "11372686",
"name": "日历",
"font_class": "rili",
"unicode": "e8b5",
"unicode_decimal": 59573
},
{
"icon_id": "11372690",
"name": "闪电",
"font_class": "shandian",
"unicode": "e8b6",
"unicode_decimal": 59574
},
{
"icon_id": "11372692",
"name": "商圈",
"font_class": "shangquan",
"unicode": "e8b7",
"unicode_decimal": 59575
},
{
"icon_id": "11372693",
"name": "删除",
"font_class": "shanchu",
"unicode": "e8b8",
"unicode_decimal": 59576
},
{
"icon_id": "11372694",
"name": "设置",
"font_class": "shezhi",
"unicode": "e8b9",
"unicode_decimal": 59577
},
{
"icon_id": "11372698",
"name": "失败",
"font_class": "shibai",
"unicode": "e8bb",
"unicode_decimal": 59579
},
{
"icon_id": "11372699",
"name": "时间",
"font_class": "shijian",
"unicode": "e8bc",
"unicode_decimal": 59580
},
{
"icon_id": "11372701",
"name": "收藏",
"font_class": "shoucang",
"unicode": "e8bd",
"unicode_decimal": 59581
},
{
"icon_id": "11372703",
"name": "首页",
"font_class": "shouye",
"unicode": "e8be",
"unicode_decimal": 59582
},
{
"icon_id": "11372704",
"name": "数据",
"font_class": "shuju",
"unicode": "e8bf",
"unicode_decimal": 59583
},
{
"icon_id": "11372705",
"name": "刷新",
"font_class": "shuaxin",
"unicode": "e8c0",
"unicode_decimal": 59584
},
{
"icon_id": "11372706",
"name": "搜索",
"font_class": "sousuo",
"unicode": "e8c1",
"unicode_decimal": 59585
},
{
"icon_id": "11372707",
"name": "叹号",
"font_class": "tanhao",
"unicode": "e8c2",
"unicode_decimal": 59586
},
{
"icon_id": "11372711",
"name": "图片",
"font_class": "tupian",
"unicode": "e8c3",
"unicode_decimal": 59587
},
{
"icon_id": "11372715",
"name": "问卷",
"font_class": "wenjuan",
"unicode": "e8c4",
"unicode_decimal": 59588
},
{
"icon_id": "11372723",
"name": "下载",
"font_class": "xiazai",
"unicode": "e8c5",
"unicode_decimal": 59589
},
{
"icon_id": "11372728",
"name": "眼睛",
"font_class": "yanjing",
"unicode": "e8c6",
"unicode_decimal": 59590
},
{
"icon_id": "11372735",
"name": "增加",
"font_class": "zengjia",
"unicode": "e8c7",
"unicode_decimal": 59591
},
{
"icon_id": "18201541",
"name": "运营",
"font_class": "yunying",
"unicode": "e611",
"unicode_decimal": 58897
},
{
"icon_id": "18205080",
"name": "数据分析",
"font_class": "shujufenxi",
"unicode": "e612",
"unicode_decimal": 58898
},
{
"icon_id": "18205443",
"name": "电商系统",
"font_class": "dianshangxitong",
"unicode": "e613",
"unicode_decimal": 58899
},
{
"icon_id": "1263277",
"name": "资源借用",
"font_class": "ziyuanjieyong",
"unicode": "e618",
"unicode_decimal": 58904
}
]
}
<?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" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="arrow-right-bold" unicode="&#59015;" d="M731.733333 416l-384 341.333333c-17.066667 14.933333-44.8 14.933333-59.733333-4.266666-14.933333-17.066667-14.933333-44.8 4.266667-59.733334L640 384 292.266667 74.666667c-17.066667-14.933333-19.2-42.666667-4.266667-59.733334 8.533333-8.533333 19.2-14.933333 32-14.933333 10.666667 0 19.2 4.266667 27.733333 10.666667l384 341.333333c8.533333 8.533333 14.933333 19.2 14.933334 32s-4.266667 23.466667-14.933334 32z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-up-filling" unicode="&#59016;" d="M541.866667 610.133333l345.6-345.6c17.066667-17.066667 17.066667-42.666667 0-59.733333-8.533333-8.533333-19.2-12.8-29.866667-12.8H168.533333c-23.466667 0-42.666667 19.2-42.666666 42.666667 0 10.666667 4.266667 21.333333 12.8 29.866666l343.466666 345.6c17.066667 17.066667 42.666667 17.066667 59.733334 0z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-down-filling" unicode="&#59017;" d="M482.133333 157.866667L136.533333 503.466667c-17.066667 17.066667-17.066667 42.666667 0 59.733333 8.533333 8.533333 19.2 12.8 29.866667 12.8h689.066667c23.466667 0 42.666667-19.2 42.666666-42.666667 0-10.666667-4.266667-21.333333-12.8-29.866666L541.866667 157.866667c-17.066667-17.066667-42.666667-17.066667-59.733334 0z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-left-filling" unicode="&#59018;" d="M268.8 416L633.6 746.666667c17.066667 14.933333 44.8 14.933333 59.733333-2.133334 6.4-8.533333 10.666667-19.2 10.666667-29.866666v-661.333334c0-23.466667-19.2-42.666667-42.666667-42.666666-10.666667 0-21.333333 4.266667-27.733333 10.666666l-362.666667 330.666667c-17.066667 14.933333-19.2 42.666667-2.133333 59.733333-2.133333 2.133333 0 2.133333 0 4.266667z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-right-filling" unicode="&#59019;" d="M755.2 352L390.4 21.333333c-17.066667-14.933333-44.8-14.933333-59.733333 2.133334-6.4 8.533333-10.666667 19.2-10.666667 29.866666v661.333334c0 23.466667 19.2 42.666667 42.666667 42.666666 10.666667 0 21.333333-4.266667 27.733333-10.666666l362.666667-330.666667c17.066667-14.933333 19.2-42.666667 2.133333-59.733333 2.133333-2.133333 0-2.133333 0-4.266667z" horiz-adv-x="1024" />
<glyph glyph-name="Appstore" unicode="&#58885;" d="M457.159111 804.494222H109.710222a18.346667 18.346667 0 0 1-18.261333-18.289778v-347.420444c0-10.040889 8.220444-18.289778 18.261333-18.289778h347.448889c10.040889 0 18.289778 8.248889 18.289778 18.289778V786.204444a18.346667 18.346667 0 0 1-18.289778 18.289778z m-59.448889-306.289778H169.159111V726.784h228.551111v-228.579556zM914.318222 804.494222H566.897778a18.346667 18.346667 0 0 1-18.289778-18.289778v-347.420444c0-10.040889 8.248889-18.289778 18.289778-18.289778h347.420444c10.069333 0 18.289778 8.248889 18.289778 18.289778V786.204444a18.346667 18.346667 0 0 1-18.289778 18.289778z m-59.448889-306.289778h-228.551111V726.784h228.579556v-228.579556z m-397.681777-150.840888H109.710222a18.346667 18.346667 0 0 1-18.261333-18.289778v-347.420445c0-10.069333 8.220444-18.289778 18.261333-18.289777h347.448889c10.040889 0 18.289778 8.248889 18.289778 18.289777V329.073778a18.346667 18.346667 0 0 1-18.289778 18.289778z m-59.448889-306.289778H169.159111V269.653333h228.551111v-228.579555z m516.579555 306.289778H566.897778a18.346667 18.346667 0 0 1-18.289778-18.289778v-347.420445c0-10.069333 8.248889-18.289778 18.289778-18.289777h347.420444c10.069333 0 18.289778 8.248889 18.289778 18.289777V329.073778a18.346667 18.346667 0 0 1-18.289778 18.289778z m-59.448889-306.289778h-228.551111V269.653333h228.579556v-228.579555z" horiz-adv-x="1024" />
<glyph glyph-name="AppstoreAdd" unicode="&#58886;" d="M457.187556 804.494222H109.795556a18.346667 18.346667 0 0 1-18.289778-18.289778v-347.420444c0-10.040889 8.248889-18.289778 18.289778-18.289778h347.420444c10.069333 0 18.289778 8.248889 18.289778 18.289778V786.204444a18.346667 18.346667 0 0 1-18.289778 18.289778z m-59.420445-306.289778H169.187556V726.784h228.579555v-228.579556z m516.551111 306.289778H566.897778a18.346667 18.346667 0 0 1-18.261334-18.289778v-347.420444c0-10.040889 8.220444-18.289778 18.261334-18.289778h347.448889c10.040889 0 18.261333 8.248889 18.261333 18.289778V786.204444a18.346667 18.346667 0 0 1-18.261333 18.289778z m-59.420444-306.289778H626.346667V726.784h228.551111v-228.579556z m59.448889-150.840888H566.897778a18.346667 18.346667 0 0 1-18.261334-18.289778v-347.420445c0-10.069333 8.220444-18.289778 18.261334-18.289777h347.448889c10.040889 0 18.261333 8.248889 18.261333 18.289777V329.073778a18.346667 18.346667 0 0 1-18.261333 18.289778z m-59.448889-306.289778H626.346667V269.653333h228.551111v-228.579555z m-443.420445 114.289778H265.187556v146.289777a9.159111 9.159111 0 0 1-9.130667 9.130667H201.187556a9.159111 9.159111 0 0 1-9.130667-9.130667v-146.289777H45.767111a9.159111 9.159111 0 0 1-9.130667-9.159112v-54.840888c0-5.034667 4.096-9.159111 9.130667-9.159112h146.289778v-146.261333c0-5.034667 4.096-9.159111 9.130667-9.159111h54.869333a9.159111 9.159111 0 0 1 9.130667 9.159111V82.204444h146.289777a9.159111 9.159111 0 0 1 9.159111 9.159112V146.204444a9.159111 9.159111 0 0 1-9.159111 9.159112z" horiz-adv-x="1024" />
<glyph glyph-name="Audit" unicode="&#58888;" d="M265.159111 683.633778a9.159111 9.159111 0 0 1-9.130667-9.130667v-54.869333c0-5.034667 4.124444-9.130667 9.130667-9.130667h438.869333a9.159111 9.159111 0 0 1 9.130667 9.130667V674.503111a9.159111 9.159111 0 0 1-9.130667 9.130667H265.159111z m210.289778-164.579556H265.159111a9.159111 9.159111 0 0 1-9.130667-9.130666v-54.869334c0-5.006222 4.124444-9.130667 9.130667-9.130666h210.289778a9.159111 9.159111 0 0 1 9.159111 9.130666v54.869334a9.159111 9.159111 0 0 1-9.159111 9.130666z m-54.840889-523.406222h-256V800.199111h640v-365.710222c0-5.034667 4.096-9.130667 9.130667-9.130667h64a9.159111 9.159111 0 0 1 9.159111 9.130667V845.937778c0 20.252444-16.355556 36.579556-36.579556 36.579555H118.897778c-20.252444 0-36.579556-16.327111-36.579556-36.579555v-896c0-20.195556 16.327111-36.551111 36.579556-36.551111h301.710222a9.159111 9.159111 0 0 1 9.130667 9.130666v64a9.159111 9.159111 0 0 1-9.130667 9.159111z m502.840889 100.551111H758.897778v41.813333a128 128 0 0 1 91.448889 122.766223c0 70.741333-57.258667 128-128 128a127.943111 127.943111 0 0 1-128-128 128.113778 128.113778 0 0 1 91.420444-122.737778v-41.813333h-164.579555a18.346667 18.346667 0 0 1-18.261334-18.289778v-173.738667c0-10.040889 8.220444-18.261333 18.261334-18.261333h402.289777c10.069333 0 18.289778 8.220444 18.289778 18.261333V77.937778a18.346667 18.346667 0 0 1-18.289778 18.261333z m-258.275556 164.579556a57.173333 57.173333 0 1 0 114.346667-0.028445 57.173333 57.173333 0 0 0-114.346667 0.028445z m205.710223-303.985778H573.752889v68.551111h297.130667v-68.551111z" horiz-adv-x="1024" />
<glyph glyph-name="Block" unicode="&#58889;" d="M905.130667 539.505778h-237.710223V777.216a18.346667 18.346667 0 0 1-18.289777 18.289778H118.840889a18.346667 18.346667 0 0 1-18.289778-18.289778V246.897778c0-10.069333 8.248889-18.289778 18.289778-18.289778h237.710222v-237.710222c0-10.069333 8.248889-18.289778 18.289778-18.289778h530.289778c10.069333 0 18.289778 8.248889 18.289777 18.289778V521.216a18.346667 18.346667 0 0 1-18.289777 18.289778z m-548.579556-18.289778v-214.869333H178.289778V717.795556h411.420444v-178.289778h-214.869333a18.346667 18.346667 0 0 1-18.289778-18.289778z m233.159111-59.448889v-155.420444h-155.420444v155.448889h155.420444z m256-411.420444H434.289778v178.289777h214.840889c10.069333 0 18.289778 8.248889 18.289777 18.289778v214.869334h178.289778V50.346667z" horiz-adv-x="1024" />
<glyph glyph-name="CloudDownload" unicode="&#58895;" d="M640 161.934222h-84.679111V438.897778a9.159111 9.159111 0 0 1-9.159111 9.130666h-68.551111a9.159111 9.159111 0 0 1-9.159111-9.130666v-276.935111H384a9.102222 9.102222 0 0 1-7.196444-14.734223l128-161.934222a9.130667 9.130667 0 0 1 14.392888 0l128 161.934222a9.102222 9.102222 0 0 1-7.196444 14.734223zM854.186667 550.257778C801.848889 688.355556 668.444444 786.488889 512.227556 786.488889S222.634667 688.440889 170.296889 550.4A228.693333 228.693333 0 0 1 0 329.329778a228.494222 228.494222 0 0 1 228.465778-228.579556h45.795555a9.159111 9.159111 0 0 1 9.159111 9.159111v68.551111a9.159111 9.159111 0 0 1-9.130666 9.159112H228.465778a140.885333 140.885333 0 0 0-101.717334 43.064888 141.653333 141.653333 0 0 0-39.879111 103.537778 140.600889 140.600889 0 0 0 29.923556 82.403556 143.217778 143.217778 0 0 0 75.548444 49.948444l43.320889 11.320889 15.872 41.813333a280.632889 280.632889 0 0 0 100.693334 129.479112 276.707556 276.707556 0 0 0 160 50.545777c57.742222 0 113.038222-17.493333 160-50.517333a280.832 280.832 0 0 0 100.693333-129.479111l15.758222-41.728 43.207111-11.434667a142.364444 142.364444 0 0 0 105.244445-137.244444c0-37.831111-14.734222-73.500444-41.472-100.238222a140.572444 140.572444 0 0 0-100.124445-41.472h-45.795555a9.159111 9.159111 0 0 1-9.159111-9.159112v-68.551111c0-5.034667 4.096-9.159111 9.130666-9.159111h45.824A228.494222 228.494222 0 0 1 1024 329.358222a228.608 228.608 0 0 1-169.813333 220.899556z" horiz-adv-x="1024" />
<glyph glyph-name="CloudUpload" unicode="&#58896;" d="M519.224889 444.501333a9.102222 9.102222 0 0 1-11.207111 2.56 9.130667 9.130667 0 0 1-3.214222-2.56l-128-161.962666a9.102222 9.102222 0 0 1 7.224888-14.734223h84.451556v-277.048888c0-5.006222 4.096-9.102222 9.130667-9.102223h68.551111a9.159111 9.159111 0 0 1 9.159111 9.102223v276.935111H640a9.102222 9.102222 0 0 1 7.224889 14.734222l-128 162.076444zM854.186667 550.257778C801.848889 688.355556 668.444444 786.488889 512.227556 786.488889S222.634667 688.440889 170.296889 550.4A228.693333 228.693333 0 0 1 0 329.329778a228.494222 228.494222 0 0 1 228.465778-228.579556h45.795555a9.159111 9.159111 0 0 1 9.159111 9.159111v68.551111a9.159111 9.159111 0 0 1-9.130666 9.159112H228.465778a140.885333 140.885333 0 0 0-101.717334 43.064888 141.653333 141.653333 0 0 0-39.879111 103.537778 140.600889 140.600889 0 0 0 29.923556 82.403556 143.217778 143.217778 0 0 0 75.548444 49.948444l43.320889 11.320889 15.872 41.813333a280.632889 280.632889 0 0 0 100.693334 129.479112 276.707556 276.707556 0 0 0 160 50.545777c57.742222 0 113.038222-17.493333 160-50.517333a280.832 280.832 0 0 0 100.693333-129.479111l15.758222-41.728 43.207111-11.434667a142.364444 142.364444 0 0 0 105.244445-137.244444c0-37.831111-14.734222-73.500444-41.472-100.238222a140.572444 140.572444 0 0 0-100.124445-41.472h-45.795555a9.159111 9.159111 0 0 1-9.159111-9.159112v-68.551111c0-5.034667 4.096-9.159111 9.130666-9.159111h45.824A228.494222 228.494222 0 0 1 1024 329.358222a228.608 228.608 0 0 1-169.813333 220.899556z" horiz-adv-x="1024" />
<glyph glyph-name="CloudSync" unicode="&#58900;" d="M854.19008 547.555556c-52.337778 138.154667-185.742222 236.458667-341.959111 236.458666S222.63808 685.795556 170.300302 547.612444A228.977778 228.977778 0 0 1 0.003413 325.063111c0.682667-119.324444 93.269333-216.348444 209.834667-226.759111a9.159111 9.159111 0 0 1 9.955556 9.159111v69.034667a9.102222 9.102222 0 0 1-8.021334 9.016889 142.535111 142.535111 0 0 0-82.403555 39.424 140.856889 140.856889 0 0 0-42.496 101.262222c0 32 10.382222 62.179556 29.923555 87.324444a142.336 142.336 0 0 0 75.548445 49.92l43.320889 11.434667 15.872 41.955556a281.230222 281.230222 0 0 0 100.693333 129.706666 276.707556 276.707556 0 0 0 160 50.517334c57.742222 0 113.038222-17.493333 160-50.631112a278.641778 278.641778 0 0 0 59.875555-57.144888 275.541333 275.541333 0 0 0 40.817778-72.561778l15.758222-41.813334 43.235556-11.463111a141.937778 141.937778 0 0 0 105.244444-137.130666c0-38.4-15.075556-74.410667-42.524444-101.262223a142.250667 142.250667 0 0 0-82.176-39.424 9.016889 9.016889 0 0 1-7.879111-9.016888v-69.148445c0-5.404444 4.693333-9.614222 10.040889-9.159111 116.252444 10.524444 208.583111 107.434667 209.379555 226.531556a228.977778 228.977778 0 0 1-169.813333 222.72zM357.606969 218.737778c2.076444 38.286222 17.948444 73.955556 45.141333 101.262222a154.908444 154.908444 0 0 0 109.710222 45.482667 154.168889 154.168889 0 0 0 109.738667-45.511111c1.592889-1.564444 3.072-3.185778 4.664889-4.892445l-28.558222-22.414222a9.159111 9.159111 0 0 1 3.413333-16.099556l112.241778-27.420444c5.688889-1.393778 11.320889 2.958222 11.320889 8.789333l0.568889 115.768889a9.102222 9.102222 0 0 1-14.734223 7.196445l-26.538666-20.792889a227.498667 227.498667 0 0 1-172.003556 78.392889c-122.737778 0-222.833778-97.251556-227.868444-219.079112a9.102222 9.102222 0 0 1 9.130666-9.472h54.755556a9.244444 9.244444 0 0 1 9.016889 8.789334z m372.679111-8.675556H675.558969a9.244444 9.244444 0 0 1-9.159111-8.704 154.510222 154.510222 0 0 0-45.141334-101.262222 154.908444 154.908444 0 0 0-109.710222-45.482667 154.168889 154.168889 0 0 0-109.710222 45.511111c-1.592889 1.592889-3.072 3.185778-4.693333 4.892445l28.586666 22.414222a9.102222 9.102222 0 0 1-3.413333 16.099556l-112.241778 27.448889a9.159111 9.159111 0 0 1-11.320889-8.817778l-0.455111-115.882667c0-7.68 8.675556-12.003556 14.734222-7.196444l26.510223 20.792889a227.498667 227.498667 0 0 1 172.003555-78.392889c122.737778 0 222.862222 97.251556 227.896889 219.079111a9.102222 9.102222 0 0 1-9.159111 9.500444z" horiz-adv-x="1024" />
<glyph glyph-name="Export" unicode="&#58904;" d="M942.051556 103.68h-61.496889c-4.807111 0-8.817778-3.982222-8.817778-8.817778v-70.599111h-719.644445V744.021333h719.786667v-70.627555c0-4.807111 3.982222-8.817778 8.789333-8.817778h61.496889a8.817778 8.817778 0 0 1 8.789334 8.817778V787.911111c0 19.427556-15.644444 35.072-35.072 35.072H108.202667c-19.427556 0-35.072-15.644444-35.072-35.072v-807.537778c0-19.427556 15.644444-35.100444 35.072-35.100444h807.537777c19.427556 0 35.100444 15.644444 35.100445 35.100444v114.517334a8.817778 8.817778 0 0 1-8.817778 8.789333z m21.248 287.658667l-162.161778 128a9.159111 9.159111 0 0 1-14.876445-7.196445v-86.869333H427.406222a9.159111 9.159111 0 0 1-9.130666-9.130667v-64c0-5.034667 4.096-9.159111 9.130666-9.159111h358.855111v-86.840889c0-7.68 8.931556-12.003556 14.876445-7.196444l162.133333 128a9.159111 9.159111 0 0 1 0 14.392889z" horiz-adv-x="1024" />
<glyph glyph-name="Flag" unicode="&#58908;" d="M932.579556 620.430222H640.028444v129.137778c0 20.224-16.355556 36.579556-36.579555 36.579556H137.159111V831.857778a9.159111 9.159111 0 0 1-9.130667 9.159111H64a9.159111 9.159111 0 0 1-9.159111-9.159111v-896c0-5.034667 4.124444-9.130667 9.159111-9.130667H128a9.159111 9.159111 0 0 1 9.130667 9.130667V237.568h283.420444v-129.137778c0-20.224 16.355556-36.579556 36.579556-36.579555h475.420444c20.252444 0 36.579556 16.355556 36.579556 36.579555V583.850667c0 20.252444-16.355556 36.579556-36.579556 36.579555zM137.159111 319.857778v384h420.579556v-384H137.159111zM886.897778 154.168889h-384v83.427555h128a9.159111 9.159111 0 0 1 9.159111 9.159112V538.140444h246.840889v-384z" horiz-adv-x="1024" />
<glyph glyph-name="Gateway" unicode="&#58911;" d="M987.448889 521.130667c10.069333 0 18.289778 8.248889 18.289778 18.289777V749.710222a18.346667 18.346667 0 0 1-18.289778 18.289778h-210.289778a18.346667 18.346667 0 0 1-18.261333-18.289778v-64H265.159111v64A18.346667 18.346667 0 0 1 246.897778 768H36.608a18.346667 18.346667 0 0 1-18.289778-18.289778v-210.289778c0-10.040889 8.248889-18.289778 18.289778-18.289777h64v-274.261334h-64a18.346667 18.346667 0 0 1-18.289778-18.289777v-210.289778c0-10.069333 8.248889-18.289778 18.289778-18.289778H246.897778c10.040889 0 18.261333 8.248889 18.261333 18.289778v64H758.897778v-64c0-10.069333 8.220444-18.289778 18.261333-18.289778h210.289778c10.069333 0 18.289778 8.248889 18.289778 18.289778v210.289778a18.346667 18.346667 0 0 1-18.289778 18.289777h-64V521.102222h64zM832.028444 694.897778h100.579556v-100.579556H832V694.869333zM91.448889 594.289778V694.869333h100.579555v-100.579555H91.448889zM192.028444 73.102222H91.448889v100.579556h100.579555v-100.579556z m740.579556 100.579556v-100.579556H832v100.579556h100.579556z m-91.448889 73.159111h-64a18.346667 18.346667 0 0 1-18.261333-18.289778v-64H265.159111v64a18.346667 18.346667 0 0 1-18.261333 18.289778H182.897778V521.102222h64c10.040889 0 18.261333 8.248889 18.261333 18.289778v64H758.897778v-64c0-10.040889 8.220444-18.289778 18.261333-18.289778h64v-274.261333z" horiz-adv-x="1024" />
<glyph glyph-name="Home" unicode="&#58914;" d="M1014.646898 392.078222L573.046898 833.422222l-29.582222 29.582222a36.010667 36.010667 0 0 1-50.773334 0L21.50912 392.078222a73.016889 73.016889 0 0 1-21.504-52.593778c0.455111-40.220444 33.934222-72.334222 74.183111-72.334222h48.554667v-372.224H913.384676V267.150222h49.607111a72.817778 72.817778 0 0 1 51.768889 21.475556 72.675556 72.675556 0 0 1 21.361777 51.768889c0 19.456-7.68 37.831111-21.475555 51.683555zM582.063787-22.784h-128v233.130667h128V-22.755556z m249.031111 372.224v-372.224h-175.900445v260.551111c0 25.258667-20.451556 45.738667-45.710222 45.738667h-182.840889c-25.258667 0-45.710222-20.48-45.710222-45.710222v-260.579556H205.032676V349.44H95.322453L518.177564 771.953778l26.396445-26.396445 396.344889-396.117333h-109.824z" horiz-adv-x="1036" />
<glyph glyph-name="Interaction" unicode="&#58915;" d="M932.579556 841.016889H91.448889c-20.224 0-36.579556-16.355556-36.579556-36.579556v-841.159111c0-20.195556 16.355556-36.551111 36.579556-36.551111h841.130667c20.252444 0 36.579556 16.327111 36.579555 36.551111V804.437333c0 20.224-16.355556 36.579556-36.579555 36.579556z m-45.710223-832H137.159111V758.727111h749.710222v-749.710222zM275.228444 370.147556h57.941334c4.209778 0 7.765333 3.413333 7.765333 7.765333v90.168889c0 22.528 18.176 40.675556 40.561778 40.675555h235.093333v-61.013333a7.68 7.68 0 0 1 12.458667-6.058667l124.672 97.962667a7.736889 7.736889 0 0 1 0 12.231111l-124.672 97.934222a7.68 7.68 0 0 1-12.458667-6.058666v-61.041778h-235.207111a114.119111 114.119111 0 0 1-113.948444-114.403556v-90.168889c0-4.551111 3.413333-7.992889 7.793777-7.992888z m-4.835555-154.168889l124.700444-97.934223a7.68 7.68 0 0 1 12.458667 6.058667v61.013333h235.093333c62.976 0 113.948444 51.2 113.948445 114.403556V389.688889a7.765333 7.765333 0 0 1-7.765334 7.765333h-57.969777a7.765333 7.765333 0 0 1-7.765334-7.765333v-90.168889c0-22.528-18.176-40.675556-40.561777-40.675556h-234.951112v61.013334a7.68 7.68 0 0 1-12.487111 6.058666l-124.672-97.934222c-3.982222-2.844444-3.982222-8.931556 0-12.003555z" horiz-adv-x="1024" />
<glyph glyph-name="Gold" unicode="&#58912;" d="M317.724444 429.795556h390.826667c0.483556 0 1.052444 0 1.507556 0.113777a9.102222 9.102222 0 0 1 7.537777 10.524445l-45.937777 283.420444a9.102222 9.102222 0 0 1-9.016889 7.651556H363.662222a9.102222 9.102222 0 0 1-9.016889-7.68l-45.966222-283.420445c-0.113778-0.455111-0.113778-1.024-0.113778-1.479111 0-5.034667 4.124444-9.130667 9.159111-9.130666z m104.220445 224h182.300444l23.637334-146.289778h-229.717334l23.779556 146.289778z m2.844444-323.100445a9.102222 9.102222 0 0 1-9.016889 7.68H116.821333a9.102222 9.102222 0 0 1-9.045333-7.68l-45.937778-283.420444c-0.113778-0.455111-0.113778-1.024-0.113778-1.479111 0-5.034667 4.096-9.159111 9.130667-9.159112h390.855111c0.455111 0 1.052444 0 1.507556 0.113778a9.102222 9.102222 0 0 1 7.537778 10.524445l-45.966223 283.420444z m-273.351111-216.348444l23.665778 146.289777h182.272l23.665778-146.289777H151.438222z m810.752-67.072l-45.966222 283.420444a9.102222 9.102222 0 0 1-9.016889 7.68h-298.951111a9.102222 9.102222 0 0 1-9.045333-7.68l-45.937778-283.420444c-0.113778-0.455111-0.113778-1.024-0.113778-1.479111 0-5.034667 4.096-9.159111 9.130667-9.159112h390.855111c0.455111 0 1.024 0 1.479111 0.113778a9.187556 9.187556 0 0 1 7.566222 10.524445zM642.844444 114.346667l23.637334 146.289777h182.300444l23.637334-146.289777h-229.575112z" horiz-adv-x="1024" />
<glyph glyph-name="Login" unicode="&#58916;" d="M523.093333 875.377778A491.633778 491.633778 0 0 1 107.776 649.443556a9.130667 9.130667 0 0 1 7.68-14.08h80.327111a18.005333 18.005333 0 0 1 14.051556 6.627555c7.992889 9.728 16.583111 19.086222 25.6 28.017778A404.366222 404.366222 0 0 0 521.841778 788.48c54.727111 0 107.747556-10.609778 157.582222-31.772444a404.394667 404.394667 0 0 0 128.796444-86.755556 403.768889 403.768889 0 0 0 86.869334-128.568889 400.611556 400.611556 0 0 0 31.772444-157.468444 402.631111 402.631111 0 0 0-118.613333-286.065778 404.394667 404.394667 0 0 0-128.824889-86.755556 403.2 403.2 0 0 0-157.582222-31.744 404.394667 404.394667 0 0 0-286.407111 118.528 452.494222 452.494222 0 0 0-25.6 27.989334 18.176 18.176 0 0 1-14.051556 6.627555H115.427556a9.102222 9.102222 0 0 1-7.651556-14.051555c87.552-135.907556 240.213333-225.962667 414.065778-225.962667 269.937778 0 489.130667 217.258667 491.889778 486.4 2.730667 273.493333-216.803556 495.786667-490.666667 496.469333zM378.311111 255.943111v86.869333H19.456a9.159111 9.159111 0 0 0-9.130667 9.130667v64c0 5.034667 4.096 9.159111 9.130667 9.159111H378.311111v86.840889c0 7.68 8.903111 12.003556 14.848 7.196445l162.190222-128a9.159111 9.159111 0 0 0 0-14.392889l-162.190222-128a9.216 9.216 0 0 0-14.848 7.196444z" horiz-adv-x="1024" />
<glyph glyph-name="Logout" unicode="&#58917;" d="M918.869333 132.522667H838.542222a18.005333 18.005333 0 0 1-14.08-6.627556 368.924444 368.924444 0 0 0-25.6-28.017778 404.423111 404.423111 0 0 0-128.796444-86.755555 403.2 403.2 0 0 0-157.582222-31.744c-54.755556 0-107.804444 10.752-157.610667 31.772444a404.423111 404.423111 0 0 0-128.796445 86.755556 403.740444 403.740444 0 0 0-86.869333 128.568889 400.611556 400.611556 0 0 0-31.772444 157.468444 402.631111 402.631111 0 0 0 118.613333 286.065778 404.394667 404.394667 0 0 0 128.824889 86.755555 403.2 403.2 0 0 0 157.582222 31.744c54.755556 0 107.804444-10.609778 157.610667-31.772444a404.394667 404.394667 0 0 0 128.796444-86.755556c9.045333-9.016889 17.493333-18.375111 25.6-27.989333 3.413333-4.209778 8.704-6.627556 14.08-6.627555h80.327111a9.102222 9.102222 0 0 1 7.68 14.08A491.633778 491.633778 0 0 1 511.203556 875.377778C237.368889 874.666667 17.834667 652.401778 20.565333 378.88c2.759111-269.141333 221.952-486.4 491.918223-486.4 173.795556 0 326.513778 90.055111 414.037333 225.962667a9.102222 9.102222 0 0 1-7.651556 14.051555z m101.603556 258.616889l-162.161778 128a9.159111 9.159111 0 0 1-14.876444-7.196445v-86.840889H484.579556a9.159111 9.159111 0 0 1-9.130667-9.159111v-64c0-5.034667 4.124444-9.130667 9.130667-9.130667h358.855111v-86.869333c0-7.68 8.931556-12.003556 14.876444-7.196444l162.161778 128a9.159111 9.159111 0 0 1 0 14.392889z" horiz-adv-x="1024" />
<glyph glyph-name="Import" unicode="&#58918;" d="M942.051556 103.68h-61.496889c-4.807111 0-8.817778-3.982222-8.817778-8.817778v-70.599111h-719.644445V744.021333h719.786667v-70.627555c0-4.807111 3.982222-8.817778 8.789333-8.817778h61.496889a8.817778 8.817778 0 0 1 8.789334 8.817778V787.911111c0 19.427556-15.644444 35.072-35.072 35.072H108.202667c-19.427556 0-35.072-15.644444-35.072-35.072v-807.537778c0-19.427556 15.644444-35.100444 35.072-35.100444h807.537777c19.427556 0 35.100444 15.644444 35.100445 35.100444v114.517334a8.817778 8.817778 0 0 1-8.817778 8.817777z m15.644444 321.592889H598.840889v86.869333a9.159111 9.159111 0 0 1-14.848 7.196445l-162.190222-128a9.159111 9.159111 0 0 1 0-14.392889l162.190222-128a9.159111 9.159111 0 0 1 14.848 7.196444v86.840889h358.855111a9.159111 9.159111 0 0 1 9.130667 9.159111v64a9.159111 9.159111 0 0 1-9.130667 9.130667z" horiz-adv-x="1024" />
<glyph glyph-name="Plus" unicode="&#58921;" d="M477.696 795.363556h68.579556c6.087111 0 9.159111-3.043556 9.159111-9.130667v-804.579556c0-6.087111-3.072-9.130667-9.159111-9.130666h-68.551112c-6.115556 0-9.159111 3.043556-9.159111 9.130666V786.232889c0 6.087111 3.043556 9.130667 9.130667 9.130667zM128 427.377778h768c6.115556 0 9.159111-3.043556 9.159111-9.159111v-68.551111c0-6.115556-3.043556-9.159111-9.130667-9.159112h-768c-6.115556 0-9.159111 3.043556-9.159111 9.159112v68.551111c0 6.115556 3.043556 9.159111 9.159111 9.159111z" horiz-adv-x="1024" />
<glyph glyph-name="Partition" unicode="&#58922;" d="M659.000889 477.866667h293.831111a16.327111 16.327111 0 0 1 16.327111 16.355555V788.167111a16.327111 16.327111 0 0 1-16.355555 16.327111h-293.831112a16.327111 16.327111 0 0 1-16.327111-16.327111v-106.183111h-155.079111a8.135111 8.135111 0 0 1-8.106666-8.106667v-253.155555h-97.962667V531.057778a16.327111 16.327111 0 0 1-16.327111 16.327111H71.224889a16.327111 16.327111 0 0 1-16.355556-16.327111v-293.944889c0-9.045333 7.310222-16.355556 16.355556-16.355556h293.831111a16.327111 16.327111 0 0 1 16.327111 16.355556v110.279111h97.962667v-253.155556c0-4.437333 3.640889-8.106667 8.106666-8.106666h155.079112v-106.183111c0-9.016889 7.310222-16.327111 16.355555-16.327111h293.831111a16.327111 16.327111 0 0 1 16.327111 16.355555V273.635556a16.327111 16.327111 0 0 1-16.355555 16.355555H659.000889a16.327111 16.327111 0 0 1-16.355556-16.355555v-114.289778h-89.827555v449.137778h89.827555v-114.261334c0-9.045333 7.310222-16.355556 16.355556-16.355555z m61.155555 249.031111h171.406223v-171.52h-171.434667v171.52z m-416.256-428.657778H132.465778V469.617778h171.434666v-171.434667z m416.227556-85.845333h171.434667v-171.548445h-171.434667v171.52z" horiz-adv-x="1024" />
<glyph glyph-name="Picture" unicode="&#58923;" d="M987.420444 786.488889H36.579556C16.355556 786.488889 0 770.161778 0 749.909333V18.488889c0-20.224 16.355556-36.579556 36.579556-36.579556h950.840888c20.224 0 36.579556 16.355556 36.579556 36.579556V749.909333c0 20.252444-16.355556 36.579556-36.579556 36.579556z m-45.710222-722.289778H82.289778V109.795556l158.293333 187.790222 171.52-203.434667 266.865778 316.330667 262.741333-311.523556v-34.759111z m0 148.337778l-255.772444 303.331555a9.102222 9.102222 0 0 1-13.937778 0l-259.896889-308.110222-164.551111 195.072a9.102222 9.102222 0 0 1-13.937778 0l-151.324444-179.427555V704.199111h859.420444v-491.662222zM274.289778 448.227556a100.551111 100.551111 0 1 1 0 201.130666 100.551111 100.551111 0 0 1 0-201.102222z m0 132.579555c17.720889 0 32-14.279111 32-32s-14.279111-32-32-32a31.943111 31.943111 0 0 0-32 32c0 17.720889 14.279111 32 32 32z" horiz-adv-x="1024" />
<glyph glyph-name="PieChart" unicode="&#58926;" d="M914.261333 377.258667H505.116444V786.403556a9.159111 9.159111 0 0 1-9.130666 9.130666h-29.724445A455.395556 455.395556 0 0 1 143.075556 661.703111a455.111111 455.111111 0 0 1-97.962667-145.265778 454.428444 454.428444 0 0 1-35.982222-178.062222 455.395556 455.395556 0 0 1 133.831111-323.185778 455.111111 455.111111 0 0 1 145.237333-97.934222c56.32-23.893333 116.906667-36.124444 178.062222-36.010667a455.395556 455.395556 0 0 1 323.214223 133.831112 455.111111 455.111111 0 0 1 97.934222 145.265777c23.864889 56.32 36.124444 116.878222 36.010666 178.062223V368.071111a9.159111 9.159111 0 0 1-9.159111 9.159111z m-180.906666-308.337778a379.022222 379.022222 0 0 0-268.913778-109.966222 376.974222 376.974222 0 0 0-266.524445 111.104 376.974222 376.974222 0 0 0-111.075555 268.316444c0 101.376 39.424 196.693333 111.075555 268.344889a376.120889 376.120889 0 0 0 229.489778 109.169778V299.52h416.341334a376.32 376.32 0 0 0-110.392889-230.656z m281.486222 371.882667l-2.958222 32.227555a454.627556 454.627556 0 0 1-131.697778 279.523556 456.448 456.448 0 0 1-280.177778 131.413333L567.608889 886.983111a9.073778 9.073778 0 0 1-9.955556-9.016889v-438.983111c0-5.006222 4.124444-9.130667 9.159111-9.130667l438.840889 1.137778a9.102222 9.102222 0 0 1 9.159111 9.841778z m-379.648 66.503111V800.568889a379.733333 379.733333 0 0 0 190.151111-102.627556 377.315556 377.315556 0 0 0 102.855111-189.838222l-293.006222-0.796444z" horiz-adv-x="1024" />
<glyph glyph-name="Solution" unicode="&#58927;" d="M713.159111 667.648a9.159111 9.159111 0 0 1-9.130667 9.130667H265.159111a9.159111 9.159111 0 0 1-9.130667-9.130667v-54.869333c0-5.034667 4.124444-9.130667 9.130667-9.130667h438.869333a9.159111 9.159111 0 0 1 9.130667 9.130667V667.648z m-9.130667-155.448889H265.159111a9.159111 9.159111 0 0 1-9.130667-9.130667v-54.869333c0-5.006222 4.124444-9.130667 9.130667-9.130667h438.869333a9.159111 9.159111 0 0 1 9.130667 9.130667v54.869333a9.159111 9.159111 0 0 1-9.130667 9.130667z m-228.579555-164.551111H265.159111a9.159111 9.159111 0 0 1-9.130667-9.159111v-54.840889c0-5.034667 4.124444-9.159111 9.130667-9.159111h210.289778a9.159111 9.159111 0 0 1 9.159111 9.159111V338.488889a9.159111 9.159111 0 0 1-9.159111 9.159111z m-54.840889-352h-256V800.199111h640v-393.130667c0-5.034667 4.096-9.159111 9.130667-9.159111h64a9.159111 9.159111 0 0 1 9.159111 9.159111V845.909333c0 20.252444-16.355556 36.579556-36.579556 36.579556H118.897778c-20.252444 0-36.579556-16.327111-36.579556-36.579556v-896c0-20.195556 16.327111-36.551111 36.579556-36.551111h301.710222a9.159111 9.159111 0 0 1 9.130667 9.130667v64a9.159111 9.159111 0 0 1-9.130667 9.159111z m407.751111 85.020444a164.608 164.608 0 0 1-110.648889 286.407112 164.608 164.608 0 0 1-110.592-286.435556 224.597333 224.597333 0 0 1-113.379555-185.230222c-0.227556-5.12 3.982222-9.500444 9.159111-9.500445h54.954666c4.807111 0 8.817778 3.783111 9.159112 8.704a151.125333 151.125333 0 0 0 150.755555 142.165334 151.125333 151.125333 0 0 0 150.727111-142.165334 9.159111 9.159111 0 0 1 9.130667-8.704h54.983111a9.102222 9.102222 0 0 1 9.130667 9.500445c-3.299556 79.416889-48.213333 148.110222-113.379556 185.258666z m-110.620444 213.248a91.392 91.392 0 1 0 0-182.840888 91.392 91.392 0 1 0 0 182.840888z" horiz-adv-x="1024" />
<glyph glyph-name="340cloudy03" unicode="&#59203;" d="M512 640c102.4 0 195.2-60.8 233.6-153.6 9.6-22.4 32-38.4 57.6-38.4 86.4-3.2 156.8-73.6 156.8-160 0-89.6-70.4-160-160-160H176h-3.2C115.2 128 64 179.2 64 240S115.2 352 176 352H192c16 0 28.8 6.4 41.6 16s22.4 25.6 22.4 41.6c12.8 131.2 124.8 230.4 256 230.4m0 64c-166.4 0-304-128-320-288h-16c-96 0-176-80-176-176S76.8 64 172.8 64H800c124.8 0 224 99.2 224 224 0 121.6-96 220.8-217.6 224-51.2 112-163.2 192-294.4 192zM512 736c25.6 0 51.2-3.2 73.6-9.6 19.2 6.4 35.2 9.6 54.4 9.6 70.4 0 134.4-41.6 160-105.6 9.6-22.4 32-38.4 57.6-38.4 54.4 0 102.4-48 102.4-102.4v-9.6c19.2-19.2 35.2-41.6 44.8-67.2 12.8 22.4 19.2 48 19.2 76.8 0 92.8-73.6 166.4-163.2 166.4C822.4 739.2 739.2 800 640 800c-64 0-121.6-25.6-166.4-67.2 12.8 3.2 25.6 3.2 38.4 3.2z" horiz-adv-x="1024" />
<glyph glyph-name="380" unicode="&#59212;" d="M915.891 651.494c0 67.021-54.374 121.396-121.395 121.396-67.072 0-121.42-54.375-121.42-121.396 0-56.499 38.758-103.552 91.033-117.12v-95.308h-95.335c-13.542 52.275-60.595 91.059-117.068 91.059-56.5 0-103.63-38.784-117.12-91.06H278.579v-155.98c-52.25-13.543-91.059-60.621-91.059-117.069 0-67.098 54.349-121.446 121.42-121.446 67.022 0 121.396 54.348 121.396 121.446 0 56.448-38.81 103.603-91.085 117.069v95.283h95.309c13.491-52.275 60.57-91.034 117.12-91.034 56.474 0 103.578 38.759 117.069 91.034h156.057V534.374c52.301 13.517 91.085 60.621 91.085 117.12M369.638 166.016c0-33.587-27.212-60.774-60.697-60.774-33.536 0-60.723 27.212-60.723 60.774 0 33.46 27.212 60.672 60.723 60.672 33.51 0 60.697-27.213 60.697-60.672m182.068 182.016c-33.536 0-60.724 27.213-60.724 60.698 0 33.536 27.213 60.723 60.724 60.723s60.697-27.213 60.697-60.723-27.187-60.698-60.697-60.698m242.79 242.765c-33.536 0-60.723 27.187-60.723 60.697s27.213 60.698 60.723 60.698 60.698-27.187 60.698-60.698-27.188-60.697-60.698-60.697" horiz-adv-x="1024" />
<glyph glyph-name="385" unicode="&#59213;" d="M794.235 49.562V683.52a9.667 9.667 0 0 1-3.38 7.373l-91.668 78.5a9.667 9.667 0 0 1-9.687 1.72L368.968 651.407a9.667 9.667 0 0 1-6.288-9.052v-13.599a9.667 9.667 0 0 1 12.944-9.093l272.322 97.751a9.667 9.667 0 0 0 12.944-9.113v-703.754c0-5.325 4.32-9.667 9.666-9.667h179.487c5.325 0 9.666 4.321 9.666 9.667v25.661a9.667 9.667 0 0 1-9.666 9.667h-46.121a9.667 9.667 0 0 0-9.687 9.666zM263.68 244.94l140.677 24.576a9.667 9.667 0 0 1 7.987 9.523v64.225a9.667 9.667 0 0 1-12.288 9.319L259.4 313.016a9.667 9.667 0 0 1-7.066-9.298v-49.274a9.667 9.667 0 0 1 11.346-9.524zM262-5.12h140.698c5.325 0 9.667 4.321 9.667 9.667V69.57a9.667 9.667 0 0 1-10.404 9.625l-140.698-10.67a9.667 9.667 0 0 1-8.929-9.646v-54.333c0-5.325 4.342-9.667 9.667-9.667z m0.676 124.723l140.678 9.626a9.667 9.667 0 0 1 9.01 9.666V203.47a9.667 9.667 0 0 1-11.345 9.523l-140.677-24.576a9.667 9.667 0 0 1-7.987-9.544v-49.602a9.667 9.667 0 0 1 10.321-9.646z m1.946 250.819l140.698 39.567a9.667 9.667 0 0 1 7.045 9.298v64.184a9.667 9.667 0 0 1-12.862 9.114l-140.697-49.152a9.667 9.667 0 0 1-6.472-9.155v-54.538a9.667 9.667 0 0 1 12.288-9.318zM491.52 630.395L170.127 510.362a9.667 9.667 0 0 1-6.287-9.053v-496.783c0-5.325 4.321-9.666 9.667-9.666h25.518c5.324 0 9.666 4.32 9.666 9.666V478.024a9.627 9.627 0 0 0 6.554 9.134l229.171 78.5a9.667 9.667 0 0 0 12.8-9.155v-551.936c0-5.366 4.342-9.687 9.667-9.687h113.91a9.667 9.667 0 0 1 9.686 9.769l-5.918 566.21a9.667 9.667 0 0 1-4.506 8.09l-79.995 50.545a9.667 9.667 0 0 1-8.54 0.9z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test" unicode="&#58935;" d="M805.088 136.16L589.248 352h305.152a382.144 382.144 0 0 0-89.312-215.84M127.968 384C128 585.28 282.976 750.08 480 766.4V384c0-8.864 3.648-16.864 9.44-22.656l270.4-270.4A382.208 382.208 0 0 0 512 0C299.936 0 128 171.904 128 384m766.4 32H544V766.4A383.68 383.68 0 0 0 894.4 416M512 832C264.96 832 64 631.04 64 384s200.96-448 448-448 448 200.96 448 448S759.04 832 512 832" horiz-adv-x="1024" />
<glyph glyph-name="icon-test1" unicode="&#58936;" d="M544 672h-64v-288c0-8.832 3.584-16.832 9.376-22.656l192-191.968 45.248 45.248L544 397.248V672zM512 0C300.256 0 128 172.256 128 384S300.256 768 512 768s384-172.256 384-384-172.256-384-384-384m0 832C264.576 832 64 631.424 64 384s200.576-448 448-448 448 200.576 448 448S759.424 832 512 832" horiz-adv-x="1024" />
<glyph glyph-name="icon-test2" unicode="&#58938;" d="M320 416h384v64H320zM320 288h256v64h-256zM320 160h256v64h-256zM832 736h-128V800H320v-64H192c-19.2 0-32-12.8-32-32v-704c0-19.2 12.8-32 32-32h640c19.2 0 32 12.8 32 32V704c0 19.2-12.8 32-32 32zM384 736h256v-64h-256V736z m416-704H224V672h96v-64h384V672h96v-640z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test5" unicode="&#58941;" d="M384 128a64 64 0 1 1 0.032-128.032A64 64 0 0 1 384 128M704 128a64 64 0 1 1 0.032-128.032A64 64 0 0 1 704 128M312.672 384l-51.424 192h560.96l-51.456-192H312.672z m583.36 224a32 32 0 0 1-32 32H244.064L209.792 768H96.032v-64h64.64l145.728-544H800v64H355.52l-25.696 96h490.048l12.16 45.376 64 238.88-0.768 0.192C895.424 605.664 896 606.72 896 608zM448 448h192v64h-192z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test6" unicode="&#58942;" d="M192 448c0 141.152 114.848 256 256 256s256-114.848 256-256-114.848-256-256-256-256 114.848-256 256z m710.624-409.376l-206.88 206.88A318.784 318.784 0 0 1 768 448c0 176.736-143.264 320-320 320S128 624.736 128 448s143.264-320 320-320a318.784 318.784 0 0 1 202.496 72.256l206.88-206.88 45.248 45.248z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test7" unicode="&#58943;" d="M128 0h768v64H128zM256 192v146.752l224 224L626.752 416l-224-224H256zM608 690.752L754.752 544 672 461.248 525.248 608 608 690.752z m214.624-169.408l0.032 0.032a32 32 0 0 1 0 45.248l-0.032 0.032-191.968 191.968-0.032 0.032a32 32 0 0 1-45.248 0l-0.032-0.032L192 365.248V128h237.248l393.376 393.344z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test8" unicode="&#58944;" d="M832 768h-192v-64h146.752l-265.376-265.376 45.248-45.248L832 658.752V512h64V768zM768 64H192V640h352V704H160a32 32 0 0 1-32-32v-640a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32V416h-64v-352z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test9" unicode="&#58945;" d="M512 256c-70.592 0-128 57.408-128 128s57.408 128 128 128 128-57.408 128-128-57.408-128-128-128m0 320a192 192 0 0 1 0-384 192 192 0 0 1 0 384M693.216 160.448a291.744 291.744 0 0 0-40.512-27.52c-1.216-0.64-2.368-1.472-3.616-2.144a286.08 286.08 0 0 0-34.048-15.392l-19.552-72.992-9.28-34.592c-0.576-0.128-1.152-0.32-1.76-0.384l-8.736-1.632c-3.52-0.64-7.104-1.088-10.656-1.6a357.152 357.152 0 0 0-53.056-3.744c-5.216 0-10.464 0.128-15.68 0.32l-8.64 0.48a355.936 355.936 0 0 0-28.736 2.944c-3.52 0.512-7.072 0.96-10.624 1.6a418.496 418.496 0 0 0-8.736 1.6l-1.76 0.416-9.28 34.56-19.584 73.024a286.784 286.784 0 0 0-47.84 23.776 287.488 287.488 0 0 0-30.304 21.28l-72.96-19.552-34.56-9.28-1.184 1.376a237.504 237.504 0 0 0-5.792 6.72c-2.304 2.784-4.512 5.664-6.752 8.512a315.84 315.84 0 0 0-16.928 23.424c-1.6 2.336-3.104 4.768-4.64 7.168a337.92 337.92 0 0 0-15.68 27.168 435.84 435.84 0 0 0-3.936 7.68c-1.536 3.104-3.072 6.208-4.512 9.344a362.912 362.912 0 0 0-7.296 17.024c-1.344 3.328-2.688 6.656-3.968 9.984l-2.976 8.448-0.512 1.696 25.184 25.184 53.568 53.632a292.8 292.8 0 0 0-3.68 41.28c0 1.28-0.192 2.496-0.192 3.744 0 1.28 0.192 2.464 0.192 3.744a292.8 292.8 0 0 0 3.68 41.28l-53.568 53.632-25.184 25.184a438.656 438.656 0 0 0 3.488 10.144c1.28 3.36 2.624 6.688 3.968 10.048a375.68 375.68 0 0 0 52.992 91.776c2.24 2.848 4.448 5.696 6.72 8.48 1.92 2.24 3.84 4.48 5.824 6.72l1.184 1.376 34.56-9.28 72.96-19.52c9.568 7.776 19.744 14.72 30.304 21.28l4.064 2.464a283.68 283.68 0 0 0 43.776 21.28l19.584 73.024 9.28 34.56 1.76 0.416c2.88 0.544 5.76 1.12 8.704 1.6 3.52 0.608 7.168 1.12 10.752 1.6 6.08 0.864 12.16 1.6 18.336 2.208a362.752 362.752 0 0 0 19.008 1.184c5.184 0.224 10.4 0.384 15.616 0.384 5.216 0 10.464-0.16 15.648-0.384a362.752 362.752 0 0 0 19.008-1.184c6.08-0.576 12.224-1.344 18.304-2.24 3.616-0.448 7.2-0.96 10.784-1.536l8.704-1.632 1.76-0.384 9.28-34.592 19.52-72.992c11.712-4.512 23.168-9.472 34.08-15.392 1.248-0.672 2.4-1.504 3.616-2.176 14.304-8.064 27.84-17.216 40.512-27.52l72.96 19.584 34.528 9.248 1.216-1.344c1.92-2.24 3.904-4.48 5.76-6.752 2.304-2.752 4.48-5.632 6.72-8.448 3.84-4.864 7.552-9.792 11.136-14.848 1.984-2.816 3.904-5.696 5.824-8.544l4.672-7.232a357.472 357.472 0 0 0 19.616-34.88 397.184 397.184 0 0 0 11.776-26.336c1.344-3.328 2.72-6.656 4-10.048 1.024-2.784 1.984-5.568 2.944-8.384 0.192-0.576 0.32-1.152 0.544-1.728l-25.184-25.184-53.6-53.6c1.92-12.064 3.104-24.352 3.488-36.896 0.064-2.72 0.384-5.44 0.384-8.16 0-2.752-0.32-5.44-0.384-8.16a291.136 291.136 0 0 0-3.52-36.864l53.632-53.632 25.184-25.184-0.544-1.696c-0.96-2.816-1.92-5.6-2.944-8.384-1.28-3.392-2.624-6.72-4-10.08a376.32 376.32 0 0 0-11.776-26.336 435.84 435.84 0 0 0-11.456-21.44c-2.624-4.544-5.376-8.992-8.16-13.44-1.536-2.368-3.072-4.8-4.64-7.136a315.84 315.84 0 0 0-16.96-23.456c-2.24-2.88-4.48-5.696-6.72-8.448-1.92-2.304-3.84-4.512-5.792-6.752-0.384-0.48-0.8-0.896-1.216-1.344l-34.56 9.248-72.96 19.52z m-305.12-139.328c-2.624 0.896-5.28 1.728-7.872 2.688l-3.328 1.216-3.328 1.28c4.896-1.92 9.856-3.584 14.816-5.248l-0.32 0.064z m-119.424 66.368l-2.656 2.24c-2.144 1.824-4.224 3.712-6.336 5.568l-0.224 0.192c3.968-3.52 7.936-6.976 12.064-10.272l-2.88 2.24z m623.776 245.664l-0.192 0.16-0.096 0.128h-0.032l-29.184 29.216c0.416 7.104 1.056 14.144 1.056 21.344 0 7.232-0.64 14.272-1.056 21.376l29.184 29.184 0.128 0.128 0.192 0.192 54.72 54.72a444.032 444.032 0 0 1-18.4 57.376 449.664 449.664 0 0 1-28.8 61.024c-11.424 19.84-24.576 38.08-38.432 55.456a449.024 449.024 0 0 1-40.48 44.64l-74.752-20.032-0.064-0.032-0.224-0.064-0.16-0.032h-0.032l-39.424-10.56a348.448 348.448 0 0 1-37.472 21.376l-10.624 39.68-0.032 0.064-0.032 0.16-0.064 0.224v0.064l-20.032 74.752a447.68 447.68 0 0 1-58.88 12.736A448.128 448.128 0 0 1 512 832c-22.912 0-45.248-2.24-67.232-5.568-20.096-3.04-39.776-7.136-58.88-12.736l-20.032-74.752-0.032-0.064-0.064-0.224-0.032-0.16v-0.064l-10.656-39.68c-12.928-6.464-25.504-13.472-37.472-21.44l-39.392 10.56-0.064 0.064h-0.16l-0.224 0.096h-0.064l-74.72 20.064c-14.432-13.76-27.84-28.8-40.48-44.64A446.816 446.816 0 0 1 124.032 608c-11.456-19.84-20.672-40.32-28.8-61.024A450.496 450.496 0 0 1 76.8 489.6l54.72-54.72v-0.064l0.224-0.16 0.096-0.128v-0.032l29.216-29.184C160.64 398.24 160 391.2 160 384c0-7.2 0.64-14.208 1.088-21.312l-29.184-29.184-0.032-0.032-0.096-0.128-0.192-0.192-0.032-0.032L76.8 278.4c4.704-19.328 11.008-38.464 18.4-57.344 8.128-20.704 17.344-41.216 28.8-61.056 11.456-19.84 24.576-38.08 38.464-55.424 12.672-15.872 26.048-30.88 40.48-44.64l74.72 20.032h0.064l0.224 0.064 0.16 0.064h0.064l39.36 10.56c12-7.936 24.576-14.912 37.504-21.376l10.656-39.712v-0.224l0.096-0.224v-0.032l20.064-74.752c19.104-5.6 38.784-9.728 58.88-12.736a447.68 447.68 0 0 1 67.2-5.6c22.976 0 45.28 2.24 67.296 5.6a442.56 442.56 0 0 1 58.88 12.736l20.032 74.752 0.064 0.256 0.064 0.192 10.624 39.68c12.928 6.496 25.504 13.504 37.44 21.44l39.456-10.56v-0.032l0.192-0.032 0.224-0.064h0.064l74.752-20.032c14.4 13.76 27.808 28.768 40.48 44.64A449.92 449.92 0 0 1 900 160c11.456 19.84 20.64 40.32 28.768 61.056 7.424 18.88 13.728 37.984 18.432 57.344l-54.72 54.72h-0.032z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test10" unicode="&#58946;" d="M192 128v50.752l56.384 56.384 46.144 46.144 0.096 0.096-0.416 0.416A253.984 253.984 0 0 0 256 416a256 256 0 0 0 512 0c0-49.28-14.048-95.2-38.208-134.208l-0.416-0.416 0.096-0.096 46.144-46.144L832 178.752V128H192z m320-128a64 64 0 0 0-64 64h128a64 64 0 0 0-64-64z m374.624 214.656l-79.072 79.04A317.088 317.088 0 0 1 832 416c0 165.664-126.528 302.272-288 318.368V800h-64v-65.632C318.528 718.272 192 581.664 192 416c0-43.328 8.736-84.608 24.448-122.304l-79.072-79.04A32.032 32.032 0 0 1 128 192v-128h256c0-70.592 57.408-128 128-128s128 57.408 128 128h256v128c0 8.832-3.584 16.832-9.376 22.656z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test11" unicode="&#58947;" d="M192 160v18.752l56.384 56.384 46.144 46.144 0.096 0.096-0.416 0.416A253.984 253.984 0 0 0 256 416a256 256 0 0 0 256 256c49.6 0 95.744-14.336 134.976-38.752l46.24 46.208A318.432 318.432 0 0 1 544 734.208V800h-64v-65.632C318.528 718.272 192 581.664 192 416c0-43.328 8.736-84.608 24.448-122.304l-79.072-79.04A32.032 32.032 0 0 1 128 192v-32h64zM301.248 128L727.04 553.792a253.504 253.504 0 0 0 2.752-272l-0.416-0.416 0.096-0.096 46.144-46.144L832 178.752V128H301.248zM512 0a64 64 0 0 0-64 64h128a64 64 0 0 0-64-64z m374.592 214.656l-79.04 79.04A317.664 317.664 0 0 1 832 416a317.76 317.76 0 0 1-58.56 184.16l145.184 145.216-45.248 45.248-142.336-142.336-45.28-45.28L105.376 22.624l45.248-45.248L237.248 64H384c0-70.592 57.408-128 128-128s128 57.408 128 128h256v128a31.936 31.936 0 0 1-9.408 22.656z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test12" unicode="&#58952;" d="M640 608a64 64 0 1 0 0.032 128.032A64 64 0 0 0 640 608z m123.456 96c-14.304 55.04-64 96-123.456 96s-109.152-40.96-123.456-96H128v-64h388.544c14.304-55.04 64-96 123.456-96s109.152 40.96 123.456 96H896V704h-132.544zM640 32a64 64 0 1 0 0.032 128.032A64 64 0 0 0 640 32m0 192c-59.456 0-109.152-40.96-123.456-96H128v-64h388.544c14.304-55.04 64-96 123.456-96s109.152 40.96 123.456 96H896v64h-132.544c-14.304 55.04-64 96-123.456 96M384 320a64 64 0 1 0 0.032 128.032A64 64 0 0 0 384 320m0 192c-59.456 0-109.152-40.96-123.456-96H128v-64h132.544c14.304-55.04 64-96 123.456-96s109.152 40.96 123.456 96H896v64H507.456c-14.304 55.04-64 96-123.456 96" horiz-adv-x="1024" />
<glyph glyph-name="icon-test13" unicode="&#58961;" d="M512 0C299.936 0 128 171.936 128 384S299.936 768 512 768s384-171.936 384-384-171.936-384-384-384m0 832C264.96 832 64 631.04 64 384s200.96-448 448-448 448 200.96 448 448S759.04 832 512 832M432 277.248l-121.376 121.376-45.248-45.248 166.624-166.624 326.624 326.624-45.248 45.248z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test14" unicode="&#58962;" d="M512 0C299.936 0 128 171.936 128 384S299.936 768 512 768s384-171.936 384-384-171.936-384-384-384m0 832C264.96 832 64 631.04 64 384s200.96-448 448-448 448 200.96 448 448S759.04 832 512 832M665.376 582.624L512 429.248l-153.376 153.376-45.248-45.248L466.752 384l-153.376-153.376 45.248-45.248L512 338.752l153.376-153.376 45.248 45.248L557.248 384l153.376 153.376z" horiz-adv-x="1024" />
<glyph glyph-name="icon-test15" unicode="&#58963;" d="M805.056 136.192L264.192 677.088A382.24 382.24 0 0 0 512 767.968c212.064 0 384-171.872 384-384 0-94.464-34.24-180.896-90.944-247.776M128 384a382.08 382.08 0 0 0 90.944 247.84l540.864-540.896A381.984 381.984 0 0 0 512 0C299.936 0 128 171.936 128 384M512 832C264.96 832 64 631.04 64 384s200.96-448 448-448 448 200.96 448 448S759.04 832 512 832" horiz-adv-x="1024" />
<glyph glyph-name="bofangjilu" unicode="&#59565;" d="M822.496 422.848l52.053333-29.290667C869.461333 589.44 709.098667 746.666667 512 746.666667c-200.298667 0-362.666667-162.368-362.666667-362.666667s162.368-362.666667 362.666667-362.666667c122.538667 0 234.645333 61.194667 301.578667 161.152a32 32 0 1 0 53.173333-35.616C788.064 29.365333 656.117333-42.666667 512-42.666667 276.362667-42.666667 85.333333 148.362667 85.333333 384S276.362667 810.666667 512 810.666667s426.666667-191.029333 426.666667-426.666667c0-10.954667-0.853333-26.357333-2.517334-46.528-1.930667-23.242667-27.274667-36.682667-47.594666-25.248l-97.450667 54.848a32 32 0 1 0 31.392 55.786667z m-493.12-176.213333L480 397.237333V576a32 32 0 0 0 64 0v-192a32 32 0 0 0-9.376-22.624l-160-160a32 32 0 1 0-45.248 45.248z" horiz-adv-x="1024" />
<glyph glyph-name="chuangzuo" unicode="&#59566;" d="M896 32a32 32 0 0 0 0-64H128a32 32 0 0 0 0 64z m-60.16 733.621333l15.093333-15.093333c45.866667-45.834667 45.866667-120.16 0-166.005333L418.794667 152.661333a160.192 160.192 0 0 0-78.122667-42.986666l-152.245333-34.197334c-23.84-5.365333-44.661333 16.853333-37.749334 40.288l43.338667 146.88a160.042667 160.042667 0 0 0 40.373333 67.925334l435.328 435.050666c45.866667 45.834667 120.245333 45.834667 166.112 0zM636.32 641.696L279.68 285.290667a96.021333 96.021333 0 0 1-24.213333-40.746667l-27.946667-94.656 99.093333 22.261333a96.117333 96.117333 0 0 1 46.869334 25.781334L726.933333 551.157333l-90.602666 90.538667z m78.698667 78.656l-33.397334-33.386667 90.602667-90.538666 33.386667 33.376a53.333333 53.333333 0 0 1 0 75.456l-15.093334 15.093333a53.408 53.408 0 0 1-75.498666 0z" horiz-adv-x="1024" />
<glyph glyph-name="dingwei" unicode="&#59567;" d="M648.256 45.728a32 32 0 1 0-40.704 49.386667C758.304 219.306667 832 329.962667 832 424.928 832 602.656 688.693333 746.666667 512 746.666667c-176.693333 0-320-144.010667-320-321.738667 0-115.232 108.416-253.045333 329.173333-409.493333a32 32 0 0 0-37.013333-52.213334C248.021333 130.570667 128 283.146667 128 424.928 128 637.930667 299.882667 810.666667 512 810.666667s384-172.736 384-385.738667c0-118.378667-83.701333-244.053333-247.744-379.2zM512 277.333333c-82.474667 0-149.333333 66.858667-149.333333 149.333334s66.858667 149.333333 149.333333 149.333333 149.333333-66.858667 149.333333-149.333333-66.858667-149.333333-149.333333-149.333334z m0 64a85.333333 85.333333 0 1 1 0 170.666667 85.333333 85.333333 0 0 1 0-170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="dingdan" unicode="&#59568;" d="M821.333333 640a32 32 0 0 0 64 0v-565.333333c0-64.8-52.533333-117.333333-117.333333-117.333334H256c-64.8 0-117.333333 52.533333-117.333333 117.333334V693.333333c0 64.8 52.533333 117.333333 117.333333 117.333334h597.333333a32 32 0 0 0 0-64H256a53.333333 53.333333 0 0 1-53.333333-53.333334v-618.666666a53.333333 53.333333 0 0 1 53.333333-53.333334h512a53.333333 53.333333 0 0 1 53.333333 53.333334V640zM341.333333 458.666667a32 32 0 0 0 0 64h341.333334a32 32 0 0 0 0-64H341.333333z m0-170.666667a32 32 0 0 0 0 64h213.333334a32 32 0 0 0 0-64H341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="gengduo" unicode="&#59569;" d="M298.666667 309.333333a74.666667 74.666667 0 1 0 0 149.333334 74.666667 74.666667 0 0 0 0-149.333334z m213.333333 0a74.666667 74.666667 0 1 0 0 149.333334 74.666667 74.666667 0 0 0 0-149.333334z m213.333333 0a74.666667 74.666667 0 1 0 0 149.333334 74.666667 74.666667 0 0 0 0-149.333334z" horiz-adv-x="1024" />
<glyph glyph-name="fenxiang" unicode="&#59570;" d="M853.333333 362.666667a32 32 0 0 0 64 0v-266.666667c0-64.8-52.533333-117.333333-117.333333-117.333333H224c-64.8 0-117.333333 52.533333-117.333333 117.333333V640c0 64.8 52.533333 117.333333 117.333333 117.333333h277.333333a32 32 0 0 0 0-64H224a53.333333 53.333333 0 0 1-53.333333-53.333333v-544a53.333333 53.333333 0 0 1 53.333333-53.333333h576a53.333333 53.333333 0 0 1 53.333333 53.333333V362.666667z m-42.058666 277.333333l-89.792 95.402667a32 32 0 0 0 46.613333 43.861333l140.544-149.333333C927.861333 609.514667 913.376 576 885.333333 576H724.704C643.029333 576 576 504.789333 576 416v-192a32 32 0 1 0-64 0V416c0 123.296 94.784 224 212.704 224h86.570667z" horiz-adv-x="1024" />
<glyph glyph-name="paihangbang" unicode="&#59571;" d="M544 234.666667a32 32 0 0 0-64 0V533.333333a32 32 0 0 0 64 0v-298.666666z m160 0a32 32 0 0 0-64 0V405.333333a32 32 0 0 0 64 0v-170.666666z m-320 0a32 32 0 0 0-64 0V448a32 32 0 0 0 64 0v-213.333333zM202.666667 757.333333h618.666666c64.8 0 117.333333-52.533333 117.333334-117.333333v-512c0-64.8-52.533333-117.333333-117.333334-117.333333H202.666667c-64.8 0-117.333333 52.533333-117.333334 117.333333V640c0 64.8 52.533333 117.333333 117.333334 117.333333z m0-64a53.333333 53.333333 0 0 1-53.333334-53.333333v-512a53.333333 53.333333 0 0 1 53.333334-53.333333h618.666666a53.333333 53.333333 0 0 1 53.333334 53.333333V640a53.333333 53.333333 0 0 1-53.333334 53.333333H202.666667z" horiz-adv-x="1024" />
<glyph glyph-name="qupiao" unicode="&#59572;" d="M821.333333 810.666667c64.8 0 117.333333-52.533333 117.333334-117.333334v-149.333333c0-64.8-52.533333-117.333333-117.333334-117.333333h-21.333333v-437.333334c0-26.368-30.101333-41.418667-51.2-25.6L682.666667 13.333333l-59.733334-44.8a42.666667 42.666667 0 0 0-51.2 0l-59.733333 44.8-59.733333-44.8a42.666667 42.666667 0 0 0-51.2 0l-59.733334 44.8-66.133333-49.6c-21.098667-15.818667-51.2-0.768-51.2 25.6V426.666667h-21.333333c-63.776 0-115.658667 50.88-117.290667 114.261333L85.333333 544V693.333333c0 64.8 52.533333 117.333333 117.333334 117.333334z m-96-213.333334H298.666667a10.666667 10.666667 0 0 1-10.666667-10.666666v-533.333334l27.733333 20.8a42.666667 42.666667 0 0 0 51.2 0l59.733334-44.8 59.733333 44.8a42.666667 42.666667 0 0 0 51.2 0l59.733333-44.8 59.733334 44.8a42.666667 42.666667 0 0 0 51.2 0L736 53.333333V586.666667a10.666667 10.666667 0 0 1-10.666667 10.666666zM543.978667 307.018667a32 32 0 1 0 0-64h-128a32 32 0 1 0 0 64z m64.032 138.666666a32 32 0 0 0 0-64H415.989333a32 32 0 0 0 0 64zM821.333333 746.666667H202.666667a53.333333 53.333333 0 0 1-53.333334-53.333334v-149.333333a53.333333 53.333333 0 0 1 53.333334-53.333333h21.333333v96a74.666667 74.666667 0 0 0 74.666667 74.666666h426.666666a74.666667 74.666667 0 0 0 74.666667-74.666666v-96h21.333333a53.333333 53.333333 0 0 1 53.28 51.018666L874.666667 544V693.333333a53.333333 53.333333 0 0 1-53.333334 53.333334z" horiz-adv-x="1024" />
<glyph glyph-name="rili" unicode="&#59573;" d="M725.333333 725.333333h74.709334C864.853333 725.333333 917.333333 672.810667 917.333333 607.904V96.106667C917.333333 31.242667 864.832-21.333333 800.042667-21.333333H223.957333C159.146667-21.333333 106.666667 31.189333 106.666667 96.096V607.893333C106.666667 672.757333 159.168 725.333333 223.957333 725.333333H298.666667v32a32 32 0 0 0 64 0v-32h298.666666v32a32 32 0 0 0 64 0v-32z m0-64v-32a32 32 0 0 0-64 0v32H362.666667v-32a32 32 0 0 0-64 0v32h-74.709334A53.354667 53.354667 0 0 1 170.666667 607.904V96.106667A53.301333 53.301333 0 0 1 223.957333 42.666667h576.085334A53.354667 53.354667 0 0 1 853.333333 96.096V607.893333A53.301333 53.301333 0 0 1 800.042667 661.333333H725.333333z m-10.666666-224a32 32 0 0 0 0-64H309.333333a32 32 0 0 0 0 64h405.333334zM586.666667 277.333333a32 32 0 0 0 0-64H309.333333a32 32 0 0 0 0 64h277.333334z" horiz-adv-x="1024" />
<glyph glyph-name="shandian" unicode="&#59574;" d="M395.765333 309.429333h-171.733333c-22.421333 0-37.888 22.442667-29.909333 43.381334L364.768 800.725333A32 32 0 0 0 394.666667 821.333333h287.957333c22.72 0 38.208-23.018667 29.632-44.064l-99.36-243.882666h187.050667c27.509333 0 42.186667-32.426667 24.042666-53.098667l-458.602666-522.56c-22.293333-25.408-63.626667-3.392-54.976 29.28l85.354666 322.421333zM416.714667 757.333333L270.453333 373.418667h166.869334a32 32 0 0 0 30.933333-40.181334l-61.130667-230.954666 322.176 367.114666H565.312c-22.72 0-38.208 23.018667-29.632 44.064l99.36 243.882667H416.714667z" horiz-adv-x="1024" />
<glyph glyph-name="shangquan" unicode="&#59575;" d="M149.333333 21.333333V693.333333c0 64.8 52.533333 117.333333 117.333334 117.333334h277.333333c64.8 0 117.333333-52.533333 117.333333-117.333334v-65.866666l149.952-77.653334A117.333333 117.333333 0 0 0 874.666667 445.621333V21.333333h32a32 32 0 0 0 0-64H117.333333a32 32 0 0 0 0 64h32z m512 0h149.333334V445.621333a53.333333 53.333333 0 0 1-28.8 47.36L661.333333 555.392V21.333333z m-448 0h384V693.333333a53.333333 53.333333 0 0 1-53.333333 53.333334H266.666667a53.333333 53.333333 0 0 1-53.333334-53.333334v-672z" horiz-adv-x="1024" />
<glyph glyph-name="shanchu" unicode="&#59576;" d="M202.666667 640h-42.666667a32 32 0 0 0 0 64h704a32 32 0 0 0 0-64H266.666667v-565.333333a53.333333 53.333333 0 0 1 53.333333-53.333334h384a53.333333 53.333333 0 0 1 53.333333 53.333334V544a32 32 0 0 0 64 0v-469.333333c0-64.8-52.533333-117.333333-117.333333-117.333334H320c-64.8 0-117.333333 52.533333-117.333333 117.333334V640z m224 106.666667a32 32 0 0 0 0 64h170.666666a32 32 0 0 0 0-64H426.666667z m-32-288a32 32 0 0 0 64 0v-256a32 32 0 0 0-64 0V458.666667z m170.666666 0a32 32 0 0 0 64 0v-256a32 32 0 0 0-64 0V458.666667z" horiz-adv-x="1024" />
<glyph glyph-name="shezhi" unicode="&#59577;" d="M944.48 343.541333l-182.357333-330.666666a73.792 73.792 0 0 0-64.565334-38.325334h-362.133333a73.792 73.792 0 0 0-64.565333 38.325334l-182.357334 330.666666a75.338667 75.338667 0 0 0 0 72.682667l182.357334 330.666667a73.792 73.792 0 0 0 64.565333 38.325333h362.133333a73.792 73.792 0 0 0 64.565334-38.325333l182.357333-330.666667a75.338667 75.338667 0 0 0 0-72.682667z m-55.989333 31.146667a10.773333 10.773333 0 0 1 0 10.378667l-182.037334 330.666666a10.517333 10.517333 0 0 1-9.205333 5.482667H335.733333a10.517333 10.517333 0 0 1-9.205333-5.482667l-182.037333-330.666666a10.773333 10.773333 0 0 1 0-10.378667l182.037333-330.666667a10.517333 10.517333 0 0 1 9.205333-5.472h361.514667a10.517333 10.517333 0 0 1 9.205333 5.472l182.037334 330.666667zM513.738667 213.333333c-94.261333 0-170.666667 76.405333-170.666667 170.666667s76.405333 170.666667 170.666667 170.666667c94.250667 0 170.666667-76.405333 170.666666-170.666667s-76.416-170.666667-170.666666-170.666667z m0 64c58.912 0 106.666667 47.754667 106.666666 106.666667s-47.754667 106.666667-106.666666 106.666667-106.666667-47.754667-106.666667-106.666667 47.754667-106.666667 106.666667-106.666667z" horiz-adv-x="1024" />
<glyph glyph-name="shibai" unicode="&#59579;" d="M878.08 164.725333a32 32 0 0 0-54.88 32.938667A360.789333 360.789333 0 0 1 874.666667 384c0 200.298667-162.368 362.666667-362.666667 362.666667S149.333333 584.298667 149.333333 384s162.368-362.666667 362.666667-362.666667a360.789333 360.789333 0 0 1 186.314667 51.445334 32 32 0 0 0 32.928-54.88A424.778667 424.778667 0 0 0 512-42.666667C276.362667-42.666667 85.333333 148.362667 85.333333 384S276.362667 810.666667 512 810.666667s426.666667-191.029333 426.666667-426.666667c0-78.293333-21.152-153.568-60.586667-219.274667zM555.232 384l86.474667-86.474667a30.570667 30.570667 0 1 0-43.232-43.232L512 340.768l-86.474667-86.474667a30.570667 30.570667 0 1 0-43.232 43.232L468.768 384l-86.474667 86.474667a30.570667 30.570667 0 1 0 43.232 43.232L512 427.232l86.474667 86.474667a30.570667 30.570667 0 1 0 43.232-43.232L555.232 384z" horiz-adv-x="1024" />
<glyph glyph-name="shijian" unicode="&#59580;" d="M878.08 164.725333a32 32 0 0 0-54.88 32.938667A360.789333 360.789333 0 0 1 874.666667 384c0 200.298667-162.368 362.666667-362.666667 362.666667S149.333333 584.298667 149.333333 384s162.368-362.666667 362.666667-362.666667a360.789333 360.789333 0 0 1 186.314667 51.445334 32 32 0 0 0 32.928-54.88A424.778667 424.778667 0 0 0 512-42.666667C276.362667-42.666667 85.333333 148.362667 85.333333 384S276.362667 810.666667 512 810.666667s426.666667-191.029333 426.666667-426.666667c0-78.293333-21.152-153.568-60.586667-219.274667z m-548.704 81.898667L480 397.258667V576a32 32 0 0 0 64 0v-192a32 32 0 0 0-9.376-22.624l-160-160a32 32 0 1 0-45.248 45.248z" horiz-adv-x="1024" />
<glyph glyph-name="shoucang" unicode="&#59581;" d="M335.008-20.629333c-35.914667-22.314667-82.88-10.773333-104.693333 25.557333a77.333333 77.333333 0 0 0-8.96 57.429333l46.485333 198.24a13.141333 13.141333 0 0 1-4.021333 12.864l-152.16 132.586667c-31.605333 27.52-35.253333 75.648-8.234667 107.733333a75.68 75.68 0 0 0 51.733333 26.752L354.848 556.8c4.352 0.362667 8.245333 3.232 10.026667 7.594667l76.938666 188.170666c16.032 39.2 60.618667 57.92 99.52 41.461334a76.309333 76.309333 0 0 0 40.832-41.461334l76.938667-188.16c1.781333-4.373333 5.674667-7.253333 10.026667-7.605333l199.712-16.277333c41.877333-3.413333 72.885333-40.458667 69.568-82.517334a76.938667 76.938667 0 0 0-26.08-51.978666l-152.16-132.586667c-3.541333-3.082667-5.141333-8.074667-4.021334-12.853333l46.485334-198.24c9.621333-41.013333-15.36-82.336-56.138667-92.224a75.285333 75.285333 0 0 0-57.525333 9.237333l-170.976 106.24a11.296 11.296 0 0 1-12.010667 0l-170.986667-106.24zM551.786667 139.968l170.976-106.24c2.624-1.621333 5.717333-2.122667 8.650666-1.408 6.410667 1.557333 10.56 8.426667 8.928 15.424l-46.485333 198.24a77.141333 77.141333 0 0 0 24.277333 75.733333L870.293333 454.293333c2.485333 2.165333 4.053333 5.312 4.330667 8.746667 0.565333 7.136-4.490667 13.173333-10.976 13.696l-199.712 16.288a75.989333 75.989333 0 0 0-64.064 47.168l-76.938667 188.16a12.309333 12.309333 0 0 1-6.538666 6.741333c-5.898667 2.496-12.725333-0.373333-15.328-6.741333l-76.949334-188.16a75.989333 75.989333 0 0 0-64.064-47.168l-199.701333-16.288a11.68 11.68 0 0 1-7.978667-4.181333 13.226667 13.226667 0 0 1 1.333334-18.261334l152.16-132.586666a77.141333 77.141333 0 0 0 24.277333-75.733334l-46.485333-198.229333a13.333333 13.333333 0 0 1 1.514666-9.877333c3.488-5.792 10.581333-7.530667 16.064-4.128l170.986667 106.229333a75.296 75.296 0 0 0 79.562667 0z" horiz-adv-x="1024" />
<glyph glyph-name="shouye" unicode="&#59582;" d="M155.584 553.44l312.874667 224.565333a74.666667 74.666667 0 0 0 87.082666 0l312.874667-224.565333A117.333333 117.333333 0 0 0 917.333333 458.133333V96c0-64.8-52.533333-117.333333-117.333333-117.333333H224c-64.8 0-117.333333 52.533333-117.333333 117.333333V458.122667a117.333333 117.333333 0 0 0 48.917333 95.317333z m37.322667-51.989333A53.333333 53.333333 0 0 1 170.666667 458.122667V96a53.333333 53.333333 0 0 1 53.333333-53.333333h576a53.333333 53.333333 0 0 1 53.333333 53.333333V458.122667a53.333333 53.333333 0 0 1-22.24 43.328L518.218667 726.016a10.666667 10.666667 0 0 1-12.437334 0L192.906667 501.44z" horiz-adv-x="1024" />
<glyph glyph-name="shuju" unicode="&#59583;" d="M512-42.666667C276.362667-42.666667 85.333333 148.362667 85.333333 384S276.362667 810.666667 512 810.666667s426.666667-191.029333 426.666667-426.666667-191.029333-426.666667-426.666667-426.666667z m0 64c200.298667 0 362.666667 162.368 362.666667 362.666667S712.298667 746.666667 512 746.666667 149.333333 584.298667 149.333333 384s162.368-362.666667 362.666667-362.666667z m8.213333 265.674667l-81.429333 88.704-95.754667-99.264a32 32 0 1 0-46.058666 44.437333l119.36 123.733334a32 32 0 0 0 46.613333-0.576l81.792-89.109334 136.608 136.992a32 32 0 1 0 45.312-45.184l-160.213333-160.682666a32 32 0 0 0-46.24 0.96z" horiz-adv-x="1024" />
<glyph glyph-name="shuaxin" unicode="&#59584;" d="M822.496 422.848a32 32 0 0 1-31.392-55.776l97.450667-54.848c20.32-11.434667 45.653333 2.005333 47.594666 25.248 1.674667 20.16 2.517333 35.573333 2.517334 46.528C938.666667 619.637333 747.637333 810.666667 512 810.666667S85.333333 619.637333 85.333333 384s191.029333-426.666667 426.666667-426.666667c144.106667 0 276.053333 72.032 354.752 189.536a32 32 0 1 1-53.173333 35.616C746.645333 82.538667 634.538667 21.333333 512 21.333333c-200.298667 0-362.666667 162.368-362.666667 362.666667s162.368 362.666667 362.666667 362.666667c197.098667 0 357.472-157.226667 362.538667-353.109334l-52.042667 29.290667z" horiz-adv-x="1024" />
<glyph glyph-name="sousuo" unicode="&#59585;" d="M797.525333 143.733333c62.069333 72.736 97.28 165.002667 97.28 262.186667C894.816 629.472 713.621333 810.666667 490.08 810.666667 266.538667 810.666667 85.333333 629.461333 85.333333 405.930667 85.333333 182.389333 266.538667 1.173333 490.069333 1.173333a404.693333 404.693333 0 0 1 118.208 17.546667 32 32 0 0 1-18.666666 61.216 340.693333 340.693333 0 0 0-99.541334-14.762667C301.888 65.184 149.333333 217.738667 149.333333 405.930667 149.333333 594.112 301.888 746.666667 490.069333 746.666667 678.261333 746.666667 830.826667 594.112 830.826667 405.930667c0-89.28-35.381333-173.696-97.141334-237.322667a36.992 36.992 0 0 1 0.384-51.925333l149.973334-149.973334a32 32 0 0 1 45.258666 45.248L797.525333 143.733333z" horiz-adv-x="1024" />
<glyph glyph-name="tanhao" unicode="&#59586;" d="M512 810.666667c235.637333 0 426.666667-191.029333 426.666667-426.666667 0-78.293333-21.152-153.568-60.586667-219.274667a32 32 0 0 0-54.88 32.938667A360.789333 360.789333 0 0 1 874.666667 384c0 200.298667-162.368 362.666667-362.666667 362.666667S149.333333 584.298667 149.333333 384s162.368-362.666667 362.666667-362.666667a360.789333 360.789333 0 0 1 186.314667 51.445334 32 32 0 0 0 32.928-54.88A424.778667 424.778667 0 0 0 512-42.666667C276.362667-42.666667 85.333333 148.362667 85.333333 384S276.362667 810.666667 512 810.666667z m0-565.333334a42.666667 42.666667 0 1 0 0-85.333333 42.666667 42.666667 0 0 0 0 85.333333z m0 362.666667a42.666667 42.666667 0 0 0 42.666667-42.666667v-234.666666a42.666667 42.666667 0 1 0-85.333334 0V565.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="tupian" unicode="&#59587;" d="M938.666667 342.08V128c0-64.8-52.533333-117.333333-117.333334-117.333333H202.666667c-64.8 0-117.333333 52.533333-117.333334 117.333333V640c0 64.8 52.533333 117.333333 117.333334 117.333333h618.666666c64.8 0 117.333333-52.533333 117.333334-117.333333v-297.92z m-64 74.624V640a53.333333 53.333333 0 0 1-53.333334 53.333333H202.666667a53.333333 53.333333 0 0 1-53.333334-53.333333v-344.48A290.090667 290.090667 0 0 0 192 298.666667a286.88 286.88 0 0 0 183.296-65.845334C427.029333 367.616 556.906667 458.666667 704 458.666667c65.706667 0 126.997333-16.778667 170.666667-41.962667z m0-82.24c-5.333333 8.32-21.130667 21.653333-43.648 32.917333C796.768 384.512 753.045333 394.666667 704 394.666667c-121.770667 0-229.130667-76.266667-270.432-188.693334-2.730667-7.445333-7.402667-20.32-13.994667-38.581333-7.68-21.301333-34.453333-28.106667-51.370666-13.056-16.437333 14.634667-28.554667 25.066667-36.138667 31.146667A222.890667 222.890667 0 0 1 192 234.666667c-14.464 0-28.725333-1.365333-42.666667-4.053334V128a53.333333 53.333333 0 0 1 53.333334-53.333333h618.666666a53.333333 53.333333 0 0 1 53.333334 53.333333V334.474667zM320 416a96 96 0 1 0 0 192 96 96 0 0 0 0-192z m0 64a32 32 0 1 1 0 64 32 32 0 0 1 0-64z" horiz-adv-x="1024" />
<glyph glyph-name="wenjuan" unicode="&#59588;" d="M895.946667 161.952l1.066666-1.013333a29.824 29.824 0 0 0 0-43.413334l-162.261333-152.96a31.925333 31.925333 0 0 0-22.762667-8.704 31.925333 31.925333 0 0 0-22.773333 8.704l-93.184 87.84a29.824 29.824 0 0 0 0 43.413334l1.077333 1.013333a32 32 0 0 0 43.904 0l70.976-66.901333 140.053334 132.021333a32 32 0 0 0 43.904 0zM768 810.666667c64.8 0 117.333333-52.533333 117.333333-117.333334v-394.666666a32 32 0 0 0-64 0V693.333333a53.333333 53.333333 0 0 1-53.333333 53.333334H256a53.333333 53.333333 0 0 1-53.333333-53.333334v-618.666666a53.333333 53.333333 0 0 1 53.333333-53.333334h234.666667a32 32 0 0 0 0-64H256c-64.8 0-117.333333 52.533333-117.333333 117.333334V693.333333c0 64.8 52.533333 117.333333 117.333333 117.333334zM554.666667 352a32 32 0 0 0 0-64H341.333333a32 32 0 0 0 0 64z m128 170.666667a32 32 0 0 0 0-64H341.333333a32 32 0 0 0 0 64z" horiz-adv-x="1024" />
<glyph glyph-name="xiazai" unicode="&#59589;" d="M507.136 381.056c3.072 4.362667 7.210667 7.925333 12.032 10.314667a37.365333 37.365333 0 0 0 46.634667-6.144l97.418666-102.794667a32 32 0 0 0-46.442666-44.021333L565.333333 292.682667V42.666667a32 32 0 1 0-64 0V287.242667l-52.618666-50.016a32 32 0 0 0-44.096 46.4l102.517333 97.429333zM512 757.333333c123.018667 0 228.213333-85.696 259.424-204.469333C864.298667 551.264 938.666667 473.248 938.666667 377.781333 938.666667 281.312 862.752 202.666667 768.533333 202.666667a32 32 0 0 0 0 64C826.890667 266.666667 874.666667 316.16 874.666667 377.781333c0 61.610667-47.776 111.104-106.133334 111.104-5.856 0-11.626667-0.490667-17.301333-1.461333a32 32 0 0 0-37.024 26.666667C698.346667 616.96 612.714667 693.333333 512 693.333333c-73.834667 0-140.928-41.066667-177.376-106.613333a32 32 0 0 0-30.122667-16.373333c-3.168 0.213333-6.357333 0.32-9.568 0.32C214.784 570.666667 149.333333 502.858667 149.333333 418.666667S214.784 266.666667 294.933333 266.666667a32 32 0 1 0 0-64C178.912 202.666667 85.333333 299.626667 85.333333 418.666667c0 116.938667 90.293333 212.554667 203.456 215.904C338.090667 710.304 421.013333 757.333333 512 757.333333z" horiz-adv-x="1024" />
<glyph glyph-name="yanjing" unicode="&#59590;" d="M512 64c-156.448 0-296.021333 98.730667-418.410667 291.605333a52.938667 52.938667 0 0 0 0 56.789334C215.978667 605.269333 355.552 704 512 704c156.448 0 296.021333-98.730667 418.410667-291.605333a52.938667 52.938667 0 0 0 0-56.789334C808.021333 162.730667 668.448 64 512 64z m0 576c-129.514667 0-249.461333-83.850667-360.117333-256C262.538667 211.850667 382.485333 128 512 128c129.514667 0 249.461333 83.850667 360.117333 256C761.461333 556.149333 641.514667 640 512 640z m0-405.333333c-83.210667 0-150.666667 66.858667-150.666667 149.333333S428.789333 533.333333 512 533.333333s150.666667-66.858667 150.666667-149.333333S595.210667 234.666667 512 234.666667z m0 64c47.552 0 86.101333 38.208 86.101333 85.333333S559.552 469.333333 512 469.333333c-47.552 0-86.101333-38.208-86.101333-85.333333s38.549333-85.333333 86.101333-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="zengjia" unicode="&#59591;" d="M512-42.666667C276.362667-42.666667 85.333333 148.362667 85.333333 384S276.362667 810.666667 512 810.666667s426.666667-191.029333 426.666667-426.666667-191.029333-426.666667-426.666667-426.666667z m0 64c200.298667 0 362.666667 162.368 362.666667 362.666667S712.298667 746.666667 512 746.666667 149.333333 584.298667 149.333333 384s162.368-362.666667 362.666667-362.666667z m32 394.666667h128a32 32 0 0 0 0-64H544v-128a32 32 0 0 0-64 0V352H352a32 32 0 0 0 0 64h128V544a32 32 0 0 0 64 0v-128z" horiz-adv-x="1024" />
<glyph glyph-name="yunying" unicode="&#58897;" d="M539.62 825.5c-15 0-27.17-12.17-27.17-27.17v-386.71c0-15 12.17-27.17 27.17-27.17h386.71c15 0 27.17 12.17 27.17 27.17 0 228.21-185.66 413.88-413.88 413.88z m27.17-386.71V770.15c176.65-13.26 318.1-154.71 331.35-331.36H566.79zM867.55 297.9c-14.59 3.21-29.17-5.92-32.45-20.56-36.48-162.53-183.98-280.5-350.72-280.5-198.25 0-359.54 161.29-359.54 359.54 0 166.75 117.96 314.24 280.49 350.71 14.65 3.29 23.85 17.82 20.56 32.46-3.28 14.65-17.87 23.85-32.45 20.56C206.32 718.12 70.5 548.33 70.5 356.38c0-228.21 185.66-413.88 413.88-413.88 191.95 0 361.74 135.81 403.73 322.94 3.29 14.64-5.92 29.17-20.56 32.46z" horiz-adv-x="1024" />
<glyph glyph-name="shujufenxi" unicode="&#58898;" d="M180.85 264.04c-17.42 0-31.54-14.12-31.54-31.54v-220.77c0-17.42 14.12-31.54 31.54-31.54s31.54 14.12 31.54 31.54V232.5c0 17.42-14.13 31.54-31.54 31.54zM874.05 548.2c17.25 2.47 29.23 18.45 26.75 35.7l-25.33 176.86c-2.46 17.24-18.54 29.14-35.68 26.75l-176.86-25.34c-17.25-2.47-29.23-18.46-26.75-35.7 2.25-15.72 15.74-27.07 31.17-27.07 1.49 0 3 0.11 4.51 0.32l107.67 15.43L631.58 513.4 404.77 683.5c-11.9 8.93-28.47 8.32-39.7-1.49L112.76 461.24c-13.11-11.47-14.43-31.4-2.96-44.5 6.24-7.13 14.97-10.77 23.75-10.77 7.36 0 14.77 2.57 20.76 7.8L387.37 617.7l231.86-173.89c6.74-5.07 15.15-7.17 23.56-5.97a31.56 31.56 0 0 1 20.8 12.55l161.14 219.73 13.63-95.17c2.25-15.72 15.74-27.07 31.17-27.07 1.5 0 3.01 0.1 4.52 0.32zM653.92 327.12c-17.42 0-31.54-14.12-31.54-31.54v-283.85c0-17.42 14.12-31.54 31.54-31.54s31.54 14.12 31.54 31.54V295.58c0 17.41-14.12 31.54-31.54 31.54zM417.38 469.04c-17.42 0-31.54-14.12-31.54-31.54v-425.77c0-17.42 14.12-31.54 31.54-31.54s31.54 14.12 31.54 31.54V437.5c0 17.42-14.12 31.54-31.54 31.54zM890.46 437.5c-17.42 0-31.54-14.12-31.54-31.54v-394.23c0-17.42 14.12-31.54 31.54-31.54S922-5.69 922 11.73V405.96c0 17.42-14.12 31.54-31.54 31.54z" horiz-adv-x="1024" />
<glyph glyph-name="dianshangxitong" unicode="&#58899;" d="M241.35 444.14h73.55l62.15-88.77c4.7-6.72 12.81-10.17 20.92-8.83 8.09 1.31 14.71 7.15 17.05 15.01l57.3 193.37 68.06-242.03a21.37 21.37 0 0 1 19.6-15.55c0.32-0.01 0.64-0.02 0.96-0.02 8.83 0 16.8 5.44 19.95 13.75l61.97 162.67 26.65-47.97a21.353 21.353 0 0 1 18.67-10.98h94.47c11.79 0 21.36 9.56 21.36 21.36s-9.57 21.36-21.36 21.36h-81.91l-42.84 77.11c-4.03 7.25-11.75 11.58-20.2 10.93-8.29-0.59-15.47-5.94-18.42-13.7L564 386.68l-70.59 250.99A21.37 21.37 0 0 1 473 653.24c-9.91 0.2-17.92-6.16-20.63-15.29l-65.72-221.83-43.13 61.61a21.348 21.348 0 0 1-17.49 9.11h-84.67c-11.79 0-21.36-9.56-21.36-21.36s9.56-21.34 21.35-21.34zM903.53 794.58H120.47c-15.72 0-28.47-12.75-28.47-28.47v-581.64c0-15.72 12.75-28.47 28.47-28.47h783.05c15.72 0 28.47 12.75 28.47 28.47V766.11c0.01 15.72-12.74 28.47-28.46 28.47z m-28.48-581.64h-726.1V737.63h726.1v-524.69zM665.05 30.37H337.59c-15.72 0-28.47-12.75-28.47-28.47s12.75-28.47 28.47-28.47h327.46c15.72 0 28.47 12.75 28.47 28.47s-12.74 28.47-28.47 28.47z" horiz-adv-x="1024" />
</font>
</defs></svg>
<?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>
<svg :class="svgClass" aria-hidden="true" v-on="$listeners">
<use :xlink:href="iconName"/>
</svg>
</template>
<script>
export default {
name: 'SvgIcon',
props: {
iconClass: {
type: String,
required: true
},
className: {
type: String,
default: ''
}
},
computed: {
iconName() {
return `#icon-${this.iconClass}`
},
svgClass() {
if(this.className) {
return 'svg-icon' + this.className
} else {
return 'svg-icon'
}
}
}
}
</script>
<style scoped>
/* 自定义默认图标样式 */
.svg-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
\ No newline at end of file
<template>
<div class="upload-container">
<el-button :style="{background:color,borderColor:color}" icon="el-icon-upload" size="mini" type="primary" @click=" dialogVisible=true">
upload
</el-button>
<el-dialog :visible.sync="dialogVisible">
<el-upload
:multiple="true"
:file-list="fileList"
:show-file-list="true"
:on-remove="handleRemove"
:on-success="handleSuccess"
:before-upload="beforeUpload"
class="editor-slide-upload"
action="https://httpbin.org/post"
list-type="picture-card"
>
<el-button size="small" type="primary">
Click upload
</el-button>
</el-upload>
<el-button @click="dialogVisible = false">
Cancel
</el-button>
<el-button type="primary" @click="handleSubmit">
Confirm
</el-button>
</el-dialog>
</div>
</template>
<script>
// import { getToken } from 'api/qiniu'
export default {
name: 'EditorSlideUpload',
props: {
color: {
type: String,
default: '#1890ff'
}
},
data() {
return {
dialogVisible: false,
listObj: {},
fileList: []
}
},
methods: {
checkAllSuccess() {
return Object.keys(this.listObj).every(item => this.listObj[item].hasSuccess)
},
handleSubmit() {
const arr = Object.keys(this.listObj).map(v => this.listObj[v])
if (!this.checkAllSuccess()) {
this.$message('Please wait for all images to be uploaded successfully. If there is a network problem, please refresh the page and upload again!')
return
}
this.$emit('successCBK', arr)
this.listObj = {}
this.fileList = []
this.dialogVisible = false
},
handleSuccess(response, file) {
const uid = file.uid
const objKeyArr = Object.keys(this.listObj)
for (let i = 0, len = objKeyArr.length; i < len; i++) {
if (this.listObj[objKeyArr[i]].uid === uid) {
this.listObj[objKeyArr[i]].url = response.files.file
this.listObj[objKeyArr[i]].hasSuccess = true
return
}
}
},
handleRemove(file) {
const uid = file.uid
const objKeyArr = Object.keys(this.listObj)
for (let i = 0, len = objKeyArr.length; i < len; i++) {
if (this.listObj[objKeyArr[i]].uid === uid) {
delete this.listObj[objKeyArr[i]]
return
}
}
},
beforeUpload(file) {
const _self = this
const _URL = window.URL || window.webkitURL
const fileName = file.uid
this.listObj[fileName] = {}
return new Promise((resolve, reject) => {
const img = new Image()
img.src = _URL.createObjectURL(file)
img.onload = function() {
_self.listObj[fileName] = { hasSuccess: false, uid: file.uid, width: this.width, height: this.height }
}
resolve(true)
})
}
}
}
</script>
<style lang="scss" scoped>
.editor-slide-upload {
margin-bottom: 20px;
::v-deep .el-upload--picture-card {
width: 100%;
}
}
</style>
let callbacks = []
function loadedTinymce() {
// to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144
// check is successfully downloaded script
return window.tinymce
}
const dynamicLoadScript = (src, callback) => {
const existingScript = document.getElementById(src)
const cb = callback || function() {}
if (!existingScript) {
const script = document.createElement('script')
script.src = src // src url for the third-party library being loaded.
script.id = src
document.body.appendChild(script)
callbacks.push(cb)
const onEnd = 'onload' in script ? stdOnEnd : ieOnEnd
onEnd(script)
}
if (existingScript && cb) {
if (loadedTinymce()) {
cb(null, existingScript)
} else {
callbacks.push(cb)
}
}
function stdOnEnd(script) {
script.onload = function() {
// this.onload = null here is necessary
// because even IE9 works not like others
this.onerror = this.onload = null
for (const cb of callbacks) {
cb(null, script)
}
callbacks = null
}
script.onerror = function() {
this.onerror = this.onload = null
cb(new Error('Failed to load ' + src), script)
}
}
function ieOnEnd(script) {
script.onreadystatechange = function() {
if (this.readyState !== 'complete' && this.readyState !== 'loaded') return
this.onreadystatechange = null
for (const cb of callbacks) {
cb(null, script) // there is no way to catch loading errors in IE8
}
callbacks = null
}
}
}
export default dynamicLoadScript
<template>
<div :class="{fullscreen:fullscreen}" class="tinymce-container" :style="{width:containerWidth}">
<textarea :id="tinymceId" class="tinymce-textarea" />
<div class="editor-custom-btn-container">
<editorImage color="#1890ff" class="editor-upload-btn" @successCBK="imageSuccessCBK" />
</div>
</div>
</template>
<script>
/**
* docs:
* https://panjiachen.github.io/vue-element-admin-site/feature/component/rich-editor.html#tinymce
*/
import editorImage from './components/EditorImage'
import plugins from './plugins'
import toolbar from './toolbar'
import load from './dynamicLoadScript'
// why use this cdn, detail see https://github.com/PanJiaChen/tinymce-all-in-one
const tinymceCDN = 'https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js'
export default {
name: 'Tinymce',
components: { editorImage },
props: {
id: {
type: String,
default: function() {
return 'vue-tinymce-' + +new Date() + ((Math.random() * 1000).toFixed(0) + '')
}
},
value: {
type: String,
default: ''
},
toolbar: {
type: Array,
required: false,
default() {
return []
}
},
menubar: {
type: String,
default: 'file edit insert view format table'
},
height: {
type: [Number, String],
required: false,
default: 360
},
width: {
type: [Number, String],
required: false,
default: 'auto'
}
},
data() {
return {
hasChange: false,
hasInit: false,
tinymceId: this.id,
fullscreen: false,
languageTypeList: {
'en': 'en',
'zh': 'zh_CN',
'es': 'es_MX',
'ja': 'ja'
}
}
},
computed: {
containerWidth() {
const width = this.width
if (/^[\d]+(\.[\d]+)?$/.test(width)) { // matches `100`, `'100'`
return `${width}px`
}
return width
}
},
watch: {
value(val) {
if (!this.hasChange && this.hasInit) {
this.$nextTick(() =>
window.tinymce.get(this.tinymceId).setContent(val || ''))
}
}
},
mounted() {
this.init()
},
activated() {
if (window.tinymce) {
this.initTinymce()
}
},
deactivated() {
this.destroyTinymce()
},
destroyed() {
this.destroyTinymce()
},
methods: {
init() {
// dynamic load tinymce from cdn
load(tinymceCDN, (err) => {
if (err) {
this.$message.error(err.message)
return
}
this.initTinymce()
})
},
initTinymce() {
const _this = this
window.tinymce.init({
selector: `#${this.tinymceId}`,
language: this.languageTypeList['en'],
height: this.height,
body_class: 'panel-body ',
object_resizing: false,
toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar,
menubar: this.menubar,
plugins: plugins,
end_container_on_empty_block: true,
powerpaste_word_import: 'clean',
code_dialog_height: 450,
code_dialog_width: 1000,
advlist_bullet_styles: 'square',
advlist_number_styles: 'default',
imagetools_cors_hosts: ['www.tinymce.com', 'codepen.io'],
default_link_target: '_blank',
link_title: false,
nonbreaking_force_tab: true, // inserting nonbreaking space &nbsp; need Nonbreaking Space Plugin
init_instance_callback: editor => {
if (_this.value) {
editor.setContent(_this.value)
}
_this.hasInit = true
editor.on('NodeChange Change KeyUp SetContent', () => {
this.hasChange = true
this.$emit('input', editor.getContent())
})
},
setup(editor) {
editor.on('FullscreenStateChanged', (e) => {
_this.fullscreen = e.state
})
},
// it will try to keep these URLs intact
// https://www.tiny.cloud/docs-3x/reference/configuration/Configuration3x@convert_urls/
// https://stackoverflow.com/questions/5196205/disable-tinymce-absolute-to-relative-url-conversions
convert_urls: false
// 整合七牛上传
// images_dataimg_filter(img) {
// setTimeout(() => {
// const $image = $(img);
// $image.removeAttr('width');
// $image.removeAttr('height');
// if ($image[0].height && $image[0].width) {
// $image.attr('data-wscntype', 'image');
// $image.attr('data-wscnh', $image[0].height);
// $image.attr('data-wscnw', $image[0].width);
// $image.addClass('wscnph');
// }
// }, 0);
// return img
// },
// images_upload_handler(blobInfo, success, failure, progress) {
// progress(0);
// const token = _this.$store.getters.token;
// getToken(token).then(response => {
// const url = response.data.qiniu_url;
// const formData = new FormData();
// formData.append('token', response.data.qiniu_token);
// formData.append('key', response.data.qiniu_key);
// formData.append('file', blobInfo.blob(), url);
// upload(formData).then(() => {
// success(url);
// progress(100);
// })
// }).catch(err => {
// failure('出现未知问题,刷新页面,或者联系程序员')
// console.log(err);
// });
// },
})
},
destroyTinymce() {
const tinymce = window.tinymce.get(this.tinymceId)
if (this.fullscreen) {
tinymce.execCommand('mceFullScreen')
}
if (tinymce) {
tinymce.destroy()
}
},
setContent(value) {
window.tinymce.get(this.tinymceId).setContent(value)
},
getContent() {
window.tinymce.get(this.tinymceId).getContent()
},
imageSuccessCBK(arr) {
arr.forEach(v => window.tinymce.get(this.tinymceId).insertContent(`<img class="wscnph" src="${v.url}" >`))
}
}
}
</script>
<style lang="scss" scoped>
.tinymce-container {
position: relative;
line-height: normal;
}
.tinymce-container {
::v-deep {
.mce-fullscreen {
z-index: 10000;
}
}
}
.tinymce-textarea {
visibility: hidden;
z-index: -1;
}
.editor-custom-btn-container {
position: absolute;
right: 4px;
top: 4px;
/*z-index: 2005;*/
}
.fullscreen .editor-custom-btn-container {
z-index: 10000;
position: fixed;
}
.editor-upload-btn {
display: inline-block;
}
</style>
// Any plugins you want to use has to be imported
// Detail plugins list see https://www.tinymce.com/docs/plugins/
// Custom builds see https://www.tinymce.com/download/custom-builds/
const plugins = ['advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr image imagetools insertdatetime link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount']
export default plugins
// Here is a list of the toolbar
// Detail list see https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols
const toolbar = ['searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote undo redo removeformat subscript superscript code codesample', 'hr bullist numlist link image charmap preview anchor pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen']
export default toolbar
// 封装的侧边图标栏
<template>
<div v-bind="$attrs" class="big_aside_box" :style="{ width: width + 'px', background: backgroundColor, color: textColor }">
<el-menu
:default-active="$route.path"
class="el-menu-vertical-demo"
:collapse="isCollapse"
router
overflow-y:
scroll
style="text-algin: left "
background-color=rgb(1,42,71)
text-color="#fff"
active-text-color="#ffd04b"
>
<el-submenu :class="item.children? '' :'d-none'" v-for="item in asidList" :key="item.id" :index="item.id.toString()">
<template slot="title" style="text-algin: left" >
<div @click="aa(item)">
<svg-icon :icon-class="item.icon" class="svgicon"></svg-icon>
<span slot="title" >{{ item.menuName }}</span>
</div>
</template>
<el-menu-item style="text-align: left;margin-left: 20px;" v-for="subItem in item.children" :key="subItem.id" :index="subItem.path">
<svg-icon :icon-class="subItem.icon" class="svgicon"></svg-icon>
<span slot="title" >{{ subItem.menuName }}</span></el-menu-item>
</el-submenu>
</el-menu>
</div>
</template>
<script>
import SvgIcon from '../SvgIcon/index.vue'
export default {
name: 'bo-big-aside',
components: [SvgIcon],
props: {
// v-if="item.path === this.$route.path.split('/')[1]"
// 宽
width: {
default: 190
},
// 背景色
backgroundColor: {
default: 'linear-gradient(to right, #031140, #08194D 15%, #3b4520 85%, #1C4B77)'
// default: 'transparent'
},
// 字体颜色
textColor: {
default: '#d2d2d8'
},
// 选中
active: '',
isCollapse: false,
// 导航栏数据
asidList: {
},
// 控制动态线条显示
activeLine: ''
},
data () {
return {}
},
created () {
// this.activeLine = this.$route.path.split('/')[1]
},
methods: {
aa(row) {
console.log(row)
if (row.menuName === '首页') {
this.$router.push('/index')
}
}
},
computed: {
}
}
</script>
<style scoped lang='less'>
// .bigAside_all_box {
// height: 100%;
// width: 100%;
// padding-right: 2px !important;
// margin-bottom: 50px;
// }
.big_aside_box {
position: relative;
height: 100%;
width: 100%;
// border: 1px solid yellow;
text-align: center;
transition: all .2s linear 0s;
overflow: auto;
box-sizing: border-box;
.box {
display: flex;
flex-flow: nowrap column;
justify-content: center;
height: 80px;
width: 100%;
padding: 0 2px;
background: radial-gradient(ellipse at center, #012a47 0% 80%) !important;
user-select: none;
cursor: pointer;
box-sizing: border-box;
// 动画效果
transition: .3s all linear;
i {
font-size: 22px;
font-weight: 500;
color: #54DAF7;
}
.title {
font-size: 13px;
color: #54DAF7;
padding-top: 10px;
}
.activetitle {
color: #f0f0f0;
}
// 动态线
.line {
transform: translateY(50%);
margin: 0 auto;
width: 90%;
height: 4px;
}
}
.box:hover {
background: rgba(0, 0, 0, .6);
color: #fff;
i {
font-size: 23px;
}
}
.active {
background: rgba(0, 0, 0, .6);
color: #fff;
text-shadow: 0 1px 1px #3b4520;
i {
color: #f0f0f0;
font-size: 23px;
font-weight: 700;
}
}
.svgicon{
margin-right: 10px;
align-content: center;
}
}
.big_aside_box::-webkit-scrollbar{
width: 1px;
background: transparent !important;
}
.big_aside_box::-webkit-scrollbar-thumb {
// border-radius: 2px;
// background: #649f73;
// background: #ffffff;
background: #649f73;
// background: #f66f6f;
// #0de7c2
// #f66f6f
z-index: 9999 !important;
}
.el-menu-vertical-demo
{
border-right:solid 0px;
text-align: left;
}
</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">
<!-- <div class="time_box">
</div> -->
<span class="date">{{ date }} {{ time }}</span>
<!-- <span class="time"></span> -->
<!-- <span class="clock_text">当前时间</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);
.time {
margin: 0;
padding: 0;
letter-spacing: 2px;
font-size: 20px;
// transform: translateY(-2px);
}
.date {
letter-spacing: 1px;
margin: 0;
padding: 0;
font-size: 14px;
}
.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'
const component = [
smallTitle,
bigAside,
statistic,
tableColumn,
// boTime,
boDescription
]
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 SvgIcon from '../components/SvgIcon'// svg组件
// register globally
Vue.component('svg-icon', SvgIcon)
const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)
<?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="1646903153817" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1628" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M896.727589 73.142544H136.045134a36.571272 36.571272 0 0 1 0-73.142544h760.682455a36.571272 36.571272 0 0 1 0 73.142544zM896.727589 285.25592H136.045134a36.571272 36.571272 0 0 1 0-73.142543h760.682455a36.571272 36.571272 0 0 1 0 73.142543zM896.727589 497.369297H136.045134a36.571272 36.571272 0 0 1 0-73.142544h760.682455a36.571272 36.571272 0 0 1 0 73.142544zM556.614761 830.167871h-14.628509l-215.770504-32.914145a36.571272 36.571272 0 0 1 10.971381-73.142544l215.770504 32.914145a21.942763 21.942763 0 0 0 25.599891-18.285636v-29.257017a25.59989 25.59989 0 0 0-3.657128-18.285636l-14.628508-7.314255-230.399013-36.571271h-10.971381a25.59989 25.59989 0 0 0-10.971382 14.628508 36.571272 36.571272 0 0 1-40.228399 29.257018L37.3027 661.94002a36.571272 36.571272 0 0 1 10.971382-73.142543l201.141995 29.257017a95.085307 95.085307 0 0 1 25.59989-29.257017 91.42818 91.42818 0 0 1 69.485417-18.285636l230.399012 36.571272a95.085307 95.085307 0 0 1 62.171163 36.571271 98.742434 98.742434 0 0 1 18.285635 73.142544v29.257017a95.085307 95.085307 0 0 1-98.742433 84.113926z" p-id="1629" fill="#ffffff"></path><path d="M494.443598 1023.995611a248.684648 248.684648 0 0 1-157.256469-54.856907L29.988446 899.653287a36.571272 36.571272 0 1 1 14.628509-73.142543l318.170065 69.485416 14.628508 7.314254a175.542105 175.542105 0 0 0 190.170614 25.599891l358.398464-160.913596-21.942763-21.942764a73.142544 73.142544 0 0 0-73.142544-18.285635l-182.856359 54.856907a36.571272 36.571272 0 1 1-21.942763-69.485416l182.856359-54.856908a146.285087 146.285087 0 0 1 146.285088 40.228399l58.514034 58.514035a36.571272 36.571272 0 0 1-10.971381 58.514035l-405.941117 186.513486a245.027521 245.027521 0 0 1-102.399562 21.942763z" p-id="1630" fill="#ffffff"></path></svg>
<?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="1646903153817" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1628" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M896.727589 73.142544H136.045134a36.571272 36.571272 0 0 1 0-73.142544h760.682455a36.571272 36.571272 0 0 1 0 73.142544zM896.727589 285.25592H136.045134a36.571272 36.571272 0 0 1 0-73.142543h760.682455a36.571272 36.571272 0 0 1 0 73.142543zM896.727589 497.369297H136.045134a36.571272 36.571272 0 0 1 0-73.142544h760.682455a36.571272 36.571272 0 0 1 0 73.142544zM556.614761 830.167871h-14.628509l-215.770504-32.914145a36.571272 36.571272 0 0 1 10.971381-73.142544l215.770504 32.914145a21.942763 21.942763 0 0 0 25.599891-18.285636v-29.257017a25.59989 25.59989 0 0 0-3.657128-18.285636l-14.628508-7.314255-230.399013-36.571271h-10.971381a25.59989 25.59989 0 0 0-10.971382 14.628508 36.571272 36.571272 0 0 1-40.228399 29.257018L37.3027 661.94002a36.571272 36.571272 0 0 1 10.971382-73.142543l201.141995 29.257017a95.085307 95.085307 0 0 1 25.59989-29.257017 91.42818 91.42818 0 0 1 69.485417-18.285636l230.399012 36.571272a95.085307 95.085307 0 0 1 62.171163 36.571271 98.742434 98.742434 0 0 1 18.285635 73.142544v29.257017a95.085307 95.085307 0 0 1-98.742433 84.113926z" p-id="1629" fill="#ffffff"></path><path d="M494.443598 1023.995611a248.684648 248.684648 0 0 1-157.256469-54.856907L29.988446 899.653287a36.571272 36.571272 0 1 1 14.628509-73.142543l318.170065 69.485416 14.628508 7.314254a175.542105 175.542105 0 0 0 190.170614 25.599891l358.398464-160.913596-21.942763-21.942764a73.142544 73.142544 0 0 0-73.142544-18.285635l-182.856359 54.856907a36.571272 36.571272 0 1 1-21.942763-69.485416l182.856359-54.856908a146.285087 146.285087 0 0 1 146.285088 40.228399l58.514034 58.514035a36.571272 36.571272 0 0 1-10.971381 58.514035l-405.941117 186.513486a245.027521 245.027521 0 0 1-102.399562 21.942763z" p-id="1630" fill="#ffffff"></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="1646041954111" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29579" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M955.6 897.2l-79.3-158.7c45.7-33.9 75.4-88.3 75.4-149.6 0-102.8-83.2-186-185.9-186s-185.9 83.3-185.9 186c0 61.3 29.7 115.7 75.4 149.6L576 897.2c-7.9 15.8-1.5 35 14.3 42.9 4.6 2.3 9.5 3.4 14.3 3.4 11.7 0 23-6.5 28.6-17.7l79.3-158.7c16.9 5.1 34.8 7.8 53.3 7.8s36.4-2.7 53.3-7.8l79.3 158.7c5.6 11.2 16.9 17.7 28.6 17.7 4.8 0 9.7-1.1 14.3-3.4 15.8-7.9 22.2-27.1 14.3-42.9zM679.5 675.1c-23-23-35.7-53.7-35.7-86.3 0-32.6 12.7-63.2 35.7-86.3 23-23 53.7-35.7 86.2-35.7 32.6 0 63.2 12.7 86.2 35.7 23 23 35.7 53.7 35.7 86.3 0 32.6-12.7 63.2-35.7 86.3-23 23-53.7 35.7-86.2 35.7-32.5 0.1-63.1-12.6-86.2-35.7z" p-id="29580" fill="#e6e6e6"></path><path d="M479.6 751.9H161c-53 0-96-43-96-96V176.5c0-53 43-96 96-96h701.8c53 0 96 43 96 96v160.2c0 17.7-14.3 32-32 32s-32-14.3-32-32V176.5c0-17.7-14.3-32-32-32H161c-17.7 0-32 14.3-32 32v479.3c0 17.7 14.3 32 32 32h318.6c17.7 0 32 14.3 32 32-0.1 17.8-14.4 32.1-32 32.1z" p-id="29581" fill="#e6e6e6"></path><path d="M767.8 304.8H255.9c-17.7 0-32-14.3-32-32s14.3-32 32-32h511.8c17.7 0 32 14.3 32 32 0.1 17.6-14.3 32-31.9 32zM543.8 432.8H255.9c-17.7 0-32-14.3-32-32s14.3-32 32-32h287.9c17.7 0 32 14.3 32 32s-14.3 32-32 32zM447.9 560.8h-192c-17.7 0-32-14.3-32-32s14.3-32 32-32h191.9c17.7 0 32 14.3 32 32 0.1 17.7-14.3 32-31.9 32z" p-id="29582" fill="#e6e6e6"></path></svg>
<?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="1646041954111" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29579" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M955.6 897.2l-79.3-158.7c45.7-33.9 75.4-88.3 75.4-149.6 0-102.8-83.2-186-185.9-186s-185.9 83.3-185.9 186c0 61.3 29.7 115.7 75.4 149.6L576 897.2c-7.9 15.8-1.5 35 14.3 42.9 4.6 2.3 9.5 3.4 14.3 3.4 11.7 0 23-6.5 28.6-17.7l79.3-158.7c16.9 5.1 34.8 7.8 53.3 7.8s36.4-2.7 53.3-7.8l79.3 158.7c5.6 11.2 16.9 17.7 28.6 17.7 4.8 0 9.7-1.1 14.3-3.4 15.8-7.9 22.2-27.1 14.3-42.9zM679.5 675.1c-23-23-35.7-53.7-35.7-86.3 0-32.6 12.7-63.2 35.7-86.3 23-23 53.7-35.7 86.2-35.7 32.6 0 63.2 12.7 86.2 35.7 23 23 35.7 53.7 35.7 86.3 0 32.6-12.7 63.2-35.7 86.3-23 23-53.7 35.7-86.2 35.7-32.5 0.1-63.1-12.6-86.2-35.7z" p-id="29580" fill="#e6e6e6"></path><path d="M479.6 751.9H161c-53 0-96-43-96-96V176.5c0-53 43-96 96-96h701.8c53 0 96 43 96 96v160.2c0 17.7-14.3 32-32 32s-32-14.3-32-32V176.5c0-17.7-14.3-32-32-32H161c-17.7 0-32 14.3-32 32v479.3c0 17.7 14.3 32 32 32h318.6c17.7 0 32 14.3 32 32-0.1 17.8-14.4 32.1-32 32.1z" p-id="29581" fill="#e6e6e6"></path><path d="M767.8 304.8H255.9c-17.7 0-32-14.3-32-32s14.3-32 32-32h511.8c17.7 0 32 14.3 32 32 0.1 17.6-14.3 32-31.9 32zM543.8 432.8H255.9c-17.7 0-32-14.3-32-32s14.3-32 32-32h287.9c17.7 0 32 14.3 32 32s-14.3 32-32 32zM447.9 560.8h-192c-17.7 0-32-14.3-32-32s14.3-32 32-32h191.9c17.7 0 32 14.3 32 32 0.1 17.7-14.3 32-31.9 32z" p-id="29582" fill="#e6e6e6"></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="1646039308676" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3977" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M187.392 70.656q28.672 0 48.64 19.456t19.968 48.128l0 52.224q0 28.672-19.968 48.64t-48.64 19.968l-54.272 0q-27.648 0-47.616-19.968t-19.968-48.64l0-52.224q0-28.672 19.968-48.128t47.616-19.456l54.272 0zM889.856 70.656q27.648 0 47.616 19.456t19.968 48.128l0 52.224q0 28.672-19.968 48.64t-47.616 19.968l-437.248 0q-28.672 0-48.64-19.968t-19.968-48.64l0-52.224q0-28.672 19.968-48.128t48.64-19.456l437.248 0zM187.392 389.12q28.672 0 48.64 19.968t19.968 48.64l0 52.224q0 27.648-19.968 47.616t-48.64 19.968l-54.272 0q-27.648 0-47.616-19.968t-19.968-47.616l0-52.224q0-28.672 19.968-48.64t47.616-19.968l54.272 0zM889.856 389.12q27.648 0 47.616 19.968t19.968 48.64l0 52.224q0 27.648-19.968 47.616t-47.616 19.968l-437.248 0q-28.672 0-48.64-19.968t-19.968-47.616l0-52.224q0-28.672 19.968-48.64t48.64-19.968l437.248 0zM187.392 708.608q28.672 0 48.64 19.968t19.968 47.616l0 52.224q0 28.672-19.968 48.64t-48.64 19.968l-54.272 0q-27.648 0-47.616-19.968t-19.968-48.64l0-52.224q0-27.648 19.968-47.616t47.616-19.968l54.272 0zM889.856 708.608q27.648 0 47.616 19.968t19.968 47.616l0 52.224q0 28.672-19.968 48.64t-47.616 19.968l-437.248 0q-28.672 0-48.64-19.968t-19.968-48.64l0-52.224q0-27.648 19.968-47.616t48.64-19.968l437.248 0z" p-id="3978"></path></svg>
<?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="1646039308676" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3977" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M187.392 70.656q28.672 0 48.64 19.456t19.968 48.128l0 52.224q0 28.672-19.968 48.64t-48.64 19.968l-54.272 0q-27.648 0-47.616-19.968t-19.968-48.64l0-52.224q0-28.672 19.968-48.128t47.616-19.456l54.272 0zM889.856 70.656q27.648 0 47.616 19.456t19.968 48.128l0 52.224q0 28.672-19.968 48.64t-47.616 19.968l-437.248 0q-28.672 0-48.64-19.968t-19.968-48.64l0-52.224q0-28.672 19.968-48.128t48.64-19.456l437.248 0zM187.392 389.12q28.672 0 48.64 19.968t19.968 48.64l0 52.224q0 27.648-19.968 47.616t-48.64 19.968l-54.272 0q-27.648 0-47.616-19.968t-19.968-47.616l0-52.224q0-28.672 19.968-48.64t47.616-19.968l54.272 0zM889.856 389.12q27.648 0 47.616 19.968t19.968 48.64l0 52.224q0 27.648-19.968 47.616t-47.616 19.968l-437.248 0q-28.672 0-48.64-19.968t-19.968-47.616l0-52.224q0-28.672 19.968-48.64t48.64-19.968l437.248 0zM187.392 708.608q28.672 0 48.64 19.968t19.968 47.616l0 52.224q0 28.672-19.968 48.64t-48.64 19.968l-54.272 0q-27.648 0-47.616-19.968t-19.968-48.64l0-52.224q0-27.648 19.968-47.616t47.616-19.968l54.272 0zM889.856 708.608q27.648 0 47.616 19.968t19.968 47.616l0 52.224q0 28.672-19.968 48.64t-47.616 19.968l-437.248 0q-28.672 0-48.64-19.968t-19.968-48.64l0-52.224q0-27.648 19.968-47.616t48.64-19.968l437.248 0z" p-id="3978"></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="1646040501467" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18739" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M 709.632 542.106 c 6.144 -12.0832 1.2288 -26.8288 -10.8544 -32.9728 c -20.8896 -10.6496 -42.3936 -19.2512 -64.512 -25.8048 c 58.1632 -37.0688 96.8704 -101.99 96.8704 -176.128 c 0 -115.098 -93.7984 -208.896 -208.896 -208.896 S 313.344 192.102 313.344 307.2 c 0 74.1376 38.912 139.059 97.0752 176.128 C 248.013 531.661 129.024 682.189 129.024 860.16 c 0 13.5168 11.0592 24.576 24.576 24.576 s 24.576 -11.0592 24.576 -24.576 c 0 -189.645 154.419 -344.064 344.064 -344.064 c 54.0672 0 106.086 12.288 154.214 36.864 c 12.288 6.144 27.0336 1.2288 33.1776 -10.8544 Z M 362.496 307.2 c 0 -88.064 71.68 -159.744 159.744 -159.744 s 159.744 71.68 159.744 159.744 s -71.68 159.744 -159.744 159.744 s -159.744 -71.68 -159.744 -159.744 Z" p-id="18740"></path><path d="M 874.701 703.693 c -5.9392 -3.072 -13.312 -10.24 -15.1552 -13.7216 c -1.2288 -2.2528 -2.2528 -4.5056 -3.4816 -6.5536 c -1.2288 -2.2528 -2.6624 -4.3008 -3.8912 -6.3488 c -2.2528 -3.4816 -4.7104 -13.312 -4.3008 -20.0704 a 59.8016 59.8016 0 0 0 -29.9008 -55.0912 c -19.8656 -11.4688 -44.8512 -10.4448 -63.8976 2.4576 c -5.7344 3.8912 -12.4928 5.7344 -20.0704 5.5296 c -4.096 -0.2048 -8.3968 -0.2048 -12.4928 0 c -7.5776 0.4096 -14.9504 -1.6384 -21.0944 -5.9392 a 59.945 59.945 0 0 0 -92.7744 53.4528 c 0.4096 7.5776 -1.4336 14.9504 -5.5296 21.2992 c -2.2528 3.4816 -4.3008 7.168 -6.144 10.8544 c -3.4816 6.5536 -8.6016 11.4688 -14.7456 14.5408 a 60.5389 60.5389 0 0 0 -34.2016 54.0672 c 0 22.528 12.4928 43.008 32.768 53.4528 c 5.9392 3.072 13.312 10.24 15.1552 13.7216 c 1.2288 2.2528 2.2528 4.5056 3.4816 6.5536 c 1.2288 2.2528 2.6624 4.3008 3.8912 6.3488 c 2.2528 3.4816 4.7104 13.312 4.3008 20.0704 a 59.8016 59.8016 0 0 0 59.8016 63.0784 c 11.8784 0 23.9616 -3.4816 33.9968 -10.4448 c 5.7344 -3.8912 12.6976 -5.7344 20.0704 -5.5296 c 4.3008 0.2048 8.6016 0.2048 12.9024 0 c 7.5776 -0.2048 14.5408 1.6384 20.8896 5.5296 c 19.0464 12.0832 42.8032 12.6976 62.2592 1.4336 c 19.456 -11.264 30.9248 -32.1536 29.9008 -54.6816 c -0.4096 -7.3728 1.6384 -14.5408 5.5296 -20.8896 c 2.2528 -3.6864 4.5056 -7.3728 6.5536 -11.264 c 3.4816 -6.5536 8.6016 -11.6736 14.7456 -14.5408 a 60.5389 60.5389 0 0 0 34.2016 -54.0672 a 60.6208 60.6208 0 0 0 -32.768 -53.248 Z m -19.2512 70.656 c -14.336 6.9632 -25.8048 18.2272 -33.3824 32.5632 c -1.4336 2.6624 -3.072 5.5296 -4.7104 8.192 c -8.6016 13.312 -12.6976 28.8768 -11.8784 44.6464 c 0.4096 7.168 -3.2768 13.9264 -9.4208 17.408 a 19.2512 19.2512 0 0 1 -19.8656 -0.6144 c -13.312 -8.6016 -28.8768 -12.6976 -44.6464 -12.0832 c -3.072 0.2048 -6.3488 0.2048 -9.4208 0 c -16.384 -0.8192 -31.744 3.6864 -44.8512 12.6976 c -6.144 4.096 -14.1312 4.5056 -20.2752 0.8192 c -6.144 -3.4816 -9.8304 -10.24 -9.4208 -17.6128 c 0.6144 -12.288 -2.4576 -31.5392 -10.8544 -44.2368 c -1.024 -1.4336 -1.8432 -3.072 -2.8672 -4.7104 c -0.8192 -1.6384 -1.8432 -3.072 -2.4576 -4.7104 c -6.9632 -13.7216 -21.9136 -26.0096 -32.9728 -31.5392 a 18.8416 18.8416 0 0 1 -10.4448 -16.9984 c 0 -7.168 4.3008 -13.9264 11.0592 -17.2032 c 14.336 -6.9632 25.8048 -18.2272 33.3824 -32.5632 c 1.4336 -2.6624 2.8672 -5.3248 4.5056 -7.7824 c 8.6016 -13.5168 12.6976 -29.2864 11.8784 -45.4656 c -0.4096 -7.3728 3.2768 -14.1312 9.4208 -17.6128 a 19.0464 19.0464 0 0 1 20.0704 0.8192 c 13.5168 8.8064 29.2864 13.1072 45.2608 12.4928 c 3.072 -0.2048 5.9392 0 9.0112 0 c 16.1792 0.6144 31.744 -3.6864 44.8512 -12.6976 c 6.144 -4.096 14.1312 -4.5056 20.48 -0.8192 c 6.144 3.4816 9.8304 10.24 9.4208 17.6128 c -0.6144 12.288 2.4576 31.5392 10.8544 44.2368 c 1.024 1.4336 1.8432 3.072 2.8672 4.7104 c 0.8192 1.6384 1.8432 3.072 2.4576 4.7104 c 6.9632 13.7216 21.9136 26.0096 32.9728 31.5392 c 6.5536 3.2768 10.4448 9.8304 10.4448 16.9984 c -0.6144 7.168 -4.7104 13.9264 -11.4688 17.2032 Z" p-id="18741"></path><path d="M 694.682 701.645 c -30.9248 17.8176 -41.3696 57.344 -23.552 88.2688 a 64.5734 64.5734 0 0 0 56.1152 32.1536 c 10.8544 0 22.1184 -2.8672 32.1536 -8.6016 c 14.9504 -8.6016 25.6 -22.528 30.1056 -39.1168 c 4.5056 -16.5888 2.2528 -33.9968 -6.3488 -48.9472 c -18.2272 -31.1296 -57.7536 -41.5744 -88.4736 -23.7568 Z m 54.8864 61.8496 c -1.6384 6.144 -5.5296 11.264 -11.0592 14.336 c -11.264 6.5536 -25.8048 2.6624 -32.1536 -8.6016 c -3.072 -5.5296 -3.8912 -11.8784 -2.4576 -17.8176 c 1.6384 -6.144 5.5296 -11.264 11.0592 -14.336 a 23.6954 23.6954 0 0 1 32.1536 8.8064 c 3.2768 5.3248 4.096 11.6736 2.4576 17.6128 Z" p-id="18742"></path></svg>
<?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="1646040501467" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18739" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M 709.632 542.106 c 6.144 -12.0832 1.2288 -26.8288 -10.8544 -32.9728 c -20.8896 -10.6496 -42.3936 -19.2512 -64.512 -25.8048 c 58.1632 -37.0688 96.8704 -101.99 96.8704 -176.128 c 0 -115.098 -93.7984 -208.896 -208.896 -208.896 S 313.344 192.102 313.344 307.2 c 0 74.1376 38.912 139.059 97.0752 176.128 C 248.013 531.661 129.024 682.189 129.024 860.16 c 0 13.5168 11.0592 24.576 24.576 24.576 s 24.576 -11.0592 24.576 -24.576 c 0 -189.645 154.419 -344.064 344.064 -344.064 c 54.0672 0 106.086 12.288 154.214 36.864 c 12.288 6.144 27.0336 1.2288 33.1776 -10.8544 Z M 362.496 307.2 c 0 -88.064 71.68 -159.744 159.744 -159.744 s 159.744 71.68 159.744 159.744 s -71.68 159.744 -159.744 159.744 s -159.744 -71.68 -159.744 -159.744 Z" p-id="18740"></path><path d="M 874.701 703.693 c -5.9392 -3.072 -13.312 -10.24 -15.1552 -13.7216 c -1.2288 -2.2528 -2.2528 -4.5056 -3.4816 -6.5536 c -1.2288 -2.2528 -2.6624 -4.3008 -3.8912 -6.3488 c -2.2528 -3.4816 -4.7104 -13.312 -4.3008 -20.0704 a 59.8016 59.8016 0 0 0 -29.9008 -55.0912 c -19.8656 -11.4688 -44.8512 -10.4448 -63.8976 2.4576 c -5.7344 3.8912 -12.4928 5.7344 -20.0704 5.5296 c -4.096 -0.2048 -8.3968 -0.2048 -12.4928 0 c -7.5776 0.4096 -14.9504 -1.6384 -21.0944 -5.9392 a 59.945 59.945 0 0 0 -92.7744 53.4528 c 0.4096 7.5776 -1.4336 14.9504 -5.5296 21.2992 c -2.2528 3.4816 -4.3008 7.168 -6.144 10.8544 c -3.4816 6.5536 -8.6016 11.4688 -14.7456 14.5408 a 60.5389 60.5389 0 0 0 -34.2016 54.0672 c 0 22.528 12.4928 43.008 32.768 53.4528 c 5.9392 3.072 13.312 10.24 15.1552 13.7216 c 1.2288 2.2528 2.2528 4.5056 3.4816 6.5536 c 1.2288 2.2528 2.6624 4.3008 3.8912 6.3488 c 2.2528 3.4816 4.7104 13.312 4.3008 20.0704 a 59.8016 59.8016 0 0 0 59.8016 63.0784 c 11.8784 0 23.9616 -3.4816 33.9968 -10.4448 c 5.7344 -3.8912 12.6976 -5.7344 20.0704 -5.5296 c 4.3008 0.2048 8.6016 0.2048 12.9024 0 c 7.5776 -0.2048 14.5408 1.6384 20.8896 5.5296 c 19.0464 12.0832 42.8032 12.6976 62.2592 1.4336 c 19.456 -11.264 30.9248 -32.1536 29.9008 -54.6816 c -0.4096 -7.3728 1.6384 -14.5408 5.5296 -20.8896 c 2.2528 -3.6864 4.5056 -7.3728 6.5536 -11.264 c 3.4816 -6.5536 8.6016 -11.6736 14.7456 -14.5408 a 60.5389 60.5389 0 0 0 34.2016 -54.0672 a 60.6208 60.6208 0 0 0 -32.768 -53.248 Z m -19.2512 70.656 c -14.336 6.9632 -25.8048 18.2272 -33.3824 32.5632 c -1.4336 2.6624 -3.072 5.5296 -4.7104 8.192 c -8.6016 13.312 -12.6976 28.8768 -11.8784 44.6464 c 0.4096 7.168 -3.2768 13.9264 -9.4208 17.408 a 19.2512 19.2512 0 0 1 -19.8656 -0.6144 c -13.312 -8.6016 -28.8768 -12.6976 -44.6464 -12.0832 c -3.072 0.2048 -6.3488 0.2048 -9.4208 0 c -16.384 -0.8192 -31.744 3.6864 -44.8512 12.6976 c -6.144 4.096 -14.1312 4.5056 -20.2752 0.8192 c -6.144 -3.4816 -9.8304 -10.24 -9.4208 -17.6128 c 0.6144 -12.288 -2.4576 -31.5392 -10.8544 -44.2368 c -1.024 -1.4336 -1.8432 -3.072 -2.8672 -4.7104 c -0.8192 -1.6384 -1.8432 -3.072 -2.4576 -4.7104 c -6.9632 -13.7216 -21.9136 -26.0096 -32.9728 -31.5392 a 18.8416 18.8416 0 0 1 -10.4448 -16.9984 c 0 -7.168 4.3008 -13.9264 11.0592 -17.2032 c 14.336 -6.9632 25.8048 -18.2272 33.3824 -32.5632 c 1.4336 -2.6624 2.8672 -5.3248 4.5056 -7.7824 c 8.6016 -13.5168 12.6976 -29.2864 11.8784 -45.4656 c -0.4096 -7.3728 3.2768 -14.1312 9.4208 -17.6128 a 19.0464 19.0464 0 0 1 20.0704 0.8192 c 13.5168 8.8064 29.2864 13.1072 45.2608 12.4928 c 3.072 -0.2048 5.9392 0 9.0112 0 c 16.1792 0.6144 31.744 -3.6864 44.8512 -12.6976 c 6.144 -4.096 14.1312 -4.5056 20.48 -0.8192 c 6.144 3.4816 9.8304 10.24 9.4208 17.6128 c -0.6144 12.288 2.4576 31.5392 10.8544 44.2368 c 1.024 1.4336 1.8432 3.072 2.8672 4.7104 c 0.8192 1.6384 1.8432 3.072 2.4576 4.7104 c 6.9632 13.7216 21.9136 26.0096 32.9728 31.5392 c 6.5536 3.2768 10.4448 9.8304 10.4448 16.9984 c -0.6144 7.168 -4.7104 13.9264 -11.4688 17.2032 Z" p-id="18741"></path><path d="M 694.682 701.645 c -30.9248 17.8176 -41.3696 57.344 -23.552 88.2688 a 64.5734 64.5734 0 0 0 56.1152 32.1536 c 10.8544 0 22.1184 -2.8672 32.1536 -8.6016 c 14.9504 -8.6016 25.6 -22.528 30.1056 -39.1168 c 4.5056 -16.5888 2.2528 -33.9968 -6.3488 -48.9472 c -18.2272 -31.1296 -57.7536 -41.5744 -88.4736 -23.7568 Z m 54.8864 61.8496 c -1.6384 6.144 -5.5296 11.264 -11.0592 14.336 c -11.264 6.5536 -25.8048 2.6624 -32.1536 -8.6016 c -3.072 -5.5296 -3.8912 -11.8784 -2.4576 -17.8176 c 1.6384 -6.144 5.5296 -11.264 11.0592 -14.336 a 23.6954 23.6954 0 0 1 32.1536 8.8064 c 3.2768 5.3248 4.096 11.6736 2.4576 17.6128 Z" p-id="18742"></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="1646042056966" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30466" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 554.666667h-42.666667v298.666666H170.666667v-298.666666H128l384-384 384 384z m-640-8.533334V768h512v-221.866667l-256-256-256 256z m174.933333-76.8h170.666667v85.333334h-170.666667v-85.333334z" fill="#ffffff" p-id="30467"></path></svg>
<?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="1646042056966" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30466" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 554.666667h-42.666667v298.666666H170.666667v-298.666666H128l384-384 384 384z m-640-8.533334V768h512v-221.866667l-256-256-256 256z m174.933333-76.8h170.666667v85.333334h-170.666667v-85.333334z" fill="#ffffff" p-id="30467"></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="1646039694847" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9314" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M640 725.333333v-128h128v128h85.333333v128h-128v-128h-42.666666v128h-128v-128h85.333333z m213.333333-128h-85.333333v-51.2l-256-256-256 256V768h256v85.333333H170.666667v-298.666666H128l384-384 384 384h-42.666667v42.666666z" fill="#444444" p-id="9315"></path></svg>
<?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="1646039694847" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9314" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M640 725.333333v-128h128v128h85.333333v128h-128v-128h-42.666666v128h-128v-128h85.333333z m213.333333-128h-85.333333v-51.2l-256-256-256 256V768h256v85.333333H170.666667v-298.666666H128l384-384 384 384h-42.666667v42.666666z" fill="#444444" p-id="9315"></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="1646039838114" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12454" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1017.599368 357.54622L529.919978 5.973326a29.439963 29.439963 0 0 0-35.839956 0L6.400632 357.54622a19.199976 19.199976 0 0 0 12.799984 33.279958H153.600448a15.786647 15.786647 0 0 1 17.066645 16.213313v534.612665A82.77323 82.77323 0 0 0 252.586991 1023.99872h517.54602A82.77323 82.77323 0 0 0 853.332907 941.652156V407.466157a15.786647 15.786647 0 0 1 16.213313-16.213313h134.399832a19.626642 19.626642 0 0 0 13.653316-33.706624zM479.146708 925.438843a21.759973 21.759973 0 0 1-21.333307 21.333307H279.040291a21.759973 21.759973 0 0 1-21.333306-21.333307v-56.319929a21.759973 21.759973 0 0 1 21.333306-21.333307h178.77311a21.759973 21.759973 0 0 1 21.333307 21.333307z m0-154.026474a21.759973 21.759973 0 0 1-21.333307 21.333307H279.040291a21.759973 21.759973 0 0 1-21.333306-21.333307v-56.746596a21.759973 21.759973 0 0 1 21.333306-21.333306h178.77311a21.759973 21.759973 0 0 1 21.333307 21.333306z m0-154.879806a21.759973 21.759973 0 0 1-21.333307 21.333306H279.040291a21.759973 21.759973 0 0 1-21.333306-21.333306v-56.746596a21.759973 21.759973 0 0 1 21.333306-21.333307h178.77311a21.759973 21.759973 0 0 1 21.333307 21.333307zM767.99968 925.438843a21.759973 21.759973 0 0 1-21.333307 21.333307h-180.479774a21.759973 21.759973 0 0 1-21.333307-21.333307v-56.319929a21.759973 21.759973 0 0 1 21.333307-21.333307h178.77311a21.759973 21.759973 0 0 1 21.333306 21.333307z m0-154.026474a21.759973 21.759973 0 0 1-21.333307 21.333307h-180.479774a21.759973 21.759973 0 0 1-21.333307-21.333307v-56.746596a21.759973 21.759973 0 0 1 21.333307-21.333306h178.77311a21.759973 21.759973 0 0 1 21.333306 21.333306z" p-id="12455"></path></svg>
<?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="1646039838114" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12454" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1017.599368 357.54622L529.919978 5.973326a29.439963 29.439963 0 0 0-35.839956 0L6.400632 357.54622a19.199976 19.199976 0 0 0 12.799984 33.279958H153.600448a15.786647 15.786647 0 0 1 17.066645 16.213313v534.612665A82.77323 82.77323 0 0 0 252.586991 1023.99872h517.54602A82.77323 82.77323 0 0 0 853.332907 941.652156V407.466157a15.786647 15.786647 0 0 1 16.213313-16.213313h134.399832a19.626642 19.626642 0 0 0 13.653316-33.706624zM479.146708 925.438843a21.759973 21.759973 0 0 1-21.333307 21.333307H279.040291a21.759973 21.759973 0 0 1-21.333306-21.333307v-56.319929a21.759973 21.759973 0 0 1 21.333306-21.333307h178.77311a21.759973 21.759973 0 0 1 21.333307 21.333307z m0-154.026474a21.759973 21.759973 0 0 1-21.333307 21.333307H279.040291a21.759973 21.759973 0 0 1-21.333306-21.333307v-56.746596a21.759973 21.759973 0 0 1 21.333306-21.333306h178.77311a21.759973 21.759973 0 0 1 21.333307 21.333306z m0-154.879806a21.759973 21.759973 0 0 1-21.333307 21.333306H279.040291a21.759973 21.759973 0 0 1-21.333306-21.333306v-56.746596a21.759973 21.759973 0 0 1 21.333306-21.333307h178.77311a21.759973 21.759973 0 0 1 21.333307 21.333307zM767.99968 925.438843a21.759973 21.759973 0 0 1-21.333307 21.333307h-180.479774a21.759973 21.759973 0 0 1-21.333307-21.333307v-56.319929a21.759973 21.759973 0 0 1 21.333307-21.333307h178.77311a21.759973 21.759973 0 0 1 21.333306 21.333307z m0-154.026474a21.759973 21.759973 0 0 1-21.333307 21.333307h-180.479774a21.759973 21.759973 0 0 1-21.333307-21.333307v-56.746596a21.759973 21.759973 0 0 1 21.333307-21.333306h178.77311a21.759973 21.759973 0 0 1 21.333306 21.333306z" p-id="12455"></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="1646042397161" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32239" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M368.896 192H224a32 32 0 0 0-32 32v137.888a32 32 0 0 0 64 0V256h112.896a32 32 0 0 0 0-64zM784.864 192H640a32 32 0 1 0 0 64h112.864v105.888a32 32 0 1 0 64 0V224a32 32 0 0 0-32-32zM368.896 777.92H256V672a32 32 0 1 0-64 0v137.92a32 32 0 0 0 32 32h144.896a32 32 0 1 0 0-64zM784.864 640a32 32 0 0 0-32 32v105.92H640a32 32 0 1 0 0 64h144.864a32 32 0 0 0 32-32V672a32 32 0 0 0-32-32z" p-id="32240"></path><path d="M912 48h-800c-35.296 0-64 28.704-64 64v800c0 35.296 28.704 64 64 64h800c35.296 0 64-28.704 64-64v-800c0-35.296-28.704-64-64-64z m-800 864v-800h800l0.064 800H112z" p-id="32241"></path></svg>
<?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="1646042397161" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32239" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M368.896 192H224a32 32 0 0 0-32 32v137.888a32 32 0 0 0 64 0V256h112.896a32 32 0 0 0 0-64zM784.864 192H640a32 32 0 1 0 0 64h112.864v105.888a32 32 0 1 0 64 0V224a32 32 0 0 0-32-32zM368.896 777.92H256V672a32 32 0 1 0-64 0v137.92a32 32 0 0 0 32 32h144.896a32 32 0 1 0 0-64zM784.864 640a32 32 0 0 0-32 32v105.92H640a32 32 0 1 0 0 64h144.864a32 32 0 0 0 32-32V672a32 32 0 0 0-32-32z" p-id="32240"></path><path d="M912 48h-800c-35.296 0-64 28.704-64 64v800c0 35.296 28.704 64 64 64h800c35.296 0 64-28.704 64-64v-800c0-35.296-28.704-64-64-64z m-800 864v-800h800l0.064 800H112z" p-id="32241"></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="1646902965811" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1765" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M174.682353 346.352941h367.435294v-60.235294h-367.435294zM174.682353 472.847059h228.894118v-60.235294h-228.894118zM174.682353 605.364706h228.894118v-60.235294h-228.894118zM174.682353 737.882353h228.894118v-60.235294h-228.894118zM530.070588 605.364706h349.364706v54.211765h-355.388235l72.282353 72.282353-42.164706 42.164705-138.541177-138.541176 138.541177-138.541177 42.164706 42.164706-66.258824 66.258824zM879.435294 382.494118h-349.364706v54.211764h355.388236l-72.282353 72.282353 42.164705 42.164706 138.541177-138.541176-138.541177-138.541177-42.164705 42.164706 66.258823 66.258824z" fill="#e6e6e6" p-id="1766"></path><path d="M764.988235 201.788235c0-60.235294-48.188235-114.447059-114.447059-114.447059h-505.97647c-60.235294 0-114.447059 48.188235-114.447059 114.447059v620.42353c0 60.235294 48.188235 114.447059 114.447059 114.447059h505.97647c60.235294 0 114.447059-48.188235 114.447059-114.447059v-84.329412h-60.235294v84.329412c0 30.117647-24.094118 54.211765-54.211765 54.211764h-505.97647c-30.117647 0-54.211765-24.094118-54.211765-54.211764v-620.42353c0-30.117647 24.094118-54.211765 54.211765-54.211764h505.97647c30.117647 0 54.211765 24.094118 54.211765 54.211764v96.376471h60.235294v-96.376471z" fill="#e6e6e6" p-id="1767"></path></svg>
<?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="1646902965811" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1765" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M174.682353 346.352941h367.435294v-60.235294h-367.435294zM174.682353 472.847059h228.894118v-60.235294h-228.894118zM174.682353 605.364706h228.894118v-60.235294h-228.894118zM174.682353 737.882353h228.894118v-60.235294h-228.894118zM530.070588 605.364706h349.364706v54.211765h-355.388235l72.282353 72.282353-42.164706 42.164705-138.541177-138.541176 138.541177-138.541177 42.164706 42.164706-66.258824 66.258824zM879.435294 382.494118h-349.364706v54.211764h355.388236l-72.282353 72.282353 42.164705 42.164706 138.541177-138.541176-138.541177-138.541177-42.164705 42.164706 66.258823 66.258824z" fill="#e6e6e6" p-id="1766"></path><path d="M764.988235 201.788235c0-60.235294-48.188235-114.447059-114.447059-114.447059h-505.97647c-60.235294 0-114.447059 48.188235-114.447059 114.447059v620.42353c0 60.235294 48.188235 114.447059 114.447059 114.447059h505.97647c60.235294 0 114.447059-48.188235 114.447059-114.447059v-84.329412h-60.235294v84.329412c0 30.117647-24.094118 54.211765-54.211765 54.211764h-505.97647c-30.117647 0-54.211765-24.094118-54.211765-54.211764v-620.42353c0-30.117647 24.094118-54.211765 54.211765-54.211764h505.97647c30.117647 0 54.211765 24.094118 54.211765 54.211764v96.376471h60.235294v-96.376471z" fill="#e6e6e6" p-id="1767"></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="1646042077634" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30966" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M902.997333 311.978667a7.964444 7.964444 0 0 1 7.964445 7.793777V902.997333a7.964444 7.964444 0 0 1-7.736889 7.964445H384a7.964444 7.964444 0 0 1-7.964444-7.736889V320a7.964444 7.964444 0 0 1 7.736888-7.964444H902.997333zM838.997333 384H448v454.997333h390.997333V384zM640 112.981333a7.964444 7.964444 0 0 1 7.964444 8.021334v121.742222a7.964444 7.964444 0 0 1-7.964444 7.964444h-55.978667a7.964444 7.964444 0 0 1-8.021333-7.964444V185.002667H185.002667v454.997333h121.742222a7.964444 7.964444 0 0 1 7.964444 7.964444v56.035556a7.964444 7.964444 0 0 1-7.964444 7.964444H121.002667a7.964444 7.964444 0 0 1-7.964445-7.964444V121.002667a7.964444 7.964444 0 0 1 7.964445-7.964445h518.997333z" fill="#ffffff" p-id="30967"></path></svg>
<?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="1646042077634" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30966" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M902.997333 311.978667a7.964444 7.964444 0 0 1 7.964445 7.793777V902.997333a7.964444 7.964444 0 0 1-7.736889 7.964445H384a7.964444 7.964444 0 0 1-7.964444-7.736889V320a7.964444 7.964444 0 0 1 7.736888-7.964444H902.997333zM838.997333 384H448v454.997333h390.997333V384zM640 112.981333a7.964444 7.964444 0 0 1 7.964444 8.021334v121.742222a7.964444 7.964444 0 0 1-7.964444 7.964444h-55.978667a7.964444 7.964444 0 0 1-8.021333-7.964444V185.002667H185.002667v454.997333h121.742222a7.964444 7.964444 0 0 1 7.964444 7.964444v56.035556a7.964444 7.964444 0 0 1-7.964444 7.964444H121.002667a7.964444 7.964444 0 0 1-7.964445-7.964444V121.002667a7.964444 7.964444 0 0 1 7.964445-7.964445h518.997333z" fill="#ffffff" p-id="30967"></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="1646974867953" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1285" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M701.6 768.8H320.4c-17.7 0-32-14.3-32-32s14.3-32 32-32h381.2c17.7 0 32 14.3 32 32s-14.4 32-32 32z" p-id="1286" fill="#ffffff"></path><path d="M866.6 960.2H159.8c-33.9 0-61.5-27.7-61.5-61.7V125.7c0-34 27.6-61.7 61.5-61.7h531c17.7 0 32 14.3 32 32s-14.3 32-32 32H162.3v768.3h701.9V320.5c0-17.7 14.3-32 32-32s32 14.3 32 32v578c0 34-27.6 61.7-61.6 61.7z" p-id="1287" fill="#ffffff"></path><path d="M703 512.4H319.7c-17.7 0-32-14.3-32-32s14.3-32 32-32H703c17.7 0 32 14.3 32 32s-14.4 32-32 32zM703 640.2H319.7c-17.7 0-32-14.3-32-32s14.3-32 32-32H703c17.7 0 32 14.3 32 32s-14.4 32-32 32zM895.7 351.5H704.1c-35.3 0-64-28.7-64-64V95.9c0-17.7 14.3-32 32-32s32 14.3 32 32v191.5l0.1 0.1h191.5c17.7 0 32 14.3 32 32s-14.3 32-32 32z" p-id="1288" fill="#ffffff"></path><path d="M896 352.5c-8.7 0-17.4-3.5-23.7-10.5l-202-222.2c-11.9-13.1-10.9-33.3 2.2-45.2 13.1-11.9 33.3-10.9 45.2 2.2l202 222.2c11.9 13.1 10.9 33.3-2.2 45.2-6.1 5.5-13.8 8.3-21.5 8.3z" p-id="1289" fill="#ffffff"></path></svg>
<?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="1646974867953" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1285" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><style type="text/css"></style></defs><path d="M701.6 768.8H320.4c-17.7 0-32-14.3-32-32s14.3-32 32-32h381.2c17.7 0 32 14.3 32 32s-14.4 32-32 32z" p-id="1286" fill="#ffffff"></path><path d="M866.6 960.2H159.8c-33.9 0-61.5-27.7-61.5-61.7V125.7c0-34 27.6-61.7 61.5-61.7h531c17.7 0 32 14.3 32 32s-14.3 32-32 32H162.3v768.3h701.9V320.5c0-17.7 14.3-32 32-32s32 14.3 32 32v578c0 34-27.6 61.7-61.6 61.7z" p-id="1287" fill="#ffffff"></path><path d="M703 512.4H319.7c-17.7 0-32-14.3-32-32s14.3-32 32-32H703c17.7 0 32 14.3 32 32s-14.4 32-32 32zM703 640.2H319.7c-17.7 0-32-14.3-32-32s14.3-32 32-32H703c17.7 0 32 14.3 32 32s-14.4 32-32 32zM895.7 351.5H704.1c-35.3 0-64-28.7-64-64V95.9c0-17.7 14.3-32 32-32s32 14.3 32 32v191.5l0.1 0.1h191.5c17.7 0 32 14.3 32 32s-14.3 32-32 32z" p-id="1288" fill="#ffffff"></path><path d="M896 352.5c-8.7 0-17.4-3.5-23.7-10.5l-202-222.2c-11.9-13.1-10.9-33.3 2.2-45.2 13.1-11.9 33.3-10.9 45.2 2.2l202 222.2c11.9 13.1 10.9 33.3-2.2 45.2-6.1 5.5-13.8 8.3-21.5 8.3z" p-id="1289" fill="#ffffff"></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="1646040454800" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17975" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 960H192c-17.67 0-32-14.33-32-32V450c0-11.19 5.84-21.56 15.41-27.36l320-194a32.008 32.008 0 0 1 33.18 0l320 194A31.997 31.997 0 0 1 864 450v478c0 17.67-14.33 32-32 32z m-608-64h576V468.02l-288-174.6-288 174.6V896z" p-id="17976"></path><path d="M927.97 384a31.83 31.83 0 0 1-16.74-4.75L512 133.57 112.77 379.25c-15.05 9.26-34.76 4.57-44.02-10.48-9.26-15.05-4.57-34.76 10.48-44.02l416-256a31.993 31.993 0 0 1 33.54 0l416 256c15.05 9.26 19.74 28.97 10.48 44.02-6.04 9.82-16.54 15.23-27.28 15.23zM752 832h-80v-88c0-22.09 17.91-40 40-40s40 17.91 40 40v88zM624 832h-80V616c0-22.09 17.91-40 40-40s40 17.91 40 40v216zM496 832h-80V680c0-22.09 17.91-40 40-40s40 17.91 40 40v152zM342 832h-60c-5.52 0-10-4.48-10-10v-60c0-5.52 4.48-10 10-10h60c5.52 0 10 4.48 10 10v60c0 5.52-4.48 10-10 10zM342 704h-60c-5.52 0-10-4.48-10-10v-60c0-5.52 4.48-10 10-10h60c5.52 0 10 4.48 10 10v60c0 5.52-4.48 10-10 10zM342 576h-60c-5.52 0-10-4.48-10-10v-60c0-5.52 4.48-10 10-10h60c5.52 0 10 4.48 10 10v60c0 5.52-4.48 10-10 10z" p-id="17977"></path></svg>
<?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="1646040454800" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17975" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 960H192c-17.67 0-32-14.33-32-32V450c0-11.19 5.84-21.56 15.41-27.36l320-194a32.008 32.008 0 0 1 33.18 0l320 194A31.997 31.997 0 0 1 864 450v478c0 17.67-14.33 32-32 32z m-608-64h576V468.02l-288-174.6-288 174.6V896z" p-id="17976"></path><path d="M927.97 384a31.83 31.83 0 0 1-16.74-4.75L512 133.57 112.77 379.25c-15.05 9.26-34.76 4.57-44.02-10.48-9.26-15.05-4.57-34.76 10.48-44.02l416-256a31.993 31.993 0 0 1 33.54 0l416 256c15.05 9.26 19.74 28.97 10.48 44.02-6.04 9.82-16.54 15.23-27.28 15.23zM752 832h-80v-88c0-22.09 17.91-40 40-40s40 17.91 40 40v88zM624 832h-80V616c0-22.09 17.91-40 40-40s40 17.91 40 40v216zM496 832h-80V680c0-22.09 17.91-40 40-40s40 17.91 40 40v152zM342 832h-60c-5.52 0-10-4.48-10-10v-60c0-5.52 4.48-10 10-10h60c5.52 0 10 4.48 10 10v60c0 5.52-4.48 10-10 10zM342 704h-60c-5.52 0-10-4.48-10-10v-60c0-5.52 4.48-10 10-10h60c5.52 0 10 4.48 10 10v60c0 5.52-4.48 10-10 10zM342 576h-60c-5.52 0-10-4.48-10-10v-60c0-5.52 4.48-10 10-10h60c5.52 0 10 4.48 10 10v60c0 5.52-4.48 10-10 10z" p-id="17977"></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="1646039813450" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12226" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M619.102041 475.428571h-214.204082c-45.97551 0-83.591837-37.616327-83.591837-83.591836V177.632653c0-45.97551 37.616327-83.591837 83.591837-83.591837h214.204082c45.97551 0 83.591837 37.616327 83.591837 83.591837v214.204082c0 45.97551-37.616327 83.591837-83.591837 83.591836z m-214.204082-339.591836c-22.987755 0-41.795918 18.808163-41.795918 41.795918v214.204082c0 22.987755 18.808163 41.795918 41.795918 41.795918h214.204082c22.987755 0 41.795918-18.808163 41.795918-41.795918V177.632653c0-22.987755-18.808163-41.795918-41.795918-41.795918h-214.204082z" p-id="12227"></path><path d="M391.836735 929.959184H177.632653c-45.97551 0-83.591837-37.616327-83.591837-83.591837v-214.204082c0-45.97551 37.616327-83.591837 83.591837-83.591836h214.204082c45.97551 0 83.591837 37.616327 83.591836 83.591836v214.204082c0 45.97551-37.616327 83.591837-83.591836 83.591837z m-214.204082-339.591837c-22.987755 0-41.795918 18.808163-41.795918 41.795918v214.204082c0 22.987755 18.808163 41.795918 41.795918 41.795918h214.204082c22.987755 0 41.795918-18.808163 41.795918-41.795918v-214.204082c0-22.987755-18.808163-41.795918-41.795918-41.795918H177.632653z" p-id="12228"></path><path d="M846.367347 929.959184h-214.204082c-45.97551 0-83.591837-37.616327-83.591836-83.591837v-214.204082c0-45.97551 37.616327-83.591837 83.591836-83.591836h214.204082c45.97551 0 83.591837 37.616327 83.591837 83.591836v214.204082c0 45.97551-37.616327 83.591837-83.591837 83.591837z m-214.204082-339.591837c-22.987755 0-41.795918 18.808163-41.795918 41.795918v214.204082c0 22.987755 18.808163 41.795918 41.795918 41.795918h214.204082c22.987755 0 41.795918-18.808163 41.795918-41.795918v-214.204082c0-22.987755-18.808163-41.795918-41.795918-41.795918h-214.204082z" p-id="12229"></path></svg>
<?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="1646039813450" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12226" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M619.102041 475.428571h-214.204082c-45.97551 0-83.591837-37.616327-83.591837-83.591836V177.632653c0-45.97551 37.616327-83.591837 83.591837-83.591837h214.204082c45.97551 0 83.591837 37.616327 83.591837 83.591837v214.204082c0 45.97551-37.616327 83.591837-83.591837 83.591836z m-214.204082-339.591836c-22.987755 0-41.795918 18.808163-41.795918 41.795918v214.204082c0 22.987755 18.808163 41.795918 41.795918 41.795918h214.204082c22.987755 0 41.795918-18.808163 41.795918-41.795918V177.632653c0-22.987755-18.808163-41.795918-41.795918-41.795918h-214.204082z" p-id="12227"></path><path d="M391.836735 929.959184H177.632653c-45.97551 0-83.591837-37.616327-83.591837-83.591837v-214.204082c0-45.97551 37.616327-83.591837 83.591837-83.591836h214.204082c45.97551 0 83.591837 37.616327 83.591836 83.591836v214.204082c0 45.97551-37.616327 83.591837-83.591836 83.591837z m-214.204082-339.591837c-22.987755 0-41.795918 18.808163-41.795918 41.795918v214.204082c0 22.987755 18.808163 41.795918 41.795918 41.795918h214.204082c22.987755 0 41.795918-18.808163 41.795918-41.795918v-214.204082c0-22.987755-18.808163-41.795918-41.795918-41.795918H177.632653z" p-id="12228"></path><path d="M846.367347 929.959184h-214.204082c-45.97551 0-83.591837-37.616327-83.591836-83.591837v-214.204082c0-45.97551 37.616327-83.591837 83.591836-83.591836h214.204082c45.97551 0 83.591837 37.616327 83.591837 83.591836v214.204082c0 45.97551-37.616327 83.591837-83.591837 83.591837z m-214.204082-339.591837c-22.987755 0-41.795918 18.808163-41.795918 41.795918v214.204082c0 22.987755 18.808163 41.795918 41.795918 41.795918h214.204082c22.987755 0 41.795918-18.808163 41.795918-41.795918v-214.204082c0-22.987755-18.808163-41.795918-41.795918-41.795918h-214.204082z" p-id="12229"></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="1646039538904" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6575" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M780.3 794.6H194.4c-11.6 0-21-9.4-21-21V576.4c0-11.6 9.4-21 21-21h153.7c5.6 0 11 2.2 14.9 6.2s6.1 9.4 6.1 15l-0.7 83.8h238.3l0.5-84.1c0.1-11.5 9.5-20.9 21-20.9h152.1c11.6 0 21 9.4 21 21v197.2c0 11.6-9.4 21-21 21z m-564.9-42h543.8V597.4H649l-0.5 84.1c-0.1 11.5-9.5 20.9-21 20.9H347.2c-5.6 0-11-2.2-14.9-6.2s-6.1-9.4-6.1-15l0.7-83.8H215.4v155.2z" p-id="6576"></path><path d="M780.3 597.4H194.4c-6.6 0-12.8-3.1-16.8-8.4-4-5.3-5.2-12.1-3.4-18.5l105-360.5c2.6-9 10.8-15.1 20.2-15.1h396.8c9.8 0 18.2 6.7 20.4 16.2l27 115.8c2.6 11.3-4.4 22.6-15.7 25.2-11.3 2.6-22.6-4.4-25.2-15.7l-23.2-99.6H315.2l-92.8 318.5h531.4l-13.7-58.9c-2.6-11.3 4.4-22.6 15.7-25.2 11.3-2.6 22.6 4.4 25.2 15.7l19.7 84.6c1.5 6.2 0 12.8-4 17.8-4 5.1-10 8.1-16.4 8.1z" p-id="6577"></path><path d="M831.6 523.1c-7.3 0-14.3-3.8-18.2-10.5-60.7-105.5-157.9-129.4-228.7-130.8-11.6-0.2-20.8-9.8-20.6-21.4 0.2-11.6 10.6-20.1 21.4-20.6 81.6 1.7 193.8 29.4 264.2 151.9 5.8 10 2.3 22.9-7.7 28.7-3.3 1.8-6.9 2.7-10.4 2.7z" p-id="6578"></path><path d="M616.5 440.4l-145.1-65.3L600.5 282z" p-id="6579"></path></svg>
<?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="1646039538904" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6575" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M780.3 794.6H194.4c-11.6 0-21-9.4-21-21V576.4c0-11.6 9.4-21 21-21h153.7c5.6 0 11 2.2 14.9 6.2s6.1 9.4 6.1 15l-0.7 83.8h238.3l0.5-84.1c0.1-11.5 9.5-20.9 21-20.9h152.1c11.6 0 21 9.4 21 21v197.2c0 11.6-9.4 21-21 21z m-564.9-42h543.8V597.4H649l-0.5 84.1c-0.1 11.5-9.5 20.9-21 20.9H347.2c-5.6 0-11-2.2-14.9-6.2s-6.1-9.4-6.1-15l0.7-83.8H215.4v155.2z" p-id="6576"></path><path d="M780.3 597.4H194.4c-6.6 0-12.8-3.1-16.8-8.4-4-5.3-5.2-12.1-3.4-18.5l105-360.5c2.6-9 10.8-15.1 20.2-15.1h396.8c9.8 0 18.2 6.7 20.4 16.2l27 115.8c2.6 11.3-4.4 22.6-15.7 25.2-11.3 2.6-22.6-4.4-25.2-15.7l-23.2-99.6H315.2l-92.8 318.5h531.4l-13.7-58.9c-2.6-11.3 4.4-22.6 15.7-25.2 11.3-2.6 22.6 4.4 25.2 15.7l19.7 84.6c1.5 6.2 0 12.8-4 17.8-4 5.1-10 8.1-16.4 8.1z" p-id="6577"></path><path d="M831.6 523.1c-7.3 0-14.3-3.8-18.2-10.5-60.7-105.5-157.9-129.4-228.7-130.8-11.6-0.2-20.8-9.8-20.6-21.4 0.2-11.6 10.6-20.1 21.4-20.6 81.6 1.7 193.8 29.4 264.2 151.9 5.8 10 2.3 22.9-7.7 28.7-3.3 1.8-6.9 2.7-10.4 2.7z" p-id="6578"></path><path d="M616.5 440.4l-145.1-65.3L600.5 282z" p-id="6579"></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="1646040413726" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16929" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M736 64H288c-35.2 0-64 28.8-64 64v128h-32v128h32v512c0 35.2 28.8 64 64 64h448c35.2 0 64-28.8 64-64V384h32V256h-32V128c0-35.2-28.8-64-64-64zM288 512V128h448v384H288z m0 384V576h448v320H288z m384-288h-64v64h64v-64z m-128 0h-64v64h64v-64z m-128 0h-64v64h64v-64z m256 96h-64v64h64v-64z m-128 0h-64v64h64v-64z m-128 0h-64v64h64v-64z m256 96h-64v64h64v-64z m-128 0h-64v64h64v-64z m-128 0h-64v64h64v-64z" p-id="16930"></path></svg>
<?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="1646040413726" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16929" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M736 64H288c-35.2 0-64 28.8-64 64v128h-32v128h32v512c0 35.2 28.8 64 64 64h448c35.2 0 64-28.8 64-64V384h32V256h-32V128c0-35.2-28.8-64-64-64zM288 512V128h448v384H288z m0 384V576h448v320H288z m384-288h-64v64h64v-64z m-128 0h-64v64h64v-64z m-128 0h-64v64h64v-64z m256 96h-64v64h64v-64z m-128 0h-64v64h64v-64z m-128 0h-64v64h64v-64z m256 96h-64v64h64v-64z m-128 0h-64v64h64v-64z m-128 0h-64v64h64v-64z" p-id="16930"></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="1646039948729" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14643" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M747.5 701.2H347c-22.1 0-40-17.9-40-40s17.9-40 40-40h400.5c22.1 0 40 17.9 40 40s-17.9 40-40 40zM747.5 855H347c-22.1 0-40-17.9-40-40s17.9-40 40-40h400.5c22.1 0 40 17.9 40 40s-17.9 40-40 40zM747.5 547.3H347c-22.1 0-40-17.9-40-40s17.9-40 40-40h400.5c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 656.7H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 855H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 260H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 458.3H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40z" fill="" p-id="14644"></path><path d="M863 80v860H151V80h712m20-80H131C97.9 0 71 26.9 71 60v900c0 33.1 26.9 60 60 60h752c33.1 0 60-26.9 60-60V60c0-33.1-26.9-60-60-60z" fill="" p-id="14645"></path><path d="M710 220v47H384v-47H710m58.3-80H324.7c-19.2 0-20.7 5.5-20.7 12.2v182.6c0 6.7 1.5 12.2 20.7 12.2h443.6c19.2 0 21.7-5.5 21.7-12.2V152.2c0-6.7-2.5-12.2-21.7-12.2z" fill="" p-id="14646"></path></svg>
<?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="1646039948729" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14643" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M747.5 701.2H347c-22.1 0-40-17.9-40-40s17.9-40 40-40h400.5c22.1 0 40 17.9 40 40s-17.9 40-40 40zM747.5 855H347c-22.1 0-40-17.9-40-40s17.9-40 40-40h400.5c22.1 0 40 17.9 40 40s-17.9 40-40 40zM747.5 547.3H347c-22.1 0-40-17.9-40-40s17.9-40 40-40h400.5c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 656.7H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 855H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 260H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40zM159 458.3H41c-22.1 0-40-17.9-40-40s17.9-40 40-40h118c22.1 0 40 17.9 40 40s-17.9 40-40 40z" fill="" p-id="14644"></path><path d="M863 80v860H151V80h712m20-80H131C97.9 0 71 26.9 71 60v900c0 33.1 26.9 60 60 60h752c33.1 0 60-26.9 60-60V60c0-33.1-26.9-60-60-60z" fill="" p-id="14645"></path><path d="M710 220v47H384v-47H710m58.3-80H324.7c-19.2 0-20.7 5.5-20.7 12.2v182.6c0 6.7 1.5 12.2 20.7 12.2h443.6c19.2 0 21.7-5.5 21.7-12.2V152.2c0-6.7-2.5-12.2-21.7-12.2z" fill="" p-id="14646"></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="1646039765036" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11015" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M509.5 575c-9.2 0-18.5-2.9-26.2-8.6L82.7 359.5c-2.9-1.5-5.6-3.5-7.9-5.8-8.3-8.3-12.9-19.4-12.9-31.1 0-11.8 4.6-22.8 12.9-31.1 2.2-2.2 4.8-4.1 7.6-5.6l401.8-214c15.5-11.7 37.1-11.7 52.7-0.1l400.6 209.9c2.9 1.5 5.5 3.4 7.8 5.7 8.3 8.3 12.9 19.4 12.9 31.1s-4.6 22.8-12.9 31.1c-2.3 2.3-4.9 4.2-7.7 5.7l-401.7 211c-7.9 5.8-17.1 8.7-26.4 8.7zM150.1 322.3l359.3 185.6 360.5-189.3-359.3-188.3-360.5 192z m772.5 4.7zM944.2 666.2L510.1 894.7l-437.4-226c-10.3 12.4-18.8 55.5 3.8 71.1l416.8 215.6c6.8 4.5 25.5 4.5 32.5 0.3L944 736.4c25.5-13.4 13.8-60.8 0.2-70.2z" p-id="11016"></path><path d="M944.2 473.9L510.1 702.3l-437.4-226c-10.3 12.4-18.8 55.5 3.8 71.1L493.2 763c6.8 4.5 25.5 4.5 32.5 0.3L943.8 544c25.7-13.3 14-60.8 0.4-70.1z" p-id="11017"></path></svg>
<?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="1646039765036" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11015" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M509.5 575c-9.2 0-18.5-2.9-26.2-8.6L82.7 359.5c-2.9-1.5-5.6-3.5-7.9-5.8-8.3-8.3-12.9-19.4-12.9-31.1 0-11.8 4.6-22.8 12.9-31.1 2.2-2.2 4.8-4.1 7.6-5.6l401.8-214c15.5-11.7 37.1-11.7 52.7-0.1l400.6 209.9c2.9 1.5 5.5 3.4 7.8 5.7 8.3 8.3 12.9 19.4 12.9 31.1s-4.6 22.8-12.9 31.1c-2.3 2.3-4.9 4.2-7.7 5.7l-401.7 211c-7.9 5.8-17.1 8.7-26.4 8.7zM150.1 322.3l359.3 185.6 360.5-189.3-359.3-188.3-360.5 192z m772.5 4.7zM944.2 666.2L510.1 894.7l-437.4-226c-10.3 12.4-18.8 55.5 3.8 71.1l416.8 215.6c6.8 4.5 25.5 4.5 32.5 0.3L944 736.4c25.5-13.4 13.8-60.8 0.2-70.2z" p-id="11016"></path><path d="M944.2 473.9L510.1 702.3l-437.4-226c-10.3 12.4-18.8 55.5 3.8 71.1L493.2 763c6.8 4.5 25.5 4.5 32.5 0.3L943.8 544c25.7-13.3 14-60.8 0.4-70.1z" p-id="11017"></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="1646039926864" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13820" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M443.233103 881.11669h137.533794V829.793103H443.233103v51.358897zM237.02069 600.275862l137.533793-0.123586v-46.397793H237.02069V600.275862z m206.212413 141.082483l137.357242 0.406069 0.176552-49.981793H443.233103v49.575724z m-206.212413 139.828965h137.533793V829.793103H237.02069v51.358897z m0.882758-139.687724h136.651035v-49.716965H237.02069z m411.542069-141.241379h137.533793v-46.521379h-137.533793V600.275862zM443.233103 600.275862l137.533794-0.141241v-46.52138H443.233103V600.275862z m206.212414 141.241379l136.474483 0.123587 1.05931-49.840552h-137.533793V741.517241z m0 139.687725h137.533793V829.793103h-137.533793v51.358897zM851.950345 1024H172.049655a101.746759 101.746759 0 0 1-101.517241-101.746759V101.729103A101.764414 101.764414 0 0 1 172.049655-0.017655h679.90069A101.764414 101.764414 0 0 1 953.467586 101.729103v820.506483A101.746759 101.746759 0 0 1 851.950345 1024zM176.64 34.798345c-24.011034 0-71.150345 43.361103-71.150345 67.495724l0.176552 819.941517c0 24.134621 42.195862 66.665931 66.383448 66.665931h679.90069c24.187586 0 66.030345-42.53131 66.030345-66.665931l0.529655-820.506483c0-24.134621-42.372414-66.383448-66.56-66.383448z m564.612414 424.48331H258.56c-34.427586 0-62.49931-20.427034-62.49931-55.013517V171.608276c0-34.586483 29.131034-47.827862 63.55862-47.827862l481.633104-0.547311c34.604138 0 69.208276 13.78869 69.208276 48.375173l1.05931 232.659862c0 34.586483-35.663448 55.013517-70.267586 55.013517zM232.606897 157.484138a5.720276 5.720276 0 0 0-3.884138 6.126345l1.05931 254.322758c0 2.52469-0.529655 5.985103 1.942069 5.985104l543.249655-0.141242c2.471724 0 1.942069-2.913103 1.412414-19.420689l1.05931-240.110345c0-2.542345 1.412414-4.749241-1.05931-4.749241z" p-id="13821"></path></svg>
<?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="1646039926864" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13820" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M443.233103 881.11669h137.533794V829.793103H443.233103v51.358897zM237.02069 600.275862l137.533793-0.123586v-46.397793H237.02069V600.275862z m206.212413 141.082483l137.357242 0.406069 0.176552-49.981793H443.233103v49.575724z m-206.212413 139.828965h137.533793V829.793103H237.02069v51.358897z m0.882758-139.687724h136.651035v-49.716965H237.02069z m411.542069-141.241379h137.533793v-46.521379h-137.533793V600.275862zM443.233103 600.275862l137.533794-0.141241v-46.52138H443.233103V600.275862z m206.212414 141.241379l136.474483 0.123587 1.05931-49.840552h-137.533793V741.517241z m0 139.687725h137.533793V829.793103h-137.533793v51.358897zM851.950345 1024H172.049655a101.746759 101.746759 0 0 1-101.517241-101.746759V101.729103A101.764414 101.764414 0 0 1 172.049655-0.017655h679.90069A101.764414 101.764414 0 0 1 953.467586 101.729103v820.506483A101.746759 101.746759 0 0 1 851.950345 1024zM176.64 34.798345c-24.011034 0-71.150345 43.361103-71.150345 67.495724l0.176552 819.941517c0 24.134621 42.195862 66.665931 66.383448 66.665931h679.90069c24.187586 0 66.030345-42.53131 66.030345-66.665931l0.529655-820.506483c0-24.134621-42.372414-66.383448-66.56-66.383448z m564.612414 424.48331H258.56c-34.427586 0-62.49931-20.427034-62.49931-55.013517V171.608276c0-34.586483 29.131034-47.827862 63.55862-47.827862l481.633104-0.547311c34.604138 0 69.208276 13.78869 69.208276 48.375173l1.05931 232.659862c0 34.586483-35.663448 55.013517-70.267586 55.013517zM232.606897 157.484138a5.720276 5.720276 0 0 0-3.884138 6.126345l1.05931 254.322758c0 2.52469-0.529655 5.985103 1.942069 5.985104l543.249655-0.141242c2.471724 0 1.942069-2.913103 1.412414-19.420689l1.05931-240.110345c0-2.542345 1.412414-4.749241-1.05931-4.749241z" p-id="13821"></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="1646039715804" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10174" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M881.584843 7.654896 142.421977 7.654896C66.196947 7.654896 3.827448 70.024394 3.827448 146.249425l0 739.161161c0 76.221621 62.369499 138.58771 138.594529 138.58771l739.161161 0c76.221621 0 138.58771-62.366089 138.58771-138.58771L1020.170847 146.246015C1020.172552 70.020985 957.806463 7.654896 881.584843 7.654896L881.584843 7.654896zM973.977217 885.408881c0 24.482027-9.700748 47.579695-27.257566 65.139923-17.556819 17.553409-40.654486 27.257566-65.139923 27.257566L142.421977 977.80637c-24.490552 0-47.586514-9.700748-65.139923-27.257566-17.556819-17.556819-27.257566-40.654486-27.257566-65.139923L50.024488 146.246015c0-24.485437 9.697338-47.586514 27.257566-65.139923 17.553409-17.556819 40.651076-27.257566 65.139923-27.257566l739.161161 0c24.482027 0 47.579695 9.697338 65.139923 27.257566 17.553409 17.553409 27.257566 40.651076 27.257566 65.139923l0 739.161161L973.977217 885.407176z" p-id="10175"></path><path d="M358.090565 242.211811l444.626689 0c18.84741 0 34.204938 15.355823 34.204938 34.201528 0 18.84741-15.268874 34.204938-34.204938 34.204938L358.090565 310.618277c-18.84741 0-34.196414-15.355823-34.196414-34.204938C323.892446 257.564224 339.24145 242.211811 358.090565 242.211811L358.090565 242.211811z" p-id="10176"></path><path d="M358.090565 720.954784l444.626689 0c18.84741 0 34.204938 15.355823 34.204938 34.285067 0 18.930949-15.268874 34.199824-34.204938 34.199824L358.090565 789.439675c-18.84741 0-34.196414-15.268874-34.196414-34.199824C323.892446 736.312312 339.24145 720.954784 358.090565 720.954784L358.090565 720.954784z" p-id="10177"></path><path d="M358.090565 481.625919l444.626689 0c18.84741 0 34.204938 15.268874 34.204938 34.204938 0 18.92413-15.268874 34.198119-34.204938 34.198119L358.090565 550.028976c-18.84741 0-34.196414-15.268874-34.196414-34.198119C323.892446 496.896499 339.24145 481.625919 358.090565 481.625919L358.090565 481.625919z" p-id="10178"></path><path d="M221.282746 242.211811c18.84741 0 34.204938 15.355823 34.204938 34.201528 0 18.84741-15.268874 34.204938-34.204938 34.204938-18.927539 0-34.201528-15.355823-34.201528-34.204938C187.079513 257.564224 202.435336 242.211811 221.282746 242.211811L221.282746 242.211811z" p-id="10179"></path><path d="M221.282746 720.954784c18.84741 0 34.204938 15.355823 34.204938 34.285067 0 18.930949-15.268874 34.199824-34.204938 34.199824-18.927539 0-34.201528-15.268874-34.201528-34.199824C187.079513 736.312312 202.435336 720.954784 221.282746 720.954784L221.282746 720.954784z" p-id="10180"></path><path d="M221.282746 481.625919c18.84741 0 34.204938 15.268874 34.204938 34.204938 0 18.92413-15.355823 34.198119-34.204938 34.198119s-34.201528-15.349004-34.201528-34.198119C187.079513 496.976628 202.435336 481.625919 221.282746 481.625919L221.282746 481.625919z" p-id="10181"></path></svg>
<?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="1646039715804" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10174" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M881.584843 7.654896 142.421977 7.654896C66.196947 7.654896 3.827448 70.024394 3.827448 146.249425l0 739.161161c0 76.221621 62.369499 138.58771 138.594529 138.58771l739.161161 0c76.221621 0 138.58771-62.366089 138.58771-138.58771L1020.170847 146.246015C1020.172552 70.020985 957.806463 7.654896 881.584843 7.654896L881.584843 7.654896zM973.977217 885.408881c0 24.482027-9.700748 47.579695-27.257566 65.139923-17.556819 17.553409-40.654486 27.257566-65.139923 27.257566L142.421977 977.80637c-24.490552 0-47.586514-9.700748-65.139923-27.257566-17.556819-17.556819-27.257566-40.654486-27.257566-65.139923L50.024488 146.246015c0-24.485437 9.697338-47.586514 27.257566-65.139923 17.553409-17.556819 40.651076-27.257566 65.139923-27.257566l739.161161 0c24.482027 0 47.579695 9.697338 65.139923 27.257566 17.553409 17.553409 27.257566 40.651076 27.257566 65.139923l0 739.161161L973.977217 885.407176z" p-id="10175"></path><path d="M358.090565 242.211811l444.626689 0c18.84741 0 34.204938 15.355823 34.204938 34.201528 0 18.84741-15.268874 34.204938-34.204938 34.204938L358.090565 310.618277c-18.84741 0-34.196414-15.355823-34.196414-34.204938C323.892446 257.564224 339.24145 242.211811 358.090565 242.211811L358.090565 242.211811z" p-id="10176"></path><path d="M358.090565 720.954784l444.626689 0c18.84741 0 34.204938 15.355823 34.204938 34.285067 0 18.930949-15.268874 34.199824-34.204938 34.199824L358.090565 789.439675c-18.84741 0-34.196414-15.268874-34.196414-34.199824C323.892446 736.312312 339.24145 720.954784 358.090565 720.954784L358.090565 720.954784z" p-id="10177"></path><path d="M358.090565 481.625919l444.626689 0c18.84741 0 34.204938 15.268874 34.204938 34.204938 0 18.92413-15.268874 34.198119-34.204938 34.198119L358.090565 550.028976c-18.84741 0-34.196414-15.268874-34.196414-34.198119C323.892446 496.896499 339.24145 481.625919 358.090565 481.625919L358.090565 481.625919z" p-id="10178"></path><path d="M221.282746 242.211811c18.84741 0 34.204938 15.355823 34.204938 34.201528 0 18.84741-15.268874 34.204938-34.204938 34.204938-18.927539 0-34.201528-15.355823-34.201528-34.204938C187.079513 257.564224 202.435336 242.211811 221.282746 242.211811L221.282746 242.211811z" p-id="10179"></path><path d="M221.282746 720.954784c18.84741 0 34.204938 15.355823 34.204938 34.285067 0 18.930949-15.268874 34.199824-34.204938 34.199824-18.927539 0-34.201528-15.268874-34.201528-34.199824C187.079513 736.312312 202.435336 720.954784 221.282746 720.954784L221.282746 720.954784z" p-id="10180"></path><path d="M221.282746 481.625919c18.84741 0 34.204938 15.268874 34.204938 34.204938 0 18.92413-15.355823 34.198119-34.204938 34.198119s-34.201528-15.349004-34.201528-34.198119C187.079513 496.976628 202.435336 481.625919 221.282746 481.625919L221.282746 481.625919z" p-id="10181"></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="1646039967002" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15212" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M863.1 129.1l0.1 0.1v767.5l-0.1 0.1H161.3l-0.1-0.1V129.2l0.1-0.1h701.8m0.1-64h-702c-35.2 0-64 28.8-64 64v767.7c0 35.2 28.8 64 64 64h702c35.2 0 64-28.8 64-64V129.1c0-35.2-28.8-64-64-64z" p-id="15213"></path><path d="M702.6 289.1H319.3c-17.7 0-32-14.3-32-32s14.3-32 32-32h383.3c17.7 0 32 14.3 32 32s-14.4 32-32 32zM702.6 417H319.3c-17.7 0-32-14.3-32-32s14.3-32 32-32h383.3c17.7 0 32 14.3 32 32s-14.4 32-32 32zM447.3 546.2h-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h128c17.7 0 32 14.3 32 32s-14.3 32-32 32zM640.8 781c-42.7 0-77.5-34.7-77.5-77.5S598 626 640.8 626c42.7 0 77.5 34.7 77.5 77.5S683.5 781 640.8 781z m0-122.9c-25.1 0-45.5 20.4-45.5 45.5s20.4 45.5 45.5 45.5 45.5-20.4 45.5-45.5-20.4-45.5-45.5-45.5zM574 617.2c-5.2 0-10.3-2.5-13.4-7.2-4.9-7.4-2.8-17.3 4.6-22.2 14.8-9.7 31-16.4 48.3-20 8.7-1.8 17.1 3.8 18.9 12.5 1.8 8.7-3.8 17.1-12.5 18.9-13.3 2.7-25.8 7.9-37.1 15.3-2.7 1.9-5.8 2.7-8.8 2.7zM521.3 695.1c-1.1 0-2.1-0.1-3.2-0.3-8.7-1.8-14.3-10.2-12.5-18.9 3.6-17.7 10.6-34.4 20.7-49.4 4.9-7.3 14.9-9.3 22.2-4.4 7.3 4.9 9.3 14.9 4.4 22.2-7.8 11.6-13.1 24.3-15.9 38-1.6 7.5-8.3 12.8-15.7 12.8zM539.3 787.4c-5.2 0-10.2-2.5-13.3-7.1-10-15-16.8-31.5-20.4-49.1-1.8-8.7 3.8-17.1 12.5-18.9 8.7-1.8 17.1 3.8 18.9 12.5 2.7 13.5 8 26.2 15.7 37.7 4.9 7.4 2.9 17.3-4.4 22.2-2.9 1.8-6 2.7-9 2.7zM616.7 839.5c-1.1 0-2.1-0.1-3.2-0.3-17.6-3.6-34.1-10.5-49.1-20.5-7.3-4.9-9.3-14.8-4.4-22.2s14.8-9.3 22.2-4.4c11.5 7.7 24.2 13 37.7 15.7 8.7 1.8 14.3 10.2 12.5 18.9-1.5 7.6-8.2 12.8-15.7 12.8zM665.8 839.5c-7.4 0-14.1-5.2-15.7-12.8-1.8-8.7 3.8-17.1 12.5-18.9 13.4-2.7 26-7.9 37.4-15.5 7.4-4.9 17.3-2.9 22.2 4.5 4.9 7.4 2.9 17.3-4.5 22.2-14.9 9.9-31.2 16.7-48.7 20.2-1.1 0.2-2.2 0.3-3.2 0.3zM743.3 787.2c-3 0-6.1-0.9-8.8-2.7-7.4-4.9-9.4-14.8-4.5-22.2 7.6-11.5 12.8-24.1 15.6-37.5 1.8-8.7 10.2-14.3 18.9-12.5 8.7 1.8 14.3 10.2 12.5 18.9-3.5 17.5-10.4 33.9-20.3 48.8-3.1 4.7-8.2 7.2-13.4 7.2zM761.2 695.1c-7.5 0-14.1-5.2-15.7-12.8-2.7-13.5-8-26.1-15.6-37.6-4.9-7.4-2.9-17.3 4.5-22.2s17.3-2.9 22.2 4.5c10 14.9 16.8 31.4 20.4 49 1.8 8.7-3.8 17.1-12.5 18.9-1.2 0.1-2.3 0.2-3.3 0.2zM708.9 617.5c-3 0-6.1-0.9-8.8-2.7-11.5-7.6-24.1-12.9-37.5-15.6-8.7-1.8-14.2-10.2-12.5-18.9 1.8-8.7 10.2-14.2 18.9-12.5 17.5 3.6 33.9 10.4 48.8 20.3 7.4 4.9 9.4 14.8 4.5 22.2-3.1 4.7-8.2 7.2-13.4 7.2z" p-id="15214"></path><path d="M796 743.9h-34c-8.8 0-16-7.2-16-16s7.2-16 16-16h22.6v-16.8H762c-8.8 0-16-7.2-16-16s7.2-16 16-16h34c11.4 0 20.6 9.2 20.6 20.6v39.6c0 11.3-9.2 20.6-20.6 20.6z m0-48.8zM736.7 847.5c-5.5 0-10.7-2.1-14.6-6l-24-24c-6.2-6.2-6.2-16.4 0-22.6 6.2-6.2 16.4-6.2 22.6 0l16 16 11.9-11.9-16-16c-6.2-6.2-6.2-16.4 0-22.6 6.2-6.2 16.4-6.2 22.6 0l24 24c8 8 8 21.1 0 29.1l-28 28c-3.8 3.9-9 6-14.5 6z m19.9-40.5zM661 878.9h-39.6c-11.4 0-20.6-9.2-20.6-20.6v-34c0-8.8 7.2-16 16-16s16 7.2 16 16v22.6h16.8v-22.6c0-8.8 7.2-16 16-16s16 7.2 16 16v34c0 11.3-9.2 20.6-20.6 20.6zM545.7 847.5c-5.5 0-10.7-2.1-14.6-6l-28-28c-8-8-8-21.1 0-29.1l24-24c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6l-16 16 11.9 11.9 16-16c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6l-24 24c-3.8 3.9-9 6-14.5 6zM520.4 743.9h-34c-11.4 0-20.6-9.2-20.6-20.6v-39.6c0-11.4 9.2-20.6 20.6-20.6h34c8.8 0 16 7.2 16 16s-7.2 16-16 16h-22.6v16.8h22.6c8.8 0 16 7.2 16 16s-7.2 16-16 16zM538.5 651.3c-4.1 0-8.2-1.6-11.3-4.7l-24-24c-3.9-3.9-6-9.1-6-14.6s2.1-10.7 6-14.6l28-28c8-8 21.1-8 29.1 0l24 24c6.2 6.2 6.2 16.4 0 22.6-6.2 6.2-16.4 6.2-22.6 0l-16-16-11.8 12 16 16c6.2 6.2 6.2 16.4 0 22.6-3.2 3.1-7.3 4.7-11.4 4.7zM665.6 598.6c-8.8 0-16-7.2-16-16V560h-16.8v22.6c0 8.8-7.2 16-16 16s-16-7.2-16-16v-34c0-11.4 9.2-20.6 20.6-20.6H661c11.4 0 20.6 9.2 20.6 20.6v34c0 8.9-7.2 16-16 16zM743.9 651.3c-4.1 0-8.2-1.6-11.3-4.7-6.2-6.2-6.2-16.4 0-22.6l16-16-11.9-11.9-16 16c-6.2 6.2-16.4 6.2-22.6 0-6.2-6.2-6.2-16.4 0-22.6l24-24c8-8 21.1-8 29.1 0l28 28c3.9 3.9 6 9.1 6 14.6s-2.1 10.7-6 14.6l-24 24c-3.1 3-7.2 4.6-11.3 4.6z" p-id="15215"></path></svg>
<?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="1646039967002" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15212" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M863.1 129.1l0.1 0.1v767.5l-0.1 0.1H161.3l-0.1-0.1V129.2l0.1-0.1h701.8m0.1-64h-702c-35.2 0-64 28.8-64 64v767.7c0 35.2 28.8 64 64 64h702c35.2 0 64-28.8 64-64V129.1c0-35.2-28.8-64-64-64z" p-id="15213"></path><path d="M702.6 289.1H319.3c-17.7 0-32-14.3-32-32s14.3-32 32-32h383.3c17.7 0 32 14.3 32 32s-14.4 32-32 32zM702.6 417H319.3c-17.7 0-32-14.3-32-32s14.3-32 32-32h383.3c17.7 0 32 14.3 32 32s-14.4 32-32 32zM447.3 546.2h-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h128c17.7 0 32 14.3 32 32s-14.3 32-32 32zM640.8 781c-42.7 0-77.5-34.7-77.5-77.5S598 626 640.8 626c42.7 0 77.5 34.7 77.5 77.5S683.5 781 640.8 781z m0-122.9c-25.1 0-45.5 20.4-45.5 45.5s20.4 45.5 45.5 45.5 45.5-20.4 45.5-45.5-20.4-45.5-45.5-45.5zM574 617.2c-5.2 0-10.3-2.5-13.4-7.2-4.9-7.4-2.8-17.3 4.6-22.2 14.8-9.7 31-16.4 48.3-20 8.7-1.8 17.1 3.8 18.9 12.5 1.8 8.7-3.8 17.1-12.5 18.9-13.3 2.7-25.8 7.9-37.1 15.3-2.7 1.9-5.8 2.7-8.8 2.7zM521.3 695.1c-1.1 0-2.1-0.1-3.2-0.3-8.7-1.8-14.3-10.2-12.5-18.9 3.6-17.7 10.6-34.4 20.7-49.4 4.9-7.3 14.9-9.3 22.2-4.4 7.3 4.9 9.3 14.9 4.4 22.2-7.8 11.6-13.1 24.3-15.9 38-1.6 7.5-8.3 12.8-15.7 12.8zM539.3 787.4c-5.2 0-10.2-2.5-13.3-7.1-10-15-16.8-31.5-20.4-49.1-1.8-8.7 3.8-17.1 12.5-18.9 8.7-1.8 17.1 3.8 18.9 12.5 2.7 13.5 8 26.2 15.7 37.7 4.9 7.4 2.9 17.3-4.4 22.2-2.9 1.8-6 2.7-9 2.7zM616.7 839.5c-1.1 0-2.1-0.1-3.2-0.3-17.6-3.6-34.1-10.5-49.1-20.5-7.3-4.9-9.3-14.8-4.4-22.2s14.8-9.3 22.2-4.4c11.5 7.7 24.2 13 37.7 15.7 8.7 1.8 14.3 10.2 12.5 18.9-1.5 7.6-8.2 12.8-15.7 12.8zM665.8 839.5c-7.4 0-14.1-5.2-15.7-12.8-1.8-8.7 3.8-17.1 12.5-18.9 13.4-2.7 26-7.9 37.4-15.5 7.4-4.9 17.3-2.9 22.2 4.5 4.9 7.4 2.9 17.3-4.5 22.2-14.9 9.9-31.2 16.7-48.7 20.2-1.1 0.2-2.2 0.3-3.2 0.3zM743.3 787.2c-3 0-6.1-0.9-8.8-2.7-7.4-4.9-9.4-14.8-4.5-22.2 7.6-11.5 12.8-24.1 15.6-37.5 1.8-8.7 10.2-14.3 18.9-12.5 8.7 1.8 14.3 10.2 12.5 18.9-3.5 17.5-10.4 33.9-20.3 48.8-3.1 4.7-8.2 7.2-13.4 7.2zM761.2 695.1c-7.5 0-14.1-5.2-15.7-12.8-2.7-13.5-8-26.1-15.6-37.6-4.9-7.4-2.9-17.3 4.5-22.2s17.3-2.9 22.2 4.5c10 14.9 16.8 31.4 20.4 49 1.8 8.7-3.8 17.1-12.5 18.9-1.2 0.1-2.3 0.2-3.3 0.2zM708.9 617.5c-3 0-6.1-0.9-8.8-2.7-11.5-7.6-24.1-12.9-37.5-15.6-8.7-1.8-14.2-10.2-12.5-18.9 1.8-8.7 10.2-14.2 18.9-12.5 17.5 3.6 33.9 10.4 48.8 20.3 7.4 4.9 9.4 14.8 4.5 22.2-3.1 4.7-8.2 7.2-13.4 7.2z" p-id="15214"></path><path d="M796 743.9h-34c-8.8 0-16-7.2-16-16s7.2-16 16-16h22.6v-16.8H762c-8.8 0-16-7.2-16-16s7.2-16 16-16h34c11.4 0 20.6 9.2 20.6 20.6v39.6c0 11.3-9.2 20.6-20.6 20.6z m0-48.8zM736.7 847.5c-5.5 0-10.7-2.1-14.6-6l-24-24c-6.2-6.2-6.2-16.4 0-22.6 6.2-6.2 16.4-6.2 22.6 0l16 16 11.9-11.9-16-16c-6.2-6.2-6.2-16.4 0-22.6 6.2-6.2 16.4-6.2 22.6 0l24 24c8 8 8 21.1 0 29.1l-28 28c-3.8 3.9-9 6-14.5 6z m19.9-40.5zM661 878.9h-39.6c-11.4 0-20.6-9.2-20.6-20.6v-34c0-8.8 7.2-16 16-16s16 7.2 16 16v22.6h16.8v-22.6c0-8.8 7.2-16 16-16s16 7.2 16 16v34c0 11.3-9.2 20.6-20.6 20.6zM545.7 847.5c-5.5 0-10.7-2.1-14.6-6l-28-28c-8-8-8-21.1 0-29.1l24-24c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6l-16 16 11.9 11.9 16-16c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6l-24 24c-3.8 3.9-9 6-14.5 6zM520.4 743.9h-34c-11.4 0-20.6-9.2-20.6-20.6v-39.6c0-11.4 9.2-20.6 20.6-20.6h34c8.8 0 16 7.2 16 16s-7.2 16-16 16h-22.6v16.8h22.6c8.8 0 16 7.2 16 16s-7.2 16-16 16zM538.5 651.3c-4.1 0-8.2-1.6-11.3-4.7l-24-24c-3.9-3.9-6-9.1-6-14.6s2.1-10.7 6-14.6l28-28c8-8 21.1-8 29.1 0l24 24c6.2 6.2 6.2 16.4 0 22.6-6.2 6.2-16.4 6.2-22.6 0l-16-16-11.8 12 16 16c6.2 6.2 6.2 16.4 0 22.6-3.2 3.1-7.3 4.7-11.4 4.7zM665.6 598.6c-8.8 0-16-7.2-16-16V560h-16.8v22.6c0 8.8-7.2 16-16 16s-16-7.2-16-16v-34c0-11.4 9.2-20.6 20.6-20.6H661c11.4 0 20.6 9.2 20.6 20.6v34c0 8.9-7.2 16-16 16zM743.9 651.3c-4.1 0-8.2-1.6-11.3-4.7-6.2-6.2-6.2-16.4 0-22.6l16-16-11.9-11.9-16 16c-6.2 6.2-16.4 6.2-22.6 0-6.2-6.2-6.2-16.4 0-22.6l24-24c8-8 21.1-8 29.1 0l28 28c3.9 3.9 6 9.1 6 14.6s-2.1 10.7-6 14.6l-24 24c-3.1 3-7.2 4.6-11.3 4.6z" p-id="15215"></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="1646041055139" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20729" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 704.6c-106.1 0-192.4-86.3-192.4-192.4S406 319.9 512 319.9s192.4 86.3 192.4 192.4S618.1 704.6 512 704.6z m0-320.7c-70.8 0-128.4 57.6-128.4 128.4S441.3 640.6 512 640.6 640.4 583 640.4 512.2 582.8 383.9 512 383.9zM337.6 277.2c-10.4 0-20.6-5.1-26.8-14.4-9.7-14.8-5.6-34.6 9.1-44.3 37.5-24.7 78.8-41.8 122.7-50.7 17.3-3.5 34.2 7.7 37.7 25s-7.7 34.2-25 37.7c-35.9 7.3-69.6 21.2-100.3 41.4-5.2 3.6-11.3 5.3-17.4 5.3zM200 480.3c-2.1 0-4.3-0.2-6.4-0.6-17.3-3.5-28.5-20.4-25-37.7 9.1-45 26.8-87.2 52.5-125.5 9.9-14.7 29.7-18.6 44.4-8.7 14.7 9.9 18.6 29.7 8.7 44.4-21 31.3-35.4 65.8-42.9 102.5-3.1 15.2-16.4 25.6-31.3 25.6zM247 721.2c-10.3 0-20.5-5-26.7-14.3-25.3-38-42.8-79.9-51.8-124.5-3.5-17.3 7.7-34.2 25-37.7s34.2 7.7 37.7 25c7.4 36.5 21.6 70.7 42.3 101.8 9.8 14.7 5.8 34.6-8.9 44.4-5.3 3.6-11.5 5.3-17.6 5.3zM449.1 857.3c-2.1 0-4.3-0.2-6.4-0.6-44.7-9.1-86.7-26.6-124.7-52-14.7-9.8-18.7-29.7-8.8-44.4 9.8-14.7 29.7-18.7 44.4-8.8 31.1 20.8 65.4 35.1 101.9 42.5 17.3 3.5 28.5 20.4 25 37.7-3.1 15.2-16.5 25.6-31.4 25.6zM577.1 857.3c-14.9 0-28.2-10.5-31.3-25.6-3.5-17.3 7.7-34.2 25-37.7 36.2-7.4 70.1-21.5 101-41.9 14.7-9.8 34.6-5.7 44.4 9 9.8 14.7 5.7 34.6-9 44.4-37.7 25-79.3 42.3-123.6 51.3-2.3 0.3-4.4 0.5-6.5 0.5zM779.4 720.7c-6.1 0-12.2-1.7-17.7-5.3-14.7-9.8-18.7-29.6-9-44.4 20.5-30.9 34.7-65 42-101.3 3.5-17.3 20.4-28.5 37.7-25 17.3 3.5 28.5 20.4 25 37.7-9 44.4-26.3 86.1-51.4 124-6.1 9.3-16.2 14.3-26.6 14.3zM826.1 480.3c-14.9 0-28.2-10.5-31.3-25.6-7.4-36.4-21.6-70.6-42.2-101.6-9.8-14.7-5.8-34.6 8.9-44.4 14.7-9.8 34.6-5.8 44.4 8.9 25.3 37.9 42.7 79.8 51.7 124.3 3.5 17.3-7.7 34.2-25 37.7-2.2 0.5-4.4 0.7-6.5 0.7zM689.7 278c-6.1 0-12.2-1.7-17.7-5.4-30.9-20.6-65-34.8-101.3-42.1-17.3-3.5-28.5-20.4-25-37.7 3.5-17.3 20.4-28.5 37.7-25 44.4 9 86.1 26.4 124 51.6 14.7 9.8 18.7 29.7 8.9 44.4-6.1 9.2-16.2 14.2-26.6 14.2z" p-id="20730"></path><path d="M917 607.7h-88.6c-17.7 0-32-14.3-32-32s14.3-32 32-32H897v-63.3h-68.6c-17.7 0-32-14.3-32-32s14.3-32 32-32H917c24.3 0 44 19.7 44 44v103.3c0 24.2-19.8 44-44 44z m0-127.4zM762.1 878.2c-11.8 0-22.8-4.6-31.1-12.9l-62.7-62.7c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l48.5 48.5 44.8-44.8-48.5-48.5c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l62.7 62.7c8.3 8.3 12.9 19.3 12.9 31.1s-4.6 22.8-12.9 31.1l-73.1 73.1c-8.4 8.4-19.4 13-31.2 13zM821 775.3zM564.7 960H461.3c-24.3 0-44-19.7-44-44v-88.6c0-17.7 14.3-32 32-32s32 14.3 32 32V896h63.3v-68.6c0-17.7 14.3-32 32-32s32 14.3 32 32V916c0.1 24.2-19.7 44-43.9 44zM263.9 878.2c-11.8 0-22.8-4.6-31.1-12.9l-73.1-73.1c-17.2-17.2-17.2-45.1 0-62.2l62.7-62.7c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-48.5 48.5 44.8 44.8 48.5-48.5c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L295 865.3c-8.3 8.3-19.4 12.9-31.1 12.9zM197.7 607.7H109c-24.3 0-44-19.7-44-44V460.3c0-24.3 19.7-44 44-44h88.6c17.7 0 32 14.3 32 32s-14.3 32-32 32H129v63.3h68.6c17.7 0 32 14.3 32 32s-14.3 32.1-31.9 32.1zM245 366c-8.2 0-16.4-3.1-22.6-9.4L159.7 294c-8.3-8.3-12.9-19.3-12.9-31.1s4.6-22.8 12.9-31.1l73.1-73.1c17.2-17.2 45.1-17.2 62.2 0l62.7 62.7c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-48.5-48.5-44.8 44.8 48.5 48.5c12.5 12.5 12.5 32.8 0 45.3-6.2 6.1-14.4 9.2-22.6 9.2zM576.7 228.7c-17.7 0-32-14.3-32-32V128h-63.3v68.6c0 17.7-14.3 32-32 32s-32-14.3-32-32V108c0-24.3 19.7-44 44-44h103.3c24.3 0 44 19.7 44 44v88.6c0 17.7-14.4 32.1-32 32.1zM781 366c-8.2 0-16.4-3.1-22.6-9.4-12.5-12.5-12.5-32.8 0-45.3l48.5-48.5-44.8-44.8-48.5 48.5c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l62.7-62.7c8.3-8.3 19.4-12.9 31.1-12.9 11.8 0 22.8 4.6 31.1 12.9l73.1 73.1c8.3 8.3 12.9 19.3 12.9 31.1s-4.6 22.8-12.9 31.1l-62.7 62.7c-6.2 6.4-14.4 9.5-22.6 9.5z" p-id="20731"></path></svg>
<?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="1646041055139" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20729" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 704.6c-106.1 0-192.4-86.3-192.4-192.4S406 319.9 512 319.9s192.4 86.3 192.4 192.4S618.1 704.6 512 704.6z m0-320.7c-70.8 0-128.4 57.6-128.4 128.4S441.3 640.6 512 640.6 640.4 583 640.4 512.2 582.8 383.9 512 383.9zM337.6 277.2c-10.4 0-20.6-5.1-26.8-14.4-9.7-14.8-5.6-34.6 9.1-44.3 37.5-24.7 78.8-41.8 122.7-50.7 17.3-3.5 34.2 7.7 37.7 25s-7.7 34.2-25 37.7c-35.9 7.3-69.6 21.2-100.3 41.4-5.2 3.6-11.3 5.3-17.4 5.3zM200 480.3c-2.1 0-4.3-0.2-6.4-0.6-17.3-3.5-28.5-20.4-25-37.7 9.1-45 26.8-87.2 52.5-125.5 9.9-14.7 29.7-18.6 44.4-8.7 14.7 9.9 18.6 29.7 8.7 44.4-21 31.3-35.4 65.8-42.9 102.5-3.1 15.2-16.4 25.6-31.3 25.6zM247 721.2c-10.3 0-20.5-5-26.7-14.3-25.3-38-42.8-79.9-51.8-124.5-3.5-17.3 7.7-34.2 25-37.7s34.2 7.7 37.7 25c7.4 36.5 21.6 70.7 42.3 101.8 9.8 14.7 5.8 34.6-8.9 44.4-5.3 3.6-11.5 5.3-17.6 5.3zM449.1 857.3c-2.1 0-4.3-0.2-6.4-0.6-44.7-9.1-86.7-26.6-124.7-52-14.7-9.8-18.7-29.7-8.8-44.4 9.8-14.7 29.7-18.7 44.4-8.8 31.1 20.8 65.4 35.1 101.9 42.5 17.3 3.5 28.5 20.4 25 37.7-3.1 15.2-16.5 25.6-31.4 25.6zM577.1 857.3c-14.9 0-28.2-10.5-31.3-25.6-3.5-17.3 7.7-34.2 25-37.7 36.2-7.4 70.1-21.5 101-41.9 14.7-9.8 34.6-5.7 44.4 9 9.8 14.7 5.7 34.6-9 44.4-37.7 25-79.3 42.3-123.6 51.3-2.3 0.3-4.4 0.5-6.5 0.5zM779.4 720.7c-6.1 0-12.2-1.7-17.7-5.3-14.7-9.8-18.7-29.6-9-44.4 20.5-30.9 34.7-65 42-101.3 3.5-17.3 20.4-28.5 37.7-25 17.3 3.5 28.5 20.4 25 37.7-9 44.4-26.3 86.1-51.4 124-6.1 9.3-16.2 14.3-26.6 14.3zM826.1 480.3c-14.9 0-28.2-10.5-31.3-25.6-7.4-36.4-21.6-70.6-42.2-101.6-9.8-14.7-5.8-34.6 8.9-44.4 14.7-9.8 34.6-5.8 44.4 8.9 25.3 37.9 42.7 79.8 51.7 124.3 3.5 17.3-7.7 34.2-25 37.7-2.2 0.5-4.4 0.7-6.5 0.7zM689.7 278c-6.1 0-12.2-1.7-17.7-5.4-30.9-20.6-65-34.8-101.3-42.1-17.3-3.5-28.5-20.4-25-37.7 3.5-17.3 20.4-28.5 37.7-25 44.4 9 86.1 26.4 124 51.6 14.7 9.8 18.7 29.7 8.9 44.4-6.1 9.2-16.2 14.2-26.6 14.2z" p-id="20730"></path><path d="M917 607.7h-88.6c-17.7 0-32-14.3-32-32s14.3-32 32-32H897v-63.3h-68.6c-17.7 0-32-14.3-32-32s14.3-32 32-32H917c24.3 0 44 19.7 44 44v103.3c0 24.2-19.8 44-44 44z m0-127.4zM762.1 878.2c-11.8 0-22.8-4.6-31.1-12.9l-62.7-62.7c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l48.5 48.5 44.8-44.8-48.5-48.5c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l62.7 62.7c8.3 8.3 12.9 19.3 12.9 31.1s-4.6 22.8-12.9 31.1l-73.1 73.1c-8.4 8.4-19.4 13-31.2 13zM821 775.3zM564.7 960H461.3c-24.3 0-44-19.7-44-44v-88.6c0-17.7 14.3-32 32-32s32 14.3 32 32V896h63.3v-68.6c0-17.7 14.3-32 32-32s32 14.3 32 32V916c0.1 24.2-19.7 44-43.9 44zM263.9 878.2c-11.8 0-22.8-4.6-31.1-12.9l-73.1-73.1c-17.2-17.2-17.2-45.1 0-62.2l62.7-62.7c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-48.5 48.5 44.8 44.8 48.5-48.5c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L295 865.3c-8.3 8.3-19.4 12.9-31.1 12.9zM197.7 607.7H109c-24.3 0-44-19.7-44-44V460.3c0-24.3 19.7-44 44-44h88.6c17.7 0 32 14.3 32 32s-14.3 32-32 32H129v63.3h68.6c17.7 0 32 14.3 32 32s-14.3 32.1-31.9 32.1zM245 366c-8.2 0-16.4-3.1-22.6-9.4L159.7 294c-8.3-8.3-12.9-19.3-12.9-31.1s4.6-22.8 12.9-31.1l73.1-73.1c17.2-17.2 45.1-17.2 62.2 0l62.7 62.7c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-48.5-48.5-44.8 44.8 48.5 48.5c12.5 12.5 12.5 32.8 0 45.3-6.2 6.1-14.4 9.2-22.6 9.2zM576.7 228.7c-17.7 0-32-14.3-32-32V128h-63.3v68.6c0 17.7-14.3 32-32 32s-32-14.3-32-32V108c0-24.3 19.7-44 44-44h103.3c24.3 0 44 19.7 44 44v88.6c0 17.7-14.4 32.1-32 32.1zM781 366c-8.2 0-16.4-3.1-22.6-9.4-12.5-12.5-12.5-32.8 0-45.3l48.5-48.5-44.8-44.8-48.5 48.5c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l62.7-62.7c8.3-8.3 19.4-12.9 31.1-12.9 11.8 0 22.8 4.6 31.1 12.9l73.1 73.1c8.3 8.3 12.9 19.3 12.9 31.1s-4.6 22.8-12.9 31.1l-62.7 62.7c-6.2 6.4-14.4 9.5-22.6 9.5z" p-id="20731"></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="1646041806123" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28865" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1.827144 981.176313m21.354745 0l977.636222 0q21.354745 0 21.354745 21.354745l0 0.114197q0 21.354745-21.354745 21.354745l-977.636222 0q-21.354745 0-21.354745-21.354745l0-0.114197q0-21.354745 21.354745-21.354745Z" fill="#ffffff" p-id="28866"></path><path d="M44.650831 0m0 21.354745l0 977.636222q0 21.354745-21.354745 21.354745l-0.114197 0q-21.354745 0-21.354745-21.354745l0-977.636222q0-21.354745 21.354745-21.354745l0.114197 0q21.354745 0 21.354745 21.354745Z" fill="#ffffff" p-id="28867"></path><path d="M432.303425 402.092949m-15.100086 15.100085l-220.122096 220.122097q-15.100085 15.100085-30.20017 0l-0.080749-0.08075q-15.100085-15.100085 0-30.20017l220.122096-220.122096q15.100085-15.100085 30.20017 0l0.080749 0.080749q15.100085 15.100085 0 30.20017Z" fill="#ffffff" p-id="28868"></path><path d="M402.03781 371.717901m15.100085 15.100086l220.122097 220.122096q15.100085 15.100085 0 30.20017l-0.080749 0.08075q-15.100085 15.100085-30.200171 0l-220.122096-220.122097q-15.100085-15.100085 0-30.20017l0.080749-0.080749q15.100085-15.100085 30.20017 0Z" fill="#ffffff" p-id="28869"></path><path d="M872.344866 402.029735m-15.100085 15.100085l-220.122096 220.122097q-15.100085 15.100085-30.200171 0l-0.080749-0.080749q-15.100085-15.100085 0-30.200171l220.122097-220.122096q15.100085-15.100085 30.20017 0l0.080749 0.080749q15.100085 15.100085 0 30.20017Z" fill="#ffffff" p-id="28870"></path></svg>
<?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="1646041806123" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28865" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1.827144 981.176313m21.354745 0l977.636222 0q21.354745 0 21.354745 21.354745l0 0.114197q0 21.354745-21.354745 21.354745l-977.636222 0q-21.354745 0-21.354745-21.354745l0-0.114197q0-21.354745 21.354745-21.354745Z" fill="#ffffff" p-id="28866"></path><path d="M44.650831 0m0 21.354745l0 977.636222q0 21.354745-21.354745 21.354745l-0.114197 0q-21.354745 0-21.354745-21.354745l0-977.636222q0-21.354745 21.354745-21.354745l0.114197 0q21.354745 0 21.354745 21.354745Z" fill="#ffffff" p-id="28867"></path><path d="M432.303425 402.092949m-15.100086 15.100085l-220.122096 220.122097q-15.100085 15.100085-30.20017 0l-0.080749-0.08075q-15.100085-15.100085 0-30.20017l220.122096-220.122096q15.100085-15.100085 30.20017 0l0.080749 0.080749q15.100085 15.100085 0 30.20017Z" fill="#ffffff" p-id="28868"></path><path d="M402.03781 371.717901m15.100085 15.100086l220.122097 220.122096q15.100085 15.100085 0 30.20017l-0.080749 0.08075q-15.100085 15.100085-30.200171 0l-220.122096-220.122097q-15.100085-15.100085 0-30.20017l0.080749-0.080749q15.100085-15.100085 30.20017 0Z" fill="#ffffff" p-id="28869"></path><path d="M872.344866 402.029735m-15.100085 15.100085l-220.122096 220.122097q-15.100085 15.100085-30.200171 0l-0.080749-0.080749q-15.100085-15.100085 0-30.200171l220.122097-220.122096q15.100085-15.100085 30.20017 0l0.080749 0.080749q15.100085 15.100085 0 30.20017Z" fill="#ffffff" p-id="28870"></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="1646041128638" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="22493" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1020.221442 259.023358l0.057305-0.01535L512.668731 6.224772 5.978666 258.526031l-0.948605 0 0 505.962493 507.639692 252.7904 507.610016-252.7904L1020.27977 259.023358 1020.221442 259.023358zM512.668731 67.442018l381.63693 190.562127L749.096465 330.981227l-383.65796-190.004425L512.668731 67.442018zM298.950208 176.850847l388.576993 186.487322-174.857447 84.181261-381.642047-188.511421L298.950208 176.850847zM68.45458 322.952366l20.269649-0.025583-20.269649-0.696872 0-31.654954L480.873584 495.91772l0 442.368106L68.45458 732.932832 68.45458 322.952366zM956.881858 353.789699l0 379.144156L544.462854 938.285826 544.462854 495.91772l412.417981-205.343785L956.880835 353.789699z" p-id="22494"></path></svg>
<?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="1646041128638" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="22493" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1020.221442 259.023358l0.057305-0.01535L512.668731 6.224772 5.978666 258.526031l-0.948605 0 0 505.962493 507.639692 252.7904 507.610016-252.7904L1020.27977 259.023358 1020.221442 259.023358zM512.668731 67.442018l381.63693 190.562127L749.096465 330.981227l-383.65796-190.004425L512.668731 67.442018zM298.950208 176.850847l388.576993 186.487322-174.857447 84.181261-381.642047-188.511421L298.950208 176.850847zM68.45458 322.952366l20.269649-0.025583-20.269649-0.696872 0-31.654954L480.873584 495.91772l0 442.368106L68.45458 732.932832 68.45458 322.952366zM956.881858 353.789699l0 379.144156L544.462854 938.285826 544.462854 495.91772l412.417981-205.343785L956.880835 353.789699z" p-id="22494"></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="1646039403498" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5549" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M340.625432 460.981069h340.836281c33.231537 0 60.072394-26.840857 60.072394-60.072394v-340.836281c0-33.231537-26.840857-60.072394-60.072394-60.072394h-340.836281c-33.231537 0-60.072394 26.840857-60.072394 60.072394v340.836281c0 33.018515 26.840857 60.072394 60.072394 60.072394z m0-401.121697h340.836281v340.83628h-340.836281v-340.83628zM962.225599 561.101727h-340.836281c-33.231537 0-60.072394 26.840857-60.072394 60.072394v340.83628c0 33.231537 26.840857 60.072394 60.072394 60.072395h340.836281c33.231537 0 60.072394-26.840857 60.072394-60.072395v-340.83628c0-33.018515-26.840857-60.072394-60.072394-60.072394z m0 401.121697h-340.836281v-340.83628h340.836281v340.83628zM400.910849 561.101727h-340.83628c-33.231537 0-60.072394 26.840857-60.072394 60.072394v340.83628c0 33.231537 26.840857 60.072394 60.072394 60.072395h340.83628c33.231537 0 60.072394-26.840857 60.072395-60.072395v-340.83628c0-33.018515-26.840857-60.072394-60.072395-60.072394z m0 401.121697h-340.83628v-340.83628h340.83628v340.83628zM631.401384 160.193052c0 20.024131-10.012066 30.036197-30.036197 30.036197h-180.430206c-20.024131 0-30.036197-10.012066-30.036197-30.036197s10.012066-30.036197 30.036197-30.036197h180.430206c20.024131 0 30.036197 10.012066 30.036197 30.036197zM110.134898 721.507801c0-20.024131 10.012066-30.036197 30.036197-30.036197h180.430206c20.024131 0 30.036197 10.012066 30.036197 30.036197s-10.012066 30.036197-30.036197 30.036197H140.171095c-20.024131 0-30.036197-10.012066-30.036197-30.036197z m561.314749 0c0-20.024131 10.012066-30.036197 30.036197-30.036197h180.430206c20.024131 0 30.036197 10.012066 30.036197 30.036197s-10.012066 30.036197-30.036197 30.036197h-180.430206c-20.024131 0-30.036197-10.012066-30.036197-30.036197z m0 0" p-id="5550"></path></svg>
<?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="1646039403498" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5549" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M340.625432 460.981069h340.836281c33.231537 0 60.072394-26.840857 60.072394-60.072394v-340.836281c0-33.231537-26.840857-60.072394-60.072394-60.072394h-340.836281c-33.231537 0-60.072394 26.840857-60.072394 60.072394v340.836281c0 33.018515 26.840857 60.072394 60.072394 60.072394z m0-401.121697h340.836281v340.83628h-340.836281v-340.83628zM962.225599 561.101727h-340.836281c-33.231537 0-60.072394 26.840857-60.072394 60.072394v340.83628c0 33.231537 26.840857 60.072394 60.072394 60.072395h340.836281c33.231537 0 60.072394-26.840857 60.072394-60.072395v-340.83628c0-33.018515-26.840857-60.072394-60.072394-60.072394z m0 401.121697h-340.836281v-340.83628h340.836281v340.83628zM400.910849 561.101727h-340.83628c-33.231537 0-60.072394 26.840857-60.072394 60.072394v340.83628c0 33.231537 26.840857 60.072394 60.072394 60.072395h340.83628c33.231537 0 60.072394-26.840857 60.072395-60.072395v-340.83628c0-33.018515-26.840857-60.072394-60.072395-60.072394z m0 401.121697h-340.83628v-340.83628h340.83628v340.83628zM631.401384 160.193052c0 20.024131-10.012066 30.036197-30.036197 30.036197h-180.430206c-20.024131 0-30.036197-10.012066-30.036197-30.036197s10.012066-30.036197 30.036197-30.036197h180.430206c20.024131 0 30.036197 10.012066 30.036197 30.036197zM110.134898 721.507801c0-20.024131 10.012066-30.036197 30.036197-30.036197h180.430206c20.024131 0 30.036197 10.012066 30.036197 30.036197s-10.012066 30.036197-30.036197 30.036197H140.171095c-20.024131 0-30.036197-10.012066-30.036197-30.036197z m561.314749 0c0-20.024131 10.012066-30.036197 30.036197-30.036197h180.430206c20.024131 0 30.036197 10.012066 30.036197 30.036197s-10.012066 30.036197-30.036197 30.036197h-180.430206c-20.024131 0-30.036197-10.012066-30.036197-30.036197z m0 0" p-id="5550"></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="1646040474267" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18125" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 417.92a135.68 135.68 0 0 0-119.04-45.44A283.52 283.52 0 0 1 768 364.16a673.92 673.92 0 0 1-155.52-118.4l-20.48-18.56A132.48 132.48 0 0 0 512 192a131.2 131.2 0 0 0-77.44 32.64l-20.48 18.56A673.28 673.28 0 0 1 256 364.16a284.16 284.16 0 0 1-72.32 8.96 135.68 135.68 0 0 0-119.68 44.8c-53.12 77.44 37.76 177.92 101.76 234.88C183.04 753.28 327.68 832 512 832s328.96-76.16 344.96-176c64-60.16 154.88-160.64 103.04-238.08zM117.76 454.4c10.24-14.72 31.36-16 68.48-17.28a337.28 337.28 0 0 0 88.96-12.16 634.24 634.24 0 0 0 179.2-131.84l19.84-17.92A71.04 71.04 0 0 1 512 256a68.48 68.48 0 0 1 40.32 16.64l19.84 17.92a640 640 0 0 0 176.64 134.4 337.28 337.28 0 0 0 88.32 12.16c37.12 0 58.88 0 68.48 17.28 17.28 25.6-19.2 85.76-89.6 149.12H207.36c-70.4-63.36-106.88-123.52-89.6-149.12zM512 768c-138.24 0-242.56-46.72-273.92-97.92h547.84C754.56 718.08 650.24 768 512 768z" fill="#e6e6e6" p-id="18126"></path><path d="M602.88 371.84h-10.88a156.16 156.16 0 0 1-69.12-16 24.96 24.96 0 0 0-22.4 0 156.16 156.16 0 0 1-69.12 16h-10.88a90.24 90.24 0 0 0 23.04 60.16 86.4 86.4 0 0 0-19.84 54.4A87.68 87.68 0 0 0 495.36 576a16.64 16.64 0 0 0 32.64 0 87.68 87.68 0 0 0 71.04-88.32 86.4 86.4 0 0 0-19.84-54.4 90.24 90.24 0 0 0 23.04-60.16z" fill="#e6e6e6" p-id="18127"></path></svg>
<?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="1646040474267" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18125" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 417.92a135.68 135.68 0 0 0-119.04-45.44A283.52 283.52 0 0 1 768 364.16a673.92 673.92 0 0 1-155.52-118.4l-20.48-18.56A132.48 132.48 0 0 0 512 192a131.2 131.2 0 0 0-77.44 32.64l-20.48 18.56A673.28 673.28 0 0 1 256 364.16a284.16 284.16 0 0 1-72.32 8.96 135.68 135.68 0 0 0-119.68 44.8c-53.12 77.44 37.76 177.92 101.76 234.88C183.04 753.28 327.68 832 512 832s328.96-76.16 344.96-176c64-60.16 154.88-160.64 103.04-238.08zM117.76 454.4c10.24-14.72 31.36-16 68.48-17.28a337.28 337.28 0 0 0 88.96-12.16 634.24 634.24 0 0 0 179.2-131.84l19.84-17.92A71.04 71.04 0 0 1 512 256a68.48 68.48 0 0 1 40.32 16.64l19.84 17.92a640 640 0 0 0 176.64 134.4 337.28 337.28 0 0 0 88.32 12.16c37.12 0 58.88 0 68.48 17.28 17.28 25.6-19.2 85.76-89.6 149.12H207.36c-70.4-63.36-106.88-123.52-89.6-149.12zM512 768c-138.24 0-242.56-46.72-273.92-97.92h547.84C754.56 718.08 650.24 768 512 768z" fill="#e6e6e6" p-id="18126"></path><path d="M602.88 371.84h-10.88a156.16 156.16 0 0 1-69.12-16 24.96 24.96 0 0 0-22.4 0 156.16 156.16 0 0 1-69.12 16h-10.88a90.24 90.24 0 0 0 23.04 60.16 86.4 86.4 0 0 0-19.84 54.4A87.68 87.68 0 0 0 495.36 576a16.64 16.64 0 0 0 32.64 0 87.68 87.68 0 0 0 71.04-88.32 86.4 86.4 0 0 0-19.84-54.4 90.24 90.24 0 0 0 23.04-60.16z" fill="#e6e6e6" p-id="18127"></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="1646039518730" class="icon" viewBox="0 0 1061 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6245" xmlns:xlink="http://www.w3.org/1999/xlink" width="207.2265625" height="200"><defs><style type="text/css"></style></defs><path d="M530.323118 88.049532h-45.678795l-51.16025 93.184741c-12.790063 25.580125-21.925822 42.024491-23.752973 49.333099-9.135759-20.09867-34.715884-67.604616-74.913224-142.51784h-47.505947l87.703287 151.653599h-73.086072v32.888732h84.048982v45.678795h-84.048982v34.715884h84.048982V420.591159h42.024492v-67.604617H512.0516v-34.715884h-82.221831v-45.678795H512.0516V237.875979h-69.431768L530.323118 88.049532z" p-id="6246"></path><path d="M776.988611 659.948044H822.667406h-45.678795zM822.667406 659.948044v-179.060876 179.060876zM1060.197139 913.922144v-164.443662c0-23.752973-9.135759-45.678795-27.407277-63.950313-16.444366-16.444366-23.752973-25.580125-45.678795-27.407277V164.789907c1.827152-14.617214 0-27.407277-3.654303-40.19734-3.654304-9.135759-9.135759-18.271518-18.271518-25.580125-12.790063-7.308607-29.234429-9.135759-43.851643-7.308607h-157.135055c-1.827152-12.790063-3.654304-23.752973-9.135759-32.888732-10.962911-20.09867-27.407277-36.543036-49.333098-45.678795-20.09867-9.135759-31.061581-12.790063-73.086072-12.790063H195.954339C168.547062-1.480907 139.312634 4.000549 113.732509 14.96346c-18.271518 9.135759-34.715884 23.752973-45.678795 43.851643-10.962911 18.271518-7.308607 32.888732-12.790063 78.567527v529.874021c-9.135759 5.481455-18.271518 12.790063-27.407277 20.09867-18.271518 16.444366-27.407277 40.19734-27.407277 63.950313V913.922144c-1.827152 21.925822 1.827152 42.024491 12.790063 62.123161 9.135759 14.617214 20.09867 27.407277 36.543036 34.715884 20.09867 9.135759 42.024491 14.617214 63.950313 12.790063H950.568032c21.925822 1.827152 43.851643-1.827152 63.950312-12.790063 14.617214-7.308607 27.407277-20.09867 36.543036-34.715884 7.308607-18.271518 10.962911-40.19734 9.135759-62.123161zM868.346201 122.765416H932.296514c3.654304 0 9.135759 1.827152 10.96291 3.654303 5.481455 3.654304 7.308607 9.135759 7.308608 14.617215v518.91111h-82.221831V122.765416z m-91.35759 18.271518v-5.481456c1.827152-7.308607 7.308607-10.962911 14.617214-12.790062H822.667406V659.948044h-45.678795V141.036934zM91.806687 128.246871c0-42.024491 7.308607-93.184742 73.086072-93.184742h480.540922c40.19734 1.827152 74.913224 27.407277 87.703287 62.123162 3.654304 9.135759 5.481455 20.09867 5.481455 31.06158l-1.827152 529.874021h-63.950313c-25.580125-1.827152-49.333099 12.790063-58.468857 36.543036 0 1.827152 0 1.827152-1.827152 3.654304-3.654304 18.271518-12.790063 34.715884-23.752973 49.333098-14.617214 16.444366-36.543036 23.752973-58.468858 23.752974-21.925822 1.827152-43.851643-7.308607-60.296009-21.925822-12.790063-12.790063-21.925822-29.234429-25.580125-45.678795v-1.827152c-10.962911-23.752973-34.715884-40.19734-60.29601-42.024491L91.806687 658.120892V128.246871z m931.847416 840.489827c0 9.135759-7.308607 18.271518-16.444366 20.098669h1.827152c-20.09867 1.827152-38.370188 1.827152-58.468857 1.827152L82.670928 987.008216c-12.790063 1.827152-25.580125-3.654304-34.715884-14.617215 1.827152 5.481455-3.654304-1.827152 0 0-1.827152-1.827152-5.481455-14.617214-5.481456-14.617214-5.481455-12.790063-9.135759-25.580125-7.308607-40.19734L36.992133 749.478482v-20.09867c1.827152-20.09867 18.271518-36.543036 38.370188-34.715884H91.806687l18.271518-7.308607-18.271518 7.308607h292.344287c1.827152 0 5.481455 1.827152 7.308608 3.654304v1.827151C402.422492 725.725509 418.866859 749.478482 438.965528 767.75c23.752973 25.580125 56.641706 38.370188 91.35759 36.543036 34.715884 1.827152 67.604616-10.962911 91.35759-36.543036 14.617214-20.09867 23.752973-42.024491 27.407277-67.604617 1.827152-1.827152 3.654304-3.654304 7.308607-5.481455h316.097261c16.444366 0 32.888732 7.308607 43.851643 20.09867 7.308607 10.962911 10.962911 23.752973 10.962911 34.715884l-3.654304 164.443662v54.814554z" p-id="6247"></path><path d="M822.667406 480.887168v179.060876h-45.678795H822.667406zM610.717797 491.850079c0 14.617214-12.790063 18.271518-27.407277 18.271518H248.941742c-14.617214 0-27.407277-3.654304-27.407277-18.271518s12.790063-18.271518 27.407277-18.271518h334.368778c16.444366 0 27.407277 3.654304 27.407277 18.271518zM610.717797 583.207668c0 14.617214-12.790063 18.271518-27.407277 18.271518H248.941742c-14.617214 0-27.407277-3.654304-27.407277-18.271518s12.790063-18.271518 27.407277-18.271517h334.368778c16.444366 0 27.407277 3.654304 27.407277 18.271517z" p-id="6248"></path></svg>
<?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="1646039518730" class="icon" viewBox="0 0 1061 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6245" xmlns:xlink="http://www.w3.org/1999/xlink" width="207.2265625" height="200"><defs><style type="text/css"></style></defs><path d="M530.323118 88.049532h-45.678795l-51.16025 93.184741c-12.790063 25.580125-21.925822 42.024491-23.752973 49.333099-9.135759-20.09867-34.715884-67.604616-74.913224-142.51784h-47.505947l87.703287 151.653599h-73.086072v32.888732h84.048982v45.678795h-84.048982v34.715884h84.048982V420.591159h42.024492v-67.604617H512.0516v-34.715884h-82.221831v-45.678795H512.0516V237.875979h-69.431768L530.323118 88.049532z" p-id="6246"></path><path d="M776.988611 659.948044H822.667406h-45.678795zM822.667406 659.948044v-179.060876 179.060876zM1060.197139 913.922144v-164.443662c0-23.752973-9.135759-45.678795-27.407277-63.950313-16.444366-16.444366-23.752973-25.580125-45.678795-27.407277V164.789907c1.827152-14.617214 0-27.407277-3.654303-40.19734-3.654304-9.135759-9.135759-18.271518-18.271518-25.580125-12.790063-7.308607-29.234429-9.135759-43.851643-7.308607h-157.135055c-1.827152-12.790063-3.654304-23.752973-9.135759-32.888732-10.962911-20.09867-27.407277-36.543036-49.333098-45.678795-20.09867-9.135759-31.061581-12.790063-73.086072-12.790063H195.954339C168.547062-1.480907 139.312634 4.000549 113.732509 14.96346c-18.271518 9.135759-34.715884 23.752973-45.678795 43.851643-10.962911 18.271518-7.308607 32.888732-12.790063 78.567527v529.874021c-9.135759 5.481455-18.271518 12.790063-27.407277 20.09867-18.271518 16.444366-27.407277 40.19734-27.407277 63.950313V913.922144c-1.827152 21.925822 1.827152 42.024491 12.790063 62.123161 9.135759 14.617214 20.09867 27.407277 36.543036 34.715884 20.09867 9.135759 42.024491 14.617214 63.950313 12.790063H950.568032c21.925822 1.827152 43.851643-1.827152 63.950312-12.790063 14.617214-7.308607 27.407277-20.09867 36.543036-34.715884 7.308607-18.271518 10.962911-40.19734 9.135759-62.123161zM868.346201 122.765416H932.296514c3.654304 0 9.135759 1.827152 10.96291 3.654303 5.481455 3.654304 7.308607 9.135759 7.308608 14.617215v518.91111h-82.221831V122.765416z m-91.35759 18.271518v-5.481456c1.827152-7.308607 7.308607-10.962911 14.617214-12.790062H822.667406V659.948044h-45.678795V141.036934zM91.806687 128.246871c0-42.024491 7.308607-93.184742 73.086072-93.184742h480.540922c40.19734 1.827152 74.913224 27.407277 87.703287 62.123162 3.654304 9.135759 5.481455 20.09867 5.481455 31.06158l-1.827152 529.874021h-63.950313c-25.580125-1.827152-49.333099 12.790063-58.468857 36.543036 0 1.827152 0 1.827152-1.827152 3.654304-3.654304 18.271518-12.790063 34.715884-23.752973 49.333098-14.617214 16.444366-36.543036 23.752973-58.468858 23.752974-21.925822 1.827152-43.851643-7.308607-60.296009-21.925822-12.790063-12.790063-21.925822-29.234429-25.580125-45.678795v-1.827152c-10.962911-23.752973-34.715884-40.19734-60.29601-42.024491L91.806687 658.120892V128.246871z m931.847416 840.489827c0 9.135759-7.308607 18.271518-16.444366 20.098669h1.827152c-20.09867 1.827152-38.370188 1.827152-58.468857 1.827152L82.670928 987.008216c-12.790063 1.827152-25.580125-3.654304-34.715884-14.617215 1.827152 5.481455-3.654304-1.827152 0 0-1.827152-1.827152-5.481455-14.617214-5.481456-14.617214-5.481455-12.790063-9.135759-25.580125-7.308607-40.19734L36.992133 749.478482v-20.09867c1.827152-20.09867 18.271518-36.543036 38.370188-34.715884H91.806687l18.271518-7.308607-18.271518 7.308607h292.344287c1.827152 0 5.481455 1.827152 7.308608 3.654304v1.827151C402.422492 725.725509 418.866859 749.478482 438.965528 767.75c23.752973 25.580125 56.641706 38.370188 91.35759 36.543036 34.715884 1.827152 67.604616-10.962911 91.35759-36.543036 14.617214-20.09867 23.752973-42.024491 27.407277-67.604617 1.827152-1.827152 3.654304-3.654304 7.308607-5.481455h316.097261c16.444366 0 32.888732 7.308607 43.851643 20.09867 7.308607 10.962911 10.962911 23.752973 10.962911 34.715884l-3.654304 164.443662v54.814554z" p-id="6247"></path><path d="M822.667406 480.887168v179.060876h-45.678795H822.667406zM610.717797 491.850079c0 14.617214-12.790063 18.271518-27.407277 18.271518H248.941742c-14.617214 0-27.407277-3.654304-27.407277-18.271518s12.790063-18.271518 27.407277-18.271518h334.368778c16.444366 0 27.407277 3.654304 27.407277 18.271518zM610.717797 583.207668c0 14.617214-12.790063 18.271518-27.407277 18.271518H248.941742c-14.617214 0-27.407277-3.654304-27.407277-18.271518s12.790063-18.271518 27.407277-18.271517h334.368778c16.444366 0 27.407277 3.654304 27.407277 18.271517z" p-id="6248"></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="1646042329538" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31371" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M955.759067 691.088806c-2.947766-32.23191-18.272258-61.406498-43.135265-82.121746-24.876318-20.741869-56.331099-30.403251-88.576319-27.565041a26.361975 26.361975 0 0 0-4.366871 0.763818L622.737293 632.457037c-11.998912-28.995409-38.576927-51.03454-71.528628-55.502776l-234.547555-36.189227c-39.327435-5.185979-76.376726 15.447358-93.488921 48.988818l-125.884653-28.656503c-15.010159-3.493497-30.034652 6.004064-33.459549 21.041867-3.424896 15.037804 6.004064 30.021342 21.041868 33.432928l150.67906 34.306302c7.64228 1.774393 15.678756 0.163822 22.134352-4.257316a28.003264 28.003264 0 0 0 11.762395-19.213208c2.633433-19.295119 20.332315-32.969107 39.204569-30.32134l234.547555 36.189227c19.281808 2.620123 32.846241 20.414226 30.239429 39.682724-2.620123 19.322764-20.455181 32.995728-39.505591 30.267074l-226.059546-32.341466c-15.133025-2.238213-29.434655 8.406099-31.617579 23.71728-2.197258 15.283536 8.419409 29.447966 23.702946 31.631913l226.264322 32.368087c4.134449 0.545731 8.242277 0.819108 12.30915 0.819108 41.675204 0 78.436783-28.669813 88.451405-69.364135l204.187307-52.139313c16.579775-0.98293 32.791975 4.257315 45.673477 15.011183 8.242277 6.849793 14.546339 15.447358 18.5313 25.081095l-363.03902 152.835362a27.8548 27.8548 0 0 0-12.844641 10.955573c-27.752412 21.189307-67.718751 19.175324-93.075272-6.206792a28.064697 28.064697 0 0 0-4.345369-3.553906 27.812821 27.812821 0 0 0-12.725871-6.708497l-312.043387-71.286992c-15.024493-3.465852-30.034652 5.977443-33.473883 21.015246-3.424896 15.037804 5.977443 30.021342 21.028557 33.459549l305.331819 69.753212c24.265058 22.58691 55.290831 33.901867 86.322748 33.901867 30.704273 0 61.415713-11.075368 85.56712-33.189243l376.692531-158.591646c11.216664-4.724207 18.094101-16.186603 16.989329-28.304286zM190.066905 452.338202h640.926616c15.434047 0 27.94695-12.499592 27.94695-27.94695 0-15.447358-12.512903-27.94695-27.94695-27.94695H190.066905c-15.434047 0-27.94695 12.499592-27.94695 27.94695 0 15.446334 12.512903 27.94695 27.94695 27.94695zM190.066905 303.159134h640.926616c15.434047 0 27.94695-12.499592 27.94695-27.94695 0-15.447358-12.512903-27.94695-27.94695-27.94695H190.066905c-15.434047 0-27.94695 12.499592-27.94695 27.94695 0 15.447358 12.512903 27.94695 27.94695 27.94695zM190.066905 153.98109h640.926616c15.434047 0 27.94695-12.499592 27.94695-27.94695s-12.512903-27.94695-27.94695-27.94695H190.066905c-15.434047 0-27.94695 12.499592-27.94695 27.94695s12.512903 27.94695 27.94695 27.94695z" fill="#ffffff" p-id="31372"></path></svg>
<?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="1646042329538" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31371" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M955.759067 691.088806c-2.947766-32.23191-18.272258-61.406498-43.135265-82.121746-24.876318-20.741869-56.331099-30.403251-88.576319-27.565041a26.361975 26.361975 0 0 0-4.366871 0.763818L622.737293 632.457037c-11.998912-28.995409-38.576927-51.03454-71.528628-55.502776l-234.547555-36.189227c-39.327435-5.185979-76.376726 15.447358-93.488921 48.988818l-125.884653-28.656503c-15.010159-3.493497-30.034652 6.004064-33.459549 21.041867-3.424896 15.037804 6.004064 30.021342 21.041868 33.432928l150.67906 34.306302c7.64228 1.774393 15.678756 0.163822 22.134352-4.257316a28.003264 28.003264 0 0 0 11.762395-19.213208c2.633433-19.295119 20.332315-32.969107 39.204569-30.32134l234.547555 36.189227c19.281808 2.620123 32.846241 20.414226 30.239429 39.682724-2.620123 19.322764-20.455181 32.995728-39.505591 30.267074l-226.059546-32.341466c-15.133025-2.238213-29.434655 8.406099-31.617579 23.71728-2.197258 15.283536 8.419409 29.447966 23.702946 31.631913l226.264322 32.368087c4.134449 0.545731 8.242277 0.819108 12.30915 0.819108 41.675204 0 78.436783-28.669813 88.451405-69.364135l204.187307-52.139313c16.579775-0.98293 32.791975 4.257315 45.673477 15.011183 8.242277 6.849793 14.546339 15.447358 18.5313 25.081095l-363.03902 152.835362a27.8548 27.8548 0 0 0-12.844641 10.955573c-27.752412 21.189307-67.718751 19.175324-93.075272-6.206792a28.064697 28.064697 0 0 0-4.345369-3.553906 27.812821 27.812821 0 0 0-12.725871-6.708497l-312.043387-71.286992c-15.024493-3.465852-30.034652 5.977443-33.473883 21.015246-3.424896 15.037804 5.977443 30.021342 21.028557 33.459549l305.331819 69.753212c24.265058 22.58691 55.290831 33.901867 86.322748 33.901867 30.704273 0 61.415713-11.075368 85.56712-33.189243l376.692531-158.591646c11.216664-4.724207 18.094101-16.186603 16.989329-28.304286zM190.066905 452.338202h640.926616c15.434047 0 27.94695-12.499592 27.94695-27.94695 0-15.447358-12.512903-27.94695-27.94695-27.94695H190.066905c-15.434047 0-27.94695 12.499592-27.94695 27.94695 0 15.446334 12.512903 27.94695 27.94695 27.94695zM190.066905 303.159134h640.926616c15.434047 0 27.94695-12.499592 27.94695-27.94695 0-15.447358-12.512903-27.94695-27.94695-27.94695H190.066905c-15.434047 0-27.94695 12.499592-27.94695 27.94695 0 15.447358 12.512903 27.94695 27.94695 27.94695zM190.066905 153.98109h640.926616c15.434047 0 27.94695-12.499592 27.94695-27.94695s-12.512903-27.94695-27.94695-27.94695H190.066905c-15.434047 0-27.94695 12.499592-27.94695 27.94695s12.512903 27.94695 27.94695 27.94695z" fill="#ffffff" p-id="31372"></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="1646038093346" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2039" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M941 786s-53-0.5-41.4-0.6h12.7-12.7c-21.9 0.1-28.9 0.6-30 0.6 23.6-189.5-264.2-260.9-264.2-290.7 0-23.2 6.8-26.7 28-48.4 22.1-22.7 38.6-62.1 42.4-115.1 10.5-146.9-86.3-175.6-6.1-175.6s135.6 66.1 135.6 147.6c0 53.1-40.1 113.9-48.4 127.9-8.9 15-9.8 46.9-10.1 50.8-1.1 58.7 212.8 78.8 212.9 203.8h0.7v79.9c0 11-8.7 19.8-19.4 19.8zM523.9 521.5c-1.3 72.3 266 97 266.1 250.9h0.8v98.4c0 13.4-10.8 24.2-24.2 24.2H88.4c-13.4 0-24.2-10.8-24.2-24.2v-98.4h0.8c0.6-165.9 264.8-181.3 266.1-250.9 0.4-3.6 0.5-41.7-12.6-62.5-13.8-22.1-60.6-92-60.6-157.4 0-100.3 69.2-181.7 169.5-181.7S597 201.2 597 301.6c0 65.4-53.6 138.6-60.6 157.4-7.5 20.4-12.2 57.7-12.5 62.5z" p-id="2040"></path></svg>
<?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="1646038093346" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2039" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M941 786s-53-0.5-41.4-0.6h12.7-12.7c-21.9 0.1-28.9 0.6-30 0.6 23.6-189.5-264.2-260.9-264.2-290.7 0-23.2 6.8-26.7 28-48.4 22.1-22.7 38.6-62.1 42.4-115.1 10.5-146.9-86.3-175.6-6.1-175.6s135.6 66.1 135.6 147.6c0 53.1-40.1 113.9-48.4 127.9-8.9 15-9.8 46.9-10.1 50.8-1.1 58.7 212.8 78.8 212.9 203.8h0.7v79.9c0 11-8.7 19.8-19.4 19.8zM523.9 521.5c-1.3 72.3 266 97 266.1 250.9h0.8v98.4c0 13.4-10.8 24.2-24.2 24.2H88.4c-13.4 0-24.2-10.8-24.2-24.2v-98.4h0.8c0.6-165.9 264.8-181.3 266.1-250.9 0.4-3.6 0.5-41.7-12.6-62.5-13.8-22.1-60.6-92-60.6-157.4 0-100.3 69.2-181.7 169.5-181.7S597 201.2 597 301.6c0 65.4-53.6 138.6-60.6 157.4-7.5 20.4-12.2 57.7-12.5 62.5z" p-id="2040"></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="1646040431665" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17792" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M166.2 64.4v895.1h691.7V64.4H166.2z m610.3 813.8h-529V145.8h528.9v732.4z" p-id="17793"></path><path d="M613.7 389.9h81.4V634h-81.4z" p-id="17794"></path></svg>
<?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="1646040431665" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17792" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M166.2 64.4v895.1h691.7V64.4H166.2z m610.3 813.8h-529V145.8h528.9v732.4z" p-id="17793"></path><path d="M613.7 389.9h81.4V634h-81.4z" p-id="17794"></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="1646039874283" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12918" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M830.136 0H193.864C86.99 0 0 86.99 0 193.864v636.272C0 937.01 86.99 1024 193.864 1024H457.32c19.884 0 37.282-17.398 37.282-37.282s-17.398-37.281-37.282-37.281H193.864c-67.107 0-119.3-54.68-119.3-119.301V193.864c0-64.621 54.679-119.3 119.3-119.3h636.272c67.107 0 119.3 54.679 119.3 119.3v464.777c-12.426-4.971-22.368-7.457-34.795-7.457h-82.02c-94.446 0-171.495 77.049-171.495 171.496v106.873c0 52.195 42.253 94.447 94.447 94.447h74.563C937.01 1024 1024 937.01 1024 830.136V193.864C1024 86.99 937.01 0 830.136 0z m119.3 830.136c0 67.107-54.679 119.3-119.3 119.3h-74.563c-9.942 0-19.884-7.455-19.884-19.883V822.68c0-52.195 42.253-96.932 96.932-96.932h82.02c19.883 0 34.796 14.912 34.796 34.796v69.592z" p-id="12919"></path><path d="M211.262 295.767h109.36c19.883 0 37.28-17.398 37.28-37.282s-17.397-37.281-37.28-37.281h-109.36c-19.883-2.486-37.281 14.913-37.281 34.796s17.398 39.767 37.281 39.767z m0 236.116h228.66c19.884 0 37.282-17.398 37.282-37.281s-17.398-37.282-37.282-37.282h-228.66c-19.883 0-37.281 17.398-37.281 37.282s17.398 37.281 37.281 37.281z m372.816 164.04H211.262c-19.883 0-37.281 17.397-37.281 37.28s17.398 37.282 37.281 37.282h372.816c19.883 0 37.281-17.398 37.281-37.281s-17.398-37.282-37.281-37.282z m-59.65-514.486c-2.486-4.971-7.457-7.456-14.913-9.942-4.971 0-12.428 2.486-14.913 7.456-34.796 44.738-37.282 104.389-7.456 151.612 27.34 42.253 74.563 64.621 124.271 59.65l134.214 221.204c4.97 9.942 14.913 17.399 27.34 19.884h9.942c7.456 0 14.912-2.485 22.369-7.456l34.796-22.37c9.941-4.97 17.398-14.912 19.883-27.34 2.486-9.94 0-22.368-4.97-32.31L713.32 325.592c24.854-42.252 24.854-96.932 0-139.184-29.826-44.738-82.02-69.592-134.214-59.65-4.971 0-12.427 4.97-12.427 9.941-2.486 4.97-2.486 12.427 2.485 17.398l42.252 67.107-42.252 27.34-44.738-67.107z m116.815 67.107c4.97-2.486 7.456-7.457 7.456-12.427s0-9.942-2.485-14.913l-34.797-54.68c27.34 2.486 52.195 19.884 67.107 42.253 19.884 32.31 19.884 74.563-4.97 106.873-4.971 7.457-4.971 14.913 0 22.37L822.68 564.193v2.486s0 2.485-2.486 2.485l-34.796 22.369h-2.485s-2.486 0-2.486-2.485l-141.67-231.146c-2.485-4.971-9.941-9.942-14.912-9.942h-4.971c-37.282 7.456-77.049-7.456-99.418-42.252-14.912-24.855-19.883-54.68-7.456-82.02l37.282 57.165c4.97 9.942 17.398 12.428 24.854 4.971l67.107-37.281z" p-id="12920"></path></svg>
<?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="1646039874283" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12918" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M830.136 0H193.864C86.99 0 0 86.99 0 193.864v636.272C0 937.01 86.99 1024 193.864 1024H457.32c19.884 0 37.282-17.398 37.282-37.282s-17.398-37.281-37.282-37.281H193.864c-67.107 0-119.3-54.68-119.3-119.301V193.864c0-64.621 54.679-119.3 119.3-119.3h636.272c67.107 0 119.3 54.679 119.3 119.3v464.777c-12.426-4.971-22.368-7.457-34.795-7.457h-82.02c-94.446 0-171.495 77.049-171.495 171.496v106.873c0 52.195 42.253 94.447 94.447 94.447h74.563C937.01 1024 1024 937.01 1024 830.136V193.864C1024 86.99 937.01 0 830.136 0z m119.3 830.136c0 67.107-54.679 119.3-119.3 119.3h-74.563c-9.942 0-19.884-7.455-19.884-19.883V822.68c0-52.195 42.253-96.932 96.932-96.932h82.02c19.883 0 34.796 14.912 34.796 34.796v69.592z" p-id="12919"></path><path d="M211.262 295.767h109.36c19.883 0 37.28-17.398 37.28-37.282s-17.397-37.281-37.28-37.281h-109.36c-19.883-2.486-37.281 14.913-37.281 34.796s17.398 39.767 37.281 39.767z m0 236.116h228.66c19.884 0 37.282-17.398 37.282-37.281s-17.398-37.282-37.282-37.282h-228.66c-19.883 0-37.281 17.398-37.281 37.282s17.398 37.281 37.281 37.281z m372.816 164.04H211.262c-19.883 0-37.281 17.397-37.281 37.28s17.398 37.282 37.281 37.282h372.816c19.883 0 37.281-17.398 37.281-37.281s-17.398-37.282-37.281-37.282z m-59.65-514.486c-2.486-4.971-7.457-7.456-14.913-9.942-4.971 0-12.428 2.486-14.913 7.456-34.796 44.738-37.282 104.389-7.456 151.612 27.34 42.253 74.563 64.621 124.271 59.65l134.214 221.204c4.97 9.942 14.913 17.399 27.34 19.884h9.942c7.456 0 14.912-2.485 22.369-7.456l34.796-22.37c9.941-4.97 17.398-14.912 19.883-27.34 2.486-9.94 0-22.368-4.97-32.31L713.32 325.592c24.854-42.252 24.854-96.932 0-139.184-29.826-44.738-82.02-69.592-134.214-59.65-4.971 0-12.427 4.97-12.427 9.941-2.486 4.97-2.486 12.427 2.485 17.398l42.252 67.107-42.252 27.34-44.738-67.107z m116.815 67.107c4.97-2.486 7.456-7.457 7.456-12.427s0-9.942-2.485-14.913l-34.797-54.68c27.34 2.486 52.195 19.884 67.107 42.253 19.884 32.31 19.884 74.563-4.97 106.873-4.971 7.457-4.971 14.913 0 22.37L822.68 564.193v2.486s0 2.485-2.486 2.485l-34.796 22.369h-2.485s-2.486 0-2.486-2.485l-141.67-231.146c-2.485-4.971-9.941-9.942-14.912-9.942h-4.971c-37.282 7.456-77.049-7.456-99.418-42.252-14.912-24.855-19.883-54.68-7.456-82.02l37.282 57.165c4.97 9.942 17.398 12.428 24.854 4.971l67.107-37.281z" p-id="12920"></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="1646040268277" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16073" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.267783 1024a511.992582 511.992582 0 1 1 511.732291-511.732291 512.513164 512.513164 0 0 1-511.732291 511.732291z m0-971.666654a459.934363 459.934363 0 1 0 459.674072 459.934363A460.194654 460.194654 0 0 0 512.267783 52.333346z" p-id="16074" fill="#e6e6e6"></path><path d="M487.800421 177.793654m24.467362 0l-0.260291 0q24.467363 0 24.467363 24.467363l0 307.403781q0 24.467363-24.467363 24.467363l0.260291 0q-24.467363 0-24.467362-24.467363l0-307.403781q0-24.467363 24.467362-24.467363Z" p-id="16075" fill="#e6e6e6"></path><path d="M501.069907 477.733153m22.022847 10.66049l174.074208 84.263233q22.022847 10.66049 11.362357 32.683337l0 0q-10.66049 22.022847-32.683337 11.362358l-174.074207-84.263234q-22.022847-10.66049-11.362358-32.683337l0 0q10.66049-22.022847 32.683337-11.362357Z" p-id="16076" fill="#e6e6e6"></path></svg>
<?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="1646040268277" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16073" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.267783 1024a511.992582 511.992582 0 1 1 511.732291-511.732291 512.513164 512.513164 0 0 1-511.732291 511.732291z m0-971.666654a459.934363 459.934363 0 1 0 459.674072 459.934363A460.194654 460.194654 0 0 0 512.267783 52.333346z" p-id="16074" fill="#e6e6e6"></path><path d="M487.800421 177.793654m24.467362 0l-0.260291 0q24.467363 0 24.467363 24.467363l0 307.403781q0 24.467363-24.467363 24.467363l0.260291 0q-24.467363 0-24.467362-24.467363l0-307.403781q0-24.467363 24.467362-24.467363Z" p-id="16075" fill="#e6e6e6"></path><path d="M501.069907 477.733153m22.022847 10.66049l174.074208 84.263233q22.022847 10.66049 11.362357 32.683337l0 0q-10.66049 22.022847-32.683337 11.362358l-174.074207-84.263234q-22.022847-10.66049-11.362358-32.683337l0 0q10.66049-22.022847 32.683337-11.362357Z" p-id="16076" fill="#e6e6e6"></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="1646041141948" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="23364" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M607.232 896a32 32 0 1 1 0 64H192a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96h544a96 96 0 0 1 96 96 32 32 0 0 1-64 0 32 32 0 0 0-32-32H192a32 32 0 0 0-32 32v704a32 32 0 0 0 32 32h415.232zM832 585.76v146.656c0 42.656-64 42.656-64 0v-146.656c0-42.688 64-42.688 64 0z" p-id="23365"></path><path d="M288 320a32 32 0 1 1 0-64h224a32 32 0 0 1 0 64H288zM288 480a32 32 0 0 1 0-64h128a32 32 0 0 1 0 64H288zM639.424 926.592a32 32 0 1 1-64 0L576 800a96 96 0 0 1 96-96l127.744 1.152a32 32 0 1 1 0 64L672 768a32 32 0 0 0-32 32l-0.576 126.592z" p-id="23366"></path><path d="M637.92 947.648a32 32 0 1 1-44.32-46.208l180.384-172.992a32 32 0 1 1 44.288 46.176l-180.352 173.024zM880.896 334.528a31.424 31.424 0 0 0 3.328-44.416l-0.416-0.512a32 32 0 0 0-44.896-3.36L408.32 652.288l-15.2 51.84 58.336-4.544 429.44-365.056z m51.616-86.4a95.36 95.36 0 0 1-9.408 134.496l-438.08 372.448a32 32 0 0 1-18.24 7.52l-114.944 8.896a32 32 0 0 1-33.184-40.928l30.944-105.472a32 32 0 0 1 9.984-15.36L797.408 237.504a96 96 0 0 1 134.688 10.112l0.416 0.512z" p-id="23367"></path></svg>
<?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="1646041141948" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="23364" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M607.232 896a32 32 0 1 1 0 64H192a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96h544a96 96 0 0 1 96 96 32 32 0 0 1-64 0 32 32 0 0 0-32-32H192a32 32 0 0 0-32 32v704a32 32 0 0 0 32 32h415.232zM832 585.76v146.656c0 42.656-64 42.656-64 0v-146.656c0-42.688 64-42.688 64 0z" p-id="23365"></path><path d="M288 320a32 32 0 1 1 0-64h224a32 32 0 0 1 0 64H288zM288 480a32 32 0 0 1 0-64h128a32 32 0 0 1 0 64H288zM639.424 926.592a32 32 0 1 1-64 0L576 800a96 96 0 0 1 96-96l127.744 1.152a32 32 0 1 1 0 64L672 768a32 32 0 0 0-32 32l-0.576 126.592z" p-id="23366"></path><path d="M637.92 947.648a32 32 0 1 1-44.32-46.208l180.384-172.992a32 32 0 1 1 44.288 46.176l-180.352 173.024zM880.896 334.528a31.424 31.424 0 0 0 3.328-44.416l-0.416-0.512a32 32 0 0 0-44.896-3.36L408.32 652.288l-15.2 51.84 58.336-4.544 429.44-365.056z m51.616-86.4a95.36 95.36 0 0 1-9.408 134.496l-438.08 372.448a32 32 0 0 1-18.24 7.52l-114.944 8.896a32 32 0 0 1-33.184-40.928l30.944-105.472a32 32 0 0 1 9.984-15.36L797.408 237.504a96 96 0 0 1 134.688 10.112l0.416 0.512z" p-id="23367"></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="1646039249835" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3182" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M969.6 502.4l-118.4-112-323.2-300.8c-9.6-9.6-22.4-9.6-32 0l-313.6 297.6c-3.2 3.2-6.4 6.4-9.6 9.6l-118.4 112c-9.6 9.6-9.6 22.4 0 32s22.4 9.6 32 0l83.2-80 0 393.6c0 48 41.6 89.6 92.8 89.6l83.2 0c38.4 0 70.4-28.8 70.4-67.2l0-217.6 99.2 0 99.2 0 0 217.6c0 35.2 32 67.2 70.4 67.2l83.2 0c51.2 0 92.8-38.4 92.8-89.6l0-396.8 80 73.6c9.6 9.6 22.4 9.6 32 0C979.2 524.8 979.2 512 969.6 502.4zM809.6 857.6c0 25.6-19.2 44.8-44.8 44.8l-83.2 0c-12.8 0-22.4-9.6-22.4-22.4L659.2 640c0-12.8-9.6-22.4-22.4-22.4l-121.6 0-121.6 0c-12.8 0-22.4 9.6-22.4 22.4l0 240c0 12.8-9.6 22.4-22.4 22.4l-83.2 0c-25.6 0-44.8-19.2-44.8-44.8l0-438.4 294.4-281.6 294.4 281.6L809.6 857.6z" p-id="3183"></path></svg>
<?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="1646039249835" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3182" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M969.6 502.4l-118.4-112-323.2-300.8c-9.6-9.6-22.4-9.6-32 0l-313.6 297.6c-3.2 3.2-6.4 6.4-9.6 9.6l-118.4 112c-9.6 9.6-9.6 22.4 0 32s22.4 9.6 32 0l83.2-80 0 393.6c0 48 41.6 89.6 92.8 89.6l83.2 0c38.4 0 70.4-28.8 70.4-67.2l0-217.6 99.2 0 99.2 0 0 217.6c0 35.2 32 67.2 70.4 67.2l83.2 0c51.2 0 92.8-38.4 92.8-89.6l0-396.8 80 73.6c9.6 9.6 22.4 9.6 32 0C979.2 524.8 979.2 512 969.6 502.4zM809.6 857.6c0 25.6-19.2 44.8-44.8 44.8l-83.2 0c-12.8 0-22.4-9.6-22.4-22.4L659.2 640c0-12.8-9.6-22.4-22.4-22.4l-121.6 0-121.6 0c-12.8 0-22.4 9.6-22.4 22.4l0 240c0 12.8-9.6 22.4-22.4 22.4l-83.2 0c-25.6 0-44.8-19.2-44.8-44.8l0-438.4 294.4-281.6 294.4 281.6L809.6 857.6z" p-id="3183"></path></svg>
\ No newline at end of file
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import Router from "vue-router";
// axios
import axios from 'axios'
// 引入字体图标
import './assets/fonts/iconfont.css'
import './icons'
import 'element-ui/lib/theme-chalk/index.css'
// 引入element
import './plugins/element'
import 'vue-g2'
// 引入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'
import moment from 'moment';
import 'moment/locale/zh-cn'
Vue.prototype.$moment = moment
Vue.config.productionTip = false
// axios.defaults.baseURL = 'http://192.168.3.74:5001'
//开发环境
axios.defaults.baseURL = 'http://192.168.3.188:5007'
//现场
// axios.defaults.baseURL = 'http://41.204.124.248:5001'
// 配置请求超时
// 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()
// }
// })
// 修复 form to 报错
const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}
// 注册一个拦截器为所有请求添加请求头
axios.interceptors.request.use(config => {
// 给请求头添加一个名为Authorization的密匙
config.headers.Authorization = `Bearer ${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
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
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)
\ No newline at end of file
import Vue from 'vue'
// 按需导入组件
import {
Form,
Descriptions,
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,
Progress,
RadioButton,
RadioGroup,
InputNumber,
Dropdown,
DropdownItem,
DropdownMenu,
Loading,
Collapse,
CollapseItem
} from 'element-ui'
// import element from 'element-ui'
Vue.use(Step)
Vue.use(Descriptions)
Vue.use(Steps)
Vue.use(Alert)
Vue.use(Tabs)
Vue.use(TabPane)
Vue.use(Button)
Vue.use(Progress)
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(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 baseInfo from './modules/baseInfo'
import warehouse from './modules/warehouse'
import log from './modules/log'
import borrow from './modules/borrow'
import statistics from './modules/statistics'
// 系统设置
import systemConfig from './modules/systemConfig'
// ant样式
import 'ant-design-vue/dist/antd.css'
// 导入全局样式
import '../assets/css/global.css'
Vue.use(VueRouter)
const routes = [
// 重定向 - login
{
path: '/login',
name: 'login',
component: () => import(/* webpackChunkName: "login" */ '@/login/Login.vue')
},
{
path: '',
redirect: '/login',
},
{
path: '/',
redirect: '/login',
},
{
path: '/index',
name: 'index',
redirect: '/index',
component: () => import(/* webpackChunkName: "index" */ '@/index.vue'),
// 子路由
children: [
{
// 欢迎首页
path: '/index',
component: () => import(/* webpackChunkName: "Home" */ '@/home.vue')
},
///基础信息
...baseInfo,
// 仓库
...warehouse,
// 借用
...borrow,
// 系统管理
...systemConfig,
// 日志
...log,
// 统计
...statistics,
]
},
{
path: '/404',
component: () => import(/* webpackChunkName: "404" */ '@/404.vue'),
},
{
path: '*',
redirect: '/404',
}
]
const router = new VueRouter({
routes
})
// 挂载一个路由导航守卫
router.beforeEach((to, from, next) => {
// 拦截所有路由判断是否登录
const token = sessionStorage.getItem('token')
// tonken 存在则放行,否则判断访问的地址
if (token) {
next()
} else {
if (to.path === '/login') {
next()
} else {
next('/login')
}
}
})
export default router
/*
基础信息路由 - receive
*/
const baseInfo = [
{
path: '/baseInfo/equipmentManage',
name: 'equipmentManage',
component: () => import('@/baseInfo/equipmentManage')
},
{
//
path: '/baseInfo/equipmentType',
name: 'equipmentType',
component: () => import('@/baseInfo/equipmentType')
},
{
//
path: '/baseInfo/Materiel',
name: 'Materiel',
component: () => import('@/baseInfo/Materiel')
}
,
{
//
path: '/baseInfo/size',
name: 'size',
component: () => import('@/baseInfo/size')
}
]
export default baseInfo
\ No newline at end of file
/*
物资入库路由 - receive
*/
const borrow = [
// 物资入库
{
// 物资入库 - 入库表单接收
path: '/borrow/user',
name: 'userBorrow',
component: () => import('@/borrow/user')
},
{
// 借用管理
path: '/borrow/borrowGet',
name: 'borrowGet',
component: () => import('@/borrow/borrowGet')
},
{
// 物资入库 - 入库表单接收
path: '/borrow/userGet',
name: 'userGet',
component: () => import('@/borrow/userGet')
}
,
{
//
path: '/borrow/return',
name: 'return',
component: () => import('@/borrow/return')
}
]
export default borrow
/*
日志路由 - receive
*/
const log = [
// 物资入库
{
// 门禁日志
path: '/log/doorLog',
name: 'doorLog',
component: () => import(/* webpackChunkName: "index/systemConfig/department" */ '@/log/doorLog')
},
{
// 手持机盘点
path: '/log/pdaLog',
name: 'pdaLog',
component: () => import(/* webpackChunkName: "index/systemConfig/department" */ '@/log/pdaLog')
},
{
// 借用管理
path: '/log/outinLog',
name: 'outinLog',
component: () => import(/* webpackChunkName: "index/systemConfig/department" */ '@/log/outinLog')
},
{
// 物资入库 - 入库表单接收
path: '/log/systemLog',
name: 'systemLog',
component: () => import(/* webpackChunkName: "index/systemConfig/department" */ '@/log/systemLog')
}
]
export default log
\ No newline at end of file
/*
日志路由 - receive
*/
const statistics = [
// 物资入库
{
// 门禁日志
path: '/statistics/stock',
name: 'stock',
component: () => import('@/statistics/stock')
}
]
export default statistics
\ No newline at end of file
/*
系统管理
*/
const systemConfig = [
// 系统管理
{
// 部门管理
path: '/systemConfig/department',
name: 'systemConfig/department',
component: () => import(/* webpackChunkName: "index/systemConfig/department" */ '@/systemConfig/department')
},
{
// 警种管理
path: '/systemConfig/policeType',
name: 'systemConfig/policeType',
component: () => import(/* webpackChunkName: "index/system/policeType" */ '@/systemConfig/policeType')
},
{
// 人员设置
path: '/systemConfig/police',
name: 'systemConfig/role',
component: () => import(/* webpackChunkName: "index/systemConfig/role" */ '@/systemConfig/police')
},
{
// 人员设置
path: '/systemConfig/userInfo',
name: 'systemConfig/userInfo',
component: () => import(/* webpackChunkName: "index/systemConfig/userInfo" */ '@/systemConfig/userInfo')
}
,
{
// 装备信息
path: '/systemConfig/equipmentInfo',
name: 'systemConfig/equipmentInfo',
component: () => import(/* webpackChunkName: "index/systemConfig/equipmentInfo" */ '@/systemConfig/equipmentInfo')
}
,
{
// 领用申请
path: '/systemConfig/receiveApply',
name: 'systemConfig/receiveApply',
component: () => import( '@/systemConfig/receiveApply')
}
,
{
// 借用申请
path: '/systemConfig/borrowApply',
name: 'systemConfig/borrowApply',
component: () => import( '@/systemConfig/borrowApply')
}
]
export default systemConfig
\ No newline at end of file
const warehouse = [
{
//库房管理
path: '/warehouse/storehouse',
name: 'storehouse',
component: () => import('@/warehouse/storehouse')
},{
//储位管理
path: '/warehouse/cabinet',
name: 'cabinet',
component: () => import('@/warehouse/cabinet')
},
{
//预案管理
path: '/warehouse/emergencyPlan',
name: 'emergencyPlan',
component: () => import('@/warehouse/emergencyPlan')
}
,
{
//仓库盘点
path: '/warehouse/warehouseInventory',
name: 'warehouseInventory',
component: () => import('@/warehouse/warehouseInventory')
}
]
export default warehouse
\ No newline at end of file
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
// 折叠按钮
collapsed: true,
// 当前激活的链接
active: '',
// 当前激活的一级路由
activeOnePath: '/index',
// 当前所在的一级路由
activeLine: '',
// 用户信息
userData: null,
// 导航列表
navList: [
{
id: 0,
path: '/index',
menuName: '首页',
icon: "iconfont icon-ziyuanjieyong",
children: []
},
{
id: 1,
path: '/borrow',
menuName: '借用/领用管理',
icon: "iconfont icon-Home",
children: [
{
id: 1-1,
path: '/borrow/userGet',
menuName: '领用管理',
},
{
id: 1-2,
path: '/borrow/borrowGet',
menuName: '借用管理',
}
]
},
{
id: 2,
path: '/warehouse',
menuName: '仓库管理',
icon: 'iconfont icon-Export',
children: [
{
id: 2-1,
path: "/warehouse/storehouse",
menuName: "库房管理",
},
{
id: 2-2,
path: "/warehouse/cabinet",
menuName: "储位管理",
},
{
id: 2-3,
path: "/warehouse/emergencyPlan",
menuName: "预案管理",
},
{
id: 2-4,
path: "/warehouse/warehouseInventory",
menuName: "仓库盘点",
}
]
},
{
id: 3,
path: "/baseInfo",
menuName: "基础信息",
icon: "统计计算",
children: [
{
id: 3-1,
path: '/baseInfo/equipmentManage',
menuName: '装备管理',
},
{
id: 3-2,
path: '/baseInfo/equipmentType',
menuName: '装备类别',
},
{
id: 3-3,
path: "/baseInfo/Materiel",
menuName: "物料管理",
},
{
id: 3-4,
path: "/baseInfo/size",
menuName: "号型管理",
},
],
},
{
id: 4,
path: "/log",
menuName: "日志查看",
icon: "日志",
children: [
{
id: 4 - 1,
path: "/log/outinLog",
menuName: "出入库日志",
icon: "出入库日志",
},
{
id: 4 - 2,
path: "/log/systemLog",
menuName: "系统日志",
icon: "系统日志",
},
{
id: 4 - 3,
path: "/log/doorLog",
menuName: "门禁操作日志",
icon: "门禁日志",
},
],
},
{
id: 5,
path: "/statistics",
menuName: "统计信息",
icon: "统计计算",
children: [
{
id: 5 - 1,
path: "/statistics/stock",
menuName: "库存情况",
icon: "库存情况",
},
],
},
{
id: 6,
path: "/systemConfig",
menuName: "系统设置",
icon: "iconfont icon-Gold",
children: [
{
id:6 - 1,
path: "/systemConfig/department",
menuName: "部门管理",
},
{
id: 6 - 2,
path: "/systemConfig/policeType",
menuName: "警种管理",
// icon: 'icon-Export',
},
{
id: 6 - 3,
path: "/systemConfig/police",
menuName: "人员设置",
// icon: 'icon-Export',
}
],
},
],
// navList: [],
// 侧边栏导航列表
menuList: []
},
mutations: {
// 修改用户数据
edUserData (state, val) {
state.userData = val
},
// 修改导航列表
edNav (state, val) {
state.navList = val
},
// 修改侧边导航列表
edMenuList (state, val) {
state.menuList = val
},
// 修改折叠按钮
edCollapsed (state, val) {
if(this.userData.state==1)
state.collapsed = !state.collapsed
},
// 修改折叠按钮
edActive (state, val) {
state.active = val
},
// 修改一级路由
edActiveOnePath (state, val) {
state.activeOnePath = val
},
// 修改当前所在的一级路由
edActiveLine (state, val) {
state.activeLine = val
},
},
actions: {
},
modules: {
}
})
<template>
<div class="wrapper">
<div class="http404-container">
<img
class="pic"
src="../assets/images/404_images/404.png"
alt="">
<div class="title">抱歉,您要访问的页面丢失了</div>
<div class="desc">请检查您输入的网址是否正确,请点击以下按钮返回上一个页面</div>
<div
class="btn"
@click="handleBack">
后退
</div>
</div>
</div>
</template>
<script>
export default {
name: 'Page404',
methods: {
handleBack() {
this.$router.go(-1)
}
}
}
</script>
<style scoped lang='less'>
.wrapper {
position: relative;
}
.http404-container {
position: relative;
top: 50%;
.pic {
width: 600px;
display: block;
margin: 0 auto;
}
.title {
width: 100%;
text-align: center;
font-size: 24px;
color: #111;
line-height: 38px;
margin-top: 77px;
}
.desc {
width: 100%;
font-size: 18px;
color: #777;
text-align: center;
line-height: 38px;
margin-top: 8px;
}
.btn {
width: 125px;
height: 44px;
text-align: center;
font-size: 14px;
color: #fefefe;
line-height: 44px;
background: #2362FB;
border-radius: 6px;
margin: 50px auto 0;
cursor: pointer;
}
}
@media screen and (max-width: 1500px) {
.http404-container {
.pic {
width: 500px;
}
.title {
margin-top: 50px;
}
.btn {
margin-top: 40px;
}
}
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/物料填充.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">物料管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理 </el-breadcrumb-item>
<el-breadcrumb-item>物料管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.MaterielName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入物料名搜索"
></el-input>
<el-input
v-model="searchData.MaterielCode"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入物料编码搜索"
></el-input>
<el-select
class="textboxBo"
v-model="searchData.CategoryID"
filterable
clearable
placeholder="请选择类别"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-select
class="textboxBo"
v-model="searchData.IsHaoCai"
filterable
clearable
placeholder="请选择是否为耗材"
>
<el-option
v-for="item in optionsEquipment"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addClass()"
>新增物料</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="materielData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
prop="MaterielCode"
label="物料编码"
align="center"
/>
<el-table-column prop="MaterielName" label="物料名称" align="center">
</el-table-column>
<el-table-column prop="CategoryName" label="物料种类" align="center">
</el-table-column>
<el-table-column prop="Unit" label="单位" align="center">
</el-table-column>
<el-table-column prop="Storage" label="所在位置" align="center">
</el-table-column>
<el-table-column
prop="EqHaoCai"
:formatter="stateFormat"
label="是否贴标"
align="center"
/>
<el-table-column prop="EqCount" label="所含装备数量" align="center">
</el-table-column>
<el-table-column
label="操作"
align="center"
fixed="right"
width="200"
>
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="check(scope.row)"
>查看</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="deleteClick(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog title="物料查看" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基本信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
size="small"
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody line-height:1>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">物料编码</th>
<td class="textContent">
{{ detailData.MaterielCode }}
</td>
<th class="textHeader">物料名称</th>
<td class="textContent">
{{ detailData.MaterielName }}
</td>
<th class="textHeader">数量</th>
<td class="textContentLast">
{{ detailData.EqCount }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">物料种类</th>
<td class="textContent">
{{ detailData.CategoryName }}
</td>
<th class="textHeader">物料单位:</th>
<td class="textContent">
{{ detailData.Unit }}
</td>
<th class="textHeader">所否为消耗品</th>
<td class="textContentLast">
{{ detailData.IsHaoCai == 1 ? "是" : "否" }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">使用年限</th>
<td class="textContent">
{{ detailData.TermDays }}
</td>
<th class="textHeader">保养周期</th>
<td class="textContent">
{{ detailData.TermDays }}
</td>
<th class="textHeader">创建时间</th>
<td class="textContentLast">
{{ detailData.CreateTime }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">所在位置</th>
<td class="textContent">
{{ detailData.Storage }}
</td>
<th class="textHeader">维修策略</th>
<td class="textContent">
{{ detailData.WeiXiuCL }}
</td>
<th class="textHeader">保养策略</th>
<td class="textContentLast">
{{ detailData.BaoYangCL }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">使用说明</th>
<td class="textContentLast">
<span v-html="detailData.Instructions">
{{ detailData.Instructions }}
</span>
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">视频查看</th>
<td class="textContentLast">
<video v-if="detailData.VideoUrl !=''&& detailData.VideoUrl !=null"
v-bind:src="detailData.VideoUrl"
class="avatar video-avatar"
controls="controls">
您的浏览器不支持视频播放
</video>
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<div slot="footer" class="dialog-footer">
<!-- <el-button @click="borrowTableVisible = false">取 消</el-button> -->
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 新增/编辑 -->
<el-dialog
width="36%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm()"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="EditRuleForm"
ref="EditRuleForm"
:rules="rules"
label-width="100px"
style="margin-top: 10px"
>
<el-row :gutter="10">
<!-- <el-col :span="20" class="dia"> -->
<el-form-item class="diaC" label="装备类别" prop="CategoryID">
<el-select
v-model="EditRuleForm.CategoryID"
filterable
clearable
style="width: 458px"
placeholder="请选择大类"
@change="getClass"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-col :span="10" style="padding-left: 0px">
<el-form-item class="diaB" label="物料编码" prop="Code">
<el-input
class="inputA"
:disabled="codeDis"
v-model="EditRuleForm.Code"
placeholder="请输入编码"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="是否贴标">
<el-radio v-model="EditRuleForm.IsHaoCai" :label="0"
></el-radio
>
<el-radio v-model="EditRuleForm.IsHaoCai" :label="1"
></el-radio
>
</el-form-item>
<el-form-item class="diaB" label="保养周期">
<el-input-number
class="inputA"
v-model="EditRuleForm.TermDays"
:min="1"
:max="100"
label="数字"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="10" style="padding-left: 0px">
<el-form-item
class="diaB"
label="物料名称"
prop="MaterielName"
>
<el-input
class="inputA"
v-model="EditRuleForm.MaterielName"
placeholder="请输入物料名称"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="物料单位" prop="Unit">
<el-input
class="inputA"
v-model="EditRuleForm.Unit"
placeholder="请输入物料单位"
></el-input>
</el-form-item>
<el-form-item class="diaB" v-if="false" label="数量">
<el-input-number
class="inputA"
v-model="EditRuleForm.EqCount"
:min="1"
:max="100"
label="数字"
></el-input-number>
</el-form-item>
</el-col>
<!-- </el-col> -->
</el-row>
<el-form-item class="diaC" label="所属位置">
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
v-model="EditRuleForm.Storage"
class="areaClass"
placeholder="请输入位置信息"
>
</el-input>
</el-form-item>
<el-form-item class="diaC" label="维修策略">
<el-input
type="textarea"
v-model="EditRuleForm.WeiXiuCL"
:autosize="{ minRows: 2, maxRows: 4 }"
class="areaClass"
placeholder="请输入维修策略"
>
</el-input>
</el-form-item>
<el-form-item class="diaC" label="保养策略">
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
v-model="EditRuleForm.BaoYangCL"
class="areaClass"
placeholder="请输入保养策略"
>
</el-input>
</el-form-item>
<el-form-item label="视频上传" class="diaC" >
<!-- action="http://192.168.2.105:5007/api/UpFile/UploadVideo" -->
<el-upload
class="avatar-uploader"
action="http://41.204.124.248:5001/api/UpFile/UploadVideo"
v-bind:data="{FoldPath:'上传目录',SecretKey:'安全验证'}"
v-bind:on-progress="uploadVideoProcess"
v-bind:on-success="handleVideoSuccess"
v-bind:before-upload="beforeUploadVideo"
v-bind:show-file-list="false">
<video v-if="videoForm.storageurl !='' && !videoFlag"
v-bind:src="videoForm.storageurl"
class="avatar video-avatar"
controls="controls">
您的浏览器不支持视频播放
</video>
<i v-else-if="videoForm.storageurl =='' && !videoFlag"
class="el-icon-plus avatar-uploader-icon"></i>
<el-progress v-if="videoFlag == true"
type="circle"
v-bind:percentage="videoUploadPercent"
style="margin-top:7px;"></el-progress>
</el-upload>
</el-form-item>
<el-form-item class="diaC" label="使用说明">
<quill-editor
ref="text"
style="height: 200px; width: 88%"
v-model="EditRuleForm.Instructions"
class="myQuillEditor"
:options="editorOption"
/>
</el-form-item>
<el-form-item v-if="false">
<el-input v-model="EditRuleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm('EditRuleForm', title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import { quillEditor, Quill } from "vue-quill-editor";
// import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
const Font = Quill.import("attributors/style/font"); // 引入这个后会把样式写在style上
const fonts = ["SimSun", "SimHei", "Microsoft-YaHei", "KaiTi", "FangSong"];
export default {
components: {
quillEditor },
data() {
return {
videoFlag: false,
//是否显示进度条
videoUploadPercent: "",
//进度条的进度,
isShowUploadVideo: false,
//显示上传按钮
content: "", //富文本的内容
editorOption: {
placeholder: "请输入使用说明...",
modules: {
toolbar: [
["bold", "italic", "underline"], // 加粗,斜体,下划线,删除线
[{ list: "ordered" }, { list: "bullet" }], // 列表
[{ align: [] }], // 对齐方式
[{ size: ["12", false, "16", "18", "20", "24", "28", "32", "36"] }], // 字体大小
[
{
font: [
false,
"heiti",
"songti",
"kaiti",
"lishu",
"arial",
"monospace",
],
},
], // 字体 false默认微软雅黑,其他可删减
],
},
},
optionsEquipment: [
{
value: "2",
label: "全部",
},
{
value: "1",
label: "耗材",
},
{
value: "0",
label: "非耗材",
},
],
videoForm: {
storageurl: ""// 视频地址
},
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
CategoryName: "1",
CategoryID: "",
MaterielName: "",
MaterielCode: "",
},
codeDis:false,
resetForm() {
this.$refs["EditRuleForm"].resetFields();
this.EditRuleForm = {
CategoryName: "",
TermDays: 0,
Code: "",
PlanName: "",
MaterielName: "",
Unit: "",
CategoryID: "",
EqCount: "",
IsHaoCai: 1,
Storage: "",
Instructions: "",
WeiXiuCL: "",
BaoYangCL: "",
Remarks: "",
};
},
classOption: [],
title: "",
fixData: {
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
addVisible: false,
borrowTableVisible: false,
detailData: {
MaterielCode: "",
VideoUrl:""
},
fixdetailData: [],
loading: false,
tabLoading: false,
src: "../assets/images/记录.png",
activeName: "first",
rules: {
CategoryID: [
{ required: true, message: "请选择物料类型", trigger: "change" },
],
Code: [
{
required: true,
message: "请输入编码",
trigger: "blur",
},
{ min: 5, max: 5, message: "编码长度必须为5位", trigger: "blur" },
],
MaterielName: [
{
required: true,
message: "请输入物料名称",
trigger: "blur",
},
{ min: 1, message: "请输入物料名称", trigger: "blur" },
],
Unit: [
{
required: true,
message: "请输入物料单位",
trigger: "blur",
},
{ min: 1, message: "请输入物料单位", trigger: "blur" },
],
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
EqCategoryName: "",
},
EditRuleForm: {
ID: "",
CategoryName: "",
TermDays: 0,
Code: "",
PlanName: "",
MaterielName: "",
Unit: "",
CategoryID: "",
EqCount: "",
IsHaoCai: 1,
Storage: "",
Instructions: "",
WeiXiuCL: "",
BaoYangCL: "",
Remarks: "",
},
materielData: [],
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
// 验证视频格式
beforeUploadVideo(file) {
var fileSize = file.size / 1024 / 1024 < 50;
if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'video/mov'].indexOf(file.type) == -1) {
layer.msg("请上传正确的视频格式");
return false;
}
if (!fileSize) {
layer.msg("视频大小不能超过50MB");
return false;
}
this.isShowUploadVideo = false;
},
// 上传进度显示
uploadVideoProcess(event, file, fileList) {
console.log("进度")
this.videoFlag = true;
this.videoUploadPercent = file.percentage.toFixed(0) * 1;
},
// 获取上传图片地址
handleVideoSuccess(res, file) {
console.log("up")
this.isShowUploadVideo = true;
this.videoFlag = false;
this.videoUploadPercent = 0;
if (res.Success === true) {
this.$message.success('视频上传成功')
// this.videoForm.storageurl = 'http://192.168.3.74:5001/'+res.Info
// this.videoForm.storageurl = 'http://192.168.2.105:5007/'+res.Info
this.videoForm.storageurl = 'http://41.204.124.248:5001/'+res.Info
console.log("imgUrl",this.videoForm.storageurl)
} else {
this.$message.error('视频上传失败,请重新上传!')
}
},
//查看信息
check(row) {
this.borrowTableVisible = true;
this.detailData = row;
console.log("de",this.detailData)
},
//编辑信息
async edit(row) {
this.videoForm.storageurl="";
this.addVisible = true;
this.codeDis=true;
console.log("row",row);
this.EditRuleForm = JSON.parse(JSON.stringify(row));
if (row.VideoUrl!=null)
{
this.videoForm.storageurl=JSON.parse(JSON.stringify(row.VideoUrl));
}
this.title = "修改物料";
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//新增物料
async addClass() {
this.addVisible = true;
this.title = "新增物料";
this.codeDis=false;
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
///获取类别的ID和内容
getClass(val) {
this.EditRuleForm.Code="";
if (val !== "") {
var obj = {};
obj = this.classOption.find(function (item) {
return item.ID === val;
});
this.EditRuleForm.Code=obj.Code;
// console.log(obj)
this.EditRuleForm.CategoryID = obj.ID;
this.EditRuleForm.CategoryName = obj.EqCategoryName;
}
},
///提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
console.log(this.EditRuleForm);
formData.append("ID", this.EditRuleForm.ID);
formData.append("VideoUrl", this.videoForm.storageurl);
formData.append("TermDays", this.EditRuleForm.TermDays);
formData.append("MaterielCode", this.EditRuleForm.Code);
formData.append("MaterielName", this.EditRuleForm.MaterielName);
formData.append("Unit", this.EditRuleForm.Unit);
formData.append("CategoryID", this.EditRuleForm.CategoryID);
formData.append("CategoryName", this.EditRuleForm.CategoryName);
formData.append("EqCount", this.EditRuleForm.EqCount);
formData.append("IsHaoCai", this.EditRuleForm.IsHaoCai);
formData.append("Storage", this.EditRuleForm.Storage===null?"":this.EditRuleForm.Storage);
formData.append("Instructions", this.EditRuleForm.Instructions===null?"":this.EditRuleForm.Instructions);
formData.append("WeiXiuCL", this.EditRuleForm.WeiXiuCL===null?"":this.EditRuleForm.WeiXiuCL);
formData.append("BaoYangCL", this.EditRuleForm.BaoYangCL===null?"":this.EditRuleForm.BaoYangCL);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
this.videoForm.storageurl="";
if (type === "新增物料") {
const { data: res } = await this.$axios.post(
"/api/Materiel",
formData,
config
);
if (res.Success !== true) return this.$message.error(res.Remark);
// 提交信息成功后要关闭对话框,并且刷新数据
this.$message.success(res.Remark);
} else {
//修改仓库类型
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.put(
"/api/Materiel",
formData,
config
);
if (res.Success !== true) return this.$message.error(res.Remark);
// 提交信息成功后要关闭对话框,并且刷新数据
this.$message.success(res.Remark);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
async getQueuData() {
this.loading = true;
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchData,
});
this.total = res.Total;
this.materielData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 删除
deleteClick(row) {
const url = "/api/Materiel/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
stateFormat(row) {
if (row.IsHaoCai === 0) {
return "已贴标";
} else {
return "未贴标";
}
},
closeForm() {
this.resetForm();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.avatar-uploader-icon {
border: 1px dashed #d9d9d9 !important;
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9 !important;
border-radius: 6px !important;
position: relative !important;
overflow: hidden !important;
}
.avatar-uploader .el-upload:hover {
border: 1px dashed #d9d9d9 !important;
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 300px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 300px;
height: 178px;
display: block;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.diaB {
font-weight: 1000;
margin-left: 29px;
margin-top: 10px;
}
.inputA {
width: 182px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
/deep/ .el-dialog__footer
{
padding-top: 60px !important;
}
.title_box {
margin-top: 0px;
}
.myQuillEditor {
width: 450px;
min-height: 192px;
}
.diaC {
font-weight: 1000;
margin-left: 29px;
margin-bottom: 12px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.areaClass {
width: 87%;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
.el-dialog {
width: 66%;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/归还.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">装备管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理 </el-breadcrumb-item>
<el-breadcrumb-item>装备管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.EqName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入装备名称搜索"
></el-input>
<el-select
v-model="searchData.IsPublic"
class="textboxBo"
placeholder="请选择装备类型"
>
<el-option
v-for="item in IsPublicType"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model="searchData.State"
class="textboxBo"
placeholder="请选择装备状态"
>
<el-option
v-for="item in StateType"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
class="textboxBo"
v-model="searchData.CategoryID"
filterable
clearable
placeholder="请选择类别"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-select
class="textboxBo"
v-model="searchData.userID"
filterable
clearable
placeholder="请选择所属人员"
>
<el-option
v-for="item in options"
:key="item.ID"
:label="item.UserName + '-' + item.DepartName"
:value="item.ID"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addEquipment()"
>添加装备</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="EqName" label="装备名称" align="center" />
<el-table-column label="基本信息" align="center">
<el-table-column prop="UserName" label="所属人员" align="center">
</el-table-column>
<el-table-column
prop="LocationName"
label="储位名称"
align="center"
>
</el-table-column>
<el-table-column prop="EqCode" label="编号" align="center">
</el-table-column>
</el-table-column>
<el-table-column label="装备信息" align="center">
<el-table-column
prop="CategoryName"
label="装备类型"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="所属物料"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column prop="LibraryName" label="仓库名称" align="center" />
<el-table-column prop="CreateTime" label="创建时间" align="center" />
<el-table-column
prop="EqHaoCai"
:formatter="stateFormat"
label="是否贴标"
align="center"
/>
<el-table-column prop="LabelEpc" label="EPC编码" align="center" />
<el-table-column prop="Remarks" label=" 备注" align="center" />
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="check(scope.row)"
>查看</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="deleteClick(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog title="查看详情" :visible.sync="borrowTableVisible" width="60%">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基本信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
size="small"
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody line-height:1>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">装备名称</th>
<td class="textContent">
{{ detailData.EqName }}
</td>
<th class="textHeader">装备编号</th>
<td class="textContent">
{{ detailData.EqCode }}
</td>
<th class="textHeader">装备类型</th>
<td class="textContentLast">
{{ detailData.EqTypeName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">所属部门</th>
<td class="textContent">
{{
detailData.DepartName ? detailData.DepartName : "无所属"
}}
</td>
<th class="textHeader">所属人员:</th>
<td class="textContent">
{{ detailData.UserName ? detailData.UserName : "无所属" }}
</td>
<th class="textHeader">所在柜号</th>
<td class="textContentLast">
{{ detailData.LocationName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">创建时间</th>
<td class="textContent">
{{ detailData.CreateTime }}
</td>
<th class="textHeader">创建人员</th>
<td class="textContent">
{{ detailData.CreateName }}
</td>
<th class="textHeader">保养周期</th>
<td class="textContentLast">
{{
detailData.BaoYangDays
? detailData.BaoYangDays + "天"
: "-天"
}}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">下次保养</th>
<td class="textContent">
{{
detailData.NextBaoYang
? detailData.NextBaoYang
: "无需保养"
}}
</td>
<th class="textHeader">注册时间</th>
<td class="textContent">
{{ detailData.LabelTime }}
</td>
<th class="textHeader">EPC编号</th>
<td class="textContentLast">
{{ detailData.LabelEpc }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">TID编号</th>
<td class="textContent">
{{ detailData.LabelTid }}
</td>
<th class="textHeader">采购日期</th>
<td class="textContent">
{{ detailData.BuyTime ? detailData.BuyTime : "暂无" }}
</td>
<th class="textHeader">报废期限</th>
<td class="textContentLast">
{{ detailData.TermTime ? detailData.TermTime : "暂无" }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">采购价格</th>
<td class="textContent">
{{ detailData.Price ? detailData.Price : "-" + "¥" }}
</td>
<th class="textHeader">装备状态</th>
<td class="textContent">
{{ detailData.StateName }}
</td>
<th class="textHeader">数量</th>
<td class="textContentLast">
{{ detailData.EqCount }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8" >
<th class="textHeader">备注信息</th>
<td class="textContentLast">
{{ detailData.Instructions }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">视频查看</th>
<td class="textContentLast">
<video height="250px" width="300px" v-if="videoUrl !=''&& videoUrl !=null"
v-bind:src="videoUrl"
class="avatar video-avatar"
controls="controls">
您的浏览器不支持视频播放
</video>
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<!--
<el-card
class="box-card"
style="text-align: center; margin-top: 35px"
> -->
<!-- <el-divider></el-divider> -->
<!-- <template>
<el-tabs
v-model="activeName"
@tab-click="handleClick"
:data="fixData"
>
<el-tab-pane
label="保养记录"
name="first"
v-loading="tabLoading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
>
<el-table :data="unkeepData" border class="details">
<el-table-column prop="MaterielCode" label="创建人">
</el-table-column>
<el-table-column prop="MaterielCode" label="创建日期">
</el-table-column>
<el-table-column prop="LyCount" label="备注">
</el-table-column> </el-table
><el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.Rows"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-tab-pane>
<el-tab-pane label="维修记录" name="second"
><el-table :data="fixres" border class="details">
<el-table-column prop="CreateName" label="操作人">
</el-table-column>
<el-table-column prop="MaterielCode" label="维修厂房">
</el-table-column>
<el-table-column prop="LyCount" label=" 维修时间">
</el-table-column>
<el-table-column prop="LyCount" label="创建日期">
</el-table-column>
<el-table-column prop="LyCount" label="备注">
</el-table-column>
</el-table>
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.Rows"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-tab-pane>
</el-tabs>
</template> -->
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<el-dialog
width="36%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm('ruleForm')"
>
<!-- <el-divider content-position="left"> 装备信息</el-divider> -->
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
style="margin-top: 43px"
>
<el-row :gutter="50">
<el-form-item class="diaC" label="装备类别" prop="CategoryID">
<el-select
v-model="ruleForm.CategoryID"
filterable
clearable
style="width: 470px"
@change="getClass"
:disabled="classDis"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item class="diaC" label="装备物料" prop="MaterielId">
<el-select
v-model="ruleForm.MaterielId"
filterable
clearable
style="width: 470px"
@change="getMateriel"
:disabled="classDis"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item class="diaC" label="装备号型">
<el-select
v-model="ruleForm.EqSizeId"
filterable
style="width: 470px"
clearable
:disabled="classDis"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-col :span="10" style="padding-left: 0px">
<el-form-item class="diaB" label="装备编号" prop="EqCode">
<el-input
class="inputA"
v-model="ruleForm.EqCode"
placeholder="请输入编号"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="采购日期">
<el-date-picker
v-model="ruleForm.BuyTime"
value-format="yyyy年MM月dd日"
class="inputA"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item class="diaB" label="保养周期">
<template>
<el-input-number
v-model="ruleForm.BaoYangDays"
:min="1"
:max="10000"
></el-input-number>
</template>
</el-form-item>
<el-form-item class="diaB" label="数量" prop="EqCount">
<template>
<el-input-number
v-model="ruleForm.EqCount"
:min="1"
:max="10000"
></el-input-number>
</template>
</el-form-item>
</el-col>
<el-col :span="10" style="padding-left: 0px">
<el-form-item label="装备名称" class="diaB" prop="EqName">
<el-input
class="inputA"
v-model="ruleForm.EqName"
placeholder="请输入名称"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="报废日期">
<el-date-picker
class="inputA"
value-format="yyyy年MM月dd日"
v-model="ruleForm.TermTime"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item class="diaB" label="采购价格">
<template>
<el-input-number
v-model="ruleForm.Price"
:min="1"
:max="10000"
></el-input-number>
</template>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" style="font-weight: 800">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="ruleForm.Remarks"
></el-input>
</el-form-item>
<el-divider content-position="left"> 位置信息</el-divider>
<el-form
:model="ruleForm"
ref="ruleForm2"
label-width="100px"
style="margin-top: 10px"
>
<el-row :gutter="50">
<el-form-item class="diaB" label="装备类型" prop="IsPublic">
<el-select
v-model="ruleForm.IsPublic"
style="width: 458px"
@change="equipmentTypeChange"
placeholder="请选择装备类型"
>
<el-option
v-for="item in typeoption"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-col :span="10" style="padding-left: 0px">
<el-form-item label="所属人员" class="diaB" v-if="peopleShow">
<el-select
v-model="ruleForm.policeUserID"
style="width: 208px"
placeholder="请选择所属人员"
filterable
clearable
>
<el-option
v-for="item in usersOption"
:key="item.ID"
:label="`${item.UserName}-${item.DepartName}-${item.PoliceTypeName}`"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="仓库选择"
class="diaB"
v-if="warehouseSelect"
prop="LibraryID"
>
<el-select
v-model="ruleForm.LibraryID"
style="width: 204px"
@change="warehouseChange"
>
<el-option
v-for="item in warehouseOption"
:key="item.LibraryID"
:label="`${item.LibaryName}-${item.LibaryTypeName}`"
:value="item.LibraryID"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" style="padding-left: 0px">
<el-form-item label="储柜选择" v-if="selectShow" class="diaB">
<el-select
v-model="ruleForm.LocationId"
style="width: 204px"
filterable
clearable
@change="storageChange"
>
<el-option
v-for="item in storageOption"
:key="item.StorageCode"
:label="`${item.StorageTypeName}-${item.LocationCode}`"
:value="item.StorageCode"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
components: { Treeselect },
data() {
var checkMobile = (rule, value, cb) => {
// 验证手机的正则表达式
console.log(rule, value);
const regMobile =
/^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/;
const fg = regMobile.test(value);
if (fg) {
return cb();
}
cb(new Error("手机号码不合法"));
};
return {
rules: {
CategoryID: [
{ required: true, message: "请选择装备类型", trigger: "change" },
],
MaterielId: [
{ required: true, message: "请选择装备物料", trigger: "change" },
],
EqCode: [
{ required: true, message: "请输入装备编号", trigger: "blur" },
{ min: 1, message: "请输入装备编号", trigger: "blur" },
],
EqName: [
{ required: true, message: "请输入装备名称", trigger: "blur" },
{ min: 1, message: "请输入装备名称", trigger: "blur" },
],
IsPublic: [{ required: true, message: "请选择类型", trigger: "blur" }],
},
videoUrl:"",
IsPublicType: [
{
value: 0,
label: "全部",
},
{
value: 1,
label: "公共装备",
},
{
value: 2,
label: "单警装备",
},
],
StateType: [
{
value: "-1",
label: "全部",
},
{
value: "0",
label: "在架",
},
{
value: "1",
label: "出库",
},
{
value: "2",
label: "维修",
},
{
value: "3",
label: "报废",
}
],
aaa: "",
classDis: false,
peopleShow: true,
warehouseSelect: false,
usersOption: [],
sizeOption: [],
MaterielOption: [],
classOption: [],
addVisible: false,
warehouseOption: [],
options: [],
normalizer(node) {
//去掉children=[]的children属性
if (node.Children && !node.Children.length) {
delete node.Children;
}
return {
id: node.ID,
//将name转换成必填的label键
label: node.DepartName,
children: node.Children,
};
},
storageOption: [],
typeoption: [
{
value: 1,
label: "公共装备",
},
{
value: 2,
label: "单警装备",
},
],
selectShow: false,
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
LibraryID: "",
CategoryID: "",
Epc: "",
LibraryName: "",
PoliceName: "",
EqName: "",
IsPublic: "",
State: "",
EqType: "",
userID: "",
},
title: "",
searchUserData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
UserName: "",
DeparId: "",
},
fixData: {
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
searchWarehouseData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "DESC",
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
ruleForm: {
ID: 0,
EqType: 0,
IsPubilc: 2,
EqName: "",
EqCode: "",
BuyTime: "",
TermTime: "",
Price: 1,
BaoYangDays: 1,
Remarks: "",
StorageCode: "",
EqHaoCai: 1,
EqCount: 1,
policeUserID: "",
IsPublic: 2,
CategoryID: "",
CategoryName: "",
EqSizeId: "",
MaterielId: "",
LibraryID: "",
LocationId: "",
LocationName: "",
LocationCode: "",
},
searchClassData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
CategoryID: "",
IsHaoCai:1
},
searchMaterielData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
},
searchStorageData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
LibraryID: "",
},
resetForm() {
console.log("aaa")
this.$refs["ruleForm"].resetFields();
this.peopleShow = true;
this.warehouseSelect = false;
this.selectShow = false;
this.MaterielOption = [];
this.storageOption = [];
this.warehouseOption = [];
this.ruleForm = {
ID: 0,
EqType: 2,
IsPubilc: 2,
EqName: "",
EqCode: "",
BuyTime: "",
TermTime: "",
Price: 1,
BaoYangDays: 1,
Remarks: "",
MaterielName: "",
StorageCode: "",
Enclosure: "",
EqHaoCai: 1,
IsNormal: "",
EqCount: 1,
policeUserID: "",
IsPublic: 2,
CategoryID: "",
CategoryName: "",
EqSizeId: "",
EqSizeName: "",
MaterielId: "",
MaterielCode: "",
LocationId: "",
LocationName: "",
LocationCode: "",
LibraryID: "",
LibraryName: "",
};
},
eqNewName:"",
eqNewCode:"",
classNewName:"",
classNewCode:"",
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
activeName: "first",
input: "",
form: {},
tableData: [],
fixres: [],
upkeepData: [],
imgurl: [],
borrowData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.InitQuery();
this.getQueuData();
this.getUserInfo();
},
methods: {
// 获取当前选中部门的名称
selectDepart(node) {
console.log(node);
this.searchData.userID = node.ID;
// console.log("parentId", ruleForm.parentId);
},
//提交表单
submitForm(formName, type) {
console.log("RU", this.ruleForm);
const that = this
// if (!this.ruleForm.CategoryID) {
// return this.$message.warning("请选择装备类型");
// }
// if (!this.ruleForm.MaterielId) {
// return this.$message.warning("请选择装备物料");
// }
// if (!this.ruleForm.EqSizeId) {
// return this.$message.warning("请选择装备号型");
// }
// if (!this.ruleForm.EqName) {
// return this.$message.warning("请输入装备名称");
// }
this.$refs[formName].validate(async (valid) => {
if (valid) {
if (this.ruleForm.IsPublic === 1) {
if (!this.ruleForm.LibraryID) {
return this.$message.warning("请选择仓库");
}
if (!this.ruleForm.LocationId) {
return this.$message.warning("请选择储柜");
}
}
if (this.ruleForm.IsPublic === 2) {
if (!this.ruleForm.policeUserID) {
return this.$message.warning("请选择所属人员");
}
}
var policeUserID="";
if(that.ruleForm.policeUserID!=undefined)
{
policeUserID=that.ruleForm.policeUserID.toString();
}
console.log("rulePolice",that.ruleForm.policeUserID)
console.log(policeUserID)
const formData = new FormData();
formData.append("ID", this.ruleForm.ID);
formData.append("EqType", this.ruleForm.EqType);
formData.append("IsPubilc", this.ruleForm.IsPublic.toString());
formData.append("EqCode", this.ruleForm.EqCode);
formData.append("EqName", this.ruleForm.EqName);
formData.append("BuyTime", this.ruleForm.BuyTime);
formData.append("TermTime", this.ruleForm.TermTime);
formData.append("Price", this.ruleForm.Price);
formData.append("BaoYangDays", this.ruleForm.BaoYangDays);
formData.append("Remarks", this.ruleForm.Remarks===null?"":this.ruleForm.Remarks);
formData.append("EqHaoCai", this.ruleForm.EqHaoCai);
formData.append("StorageCode", this.ruleForm.StorageCode);
formData.append("EqCount", this.ruleForm.EqCount);
formData.append(
"UserId",policeUserID
);
formData.append("CategoryID", this.ruleForm.CategoryID);
formData.append("EqSizeId", this.ruleForm.EqSizeId);
formData.append("MaterielId", this.ruleForm.MaterielId);
formData.append("LocationId", this.ruleForm.LocationId);
formData.append("LocationCode", this.ruleForm.LocationName);
formData.append("LocationName", this.ruleForm.LocationName);
formData.append("LibraryID", this.ruleForm.LibraryID);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "添加装备(耗材)") {
const { data: res } = await this.$axios.post(
"/api/Equipment",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
} else {
//修改
console.log(that.ruleForm.IsPublic, formData)
const { data: res } = await this.$axios.put(
"/api/Equipment",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
//查看信息
async check(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/Equipment/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.detailData = res;
console.log("ro",row)
this.videoUrl=row.VideoUrl;
},
//删除预案
deleteClick(row) {
const url = "/api/Equipment/EQ/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success("已删除该数据");
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
//添加装备
async addEquipment() {
this.classDis = false;
this.title = "添加装备(耗材)";
this.addVisible = true;
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
const { data: userRes } = await this.$axios.get("api/User", {
params: this.searchUserData,
});
const { data: resWarehouse } = await this.$axios.get("api/Libary", {
params: this.searchWarehouseData,
});
resWarehouse.Rows.forEach((item) => {
this.warehouseOption.push({
LibraryID: item.ID,
LibaryName: item.LibaryName,
LibaryTypeName: item.LibaryTypeName,
});
});
console.log("仓库", this.warehouseOption);
this.usersOption = userRes.Rows;
this.classOption = resclass.Rows;
},
//选择橱柜
storageChange(val) {
if (val !== "") {
console.log(val);
var obj = {};
obj = this.storageOption.find(function (item) {
return item.LocationId === val;
});
console.log("obj", this.storageOption);
this.ruleForm.LocationName = obj.StorageCode;
this.ruleForm.LocationCode = obj.StorageCode;
}
},
//关闭窗口
closeForm() {
this.resetForm();
this.addVisible = false;
},
///获取物料内容
async getClass(val) {
this.ruleForm.EqCode="";
this.ruleForm.EqName="";
this.ruleForm.MaterielId = "";
this.ruleForm.EqSizeId = "";
if (val !== "") {
this.searchClassData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchClassData,
});
var obj = {};
obj = this.classOption.find(function (item) {
return item.ID === val;
});
this.MaterielOption = res.Rows;
}
},
//获取号型的名字和ID
async getIDAndName(val) {
this.ruleForm.EqCode="";
this.ruleForm.EqName="";
if (val !== "") {
var obj = {};
obj = this.sizeOption.find(function (item) {
return item.ID === val;
});
console.log(obj)
this.ruleForm.EqCode=this.eqNewCode+obj.Code;
this.ruleForm.EqName=this.eqNewName+"("+obj.EqSizeName+")";
this.ruleForm.EqSizeId = obj.ID;
this.ruleForm.EqSizeName = obj.EqSizeName;
}
},
//修改装备
async edit(row) {
this.classDis = true;
this.title = "修改装备";
this.addVisible = true;
var url = "api/Equipment/" + row.ID;
const { data: res } = await this.$axios.get(url);
this.ruleForm = JSON.parse(JSON.stringify(res));
console.log("ruleF",this.ruleForm)
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
const { data: userRes } = await this.$axios.get("api/User", {
params: this.searchUserData,
});
const { data: resWarehouse } = await this.$axios.get("api/Libary", {
params: this.searchWarehouseData,
});
this.searchClassData.CategoryID = this.ruleForm.CategoryID;
this.searchClassData.IsHaoCai=null;
// this.searchClassData.MaterielName = this.ruleForm.MaterielName;
const { data: resMaterie } = await this.$axios.get("api/Materiel", {
params: this.searchClassData,
});
console.log("mater", resMaterie.Rows);
if (this.ruleForm.EqSizeId !== null) {
this.searchMaterielData.EqSizeId = this.ruleForm.EqSizeId;
const { data: resSize } = await this.$axios.get("api/EqSize", {
params: this.searchMaterielData,
});
this.sizeOption = resSize.Rows;
}
this.searchStorageData.LibraryID = this.ruleForm.LibraryID;
const { data: resStorage } = await this.$axios.get("api/Storage", {
params: this.searchStorageData,
});
resMaterie.Rows.forEach((item) => {
this.MaterielOption.push({
ID: item.ID,
MaterielId: item.ID,
MaterielName: item.MaterielName,
});
});
resStorage.Rows.forEach((item) => {
this.storageOption.push({
StorageCode: item.ID,
StorageTypeName: item.StorageTypeName,
LocationCode: item.StorageCode,
LocationId: item.ID,
});
});
this.usersOption = userRes.Rows;
this.classOption = resclass.Rows;
resWarehouse.Rows.forEach((item) => {
this.warehouseOption.push({
LibraryID: item.ID,
CreateID: item.CreateID,
CreateName: item.CreateName,
CreateTime: item.CreateTime,
LibaryName: item.LibaryName,
LibaryType: item.LibaryType,
LibaryTypeName: item.LibaryTypeName,
Remarks: item.Remarks,
});
});
if (this.ruleForm.IsPublic === 1) {
//公共装备
this.selectShow = true;
this.warehouseSelect = true;
this.peopleShow = false;
} else {
//单警装备
this.peopleShow = true;
this.warehouseSelect = false;
this.selectShow = false;
}
},
//装备类型变化
equipmentTypeChange(val) {
if (val === 1) {
//公共装备
this.ruleForm.policeUserID = "";
this.selectShow = true;
this.warehouseSelect = true;
this.peopleShow = false;
} else {
//单警装备
this.ruleForm.LibraryID = "";
this.ruleForm.StorageCode = "";
this.peopleShow = true;
this.warehouseSelect = false;
this.selectShow = false;
}
},
//获取号型
async getMateriel(val) {
this.ruleForm.EqSizeId = "";
this.ruleForm.EqSizeName = "";
if (val !== "") {
var obj = {};
obj = this.MaterielOption.find(function (item) {
return item.ID === val;
});
this.ruleForm.EqCode=obj.MaterielCode;
this.ruleForm.EqName=obj.MaterielName;
this.ruleForm.MaterielId = obj.ID;
this.ruleForm.MaterielName = obj.MaterielName;
this.eqNewName=this.ruleForm.EqName
this.eqNewCode=this.ruleForm.EqCode
this.searchMaterielData.MaterielId = val;
const { data: res } = await this.$axios.get("api/EqSize", {
params: this.searchMaterielData,
});
this.sizeOption = res.Rows;
// console.log("size",this.sizeOption)
}
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
//仓库变化后选择储位
async warehouseChange(val) {
// console.log('仓库',this.warehouseOption)
(this.storageOption = []),
(this.ruleForm.LocationId = ""),
this.searchStorageData.LibraryID = val;
if (val !== "") {
const { data: resStorage } = await this.$axios.get("api/Storage", {
params: this.searchStorageData,
});
resStorage.Rows.forEach((item) => {
this.storageOption.push({
StorageCode: item.ID,
StorageTypeName: item.StorageTypeName,
LocationCode: item.StorageCode,
LocationId: item.ID,
});
});
}
},
async InitQuery()
{
if(this.$route.query.StateType!=undefined)
{ this.searchData.State=this.$route.query.StateType;}
if(this.$route.query.IsPublicType!=undefined)
{ this.searchData.IsPublic=this.$route.query.IsPublicType;}
},
async getQueuData() {
// console.log("CC",this.$route.query.StateType)
// console.log("statet",aa)
this.loading = true;
const { data: resclass } = await this.$axios.get("api/EqCategory");
this.classOption = resclass.Rows;
const { data: res } = await this.$axios.get("api/Equipment", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
async getUserInfo() {
const borrowUrl = "/api/User/GetAllUser";
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.options = res.Rows;
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
stateFormat(row) {
if (row.EqHaoCai === 0) {
return "已贴标";
} else {
return "未贴标";
}
},
},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.labelClassT {
width: 479px;
}
.diaB {
font-weight: 1000;
margin-left: 29px;
margin-top: 10px;
}
.inputA {
width: 180px;
}
.dialogSize {
font-size: 15px;
}
.diaC {
font-weight: 1000;
margin-left: 29px;
margin-bottom: 16px;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
width: 14%;
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
width: 17%;
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
.el-dialog {
width: 66%;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/icons/类型.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">装备类别</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理 </el-breadcrumb-item>
<el-breadcrumb-item>装备类别</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.EqCategoryName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入类名搜索"
></el-input>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addClass()"
>新增大类</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="Code" label="编号" align="center">
</el-table-column>
<el-table-column
prop="EqCategoryName"
label="装备类别"
align="center"
>
</el-table-column>
<el-table-column prop="Remarks" label="备 注" align="center">
</el-table-column>
<el-table-column prop="CreateName" label="创建人员" align="center">
</el-table-column>
<el-table-column prop="CreateTime" label="创建时间" align="center">
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<!-- <a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="check(scope.row)"
>查看</a-button
> -->
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
width="30%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
>
<div style="border: 0px solid #e8e8e8">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
class="inputClass"
label-width="100px"
>
<el-form-item label="类别名称" prop="EqCategoryName">
<el-input v-model="ruleForm.EqCategoryName"></el-input>
</el-form-item>
<el-form-item label="编号" prop="Code">
<el-input :disabled="codeDis" v-model="ruleForm.Code"></el-input>
</el-form-item>
<el-form-item label="备注" prop="Remarks">
<el-input v-model="ruleForm.Remarks"></el-input>
</el-form-item>
<el-form-item v-if="false" prop="ID">
<el-input v-model="ruleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="addVisible = false,resetForm('ruleForm')">取 消</el-button>
<el-button @click="resetForm('ruleForm')">重 置</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
rules: {
EqCategoryName: [
{ required: true, message: "请输入类别名称", trigger: "blur" },
{ min: 1, message: "请输入类别名称", trigger: "blur" },
],
Code: [
{ required: true, message: "编号必须为2位", trigger: "blur" },
{ min: 2,max:2, message: "编号必须为2位", trigger: "blur" },
],
Remarks: [],
},
codeDis:false,
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
EqCategoryName: "",
},
title: "",
ruleForm: {
ID: 0,
EqCategoryName: "",
Code: "",
Remarks: "",
},
resetForm(formName) {
// this.ruleForm.EqCategoryName="";
this.$refs[formName].resetFields();
},
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
borrowData: [],
editData: [],
addVisible: false,
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
formData.append("ID", this.ruleForm.ID);
formData.append("EqCategoryName", this.ruleForm.EqCategoryName);
formData.append("Code", this.ruleForm.Code);
formData.append("Remarks", this.ruleForm.Remarks===null?"":this.ruleForm.Remarks);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "新增类型") {
const { data: res } = await this.$axios.post(
"/api/EqCategory",
formData,
config
);
if (res.Success !== true)
{
return this.$message.error(res.Remark);}
} else {
// console.log(this.ruleForm.ID)
formData.append("ID", this.ruleForm.ID);
const { data: res } = await this.$axios.put(
"/api/EqCategory",
formData,
config
);
if (res.Success !== true) return this.$message.error(res.Remark);
}
this.getQueuData();
this.addVisible = false;
this.resetForm('ruleForm')
} else {
return false;
}
});
},
//修改装备类型
async edit(row) {
this.title="修改大类"
this.addVisible = true;
this.codeDis=true;
this.$nextTick(async()=>{
await this.resetForm('ruleForm')
this.ruleForm = JSON.parse(JSON.stringify(row));;
})
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
//新增大类
async addClass() {
this.codeDis=false;
this.addVisible = true;
this.title = "新增类型";
this.$nextTick(()=>{
this.resetForm('ruleForm')
})
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/EqCategory", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/仪器型号.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">号型管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理 </el-breadcrumb-item>
<el-breadcrumb-item>号型管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.EqSizeName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入号型名搜索"
></el-input>
<el-select
class="textboxBo"
v-model="searchData.ClassID"
filterable
clearable
placeholder="请选择类型"
@change="getSearchClass"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-select
class="textboxBo"
v-model="searchData.MaterielId"
filterable
clearable
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOptionSe"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addClass()"
>新增号型</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="sizeData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="EqSizeName" label="号型名称" align="center">
</el-table-column>
<el-table-column
prop="EqCategoryName"
label="所属大类"
align="center"
>
</el-table-column>
<el-table-column prop="MaterielName" label="所属物料" align="center">
</el-table-column>
<el-table-column prop="Code" label="号型编码" align="center" />
<el-table-column prop="Remarks" label="备注" align="center">
</el-table-column>
<el-table-column
label="操作"
align="center"
fixed="right"
width="200"
>
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="deleteClick(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<!-- 新增/编辑 -->
<el-dialog
width="28%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm()"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="EditRuleForm"
ref="EditRuleForm"
:rules="rules"
label-width="100px"
style="margin-top: 10px"
>
<el-row :gutter="10">
<!-- <el-col :span="20" class="dia"> -->
<el-form-item
v-if="ClassIF"
class="diaC"
label="大类选择"
prop="ClassID"
>
<el-select
v-model="EditRuleForm.ClassID"
filterable
clearable
style="width: 73%"
placeholder="请选择大类"
@change="getClass"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item class="diaC" label="物料类别" prop="MaterielId">
<el-select
v-model="EditRuleForm.MaterielId"
filterable
clearable
style="width: 73%"
placeholder="请选择物料"
:disabled="MaterDis"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item class="diaB" label="号型名称" prop="EqSizeName">
<el-input
class="inputA"
v-model="EditRuleForm.EqSizeName"
placeholder="请输入号型名称"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="号型编码" prop="Code">
<el-input
class="inputA"
v-model="EditRuleForm.Code"
placeholder="请输入号型编码"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="备注" prop="Remark">
<el-input
class="inputA"
v-model="EditRuleForm.Remarks"
></el-input>
</el-form-item>
<!-- </el-col> -->
</el-row>
<el-form-item v-if="false">
<el-input v-model="EditRuleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm('EditRuleForm', title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
MaterDis: false,
ClassIF: true,
optionsEquipment: [
{
value: "2",
label: "全部",
},
{
value: "1",
label: "耗材",
},
{
value: "0",
label: "非耗材",
},
],
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "DESC",
EqSizeName: "",
MaterielName: "",
MaterielId: "",
},
searchMaterielData: {
Page: 1,
Rows: 9999,
Sort: "ID",
Order: "ESC",
CategoryID: "",
},
resetForm() {
this.$refs["EditRuleForm"].resetFields();
this.EditRuleForm = {
ClassID: "",
MaterielId: "",
EqSizeName: "",
Remarks: "",
Code: "",
};
},
MaterielOptionSe: [],
MaterielOption: [],
classOption: [],
title: "",
fixData: {
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
addVisible: false,
detailData: {
MaterielCode: "",
},
fixdetailData: [],
loading: false,
tabLoading: false,
src: "../assets/images/记录.png",
activeName: "first",
rules: {
MaterielId: [
{ required: true, message: "请选择类型", trigger: "change" },
],
ClassID: [{ required: true, message: "请选择物料", trigger: "change" }],
Code: [
{
required: true,
message: "请输入编码",
trigger: "blur",
},
{ min: 1, message: "请输入编码", trigger: "blur" },
],
EqSizeName: [
{
required: true,
message: "请输入号型名称",
trigger: "blur",
},
{ min: 1, message: "请输入号型名称", trigger: "blur" },
],
},
EditRuleForm: {
MaterielId: "",
MaterielName: "",
ClassID: "",
EqSizeName: "",
Remarks: "",
Code: "",
},
sizeData: [],
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//编辑信息
async edit(row) {
this.MaterDis = true;
this.ClassIF = false;
this.addVisible = true;
console.log(row);
this.EditRuleForm = JSON.parse(JSON.stringify(row));
this.title = "修改号型";
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.searchMaterielData.CategoryID = "";
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchMaterielData,
});
this.classOption = resclass.Rows;
this.MaterielOption = res.Rows;
},
//查看照片
watchPic() {},
clickLI(id) {
this.flag = id;
this.$nextTick(() => {
this.width = document.getElementById("liWidth").offsetWidth;
this.offsetW = document.getElementById("liWidth").offsetLeft;
});
},
//新增号型
async addClass() {
this.ClassIF = true;
this.addVisible = true;
this.title = "新增号型";
this.MaterDis = false;
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
///获取搜索中类别的ID和内容
async getSearchClass(val) {
this.searchData.MaterielId="";
if (val !== "") {
this.searchMaterielData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchMaterielData,
});
this.MaterielOptionSe = res.Rows;
}
else
{
this.MaterielOptionSe=[];
}
},
///获取类别的ID和内容
async getClass(val) {
this.EditRuleForm.MaterielId = "";
if (val !== "") {
this.searchMaterielData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchMaterielData,
});
this.MaterielOption = res.Rows;
}
},
///提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
console.log(this.EditRuleForm);
formData.append("ID", this.EditRuleForm.ID);
formData.append("MaterielId", this.EditRuleForm.MaterielId);
formData.append("Code", this.EditRuleForm.Code);
formData.append(
"Remarks",
this.EditRuleForm.Remarks == null ? "" : this.EditRuleForm.Remarks
);
formData.append("EqSizeName", this.EditRuleForm.EqSizeName);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "新增号型") {
const { data: res } = await this.$axios.post(
"/api/EqSize",
formData,
config
);
if (res.Success !== true) return this.$message.error(res.Remark);
// 提交信息成功后要关闭对话框,并且刷新数据
this.$message.success(res.Remark);
} else {
//修改仓库类型
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.put(
"/api/EqSize",
formData,
config
);
if (res.Success !== true) return this.$message.error(res.Remark);
// 提交信息成功后要关闭对话框,并且刷新数据
this.$message.success(res.Remark);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/EqSize", {
params: this.searchData,
});
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
this.total = res.Total;
this.sizeData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 删除
deleteClick(row) {
const url = "/api/EqSize/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
stateFormat(row) {
if (row.EqHaoCai === 0) {
return "已贴标";
} else {
return "未贴标";
}
},
closeForm() {
this.resetForm();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.diaB {
font-weight: 1000;
margin-left: 29px;
margin-top: 22px;
}
.inputA {
width: 276px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.myQuillEditor {
width: 450px;
min-height: 192px;
}
.diaC {
font-weight: 1000;
margin-left: 29px;
margin-bottom: 22px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.areaClass {
width: 87%;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
.el-dialog {
width: 66%;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/i_3盘盒借用.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">借用管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>借用/借用管理</el-breadcrumb-item>
<el-breadcrumb-item>借用管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.SubmitUserName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入申请人员搜索"
></el-input>
<el-select
v-model="searchData.SubmitState"
class="textboxBo"
placeholder="请选择借用类型"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-form-item label="时间节点 :" class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px; margin-left: 10px"
class="funcButton"
@click="addRecive(0)"
>借用下发(耗材)</el-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addRecive(1)"
>借用下发(非耗材)</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
prop="SubmitUserName"
label="申请人"
align="center"
/>
<el-table-column
prop="SubmitState"
label="当前状态"
:formatter="SubmitFormat"
align="center"
/>
<el-table-column
prop="IsHaoCai"
label="单据类型"
:formatter="stateFormat"
align="center"
/>
<el-table-column prop="DepartName" label="部 门" align="center" />
<el-table-column prop="SubmitReason" label="申请原因" align="center">
</el-table-column>
<el-table-column prop="SubmitTime" label="申请时间" align="center" />
<el-table-column
prop="ExamineUserName"
label="审核人"
align="center"
/>
<el-table-column prop="ExamineTime" label="审核时间" align="center" />
<el-table-column prop="LyTime" label="借用时间" align="center" />
<el-table-column
prop="SubmitStateName"
label="状 态"
align="center"
/>
<el-table-column
fixed="right"
label="操作"
align="center"
>
<template slot-scope="scope">
<a-button
@click="getDetailInfo(scope.row, 0)"
type="primary"
ghost
round
size="small"
v-if="scope.row.SubmitState !== 0"
style="font-size: 15px"
>查看</a-button
>
<a-button
type="primary"
class="actions"
v-if="[0].includes(scope.row.SubmitState)"
ghost
round
size="small"
@click="getDetailInfo(scope.row, 1)"
>审批</a-button
>
<a-button
type="primary"
class="actions"
v-if="[1].includes(scope.row.SubmitState)&&[1].includes(scope.row.IsHaoCai)"
ghost
round
size="small"
@click="borrowOut(scope.row, 2)"
>已借出</a-button
>
<a-button
type="primary"
class="actions"
v-if="[2].includes(scope.row.SubmitState)&&[1].includes(scope.row.IsHaoCai)"
ghost
round
size="small"
@click="borrowOut(scope.row, 3)"
>已归还</a-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="单据详情" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基础信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">借用人员</th>
<td class="textContent">
{{ detailData.SubmitUserName }}
</td>
<th class="textHeader">部 门</th>
<td class="textContent">
{{ detailData.DepartName }}
</td>
<th class="textHeader">审批人员</th>
<td class="textContentLast">
{{ detailData.ExamineUserName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核时间</th>
<td class="textContent">
{{ detailData.ExamineTime }}
</td>
<th class="textHeader">借用时间</th>
<td class="textContent">
{{ detailData.LyTime ? detailData.LyTime : "暂无" }}
</td>
<th class="textHeader">单据状态</th>
<td class="textContentLast">
{{
detailData.SubmitStateName
? detailData.SubmitStateName
: "暂无"
}}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">申请时间</th>
<td class="textContent">
{{ detailData.SubmitTime }}
</td>
<th class="textHeader">申请理由</th>
<td colspan="5" class="textContentLast">
{{ detailData.SubmitReason }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">备注</th>
<td colspan="5" class="textContentLast">
{{ detailData.Remarks }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核意见</th>
<td colspan="5" class="textContentLast">
{{ detailData.ExameReason }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card
class="box-card"
style="text-align: center; margin-top: 35px; text-align: left"
>
<label class="labelBorrow">借用装备表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column prop="EqSizeName" label="号型" align="center">
</el-table-column>
<el-table-column prop="LyCount" label="借用数量" align="center">
</el-table-column>
</el-table>
</template>
</el-card>
<el-card v-if="auditbutton" class="box-card" style="margin-top: 35px">
<el-tag class="tagel" @click="tagSet('同意')" type="success"
>同意</el-tag
>
<el-tag
class="tagel"
@click="tagSet('申请理由充分、同意此次申请')"
type="success"
>申请理由充分、同意此次申请</el-tag
>
<el-tag
class="tagel"
@click="tagSet('所列项目齐全符合规范要求、同意此次申请')"
type="success"
>所列项目齐全符合规范要求、同意此次申请</el-tag
>
<el-tag class="tagel" @click="tagSet('不同意')" type="danger"
>不同意</el-tag
>
<el-tag
class="tagel"
@click="tagSet('申请理由不充分、请完善后重新提交.')"
type="danger"
>申请理由不充分、请完善后重新提交.</el-tag
>
<el-tag
class="tagel"
@click="tagSet('请数量有误、请检查后修改再次提交.')"
type="danger"
>申请数量有误、请检查后修改再次提交.</el-tag
>
<el-tag
class="tagel"
@click="tagSet('其他原因、驳回.')"
type="danger"
>其他原因、驳回.</el-tag
>
<el-input
class="labelClassT"
type="textarea"
:rows="2"
placeholder="请输入审核意见"
v-model="editForm.exameReason"
></el-input>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">关闭</el-button>
<el-button v-if="auditbutton" @click="auditState(-1)" type="danger"
>不通过</el-button
>
<el-button v-if="auditbutton" @click="auditState(1)" type="success"
>通过</el-button
>
</div>
</el-dialog>
<!-- 新增/编辑 耗材 -->
<el-dialog
width="70%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm('ruleForm')"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="ruleForm"
ref="ruleForm"
label-width="100px"
style="margin-top: 10px; margin-bottom: 35px"
>
<el-row :gutter="10">
<el-col :span="8" class="dia">
<el-form class="diaC">大类选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MainClass"
filterable
clearable
style="width: 300px"
@change="getClass($event, 'hc')"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">物料选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MaterielId"
filterable
clearable
style="width: 300px"
@change="getMateriel"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">号型选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EqSizeId"
filterable
clearable
style="width: 300px"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
<el-button
size="small"
class="buttonClass"
type="primary"
icon="el-icon-circle-plus-outline"
round
@click="addEquipment"
>添加装备</el-button
>
</el-col>
<el-col :span="16" style="padding-top: 31px">
<el-table
:data="ruleForm.BorrowList"
ref="BorrowList"
height="250"
border
style="width: 100%"
>
<el-table-column
prop="MaterielId"
label="物料ID"
align="center"
v-if="false"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="LyCount"
label="装备数量"
align="center"
>
<template slot-scope="scope">
<el-input-number
v-model="scope.row.LyCount"
:min="1"
:max="200"
></el-input-number>
</template>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
@click="deleteEquipment(scope.$index, scope.row)"
icon="el-icon-delete"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10"> </el-col>
</el-row>
</el-form>
<el-divider style="margin-bottom: 35px"></el-divider>
<el-form
:model="ruleForm"
ref="ruleForm"
label-position="left"
style="margin-top: 30px"
>
<!-- class="inputClass" -->
<el-row :gutter="90" style="margin-top: 30px">
<el-col :span="8" style="padding-top: 42px">
<el-form-item style="padding-left: 12px" label="部门选择">
<treeselect
style="width: 247px; float: left; margin-left: 18px"
noOptionsText="暂无数据"
:options="departOptions"
placeholder="请选择上级部门"
:normalizer="normalizer"
@select="selectDepart"
/>
</el-form-item>
<el-form-item class="diaC"
>人员选择
<el-select
class="diaD"
v-model="ruleForm.userID"
placeholder="请选择人员"
@change="policeSelect"
>
<el-option
v-for="item in policeOptions"
:key="item.ID"
:label="item.UserName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item class="labelClass"
>备注
<el-input
type="textarea"
:autosize="{ minRows: 6, maxRows: 50 }"
v-model="ruleForm.Remarks"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm(1)">提交</el-button>
</span>
</el-dialog>
<!-- 新增/编辑 非耗材-->
<el-dialog
width="70%"
:close-on-click-modal="false"
:title="title"
:visible.sync="NHCaddVisible"
@close="closeForm('ruleForm')"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="ruleForm"
ref="ruleForm"
label-width="100px"
style="margin-top: 10px; margin-bottom: 35px"
>
<el-row :gutter="10">
<el-col :span="8" class="dia">
<el-form class="diaC">大类选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MainClass"
filterable
clearable
style="width: 300px"
@change="getClass($event, 'nhc')"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">物料选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MaterielName"
filterable
clearable
style="width: 300px"
@change="getMateriel"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">号型选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EqSizeId"
filterable
clearable
style="width: 300px"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">装备选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EquipmentId"
filterable
clearable
style="width: 300px"
@change="getEquipment"
placeholder="请选择具体装备"
>
<el-option
v-for="item in eqOption"
:key="item.ID"
:label="item.NameAndCode"
:value="item.ID"
>
</el-option>
</el-select>
<el-button
size="small"
class="buttonClass"
type="primary"
icon="el-icon-circle-plus-outline"
round
@click="addNHCEquipment"
>添加装备</el-button
>
</el-col>
<el-col :span="16" style="padding-top: 31px">
<el-table
:data="NHCruleForm.BorrowList"
ref="BorrowList"
height="250"
border
style="width: 100%"
>
<el-table-column
prop="MaterielId"
label="物料ID"
align="center"
v-if="false"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="NameAndCode"
label="装备名称"
align="center"
>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
@click="deleteNHCEquipment(scope.$index, scope.row)"
icon="el-icon-delete"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10"> </el-col>
</el-row>
</el-form>
<el-divider></el-divider>
<el-form
:model="NHCruleForm"
ref="NHCruleForm"
label-position="left"
style="margin-top: 30px"
>
<!-- class="inputClass" -->
<el-row :gutter="90" style="margin-top: 30px">
<el-col :span="8" style="padding-top: 42px">
<el-form-item style="padding-left: 12px" label="部门选择">
<treeselect
style="width: 247px; float: left; margin-left: 18px"
noOptionsText="暂无数据"
:options="departOptions"
placeholder="请选择上级部门"
:normalizer="normalizer"
@select="selectDepart"
/>
</el-form-item>
<el-form-item class="diaC"
>人员选择
<el-select
class="diaD"
v-model="ruleForm.userID"
placeholder="请选择人员"
@change="NHCpoliceSelect"
>
<el-option
v-for="item in policeOptions"
:key="item.ID"
:label="item.UserName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item class="labelClass"
>备注
<el-input
type="textarea"
:autosize="{ minRows: 6, maxRows: 50 }"
v-model="NHCruleForm.Remarks"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="NHCaddVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm(0)">提交</el-button>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
components: { Treeselect },
data() {
return {
loading: false,
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
DepartName: "",
UserName: "",
IsAdmin: 1,
SubmitState: "0",
SubmitUserName: "",
borrowType: 1,
},
eqOption: [],
AddPlanForm: {
parentName: "",
parentId: "",
MaterielName: "",
MainClass: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EquipmentId: "",
EquipmentName: "",
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
searchUserData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
DeparId: "",
},
title: "",
searchDepartmentData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
ruleForm: {
ID: 0,
PlanName: "",
PlanState: 0,
borrowType: 1,
IsHaoCai: 0,
submitUsrID: "",
submitUserName: "",
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
LyCount: 1,
},
],
},
NHCruleForm: {
ID: 0,
PlanName: "",
PlanState: 0,
borrowType: 1,
IsHaoCai: 1,
submitUsrID: "",
submitUserName: "",
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
LyCount: 1,
},
],
},
searchClassData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
CategoryID: "",
IsHaoCai: 1,
},
departOptions: [],
policeOptions: [],
classOption: [],
MaterielOption: [],
sizeOption: [],
resetForm() {
(this.eqOption = []),
(this.classOption = []),
(this.MaterielOption = []),
(this.sizeOption = []),
(this.AddPlanForm = {
parentName: "",
parentId: "",
MaterielName: "",
MainClass: "",
MaterielCode: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
}),
(this.ruleForm = {
ID: 0,
SubmitReason: "", //申请理由
Remarks: "", //备注
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
LyCount: 1,
},
],
});
(this.NHCruleForm = {
ID: 0,
SubmitReason: "", //申请理由
Remarks: "", //备注
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
LyCount: 1,
},
],
});
},
searchEquipmentData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
EqSizeId: "",
},
searchMaterielData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
},
auditbutton: false,
editForm: {
ID: "",
SubmitState: 0,
exameReason: "",
},
addVisible: false,
NHCaddVisible: false,
// 日期配置
pickerOptions: {
shortcuts: [
{
text: "最近一日",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
// 用户选中日期
timeData: [],
// 时间选择器回调
options: [
{
value: "-99",
label: "全部",
},
{
value: "-2",
label: "待提交",
},
{
value: "-1",
label: "未通过",
},
{
value: "0",
label: "待审批",
},
{
value: "1",
label: "待借出",
},
{
value: "2",
label: "已借出",
},
{
value: "3",
label: "已归还",
},
],
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
borrowData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
normalizer(node) {
//去掉children=[]的children属性
if (node.Children && !node.Children.length) {
delete node.Children;
}
return {
id: node.ID,
//将name转换成必填的label键
label: node.DepartName,
children: node.Children,
};
},
};
},
created() {
this.searchData.SubmitState =
this.$route.query.SubmitState || this.searchData.SubmitState;
this.InitQuery();
this.getQueuData();
},
methods: {
// 获取当前选中部门的名称
async selectDepart(node) {
console.log(node);
this.AddPlanForm.parentName = node.DepartName;
this.AddPlanForm.parentId = node.ID;
this.searchUserData.DeparId = node.ID;
const { data: res } = await this.$axios.get("api/User", {
params: this.searchUserData,
});
this.policeOptions = res.Rows;
},
//获取号型的名字和ID
async getIDAndName(val) {
if (val !== "") {
var obj = {};
obj = this.sizeOption.find(function (item) {
return item.ID === val;
});
this.searchEquipmentData.EqSizeId = obj.ID;
const { data: eqres } = await this.$axios.get("api/Equipment", {
params: this.searchEquipmentData,
});
this.eqOption = eqres.Rows;
// console.log(obj)
this.AddPlanForm.EqSizeId = obj.ID;
this.AddPlanForm.EqSizeName = obj.EqSizeName;
this.AddPlanForm.EqSizeCode = obj.Code;
} else {
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
this.searchEquipmentData.EqSizeId = "";
this.searchEquipmentData.EqSizeName = "";
const { data: eqres } = await this.$axios.get("api/Equipment", {
params: this.searchEquipmentData,
});
this.eqOption = eqres.Rows;
}
},
//获取装备
async getEquipment(val) {
if (val !== "") {
var obj = {};
obj = this.eqOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.EquipmentName=obj.NameAndCode;
this.AddPlanForm.EquipmentId = obj.ID;
this.AddPlanForm.NameAndCode = obj.NameAndCode;
this.AddPlanForm.LabelEpc = obj.LabelEpc;
console.log("val",this.AddPlanForm)
}
else
{
this.AddPlanForm.EquipmentId="";
this.AddPlanForm.EquipmentName="";
}
},
async InitQuery()
{
if(this.$route.query.options!=undefined)
{ this.searchData.SubmitState=this.$route.query.options;}
},
///提交表单
async submitForm(ishaocai) {
console.log("renyuan",this.NHCruleForm)
if (ishaocai === 0) {
//非耗材
if (this.NHCruleForm.BorrowList.length===0) {
return this.$message.warning("请添加装备");
}
if (!this.NHCruleForm.submitUsrID) {
return this.$message.warning("请选择借用人员");
}
this.NHCruleForm.IsHaoCai = ishaocai;
this.NHCruleForm.borrowType=1;
console.log("hc", this.NHCruleForm);
const borrowUrl = "/api/Borrow/AdminCreateBorrow";
const { data: res } = await this.$axios.post(borrowUrl, this.NHCruleForm);
this.searchData.SubmitState="1";
this.getQueuData();
this.NHCaddVisible = false;
if (res.Success !== true) return this.$message.error(res.Remark);
else
{
return this.$message.success(res.Remark);
}
} //耗材
else {
if (this.ruleForm.BorrowList.length===0) {
return this.$message.warning("请添加装备");
}
if (!this.ruleForm.submitUsrID) {
return this.$message.warning("请选择借用人员");
}
this.ruleForm.IsHaoCai = ishaocai;
this.ruleForm.borrowType=1;
const borrowUrl = "/api/Borrow/AdminCreateBorrow";
const { data: res } = await this.$axios.post(borrowUrl, this.ruleForm);
this.searchData.SubmitState="1";
this.getQueuData();
this.addVisible = false;
if (res.Success !== true) return this.$message.error(res.Remark);
else
{
return this.$message.success(res.Remark);
}
}
},
//物料选择后
async getMateriel(val) {
this.sizeOption=[];
this.eqOption=[];
this.AddPlanForm.EquipmentId = "";
this.AddPlanForm.NameAndCode = "";
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
this.searchMaterielData.MaterielId = val;
if (val !== "") {
var obj = {};
obj = this.MaterielOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.MaterielId = obj.ID;
this.AddPlanForm.MaterielCode = obj.MaterielCode;
this.AddPlanForm.MaterielName = obj.MaterielName;
this.searchEquipmentData.MaterielId = obj.ID;
const { data: res } = await this.$axios.get("api/EqSize", {
params: this.searchMaterielData,
});
const { data: eqres } = await this.$axios.get("api/Equipment", {
params: this.searchEquipmentData,
});
this.sizeOption = res.Rows;
this.eqOption = eqres.Rows;
// console.log("size",this.sizeOption)
} else {
this.eqOption = [];
this.sizeOption = [];
this.AddPlanForm.MaterielId = "";
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
this.AddPlanForm.EquipmentId = "";
this.AddPlanForm.NameAndCode = "";
}
},
///获取类别的ID和内容
async getClass(val, b) {
if (b === "hc") {
//耗材
this.searchClassData.IsHaoCai = 1;
} //非耗材
else {
this.searchClassData.IsHaoCai = 0;
}
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
if (val !== "") {
this.searchClassData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchClassData,
});
this.MaterielOption = res.Rows;
} else {
this.sizeOption = [];
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
}
},
closeForm() {
this.resetForm();
},
//添加非耗材装备
addNHCEquipment() {
// console.log("nhc",this.AddPlanForm.EquipmentId);
if (this.AddPlanForm.EquipmentId === "") {
this.$message.warning("请选择物资");
return;
}
var obj = {};
var plan = {
LyCount: 1,
MainClass: this.AddPlanForm.MainClass,
MaterielName: this.AddPlanForm.MaterielName,
MaterielID: this.AddPlanForm.MaterielId,
MaterielCode: this.AddPlanForm.MaterielCode,
EqSizeId: this.AddPlanForm.EqSizeId,
EqSizeName: this.AddPlanForm.EqSizeName,
EqSizeCode: this.AddPlanForm.EqSizeCode,
NameAndCode: this.AddPlanForm.NameAndCode,
EquipmentId: this.AddPlanForm.EquipmentId,
LabelEpc: this.AddPlanForm.LabelEpc,
};
console.log("添加物资", plan);
obj = this.NHCruleForm.BorrowList.find(function (item) {
return item.EquipmentId === plan.EquipmentId;
});
if (obj === undefined) {
this.NHCruleForm.BorrowList.push(plan);
} else {
this.$message.error("已经存在该物资");
}
},
//添加耗材装备
addEquipment() {
console.log("hc",this.AddPlanForm);
if (this.AddPlanForm.MaterielId === "") {
this.$message.warning("请选择物料类型");
return;
}
var obj = {};
var plan = {
LyCount: 1,
MainClass: this.AddPlanForm.MainClass,
MaterielName: this.AddPlanForm.MaterielName,
MaterielId: this.AddPlanForm.MaterielId,
MaterielCode: this.AddPlanForm.MaterielCode,
EqSizeId: this.AddPlanForm.EqSizeId,
EqSizeName: this.AddPlanForm.EqSizeName,
EqSizeCode: this.AddPlanForm.EqSizeCode,
};
console.log("添加物资", plan);
obj = this.ruleForm.BorrowList.find(function (item) {
return item.EqSizeId === plan.EqSizeId;
});
if (obj === undefined) {
this.ruleForm.BorrowList.push(plan);
// this.AddPlanForm.EqSizeId="";
// this.AddPlanForm.EqSizeName="";
} else {
this.$message.error("已经存在该物资");
}
},
//删除装备
deleteEquipment(row) {
this.ruleForm.BorrowList.splice(row, 1);
},
deleteNHCEquipment(row) {
this.NHCruleForm.BorrowList.splice(row, 1);
},
stateFormat(row) {
if (row.IsHaoCai === 0) {
return "非耗材";
} else if(row.IsHaoCai===1) {
return "耗材";
}
else
{
return "";
}
},
SubmitFormat(row) {
if (row.SubmitState === 1) {
return "待借出";
} else if(row.SubmitState===2) {
return "待归还";
}
else if(row.SubmitState===3)
{
return "已归还";
}
else
{
return row.SubmitStateName;
}
},
//下发借用
async addRecive(row) {
console.log(row);
if (row === 0) {
//耗材0
this.title = "借用下发(耗材物资)";
this.addVisible = true;
this.ruleForm.BorrowList = [];
} //非耗材1
else {
this.title = "借用下发(非耗材物资)";
this.NHCaddVisible = true;
this.NHCruleForm.BorrowList = [];
}
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
const borrowUrl = "/api/Department/" + 0;
const { data: resdepartment } = await this.$axios.get(borrowUrl);
this.departOptions = resdepartment;
this.classOption = resclass.Rows;
},
//借出/归还
borrowOut(row, SubmitState)
{
this.editForm.ID=row.ID;
this.editForm.SubmitState=SubmitState;
var stateName="";
if(SubmitState===2)//提交
{
stateName="借出"
}
else if(SubmitState===3)//提交
{
stateName="归还"
}
else
{
stateName="撤销"
}
const url = "/api/Borrow/ChangeState" ;
this.$confirm("是否"+stateName+"该操作?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.post(url,this.editForm);
if (res.Success === true) {
this.getQueuData();
this.$message.success("已"+stateName);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error(""+stateName+"操作");
});
},
///人员选择
policeSelect(row) {
var obj = {};
obj = this.policeOptions.find(function (item) {
return item.ID === row;
});
console.log(obj)
this.ruleForm.submitUsrID =obj.ID;
this.ruleForm.submitUserName =obj.UserName;
},
///人员选择
NHCpoliceSelect(row) {
var obj = {};
// console.log("this.policeOptions",this.policeOptions)
obj = this.policeOptions.find(function (item) {
return item.ID === row;
});
this.NHCruleForm.submitUsrID = obj.ID;
this.NHCruleForm.submitUserName = obj.UserName;
console.log("obj",this.NHCruleForm)
},
///标签设置
tagSet(row) {
this.editForm.exameReason = row;
},
//获取详细列表信息
async getDetailInfo(row, type) {
if (type === 0) {
this.auditbutton = false;
} else {
this.auditbutton = true;
}
this.editForm.ID = row.ID;
console.log("type", type);
this.borrowTableVisible = true;
const borrowUrl = "/api/borrow/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.BorrowList;
this.detailData = res;
console.log("detailData", this.detailData);
},
///审核单据
async auditState(SubmitState) {
this.editForm.SubmitState = SubmitState;
this.borrowTableVisible = false;
const { data: res } = await this.$axios.post(
"/api/Borrow/ChangeState",
this.editForm
);
this.getQueuData();
if (res.Success !== true) return this.$message.error(res.Remark);
else {
return this.$message.success("审核成功");
}
},
dateChange(date) {
this.searchData.BeginTime = date ? date[0] : "";
this.searchData.EndTime = date ? date[1] : "";
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async getQueuData() {
this.loading = true;
this.searchData.borrowType = 1;
const { data: res } = await this.$axios.get("api/Borrow", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
watch: {
activeAllData: {
handler: function (newVal, oldVal) {
this.$refs.allTableRef.setCurrentRow(this.activeAllData);
},
deep: true,
},
activeGoodData: {
handler: function (newVal, oldVal) {
this.$refs.goodsTableRef.setCurrentRow(this.activeGoodData);
},
deep: true,
},
},
computed: {},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.diaC {
font-weight: 1000;
margin-left: 12px;
margin-bottom: 12px;
}
.diaD {
margin-left: 26px;
width: 247px;
}
.labelBorrow {
// float: left;
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.labelClassT {
padding-left: 14px;
}
.labelClass {
font-weight: 800;
margin-left: 12px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.buttonClass {
line-height: 0px;
text-align: center;
width: 61%;
margin-left: 29px;
height: 31px;
font-size: larger;
}
.tagel {
cursor: pointer;
margin-left: 5px;
margin-top: 5px;
margin-bottom: 5px;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img
src="../../assets/images/归还.png"
class="logo"
alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">归还记录</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>借用/领用管理</el-breadcrumb-item>
<el-breadcrumb-item>归还记录</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.EqName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入装备名称搜索"
></el-input>
<el-form-item label="时间节点 :" class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ImagePath" v-if="false" />
<el-table-column prop="EqName" label="装备名称" align="center" />
<el-table-column prop="EqCode" label="装备编号" align="center" />
<el-table-column prop="UserName" label="借用人员" align="center" />
<el-table-column prop="EnterName" label="归还人员" align="center">
</el-table-column>
<el-table-column
prop="ReturnTime"
label="归还时间"
align="center"
/>
</el-table>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page:1,
Rows:10,
Sort: "ID",
Order:"ESC",
EqName: "",
IsPubilc: '-1',
IsEnter:'-1',
},
// 日期配置
pickerOptions: {
shortcuts: [{
text: '最近一日',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一周',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}]
},
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
borrowData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl =window._CONFIG['dlURL'] + "/"+row.ImagePath;
},
async getQueuData() {
this.loading=true;
const { data: res } = await this.$axios.get('api/ReturnLog', {params: this.searchData});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(()=>{ //设置延迟执行
this.loading=false;
},300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
dateChange (date) {
this.searchData.BeginTime = date ? date[0] : ''
this.searchData.EndTime = date ? date[1] : ''
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float:left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/记录.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">人员借用</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>借用/领用管理</el-breadcrumb-item>
<el-breadcrumb-item>人员借用</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.CreateName"
@keypress.native.enter="onEnterPress"
style="width:200px"
class="textboxBo"
placeholder="请输入姓名搜索"
></el-input>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px;"
class="textboxBo"
@click="getAllData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top:30px;">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="CreateName" label="借用人员" align="center" />
<el-table-column prop="EqCount" label="借用装备总数" align="center" />
<el-table-column
prop="BorrowStateName"
label="借用状态"
align="center"
/>
<el-table-column prop="Remarks" label="备注" align="center" />
<el-table-column
prop="BorStartTime"
label="借用开始时间"
align="center"
/>
<el-table-column
prop="BorEndTime"
label="借用结束时间"
align="center"
/>
<el-table-column fixed="right" label="操作" width="100">
<template slot-scope="scope">
<el-button
@click="getDetailInfo(scope.row)"
type="text"
style="font-size: 15px"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="查看明细" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix">
<span class="labelBorrow">基础信息</span>
</div>
<!-- <label class="labelBorrow">基础信息</label>
<el-divider></el-divider> -->
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">借用人员</th>
<td class="textContent">
{{ detailData.CreateName }}
</td>
<th class="textHeader">装备总数</th>
<td class="textContent">
{{ detailData.EqCount }}
</td>
<th class="textHeader">借用状态</th>
<td class="textContentLast">
{{ detailData.BorrowStateName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">预计归还</th>
<td class="textContent">
{{ detailData.BorEndTime }}
</td>
<th class="textHeader">结束时间</th>
<td class="textContent">
{{ detailData.BorEndTime }}
</td>
<th class="textHeader">创建时间</th>
<td class="textContentLast">
{{ detailData.BorStartTime }}
</td>
</tr>
<tr>
<!-- <th class="textHeader">租借凭证</th>
<td class="textContent">
点击查看
</td> -->
<th class="textHeader">备注</th>
<td colspan="5" class="textContentLast">
{{ detailData.Remarks }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 35px">
<label class="labelBorrow">装备/装备包明细表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column prop="EqName" label="装备/装备包名称">
</el-table-column>
<el-table-column prop="StorageName" label="储位">
</el-table-column>
<el-table-column prop="StorageName" label="库位名称">
</el-table-column>
</el-table>
</template>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.Page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
src: "../assets/images/借用.png",
loading: false,
input: "",
form: {},
tableData: [],
detailData: [],
borrowData: [],
borrowTableVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 筛选数据
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
CreateName: "",
},
// 总条数
total: 0,
};
},
created() {
this.getAllData();
},
methods: {
//查看详细信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/Borrow/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.List;
this.detailData = res.Model;
},
async getQueuData() {
this.loading = true;
// var name = (name = this.$refs.nameInput.value);
// var page = this.searchData.Page;
// var size = this.searchData.Rows;
// console.log(page + "," + size);
var borrowUrl = "api/Borrow";
const { data: res } = await this.$axios.get(borrowUrl, {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.loading = false;
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 获取主表单数据
async getAllData() {
this.loading = true;
var borrowUrl = "api/Borrow";
const { data: res } = await this.$axios.get(borrowUrl, {
params: this.searchData,
});
if (res.Success == false) return this.$message(res.Remark);
this.total = res.Total;
this.borrowData = res.Rows;
this.loading = false;
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
},
computed: {},
};
</script>
<style scoped lang="less">
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-left: 26px;
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/资产领用.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">领用管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>借用/领用管理</el-breadcrumb-item>
<el-breadcrumb-item>领用管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.SubmitUserName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入申请人员搜索"
></el-input>
<el-select
v-model="searchData.SubmitState"
class="textboxBo"
placeholder="请选择借用类型"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-form-item label="时间节点 :" class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addRecive()"
>领用下发</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
prop="SubmitUserName"
label="申请人"
align="center"
/>
<el-table-column prop="DepartName" label="部 门" align="center" />
<el-table-column prop="SubmitReason" label="申请原因" align="center">
</el-table-column>
<el-table-column prop="SubmitTime" label="申请时间" align="center" />
<el-table-column
prop="ExamineUserName"
label="审核人"
align="center"
/>
<el-table-column prop="ExamineTime" label="审核时间" align="center" />
<el-table-column prop="LyTime" label="领用时间" align="center" />
<el-table-column
prop="SubmitStateName"
label="状 态"
align="center"
/>
<el-table-column
prop="SubmitState"
fixed="right"
label="操作"
width="100"
>
<template slot-scope="scope">
<a-button
@click="getDetailInfo(scope.row, 0)"
type="primary"
ghost
round
size="small"
v-if="scope.row.SubmitState !== 0"
style="font-size: 15px"
>查看</a-button
>
<a-button
type="primary"
class="actions"
v-if="[0].includes(scope.row.SubmitState)"
ghost
round
size="small"
@click="getDetailInfo(scope.row, 1)"
>审批</a-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="单据详情" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基础信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">领用人员</th>
<td class="textContent">
{{ detailData.SubmitUserName }}
</td>
<th class="textHeader">部 门</th>
<td class="textContent">
{{ detailData.DepartName }}
</td>
<th class="textHeader">审批人员</th>
<td class="textContentLast">
{{ detailData.ExamineUserName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核时间</th>
<td class="textContent">
{{ detailData.ExamineTime }}
</td>
<th class="textHeader">领用时间</th>
<td class="textContent">
{{ detailData.LyTime ? detailData.LyTime : "暂无" }}
</td>
<th class="textHeader">单据状态</th>
<td class="textContentLast">
{{
detailData.SubmitStateName
? detailData.SubmitStateName
: "暂无"
}}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">申请时间</th>
<td class="textContent">
{{ detailData.SubmitTime }}
</td>
<th class="textHeader">申请理由</th>
<td colspan="5" class="textContentLast">
{{ detailData.SubmitReason }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">备注</th>
<td colspan="5" class="textContentLast">
{{ detailData.Remarks }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核意见</th>
<td colspan="5" class="textContentLast">
{{ detailData.ExameReason }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card
class="box-card"
style="text-align: center; margin-top: 35px; text-align: left"
>
<label class="labelBorrow">领取装备表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column prop="EqSizeName" label="号型" align="center">
</el-table-column>
<el-table-column prop="LyCount" label="领用数量" align="center">
</el-table-column>
</el-table>
</template>
</el-card>
<el-card v-if="auditbutton" class="box-card" style="margin-top: 35px">
<el-tag class="tagel" @click="tagSet('同意')" type="success"
>同意</el-tag
>
<el-tag
class="tagel"
@click="tagSet('申请理由充分、同意此次申请')"
type="success"
>申请理由充分、同意此次申请</el-tag
>
<el-tag
class="tagel"
@click="tagSet('所列项目齐全符合规范要求、同意此次申请')"
type="success"
>所列项目齐全符合规范要求、同意此次申请</el-tag
>
<el-tag class="tagel" @click="tagSet('不同意')" type="danger"
>不同意</el-tag
>
<el-tag
class="tagel"
@click="tagSet('申请理由不充分、请完善后重新提交.')"
type="danger"
>申请理由不充分、请完善后重新提交.</el-tag
>
<el-tag
class="tagel"
@click="tagSet('请数量有误、请检查后修改再次提交.')"
type="danger"
>申请数量有误、请检查后修改再次提交.</el-tag
>
<el-tag
class="tagel"
@click="tagSet('其他原因、驳回.')"
type="danger"
>其他原因、驳回.</el-tag
>
<el-input
class="labelClassT"
type="textarea"
:rows="2"
placeholder="请输入审核意见"
v-model="editForm.exameReason"
></el-input>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">关闭</el-button>
<el-button v-if="auditbutton" @click="auditState(-1)" type="danger"
>不通过</el-button
>
<el-button v-if="auditbutton" @click="auditState(1)" type="success"
>通过</el-button
>
</div>
</el-dialog>
<!-- 新增/编辑 -->
<el-dialog
width="70%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm('ruleForm')"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="ruleForm"
ref="ruleForm"
label-width="100px"
style="margin-top: 10px; margin-bottom: 35px"
>
<el-row :gutter="10">
<el-col :span="8" class="dia">
<el-form class="diaC">大类选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MainClass"
filterable
clearable
style="width: 300px"
@change="getClass"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">物料选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MaterielName"
filterable
clearable
style="width: 300px"
@change="getMateriel"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">号型选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EqSizeId"
filterable
clearable
style="width: 300px"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
<el-button
size="small"
class="buttonClass"
type="primary"
icon="el-icon-circle-plus-outline"
round
@click="addEquipment"
>添加装备</el-button
>
</el-col>
<el-col :span="16" style="padding-top: 31px">
<el-table
:data="ruleForm.BorrowList"
ref="BorrowList"
height="250"
border
style="width: 100%"
>
<el-table-column
prop="MaterielId"
label="物料ID"
align="center"
v-if="false"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="LyCount"
label="装备数量"
align="center"
>
<template slot-scope="scope">
<el-input-number
v-model="scope.row.LyCount"
:min="1"
:max="200"
></el-input-number>
</template>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
@click="deleteEquipment(scope.$index, scope.row)"
icon="el-icon-delete"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10"> </el-col>
</el-row>
</el-form>
<el-divider style="margin-bottom: 35px"></el-divider>
<el-form
:model="ruleForm"
ref="ruleForm"
label-position="left"
style="margin-top: 30px"
>
<!-- class="inputClass" -->
<el-row :gutter="90" style="margin-top: 30px">
<el-col :span="8" style="padding-top: 42px">
<el-form-item style="padding-left: 12px" label="部门选择">
<treeselect
style="width: 247px; float: left; margin-left: 18px"
noOptionsText="暂无数据"
:options="departOptions"
placeholder="请选择上级部门"
:normalizer="normalizer"
@select="selectDepart"
/>
</el-form-item>
<el-form-item class="diaC"
>人员选择
<el-select
class="diaD"
v-model="ruleForm.userID"
placeholder="请选择人员"
@change="policeSelect"
>
<el-option
v-for="item in policeOptions"
:key="item.ID"
:label="item.UserName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item class="labelClass"
>备注
<el-input
type="textarea"
:autosize="{ minRows: 6, maxRows: 50 }"
v-model="ruleForm.Remarks"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm()"
>提交</el-button
>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
components: { Treeselect },
data() {
return {
loading: false,
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
DepartName: "",
UserName: "",
IsAdmin: 1,
SubmitState: "0",
SubmitUserName: "",
},
AddPlanForm: {
parentName: "",
parentId: "",
MaterielName: "",
MainClass: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
searchUserData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
DeparId: "",
},
title: "",
searchDepartmentData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
ruleForm: {
ID: 0,
PlanName: "",
PlanState: 0,
borrowType: 0,
IsHaoCai: 0,
submitUsrID: "",
submitUserName: "",
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
LyCount: 1,
},
],
},
searchClassData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
CategoryID: "",
IsHaoCai:1
},
departOptions: [],
policeOptions: [],
classOption: [],
MaterielOption: [],
sizeOption: [],
resetForm() {
(this.classOption = []),
(this.MaterielOption = []),
(this.sizeOption = []),
(this.AddPlanForm = {
parentName: "",
parentId: "",
MaterielName: "",
MainClass: "",
MaterielCode: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
}),
(this.ruleForm = {
ID: 0,
SubmitReason: "", //申请理由
Remarks: "", //备注
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
LyCount: 1,
},
],
});
},
searchMaterielData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
},
auditbutton: false,
editForm: {
ID: "",
SubmitState: 0,
exameReason: "",
},
addVisible: false,
// 日期配置
pickerOptions: {
shortcuts: [
{
text: "最近一日",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
// 用户选中日期
timeData: [],
// 时间选择器回调
options: [
{
value: "-99",
label: "全部",
},
{
value: "-2",
label: "待提交",
},
{
value: "-1",
label: "未通过",
},
{
value: "0",
label: "待审批",
},
{
value: "1",
label: "待领取",
},
{
value: "2",
label: "已领取",
},
],
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
borrowData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
normalizer(node) {
//去掉children=[]的children属性
if (node.Children && !node.Children.length) {
delete node.Children;
}
return {
id: node.ID,
//将name转换成必填的label键
label: node.DepartName,
children: node.Children,
};
},
};
},
created() {
this.searchData.SubmitState =
this.$route.query.SubmitState || this.searchData.SubmitState;
this.InitQuery();
this.getQueuData();
},
methods: {
// 获取当前选中部门的名称
async selectDepart(node) {
console.log(node);
this.AddPlanForm.parentName = node.DepartName;
this.AddPlanForm.parentId = node.ID;
this.searchUserData.DeparId = node.ID;
const { data: res } = await this.$axios.get("api/User", {
params: this.searchUserData,
});
this.policeOptions = res.Rows;
},
//获取号型的名字和ID
async getIDAndName(val) {
if (val !== "") {
var obj = {};
obj = this.sizeOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.EqSizeId = obj.ID;
this.AddPlanForm.EqSizeName = obj.EqSizeName;
this.AddPlanForm.EqSizeCode = obj.Code;
} else {
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
}
},
///提交表单
async submitForm() {
// console.log("length",)
if (this.ruleForm.BorrowList.length===0) {
return this.$message.warning("请添加装备");
}
if (!this.ruleForm.submitUsrID) {
return this.$message.warning("请选择领用人员");
}
this.ruleForm.IsHaoCai = 0;
this.ruleForm.borrowType=0;
const borrowUrl = "/api/Borrow/AdminCreateBorrow";
const { data: res } = await this.$axios.post(borrowUrl, this.ruleForm);
this.searchData.SubmitState="1"
this.getQueuData();
this.addVisible = false;
if (res.Success !== true) return this.$message.error(res.Remark);
else
{
return this.$message.success(res.Remark);
}
},
//物料选择后
async getMateriel(val) {
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
if (val !== "") {
var obj = {};
obj = this.MaterielOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.MaterielId = obj.ID;
this.AddPlanForm.MaterielCode = obj.MaterielCode;
this.AddPlanForm.MaterielName = obj.MaterielName;
this.searchMaterielData.MaterielId = val;
const { data: res } = await this.$axios.get("api/EqSize", {
params: this.searchMaterielData,
});
this.sizeOption = res.Rows;
// console.log("size",this.sizeOption)
} else {
this.sizeOption = [];
this.AddPlanForm.MaterielId = "";
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
}
},
///获取类别的ID和内容
async getClass(val) {
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
if (val !== "") {
this.searchClassData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchClassData,
});
this.MaterielOption = res.Rows;
} else {
this.sizeOption = [];
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
}
},
closeForm() {
this.resetForm();
},
//添加装备
addEquipment() {
if(this.AddPlanForm.MaterielId==="")
{
return this.$message.warning("请选择物料添加");
}
var obj = {};
var plan = {
LyCount: 1,
MainClass: this.AddPlanForm.MainClass,
MaterielName: this.AddPlanForm.MaterielName,
MaterielID: this.AddPlanForm.MaterielId,
MaterielCode: this.AddPlanForm.MaterielCode,
EqSizeId: this.AddPlanForm.EqSizeId,
EqSizeName: this.AddPlanForm.EqSizeName,
EqSizeCode: this.AddPlanForm.EqSizeCode,
};
obj = this.ruleForm.BorrowList.find(function (item) {
return item.MaterielID === plan.MaterielID;
});
console.log("添加物资", obj);
if (obj === undefined) {
this.ruleForm.BorrowList.push(plan);
// this.AddPlanForm.EqSizeId="";
// this.AddPlanForm.EqSizeName="";
} else {
this.$message.error("已经存在该物资");
}
},
//删除装备
deleteEquipment(row) {
this.ruleForm.BorrowList.splice(row, 1);
},
//下发领用
async addRecive() {
this.title = "领用下发(耗材物资)";
this.addVisible = true;
this.ruleForm.BorrowList = [];
//
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
const borrowUrl = "/api/Department/" + 0;
const { data: resdepartment } = await this.$axios.get(borrowUrl);
this.departOptions = resdepartment;
console.log("rule", this.ruleForm);
this.classOption = resclass.Rows;
},
///人员选择
policeSelect(row) {
var obj = {};
obj = this.policeOptions.find(function (item) {
return item.ID === row;
});
console.log(obj)
this.ruleForm.submitUsrID = row;
this.ruleForm.submitUserName = row;
},
///标签设置
tagSet(row) {
this.editForm.exameReason = row;
},
//获取详细列表信息
async getDetailInfo(row, type) {
if (type === 0) {
this.auditbutton = false;
} else {
this.auditbutton = true;
}
this.editForm.ID = row.ID;
console.log("type", type);
this.borrowTableVisible = true;
const borrowUrl = "/api/borrow/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.BorrowList;
this.detailData = res;
console.log("detailData", this.detailData);
},
///审核单据
async auditState(SubmitState) {
this.editForm.SubmitState = SubmitState;
this.borrowTableVisible = false;
const { data: res } = await this.$axios.post(
"/api/Borrow/ChangeState",
this.editForm
);
this.getQueuData();
if (res.Success !== true) return this.$message.error(res.Remark);
else {
return this.$message.success("审核成功");
}
},
dateChange(date) {
this.searchData.BeginTime = date ? date[0] : "";
this.searchData.EndTime = date ? date[1] : "";
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async InitQuery()
{
if(this.$route.query.options!=undefined)
{ this.searchData.SubmitState=this.$route.query.options;}
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/Borrow", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
watch: {
activeAllData: {
handler: function (newVal, oldVal) {
this.$refs.allTableRef.setCurrentRow(this.activeAllData);
},
deep: true,
},
activeGoodData: {
handler: function (newVal, oldVal) {
this.$refs.goodsTableRef.setCurrentRow(this.activeGoodData);
},
deep: true,
},
},
computed: {},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.diaC {
font-weight: 1000;
margin-left: 12px;
margin-bottom: 12px;
}
.diaD {
margin-left: 26px;
width: 247px;
}
.labelBorrow {
// float: left;
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.labelClassT {
padding-left: 14px;
}
.labelClass {
font-weight: 800;
margin-left: 12px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.buttonClass {
line-height: 0px;
text-align: center;
width: 61%;
margin-left: 29px;
height: 31px;
font-size: larger;
}
.tagel {
cursor: pointer;
margin-left: 5px;
margin-top: 5px;
margin-bottom: 5px;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
// 欢迎界面组件
<template>
<div class="body" style="margin-right: 10px;">
<div class="title_box">
<el-card
style="height: 167px; position: relative;
margin-bottom: 20px;"
>
<el-row
:gutter="40"
class="panel-group"
style="margin-left: 26px;
margin-right: -45px; "
>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col" >
<div
class="card-panel"
@click="handleSetLineChartData('newVisitis')"
>
<div class="card-panel-icon-wrapper icon-people">
<img
src="../assets/images/装备数量.png"
class="logo"
alt="logo"
/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">装备总数</div>
<count-to
:start-val="0"
:end-val="eqCount.h_EqCount"
:duration="2600"
class="card-panel-num"
/>
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData(1)">
<div class="card-panel-icon-wrapper icon-message">
<img
src="../assets/images/公共服务.png"
class="logo"
alt="logo"
/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">公共装备</div>
<count-to
:start-val="0"
:end-val="eqCount.h_EqPublicCount"
:duration="3000"
class="card-panel-num"
/>
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div
class="card-panel"
@click="handleSetLineChartData(2)"
>
<div class="card-panel-icon-wrapper icon-money">
<img
src="../assets/images/警用装备.png"
class="logo"
alt="logo"
/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">单警装备</div>
<count-to
:start-val="0"
:end-val="eqCount.h_EqPrivateCount"
:duration="3200"
class="card-panel-num"
/>
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="gotoBorrowEq('2')">
<div class="card-panel-icon-wrapper icon-return">
<img
src="../assets/images/未归还.png"
class="logo"
alt="logo"
/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">未归还</div>
<count-to
:start-val="0"
:end-val="eqCount.h_BorrowCount"
:duration="3600"
class="card-panel-num"
/>
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div
class="card-panel"
@click="gotoBorrowEq('0')"
>
<div class="card-panel-icon-wrapper icon-fix">
<img
src="../assets/images/个人干部人事档案转递审批单.png"
class="logo"
alt="logo"
/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">借用待审批</div>
<count-to
:start-val="0"
:end-val="eqCount.h_JYWaitToExamined"
:duration="3600"
class="card-panel-num"
/>
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="gotoGetEq('0')">
<div class="card-panel-icon-wrapper icon-get">
<img
src="../assets/images/53领用.png"
class="logo"
alt="logo"
/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">领用待审批</div>
<count-to
:start-val="0"
:end-val="eqCount.h_LYWaitToExamined"
:duration="3600"
class="card-panel-num"
/>
</div>
</div>
</el-col>
</el-row>
</el-card>
<el-row :gutter="20">
<el-col :span="8">
<el-card>
<span
style="
font-size: 28px;
font-weight: 800;
text-align: left;
display: block;
color: #759393;
"
>装备状态比例</span
>
<div id="pieChart" class="chartC" />
</el-card>
</el-col>
<el-col :span="16">
<el-card>
<span
style="
font-size: 28px;
font-weight: 800;
text-align: left;
display: block;
color: #759393;
"
>装备使用频率(使用量)</span
>
<div id="barChart" class="chartC" />
</el-card>
</el-col>
</el-row>
<el-card style="position: relative; top: 20px">
<span
style="
font-size: 28px;
font-weight: 800;
text-align: left;
display: block;
color: #759393;
"
>装备近期使用频率(近一周)</span
>
<div id="lineChart" class="chartC" />
</el-card>
</div>
</div>
</template>
<script>
// 引入数据分析统计图
import CountTo from "vue-count-to";
import { Chart } from "@antv/g2";
export default {
components: {
CountTo,
},
data() {
return {
pieData: [],
linedata: [],
eqCount: {},
// StateType:2,
};
},
//初始加载
mounted() {
setTimeout(() => {}, 500);
this.InitData();
this.initBar();
this.initPie();
this.initLine();
},
created() {},
methods: {
//标题图标
handleSetLineChartData( type) {
this.$router.push({
name: "equipmentManage",
query: { IsPublicType: type}
});
// this.$route.push('/borrow/user')
},
handleSetBFData( type) {
this.$router.push({
name: "equipmentManage",
query: { StateType: type}
});
// this.$route.push('/borrow/user')
},
//跳去未归还装备
gotoBorrow() {
this.$router.push({
name: "equipmentManage",
query: { StateType: '1'}
});
},
//跳去领用待审批页面
gotoGetEq(type) {
this.$router.push({
name: "userGet",
query: {
options: type,
},
});
},
//跳去借用待审批页面
gotoBorrowEq(type) {
this.$router.push({
name: "borrowGet",
query: {
options: type,
},
});
},
async InitData() {
const { data: eqclass } = await this.$axios.get("api/ChartStatistics");
this.eqCount = eqclass;
},
///折线图
async initLine() {
const { data: Lineclass } = await this.$axios.get(
"api/ChartStatistics/GetRateLine"
);
Lineclass.BorrowList.forEach((item) => {
this.linedata.push({
date: item.date,
borCount: parseInt(item.borCount),
type: "借出数",
});
});
Lineclass.RtnList.forEach((item) => {
this.linedata.push({
date: item.date,
borCount: parseInt(item.rtnCount),
type: "归还数",
});
});
//linedata
const chart = new Chart({
container: "lineChart",
autoFit: true,
height: 220,
});
chart.data(this.linedata);
chart.scale({
date: {
range: [0, 1],
},
borCount: {
nice: true,
},
});
chart.tooltip({
showCrosshairs: true,
shared: true,
});
chart.axis("borCount", {
label: {
formatter: (val) => {
return val;
},
},
});
chart
.line()
.position("date*borCount")
.color("type")
.shape("smooth");
chart
.point()
.position("date*borCount")
.color("type")
.shape("circle");
chart.render();
},
//饼图
async initPie() {
const { data: Pieclass } = await this.$axios.get(
"api/ChartStatistics/GetPie"
);
Pieclass.forEach((item) => {
this.pieData.push({
name: item.name,
value: parseInt(item.value),
bfb: parseFloat(item.bfb),
});
});
const chart = new Chart({
container: "pieChart",
autoFit: true,
height: 220,
width: 200,
});
chart.coordinate("theta", {
radius: 0.75,
});
chart.data(this.pieData);
console.log(this.pieData);
chart.scale("bfb", {
formatter: (val) => {
val = val * 100 + "%";
return val;
},
});
chart.tooltip({
showTitle: false,
showMarkers: false,
});
chart
.interval()
.position("bfb")
.color("name")
.label("bfb", {
content: (pieData) => {
return `${pieData.name}: ${pieData.bfb * 100}%`;
},
})
.adjust("stack");
chart.interaction("element-active");
chart.render();
},
async initBar() {
const { data: eqclass } = await this.$axios.get(
"api/ChartStatistics/GetEqRate"
);
const chart = new Chart({
container: "barChart",
autoFit: true,
height: 220,
});
chart.data(eqclass.Rows);
chart.scale("UseCount", {
nice: true,
});
chart.axis("MaterialName", {
label: {
rotate: 50,
},
});
chart.tooltip({
showMarkers: false,
showTitle: true,
title: (title, bardata) => bardata["MaterialName"],
});
chart.interaction("active-region");
chart.interval().position("MaterialName*UseCount");
chart.render();
},
},
};
</script>
<style scoped lang="less">
.panel-group {
.card-panel-col {
width: 16%;
}
.card-panel {
top: 12px;
height: 118px;
cursor: pointer;
font-size: 12px;
position: relative;
overflow: hidden;
color: #666;
background: #eeeeee;
box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05);
border-color: rgba(0, 0, 0, 0.05);
&:hover {
.card-panel-icon-wrapper {
color: #fff;
}
.icon-people {
background: #40c9c6;
}
.icon-message {
background: beige;
}
.icon-money {
background: #f4516c;
}
.icon-return {
background: #34bfa3;
}
.icon-fix {
background: #ecee8a;
}
.icon-get {
background: #dfab5e;
}
}
.card-panel-icon-wrapper {
float: left;
margin: 0px 0px 0px 0px;
padding: 27px;
transition: all 0.38s ease-out;
border-radius: 6px;
}
.card-panel-icon {
float: left;
font-size: 48px;
}
.card-panel-description {
float: right;
font-weight: bold;
margin: 26px;
margin-left: 0px;
.card-panel-text {
line-height: 18px;
color: rgba(0, 0, 0, 0.45);
font-size: 16px;
margin-bottom: 12px;
}
.card-panel-num {
font-size: 20px;
}
}
}
}
.chartC {
margin-top: 50px;
}
@media (max-width: 550px) {
.card-panel-description {
display: none;
width: 16%;
}
.chartTitle {
}
.card-panel-icon-wrapper {
float: none !important;
width: 100%;
height: 100%;
margin: 0 !important;
.svg-icon {
display: block;
margin: 14px auto !important;
float: none !important;
}
}
}
</style>
<template>
<el-container class="home-container">
<!-- 顶部区域 S -->
<el-header>
<!-- logo区域 -->
<div class="logo" @click="goHome()">
<img src="../assets/logo_xtj.png" alt="logo" />
<span>巡特警装备管理系统</span>
</div>
<!-- <div class="time_box">
<bo-time></bo-time>
</div> -->
<div class="right_box">
<span class="user mgr15">
<el-dropdown>
<span style="color:white;" >
<svg-icon icon-class="全屏" class="svgicon"></svg-icon>
欢迎您:{{ userData.UserName
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="person">个人中心 </el-dropdown-item>
<el-dropdown-item divided @click.native="logout"
>退出</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</span>
<!-- <a-button style="font-weight:bold;color:#fff;background: rgb(221, 115 ,37);border: 0px solid transparent;" icon="logout" @click="logout">退出</a-button> -->
</div>
</el-header>
<!-- 顶部区域 N -->
<el-container class="container_box">
<bo-big-aside
:asidList="navList"
class="one_aside"
/>
<el-container>
<el-main>
<el-row type="flex" justify="space-between">
<transition>
<router-view></router-view>
</transition>
</el-row>
</el-main>
</el-container>
</el-container>
</el-container>
</template>
<script>
import { mapState, mapMutations } from "vuex";
export default {
// 重加载事件
inject: ["reload"],
data() {
return {
// 标记
// flag: '',
// 定时器
timer: null,
};
},
created() {
this.edNav(JSON.parse(sessionStorage.getItem("navList")));
this.edUserData(JSON.parse(sessionStorage.getItem("userData")));
// 每次进入页面时将url地址存入session中
sessionStorage.setItem("activePath", this.$route.path);
// 每次进入页面时获取session中存的激活对象的index
this.edActive(sessionStorage.getItem("activePath"));
this.edActiveOnePath(`/${this.$route.path.split("/")[1]}`);
this.activeClick();
},
methods: {
// vuex方法
...mapMutations([
'edNav',
'edMenuList',
'edActive',
'edActiveOnePath',
'edActiveLine',
'edUserData'
]),
// 退出
logout() {
// 清除token并跳转回登录页面
sessionStorage.clear();
this.$router.push("/login");
},
person(){
this.$router.push({
name: "systemConfig/userInfo"
});
},
// 图标栏点击事件
activeClick(e) {
const path = e ? e.path : this.activeOnePath;
console.log('点击',e)
if (path === this.activeOnePath || !this.collapsed) {
}
this.edActiveOnePath(path);
this.navList.forEach((item) => {
if (item.path === this.activeOnePath) return this.edMenuList(item);
});
if (e === undefined || this.$route.path === e.path) return false;
},
// logo点击跳转
// 保存链接的激活状态
saveNavState(val) {
// 给active赋值
this.edActive(val);
this.edActiveLine(`/${val.split("/")[1]}`);
},
},
computed: {
// vuex数据
...mapState([
"navList",
"collapsed",
"menuList",
"active",
"activeOnePath",
"activeLine",
"userData",
]),
},
};
</script>
<style scoped lang="less">
.home-container {
height: 100%;
// 头部样式
.el-header {
// background: linear-gradient(to bottom, #344534, #284527 20%, #344534 65%, #284527 80%, #344534) !important;
background: radial-gradient(ellipse at center, #0f3854 0%, #000000 80%);
background: #04436f no-repeat 100% 100%;
// background-size: 20% 100%;
background-position: center;
display: flex;
position: fixed;
top: 0;
height: 80px !important;
width: 100%;
min-width: 1200px;
justify-content: space-between;
align-items: center;
color: #fff;
font-family: "Share Tech Mono", monospace;
font-size: 25px;
z-index: 999;
// logo样式
.logo {
display: flex;
box-sizing: border-box;
align-items: center;
cursor: pointer;
img {
display: inline-block;
width: 40px;
height: 100%;
margin-right: 15px;
}
span {
font-family: "Share Tech Mono", monospace;
font-weight: 800;
transform: skewX(-10deg);
color: #fff;
text-shadow: 0 0 20px rgba(10, 175, 230, 1),
0 0 20px rgba(10, 175, 230, 0);
}
}
// 时间
.time_box {
height: 50px;
width: 400px;
}
// 右侧功能区域
.right_box {
display: flex;
align-items: center;
}
}
}
/* 主体内容区域 */
.container_box {
box-sizing: border-box;
background: #f6f7fb;
height: 100%;
width: 100%;
padding: 80px 0px 0 173px;
.one_aside {
box-sizing: border-box;
position: fixed;
z-index: 99;
top: 30px;
left: 0;
padding-top: 50px;
padding-bottom: 10px;
width: 80px;
// background: linear-gradient(to right, #284527, #2a770d 15%, #3b4520 85%, #284527) !important;
background: radial-gradient(
ellipse at center,
#0f3854 0%,
#012a47 0%
) !important;
}
// 主体区域样式
.el-main {
margin-left: 28px;
box-sizing: border-box;
height: 100%;
width: 100%;
padding: 10px 10px 10px;
transition: all 0.2s linear 0s;
.el-row {
height: 100%;
transition: all 0.2s linear 0s;
}
}
}
// 导航栏样式
.nav_box {
height: 100%;
min-height: 650px;
padding-top: 46px;
margin-right: 3px;
background: #fff;
border-radius: 15px;
box-shadow: 0 0 6px rgba(29, 60, 13, 0.8);
user-select: none;
transition: all 0.2s linear 0s;
overflow: auto;
}
.nav_box::-webkit-scrollbar {
width: 0;
}
// 导航栏底部描述
.footer_text {
margin-top: 40px;
text-align: center;
font-size: 13px;
color: #abacaf;
}
// 选中导航的样式
.active {
background: #d6ddef;
border-left: 5px solid #232b13;
box-sizing: border-box;
color: #232b13;
transition: all 0.2s linear 0s;
}
// 当前选中的导航的图标样式
.active_path {
color: #2e6b11 !important;
}
// icon图标
.nav_icon {
font-size: 20px;
padding-right: 10px;
}
// vue动画效果方法1
.v-enter {
// transform: translateX(50px);
transform: scaleY(0.9) scaleX(0.9);
opacity: 0.6;
}
.v-enter-active {
transition: all 0.5s;
}
.v-enter-to {
// transform: translateX(0px);
transform: scaleY(1) scaleX(1);
opacity: 1;
}
.action {
cursor: pointer;
padding: 0 14px;
display: inline-block;
transition: all 0.3s;
height: 70%;
line-height: 46px;
&.action-full {
height: 100%;
}
&:hover {
background: rgba(255, 255, 255, 0.3);
}
.avatar {
margin: 20px 10px 20px 0;
color: #1890ff;
background: hsla(0, 0%, 100%, 0.85);
vertical-align: middle;
}
.icon {
font-size: 16px;
padding: 4px;
}
.anticon {
color: inherit;
}
}
.svgicon{
margin-right: 10px;
align-content: center;
}
.logout_title {
color: inherit;
text-decoration: none;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/系统日志.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">门禁操作日志</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>日志查看</el-breadcrumb-item>
<el-breadcrumb-item>门禁操作日志</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.CreateName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入操作人员名称搜索"
></el-input>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="sysytemData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
width="100"
type="index"
label="序号"
align="center"
/>
<el-table-column prop="MJCode" label="门禁编号" align="center" />
<el-table-column prop="TypeName" label="操作类型" align="center" />
<el-table-column prop="CreateName" label="操作人员" align="center">
</el-table-column>
<el-table-column prop="Contents" label="登录操作内容" align="center" />
<el-table-column prop="CreateTime" label="操作时间" align="center" />
<el-table-column fixed="right" label="操作" width="100">
<template slot-scope="scope">
<el-button
@click="getDetailInfo(scope.row)"
type="text"
style="font-size: 15px"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="照片查看" :visible.sync="picVisible" width="900px">
<img
:src="imgurl"
class="picOutIn"
width="855px"
height="512px"
alt=""
/>
<div slot="footer" class="dialog-footer">
<el-button @click="picVisible = false">关 闭</el-button>
</div>
</el-dialog>
<el-dialog title="日志详情" :visible.sync="borrowTableVisible">
<el-card>
<!-- <div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基础信息</span>
</div> -->
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">操作人员</th>
<td class="textContent">
{{ detailData.CreateName }}
</td>
<th class="textHeader">门禁编号</th>
<td colspan="5" class="textContentLast">
{{ detailData.MJCode }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">类型</th>
<td class="textContentLast">
{{ detailData.TypeName }}
</td>
<th class="textHeader">时间</th>
<td class="textContent">
{{ detailData.CreateTime }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.pageNo"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
OrderBy: "",
CreateName:"",
},
// 日期配置
pickerOptions: {
shortcuts: [{
text: '最近一日',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一周',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}]
},
// 用户选中日期
timeData: [],
// 时间选择器回调
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
sysytemData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取详细列表信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/MenJingLog/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.List;
this.detailData = res;
},
dateChange (date) {
this.searchData.BeginTime = date ? date[0] : ''
this.searchData.EndTime = date ? date[1] : ''
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async getQueuData() {
this.loading=true;
const { data: res } = await this.$axios.get("api/MenJingLog", {
params: this.searchData,
});
this.total = res.Total;
this.sysytemData = res.Rows;
this.loading=false;
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
watch: {
activeAllData: {
handler: function (newVal, oldVal) {
this.$refs.allTableRef.setCurrentRow(this.activeAllData);
},
deep: true,
},
activeGoodData: {
handler: function (newVal, oldVal) {
this.$refs.goodsTableRef.setCurrentRow(this.activeGoodData);
},
deep: true,
},
},
computed: {},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/出入库日志.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">出入库记录表</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>借用/领用管理</el-breadcrumb-item>
<el-breadcrumb-item>出入库记录</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.EquName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入装备名称搜索"
></el-input>
<el-select
v-model="searchData.Type"
class="textboxBo"
placeholder="请选择出入库类型"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<!-- <el-select
v-model="searchData.IsPubilc"
class="textboxBo"
placeholder="请选择装备类型"
>
<el-option
v-for="item in optionsEquipment"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> -->
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="EPC" v-if="false" />
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="PhotoUrl" v-if="false" />
<el-table-column
prop="Type" :formatter="stateFormat" label="类型" align="center" />
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
/>
<el-table-column prop="EqSizeName" label="号型名称" align="center" />
<el-table-column prop="EquName" label="装备名称" align="center" />
<el-table-column prop="UserName" label="出入库人员" align="center" />
<el-table-column
prop="CreateTime"
label="出入库时间"
align="center"
/>
<el-table-column fixed="right" label="照片查看" width="100px" >
<template slot-scope="scope">
<a-button
v-if="scope.row.PhotoUrl !== null"
@click="getDetailInfo(scope.row)"
type="primary"
style="font-size: 15px"
>预览</a-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="照片查看" :visible.sync="picVisible" width="900px">
<img
:src="imgurl"
class="picOutIn"
width="855px"
height="512px"
alt=""
/>
<div slot="footer" class="dialog-footer">
<el-button @click="picVisible = false">关 闭</el-button>
</div>
</el-dialog>
<el-dialog title="查看明细" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix">
<span class="labelBorrow">基础信息</span>
</div>
<!-- <label class="labelBorrow">基础信息</label>
<el-divider></el-divider> -->
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">借用人员</th>
<td class="textContent">
{{ detailData.CreateName }}
</td>
<th class="textHeader">装备总数</th>
<td class="textContent">
{{ detailData.EqCount }}
</td>
<th class="textHeader">借用状态</th>
<td class="textContentLast">
{{ detailData.BorrowStateName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">预计归还</th>
<td class="textContent">
{{ detailData.BorEndTime }}
</td>
<th class="textHeader">结束时间</th>
<td class="textContent">
{{ detailData.BorEndTime }}
</td>
<th class="textHeader">创建时间</th>
<td class="textContentLast">
{{ detailData.BorStartTime }}
</td>
</tr>
<tr>
<!-- <th class="textHeader">租借凭证</th>
<td class="textContent">
点击查看
</td> -->
<th class="textHeader">备注</th>
<td colspan="5" class="textContentLast">
{{ detailData.Remarks }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 35px">
<label class="labelBorrow">装备/装备包明细表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column prop="EqName" label="装备/装备包名称">
</el-table-column>
<el-table-column prop="StorageName" label="储位">
</el-table-column>
<el-table-column prop="StorageName" label="库位名称">
</el-table-column>
</el-table>
</template>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "DESC",
Type:"",
EquName:"",
OrderBy: "CreateTime",
},
optionsEquipment: [
{
value: "-1",
label: "全部",
},
{
value: "1",
label: "公共装备",
},
{
value: "0",
label: "个人装备",
},
],
options: [
{
value: "",
label: "全部",
},
{
value: "0",
label: "入库",
},
{
value: "1",
label: "出库",
},
{
value: "11",
label: "异常出库",
},
],
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
borrowData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.searchData.State = this.$route.query.State || this.searchData.State;
this.getQueuData();
},
methods: {
//查看照片信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.PhotoUrl;
},
///获取详细信息
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get(
"api/Borrow/GetInventoryLog",
{ params: this.searchData }
);
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
stateFormat(row) {
if (row.Type === 0) {
return "入库";
} else if(row.Type===1) {
return "出库";
}
else if(row.Type===11) {
return "异常出库";
}
else
{
return "";
}
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
},
computed: {},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/系统日志.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">手持机操作日志</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>日志查看</el-breadcrumb-item>
<el-breadcrumb-item>手持机操作日志</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.CreateName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入操作人员名称搜索"
></el-input>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="sysytemData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
width="100"
type="index"
label="序号"
align="center"
/>
<el-table-column prop="TypeName" label="操作类型" align="center" />
<el-table-column prop="CreateName" label="操作人员" align="center">
</el-table-column>
<el-table-column prop="CreateTime" label="操作时间" align="center" />
<el-table-column fixed="right" label="操作" width="100">
<template slot-scope="scope">
<el-button
@click="getDetailInfo(scope.row)"
type="text"
style="font-size: 15px"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="照片查看" :visible.sync="picVisible" width="900px">
<img
:src="imgurl"
class="picOutIn"
width="855px"
height="512px"
alt=""
/>
<div slot="footer" class="dialog-footer">
<el-button @click="picVisible = false">关 闭</el-button>
</div>
</el-dialog>
<el-dialog title="日志详情" :visible.sync="borrowTableVisible">
<el-card>
<!-- <div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基础信息</span>
</div> -->
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">操作人员</th>
<td class="textContent">
{{ detailData.CreateName }}
</td>
<th class="textHeader">操作类型</th>
<td class="textContentLast">
{{ detailData.TypeName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">操作时间</th>
<td class="textContent">
{{ detailData.CreateTime }}
</td>
</tr>
<tr>
<th class="textHeader">下载上传内容</th>
<td colspan="5" class="textContentLast">
{{ detailData.Contents }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<!-- <el-card class="box-card" style="text-align: center; margin-top: 35px">
<label class="labelBorrow">领取装备表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column
prop="MaterielCode"
label="装备名称"
>
</el-table-column>
<el-table-column prop="MaterielCode" label="装备编码" >
</el-table-column>
<el-table-column prop="LyCount" label="领用数量">
</el-table-column>
</el-table>
</template>
</el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.pageNo"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
OrderBy: "",
CreateName:"",
// UserName: "0",
// IsAdmin: -1,
// SubmitState: "-99",
// SubmitUserName:"",
},
// 日期配置
pickerOptions: {
shortcuts: [{
text: '最近一日',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一周',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}]
},
// 用户选中日期
timeData: [],
// 时间选择器回调
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
sysytemData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取详细列表信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/MoblieLog/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.List;
this.detailData = res;
},
dateChange (date) {
this.searchData.BeginTime = date ? date[0] : ''
this.searchData.EndTime = date ? date[1] : ''
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async getQueuData() {
this.loading=true;
const { data: res } = await this.$axios.get("api/MoblieLog", {
params: this.searchData,
});
this.total = res.Total;
this.sysytemData = res.Rows;
this.loading=false;
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
watch: {
activeAllData: {
handler: function (newVal, oldVal) {
this.$refs.allTableRef.setCurrentRow(this.activeAllData);
},
deep: true,
},
activeGoodData: {
handler: function (newVal, oldVal) {
this.$refs.goodsTableRef.setCurrentRow(this.activeGoodData);
},
deep: true,
},
},
computed: {},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/系统日志.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">领用日志</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>日志查看</el-breadcrumb-item>
<el-breadcrumb-item>领用日志</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.SubmitUserName"
@keypress.native.enter="onEnterPress"
clearable
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入人员搜索"
></el-input>
<el-select
v-model="searchData.SubmitState"
class="textboxBo"
placeholder="请选择状态"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-form-item class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="sysytemData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column
width="100"
type="index"
label="序号"
align="center"
/>
<el-table-column prop="MaterielName" label="装备" align="center" />
<el-table-column prop="MaterielCode" label="编码" align="center" />
<el-table-column prop="LyCount" label="数量" align="center" />
<el-table-column
prop="SubmitUserName"
label="申请人"
align="center"
/>
<el-table-column prop="SubmitStateName" label="状态" align="center" />
<el-table-column prop="SubmitTime" label="申请时间" align="center" />
<el-table-column
prop="SubmitUserName"
label="审核人"
align="center"
/>
<el-table-column
prop="ExamineStateName"
label="审核状态"
align="center"
/>
<el-table-column prop="LyTime" label="领用时间" align="center" />
<el-table-column
fixed="right"
label="操作"
width="100"
align="center"
>
<template slot-scope="scope">
<el-button
@click="getDetailInfo(scope.row)"
type="text"
style="font-size: 15px"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="照片查看" :visible.sync="picVisible" width="900px">
<img
:src="imgurl"
class="picOutIn"
width="855px"
height="512px"
alt=""
/>
<div slot="footer" class="dialog-footer">
<el-button @click="picVisible = false">关 闭</el-button>
</div>
</el-dialog>
<el-dialog title="日志详情" :visible.sync="borrowTableVisible">
<el-card>
<!-- <div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基础信息</span>
</div> -->
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">申请原因</th>
<td class="textContent">
{{
detailData.SubmitReason ? detailData.SubmitReason : ""
}}
</td>
<th class="textHeader">申请时间</th>
<td class="textContentLast">
{{ detailData.SubmitTime ? detailData.SubmitTime : "" }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核人</th>
<td class="textContent">
{{
detailData.ExamineUserName
? detailData.ExamineUserName
: ""
}}
</td>
<th class="textHeader">审核理由</th>
<td class="textContentLast">
{{ detailData.ExameReason ? detailData.ExameReason : "" }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核时间</th>
<td class="textContent">
{{ detailData.ExamineTime ? detailData.ExamineTime : "" }}
</td>
<th class="textHeader">领用时间</th>
<td class="textContentLast">
{{ detailData.LyTime ? detailData.LyTime : "" }}
</td>
</tr>
<tr >
<th class="textHeader">状态</th>
<td class="textContent">
{{
detailData.SubmitStateName
? detailData.SubmitStateName
: ""
}}
</td>
<th class="textHeader">备注</th>
<td class="textContentLast">
{{ detailData.Remarks ? detailData.Remarks : "" }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card class="box-card" style="text-align: center; margin-top: 35px">
<label class="labelBorrow">领取装备表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column
prop="MaterielName"
label="装备名称"
align="center"
>
</el-table-column>
<el-table-column prop="MaterielCode" label="装备编码" align="center" >
</el-table-column>
<el-table-column prop="LyCount" label="领用数量" align="center">
</el-table-column>
</el-table>
</template>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.pageNo"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
OrderBy: "",
// UserName: "0",
// IsAdmin: -1,
// SubmitState: "-99",
// SubmitUserName:"",
},
// 日期配置
pickerOptions: {
shortcuts: [
{
text: "最近一日",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
// 用户选中日期
timeData: [],
// 时间选择器回调
options: [
{
value: "-99",
label: "全部",
},
{
value: "-2",
label: "待提交",
},
{
value: "-1",
label: "未通过",
},
{
value: "0",
label: "待审批",
},
{
value: "1",
label: "待领取",
},
{
value: "2",
label: "已领取",
},
],
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
sysytemData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取详细列表信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/Lx_LingYong/" + row.LID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.LingYongList?res.LingYongList:[];
this.detailData = res;
},
dateChange(date) {
this.searchData.BeginTime = date ? date[0] : "";
this.searchData.EndTime = date ? date[1] : "";
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get(
"api/LingYongList/GetLingYongLog",
{
params: this.searchData,
}
);
this.total = res.Total;
this.sysytemData = res.Rows;
this.loading = false;
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
watch: {
activeAllData: {
handler: function(newVal, oldVal) {
this.$refs.allTableRef.setCurrentRow(this.activeAllData);
},
deep: true,
},
activeGoodData: {
handler: function(newVal, oldVal) {
this.$refs.goodsTableRef.setCurrentRow(this.activeGoodData);
},
deep: true,
},
},
computed: {},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/系统日志.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">系统日志</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>日志查看</el-breadcrumb-item>
<el-breadcrumb-item>系统日志</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<!-- <el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.SubmitUserName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入人员搜索"
></el-input>
<el-select
v-model="searchData.SubmitState"
class="textboxBo"
placeholder="请选择借用类型"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-form-item label="时间节点 :" class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form> -->
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="sysytemData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
width="100"
type="index"
label="序号"
align="center"
/>
<el-table-column prop="TypeName" label="操作类型" align="center" />
<el-table-column prop="CreateName" label="操作人员" align="center">
</el-table-column>
<el-table-column prop="CreateTime" label="操作时间" align="center" />
<el-table-column fixed="right" label="操作" width="100">
<template slot-scope="scope">
<el-button
@click="getDetailInfo(scope.row)"
type="text"
style="font-size: 15px"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="照片查看" :visible.sync="picVisible" width="900px">
<img
:src="imgurl"
class="picOutIn"
width="855px"
height="512px"
alt=""
/>
<div slot="footer" class="dialog-footer">
<el-button @click="picVisible = false">关 闭</el-button>
</div>
</el-dialog>
<el-dialog title="日志详情" :visible.sync="borrowTableVisible">
<el-card>
<!-- <div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基础信息</span>
</div> -->
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">操作人员</th>
<td class="textContent">
{{ detailData.CreateName }}
</td>
<th class="textHeader">操作类型</th>
<td class="textContentLast">
{{ detailData.TypeName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">操作时间</th>
<td class="textContent">
{{ detailData.CreateTime }}
</td>
</tr>
<tr>
<th class="textHeader">申请理由</th>
<td colspan="5" class="textContentLast">
{{ detailData.Remarks }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<!-- <el-card class="box-card" style="text-align: center; margin-top: 35px">
<label class="labelBorrow">领取装备表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column
prop="MaterielCode"
label="装备名称"
>
</el-table-column>
<el-table-column prop="MaterielCode" label="装备编码" >
</el-table-column>
<el-table-column prop="LyCount" label="领用数量">
</el-table-column>
</el-table>
</template>
</el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.pageNo"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
OrderBy: "",
// UserName: "0",
// IsAdmin: -1,
// SubmitState: "-99",
// SubmitUserName:"",
},
// 日期配置
pickerOptions: {
shortcuts: [{
text: '最近一日',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一周',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}]
},
// 用户选中日期
timeData: [],
// 时间选择器回调
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
sysytemData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取详细列表信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/SystemLog/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.List;
this.detailData = res;
},
dateChange (date) {
this.searchData.BeginTime = date ? date[0] : ''
this.searchData.EndTime = date ? date[1] : ''
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async getQueuData() {
this.loading=true;
const { data: res } = await this.$axios.get("api/SystemLog", {
params: this.searchData,
});
this.total = res.Total;
this.sysytemData = res.Rows;
this.loading=false;
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
watch: {
activeAllData: {
handler: function (newVal, oldVal) {
this.$refs.allTableRef.setCurrentRow(this.activeAllData);
},
deep: true,
},
activeGoodData: {
handler: function (newVal, oldVal) {
this.$refs.goodsTableRef.setCurrentRow(this.activeGoodData);
},
deep: true,
},
},
computed: {},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="login_container" @keyup.enter="loginClick()">
<div class="des_box">
<img :src="require('@icons/logo_xtj.png')" />
<div class="title">巡特警装备管理系统</div>
</div>
<dv-border-box-12
:color="['#fff', '#fff']"
style="
width: 450px;
height: 320px;
display: block;
float: right;
margin-right: 220px;
margin-top: 390px;
background: #ffffff;
"
>
<span
style="
font-size: 25px;
color: rgb(64 158 255);
padding: 0px 172px;
display: inline-block;
margin-top: 20px;
"
>用户登录</span
>
<el-form
class="login_form"
:model="loginForm"
:rules="loginFormRules"
ref="loginFormRef"
>
<el-form-item>
<el-input
v-model="loginForm.UserAccount"
style="width: 350px"
placeholder="请输入登录ID"
>
<i slot="prefix">
<img src="@icons/user.png" alt="" />
</i>
</el-input>
</el-form-item>
<el-form-item>
<el-input
:type="passHandel"
v-model="loginForm.UserPassword"
style="width: 350px"
placeholder="请输入密码"
>
<i slot="prefix">
<img src="@icons/mima.png" alt="" />
</i>
<i class="sye" slot="suffix" @click="pasClick()">
<img :src="imgUrl" alt="" />
</i>
</el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" style="width: 350px" @click="loginClick()"
>登录</el-button
>
</el-form-item>
</el-form>
</dv-border-box-12>
</div>
</template>
<script>
import { mapState, mapMutations } from "vuex";
import borrowicon from "../../assets/images/储位.png";
import Background from "../../assets/images/bglogin.jpg";
export default {
data() {
return {
// 登录数据
loginForm: {
username: "admin",
password: "123456",
},
// 验证规则
loginFormRules: {
// 用户名与密码的验证规则
username: [
{ required: true, message: "请输入登录名称", trigger: "blur" },
{
min: 3,
max: 12,
message: "长度在 3 到 12 个字符",
trigger: "blur",
},
],
password: [
{ required: true, message: "请输入密码", trigger: "blur" },
{
min: 6,
max: 22,
message: "长度在 6 到 22 个字符",
trigger: "blur",
},
],
},
// 密码显示控制
passHandel: "password",
// 密码图标转换
imgUrl: require("@icons/yingcang.png"),
navList: [
{
id: 0,
path: "/index",
menuName: "首页",
icon: "首页",
},
{
id: 1,
path: "/borrow",
menuName: "借用/领用管理",
icon: "资源借用",
children: [
{
id: 1 - 1,
path: "/borrow/userGet",
menuName: "领用管理",
icon: "资产领用",
},
{
id: 1 - 2,
path: "/borrow/borrowGet",
menuName: "借用管理",
icon: "i_3盘盒借用",
}
],
},
{
id: 2,
path: "/baseInfo",
menuName: "基础信息",
icon: "基础信息",
children: [
{
id: 2 - 1,
path: "/baseInfo/equipmentManage",
menuName: "装备管理",
icon: "物料管理",
},
{
id: 2 - 2,
path: "/baseInfo/equipmentType",
menuName: "装备类别",
icon: "类别",
},
{
id: 2 - 3,
path: "/baseInfo/Materiel",
menuName: "物料管理",
icon: "物料管理",
},
{
id: 2 - 4,
path: "/baseInfo/size",
menuName: "号型管理",
icon: "型号",
},
],
},
{
id: 3,
path: "/warehouse",
menuName: "仓库管理",
icon: "仓库",
children: [
{
id: 3 - 1,
path: "/warehouse/storehouse",
menuName: "库房管理",
icon: "库房",
},
{
id: 3 - 2,
path: "/warehouse/cabinet",
menuName: "储位管理",
icon: "储位",
},
{
id: 3 - 3,
path: "/warehouse/emergencyPlan",
menuName: "预案管理",
icon: "预案管理",
},
{
id: 3 - 4,
path: "/warehouse/warehouseInventory",
menuName: "仓库盘点",
icon: "盘点",
},
],
},
{
id: 4,
path: "/log",
menuName: "日志查看",
icon: "日志",
children: [
{
id: 4 - 1,
path: "/log/outinLog",
menuName: "出入库日志",
icon: "出入库记录",
},
{
id: 4 - 2,
path: "/log/systemLog",
menuName: "系统日志",
icon: "系统日志",
},
{
id:4 - 3,
path: "/log/doorLog",
menuName: "门禁操作日志",
icon: "门禁日志",
},
],
},
{
id: 5,
path: "/statistics",
menuName: "统计信息",
icon: "统计计算",
children: [
{
id: 5 - 1,
path: "/statistics/stock",
menuName: "库存情况",
icon: "库存情况",
},
],
},
{
id: 6,
path: "/systemConfig",
menuName: "系统设置",
icon: "系统设置",
children: [
{
id: 6 - 1,
path: "/systemConfig/department",
menuName: "部门管理",
icon: "部门",
},
{
id: 6 - 2,
path: "/systemConfig/policeType",
menuName: "警种管理",
icon: "警种管理",
},
{
id: 6 - 3,
path: "/systemConfig/police",
menuName: "人员设置",
icon: "人员设置",
},
],
},
// {
// id: 6,
// path: "/data",
// menuName: "大屏投影",
// icon: "iconfont icon-paihangbang",
// },
],
ruleNavList: [
{
id: 0,
path: "/systemConfig",
menuName: "个人中心",
icon: "个人中心",
children: [
{
id: 0 - 1,
path: "/systemConfig/receiveApply",
menuName: "领用申请",
icon: "领用申请",
},
{
id: 0 - 2,
path: "/systemConfig/borrowApply",
menuName: "借用申请",
icon: "i_3盘盒借用",
},
{
id: 0 - 3,
path: "/systemConfig/equipmentInfo",
menuName: "装备信息",
icon: "装备信息",
},
],
},
],
};
},
methods: {
// vuex方法
// ...mapMutations([
// 'edActive',
// 'edSider',
// 'edNav',
// 'edType',
// 'edCategoryCodeList'
// ]),
// 登录
loginClick() {
this.$refs.loginFormRef.validate(async (flag) => {
// 登录验证
if (!flag) return;
const formData = new FormData();
formData.append("UserAccount", this.loginForm.UserAccount);
formData.append("UserPassword", this.loginForm.UserPassword);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
const { data: res } = await this.$axios.post(
"/api/Auth",
formData,
config
);
// token
console.log("res", res);
if (res.Success == true) {
window.sessionStorage.setItem("token", res.Info);
// 用户信息
window.sessionStorage.setItem("userData", JSON.stringify(res));
// 菜单列表
if (res.State == 1) {
window.sessionStorage.setItem(
"navList",
JSON.stringify(this.navList)
);
this.$router.push("/index");
} else {
window.sessionStorage.setItem(
"navList",
JSON.stringify(this.ruleNavList)
);
this.$router.push("/systemConfig/userInfo"); //第一个跳转页面
}
// this.$message.success("登录成功");
} else {
this.$message.warning("账号密码错误");
}
});
},
// 密码显示
pasClick() {
this.passHandel = this.passHandel === "password" ? "" : "password";
this.imgUrl =
this.passHandel !== "password"
? require("@icons/xianshi.png")
: require("@icons/yingcang.png");
},
// 重置
infoForm() {
this.$refs.loginFormRef.resetFields();
},
//错误提示
// cmsFailed(err) {
// this.$notification['error']({
// message: "验证错误",
// description: err,
// duration: 4,
// });
// },
// },
},
computed: {
// vuex数据
// ...mapState(['navList'])
},
};
</script>
<style scoped lang="less">
/deep/ .el-input__inner {
height: 50px;
line-height: 50px;
}
.login_container {
height: 100%;
width: 100%;
height: 100vh;
background-image: url("../../assets/images/xtj_bags.jpg");
background-size: 100% 100%;
position: absolute; //绝对定位
align-content: center;
}
.login_font {
position: absolute;
z-index: 99999;
right: 30.875rem;
top: 25rem;
}
.login_input {
position: absolute;
right: 0px;
width: 100%;
top: 16.94rem;
}
.login_button {
position: absolute;
z-index: 9999;
right: 36.6875rem;
top: 31.5rem;
cursor: pointer;
}
.login_box {
width: 450px;
height: 400px;
background: #fff;
border-radius: 4px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
// border: 1px solid #000;
box-shadow: 0 0 6px rgba(136, 223, 248, 0.8);
}
// 头像框
.avatar_box {
position: absolute;
left: 50%;
transform: translate(-50%, -50%);
width: 130px;
height: 130px;
border: 1px solid #eee;
border-radius: 50%;
padding: 10px;
background: #fff;
box-shadow: 0 2px 6px rgba(136, 223, 248, 0.8);
img {
width: 100%;
height: 100%;
border-radius: 50%;
background: #cccccc;
}
}
// 信息描述
.des_box {
position: absolute;
top: 200px;
left: 76%;
transform: translateX(-50%);
text-align: center;
user-select: none;
.title {
font-size: 24px;
font-weight: 700;
background: linear-gradient(to right, #f8f8f8, rgb(254, 255, 255));
transform: skewX(-15deg);
-webkit-background-clip: text;
color: transparent;
}
.banben {
padding: 7px;
color: #929292;
}
}
// 登录
.login_form {
width: 350px;
margin-left: 50px;
margin-top: 30px;
box-sizing: border-box;
}
.btns {
display: flex;
justify-content: flex-end;
}
i {
display: flex;
flex-flow: column nowrap;
justify-content: center;
height: 100%;
margin: 0 5px;
img {
width: 15px;
}
}
.sye {
cursor: pointer;
zoom: 1.4;
}
/deep/.el-input__inner {
background: transparent;
color: rgb(0, 0, 0);
font-size: 18px;
border-color: #1e67ab;
border-style: solid;
border-width: 2px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/系统日志.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">库存情况</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>统计信息</el-breadcrumb-item>
<el-breadcrumb-item>库存情况</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.MaterialName"
@keypress.native.enter="onEnterPress"
clearable
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入物料名称"
></el-input>
<el-select
v-model="searchData.LibraryID"
class="textboxBo"
placeholder="请选择仓库"
filterable
clearable
>
<el-option
v-for="item in warehouseOptions"
:key="item.LibraryID"
:label="item.LibaryName"
:value="item.LibraryID"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="sysytemData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column
width="100"
type="index"
label="序号"
align="center"
/>
<el-table-column prop="CategoryName" label="装备大类" align="center" />
<el-table-column prop="MaterielName" label="物料名称" align="center" />
<el-table-column prop="MaterielCode" label="物料编码" align="center" />
<el-table-column prop="EqTotalCount" label="装备总数" align="center" />
<el-table-column prop="InStoreCount" label="装备在库数" align="center" />
<el-table-column prop="OutOfStoreCount" label="装备出库数" align="center" />
<el-table-column prop="ResCount" label="装备已注册" align="center" />
<el-table-column prop="LibaryName" label="仓库名称" align="center" />
<el-table-column prop="Storage" label="库 位" align="center" />
<el-table-column
fixed="right"
label="操作"
width="100"
align="center"
v-if="false"
>
<template slot-scope="scope" v-if="false">
<el-button
@click="getDetailInfo(scope.row)"
type="text"
style="font-size: 15px"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.pageNo"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ASC",
OrderBy: "",
MaterialName:"",
},
warehouseOptions:[],
searchWarehouseData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
// 日期配置
pickerOptions: {
shortcuts: [
{
text: "最近一日",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
// 用户选中日期
timeData: [],
// 时间选择器回调
options: [
{
value: "-99",
label: "全部",
},
{
value: "-2",
label: "待提交",
},
{
value: "-1",
label: "未通过",
},
{
value: "0",
label: "待审批",
},
{
value: "1",
label: "待领取",
},
{
value: "2",
label: "已领取",
},
],
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: [],
imgurl: [],
sysytemData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取详细列表信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/ChartStatistics/GetStock/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.List?res.List:[];
this.detailData = res.lymodel ? res.lymodel : [];
},
dateChange(date) {
this.searchData.BeginTime = date ? date[0] : "";
this.searchData.EndTime = date ? date[1] : "";
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async getQueuData() {
this.warehouseOptions=[];
this.loading = true;
const { data: res } = await this.$axios.get(
"api/ChartStatistics/GetStock",
{
params: this.searchData,
}
);
const { data: warehouseres } = await this.$axios.get(
"api/Libary",
{
params: this.searchWarehouseData,
}
);
warehouseres.Rows.forEach((item) => {
this.warehouseOptions.push({
LibaryName: item.LibaryName,
LibraryID: item.ID,
});
});
this.total = res.Total;
this.sysytemData = res.Rows;
this.loading = false;
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
computed: {},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/借用.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">借用申请</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>系统设置 </el-breadcrumb-item>
<el-breadcrumb-item>借用申请</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-select
class="textboxBo"
v-model="searchData.SubmitState"
filterable
clearable
placeholder="请选择状态"
>
<el-option
v-for="item in SubmitState"
:key="item.ID"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-form-item label="时间节点 :" class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addHCRecive()"
>耗材借用申请</el-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px; margin-right: 20px"
class="funcButton"
@click="addNHCRecive()"
>非耗材借用申请</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="materielData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column
prop="IsHaoCai"
:formatter="stateFormat"
label="单据类型"
align="center"
>
</el-table-column>
<el-table-column prop="SubmitTime" label="申请时间" align="center">
</el-table-column>
<el-table-column prop="ExamineUserName" label="审核人" align="center">
</el-table-column>
<el-table-column prop="ExameReason" label="审核理由" align="center">
</el-table-column>
<el-table-column prop="ExamineTime" label="审核时间" align="center" />
<el-table-column prop="LyTime" label="借用时间" align="center">
</el-table-column>
<el-table-column prop="SubmitStateName" label="状态" align="center">
</el-table-column>
<el-table-column prop="Remarks" label="备注" align="center">
</el-table-column>
<el-table-column prop="SubmitReason" label="申请原因" align="center">
</el-table-column>
<el-table-column
label="操作"
align="left"
fixed="right"
width="240px"
prop="SubmitState"
>
<template v-slot="scope">
<a-button
type="primary"
ghost
round
size="small"
@click="getDetailInfo(scope.row)"
>查看</a-button
>
<a-button
v-if="[-2, -1].includes(scope.row.SubmitState)"
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
v-if="[-2].includes(scope.row.SubmitState)"
ghost
round
size="small"
@click="Submit(scope.row, 0)"
>提交</a-button
>
<a-button
type="primary"
class="actions"
v-if="scope.row.SubmitState === 0"
ghost
round
size="small"
@click="Submit(scope.row, -2)"
>撤销</a-button
>
<a-button
v-if="[-2, 0].includes(scope.row.SubmitState)"
type="primary"
ghost
round
size="small"
@click="deleteClick(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog title="借用申请查看" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基本信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
size="small"
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody line-height:1>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">申请原因</th>
<td class="textContent">
{{ detailData.SubmitReason }}
</td>
<th class="textHeader">申请时间</th>
<td class="textContent">
{{ detailData.SubmitTime }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">状 态</th>
<td class="textContent">
{{ detailData.SubmitStateName }}
</td>
<th class="textHeader">备 注</th>
<td class="textContent">
{{ detailData.Remarks }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核人</th>
<td class="textContent">
{{ detailData.ExamineUserName }}
</td>
<th class="textHeader">审核理由:</th>
<td class="textContent">
{{ detailData.ExameReason }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核时间</th>
<td class="textContent">
{{ detailData.ExamineTime }}
</td>
<th class="textHeader">借用时间</th>
<td class="textContent">
{{ detailData.LyTime }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card
v-if="HCShow"
class="box-card"
style="text-align: center; margin-top: 35px"
>
<label class="labelBorrow">借用装备表(耗材)</label>
<el-divider></el-divider>
<template>
<el-table :data="HctableData" border class="details">
<el-table-column
prop="MaterielName"
label="装备大类"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="装备物料"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="装备名称"
align="center"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="装备号型"
align="center"
>
</el-table-column>
</el-table>
</template>
</el-card>
<el-card
v-if="NHCShow"
class="box-card"
style="text-align: center; margin-top: 35px"
>
<label class="labelBorrow">借用装备表(非耗材)</label>
<el-divider></el-divider>
<template>
<el-table :data="NHctableData" border class="details">
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="NameAndCode"
label="装备名称"
align="center"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
</el-table>
</template>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 新增/编辑 非耗材-->
<el-dialog
width="70%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm('ruleForm')"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
style="margin-top: 10px; margin-bottom: 35px"
>
<el-row :gutter="10">
<el-col :span="8" class="dia">
<el-form class="diaC">大类选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MainClass"
filterable
clearable
style="width: 300px"
@change="getClass($event, 'nhc')"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">物料选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MaterielName"
filterable
clearable
style="width: 300px"
@change="getMateriel"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">号型选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EqSizeId"
filterable
clearable
style="width: 300px"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">装备选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EquipmentId"
filterable
clearable
style="width: 300px"
@change="getEquipment"
placeholder="请选择具体装备"
>
<el-option
v-for="item in eqOption"
:key="item.ID"
:label="item.NameAndCode"
:value="item.ID"
>
</el-option>
</el-select>
<el-button
size="small"
class="buttonClass"
type="primary"
icon="el-icon-circle-plus-outline"
round
@click="addEquipment"
>添加装备</el-button
>
</el-col>
<el-col :span="16" style="padding-top: 31px">
<el-table
:data="ruleForm.BorrowList"
ref="BorrowList"
height="250"
border
style="width: 100%"
>
<el-table-column
prop="MaterielID"
label="物料ID"
align="center"
v-if="false"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="NameAndCode"
label="装备名称"
align="center"
>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
@click="deleteEquipment(scope.$index, scope.row)"
icon="el-icon-delete"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10"> </el-col>
</el-row>
</el-form>
<el-divider></el-divider>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
style="margin-top: 10px"
>
<!-- class="inputClass" -->
<el-row :gutter="90" style="margin-top: 30px">
<el-col :span="6">
<el-form-item label="申请原因" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="ruleForm.SubmitReason"
></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="备注" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="ruleForm.Remarks"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 新增/编辑 耗材-->
<el-dialog
width="70%"
:close-on-click-modal="false"
:title="title"
:visible.sync="HCVisible"
@close="closeForm()"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="HCruleForm"
:rules="rules"
ref="HCruleForm"
label-width="100px"
style="margin-top: 10px; margin-bottom: 35px"
>
<el-row :gutter="10">
<el-col :span="8" class="dia">
<el-form class="diaC">大类选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MainClass"
filterable
clearable
style="width: 300px"
@change="getClass($event, 'hc')"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">物料选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MaterielName"
filterable
clearable
style="width: 300px"
@change="getMateriel"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">号型选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EqSizeId"
filterable
clearable
style="width: 300px"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
<el-button
size="small"
class="buttonClass"
type="primary"
icon="el-icon-circle-plus-outline"
round
@click="addHCEquipment"
>添加装备</el-button
>
</el-col>
<el-col :span="16" style="padding-top: 31px">
<el-table
:data="HCruleForm.BorrowList"
ref="BorrowList"
height="250"
border
style="width: 100%"
>
<el-table-column
prop="MaterielID"
label="物料ID"
align="center"
v-if="false"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="LyCount"
label="装备数量"
align="center"
>
<template slot-scope="scope">
<el-input-number
v-model="scope.row.LyCount"
:min="1"
:max="200"
></el-input-number>
</template>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
@click="deleteHCEquipment(scope.$index, scope.row)"
icon="el-icon-delete"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10"> </el-col>
</el-row>
</el-form>
<el-divider></el-divider>
<el-form
:model="HCruleForm"
:rules="rules"
ref="HCruleForm"
label-width="100px"
style="margin-top: 10px"
>
<!-- class="inputClass" -->
<el-row :gutter="90" style="margin-top: 30px">
<el-col :span="6">
<el-form-item label="申请原因" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="HCruleForm.SubmitReason"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="HCruleForm.Remarks"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="HCVisible = false">取 消</el-button>
<el-button type="primary" @click="HcsubmitForm('HCruleForm', title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import { quillEditor, Quill } from "vue-quill-editor";
// import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
const Font = Quill.import("attributors/style/font"); // 引入这个后会把样式写在style上
const fonts = ["SimSun", "SimHei", "Microsoft-YaHei", "KaiTi", "FangSong"];
import { mapState } from "vuex";
export default {
components: { quillEditor },
data() {
return {
SubmitState: [
{
value: "-3",
label: "全部",
},
{
value: "-2",
label: "待提交",
},
{
value: "-1",
label: "未通过",
},
{
value: "0",
label: "待审批",
},
{
value: "1",
label: "待借出",
},
{
value: "2",
label: "已借出",
},
{
value: "3",
label: "已归还",
},
],
HCVisible: false,
// 用户选中日期
timeData: [],
// 日期配置
pickerOptions: {
shortcuts: [
{
text: "最近一日",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
HCShow: false,
NHCShow: false,
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
SubmitState: "", //审核状态
SubmitUsrID: "", //登录账号ID
BeginTime: "",
EndTime: "",
BorrowType: 1,
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
searchClassData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
CategoryID: "",
IsHaoCai: 0,
},
searchEquipmentData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
EqSizeId: "",
},
classOption: [],
MaterielOption: [],
sizeOption: [],
eqOption: [],
ruleForm: {
IsHaoCai: 1,
ID: 0,
PlanName: "",
PlanState: 0,
borrowType: 1,
LabelEpc: "",
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
EquipmentId: "",
LyCount: 1,
EquipmentId: "",
NameAndCode: "",
},
],
},
HCruleForm: {
IsHaoCai: 1,
borrowType: 1,
ID: 0,
PlanName: "",
PlanState: 0,
LabelEpc: "",
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
EquipmentId: "",
LyCount: 1,
EquipmentId: "",
NameAndCode: "",
},
],
},
AddPlanForm: {
MaterielName: "",
MainClass: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
NameAndCode: "",
LabelEpc: "",
EquipmentId: "",
},
resetForm() {
(this.eqOption = []),
(this.classOption = []),
(this.MaterielOption = []),
(this.sizeOption = []),
(this.AddPlanForm = {
MaterielName: "",
MainClass: "",
MaterielCode: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
EquipmentId: "",
}),
(this.ruleForm = {
ID: 0,
SubmitReason: "", //申请理由
Remarks: "", //备注
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
LyCount: 1,
EquipmentId: "",
NameAndCode: "",
},
],
});
this.HCruleForm = {
ID: 0,
SubmitReason: "", //申请理由
Remarks: "", //备注
IsHaoCai: 1,
borrowType: 1,
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
LyCount: 1,
EquipmentId: "",
NameAndCode: "",
},
],
};
},
borrowGet:"",
title: "",
fixData: {
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
editForm: {
ID: "",
SubmitState: 0,
},
addVisible: false,
borrowTableVisible: false,
detailData: {},
fixdetailData: [],
loading: false,
tabLoading: false,
src: "../assets/images/记录.png",
activeName: "first",
rules: {
CategoryID: [
{ required: true, message: "请选择物料类型", trigger: "change" },
],
Code: [
{
required: true,
message: "请输入编码",
trigger: "blur",
},
{ min: 1, message: "请输入编码", trigger: "blur" },
],
MaterielName: [
{
required: true,
message: "请输入物料名称",
trigger: "blur",
},
{ min: 1, message: "请输入物料名称", trigger: "blur" },
],
Unit: [
{
required: true,
message: "请输入物料单位",
trigger: "blur",
},
{ min: 1, message: "请输入物料单位", trigger: "blur" },
],
},
searchMaterielData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
},
EditRuleForm: {
ID: "",
CategoryName: "",
TermDays: 0,
Code: "",
PlanName: "",
MaterielName: "",
Unit: "",
CategoryID: "",
EqCount: "",
IsHaoCai: 1,
Storage: "",
Instructions: "",
WeiXiuCL: "",
BaoYangCL: "",
Remarks: "",
},
materielData: [],
HctableData: [],
NHctableData: [],
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
computed: {
// vuex数据
...mapState(["userData"]),
},
created() {
this.getQueuData();
},
methods: {
dateChange(date) {
this.searchData.BeginTime = date ? date[0] : "";
this.searchData.EndTime = date ? date[1] : "";
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//查看信息
check(row) {
this.borrowTableVisible = true;
this.detailData = row;
},
//新增耗材申请
async addHCRecive() {
this.title = "耗材借用申请";
this.HCVisible = true;
this.HCruleForm.BorrowList = [];
// console.log("rule",this.ruleForm)
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//新增借用申请
async addNHCRecive() {
this.title = "非耗材借用申请";
this.addVisible = true;
this.ruleForm.BorrowList = [];
// console.log("rule",this.ruleForm)
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//编辑信息
async edit(row) {
console.log(row);
if (row.IsHaoCai === 0) {
//非耗材
this.addVisible = true;
this.title = "修改非耗材借用申请";
this.addVisible = true;
var url = "api/Borrow/" + row.ID;
const { data: res } = await this.$axios.get(url);
this.ruleForm = JSON.parse(JSON.stringify(res));
// console.log("rule",this.ruleForm)
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
} else {
//耗材
this.title = "修改耗材借用申请";
this.HCVisible = true;
var url = "api/Borrow/" + row.ID;
const { data: res } = await this.$axios.get(url);
this.HCruleForm = JSON.parse(JSON.stringify(res));
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
}
},
//获取号型
async getMateriel(val) {
this.sizeOption = [];
this.eqOption = [];
this.AddPlanForm.EquipmentId = "";
this.AddPlanForm.NameAndCode = "";
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
this.searchMaterielData.MaterielId = val;
if (val !== "") {
var obj = {};
obj = this.MaterielOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.MaterielId = obj.ID;
this.AddPlanForm.MaterielCode = obj.MaterielCode;
this.AddPlanForm.MaterielName = obj.MaterielName;
this.searchEquipmentData.MaterielId = obj.ID;
const { data: res } = await this.$axios.get("api/EqSize", {
params: this.searchMaterielData,
});
const { data: eqres } = await this.$axios.get("api/Equipment", {
params: this.searchEquipmentData,
});
this.sizeOption = res.Rows;
this.eqOption = eqres.Rows;
// console.log("size",this.sizeOption)
} else {
this.MaterielOption = [];
this.eqOption = [];
this.sizeOption = [];
this.AddPlanForm.MaterielID = "";
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
this.AddPlanForm.EquipmentId = "";
this.AddPlanForm.NameAndCode = "";
}
},
//获取装备
async getEquipment(val) {
console.log(val)
if (val !== "") {
var obj = {};
obj = this.eqOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.EquipmentId = obj.ID;
this.AddPlanForm.NameAndCode = obj.NameAndCode;
this.AddPlanForm.LabelEpc = obj.LabelEpc;
}
},
//获取号型的名字和ID
async getIDAndName(val) {
if (val !== "") {
var obj = {};
obj = this.sizeOption.find(function (item) {
return item.ID === val;
});
this.searchEquipmentData.EqSizeId = obj.ID;
const { data: eqres } = await this.$axios.get("api/Equipment", {
params: this.searchEquipmentData,
});
this.eqOption = eqres.Rows;
// console.log(obj)
this.AddPlanForm.EqSizeId = obj.ID;
this.AddPlanForm.EqSizeName = obj.EqSizeName;
this.AddPlanForm.EqSizeCode = obj.Code;
} else {
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
this.searchEquipmentData.EqSizeId = "";
this.searchEquipmentData.EqSizeName = "";
const { data: eqres } = await this.$axios.get("api/Equipment", {
params: this.searchEquipmentData,
});
this.eqOption = eqres.Rows;
}
},
//获取详细信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/Borrow/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
if (res.IsHaoCai == 1) {
//耗材
this.HctableData = res.BorrowList;
this.detailData = res;
this.HCShow = true;
this.NHCShow = false;
} //非耗材
else {
this.HCShow = false;
this.NHCShow = true;
console.log("Nohaocai", res);
this.NHctableData = res.BorrowList;
this.detailData = res;
}
},
async submitData(row) {
console.log("提交信息", row);
const formData = new FormData();
formData.append("ID", this.row.ID);
formData.append("DepartName", this.row.DepartName);
formData.append("UserID", this.row.UserID);
formData.append("UserName", this.row.UserName);
formData.append("State", this.row.State);
formData.append("Remarks", this.row.Remarks);
formData.append("LyTime", this.row.LyTime);
formData.append("SubmitState", this.row.SubmitState);
formData.append("SubmitStateName", this.row.SubmitStateName);
formData.append("SubmitUsrID", this.row.SubmitUsrID);
formData.append("SubmitUserName", this.row.SubmitUserName);
formData.append("SubmitTime", this.row.SubmitTime);
formData.append("ExamineState", this.row.ExamineState);
formData.append("ExamineStateName", this.row.ExamineStateName);
formData.append("ExamineUserID", this.row.ExamineUserID);
formData.append("ExamineUserName", this.row.ExamineUserName);
formData.append("ExamineTime", this.row.ExamineTime);
formData.append("SubmitReason", this.row.SubmitReason);
formData.append("ExameReason", this.row.ExameReason);
formData.append("CreateTime", this.row.CreateTime);
console.log("formData", formData);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.put(
"/api/Borrow",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
this.getQueuData();
},
///获取类别的ID和内容
///获取物料内容
async getClass(val, b) {
if (b === "hc") {
//耗材
this.searchClassData.IsHaoCai = 1;
} //非耗材
else {
this.searchClassData.IsHaoCai = 0;
}
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EquipmentId = "";
this.AddPlanForm.NameAndCode = "";
if (val !== "") {
this.searchClassData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchClassData,
});
this.MaterielOption = res.Rows;
} else {
this.eqOption = [];
this.sizeOption = [];
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
this.AddPlanForm.EquipmentId = "";
this.AddPlanForm.NameAndCode = "";
}
},
//添加耗材装备
addHCEquipment() {
console.log(this.AddPlanForm)
if (this.AddPlanForm.MaterielId === "") {
this.$message.warning("请选择物料");
return;
}
var obj = {};
var plan = {
LyCount: 1,
MainClass: this.AddPlanForm.MainClass,
MaterielName: this.AddPlanForm.MaterielName,
MaterielID: this.AddPlanForm.MaterielId,
MaterielCode: this.AddPlanForm.MaterielCode,
EqSizeId: this.AddPlanForm.EqSizeId,
EqSizeName: this.AddPlanForm.EqSizeName,
EqSizeCode: this.AddPlanForm.EqSizeCode,
};
obj = this.HCruleForm.BorrowList.find(function (item) {
return (
item.EqSizeId === plan.EqSizeId &&
item.MaterielCode === plan.MaterielCode
);
});
console.log("obj", obj);
if (obj === undefined) {
this.HCruleForm.BorrowList.push(plan);
} else {
this.$message.error("已经存在该物资");
}
},
//添加非耗材装备
addEquipment() {
if (this.AddPlanForm.EquipmentId === "") {
this.$message.warning("请选择物资");
return;
}
var obj = {};
var plan = {
LyCount: 1,
MainClass: this.AddPlanForm.MainClass,
MaterielName: this.AddPlanForm.MaterielName,
MaterielID: this.AddPlanForm.MaterielId,
MaterielCode: this.AddPlanForm.MaterielCode,
EqSizeId: this.AddPlanForm.EqSizeId,
EqSizeName: this.AddPlanForm.EqSizeName,
EqSizeCode: this.AddPlanForm.EqSizeCode,
NameAndCode: this.AddPlanForm.NameAndCode,
EquipmentId: this.AddPlanForm.EquipmentId,
LabelEpc: this.AddPlanForm.LabelEpc,
};
console.log("添加物资", plan);
obj = this.ruleForm.BorrowList.find(function (item) {
return item.EquipmentId === plan.EquipmentId;
});
if (obj === undefined) {
this.ruleForm.BorrowList.push(plan);
} else {
this.$message.error("已经存在该物资");
}
},
//删除装备
deleteEquipment(row) {
this.ruleForm.BorrowList.splice(row, 1);
},
deleteHCEquipment(row) {
this.HCruleForm.BorrowList.splice(row, 1);
},
// 提交操作
Submit(row, SubmitState) {
this.editForm.ID = row.ID;
this.editForm.SubmitState = SubmitState;
var stateName = "";
if (SubmitState === 0) {
//提交
stateName = "提交";
} else {
stateName = "撤销";
}
const url = "/api/Borrow/ChangeState";
this.$confirm("是否" + stateName + "提交该数据?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.post(url, this.editForm);
if (res.Success === true) {
this.getQueuData();
this.$message.success("已" + stateName + "该申请");
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("" + stateName + "申请");
});
},
// 领取操作
receive(row) {
this.$confirm("是否执行领取操作?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
// this.submitData(row);
console.log("提交信息", row);
const formData = new FormData();
formData.append("ID", row.ID);
formData.append("DepartName", row.DepartName);
formData.append("UserID", row.UserID);
formData.append("UserName", row.UserName);
formData.append("LyTime", row.LyTime);
formData.append("Remarks", row.Remarks);
formData.append("SubmitState", 2);
formData.append("SubmitStateName", row.SubmitStateName);
formData.append("SubmitUsrID", row.SubmitUsrID);
formData.append("SubmitTime", row.SubmitTime);
formData.append("ExamineState", row.ExamineState);
formData.append("ExamineStateName", row.ExamineStateName);
formData.append("ExamineUserID", row.ExamineUserID);
formData.append("ExamineTime", row.ExamineTime);
formData.append("CreateTime", row.CreateTime);
console.log("formData", formData);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.put(
"/api/Borrow",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
this.getQueuData();
})
.catch((e) => {
this.$message.error("已取消领取");
});
},
//耗材提交数据
HcsubmitForm(formName, type) {
console.log("HC",this.HCruleForm);
if (this.HCruleForm.BorrowList.length === 0) {
return this.$message.warning("请添加装备");
}
var IsAdmin = false;
if ((this.userData.State = 1)) {
this.IsAdmin = true;
}
const borrowUrl = "/api/Borrow?" + "IsAdmin=" + IsAdmin;
this.$refs[formName].validate(async (valid) => {
if (valid) {
if (type === "耗材借用申请") {
const { data: res } = await this.$axios.post(
borrowUrl,
this.HCruleForm
);
if (res.Success !== true) return this.$message(res.message);
} else {
const { data: res } = await this.$axios.put(
borrowUrl,
this.HCruleForm
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.HCVisible = false;
} else {
return false;
}
});
},
///提交非耗材表单
submitForm(formName, type) {
console.log("sub", this.ruleForm);
if (this.ruleForm.BorrowList.length === 0) {
return this.$message.warning("请添加装备");
}
this.ruleForm.borrowType = 1;
this.ruleForm.IsHaoCai = 0;
var IsAdmin = false;
if ((this.userData.State = 1)) {
this.IsAdmin = true;
}
const borrowUrl = "/api/Borrow?" + "IsAdmin=" + IsAdmin;
this.$refs[formName].validate(async (valid) => {
if (valid) {
if (type === "非耗材借用申请") {
const { data: res } = await this.$axios.post(
borrowUrl,
this.ruleForm
);
if (res.Success !== true) return this.$message(res.message);
} else {
//修改预案类型
const { data: res } = await this.$axios.put(
borrowUrl,
this.ruleForm
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
async getQueuData() {
this.loading = true;
this.searchData.SubmitUsrID = this.userData.Id;
const { data: res } = await this.$axios.get("api/Borrow", {
params: this.searchData,
});
this.total = res.Total;
this.materielData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 删除
deleteClick(row) {
const url = "/api/Borrow/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
stateFormat(row) {
if (row.IsHaoCai === 0) {
return "非耗材";
} else if (row.IsHaoCai === 1) {
return "耗材";
} else {
return "";
}
},
closeForm() {
this.resetForm();
},
},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.labelClassT {
width: 282px;
}
.labelClass {
font-weight: 800;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.diaB {
font-weight: 1000;
margin-left: 29px;
margin-top: 10px;
}
.inputA {
width: 182px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.myQuillEditor {
width: 450px;
min-height: 192px;
}
.diaC {
font-weight: 1000;
margin-left: 29px;
margin-bottom: 6px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.areaClass {
width: 87%;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
.el-dialog {
width: 66%;
}
.buttonClass {
line-height: 0px;
text-align: center;
margin-top: 12px;
width: 61%;
margin-left: 29px;
height: 31px;
font-size: larger;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/icons/3D库房.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">部门管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>系统设置 </el-breadcrumb-item>
<el-breadcrumb-item>部门管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.DepartName"
@keypress.native.enter="onEnterPress"
clearable=""
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入部门名称搜索"
></el-input>
<treeselect
noOptionsText="暂无数据"
style="width: 200px"
class="textboxBo"
:options="options"
placeholder="请选择上级部门"
:normalizer="normalizer"
@select="selectDepart"
v-model="searchData.parentID"
/>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="adddepartment()"
>添加部门</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="DepartName" label="部门名称" align="center">
</el-table-column>
<el-table-column
prop="parentName"
label="上级部门名称"
align="center"
>
</el-table-column>
<el-table-column prop="Remarks" label="备注" align="center">
</el-table-column>
<el-table-column prop="CreateName" label="创建人员" align="center">
</el-table-column>
<el-table-column prop="CreateTime" label="创建时间" align="center">
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="departmentDelete(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
width="30%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeDialog"
>
<div style="border: 0px solid #e8e8e8">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
class="inputClass"
label-width="100px"
>
<el-form-item label="部门名称" prop="DepartName">
<el-input v-model="ruleForm.DepartName"></el-input>
</el-form-item>
<el-form-item label="上级部门">
<!-- <el-select style="width: 300px;" v-model="ruleForm.parentName"> -->
<!-- <div> -->
<treeselect
noOptionsText="暂无数据"
:options="options"
placeholder="请选择上级部门"
:normalizer="normalizer"
@select="selectDepart"
v-model="ruleForm.parentId"
/>
<!-- </div> -->
<!-- </el-select> -->
</el-form-item>
<el-form-item label="备注" prop="Remarks">
<el-input v-model="ruleForm.Remarks"></el-input>
</el-form-item>
<el-form-item v-if="false">
<el-input v-model="ruleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="closeDialog()">取 消</el-button>
<el-button @click="resetForm()">重 置</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
components: { Treeselect },
data() {
return {
rules: {
DepartName: [
{ required: true, message: "请输入部门名称", trigger: "blur" },
{ min: 1, message: "请输入部门名称", trigger: "blur" },
],
Code: [],
Remarks: [],
},
LibaryType: [
{
value: "-1",
label: "全部",
},
{
value: "0",
label: "仓库",
},
{
value: "1",
label: "汽车",
},
],
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
DepartName: "",
parentID: null,
},
title: "",
ruleForm: {
ID: 0,
DepartName: "",
parentName: "",
parentId: null,
Remarks: "",
},
resetForm() {
this.ruleForm = {
ID: 0,
DepartName: "",
parentName: "",
parentId: "",
Remarks: "",
};
},
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
borrowData: [],
editData: [],
addVisible: false,
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
treeData: [], // 渲染树的变量
options: [],
// 总条数
total: 0,
normalizer(node) {
//去掉children=[]的children属性
if (node.Children && !node.Children.length) {
delete node.Children;
}
return {
id: node.ID,
//将name转换成必填的label键
label: node.DepartName,
children: node.Children,
};
},
};
},
created() {
this.getQueuData();
this.getDeparment();
},
methods: {
// 获取当前选中部门的名称
selectDepart(node) {
console.log(node);
this.ruleForm.parentName = node.DepartName;
this.ruleForm.parentId = node.ID;
// console.log("parentId", ruleForm.parentId);
},
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
formData.append("ID", this.ruleForm.ID);
formData.append("DepartName", this.ruleForm.DepartName);
formData.append("parentName", this.ruleForm.parentName);
formData.append("parentId", this.ruleForm.parentId);
formData.append("Remarks", this.ruleForm.Remarks===null?"":this.ruleForm.Remarks);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "添加部门") {
const { data: res } = await this.$axios.post(
"/api/Department",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
} else {
//修改仓库类型
// console.log(this.ruleForm.ID)
formData.append("ID", this.ruleForm.ID);
const { data: res } = await this.$axios.put(
"/api/Department",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
closeDialog() {
this.resetForm();
this.addVisible = false;
this.ruleForm.parentId = null;
},
//修改部门
async edit(row) {
console.log(row);
this.title = "修改部门";
this.addVisible = true;
this.$nextTick(async () => {
await this.resetForm("ruleForm");
this.ruleForm = JSON.parse(JSON.stringify(row));
if (this.ruleForm.parentId === 0) {
this.ruleForm.parentId = undefined;
}
this.getSuperiorDepartment();
});
},
//删除部门
async departmentDelete(row) {
const url = "/api/Department/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
async getSuperiorDepartment() {
this.addVisible = true;
const borrowUrl = "/api/Department/" + 0;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.options = res;
console.log(this.options);
// this.detailData = res;
},
async getDeparment() {
const borrowUrl = "/api/Department/" + 0;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.options = res;
console.log(this.options);
},
//查看照片
watchPic() {},
clickLI(id) {
this.flag = id;
this.$nextTick(() => {
this.width = document.getElementById("liWidth").offsetWidth;
this.offsetW = document.getElementById("liWidth").offsetLeft;
});
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
//新增部门
async adddepartment() {
this.title = "添加部门";
this.addVisible = true;
this.$nextTick(() => {
this.getSuperiorDepartment();
});
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/Department", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/归还.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">装备信息</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>系统设置 </el-breadcrumb-item>
<el-breadcrumb-item>装备信息</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.EqName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入物料名搜索"
></el-input>
<el-select
class="textboxBo"
v-model="searchData.CategoryID"
filterable
clearable
placeholder="请选择类别"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-select
class="textboxBo"
v-model="searchData.IsHaoCai"
filterable
clearable
placeholder="请选择是否为耗材"
>
<el-option
v-for="item in optionsEquipment"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="materielData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
prop="MaterielCode"
label="物料编码"
align="center"
/>
<el-table-column prop="MaterielName" label="物料名称" align="center">
</el-table-column>
<el-table-column prop="CategoryName" label="物料种类" align="center">
</el-table-column>
<el-table-column prop="Unit" label="单位" align="center">
</el-table-column>
<el-table-column prop="Storage" label="所在位置" align="center">
</el-table-column>
<el-table-column
prop="EqHaoCai"
:formatter="stateFormat"
label="是否贴标"
align="center"
/>
<el-table-column prop="EqCount" label="数量" align="center">
</el-table-column>
<el-table-column
label="操作"
align="center"
fixed="right"
width="200"
>
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="check(scope.row)"
>查看</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog title="物料查看" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基本信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
size="small"
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody line-height:1>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">物料编码</th>
<td class="textContent">
{{ detailData.MaterielCode }}
</td>
<th class="textHeader">编码</th>
<td class="textContent">
{{ detailData.Code }}
</td>
<th class="textHeader">物料名称</th>
<td class="textContentLast">
{{ detailData.MaterielName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">物料种类</th>
<td class="textContent">
{{ detailData.CategoryName }}
</td>
<th class="textHeader">物料单位:</th>
<td class="textContent">
{{ detailData.Unit }}
</td>
<th class="textHeader">创建人员</th>
<td class="textContentLast">
{{ detailData.CreateName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">使用年限</th>
<td class="textContent">
{{ detailData.TermDays }}
</td>
<th class="textHeader">所否为消耗品</th>
<td class="textContent">
{{ detailData.IsHaoCai == 1 ? "是" : "否" }}
</td>
<th class="textHeader">数量</th>
<td class="textContentLast">
{{ detailData.EqCount }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">所在位置</th>
<td class="textContent">
{{ detailData.Storage }}
</td>
<th class="textHeader">保养周期</th>
<td class="textContent">
{{ detailData.TermDays }}
</td>
<th class="textHeader">创建时间</th>
<td class="textContentLast">
{{ detailData.CreateTime }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">维修策略</th>
<td class="textContent">
{{ detailData.WeiXiuCL }}
</td>
<th class="textHeader">保养策略</th>
<td class="textContent">
{{ detailData.BaoYangCL }}
</td>
<th class="textHeader">使用说明</th>
<td class="textContentLast">
{{ detailData.Instructions }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 新增/编辑 -->
<el-dialog
width="36%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm()"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="EditRuleForm"
ref="EditRuleForm"
:rules="rules"
label-width="100px"
style="margin-top: 10px"
>
<el-row :gutter="10">
<!-- <el-col :span="20" class="dia"> -->
<el-form-item class="diaC" label="装备类别" prop="CategoryID">
<el-select
v-model="EditRuleForm.CategoryID"
filterable
clearable
style="width: 458px"
placeholder="请选择大类"
@change="getClass"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-col :span="10" style="padding-left: 0px">
<el-form-item class="diaB" label="物料编码" prop="Code">
<el-input
class="inputA"
v-model="EditRuleForm.Code"
placeholder="请输入编码"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="是否贴标">
<el-radio v-model="EditRuleForm.IsHaoCai" :label="1"
></el-radio
>
<el-radio v-model="EditRuleForm.IsHaoCai" :label="0"
></el-radio
>
</el-form-item>
<el-form-item class="diaB" label="保养周期">
<el-input-number
class="inputA"
v-model="EditRuleForm.TermDays"
:min="1"
:max="100"
label="数字"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="10" style="padding-left: 0px">
<el-form-item
class="diaB"
label="物料名称"
prop="MaterielName"
>
<el-input
class="inputA"
v-model="EditRuleForm.MaterielName"
placeholder="请输入物料名称"
></el-input>
</el-form-item>
<el-form-item class="diaB" label="物料单位" prop="Unit">
<el-input
class="inputA"
v-model="EditRuleForm.Unit"
placeholder="请输入物料单位"
></el-input>
</el-form-item>
<el-form-item class="diaB" v-if="false" label="数量">
<el-input-number
class="inputA"
v-model="EditRuleForm.EqCount"
:min="1"
:max="100"
label="数字"
></el-input-number>
</el-form-item>
</el-col>
<!-- </el-col> -->
</el-row>
<el-form-item class="diaC" label="所属位置">
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
v-model="EditRuleForm.Storage"
class="areaClass"
placeholder="请输入位置信息"
>
</el-input>
</el-form-item>
<el-form-item class="diaC" label="维修策略">
<el-input
type="textarea"
v-model="EditRuleForm.WeiXiuCL"
:autosize="{ minRows: 2, maxRows: 4 }"
class="areaClass"
placeholder="请输入维修策略"
>
</el-input>
</el-form-item>
<el-form-item class="diaC" label="保养策略">
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
v-model="EditRuleForm.BaoYangCL"
class="areaClass"
placeholder="请输入保养策略"
>
</el-input>
</el-form-item>
<el-form-item class="diaC" label="使用说明">
<quill-editor
ref="text"
style="height: 200px; width: 88%"
v-model="EditRuleForm.Instructions"
class="myQuillEditor"
:options="editorOption"
/>
</el-form-item>
<el-form-item v-if="false">
<el-input v-model="EditRuleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm('EditRuleForm', title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import { quillEditor, Quill } from "vue-quill-editor";
// import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
const Font = Quill.import("attributors/style/font"); // 引入这个后会把样式写在style上
const fonts = ["SimSun", "SimHei", "Microsoft-YaHei", "KaiTi", "FangSong"];
export default {
components: { quillEditor },
data() {
return {
content: "", //富文本的内容
editorOption: {
placeholder: "请输入使用说明...",
modules: {
toolbar: [
["bold", "italic", "underline"], // 加粗,斜体,下划线,删除线
[{ list: "ordered" }, { list: "bullet" }], // 列表
[{ align: [] }], // 对齐方式
[{ size: ["12", false, "16", "18", "20", "24", "28", "32", "36"] }], // 字体大小
[
{
font: [
false,
"heiti",
"songti",
"kaiti",
"lishu",
"arial",
"monospace",
],
},
], // 字体 false默认微软雅黑,其他可删减
],
},
},
optionsEquipment: [
{
value: "2",
label: "全部",
},
{
value: "1",
label: "耗材",
},
{
value: "0",
label: "非耗材",
},
],
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
CategoryName: "1",
CategoryID: "",
MaterielName: "",
MaterielCode: "",
},
resetForm() {
this.EditRuleForm = {
CategoryName: "",
TermDays: 0,
Code: "",
PlanName: "",
MaterielName: "",
Unit: "",
CategoryID: "",
EqCount: "",
IsHaoCai: 1,
Storage: "",
Instructions: "",
WeiXiuCL: "",
BaoYangCL: "",
Remarks: "",
};
},
classOption: [],
title: "",
fixData: {
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
addVisible: false,
borrowTableVisible: false,
detailData: {
MaterielCode: "",
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
EqCategoryName: "",
},
fixdetailData: [],
loading: false,
tabLoading: false,
src: "../assets/images/记录.png",
activeName: "first",
rules: {
CategoryID: [
{ required: true, message: "请选择物料类型", trigger: "change" },
],
Code: [
{
required: true,
message: "请输入编码",
trigger: "blur",
},
{ min: 1, message: "请输入编码", trigger: "blur" },
],
MaterielName: [
{
required: true,
message: "请输入物料名称",
trigger: "blur",
},
{ min: 1, message: "请输入物料名称", trigger: "blur" },
],
Unit: [
{
required: true,
message: "请输入物料单位",
trigger: "blur",
},
{ min: 1, message: "请输入物料单位", trigger: "blur" },
],
},
EditRuleForm: {
ID: "",
CategoryName: "",
TermDays: 0,
Code: "",
PlanName: "",
MaterielName: "",
Unit: "",
CategoryID: "",
EqCount: "",
IsHaoCai: 1,
Storage: "",
Instructions: "",
WeiXiuCL: "",
BaoYangCL: "",
Remarks: "",
},
materielData: [],
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//查看信息
check(row) {
this.borrowTableVisible = true;
this.detailData = row;
},
//编辑信息
async edit(row) {
this.addVisible = true;
console.log(row);
this.EditRuleForm = JSON.parse(JSON.stringify(row));
this.title = "修改物料";
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//查看照片
watchPic() {},
clickLI(id) {
this.flag = id;
this.$nextTick(() => {
this.width = document.getElementById("liWidth").offsetWidth;
this.offsetW = document.getElementById("liWidth").offsetLeft;
});
},
//新增物料
async addClass() {
this.addVisible = true;
this.title = "新增物料";
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
///获取类别的ID和内容
getClass(val) {
if (val !== "") {
var obj = {};
obj = this.classOption.find(function (item) {
return item.ID === val;
});
// console.log(obj)
this.EditRuleForm.CategoryID = obj.ID;
this.EditRuleForm.CategoryName = obj.EqCategoryName;
}
},
///提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
console.log(this.EditRuleForm);
formData.append("ID", this.EditRuleForm.ID);
formData.append("TermDays", this.EditRuleForm.TermDays);
formData.append("Code", this.EditRuleForm.Code);
formData.append("MaterielName", this.EditRuleForm.MaterielName);
formData.append("Unit", this.EditRuleForm.Unit);
formData.append("CategoryID", this.EditRuleForm.CategoryID);
formData.append("CategoryName", this.EditRuleForm.CategoryName);
formData.append("EqCount", this.EditRuleForm.EqCount);
formData.append("IsHaoCai", this.EditRuleForm.IsHaoCai);
formData.append("Storage", this.EditRuleForm.Storage);
formData.append("Instructions", this.EditRuleForm.Instructions);
formData.append("WeiXiuCL", this.EditRuleForm.WeiXiuCL);
formData.append("BaoYangCL", this.EditRuleForm.BaoYangCL);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "新增物料") {
const { data: res } = await this.$axios.post(
"/api/Materiel",
formData,
config
);
if (res.Success !== true) return this.$message.error(res.Remark);
// 提交信息成功后要关闭对话框,并且刷新数据
this.$message.success(res.Remark);
} else {
//修改仓库类型
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.put(
"/api/Materiel",
formData,
config
);
if (res.Success !== true) return this.$message.error(res.Remark);
// 提交信息成功后要关闭对话框,并且刷新数据
this.$message.success(res.Remark);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
async getQueuData() {
this.loading = true;
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchData,
});
this.total = res.Total;
this.materielData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 删除
deleteClick(row) {
const url = "/api/Materiel/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
stateFormat(row) {
if (row.EqHaoCai === 0) {
return "已贴标";
} else {
return "未贴标";
}
},
closeForm() {
this.resetForm();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.diaB {
font-weight: 1000;
margin-left: 29px;
margin-top: 10px;
}
.inputA {
width: 182px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.myQuillEditor {
width: 450px;
min-height: 192px;
}
.diaC {
font-weight: 1000;
margin-left: 29px;
margin-bottom: 12px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.areaClass {
width: 87%;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
.el-dialog {
width: 66%;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/icons/3D库房.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">人员设置</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>系统设置 </el-breadcrumb-item>
<el-breadcrumb-item>人员设置</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.UserName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入人员名搜索"
></el-input>
<el-select
v-model="searchData.UserState"
class="textboxBo"
placeholder="请选择状态"
>
<el-option
v-for="item in UserStates"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="adddepartment()"
>添加警员</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="UserName" label="姓名" align="center">
</el-table-column>
<el-table-column prop="PoliceCode" label="编号" align="center">
</el-table-column>
<el-table-column
prop="DepartName"
label="所属部门"
align="center"
></el-table-column>
<el-table-column
prop="PoliceTypeName"
label="所属所属警种"
align="center"
></el-table-column>
<el-table-column
prop="PoliceTypeName"
label="警员类型"
align="center"
></el-table-column>
<el-table-column
prop="UserStateName"
label="状态"
align="center"
></el-table-column>
<el-table-column
prop="UserAccount"
label="账户"
align="center"
></el-table-column>
<el-table-column
prop="StoragePassword"
label="单警柜密码"
align="center"
>
</el-table-column>
<el-table-column
v-if="false"
prop="Remarks"
label="备注"
align="center"
>
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="getDetailInfo(scope.row)"
>查看</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row, title)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="deletePolice(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
:title="title"
:visible.sync="addVisible"
@close="editClose('ruleForm')"
>
<!-- <div style="border: 0px solid #e8e8e8;margin: 20px;"> -->
<el-form
:inline="true"
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="120px"
>
<el-row>
<el-col :span="12">
<el-form-item label="人员名称" prop="UserName">
<el-input
style="width: 300px"
v-model="ruleForm.UserName"
placeholder="请输入人员名称"
:disabled="disableFlag"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属警种" prop="PoliceCategoryId">
<el-select
v-model="ruleForm.PoliceCategoryId"
class="textboxInput"
placeholder="请选择所属警种"
@change="getSelectValue"
>
<el-option
v-for="item in policetypeData"
:key="item.ID"
:label="item.CategoryName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="人员邮箱" prop="UserEmail">
<el-input
style="width: 300px"
v-model="ruleForm.UserEmail"
placeholder="请输入人员邮箱"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="人员状态" prop="UserState">
<el-radio-group
v-model="ruleForm.UserState"
>
<el-radio :label="0">正常</el-radio>
<el-radio :label="1">停用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="警员类型" prop="PoliceType">
<el-radio-group v-model="ruleForm.PoliceType">
<el-radio :label="0">普通警员</el-radio>
<el-radio :label="1">大队领导</el-radio>
<el-radio :label="2">中队领导</el-radio>
<el-radio :label="3">值班组长</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="角色类型" prop="UserRole">
<el-radio-group v-model="ruleForm.UserRole">
<el-radio :label="0">普通警员</el-radio>
<el-radio :label="1">管理员</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="所属部门" prop="DeparId">
<treeselect
style="width: 300px"
:options="options"
placeholder="请选择所属部门"
:normalizer="normalizer"
@select="selectDepart"
v-model="ruleForm.DeparId"
/>
</el-form-item>
<el-form-item label="警员编号" prop="PoliceCode">
<el-input
style="width: 300px"
v-model="ruleForm.PoliceCode"
placeholder="请输入警员编号"
></el-input>
</el-form-item>
<el-form-item label="出口指纹机密码" prop="PolicePassword">
<el-input
style="width: 300px"
v-model="ruleForm.PolicePassword"
placeholder="请输入出口指纹机密码"
></el-input>
</el-form-item>
<el-form-item label="备注" prop="Remarks">
<el-input
style="width: 300px"
type="textarea"
v-model="ruleForm.Remarks"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="账号名称" prop="UserAccount">
<el-input
style="width: 300px"
v-model="ruleForm.UserAccount"
placeholder="请输入账号名称"
:disabled="disableFlag"
></el-input>
</el-form-item>
<el-form-item label="账号密码" prop="UserPassword">
<el-input
style="width: 300px"
v-model="ruleForm.UserPassword"
placeholder="请输入账号密码"
></el-input>
</el-form-item>
<el-form-item label="单警柜分配">
<el-select
v-model="ruleForm.StorageId"
class="textboxInput"
clearable
placeholder="请选择单警柜"
@change="SelectCabinet"
>
<el-option
v-for="item in cabinetData"
:key="item.StorageId"
:label="
item.LibraryName +
'-' +
item.StorageCode +
'-' +
(item.PoliceName === null ? ' ' : item.PoliceName)
"
:value="item.StorageId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单警柜密码" prop="StoragePassword">
<el-input
style="width: 300px"
:disabled="cabinetDisabled"
v-model="ruleForm.StoragePassword"
placeholder="请输入单警柜密码"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item v-if="false">
<el-input v-model="ruleForm.ID"></el-input>
</el-form-item>
</el-form>
<!-- </div> -->
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button @click="resetForm('ruleForm')">重 置</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</div>
</el-dialog>
<el-dialog title="人员详细信息" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基本信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
size="small"
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">人员姓名</th>
<td class="textContent">
{{ detailData.UserName }}
</td>
<th class="textHeader">人员账户</th>
<td class="textContentLast">
{{ detailData.UserAccount }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">人员邮箱</th>
<td class="textContent">
{{ detailData.UserEmail }}
</td>
<th class="textHeader">人员状态</th>
<td class="textContentLast">
{{ detailData.UserStateName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">人员密码</th>
<td class="textContent">
{{ detailData.UserPassword }}
</td>
<th class="textHeader">所属部门</th>
<td class="textContentLast">
{{ detailData.DepartName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">所属警种</th>
<td class="textContent">
{{ detailData.PoliceCategoryldName }}
</td>
<th class="textHeader">警员类型</th>
<td class="textContent">
{{ detailData.PoliceTypeName }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8"></tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">出口指纹机密码</th>
<td class="textContent">
{{ detailData.PolicePassword }}
</td>
<th class="textHeader">单警柜密码</th>
<td class="textContentLast">
{{ detailData.StoragePassword }}
</td>
</tr>
<tr>
<th class="textHeader">警员编号</th>
<td class="textContent">
{{ detailData.PoliceCode }}
</td>
<th class="textHeader">备注信息</th>
<td class="textContentLast">
{{ detailData.Remarks }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card
class="box-card"
style="text-align: center; margin-top: 35px"
>
<label class="labelBorrow">装备列表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column prop="ID" label="装备编码" align="center">
</el-table-column>
<el-table-column prop="EqName" label="装备名称" align="center">
</el-table-column>
</el-table>
</template>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { mapState } from "vuex";
export default {
components: { Treeselect },
// 重加载事件
inject: ["reload"],
data() {
return {
rules: {
UserName: [
{ required: true, message: "请输入人员名称", trigger: "blur" },
],
UserAccount: [
{ required: true, message: "请输入人员账户", trigger: "blur" },
],
UserPassword: [
{ required: true, message: "请输入人员密码", trigger: "blur" },
],
DeparId: [
{ required: true, message: "请选择所属部门", trigger: "blur" },
],
PoliceCategoryId: [
{ required: true, message: "请选择所属警种", trigger: "blur" },
],
Code: [],
Remarks: [],
},
cabinetDisabled: true,
cabinetData: [],
UserStates: [
{
value: "-1",
label: "全部",
},
{
value: "0",
label: "正常",
},
{
value: "1",
label: "停用",
},
],
nowDate: new Date(),
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
UserName: "",
UserState: "0",
},
cabinetSearchData: {
Page: 1,
Rows: 99999,
Sort: "ID",
Order: "ESC",
StorageType: 1,
},
CategorySearchData: {
Page: 1,
Rows: 99999,
Sort: "ID",
Order: "ESC",
},
title: "",
ruleForm: {
ID: 0,
hasPolice: "",
StorageId:"",
CabinetName: "",
UserName: "",
UserAccount: "",
DeparId: null,
DepartName: "",
PoliceCategoryId: null,
PoliceCategoryldName: "",
PoliceType: 0,
PoliceTypeName: "",
StoragePassword: "",
Remarks: "",
UserState: 0,
UserStateName: "",
PecoliePassword: "",
PoliceCode: "",
PolicePassword: "",
UserPassword: "",
UserEmail: "",
UserRole: 0,
CreateTime: "",
CreateID: "",
CreateName: "",
},
resetForm() {
this.ruleForm = {
hasPolice: "",
CabinetName: "",
StorageId:"",
StoragePassword: "",
ID: 0,
UserName: "",
PecoliePassword: "",
UserAccount: "",
DeparId: null,
DepartName: "",
PoliceCategoryId: null,
PoliceCategoryldName: "",
PoliceType: 0,
PoliceTypeName: "",
Remarks: "",
UserState: 0,
UserStateName: "",
PoliceCode: "",
PolicePassword: "",
UserPassword: "",
UserEmail: "",
UserRole: 0,
CreateTime: "",
CreateID: "",
CreateName: "",
};
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
borrowData: [],
editData: [],
addVisible: false,
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 控制输入
disableFlag: false,
// 总条数
total: 0,
// 所属部门
options: [],
// 所属警种
policetypeData: [],
normalizer(node) {
//去掉children=[]的children属性
if (node.Children && !node.Children.length) {
delete node.Children;
}
return {
id: node.ID,
//将name转换成必填的label键
label: node.DepartName,
children: node.Children,
};
},
};
},
mounted() {
this.getCreatedTime();
},
computed: {
// vuex数据
...mapState(["userData"]),
},
created() {
this.getQueuData();
},
methods: {
// 获取当前时间
getCreatedTime() {
this.nowDate = this.timeNow();
},
getSelectValue(value) {
console.log("ddcc",value)
this.policetypeData.forEach((item) => {
if (item.ID === value) {
this.ruleForm.PoliceCategoryId = item.ID;
this.ruleForm.PoliceCategoryldName = item.CategoryName;
}
});
},
///单警柜选择
SelectCabinet(val) {
console.log("val", this.ruleForm.StoragePassword)
this.cabinetData.forEach((item) => {
if (item.StorageId === val) {
this.ruleForm.StorageId = item.StorageId;
this.ruleForm.CabinetName = item.CategoryName;
if (item.PoliceName === null) {
this.ruleForm.hasPolice = false;
} else {
this.ruleForm.hasPolice = true;
}
}
});
if (val !== "") {
this.cabinetDisabled = false;
} else {
this.ruleForm.StoragePassword = "";
this.cabinetDisabled = true;
}
},
timeNow() {
return this.$moment(new Date()).utc(480).format("YYYY-MM-DD HH:mm:ss");
},
// 获取当前选中部门的名称
selectDepart(node) {
console.log(node);
this.ruleForm.DepartName = node.DepartName;
this.ruleForm.DeparId = node.parentId;
// console.log("parentId", ruleForm.parentId);
},
//获取详细列表信息
async getDetailInfo(row, type) {
if (type == "修改人员信息") {
this.borrowTableVisible = false;
} else {
this.borrowTableVisible = true;
}
const borrowUrl = "/api/User/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
// this.tableData = res;
this.detailData = res;
this.ruleForm = res;
this.ruleForm.UserState = res.UserState;
this.GetUserEqlist(row);
},
// 获取装备列表信息
async GetUserEqlist(row) {
const borrowUrl = "/api/User/GetUserEqlist?" + "uid=" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res;
},
// 获取所属警种
async GetPoliceCategory() {
const borrowUrl = "/api/PoliceCategory?";
const { data: res } = await this.$axios.get(borrowUrl, {
params: this.CategorySearchData,
});
if (res.Success == false) return this.$message(res.Remark);
this.policetypeData = res.Rows;
},
async getSuperiorDepartment() {
this.addVisible = true;
const borrowUrl = "/api/Department/" + 0;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.options = res;
},
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
// formData.append("ID", this.ruleForm.ID);
formData.append("UserName", this.ruleForm.UserName);
formData.append("UserAccount", this.ruleForm.UserAccount);
formData.append("DeparId", this.ruleForm.DeparId);
formData.append("DepartName", this.ruleForm.DepartName);
formData.append("PoliceCategoryId", this.ruleForm.PoliceCategoryId);
formData.append("PecoliePassword",this.ruleForm.PecoliePassword==null?"":this.ruleForm.PecoliePassword);
formData.append(
"PoliceCategoryldName",
this.ruleForm.PoliceCategoryldName
);
if (this.ruleForm.PoliceType == 0) {
this.ruleForm.PoliceTypeName = "普通警员";
} else if (this.ruleForm.PoliceType == 1) {
this.ruleForm.UserStateName = "大队领导";
} else if (this.ruleForm.PoliceType == 2) {
this.ruleForm.UserStateName = "中队领导";
} else {
this.ruleForm.UserStateName = "值班组长";
}
formData.append("PoliceType", this.ruleForm.PoliceType);
formData.append("PoliceTypeName", this.ruleForm.PoliceTypeName);
if (this.ruleForm.UserState == 0) {
this.ruleForm.UserStateName = "正常";
} else {
this.ruleForm.UserStateName = "停用";
}
formData.append("UserState", this.ruleForm.UserState);
formData.append("UserStateName", this.ruleForm.UserStateName);
formData.append("PoliceCode", this.ruleForm.PoliceCode==null?"":this.ruleForm.PoliceCode);
formData.append("PolicePassword", this.ruleForm.PolicePassword==null?"":this.ruleForm.PolicePassword);
formData.append("UserPassword",this.ruleForm.UserPassword==null?"":this.ruleForm.UserPassword);
formData.append("UserEmail", this.ruleForm.UserEmail);
formData.append("UserRole", this.ruleForm.UserRole);
formData.append(
"CreateTime",
this.ruleForm.CreateTime ? this.ruleForm.CreateTime : this.timeNow()
);
formData.append(
"CreateName",
this.ruleForm.CreateName
? this.ruleForm.CreateName
: this.userData.UserName
);
formData.append(
"CreateID",
this.ruleForm.CreateID ? this.ruleForm.CreateID : this.userData.Id
);
formData.append("Remarks", this.ruleForm.Remarks);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "添加警员") {
console.log("po",this.ruleForm.hasPolice)
if (this.ruleForm.hasPolice === true) {
this.$confirm("此操作将替换该单警柜所有者, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: UserRes } = await this.$axios.post(
"/api/User",
formData,
config
);
if (UserRes.Success === true) {
this.ruleForm.ID=UserRes.Info;
this.$message.success(UserRes.Remark);
} else {
this.$message.error(UserRes.Remark);
}
})
.catch((e) => {
this.$message.error("已取消");
});
this.UpdatePassword();
} else {
const { data: UserRes } = await this.$axios.post(
"/api/User",
formData,
config
);
if (UserRes.Success === true) {
this.ruleForm.ID=UserRes.Info;
this.UpdatePassword();
this.$message.success(UserRes.Remark);
} else {
this.$message.error(UserRes.Remark);
}
}
} else {
//修改仓库类型
formData.append("ID", this.ruleForm.ID);
const that = this;
if (this.ruleForm.hasPolice === true) {
console.log("paa",that.ruleForm.StoragePassword)
that.$confirm("此操作将替换该单警柜所有者, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(async () => {
const { data: UserRes } = await that.$axios.put("/api/User", formData, config)
console.log("pa1",that.ruleForm)
if (UserRes.Success === true) {
this.UpdatePassword();
this.$message.success(UserRes.Remark);
} else {
this.$message.error(UserRes.Remark);
}
})
.catch((e) => {
this.$message.error("已取消");
});
} else {
const { data: UserRes } = await this.$axios.put(
"/api/User",
formData,
config
);
if (UserRes.Success === true) {
console.log("pa2",this.ruleForm.StoragePassword)
this.UpdatePassword();
this.$message.success(UserRes.Remark);
} else {
this.$message.error(UserRes.Remark);
}
}
}
this.disableFlag = false;
} else {
return false;
}
});
},
// 更新单据柜密码
async UpdatePassword() {
const formData = new FormData();
formData.append("ID", this.ruleForm.ID);
formData.append("UserPassword", this.ruleForm.UserPassword);
formData.append("StorageId", this.ruleForm.StorageId);
formData.append("StoragePassword", this.ruleForm.StoragePassword);
console.log("password",this.ruleForm.StoragePassword)
console.log("pass",formData);
if(this.ruleForm.ID!==0)
{
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
const borrowUrl = "/api/User/UpdatePassword";
const { data: res } = await this.$axios.post(borrowUrl, formData, config);
if (res.Success == false) return this.$message(res.Remark);
}
this.getQueuData();
this.addVisible = false;
},
//删除警员
async deletePolice(row) {
const url = "/api/User/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
//修改部门
async edit(row, type) {
this.title = "修改人员信息";
const storageUrl = "/api/Storage"; //获取单警柜信息
const { data: cabinetres } = await this.$axios.get(storageUrl, {
params: this.cabinetSearchData,
});
cabinetres.Rows.forEach((item) => {
this.cabinetData.push({
LibraryName: item.LibraryName,
StorageId: item.ID,
StorageCode: item.StorageCode,
PoliceName: item.PoliceName,
});
});
if(row.StorageId!==null)
{
this.cabinetDisabled=false
}
else
{
this.cabinetDisabled = true;
}
// 通过ref来拿到表单,之后通过表单控件的方法实现重置
this.policetypeData = [];
this.options = [];
this.addVisible = true;
this.disableFlag = true;
this.$nextTick(async () => {
this.getSuperiorDepartment();
this.getDetailInfo(row, this.title);
this.ruleForm = JSON.parse(JSON.stringify(row));
console.log(this.ruleForm)
this.GetPoliceCategory();
});
},
// 关闭弹出框时重置表单数据
editClose(formName) {
this.title = "添加警员";
this.formData = {};
this.cabinetData=[];
this.ruleForm.StorageId="";
this.$refs[formName].resetFields();
// this.ruleForm = this.$options.data().ruleFrom
this.disableFlag = false;
},
// //获取详细信息
// async getDetailInfo(row) {
// this.picVisible = true;
// this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
// },
//新增警员
async adddepartment() {
const storageUrl = "/api/Storage"; //获取单警柜信息
const { data: cabinetres } = await this.$axios.get(storageUrl, {
params: this.cabinetSearchData,
});
cabinetres.Rows.forEach((item) => {
this.cabinetData.push({
ID: item.ID,
LibraryName: item.LibraryName,
StorageId: item.StorageId,
StorageCode: item.StorageCode,
PoliceName: item.PoliceName,
});
});
this.cabinetDisabled = true;
// this.cabinetData = cabinetres.Rows;
this.title = "添加警员";
this.policetypeData = [];
this.options = [];
this.addVisible = true;
// this.$nextTick(() => {
// this.resetForm("ruleForm");
// });
this.getSuperiorDepartment();
this.GetPoliceCategory();
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/User", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
computed: {
// vuex数据
...mapState([
"navList",
"collapsed",
"menuList",
"active",
"activeOnePath",
"activeLine",
"userData",
]),
},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxInput {
width: 300px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/icons/3D库房.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">警种管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>系统设置 </el-breadcrumb-item>
<el-breadcrumb-item>警种管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.CategoryName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入警种名搜索"
></el-input>
<el-select v-if="false"
v-model="searchData.LibaryType"
class="textboxBo"
placeholder="请选择装备类型"
>
<el-option
v-for="item in LibaryType"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="adddepartment()"
>添加警种</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="CategoryName" label="警种名称" align="center">
</el-table-column>
<el-table-column v-if="false"
prop="parentName"
label="上级部门名称"
align="center"
>
</el-table-column>
<el-table-column prop="Remarks" label="备注" align="center">
</el-table-column>
<el-table-column prop="CreateName" label="创建人员" align="center">
</el-table-column>
<el-table-column prop="CreateTime" label="创建时间" align="center">
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
width="30%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
>
<div style="border: 0px solid #e8e8e8">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
class="inputClass"
label-width="100px"
>
<el-form-item label="警种名称" prop="CategoryName">
<el-input
v-model="ruleForm.CategoryName"
></el-input> </el-form-item
>
<el-form-item label="上级部门" v-if="false" >
<el-select
style="width: 300px;"
v-model="ruleForm.LibaryType"
>
<el-option
v-for="item in LibaryType"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="Remarks">
<el-input v-model="ruleForm.Remarks"></el-input>
</el-form-item>
<el-form-item v-if="false">
<el-input v-model="ruleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button @click="resetForm('ruleForm')">重 置</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.Rows"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
rules: {
CategoryName: [
{ required: true, message: "请输入警种名称", trigger: "blur" },
{ min: 1, message: "请输入警种名称", trigger: "blur" },
],
Code: [
],
Remarks: [],
},
LibaryType: [
{
value: "-1",
label: "全部",
},
{
value: "0",
label: "仓库",
},
{
value: "1",
label: "汽车",
},
],
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
CategoryName: "",
LibaryType: "-1",
},
title: "",
ruleForm: {
CategoryName:"",
ID: 0,
LibaryName: "",
LibaryType:"0",
Remarks: "",
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
borrowData: [],
editData: [],
addVisible: false,
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
formData.append("ID", this.ruleForm.ID);
formData.append("CategoryName", this.ruleForm.CategoryName);
formData.append("CreateTime", this.ruleForm.CreateTime);
formData.append("CreateID", this.ruleForm.CreateID);
formData.append("CreateName", this.ruleForm.CreateName);
formData.append("Remarks", this.ruleForm.Remarks==null?"":this.ruleForm.Remarks);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "添加警种") {
const { data: res } = await this.$axios.post(
"/api/PoliceCategory",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
} else {//修改仓库类型
// console.log(this.ruleForm.ID)
formData.append("ID", this.ruleForm.ID);
const { data: res } = await this.$axios.put(
"/api/PoliceCategory",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
//修改部门
async edit(row) {
this.title = "修改警种";
this.addVisible = true;
this.$nextTick(async()=>{
await this.resetForm('ruleForm')
this.ruleForm = JSON.parse(JSON.stringify(row));;
})
},
//查看照片
watchPic() {},
clickLI(id) {
this.flag = id;
this.$nextTick(() => {
this.width = document.getElementById("liWidth").offsetWidth;
this.offsetW = document.getElementById("liWidth").offsetLeft;
});
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
//新增部门
async adddepartment() {
this.title = "添加警种";
this.addVisible = true;
this.$nextTick(()=>{
this.resetForm('ruleForm')})
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/PoliceCategory", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/归还.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">领用申请</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>系统设置 </el-breadcrumb-item>
<el-breadcrumb-item>领用申请</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-select
class="textboxBo"
v-model="searchData.SubmitState"
filterable
clearable
placeholder="请选择状态"
>
<el-option
v-for="item in SubmitState"
:key="item.ID"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-form-item label="时间节点 :" class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addRecive()"
>领用申请</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="materielData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="SubmitReason" label="申请原因" align="center">
</el-table-column>
<el-table-column prop="SubmitTime" label="申请时间" align="center">
</el-table-column>
<el-table-column prop="ExamineUserName" label="审核人" align="center">
</el-table-column>
<el-table-column prop="ExameReason" label="审核理由" align="center">
</el-table-column>
<el-table-column prop="ExamineTime" label="审核时间" align="center" />
<el-table-column prop="LyTime" label="领用时间" align="center">
</el-table-column>
<el-table-column prop="SubmitStateName" label="状态" align="center">
</el-table-column>
<el-table-column prop="Remarks" label="备注" align="center">
</el-table-column>
<el-table-column
label="操作"
align="left"
fixed="right"
width="240px"
prop="SubmitState"
>
<template v-slot="scope">
<a-button
type="primary"
ghost
round
size="small"
@click="getDetailInfo(scope.row)"
>查看</a-button
>
<a-button
v-if="[-2].includes(scope.row.SubmitState)"
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
v-if="[-2].includes(scope.row.SubmitState)"
ghost
round
size="small"
@click="Submit(scope.row, 0)"
>提交</a-button
>
<a-button
type="primary"
class="actions"
v-if="scope.row.SubmitState === 0"
ghost
round
size="small"
@click="Submit(scope.row, -2)"
>撤销</a-button
>
<a-button
type="primary"
class="actions"
v-if="scope.row.SubmitState ===
1"
ghost
round
size="small"
@click="receive(scope.row,2)"
>领取</a-button
>
<a-button
v-if="[-2, 0].includes(scope.row.SubmitState)"
type="primary"
ghost
round
size="small"
@click="deleteClick(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog title="领用详细查看" :visible.sync="borrowTableVisible">
<el-card>
<div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基本信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
size="small"
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody line-height:1>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">申请原因</th>
<td class="textContent">
{{ detailData.SubmitReason }}
</td>
<th class="textHeader">申请时间</th>
<td class="textContent">
{{ detailData.SubmitTime }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核人</th>
<td class="textContent">
{{ detailData.ExamineUserName }}
</td>
<th class="textHeader">审核理由:</th>
<td class="textContent">
{{ detailData.ExameReason }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">审核时间</th>
<td class="textContent">
{{ detailData.ExamineTime }}
</td>
<th class="textHeader">领用时间</th>
<td class="textContent">
{{ detailData.LyTime }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">状 态</th>
<td class="textContent">
{{ detailData.SubmitStateName }}
</td>
<th class="textHeader">备 注</th>
<td class="textContent">
{{ detailData.Remarks }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card
class="box-card"
style="text-align: center; margin-top: 35px"
>
<label class="labelBorrow">领取装备表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型"
align="center"
>
</el-table-column>
<el-table-column prop="LyCount" label="领用数量" align="center">
</el-table-column>
</el-table>
</template>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 新增/编辑 -->
<el-dialog
width="70%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm('ruleForm')"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
style="margin-top: 10px;margin-bottom: 35px"
>
<el-row :gutter="10">
<el-col :span="8" class="dia">
<el-form class="diaC">大类选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MainClass"
filterable
clearable
style="width: 300px"
@change="getClass"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">物料选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MaterielName"
filterable
clearable
style="width: 300px"
@change="getMateriel"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">号型选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EqSizeId"
filterable
clearable
style="width: 300px"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
<el-button
size="small"
class="buttonClass"
type="primary"
icon="el-icon-circle-plus-outline"
round
@click="addEquipment"
>添加装备</el-button
>
</el-col>
<el-col :span="16" style="padding-top: 31px">
<el-table
:data="ruleForm.BorrowList"
ref="BorrowList"
height="250"
border
style="width: 100%"
>
<el-table-column
prop="MaterielID"
label="物料ID"
align="center"
v-if="false"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="LyCount"
label="装备数量"
align="center"
>
<template slot-scope="scope">
<el-input-number
v-model="scope.row.LyCount"
:min="1"
:max="200"
></el-input-number>
</template>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
@click="deleteEquipment(scope.$index, scope.row)"
icon="el-icon-delete"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10"> </el-col>
</el-row>
</el-form>
<el-divider style="margin-bottom: 35px;"></el-divider>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
style="margin-top: 30px"
>
<!-- class="inputClass" -->
<el-row :gutter="90" style="margin-top: 30px">
<el-col :span="6" >
<el-form-item label="申请原因" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="ruleForm.SubmitReason"
></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="备注" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="ruleForm.Remarks"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
import { quillEditor, Quill } from "vue-quill-editor";
// import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
const Font = Quill.import("attributors/style/font"); // 引入这个后会把样式写在style上
const fonts = ["SimSun", "SimHei", "Microsoft-YaHei", "KaiTi", "FangSong"];
import { mapState } from "vuex";
export default {
data() {
return {
SubmitState: [
{
value: "-3",
label: "全部",
},
{
value: "-2",
label: "待提交",
},
{
value: "-1",
label: "未通过",
},
{
value: "0",
label: "待审批",
},
{
value: "1",
label: "待领取",
},
{
value: "2",
label: "已领取",
},
],
// 用户选中日期
timeData: [],
// 日期配置
pickerOptions: {
shortcuts: [
{
text: "最近一日",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
SubmitState: "", //审核状态
SubmitUsrID: "", //登录账号ID
BeginTime: "",
EndTime: "",
borrowType:0
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
searchClassData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
CategoryID: "",
IsHaoCai:1
},
searchEquipmentData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
EqSizeId: "",
},
classOption: [],
MaterielOption: [],
sizeOption: [],
editForm:
{
ID:"",
SubmitState:0
},
ruleForm: {
ID: 0,
PlanName: "",
PlanState: 0,
borrowType:0,
IsHaoCai:1,
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
LyCount: 1,
},
],
},
AddPlanForm: {
MaterielName: "",
MainClass: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
},
resetForm() {
this.classOption= [],
this.MaterielOption= [],
this.sizeOption= [],
this.AddPlanForm = {
MaterielName: "",
MainClass: "",
MaterielCode: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
},
this.ruleForm = {
ID: 0,
SubmitReason: "", //申请理由
Remarks: "", //备注
BorrowList: [
{
MainClass: "",
MaterielCode: "",
MaterielName: "",
MaterielID: "",
EqSizeId: "",
EqSizeName: "",
EqSizeCode: "",
LyCount: 1,
},
],
};
},
searchMaterielData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ESC",
MaterielId: "",
},
title: "",
fixData: {
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
addVisible: false,
borrowTableVisible: false,
detailData: {},
fixdetailData: [],
loading: false,
tabLoading: false,
src: "../assets/images/记录.png",
activeName: "first",
rules: {
CategoryID: [
{ required: true, message: "请选择物料类型", trigger: "change" },
],
Code: [
{
required: true,
message: "请输入编码",
trigger: "blur",
},
{ min: 1, message: "请输入编码", trigger: "blur" },
],
MaterielName: [
{
required: true,
message: "请输入物料名称",
trigger: "blur",
},
{ min: 1, message: "请输入物料名称", trigger: "blur" },
],
Unit: [
{
required: true,
message: "请输入物料单位",
trigger: "blur",
},
{ min: 1, message: "请输入物料单位", trigger: "blur" },
],
},
EditRuleForm: {
ID: "",
CategoryName: "",
TermDays: 0,
Code: "",
PlanName: "",
MaterielName: "",
Unit: "",
CategoryID: "",
EqCount: "",
IsHaoCai: 1,
Storage: "",
Instructions: "",
WeiXiuCL: "",
BaoYangCL: "",
Remarks: "",
},
materielData: [],
tableData: [],
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
computed: {
// vuex数据
...mapState(["userData"]),
},
created() {
this.getQueuData();
},
methods: {
dateChange(date) {
this.searchData.BeginTime = date ? date[0] : "";
this.searchData.EndTime = date ? date[1] : "";
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
//查看信息
check(row) {
this.borrowTableVisible = true;
this.detailData = row;
},
//新增领用申请
async addRecive() {
this.title = "领用申请(耗材物资)";
this.addVisible = true;
this.ruleForm.BorrowList = [];
// console.log("rule",this.ruleForm)
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//编辑信息
async edit(row) {
this.addVisible = true;
this.title = "修改领用申请";
this.addVisible = true;
var url = "api/Borrow/" + row.ID;
const { data: res } = await this.$axios.get(url);
this.ruleForm = JSON.parse(JSON.stringify(res));
console.log("rule",this.ruleForm)
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
//物料选择后
async getMateriel(val) {
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
if (val !== "") {
var obj = {};
obj = this.MaterielOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.MaterielId = obj.ID;
this.AddPlanForm.MaterielCode = obj.MaterielCode;
this.AddPlanForm.MaterielName = obj.MaterielName;
this.searchMaterielData.MaterielId=val
const { data: res } = await this.$axios.get("api/EqSize", {
params: this.searchMaterielData,
});
this.sizeOption = res.Rows;
// console.log("size",this.sizeOption)
} else {
this.MaterielOption = [];
this.sizeOption = [];
this.AddPlanForm.MaterielID = "";
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
}
},
//获取号型的名字和ID
async getIDAndName(val) {
if (val !== "") {
var obj = {};
obj = this.sizeOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.EqSizeId = obj.ID;
this.AddPlanForm.EqSizeName = obj.EqSizeName;
this.AddPlanForm.EqSizeCode = obj.Code;
} else {
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
}
},
//获取详细信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/Borrow/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.BorrowList;
this.detailData = res;
},
///获取类别的ID和内容
async getClass(val) {
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
if (val !== "") {
this.searchClassData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchClassData,
});
this.MaterielOption = res.Rows;
} else {
this.sizeOption = [];
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
}
},
//添加装备
addEquipment() {
var obj = {};
var plan = {
LyCount: 1,
MainClass: this.AddPlanForm.MainClass,
MaterielName: this.AddPlanForm.MaterielName,
MaterielID: this.AddPlanForm.MaterielId,
MaterielCode: this.AddPlanForm.MaterielCode,
EqSizeId: this.AddPlanForm.EqSizeId,
EqSizeName: this.AddPlanForm.EqSizeName,
EqSizeCode: this.AddPlanForm.EqSizeCode,
};
console.log("添加物资", plan);
obj = this.ruleForm.BorrowList.find(function (item) {
return item.EqSizeId === plan.EqSizeId;
});
if (obj === undefined) {
this.ruleForm.BorrowList.push(plan);
// this.AddPlanForm.EqSizeId="";
// this.AddPlanForm.EqSizeName="";
} else {
this.$message.error("已经存在该物资");
}
},
//删除装备
deleteEquipment(row) {
this.ruleForm.BorrowList.splice(row, 1);
},
// 提交操作
Submit(row, SubmitState) {
this.editForm.ID=row.ID;
this.editForm.SubmitState=SubmitState;
var stateName="";
if(SubmitState===0)//提交
{
stateName="提交"
}
else
{
stateName="撤销"
}
const url = "/api/Borrow/ChangeState" ;
this.$confirm("是否"+stateName+"提交该数据?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.post(url,this.editForm);
if (res.Success === true) {
this.getQueuData();
this.$message.success("已"+stateName+"该申请");
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error(""+stateName+"申请");
});
},
receive(row, SubmitState)
{
this.editForm.ID=row.ID;
this.editForm.SubmitState=SubmitState;
var stateName="";
if(SubmitState===2)//提交
{
stateName="领用"
}
else
{
stateName="撤销"
}
const url = "/api/Borrow/ChangeState" ;
this.$confirm("是否"+stateName+"该操作?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.post(url,this.editForm);
if (res.Success === true) {
this.getQueuData();
this.$message.success("已"+stateName);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error(""+stateName+"操作");
});
},
///提交表单
submitForm(formName, type) {
var IsAdmin = false;
if ((this.userData.State = 1)) {
this.IsAdmin = true;
}
this.ruleForm.IsHaoCai=1;
const borrowUrl = "/api/Borrow?" + "IsAdmin=" + IsAdmin;
this.$refs[formName].validate(async (valid) => {
if (valid) {
if (type === "领用申请(耗材物资)") {
const { data: res } = await this.$axios.post(
borrowUrl,
this.ruleForm
);
if (res.Success !== true) return this.$message(res.message);
} else {
//修改预案类型
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.put(
borrowUrl,
this.ruleForm
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
// computed: {
// // vuex数据
// ...mapState([
// "navList",
// "collapsed",
// "menuList",
// "active",
// "activeOnePath",
// "activeLine",
// "userData",
// ]),
// },
async getQueuData() {
this.borrowType=0;
this.loading = true;
this.searchData.SubmitUsrID = this.userData.Id;
const { data: res } = await this.$axios.get("api/Borrow", {
params: this.searchData,
});
this.total = res.Total;
this.materielData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 删除
deleteClick(row) {
const url = "/api/Borrow/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
console.log(val);
this.getQueuData();
},
stateFormat(row) {
if (row.EqHaoCai === 0) {
return "已贴标";
} else {
return "未贴标";
}
},
closeForm() {
this.resetForm();
},
},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.diaB {
font-weight: 1000;
margin-left: 29px;
margin-top: 10px;
}
.inputA {
width: 182px;
}
.labelClassT
{
width: 282px;
}
.labelClass {
font-weight: 800;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.myQuillEditor {
width: 450px;
min-height: 192px;
}
.diaC {
font-weight: 1000;
margin-left: 29px;
margin-bottom: 12px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.areaClass {
width: 87%;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
.el-dialog {
width: 66%;
}
.buttonClass {
line-height: 0px;
text-align: center;
width: 61%;
margin-left: 29px;
height: 31px;
font-size: larger;
}
</style>
// 系统管理 - 用户管理
<template>
<div class="body">
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/icons/3D库房.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">人员信息</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>系统设置 </el-breadcrumb-item>
<el-breadcrumb-item>人员信息</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box" :rules="rules">
<!-- 信息展示页面 -->
<el-card style="height: 150px;" class="spanbox">
<div slot="header" class="clearfix">
<span>个人信息</span>
</div>
<el-form class="spanbox">
<el-row>
<el-col :span="6">
<el-form-item label="编号:">
<span class="clock_text">{{
borrowData.length > 0 ? borrowData[0].PoliceCode : "无"
}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="人员账户:">
<span class="clock_text">{{ userData.UserName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="储位:">
<span class="clock_text">{{borrowData[0].StorageCode===""?"暂无":borrowData[0].StorageCode}}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="部门:">
<span class="clock_text">{{borrowData[0].DepartName===""?"暂无":borrowData[0].DepartName}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-form
:inline="true"
size="medium"
:model="ruleForm"
ref="ruleForm"
:rules="rules"
label-position="left"
class="spanbox"
>
<el-card style="height: 150px" class="spanbox">
<div slot="header">
<el-form-item label="系统登录密码: ">
<span class="clock_text">{{
borrowData.length > 0 ? borrowData[0].UserPassword : "无"
}}</span>
</el-form-item>
<el-row>
<el-col :span="7">
<el-form-item label="修改密码" prop="UserPassword">
<el-input
clearable
size="small"
type="password"
style="width: 300px"
v-model="ruleForm.UserPassword"
placeholder="请输入登录密码"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="确认密码" prop="UserConfigPassword">
<el-input
clearable
size="small"
type="password"
style="width: 300px"
v-model="ruleForm.UserConfigPassword"
placeholder="请输入确认密码"
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
<el-card style="height: 150px" class="spanbox" v-if="cabinetShow">
<div slot="header">
<el-form-item label="单警柜密码: ">
<span class="clock_text">{{
borrowData.length > 0 ? borrowData[0].StoragePassword : "无"
}}</span>
</el-form-item>
<el-row>
<el-col :span="7">
<el-form-item label="修改密码" prop="StoragePassword">
<el-input
clearable
size="small"
type="password"
style="width: 300px"
v-model="ruleForm.StoragePassword"
placeholder="请输入6位数字密码"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="确认密码" prop="PecolieConfigPassword">
<el-input
clearable
size="small"
type="password"
style="width: 300px"
v-model="ruleForm.PecolieConfigPassword"
placeholder="请输入确认密码"
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
<el-card style="height: 150px" class="spanbox">
<div slot="header">
<el-form-item label="出口指纹机密码: ">
<span class="clock_text" >{{
borrowData.length > 0 ? borrowData[0].PolicePassword : "暂无"
}}</span>
</el-form-item>
<el-row>
<el-col :span="7">
<el-form-item label="修改密码" prop="PolicePassword">
<el-input
clearable
size="small"
type="password"
v-model="ruleForm.PolicePassword"
style="width: 300px"
placeholder="请输入6位数字密码"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="确认密码" prop="PoliceConfigPassword">
<el-input
clearable
size="small"
type="password"
style="width: 300px"
placeholder="请输入确认密码"
v-model="ruleForm.PoliceConfigPassword"
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
</el-form>
<div class="buttionBox">
<a-button
type="primary"
style="height: 40px"
class="buttonClass"
@click="UpdatePassword('ruleForm')"
>保存</a-button
>
</div>
</div>
</div>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { mapState } from "vuex";
export default {
components: { Treeselect },
// 重加载事件
inject: ["reload"],
data() {
var validatePassUser = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入密码"));
} else {
if (this.ruleForm.UserConfigPassword !== "") {
this.$refs.ruleForm.validateField("UserConfigPassword");
}
callback();
}
};
var validatePassUser2 = (rule, value, callback) => {
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.ruleForm.UserPassword) {
callback(new Error("两次输入密码不一致!"));
} else {
callback();
}
};
var validatePassPolice = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入密码"));
} else {
if (this.ruleForm.PoliceConfigPassword !== "") {
this.$refs.ruleForm.validateField("PoliceConfigPassword");
}
callback();
}
};
var validatePassPolice2 = (rule, value, callback) => {
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.ruleForm.PolicePassword) {
callback(new Error("两次输入密码不一致!"));
} else {
callback();
}
};
var validatePassPecolie = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入密码"));
} else {
if (this.ruleForm.PecolieConfigPassword !== "") {
this.$refs.ruleForm.validateField("PecolieConfigPassword");
}
callback();
}
};
var validatePassPecolie2 = (rule, value, callback) => {
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.ruleForm.StoragePassword) {
callback(new Error("两次输入密码不一致!"));
} else {
callback();
}
};
return {
rules: {
PolicePassword: [
{ required: true, message: "请输入密码", trigger: "blur" },
{
min: 6,
max: 16,
message: "长度在 6 到 16 个字符",
trigger: "blur",
},
{ validator: validatePassPolice, trigger: "blur" , required: true},
],
PoliceConfigPassword: [
{ required: true, message: "请确认密码", trigger: "blur" },
{
min: 6,
max: 16,
message: "长度在 6 到 16 个字符",
trigger: "blur",
},
{ validator: validatePassPolice2, trigger: "blur", required: true },
],
StoragePassword: [
{ required: true, message: "请输入密码", trigger: "blur" },
{
min: 6,
max: 16,
message: "长度在 6 到 16 个字符",
trigger: "blur",
},
{ validator: validatePassPecolie, trigger: "blur" , required: true},
],
PecolieConfigPassword: [
{ required: true, message: "请输入密码", trigger: "blur" },
{
min: 6,
max: 16,
message: "长度在 6 到 16 个字符",
trigger: "blur",
},
{ validator: validatePassPecolie2, trigger: "blur" , required: true},
],
UserPassword: [
{ required: true, message: "请输入密码", trigger: "blur" },
{
min: 6,
max: 16,
message: "长度在 6 到 16 个字符",
trigger: "blur",
},
{ validator: validatePassUser, trigger: "blur" },
],
UserConfigPassword: [
{ required: true, message: "请确认密码", trigger: "blur", required: true },
{
min: 6,
max: 16,
message: "长度在 6 到 16 个字符",
trigger: "blur",
},
{ validator: validatePassUser2, trigger: "blur", required: true },
],
Code: [],
Remarks: [],
},
nowDate: new Date(),
title: "",
ruleForm: {
ID: 0,
PoliceCode: "",
PolicePassword: "",
StoragePassword: "",
UserPassword: "",
PoliceConfigPassword: "",
PecolieConfigPassword: "",
UserConfigPassword: "",
},
resetForm() {
this.ruleForm = {
ID: 0,
PoliceCode: "",
PolicePassword: "",
StoragePassword: "",
UserPassword: "",
PoliceConfigPassword: "",
PecolieConfigPassword: "",
UserConfigPassword: "",
};
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
borrowData: [],
cabinetShow:true,
editData: [],
addVisible: false,
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 控制输入
disableFlag: false,
};
},
mounted() {
this.getCreatedTime();
},
computed: {
// vuex数据
...mapState(["userData"]),
},
created() {
this.getQueuData();
console.log("fajklfhjakfh");
console.log(this.userData);
},
methods: {
// 获取当前时间
getCreatedTime() {
this.nowDate = this.timeNow();
console.log("shij", this.nowDate);
},
timeNow() {
return this.$moment(new Date())
.utc(480)
.format("YYYY-MM-DD HH:mm:ss");
},
changeHandler(value) {
console.log("改变之后的值是:" + value);
},
// 更新单据柜密码
async UpdatePassword(formName) {
this.$refs[formName].validate(async (valid) => {
if(valid)
{
const formData = new FormData();
formData.append("ID", this.userData.Id);
formData.append("UserPassword", this.ruleForm.UserPassword);
formData.append("StoragePassword", this.ruleForm.StoragePassword);
formData.append("PolicePassword", this.ruleForm.PolicePassword);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
const borrowUrl = "/api/User/UpdatePassword";
const { data: res } = await this.$axios.post(
borrowUrl,
formData,
config
);
if (res.Success == true) {
this.getQueuData();
return this.$message.success(res.Remark);}
else
{
this.getQueuData();
this.$message.success(res.Remark);
}
}
});
// location.reload()
},
// 关闭弹出框时重置表单数据
editClose() {
this.title = "添加警员";
this.formData = {};
// 通过ref来拿到表单,之后通过表单控件的方法实现重置
this.resetForm("ruleForm");
this.disableFlag = false;
},
async adddepartment() {
this.title = "添加警员";
this.addVisible = true;
this.$nextTick(() => {
this.resetForm("ruleForm");
});
this.getSuperiorDepartment();
this.GetPoliceCategory();
},
async getQueuData() {
this.loading = true;
const borrowUrl = "/api/User/GetUserInfo?" + "ID=" + this.userData.Id;
const { data: res } = await this.$axios.get(borrowUrl);
this.borrowData ? this.borrowData : [];
this.borrowData = res;
if(res[0].StorageCode===null)
{
this.cabinetShow=false;
}
else
{
this.cabinetShow=true;
}
console.log("获取PoliceCode", this.borrowData[0].PoliceCode);
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
},
computed: {
// vuex数据
...mapState([
"navList",
"collapsed",
"menuList",
"active",
"activeOnePath",
"activeLine",
"userData",
]),
},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
float: right;
margin-top: 10dp;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
.spanbox {
margin-top: 10px;
margin-left: 10px;
}
.buttionBox {
text-align: center;
}
.buttonClass {
display: inline-block;
height: 40px;
line-height: 40px;
width: 200px;
margin-top: 20px;
margin-left: 10px;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
}
.clearfix:after {
clear: both;
}
.text {
font-size: 14px;
}
.item {
margin-bottom: 18px;
}
.clock_text {
margin-left: 18px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/储位.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">储位管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理 </el-breadcrumb-item>
<el-breadcrumb-item>储位管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.StorageCode"
@keypress.native.enter="onEnterPress"
style="width: 200px"
class="textboxBo"
@input="inputChange"
placeholder="请输入柜名搜索"
></el-input>
<el-input
v-model="searchData.UserName"
@keypress.native.enter="onEnterPress"
style="width: 200px"
class="textboxBo"
@input="inputChange"
placeholder="请输入所属人员搜索"
></el-input>
<el-select
v-model="searchData.StorageType"
class="textboxBo"
placeholder="请选择柜类型"
@change="selectChange"
>
<el-option
v-for="item in StorageType"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addWarehouse()"
>新增</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="LibraryID" v-if="false" />
<el-table-column prop="StorageCode" label="柜名" align="center">
</el-table-column>
<el-table-column prop="StorageTypeName" label="类型" align="center">
</el-table-column>
<el-table-column prop="LibraryName" label="仓库" align="center">
</el-table-column>
<el-table-column prop="PoliceName" label="所属人员" align="center">
</el-table-column>
<el-table-column prop="DepartName" v-if="false"> </el-table-column>
<el-table-column prop="PoliceID" v-if="false"> </el-table-column>
<el-table-column prop="DepartName" label="部门" align="center">
</el-table-column>
<el-table-column prop="Remarks" label="备注" align="center">
</el-table-column>
<el-table-column prop="CreateName" label="创建人" align="center">
</el-table-column>
<el-table-column prop="CreateTime" label="创建日期" align="center">
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="deleteCabinet(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
width="25%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm"
>
<div style="border: 0px solid #e8e8e8">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
class="inputClass"
label-width="100px"
>
<el-form-item label="储位名称" prop="StorageCode">
<el-input v-model="ruleForm.StorageCode"></el-input>
</el-form-item>
<el-form-item label="储位类型" >
<el-select
style="width: 300px"
v-model="ruleForm.StorageType2"
placeholder="请选择类型"
:disabled="typeSelect"
@change="storageChange"
>
<el-option
v-for="item in StorageType2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属人员" v-if="people">
<el-select
style="width: 300px"
v-model="ruleForm.PoliceID"
placeholder="请选择所属人员"
filterable
clearable
>
<el-option
v-for="item in Users"
:key="item.ID.toString()"
:label="item.UserName + '-' + item.DepartName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="仓库选择" prop="LibraryName">
<el-select
style="width: 300px"
v-model="ruleForm.LibraryName"
placeholder="请选择仓库"
clearable
@change="libraryChange"
>
<el-option
v-for="item in Libarys"
:key="item.ID"
:label="item.LibaryName"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
v-if="cabinetShow"
label="单警柜地址"
prop="LockAddress"
>
<el-input :disabled="cabinetDis" v-model="ruleForm.LockAddress"></el-input>
</el-form-item>
<el-form-item label="备注" prop="Remarks">
<el-input v-model="ruleForm.Remarks"></el-input>
</el-form-item>
<el-form-item v-if="false">
<el-input v-model="ruleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button
@click="resetForm('ruleForm')"
v-if="title !== '修改储位'"
>重 置</el-button
>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.Page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
rules: {
StorageCode: [
{ required: true, message: "请输入储位名称", trigger: "blur" },
{ min: 1, message: "请输入储位名称", trigger: "blur" },
],
LibraryName: [
{ required: true, message: "请选择仓库", trigger: "blur" },
],
},
people: false,
typeSelect: false,
cabinetShow: false,
cabinetDis: false,
Libarys: [],
StorageType: [
{
value: -1,
label: "全部",
},
{
value: 0,
label: "公共柜",
},
{
value: 1,
label: "单警柜",
},
{
value: 2,
label: "储物柜",
},
],
StorageType2: [
{
value: 2,
label: "储物柜",
},
{
value: 1,
label: "单警柜",
},
],
Users: [],
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
StorageCode: "",
UserName: "",
StorageType: -1,
},
searchStorage: {
Page: 1,
Rows: 9999,
Sort: "ID",
Order: "ESC",
StorageCode: "",
},
title: "",
ruleForm: {
ID: 0,
PoliceID:"",
PoliceName: "",
LibraryName: "",
LibraryId: "",
User: "",
StorageType: "1",
StorageType2: "2",
StorageCode: "",
Remarks: "",
StorageTypeName: "",
LockAddress: "",
},
resetForm() {
this.$refs["ruleForm"].resetFields();
this.people = false;
this.cabinetShow = false;
this.ruleForm = {
ID: 0,
PoliceName: "",
PoliceID:"",
LibraryName: "",
LibraryId: "",
User: "",
StorageType: "1",
StorageType2: "2",
StorageCode: "",
Remarks: "",
StorageTypeName: "",
LockAddress: "",
};
},
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
borrowData: [],
editData: [],
addVisible: false,
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
console.log("ru", this.ruleForm);
formData.append("ID", this.ruleForm.ID);
formData.append("StorageCode", this.ruleForm.StorageCode);
formData.append("StorageType", this.ruleForm.StorageType2);
formData.append("PoliceID", this.ruleForm.PoliceID);
formData.append("LibraryId", this.ruleForm.LibraryId);
formData.append("Remarks", this.ruleForm.Remarks===null?"":this.ruleForm.Remarks);
formData.append("LockAddress", this.ruleForm.LockAddress);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "新增储位") {
const { data: res } = await this.$axios.post(
"/api/Storage",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
} else {
//修改储位
formData.append("ID", this.ruleForm.ID);
const { data: res } = await this.$axios.put(
"/api/Storage",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
//删除储位
async deleteCabinet(row)
{
const url = "/api/Storage/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
inputChange()
{
this.searchData.Page=1
},
selectChange()
{
this.searchData.Page=1
},
//修改仓库
async edit(row) {
this.typeSelect = true;
this.title = "修改储位";
this.addVisible = true;
this.cabinetDis = true;
if (row.StorageType === 1) {
//单警柜
this.people = true;
this.cabinetShow = true;
} else {
//公共柜
this.people = false;
this.cabinetShow = false;
}
(this.StorageType2 = [
{
value: 2,
label: "储物柜",
},
{
value: 1,
label: "单警柜",
},
{ value: 0, label: "公共柜" },
]),
(this.ruleForm = JSON.parse(JSON.stringify(row)));
this.ruleForm.StorageType2 = JSON.parse(JSON.stringify(row.StorageType));
const { data: Libary } = await this.$axios.get("api/Libary", {
params: this.searchStorage,
});
console.log("row",row);
// var obj = {};
// obj = this.Libarys.find(function (item) {
// return item.ID === row.LibraryId;
// });
this.ruleForm.LibraryId= row.LibraryID;
const { data: User } = await this.$axios.get("api/User/GetAllUser");
this.Libarys = Libary.Rows;
this.Users = User.Rows;
},
libraryChange(row)
{
var obj = {};
obj = this.Libarys.find(function (item) {
return item.ID === row;
});
this.ruleForm.LibraryName=obj.LibaryName;
this.ruleForm.LibraryId=obj.ID;
},
//关闭窗口
closeForm() {
this.resetForm();
this.addVisible = false;
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
//添加储位
async addWarehouse() {
(this.StorageType2 = [
{
value: "2",
label: "储物柜",
},
{
value: "1",
label: "单警柜",
},
]),
(this.typeSelect = false);
this.cabinetDis = false;
this.addVisible = true;
this.title = "新增储位";
const { data: Libary } = await this.$axios.get("api/Libary", {
params: this.searchStorage,
});
const { data: User } = await this.$axios.get("api/User/GetAllUser");
this.Libarys = Libary.Rows;
this.Users = User.Rows;
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/Storage", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
storageChange(val) {
if (val === "1") {
//单警柜
this.people = true;
this.cabinetShow = true;
} else {
this.people = false;
this.cabinetShow = false;
}
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/应急预案.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">预案管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理 </el-breadcrumb-item>
<el-breadcrumb-item>预案管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.PlanName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入预案名称搜索"
></el-input>
<!-- <el-select
v-model="searchData.LibaryType"
class="textboxBo"
placeholder="请选择装备类型"
>
<el-option
v-for="item in LibaryType"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> -->
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addPlan()"
>添加预案</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="PlanName" label="预案名称" align="center">
</el-table-column>
<el-table-column prop="PlanInfo" label="预案详情" align="center">
</el-table-column>
<el-table-column prop="Remark" label="备注" align="center">
</el-table-column>
<el-table-column prop="PlanState" label="预案状态" align="center">
<template v-slot="scope">
{{
scope.row.PlanState === -1
? "禁用"
: scope.row.PlanState === 0
? "启用(关闭)"
: "启用(启动)"
}}
</template>
</el-table-column>
<el-table-column prop="CreateTime" label="创建时间" align="center">
</el-table-column>
<el-table-column prop="CreateName" label="创建人员" align="center">
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="watch(scope.row)"
>查看</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="deleteClick(scope.row)"
>删除</a-button
>
</template>
</el-table-column>
<el-table-column label="停启用预案" width="200" align="center">
<template v-slot="scope">
<el-switch
v-model="scope.row.PlanState"
@change="changeState(scope.row)"
:active-value="0"
:inactive-value="-1"
>
</el-switch>
</template>
</el-table-column>
</el-table>
<el-dialog
width="70%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm('ruleForm')"
>
<div style="border: 0px solid #e8e8e8">
<el-divider></el-divider>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleSet"
label-width="100px"
style="margin-top: 10px"
>
<!-- class="inputClass" -->
<el-row :gutter="90">
<el-col :span="10">
<el-form-item
label="预案名称"
class="labelClass"
prop="PlanName"
>
<el-input
class="planClass"
v-model="ruleForm.PlanName"
></el-input>
</el-form-item>
<el-form-item label="预案描述" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="ruleForm.PlanInfo"
></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item class="labelClass" label="预案状态">
<el-radio v-model="ruleForm.PlanState" :label="0"
>生效</el-radio
>
<el-radio v-model="ruleForm.PlanState" :label="-1"
>禁用</el-radio
>
</el-form-item>
<el-form-item label="备注" class="labelClass">
<el-input
class="labelClassT"
type="textarea"
:rows="2"
v-model="ruleForm.Remark"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-divider></el-divider>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleSet2"
label-width="100px"
style="margin-top: 10px"
>
<el-row :gutter="10">
<el-col :span="8" class="dia">
<el-form class="diaC">大类选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MainClass"
filterable
clearable
style="width: 260px"
@change="getClass"
placeholder="请选择大类"
>
<el-option
v-for="item in classOption"
:key="item.ID"
:label="item.EqCategoryName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">物料选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.MaterielName"
filterable
clearable
style="width: 260px"
@change="getMateriel"
placeholder="请选择物料"
>
<el-option
v-for="item in MaterielOption"
:key="item.ID"
:label="item.MaterielName"
:value="item.ID"
>
</el-option>
</el-select>
<el-form class="diaC">号型选择</el-form>
<el-select
class="diaC"
v-model="AddPlanForm.EqSizeId"
filterable
clearable
style="width: 260px"
@change="getIDAndName"
placeholder="请选择号型"
>
<el-option
v-for="item in sizeOption"
:key="item.ID"
:label="item.EqSizeName"
:value="item.ID"
>
</el-option>
</el-select>
<el-button
size="small"
class="buttonClass"
type="primary"
icon="el-icon-circle-plus-outline"
round
@click="addEquipment"
>添加装备</el-button
>
</el-col>
<el-col :span="16" style="padding-top: 31px">
<el-table
:data="ruleForm.PlanDetail"
ref="planDetail"
height="250"
border
style="width: 100%"
>
<el-table-column
prop="MaterielId"
label="物料ID"
align="center"
v-if="false"
>
</el-table-column>
<el-table-column
prop="EqSizeName"
label="号型名称"
align="center"
>
</el-table-column>
<el-table-column
prop="MaterielName"
label="物料名称"
align="center"
>
</el-table-column>
<el-table-column
prop="EqCount"
label="装备数量"
align="center"
>
<template slot-scope="scope">
<el-input-number
v-model="scope.row.EqCount"
:min="1"
:max="200"
></el-input-number>
</template>
</el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button
type="primary"
size="small"
@click="deleteEquipment(scope.$index, scope.row)"
icon="el-icon-delete"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="10"> </el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm(title)"
>提交</el-button
>
</span>
</el-dialog>
<!-- 详细信息弹出 -->
<el-dialog title="查看明细" :visible.sync="baseTableVisible">
<el-card>
<div slot="header" class="clearfix">
<span class="labelBorrow">基础信息</span>
</div>
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">预案名称</th>
<td class="textContent">
{{ detailData.PlanName }}
</td>
<th class="textHeader">预案状态</th>
<td class="textContentLast">
{{
detailData.PlanState === -1
? "禁用"
: detailData.PlanState === 0
? "停用"
: "开启中"
}}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">预案描述</th>
<td class="textContentLast">
{{ detailData.PlanInfo }}
</td>
</tr>
<tr>
<th class="textHeader">备注</th>
<td colspan="5" class="textContentLast">
{{ detailData.Remark }}
</td>
</tr>
</tbody>
</table>
</div>
</el-card>
<el-card class="box-card" style="margin-top: 35px">
<label class="labelBorrow">装备明细表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column prop="EqSizeName" label="号型名称">
</el-table-column>
<el-table-column prop="MaterielName" label="物料名称">
</el-table-column>
<el-table-column prop="EqCount" label="装备数量">
</el-table-column>
</el-table>
</template>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="baseTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
rules: {
PlanName: [
{ required: true, message: "请输入预案名称", trigger: "blur" },
{ min: 1, message: "请输入预案名称", trigger: "blur" },
],
},
baseTableVisible: false,
tableData: [],
classOption: [],
MaterielOption: [],
sizeOption: [],
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ASC",
PlanName: "",
},
searchEqCategoryData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
},
resetForm() {
this.$refs["ruleSet"].resetFields();
this.AddPlanForm={
MaterielName: "",
MainClass: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
}
},
searchClassData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
CategoryID: "",
},
searchMaterielData: {
Page: 1,
Rows: 999,
Sort: "ID",
Order: "ASC",
MaterielId: "",
},
title: "",
ruleForm: {
ID: 0,
PlanName: "",
PlanState: 0,
PlanDetail: [
{
MainClass: "",
Materiel: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
EqCount: 1,
},
],
},
AddPlanForm: {
MaterielName: "",
MainClass: "",
MaterielId: "",
EqSizeId: "",
EqSizeName: "",
},
detailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
borrowData: [],
editData: [],
addVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取号型的名字和ID
async getIDAndName(val) {
if (val !== "") {
var obj = {};
obj = this.sizeOption.find(function (item) {
return item.ID === val;
});
// console.log(obj)
this.AddPlanForm.EqSizeId = obj.ID;
this.AddPlanForm.EqSizeName = obj.EqSizeName;
}
},
///查看详情
async watch(row) {
this.baseTableVisible = true;
const borrowUrl = "/api/Plan/" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.PlanDetail;
this.detailData = res;
},
//提交表单
submitForm(type) {
console.log("RU", this.ruleForm);
this.$refs["ruleSet"].validate(async (valid) => {
if (valid) {
if (type === "添加预案") {
if (
this.ruleForm.PlanDetail == undefined ||
this.ruleForm.PlanDetail.length <= 0
) {
return this.$message.error("请至少添加一个物资");
}
const { data: res } = await this.$axios.post(
"/api/Plan",
this.ruleForm
);
if (res.Success !== true) return this.$message.error(res.Remark);
} else {
if (
this.ruleForm.PlanDetail == undefined ||
this.ruleForm.PlanDetail.length <= 0
) {
return this.$message.error("请至少添加一个物资");
}
//修改预案类型
const { data: res } = await this.$axios.put(
"/api/Plan",
this.ruleForm
);
if (res.Success !== true) return this.$message.error(res.Remark);
}
this.getQueuData();
this.addVisible = false;
return this.$message.success(res.Remark);
} else {
return false;
}
});
},
//改变预案停启用状态
async changeState(row) {
const formData = new FormData();
formData.append("ID", row.ID);
formData.append("PlanState", row.PlanState);
this.ruleForm.ID = row.ID;
this.ruleForm.PlanState = row.PlanState;
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
const { data: res } = await this.$axios.post(
"/api/Plan/UpdateState",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
this.getQueuData();
},
//修改
async edit(row) {
this.title = "修改预案";
this.addVisible = true;
var url = "api/Plan/" + row.ID;
const { data: res } = await this.$axios.get(url);
this.ruleForm = JSON.parse(JSON.stringify(res));
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
// console.log(this.ruleForm);
},
//删除预案
deleteClick(row) {
const url = "/api/Plan/" + row.ID;
this.$confirm("此操作将永久删除该条数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
const { data: res } = await this.$axios.delete(url);
if (res.Success === true) {
this.getQueuData();
this.$message.success(res.Remark);
} else {
this.$message.error(res.Remark);
}
})
.catch((e) => {
this.$message.error("已取消删除");
});
},
///获取物料内容
async getClass(val) {
this.AddPlanForm.MaterielName = "";
this.AddPlanForm.EqSizeId = "";
if (val !== "") {
this.searchClassData.CategoryID = val;
const { data: res } = await this.$axios.get("api/Materiel", {
params: this.searchClassData,
});
this.MaterielOption = res.Rows;
}
},
//获取号型
async getMateriel(val) {
this.AddPlanForm.EqSizeId = "";
this.AddPlanForm.EqSizeName = "";
if (val !== "") {
var obj = {};
obj = this.MaterielOption.find(function (item) {
return item.ID === val;
});
this.AddPlanForm.MaterielId = obj.ID;
this.AddPlanForm.MaterielName = obj.MaterielName;
this.searchMaterielData.MaterielId = val;
const { data: res } = await this.$axios.get("api/EqSize", {
params: this.searchMaterielData,
});
this.sizeOption = res.Rows;
// console.log("size",this.sizeOption)
}
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
//新增预案
async addPlan() {
this.title = "添加预案";
this.addVisible = true;
this.ruleForm.PlanDetail = [];
// console.log("rule",this.ruleForm)
const { data: resclass } = await this.$axios.get("api/EqCategory", {
params: this.searchEqCategoryData,
});
this.classOption = resclass.Rows;
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/Plan", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
//关闭窗口
closeForm() {
this.resetForm();
this.addVisible = false;
},
//添加装备
addEquipment() {
if(this.AddPlanForm.MaterielId==="")
{
return this.$message.warning("请选择物料添加");
}
var plan = {
EqCount: 1,
MainClass: this.AddPlanForm.MainClass,
MaterielName: this.AddPlanForm.MaterielName,
MaterielId: this.AddPlanForm.MaterielId,
EqSizeId: this.AddPlanForm.EqSizeId,
EqSizeName: this.AddPlanForm.EqSizeName,
};
var obj = {};
obj = this.ruleForm.PlanDetail.find(function (item) {
return (
item.EqSizeId === plan.EqSizeId && item.MaterielId === plan.MaterielId
);
});
console.log(obj);
if (obj === undefined) {
this.ruleForm.PlanDetail.push(plan);
} else {
this.$message.error("已经存在该物资");
}
},
//删除装备
deleteEquipment(row) {
// this.ruleForm.PlanDetail.splice(this.$refs.planDetail.store.states.selection, 1)
console.log(row);
this.ruleForm.PlanDetail.splice(row, 1);
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.dia {
padding-left: 32px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.planClass {
width: 190px !important;
}
.labelClass {
font-weight: 800;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.labelClassT {
// width: 30% !important;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.diaC {
font-weight: 800;
margin-left: 29px;
margin-bottom: 12px;
}
.buttonClass {
line-height: 0px;
text-align: center;
width: 61%;
margin-left: 29px;
height: 31px;
font-size: larger;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/库房管理.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">库房管理</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理 </el-breadcrumb-item>
<el-breadcrumb-item>库房管理</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-input
v-model="searchData.LibaryName"
@keypress.native.enter="onEnterPress"
ref="nameInput"
style="width: 200px"
class="textboxBo"
placeholder="请输入仓库名称搜索"
></el-input>
<el-select
v-model="searchData.LibaryType"
class="textboxBo"
placeholder="请选择装备类型"
>
<el-option
v-for="item in LibaryType"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addWarehouse()"
>添加库房</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="borrowData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column prop="LibaryType" v-if="false" />
<el-table-column prop="LibaryName" label="仓库名称" align="center">
</el-table-column>
<el-table-column
prop="LibaryTypeName"
label="仓库类型"
align="center"
>
</el-table-column>
<el-table-column prop="Remarks" label="备注" align="center">
<template slot-scope="scope">
<span v-if="scope.row.Remarks===null"> </span>
<span v-else>{{scope.row.Remarks}}</span>
</template>
</el-table-column>
<el-table-column prop="CreateName" label="创建人员" align="center">
</el-table-column>
<el-table-column prop="CreateTime" label="创建时间" align="center">
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template v-slot="scope">
<a-button
type="primary"
class="actions"
ghost
round
size="small"
@click="edit(scope.row)"
>修改</a-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
width="30%"
:close-on-click-modal="false"
:title="title"
:visible.sync="addVisible"
@close="closeForm"
>
<div style="border: 0px solid #e8e8e8">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
class="inputClass"
label-width="100px"
>
<el-form-item label="库房名称" prop="LibaryName">
<el-input
v-model="ruleForm.LibaryName"
></el-input> </el-form-item
>
<el-form-item label="库房类型" >
<el-select
style="width: 300px;"
v-model="ruleForm.LibaryType"
>
<el-option
v-for="item in LibaryType2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="Remarks">
<el-input v-model="ruleForm.Remarks"></el-input>
</el-form-item>
<el-form-item v-if="false">
<el-input v-model="ruleForm.ID"></el-input>
</el-form-item>
</el-form>
</div>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="addVisible = false">取 消</el-button>
<el-button @click="resetForm()" v-if="title!=='修改仓库'">重 置</el-button>
<el-button type="primary" @click="submitForm('ruleForm', title)"
>提交</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
rules: {
LibaryName: [
{ required: true, message: "请输入库房名称", trigger: "blur" },
{ min: 1, message: "请输入库房名称", trigger: "blur" },
],
Code: [
],
Remarks: [],
},
LibaryType: [
{
value: "-1",
label: "全部",
},
{
value: "0",
label: "普通仓库",
},
{
value: "1",
label: "汽车",
},
],
LibaryType2: [
{
value: "0",
label: "普通仓库",
},
{
value: "1",
label: "汽车",
},
],
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
LibaryName: "",
LibaryType: "-1",
},
title: "",
ruleForm: {
ID: 0,
LibaryName: "",
LibaryType:"",
Remarks: "",
},
resetForm() {
this.ruleForm = {
ID: 0,
LibaryName: "",
LibaryType:"",
Remarks: "",
}
},
detailData: [],
fixdetailData: [],
loading: false,
tabLoading: false,
// 用户选中日期
timeData: [],
input: "",
form: {},
tableData: [],
borrowData: [],
editData: [],
addVisible: false,
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 总条数
total: 0,
};
},
created() {
this.getQueuData();
},
methods: {
handleClick(tab, event) {
this.tabLoading = true;
console.log("300");
this.timer = setTimeout(() => {
//设置延迟执行
console.log("400");
this.tabLoading = false;
}, 2000);
},
//提交表单
submitForm(formName, type) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
const formData = new FormData();
formData.append("ID", this.ruleForm.ID);
formData.append("LibaryName", this.ruleForm.LibaryName);
formData.append("LibaryType", this.ruleForm.LibaryType);
formData.append("Remarks", this.ruleForm.Remarks==null?"":this.ruleForm.Remarks);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
if (type === "添加仓库") {
const { data: res } = await this.$axios.post(
"/api/Libary",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
} else {//修改仓库类型
// console.log(this.ruleForm.ID)
formData.append("ID", this.ruleForm.ID);
const { data: res } = await this.$axios.put(
"/api/Libary",
formData,
config
);
if (res.Success !== true) return this.$message(res.message);
}
this.getQueuData();
this.addVisible = false;
} else {
return false;
}
});
},
//修改仓库
async edit(row) {
this.title = "修改仓库";
this.addVisible = true;
this.ruleForm = JSON.parse(JSON.stringify(row));
this.ruleForm.LibaryType=JSON.parse(JSON.stringify(row.LibaryTypeName));
console.log(this.ruleForm)
},
//查看照片
watchPic() {},
clickLI(id) {
this.flag = id;
this.$nextTick(() => {
this.width = document.getElementById("liWidth").offsetWidth;
this.offsetW = document.getElementById("liWidth").offsetLeft;
});
},
//获取详细信息
async getDetailInfo(row) {
this.picVisible = true;
this.imgurl = window._CONFIG["dlURL"] + "/" + row.ImagePath;
},
//新增仓库
async addWarehouse() {
this.title = "添加仓库";
this.addVisible = true;
this.ruleForm.LibaryType="0";
// this.$nextTick(()=>{
// this.resetForm('ruleForm')})
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/Libary", {
params: this.searchData,
});
this.total = res.Total;
this.borrowData = res.Rows;
this.timer = setTimeout(() => {
//设置延迟执行
this.loading = false;
}, 300);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
//关闭窗口
closeForm() {
this.ruleForm = {
ID: 0,
LibaryName: "",
LibaryType:"",
Remarks: "",
},
this.addVisible = false;
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
},
};
</script>
<style scoped lang='less'>
body {
margin: 0;
}
.dialogSize {
font-size: 15px;
}
.inputClass {
width: 400px;
margin-top: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
width: 110px;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.funcButton {
margin-right: 16px;
float: right;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
<template>
<div class="body">
<!-- 面包屑导航区域 S -->
<div class="title_box">
<div class="block" style="float: left"></div>
<el-card style="height: 75px">
<el-row>
<el-col :span="2">
<img src="../../assets/images/系统日志.png" class="logo" alt="logo"
/></el-col>
<el-col :span="2"
><span class="fontStyle">仓库盘点</span><br /><span></span>
</el-col>
<el-col :span="20">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/index' }"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>仓库管理</el-breadcrumb-item>
<el-breadcrumb-item>仓库盘点</el-breadcrumb-item>
</el-breadcrumb></el-col
>
</el-row>
</el-card>
</div>
<!-- 主体区域 - 卡片视图 -->
<div class="main_box">
<!-- 查询功能区域 -->
<el-form
:inline="true"
:model="searchData"
size="medium"
label-position="left"
>
<el-form-item label="时间节点 :" class="mgr15 mgl15 textboxBo">
<el-date-picker
@change="dateChange"
v-model="timeData"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<a-button
type="primary"
ghost
icon="search"
style="height: 40px"
class="textboxBo"
@click="getQueuData()"
>查询</a-button
>
<el-button
type="primary"
icon="el-icon-plus"
style="height: 40px"
class="funcButton"
@click="addInventory()"
>添加盘点任务</el-button
>
</el-form>
<!-- 列表区域 -->
<el-row style="margin-top: 30px">
<!-- 主表 -->
<el-table
v-loading="loading"
:data="inventoryData"
stripe
style="width: 100%"
size="small"
border
highlight-current-row
>
<el-table-column prop="ID" v-if="false" />
<el-table-column
width="100"
type="index"
label="序号"
align="center"
/>
<el-table-column prop="Name" label="盘点名称" align="center" />
<el-table-column prop="InventoryCout" label="已盘点数" align="center">
</el-table-column>
<el-table-column
prop="NoInventoryCout"
label="未盘点数"
align="center"
/>
<el-table-column
prop="Status"
label="盘点状态"
:formatter="stateFormat"
align="center"
>
</el-table-column>
<el-table-column prop="CreateName" label=" 创建人" align="center" />
<el-table-column prop="CreateTime" label=" 盘点时间" align="center" />
<el-table-column fixed="right" label="操作" width="100">
<template slot-scope="scope">
<el-button
@click="getDetailInfo(scope.row)"
type="text"
style="font-size: 15px"
>查看</el-button
>
<el-button
v-if="[0].includes(scope.row.Status)"
@click="StateInventory(scope.row)"
type="text"
style="font-size: 15px"
>盘点</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 详细信息弹出 -->
<!-- <div class="ivu-divider ivu-divider-horizontal"></div> -->
<el-dialog title="照片查看" :visible.sync="picVisible" width="900px">
<img
:src="imgurl"
class="picOutIn"
width="855px"
height="512px"
alt=""
/>
<div slot="footer" class="dialog-footer">
<el-button @click="picVisible = false">关 闭</el-button>
</div>
</el-dialog>
<el-dialog title="盘点详情" :visible.sync="borrowTableVisible">
<el-card>
<!-- <div slot="header" class="clearfix" style="text-align: left">
<span class="labelBorrow">基础信息</span>
</div> -->
<div style="border: 1px solid #e8e8e8">
<table
style="
table-layout: auto;
width: 100%;
border-collapse: collapse;
box-sizing: border-box;
"
>
<tbody>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">盘点名称</th>
<td class="textContent">
{{ detailData.Name }}
</td>
<th class="textHeader">盘点时间</th>
<td class="textContent">
{{ detailData.CreateTime }}
</td>
</tr>
<tr style="border-bottom: 1px solid #e8e8e8">
<th class="textHeader">已盘点数:</th>
<td class="textContentLast">
{{ detailData.InventoryCout }}
</td>
<th class="textHeader">未盘点数:</th>
<td class="textContentLast">
{{ detailData.NoInventoryCout }}
</td>
</tr>
<tr>
<th class="textHeader">创建人</th>
<td colspan="5" class="textContentLast">
{{ detailData.CreateName }}
</td>
</tr>
</tbody>
</table>
</div>
<template>
<el-tabs
@tab-click="handleClick"
:data="fixData"
v-model="activeName"
>
<el-tab-pane
label="已盘点装备"
name="first"
v-loading="tabLoading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
>
<el-table :data="InvetoryList" border class="details">
<el-table-column prop="EqName" label="装备名称">
</el-table-column>
<el-table-column prop="CategoryName" label="所属物料">
</el-table-column> </el-table
><el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeAlreadyChange"
@current-change="handleCurrentAlreadyChange"
:current-page="fixData.Page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="alreadyToal"
/>
</el-row>
</el-tab-pane>
<el-tab-pane label="未盘点装备" name="second"
><el-table :data="InvetoryNoList" border class="details">
<el-table-column prop="EqName" label="装备名称">
</el-table-column>
<el-table-column prop="CategoryName" label="所属物料">
</el-table-column>
</el-table>
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeNotChange"
@current-change="handleCurrentNotChange"
:current-page="notInventoryData.Page"
:page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
:total="notToal"
/>
</el-row>
</el-tab-pane>
</el-tabs>
</template>
</el-card>
<!-- <el-card class="box-card" style="text-align: center; margin-top: 35px">
<label class="labelBorrow">领取装备表</label>
<el-divider></el-divider>
<template>
<el-table :data="tableData" border class="details">
<el-table-column
prop="MaterielCode"
label="装备名称"
>
</el-table-column>
<el-table-column prop="MaterielCode" label="装备编码" >
</el-table-column>
<el-table-column prop="LyCount" label="领用数量">
</el-table-column>
</el-table>
</template>
</el-card> -->
<div slot="footer" class="dialog-footer">
<el-button @click="borrowTableVisible = false">取 消</el-button>
<el-button type="primary" @click="borrowTableVisible = false"
>确 定</el-button
>
</div>
</el-dialog>
<!-- 分页功能 -->
<el-row type="flex" justify="center" align="middle">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchData.pageNo"
:page-sizes="[10, 20, 30, 40]"
:page-size="searchData.Page"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
/>
</el-row>
</el-row>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
src: "../assets/images/记录.png",
searchData: {
Page: 1,
Rows: 10,
Sort: "ID",
Order: "ESC",
OrderBy: "",
CreateTime: "",
EndTime: "",
},
// 日期配置
pickerOptions: {
shortcuts: [
{
text: "最近一日",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
// 用户选中日期
timeData: [],
// 时间选择器回调
valueType: "-99",
input: "",
form: {},
tableData: [],
detailData: {},
imgurl: [],
inventoryData: [],
borrowTableVisible: false,
picVisible: false,
formLabelWidth: "120px",
history_Num: "",
// 已盘点装备
fixData: {
ID: 0,
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
// 未盘点装备
notInventoryData: {
ID: 0,
Page: 1,
Rows: 10,
MatId: "",
Order: "ESC",
Sort: "ID",
},
// 已盘点装备
InvetoryList: [],
// 未盘点装备
InvetoryNoList: [],
// 总条数
total: 0,
// tab标签页
tabLoading: true,
activeName: "first",
alreadyToal: 0,
notToal: 0,
};
},
created() {
this.getQueuData();
},
methods: {
//获取详细列表信息
async getDetailInfo(row) {
this.borrowTableVisible = true;
const borrowUrl = "/api/Inventory/GetPcMission?" + "ID=" + row.ID;
const { data: res } = await this.$axios.get(borrowUrl);
if (res.Success == false) return this.$message(res.Remark);
this.tableData = res.List;
this.detailData = res.length > 0 ? res[0] : {};
console.log("详情", this.detailData);
this.GetInvetoryList(this.detailData.ID);
this.GetInvetoryNoList(this.detailData.ID);
},
dateChange(date) {
this.searchData.CreateTime = date ? date[0] : "";
this.searchData.EndTime = date ? date[1] : "";
// console.log("1",this.searchData.BeginTime)
// console.log("2",this.searchData.EndTime)
},
async getQueuData() {
this.loading = true;
const { data: res } = await this.$axios.get("api/Inventory", {
params: this.searchData,
});
this.total = res.Total;
this.inventoryData = res.Rows;
this.loading = false;
console.log("列表", this.inventoryData);
},
// 获取已盘点装备
async GetInvetoryList(ID) {
this.tabLoading = true;
this.fixData.ID = this.detailData.ID;
const { data: res } = await this.$axios.get(
"api/Inventory/GetInvetoryList",
{
params: this.fixData,
}
);
this.total = res.Total;
this.InvetoryList = res.Rows;
this.tabLoading = false;
this.alreadyToal = res.Total;
console.log("已盘点列表", this.InvetoryList);
},
// 获取未盘点装备
async GetInvetoryNoList(ID) {
this.tabLoading = true;
this.notInventoryData.ID = this.detailData.ID;
const { data: res } = await this.$axios.get(
"api/Inventory/GetInvetoryNoList",
{
params: this.notInventoryData,
}
);
this.total = res.Total;
this.InvetoryNoList = res.Rows;
this.tabLoading = false;
this.notToal = res.Total;
console.log("未盘点列表", this.InvetoryNoList);
},
// 添加盘点任务
async addInventory() {
var messageEr = "取消创建盘点";
this.$confirm("是否立即创建盘点任务", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
// this.submitData(row);
const formData = new FormData();
console.log("formData", formData);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.post(
"/api/Inventory/CreatePcMission",
formData,
config
);
if (res.Success !== true) return this.$message(res.Remark);
this.getQueuData();
})
.catch((e) => {
this.$message.error(messageEr);
});
},
// 开启盘点
StateInventory(row) {
var messageEr = "取消开启盘点";
this.$confirm("是否开启盘点", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
// this.submitData(row);
console.log("开启盘点", row);
const formData = new FormData();
formData.append("ID", row.ID);
console.log("formData", formData);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
};
// console.log(this.ruleForm.ID)
const { data: res } = await this.$axios.post(
"/api/Inventory/OpenPcMission",
formData,
config
);
if (res.Success !== true) return this.$message(res.Remark);
this.getQueuData();
})
.catch((e) => {
this.$message.error(messageEr);
});
},
stateFormat(row, column) {
if (row.Status === 0) {
return "未盘点 ";
} else if (row.Status === 1) {
return "盘点中 ";
} else if (row.Status === 2) {
return "已完成 ";
}
},
// tabs切换事件
handleClick(tab, event) {
console.log(tab, event);
},
//查询条件添加回车键
onEnterPress() {
this.getQueuData();
},
// 分页功能
// 每页显示条数发生改变时
handleSizeChange(val) {
this.searchData.Rows = val;
this.getQueuData();
},
// 当前页数发生改变时
handleCurrentChange(val) {
this.searchData.Page = val;
this.getQueuData();
},
// 盘点装备数据分页;
handleSizeAlreadyChange(val) {
this.fixData.Rows = val;
this.GetInvetoryList();
},
handleCurrentAlreadyChange(val) {
this.fixData.Page = val;
this.GetInvetoryList();
},
handleSizeNotChange(val) {
this.notInventoryData.Rows = val;
this.GetInvetoryNoList();
},
handleCurrentNotChange(val) {
this.notInventoryData.Page = val;
this.GetInvetoryNoList();
},
},
watch: {
activeAllData: {
handler: function(newVal, oldVal) {
this.$refs.allTableRef.setCurrentRow(this.activeAllData);
},
deep: true,
},
activeGoodData: {
handler: function(newVal, oldVal) {
this.$refs.goodsTableRef.setCurrentRow(this.activeGoodData);
},
deep: true,
},
},
computed: {},
};
</script>
<style scoped lang="less">
body {
margin: 0;
}
.left_box,
.right_box {
height: 100%;
border-radius: 6px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}
.dialogSize {
font-size: 15px;
}
.labelBorrow {
margin: auto;
font-weight: bold;
font-size: 16px;
}
.textHeader {
background-color: #fafafa;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: center;
}
.textContent {
background-color: #ffffff;
padding: 16px 24px;
border-right: 1px solid #e8e8e8;
text-align: left;
}
.textContentLast {
background-color: #ffffff;
padding: 16px 24px;
text-align: left;
}
.title_box {
margin-top: 0px;
}
.textboxBo {
margin-right: 16px;
float: left;
margin-bottom: 13px;
}
.logo {
margin-top: -4px;
margin-left: 29px;
}
</style>
const path = require('path')
function resolve (dir) {
return path.join(__dirname, dir)
}
module.exports = {
publicPath: '/',
devServer: {
// host: '192.168.3.1',
// port: 2233,
host: '192.168.2.105',
port: 2234,
// host: '192.168.2.101',
// host: '41.204.124.248',
// port: 5002,
},
configureWebpack: {
resolve: {
alias: {
// 路径名称
'@': resolve('src/views'),
'@icons': resolve('src/assets/icons'),
'@images': resolve('src/assets/images'),
}
},
},
chainWebpack(config) {
// set svg-sprite-loader
config.module
.rule('svg')
.exclude.add(resolve('src/icons'))
.end()
config.module
.rule('icons')
.test(/\.svg$/)
.include.add(resolve('src/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
.end()
},
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论