@@ -61,6 +61,8 @@ | |||
</el-row> | |||
</base-dialog> | |||
<WaitingListTable /> | |||
<!-- 编辑 --> | |||
<!-- <RecordDetail | |||
v-if="recordDetailVisible" | |||
@@ -79,6 +81,7 @@ import { | |||
deleteEqMaintainLog, | |||
exportMaintainLogExcel, | |||
} from '@/api/equipment/base/maintain/record'; | |||
import WaitingListTable from './WaitingListTable.vue'; | |||
const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); | |||
@@ -107,7 +110,7 @@ const btn = { | |||
export default { | |||
name: 'SpecialEquipmentMaintainRecord', | |||
components: { DialogFormUnplanned }, | |||
components: { DialogFormUnplanned, WaitingListTable, WaitingListTable }, | |||
mixins: [basicPageMixin], | |||
data() { | |||
return { | |||
@@ -0,0 +1,229 @@ | |||
<!-- | |||
filename: WaitingListTable.vue | |||
author: liubin | |||
date: 2024-02-05 16:12:55 | |||
description: | |||
--> | |||
<template> | |||
<el-table | |||
:data="tableData" | |||
:border="false" | |||
@selection-change="handleSelectionChange" | |||
style="width: 100%" | |||
:header-cell-style="{ | |||
background: '#f2f4f9', | |||
color: '#606266', | |||
}" | |||
class="waiting-list-table"> | |||
<el-table-column type="selection" :width="50" /> | |||
<el-table-column prop="_pageIndex" width="80" align="center"> | |||
<template slot="header"> | |||
<el-popover placement="bottom-start" width="300" trigger="click"> | |||
<div class="setting-box" style="max-height: 400px; overflow-y: auto"> | |||
<el-checkbox | |||
v-for="(item, index) in tableProps" | |||
:key="'cb' + index" | |||
v-model="selectedBox[index]" | |||
:label="item.label" /> | |||
</div> | |||
<i slot="reference" class="el-icon-s-tools" /> | |||
</el-popover> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[0]" | |||
width="110" | |||
label="设备保养单号" | |||
prop="maintainOrderNumber"></el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[1]" | |||
width="110" | |||
label="保养计划名称" | |||
prop="planName"></el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[2]" | |||
width="110" | |||
label="部门" | |||
prop="departmentName"></el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[3]" | |||
width="110" | |||
label="产线名" | |||
prop="lineName"></el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[4]" | |||
width="150" | |||
label="计划开始时间" | |||
prop="planStartTime"> | |||
<template slot-scope="scope"> | |||
{{ scope.row.planStartTime | timeFilter }} | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[5]" | |||
width="150" | |||
label="计划结束时间" | |||
prop="planEndTime"> | |||
<template slot-scope="scope"> | |||
{{ scope.row.planEndTime | timeFilter }} | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[6]" | |||
width="150" | |||
label="实际开始时间" | |||
prop="startTime"> | |||
<template slot-scope="scope"> | |||
{{ scope.row.startTime | timeFilter }} | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[7]" | |||
width="150" | |||
label="实际结束时间" | |||
prop="endTime"> | |||
<template slot-scope="scope"> | |||
{{ scope.row.endTime | timeFilter }} | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[8]" | |||
width="150" | |||
label="确认截止时间" | |||
prop="confirmDueTime"> | |||
<template slot-scope="scope"> | |||
{{ scope.row.confirmDueTime | timeFilter }} | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
v-if="selectedBox[9]" | |||
width="150" | |||
label="保养计划类型" | |||
prop="relatePlan"> | |||
<template slot-scope="scope"> | |||
{{ scope.row.relatePlan | relatePlanFilter }} | |||
</template> | |||
</el-table-column> | |||
<el-table-column v-if="selectedBox[10]" width="60" label="详情"> | |||
<template slot-scope="scope"> | |||
<el-button type="text" @click="handelDetail(scope.row)">详情</el-button> | |||
</template> | |||
</el-table-column> | |||
<!-- btns --> | |||
<el-table-column width="200" label="操作"> | |||
<template slot-scope="scope"> | |||
<el-tooltip content="查看详情" placement="top"> | |||
<el-button | |||
type="text" | |||
style="margin: 5px 0; padding: 0" | |||
@click="handelDetail(scope.row)"> | |||
<i class="iconfont icon-detail primary-color" /> | |||
</el-button> | |||
</el-tooltip> | |||
<!-- line --> | |||
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span> | |||
<el-tooltip content="编辑" placement="top"> | |||
<el-button | |||
type="text" | |||
style="margin: 5px 0; padding: 0" | |||
@click="handelDetail(scope.row)"> | |||
<i class="iconfont icon-edit primary-color" /> | |||
</el-button> | |||
</el-tooltip> | |||
<!-- line --> | |||
<span style="margin: 0 4px; font-size: 18px; color: #e5e7eb">|</span> | |||
<el-tooltip content="删除" placement="top"> | |||
<el-button | |||
type="text" | |||
style="margin: 5px 0; padding: 0" | |||
@click="handelDetail(scope.row)"> | |||
<i class="iconfont icon-delete delete-color" /> | |||
</el-button> | |||
</el-tooltip> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
</template> | |||
<script> | |||
import moment from 'moment'; | |||
export default { | |||
name: 'WaitingListTable', | |||
components: {}, | |||
props: {}, | |||
filters: { | |||
timeFilter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), | |||
relatePlanFilter: (val) => | |||
val != null ? ['-', '计划型', '非计划型'][val] : '-', | |||
}, | |||
data() { | |||
return { | |||
tableData: [], | |||
tableProps: [ | |||
{ | |||
label: '设备保养单号', | |||
}, | |||
{ | |||
label: '保养计划名称', | |||
}, | |||
{ | |||
label: '部门', | |||
}, | |||
{ | |||
label: '产线名', | |||
}, | |||
{ | |||
label: '计划开始时间', | |||
}, | |||
{ | |||
label: '计划结束时间', | |||
}, | |||
{ | |||
label: '实际开始时间', | |||
}, | |||
{ | |||
label: '实际结束时间', | |||
}, | |||
{ | |||
label: '确认截止时间', | |||
}, | |||
{ | |||
label: '保养计划类型', | |||
}, | |||
{ | |||
label: '详情', | |||
}, | |||
], | |||
selectedBox: [ | |||
true, | |||
true, | |||
true, | |||
true, | |||
true, | |||
true, | |||
true, | |||
true, | |||
true, | |||
true, | |||
true, | |||
], | |||
}; | |||
}, | |||
computed: {}, | |||
methods: { | |||
handleSelectionChange() {}, | |||
}, | |||
}; | |||
</script> | |||
<style scoped> | |||
@import './iconfont/iconfont.css'; | |||
.delete-color { | |||
color: #ff5454; | |||
} | |||
.primary-color { | |||
color: #0b58ff; | |||
} | |||
</style> |
@@ -0,0 +1,539 @@ | |||
/* 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; | |||
} |
@@ -0,0 +1,306 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta charset="utf-8"/> | |||
<title>iconfont Demo</title> | |||
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/> | |||
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/> | |||
<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> | |||
<style> | |||
.main .logo { | |||
margin-top: 0; | |||
height: auto; | |||
} | |||
.main .logo a { | |||
display: flex; | |||
align-items: center; | |||
} | |||
.main .logo .sub-title { | |||
margin-left: 0.5em; | |||
font-size: 22px; | |||
color: #fff; | |||
background: linear-gradient(-45deg, #3967FF, #B500FE); | |||
-webkit-background-clip: text; | |||
-webkit-text-fill-color: transparent; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<div class="main"> | |||
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank"> | |||
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg"> | |||
</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=3821755" 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"></span> | |||
<div class="name">downward</div> | |||
<div class="code-name">&#xe604;</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont"></span> | |||
<div class="name">upward</div> | |||
<div class="code-name">&#xe605;</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont"></span> | |||
<div class="name">detail</div> | |||
<div class="code-name">&#xe601;</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont"></span> | |||
<div class="name">edit</div> | |||
<div class="code-name">&#xe602;</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont"></span> | |||
<div class="name">delete</div> | |||
<div class="code-name">&#xe603;</div> | |||
</li> | |||
</ul> | |||
<div class="article markdown"> | |||
<h2 id="unicode-">Unicode 引用</h2> | |||
<hr> | |||
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p> | |||
<ul> | |||
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li> | |||
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li> | |||
</ul> | |||
<blockquote> | |||
<p>注意:新版 iconfont 支持两种方式引用多色图标:SVG 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?t=1689233106339'); /* IE9 */ | |||
src: url('iconfont.eot?t=1689233106339#iefix') format('embedded-opentype'), /* IE6-IE8 */ | |||
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAARgAAsAAAAACcAAAAQUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDKAqGSIUsATYCJAMYCw4ABCAFhGcHVBtUCMiuMG7hiaIkox1FaBhxvd1fpwAN4YKo1v7tWTr8hBRkBQgO7yqKUJKPUKzDjkixjn7/q0vlANCkEHCJtsMvx2eQn04h5rHEE8593TK2y1SC5nbvNG5gqgZBNEWTqFUQLGVFNnVu1TjyMm3SafEsC3y0myW12KdEh2x+deP/zzHTJeG3AVBm4lrnAxpQN0US7s3ijuSE6Jbh1UGv08cgQEivMg5z6m49Qj77TVxDEZww6gXicNkviSbkxgswNeGCj+CgMw1yFRpAnUNegSv+8+UfU/igsBpjnRV3rRV9+Su8Fk1Agv6CW4eAeyvAAhronJlI1tcrVnIMHZ0cCcsUTrRTnQ0CP50B4KfgEub9Lw80BougQBwGI8bYJU4LPwUbBw0/HXAw8NORUM90wsT9JeIMFACux9QckHyQ9FDYTobcGi+FLSjwMxDe3L5s+w9THFYeEs8H303FWMnZ1JuBWFgNPh3bd5wOvJmKI9aTqXeD8eJ66HnfnV1dJPE8cy4EgqT+s/SbdSWbp9Pn24NbZ1MnGw7CDbvT6+lL1CXVh++hcH56umDT9vOviL/grQ6srHjE57uLHdQn+dtO9x2v94WN6+eXm0HWlZOzta3tUDp1JWjymsiD8r0ViWGkC+n4GeH5aODSM+9COnilpdfdZsRIvMerLmS0uICTplrOnb99LT3NkJNeajPfpDznblq6bXH8efBjlPIUxhQcX+U0qEdt4bjxy6rMdOkbEn0/3mlvrXZL60ysxdwcn/qKLJ/82pnzGS61z5rBeGmrxf33ZXN/IBWUvb8KSvnttbwwq+YTkweZHue0M0+c0ssZGY/Rs+aVF8+3GaW07CkvLC/KcBvP8c2uGpsdm0THlazwlPE22Kdi9ZK4Hdsmtw9eHVQwPjG0p33Q7tGMJ6TUJ2VK1MMw6ftI6qPPtruCvEPmLZqiHcj1Aw3Rup/sdzj+lt/w3f5TrAHgx++nD7A+8xaD4CL8m60Q+KWYO7CgUY3gTFl+OwUBHKteh00BoWmGDIYm301frAJwKAg+BTEoPCpA41OPNNh2sET0g8NnCkI61M6PKKBzREwANBtGIOS6BEU2D0CT6xvSYP+Apdg/cOT6DyErI68W0RzbqhmYOFixuRNLFqoRi839Zh+A2KqYWJH1CTC7hM04My0j664HDVgXY+xtYhbnBBNGVVzH7geKQrHOqA0sPK2Fc70oPZ2UPSTNQlVUjQEmHLDCzDphEgtKQ9zCPP16DwBRK4UJAyKfyBg7jaeaxzKlyQAg6xkaKO9M2tu1EWXhOEL3IxhKhdWpMqCYDgrTy7vZAAsuTUsLm65IOlWIQBlp47PUS9wAhBgHOFGixYgVJx7+dtqutZuY1eXTvXYncJOkOF1Wicd+CnBACA==') format('woff2'), | |||
url('iconfont.woff?t=1689233106339') format('woff'), | |||
url('iconfont.ttf?t=1689233106339') format('truetype'), | |||
url('iconfont.svg?t=1689233106339#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" | |||
><span class="iconfont">&#x33;</span> | |||
</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-downward"></span> | |||
<div class="name"> | |||
downward | |||
</div> | |||
<div class="code-name">.icon-downward | |||
</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont icon-upward"></span> | |||
<div class="name"> | |||
upward | |||
</div> | |||
<div class="code-name">.icon-upward | |||
</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont icon-detail"></span> | |||
<div class="name"> | |||
detail | |||
</div> | |||
<div class="code-name">.icon-detail | |||
</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont icon-edit"></span> | |||
<div class="name"> | |||
edit | |||
</div> | |||
<div class="code-name">.icon-edit | |||
</div> | |||
</li> | |||
<li class="dib"> | |||
<span class="icon iconfont icon-delete"></span> | |||
<div class="name"> | |||
delete | |||
</div> | |||
<div class="code-name">.icon-delete | |||
</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>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li> | |||
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li> | |||
</ul> | |||
<p>使用步骤如下:</p> | |||
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3> | |||
<pre><code class="language-html"><link rel="stylesheet" href="./iconfont.css"> | |||
</code></pre> | |||
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3> | |||
<pre><code class="language-html"><span class="iconfont icon-xxx"></span> | |||
</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-downward"></use> | |||
</svg> | |||
<div class="name">downward</div> | |||
<div class="code-name">#icon-downward</div> | |||
</li> | |||
<li class="dib"> | |||
<svg class="icon svg-icon" aria-hidden="true"> | |||
<use xlink:href="#icon-upward"></use> | |||
</svg> | |||
<div class="name">upward</div> | |||
<div class="code-name">#icon-upward</div> | |||
</li> | |||
<li class="dib"> | |||
<svg class="icon svg-icon" aria-hidden="true"> | |||
<use xlink:href="#icon-detail"></use> | |||
</svg> | |||
<div class="name">detail</div> | |||
<div class="code-name">#icon-detail</div> | |||
</li> | |||
<li class="dib"> | |||
<svg class="icon svg-icon" aria-hidden="true"> | |||
<use xlink:href="#icon-edit"></use> | |||
</svg> | |||
<div class="name">edit</div> | |||
<div class="code-name">#icon-edit</div> | |||
</li> | |||
<li class="dib"> | |||
<svg class="icon svg-icon" aria-hidden="true"> | |||
<use xlink:href="#icon-delete"></use> | |||
</svg> | |||
<div class="name">delete</div> | |||
<div class="code-name">#icon-delete</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"><script src="./iconfont.js"></script> | |||
</code></pre> | |||
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3> | |||
<pre><code class="language-html"><style> | |||
.icon { | |||
width: 1em; | |||
height: 1em; | |||
vertical-align: -0.15em; | |||
fill: currentColor; | |||
overflow: hidden; | |||
} | |||
</style> | |||
</code></pre> | |||
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3> | |||
<pre><code class="language-html"><svg class="icon" aria-hidden="true"> | |||
<use xlink:href="#icon-xxx"></use> | |||
</svg> | |||
</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> |
@@ -0,0 +1,38 @@ | |||
@font-face { | |||
font-family: "iconfont"; /* Project id 3821755 */ | |||
src: url('iconfont.eot?t=1689233106339'); /* IE9 */ | |||
src: url('iconfont.eot?t=1689233106339#iefix') format('embedded-opentype'), /* IE6-IE8 */ | |||
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAARgAAsAAAAACcAAAAQUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDKAqGSIUsATYCJAMYCw4ABCAFhGcHVBtUCMiuMG7hiaIkox1FaBhxvd1fpwAN4YKo1v7tWTr8hBRkBQgO7yqKUJKPUKzDjkixjn7/q0vlANCkEHCJtsMvx2eQn04h5rHEE8593TK2y1SC5nbvNG5gqgZBNEWTqFUQLGVFNnVu1TjyMm3SafEsC3y0myW12KdEh2x+deP/zzHTJeG3AVBm4lrnAxpQN0US7s3ijuSE6Jbh1UGv08cgQEivMg5z6m49Qj77TVxDEZww6gXicNkviSbkxgswNeGCj+CgMw1yFRpAnUNegSv+8+UfU/igsBpjnRV3rRV9+Su8Fk1Agv6CW4eAeyvAAhronJlI1tcrVnIMHZ0cCcsUTrRTnQ0CP50B4KfgEub9Lw80BougQBwGI8bYJU4LPwUbBw0/HXAw8NORUM90wsT9JeIMFACux9QckHyQ9FDYTobcGi+FLSjwMxDe3L5s+w9THFYeEs8H303FWMnZ1JuBWFgNPh3bd5wOvJmKI9aTqXeD8eJ66HnfnV1dJPE8cy4EgqT+s/SbdSWbp9Pn24NbZ1MnGw7CDbvT6+lL1CXVh++hcH56umDT9vOviL/grQ6srHjE57uLHdQn+dtO9x2v94WN6+eXm0HWlZOzta3tUDp1JWjymsiD8r0ViWGkC+n4GeH5aODSM+9COnilpdfdZsRIvMerLmS0uICTplrOnb99LT3NkJNeajPfpDznblq6bXH8efBjlPIUxhQcX+U0qEdt4bjxy6rMdOkbEn0/3mlvrXZL60ysxdwcn/qKLJ/82pnzGS61z5rBeGmrxf33ZXN/IBWUvb8KSvnttbwwq+YTkweZHue0M0+c0ssZGY/Rs+aVF8+3GaW07CkvLC/KcBvP8c2uGpsdm0THlazwlPE22Kdi9ZK4Hdsmtw9eHVQwPjG0p33Q7tGMJ6TUJ2VK1MMw6ftI6qPPtruCvEPmLZqiHcj1Aw3Rup/sdzj+lt/w3f5TrAHgx++nD7A+8xaD4CL8m60Q+KWYO7CgUY3gTFl+OwUBHKteh00BoWmGDIYm301frAJwKAg+BTEoPCpA41OPNNh2sET0g8NnCkI61M6PKKBzREwANBtGIOS6BEU2D0CT6xvSYP+Apdg/cOT6DyErI68W0RzbqhmYOFixuRNLFqoRi839Zh+A2KqYWJH1CTC7hM04My0j664HDVgXY+xtYhbnBBNGVVzH7geKQrHOqA0sPK2Fc70oPZ2UPSTNQlVUjQEmHLDCzDphEgtKQ9zCPP16DwBRK4UJAyKfyBg7jaeaxzKlyQAg6xkaKO9M2tu1EWXhOEL3IxhKhdWpMqCYDgrTy7vZAAsuTUsLm65IOlWIQBlp47PUS9wAhBgHOFGixYgVJx7+dtqutZuY1eXTvXYncJOkOF1Wicd+CnBACA==') format('woff2'), | |||
url('iconfont.woff?t=1689233106339') format('woff'), | |||
url('iconfont.ttf?t=1689233106339') format('truetype'), | |||
url('iconfont.svg?t=1689233106339#iconfont') format('svg'); | |||
} | |||
.iconfont { | |||
font-family: "iconfont" !important; | |||
font-size: 16px; | |||
font-style: normal; | |||
-webkit-font-smoothing: antialiased; | |||
-moz-osx-font-smoothing: grayscale; | |||
} | |||
.icon-downward:before { | |||
content: "\e604"; | |||
} | |||
.icon-upward:before { | |||
content: "\e605"; | |||
} | |||
.icon-detail:before { | |||
content: "\e601"; | |||
} | |||
.icon-edit:before { | |||
content: "\e602"; | |||
} | |||
.icon-delete:before { | |||
content: "\e603"; | |||
} | |||
@@ -0,0 +1,44 @@ | |||
{ | |||
"id": "3821755", | |||
"name": "component", | |||
"font_family": "iconfont", | |||
"css_prefix_text": "icon-", | |||
"description": "封装的组件中的icon", | |||
"glyphs": [ | |||
{ | |||
"icon_id": "36426261", | |||
"name": "downward", | |||
"font_class": "downward", | |||
"unicode": "e604", | |||
"unicode_decimal": 58884 | |||
}, | |||
{ | |||
"icon_id": "36426301", | |||
"name": "upward", | |||
"font_class": "upward", | |||
"unicode": "e605", | |||
"unicode_decimal": 58885 | |||
}, | |||
{ | |||
"icon_id": "33347867", | |||
"name": "detail", | |||
"font_class": "detail", | |||
"unicode": "e601", | |||
"unicode_decimal": 58881 | |||
}, | |||
{ | |||
"icon_id": "33347918", | |||
"name": "edit", | |||
"font_class": "edit", | |||
"unicode": "e602", | |||
"unicode_decimal": 58882 | |||
}, | |||
{ | |||
"icon_id": "33347930", | |||
"name": "delete", | |||
"font_class": "delete", | |||
"unicode": "e603", | |||
"unicode_decimal": 58883 | |||
} | |||
] | |||
} |
@@ -0,0 +1,29 @@ | |||
<?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 xmlns="http://www.w3.org/2000/svg"> | |||
<metadata>Created by iconfont</metadata> | |||
<defs> | |||
<font id="iconfont" horiz-adv-x="1024"> | |||
<font-face | |||
font-family="iconfont" | |||
font-weight="400" | |||
font-stretch="normal" | |||
units-per-em="1024" | |||
ascent="896" | |||
descent="-128" | |||
/> | |||
<missing-glyph /> | |||
<glyph glyph-name="downward" unicode="" d="M556.942222 144.099556l363.064889 401.806222c24.860444 21.617778 24.860444 56.263111 0 77.880889a68.437333 68.437333 0 0 1-44.942222 16.156444c-16.896 0-33.052444-5.859556-44.885333-16.156444L512 260.949333l-318.236444 362.951111a68.437333 68.437333 0 0 1-44.942223 16.099556c-16.896 0-33.109333-5.802667-44.942222-16.156444-24.746667-21.617778-24.746667-56.206222 0-77.824l363.121778-401.749334c5.973333-5.290667 13.141333-9.443556 21.048889-12.231111 23.722667-8.305778 51.029333-3.527111 68.892444 12.060445z" horiz-adv-x="1024" /> | |||
<glyph glyph-name="upward" unicode="" d="M556.942222 623.900444l363.064889-401.806222c24.860444-21.617778 24.860444-56.263111 0-77.880889a68.437333 68.437333 0 0 0-44.942222-16.156444c-16.896 0-33.052444 5.859556-44.885333 16.156444L512 507.050667l-318.236444-362.951111a68.437333 68.437333 0 0 0-44.942223-16.099556c-16.896 0-33.109333 5.802667-44.942222 16.156444-24.746667 21.617778-24.746667 56.206222 0 77.824L467.057778 623.729778c5.973333 5.290667 13.141333 9.443556 21.048889 12.231111 23.722667 8.305778 51.029333 3.527111 68.892444-12.060445z" horiz-adv-x="1024" /> | |||
<glyph glyph-name="detail" unicode="" d="M902.428444 705.251556H332.401778a7.964444 7.964444 0 0 1-7.793778-8.021334v-56.206222a7.964444 7.964444 0 0 1 7.793778-8.078222h570.026666A7.964444 7.964444 0 0 1 910.222222 641.024v56.206222a7.964444 7.964444 0 0 1-7.793778 8.021334z m0-285.127112H332.401778a7.964444 7.964444 0 0 1-7.793778-7.964444v-56.32a7.964444 7.964444 0 0 1 7.793778-7.964444h570.026666a7.964444 7.964444 0 0 1 7.793778 7.964444v56.32a7.964444 7.964444 0 0 1-7.793778 7.964444z m0-285.070222H332.401778a7.964444 7.964444 0 0 1-7.793778-8.078222v-56.206222a7.964444 7.964444 0 0 1 7.793778-8.021334h570.026666a7.964444 7.964444 0 0 1 7.793778 8.021334v56.206222a7.964444 7.964444 0 0 1-7.793778 8.078222zM113.777778 669.127111c0-20.081778 10.410667-38.684444 27.306666-48.696889a53.361778 53.361778 0 0 1 54.670223 0 56.547556 56.547556 0 0 1 27.306666 48.696889 56.547556 56.547556 0 0 1-27.306666 48.696889 53.361778 53.361778 0 0 1-54.613334 0A56.547556 56.547556 0 0 1 113.777778 669.127111zM113.777778 384c0-20.081778 10.410667-38.684444 27.306666-48.696889a53.361778 53.361778 0 0 1 54.670223 0A56.547556 56.547556 0 0 1 223.061333 384a56.547556 56.547556 0 0 1-27.306666 48.696889 53.361778 53.361778 0 0 1-54.613334 0A56.547556 56.547556 0 0 1 113.777778 384z m0-285.127111c0-20.081778 10.410667-38.684444 27.306666-48.696889a53.361778 53.361778 0 0 1 54.670223 0 56.547556 56.547556 0 0 1 27.306666 48.696889 56.547556 56.547556 0 0 1-27.306666 48.696889 53.361778 53.361778 0 0 1-54.613334 0 56.547556 56.547556 0 0 1-27.363555-48.696889z" horiz-adv-x="1024" /> | |||
<glyph glyph-name="edit" unicode="" d="M873.016889 395.264a32.824889 32.824889 0 0 0 65.649778 0v-273.806222a164.124444 164.124444 0 0 0-164.124445-164.124445h-525.084444A164.124444 164.124444 0 0 0 85.333333 121.457778v525.084444A164.124444 164.124444 0 0 0 249.457778 810.666667h312.32a32.824889 32.824889 0 1 0 0-65.649778h-312.32a98.417778 98.417778 0 0 1-98.474667-98.417778v-525.141333c0-54.385778 44.088889-98.474667 98.417778-98.474667h525.141333a98.417778 98.417778 0 0 1 98.474667 98.417778V395.320889z m-14.222222 362.097778a32.824889 32.824889 0 0 0 48.014222-44.771556L548.750222 328.533333a32.824889 32.824889 0 1 0-48.014222 44.771556l358.115556 384.056889z" horiz-adv-x="1024" /> | |||
<glyph glyph-name="delete" unicode="" d="M601.024 146.24a29.632 29.632 0 0 0-29.696 29.696V503.04a29.632 29.632 0 1 0 59.456 0v-326.848a29.76 29.76 0 0 0-29.76-29.888z m-178.24 0a29.632 29.632 0 0 0-29.696 29.696V503.04a29.632 29.632 0 1 0 59.392 0v-326.848a29.76 29.76 0 0 0-29.696-29.888z m475.52 505.216h-148.544v59.456c0 49.152-39.616 89.088-88.512 89.088H363.392c-49.216 0-89.152-39.936-89.152-89.088v-59.456H125.696a29.632 29.632 0 1 1 0-59.392h772.608a29.632 29.632 0 1 1 0 59.392z m-564.608 59.456c0 16.256 13.44 29.696 29.696 29.696h297.856c16.32 0 29.056-13.12 29.056-29.696v-59.456H333.696v59.456zM720-32h-416a89.152 89.152 0 0 0-89.088 89.088V503.232a29.632 29.632 0 1 0 59.456 0v-446.08c0-16.512 13.44-29.76 29.696-29.76h416.064a29.632 29.632 0 0 1 29.696 29.696V502.144a29.632 29.632 0 1 0 59.456 0v-445.056A89.536 89.536 0 0 0 720-32z" horiz-adv-x="1024" /> | |||
</font> | |||
</defs> | |||
</svg> |