-
17web_src/.gitignore
-
8web_src/config/index.js
-
43web_src/index.html
-
BINweb_src/src/assets/logo.png
-
233web_src/src/components/Index.vue
-
2web_src/src/components/admin/Index.vue
-
2web_src/src/components/admin/attachment/Index.vue
-
7web_src/src/components/admin/setting/Index.vue
-
18web_src/src/components/admin/user/Index.vue
-
24web_src/src/components/attachment/Index.vue
-
122web_src/src/components/catalog/Index.vue
-
118web_src/src/components/common/Mock.vue
-
86web_src/src/components/common/OxFooter.vue
-
288web_src/src/components/common/OxHeader.vue
-
44web_src/src/components/item/export/Index.vue
-
6web_src/src/components/item/show/Index.vue
-
15web_src/src/components/item/show/show_regular_item/Index.vue
-
10web_src/src/components/item/show/show_regular_item/LeftMenu.vue
-
2web_src/src/components/item/show/show_regular_item/LeftMenuSub.vue
-
23web_src/src/components/item/show/show_regular_item/OpBar.vue
-
2web_src/src/components/item/show/show_single_page_item/Index.vue
-
4web_src/src/components/item/show/show_table_item/Index.vue
-
51web_src/src/components/page/edit/AttachmentList.vue
-
174web_src/src/components/page/edit/Filehub.vue
-
40web_src/src/components/page/edit/Index.vue
-
4web_src/src/main.js
-
149web_src/src/models/page.js
-
8web_src/src/store/actions.js
-
5web_src/src/store/index.js
-
3web_src/src/store/mutations.js
-
7web_src/src/store/state.js
-
106web_src/src/util.js
-
228web_src/static/css/OxFooter.css
-
82web_src/static/css/qietu.css
-
333web_src/static/css/responsive.css
-
793web_src/static/css/style.css
-
BINweb_src/static/css/unisans.otf
-
7web_src/static/editor.md/editormd.js
-
2708web_src/static/editor.md/lib/marked.min.js
-
29web_src/static/editor.md/lib/marked.old.js
-
BINweb_src/static/images/bg.jpg
-
BINweb_src/static/images/code.png
-
BINweb_src/static/images/icon_right.png
-
BINweb_src/static/images/logo.png
-
BINweb_src/static/images/logo_b.png
-
BINweb_src/static/images/mini.png
-
BINweb_src/static/images/search.png
-
BINweb_src/static/imgs/Android.png
-
BINweb_src/static/imgs/Auto.png
-
BINweb_src/static/imgs/Logo.png
-
BINweb_src/static/imgs/Mac.png
-
BINweb_src/static/imgs/Server.png
-
BINweb_src/static/imgs/Vector 9.png
-
BINweb_src/static/imgs/Vector.png
-
BINweb_src/static/imgs/Vector1.png
-
BINweb_src/static/imgs/Wechat.png
-
BINweb_src/static/imgs/Windows.png
-
BINweb_src/static/imgs/bg1.png
-
BINweb_src/static/imgs/bg2-1.png
-
BINweb_src/static/imgs/bg2-2.png
-
BINweb_src/static/imgs/bg2-3.png
-
BINweb_src/static/imgs/bg2-4.png
-
BINweb_src/static/imgs/bg2-5.png
-
BINweb_src/static/imgs/code.png
-
BINweb_src/static/imgs/home1.png
-
BINweb_src/static/imgs/home2-1111111.png
-
BINweb_src/static/imgs/home2-img.png
-
BINweb_src/static/imgs/home2.png
-
BINweb_src/static/imgs/home3.png
-
BINweb_src/static/imgs/home4.png
-
BINweb_src/static/imgs/home5.png
-
BINweb_src/static/imgs/home6.png
-
BINweb_src/static/imgs/home7.png
-
BINweb_src/static/imgs/home8.png
-
BINweb_src/static/imgs/home9.png
-
BINweb_src/static/imgs/iOS.png
-
BINweb_src/static/imgs/regbg.jpg
-
59web_src/static/lang/en.js
-
67web_src/static/lang/zh-CN.js
@ -0,0 +1,17 @@ |
|||
.DS_Store |
|||
node_modules/ |
|||
/dist/ |
|||
npm-debug.log* |
|||
yarn-debug.log* |
|||
yarn-error.log* |
|||
/test/unit/coverage/ |
|||
/test/e2e/reports/ |
|||
selenium-debug.log |
|||
|
|||
# Editor directories and files |
|||
.idea |
|||
.vscode |
|||
*.suo |
|||
*.ntvs* |
|||
*.njsproj |
|||
*.sln |
Before Width: 200 | Height: 200 | Size: 6.7 KiB After Width: 378 | Height: 82 | Size: 4.8 KiB |
@ -0,0 +1,118 @@ |
|||
<template> |
|||
<div> |
|||
<el-dialog title="Mock" :visible="true" :close-on-click-modal="false" @close="callback()"> |
|||
<el-form> |
|||
<p v-if="mock_url" style=" margin-bottom:20px;font-size: 16px"> |
|||
Mock地址 : |
|||
<code>{{mock_url}}</code> |
|||
<i class="el-icon-document-copy" v-clipboard:copy="mock_url" v-clipboard:success="onCopy"></i> |
|||
|
|||
<el-button @click="callback(mock_url)" type="text">把地址插入文档中</el-button> |
|||
</p> |
|||
<el-input |
|||
type="textarea" |
|||
class="dialoContent" |
|||
placeholder="这里填写的是Mock接口的返回结果。你可以直接编辑/粘贴一段json字符串,支持使用MockJs语法(关于MockJs语法,可以查看下方的帮助说明按钮)。输入完毕后,点击保存,就会自动生成Mock地址" |
|||
:rows="20" |
|||
v-model="content" |
|||
></el-input> |
|||
<p> |
|||
<el-button type="primary" @click="handleClick">{{$t('save')}}</el-button> |
|||
<el-tooltip |
|||
class="item" |
|||
effect="dark" |
|||
content="假如上面填写的是一段符合json语法的字符串,点此按钮可以对json字符串进行快速格式化(美化)" |
|||
placement="top" |
|||
> |
|||
<el-button @click="beautifyJson">json快速美化</el-button> |
|||
</el-tooltip> |
|||
|
|||
<a |
|||
href="https://www.showdoc.com.cn/p/d952ed6b7b5fb454df13dce74d1b41f8" |
|||
target="_blank" |
|||
>帮助说明</a> |
|||
</p> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="callback()">{{$t('goback')}}</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { unescapeHTML } from '@/models/page' |
|||
export default { |
|||
name: 'JsonBeautify', |
|||
props: { |
|||
formLabelWidth: '120px', |
|||
callback: '', |
|||
page_id: '' |
|||
}, |
|||
data() { |
|||
return { |
|||
content: '', |
|||
json_table_data: '', |
|||
mock_url: '' |
|||
} |
|||
}, |
|||
methods: { |
|||
add() { |
|||
this.request('/api/mock/add', { |
|||
'page_id': this.page_id, |
|||
'template': this.content |
|||
}).then((data) => { |
|||
this.$message({ |
|||
showClose: true, |
|||
message: '保存成功', |
|||
type: 'success' |
|||
}) |
|||
this.mock_url = this.getUrl(data.data.unique_key) |
|||
}) |
|||
}, |
|||
infoByPageId() { |
|||
if (this.page_id <= 0) { |
|||
this.$alert('请先保存页面') |
|||
this.callback() |
|||
return |
|||
} |
|||
this.request('/api/mock/infoByPageId', { |
|||
'page_id': this.page_id |
|||
}).then((data) => { |
|||
if (data.data && data.data.unique_key && data.data.template) { |
|||
this.mock_url = this.getUrl(data.data.unique_key) |
|||
this.content = unescapeHTML(data.data.template) |
|||
} |
|||
}) |
|||
}, |
|||
getUrl(unique_key) { |
|||
if (DocConfig.server.indexOf('web') > -1) { |
|||
let server = window.location.protocol + '//' + window.location.host + window.location.pathname + 'index.php?s=' |
|||
server = server.replace(/\/web/g, '/server') |
|||
return server + '/mock-data/' + unique_key |
|||
} else { |
|||
return window.location.protocol + '//' + window.location.host + '/server/index.php?s=' + '/mock-data/' + unique_key |
|||
} |
|||
}, |
|||
handleClick() { |
|||
this.add() |
|||
}, |
|||
beautifyJson() { |
|||
this.content = this.formatJson(this.content) |
|||
}, |
|||
onCopy() { |
|||
this.$message(this.$t('copy_success')) |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.infoByPageId() |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<!-- Add "scoped" attribute to limit CSS to this component only --> |
|||
<style scoped> |
|||
.el-icon-document-copy { |
|||
cursor: pointer; |
|||
} |
|||
</style> |
@ -0,0 +1,86 @@ |
|||
<template> |
|||
<div> |
|||
<div class="contactBox"> |
|||
<div class="wrapperBox"> |
|||
<div class="leftBox"> |
|||
<div class="enText"> |
|||
GET IN TOUCH |
|||
</div> |
|||
<div class="desc"> |
|||
联系电话: 020-22102214 <br> |
|||
广州地址:广州市白云区学山塘街66号世联空间D2栋5楼<br> |
|||
深圳地址:深圳市南山区蛇街道科苑南路三湘海尚E座10D<br> |
|||
上海地址:上海市虹区汶水东路29号榕辉大厦802室<br> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="rightBox"> |
|||
<div class="enText"> |
|||
FOLLOW US |
|||
</div> |
|||
<div class="item"> |
|||
<img src="static/images/code.png" alt=""> 体验公众号 |
|||
</div> |
|||
<div class="item"> |
|||
<img src="static/images/mini.png" alt=""> 体验小程序 |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="linksBox"> |
|||
<div class="wrapperBox"> |
|||
<div class="links"> |
|||
<div class="leftBox"> |
|||
<h3>快速入口</h3> |
|||
<ul> |
|||
<li><a href="javascript:;">申请试用</a></li> |
|||
<li><a href="javascript:;">产品介绍</a></li> |
|||
<li><a href="javascript:;">帮助中心</a></li> |
|||
<li><a href="javascript:;">登录注册</a></li> |
|||
<li><a href="javascript:;">合作伙伴</a></li> |
|||
</ul> |
|||
</div> |
|||
<div class="rightBox"> |
|||
<h3>合作产品</h3> |
|||
<ul> |
|||
<li><a href="javascript:;">欧轩互动</a></li> |
|||
<li><a href="javascript:;">晓法AI</a></li> |
|||
</ul> |
|||
</div> |
|||
|
|||
</div> |
|||
<div class="linksBtm"> |
|||
<a href="javascript:;">智能羽毛球馆</a> |
|||
<a href="javascript:;">智能体育馆</a> |
|||
<a href="javascript:;">无人体育馆</a> |
|||
</div> |
|||
|
|||
<img class="rlogo" src="static/images/logo_b.png" alt=""> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
<div class="footer"> |
|||
<div class="copyright"> |
|||
<a href="javascript:;" target="_blank">欧轩智能场馆</a> |
|||
<span>广州欧轩网络科技有限公司版权所有</span> |
|||
<a href="https://beian.miit.gov.cn/" target="_blank">粤ICP备13086082号</a> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'oxFooter', |
|||
data() { |
|||
return { |
|||
msg: '尾部' |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped src="@/../static/css/OxFooter.css"></style> |
|||
<!-- Add "scoped" attribute to limit CSS to this component only --> |
|||
|
@ -0,0 +1,288 @@ |
|||
<template> |
|||
<div class="header"> |
|||
<div class="header-wrap"> |
|||
<div class="logo"> |
|||
<a href="/"> |
|||
<img src="static/images/logo.png" /> |
|||
</a> |
|||
</div> |
|||
<input type="checkbox" name id="mobile-menu-toggle" value /> |
|||
<label class="gh" for="mobile-menu-toggle"> |
|||
<span></span> |
|||
</label> |
|||
<div class="nav"> |
|||
<ul> |
|||
<li><a>首页</a></li> |
|||
<li><a>产品介绍</a></li> |
|||
<li><a>案例展示</a></li> |
|||
<li><a>合作伙伴</a></li> |
|||
<li><a>新闻资讯</a></li> |
|||
<li class="active"><a>帮助中心</a></li> |
|||
<li><a>登录 / 注册</a></li> |
|||
|
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'OxHeader', |
|||
data() { |
|||
return { |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<!-- Add "scoped" attribute to limit CSS to this component only --> |
|||
<style scoped> |
|||
/*reset*/ |
|||
html{-webkit-text-size-adjust:none; /*解决chrome浏览器下字体不能小于12px*/} |
|||
body{ color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif;} |
|||
a{outline:none; text-decoration:none;} a:hover{ text-decoration:underline;} |
|||
html{zoom:1;}html *{outline:0;zoom:1;} html button::-moz-focus-inner{border-color:transparent!important;} |
|||
body{overflow-x: hidden; font-size:12px;} body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;} |
|||
a{ color:inherit; text-decoration: none;} |
|||
a:hover{ color:#3e6ed4; text-decoration: none;} |
|||
body{font-family: "Microsoft YaHei",sans-serif;} |
|||
|
|||
/*手机下汉堡菜单*/ |
|||
.gh { |
|||
|
|||
height:34px; |
|||
width:34px; |
|||
margin-right:30px; |
|||
position:absolute; |
|||
right: 0; top: 14px; |
|||
transition: all 0.5s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
-webkit-transition: all 0.5s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
-ms-transition: all 0.5s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
cursor:pointer; |
|||
display: none; |
|||
} |
|||
.gh span { |
|||
background-color: #fff; |
|||
display: block; |
|||
height: 2px; |
|||
margin-top: -2px; |
|||
position: relative; |
|||
top: 50%; |
|||
transition: all 0.3s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
-webkit-transition: all 0.3s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
-ms-transition: all 0.3s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
width: 100%; |
|||
} |
|||
|
|||
.gh span:after, .gh span:before { |
|||
background-color: #fff; |
|||
content: ""; |
|||
display: block; |
|||
height: 2px; |
|||
left: 0; |
|||
position: absolute; |
|||
transition: all 0.3s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
-webkit-transition: all 0.3s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
-ms-transition: all 0.3s cubic-bezier(0.7, 0, 0.3, 1) 0s; |
|||
width:100%; |
|||
} |
|||
.gh span:after { |
|||
top:10px; |
|||
} |
|||
.gh span:before { |
|||
top:-10px; |
|||
} |
|||
#mobile-menu-toggle{ |
|||
display: none; |
|||
} |
|||
#mobile-menu-toggle:checked + .gh span:after, |
|||
#mobile-menu-toggle:checked + .gh span:before { |
|||
top: 0; |
|||
} |
|||
#mobile-menu-toggle:checked + .gh span:before { |
|||
transform: translateY(0px) rotate(-45deg); |
|||
-webkit-transform: translateY(0px) rotate(-45deg); |
|||
-ms-transform: translateY(0px) rotate(-45deg); |
|||
} |
|||
#mobile-menu-toggle:checked + .gh span:after { |
|||
transform: translateY(0px) rotate(45deg); |
|||
-webkit-transform: translateY(0px) rotate(45deg); |
|||
-ms-transform: translateY(0px) rotate(45deg); |
|||
} |
|||
#mobile-menu-toggle:checked + .gh span { |
|||
background-color: transparent !important; |
|||
} |
|||
#mobile-menu-toggle:checked + .gh + .nav{ |
|||
max-height: 1000px; |
|||
} |
|||
* { |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
.body, |
|||
body, |
|||
select, |
|||
input, |
|||
view, |
|||
text, |
|||
button, |
|||
textarea { |
|||
font-family: 'PingFang SC', 'microsoft yahei', arial, 'helvetica neue', 'hiragino sans gb', sans-serif; |
|||
} |
|||
|
|||
body, |
|||
.body { |
|||
font-size: 14px; |
|||
color: #fff; |
|||
background-color: #fff; |
|||
overflow-x: hidden; |
|||
line-height: 1.6; |
|||
} |
|||
|
|||
a { |
|||
color: inherit; |
|||
} |
|||
|
|||
a:hover { |
|||
color: inherit; |
|||
} |
|||
|
|||
img { |
|||
max-width: 100%; |
|||
} |
|||
|
|||
/*header*/ |
|||
.header { |
|||
/*margin-top: 50px; position: absolute;*/ |
|||
left: 0; |
|||
right: 0; |
|||
top: 0; |
|||
|
|||
/**/ |
|||
background: #009874; |
|||
position: fixed; |
|||
padding-top: 8px; |
|||
padding-bottom: 4px; |
|||
z-index: 99; |
|||
} |
|||
|
|||
.header .logo { |
|||
margin-left: 60px; |
|||
float: left; |
|||
} |
|||
|
|||
.header .logo img { |
|||
width: 189px; |
|||
} |
|||
|
|||
.header .nav { |
|||
float: right; |
|||
margin-right: 60px; |
|||
font-weight: 400; |
|||
margin-top: 10px; |
|||
} |
|||
|
|||
.header .nav li { |
|||
margin-left: 30px; |
|||
display: inline-block; |
|||
vertical-align: middle; |
|||
font-size: 14px; |
|||
position: relative; |
|||
} |
|||
|
|||
.header .nav li.active a, |
|||
.header .nav li a:hover { |
|||
color: #000000; |
|||
} |
|||
|
|||
.header .nav li.active::after { |
|||
position: absolute; |
|||
bottom: -18px; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 4px; |
|||
content: ''; |
|||
background: #000; |
|||
} |
|||
|
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
-webkit-appearance: none; |
|||
/*去掉浏览器默认样式*/ |
|||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); |
|||
-webkit-touch-callout: none; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
body, |
|||
.body { |
|||
|
|||
-webkit-text-size-adjust: 100%; |
|||
/*关闭自动调整字体*/ |
|||
-webkit-overflow-scrolling: touch; |
|||
overflow-scrolling: touch; |
|||
} |
|||
|
|||
|
|||
/*pad*/ |
|||
img { |
|||
max-width: 100%; |
|||
} |
|||
|
|||
/* 平板--sm */ |
|||
@media screen and (max-width:992px) { |
|||
.gh { |
|||
display: block; |
|||
} |
|||
|
|||
.gh+.nav { |
|||
height: auto; |
|||
background: #fff; |
|||
overflow: hidden; |
|||
transition: 0.4s; |
|||
padding: 0; |
|||
max-height: 0; |
|||
margin-right: 0; |
|||
float: none; |
|||
width: 100%; |
|||
text-align: center; |
|||
|
|||
} |
|||
|
|||
.header .nav ul { |
|||
padding: 20px 0; |
|||
} |
|||
|
|||
.header .nav li { |
|||
display: block; |
|||
margin-left: 0; |
|||
} |
|||
|
|||
.nav a { |
|||
color: #000; |
|||
display: block; |
|||
padding: 10px 0; |
|||
} |
|||
|
|||
.header .nav li.active::after { |
|||
display: none; |
|||
} |
|||
|
|||
.header .nav li.active a, |
|||
.header .nav li a:hover { |
|||
color: #369FFF; |
|||
} |
|||
|
|||
.header { |
|||
/*margin-top: 20px;*/ |
|||
padding-top: 8px; |
|||
} |
|||
|
|||
.header .logo { |
|||
margin-left: 20px; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,174 @@ |
|||
<!-- 附件 --> |
|||
<template> |
|||
<div class="hello"> |
|||
<Header></Header> |
|||
|
|||
<el-container class="container-narrow"> |
|||
<el-dialog |
|||
:title="$t('file_gub')" |
|||
:visible.sync="dialogTableVisible" |
|||
:close-on-click-modal="false" |
|||
width="65%" |
|||
> |
|||
<el-form :inline="true" class="demo-form-inline"> |
|||
<el-form-item label> |
|||
<el-input v-model="display_name" :placeholder="$t('display_name')"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label> |
|||
<el-select v-model="attachment_type" placeholder> |
|||
<el-option :label="$t('all_attachment_type')" value="-1"></el-option> |
|||
<el-option :label="$t('image')" value="1"></el-option> |
|||
<el-option :label="$t('general_attachment')" value="2"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button @click="onSubmit">{{$t('search')}}</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-upload |
|||
class="upload-file" |
|||
:action="uploadUrl" |
|||
:on-success="uploadCallback" |
|||
:on-error="uploadCallback" |
|||
ref="uploadFile" |
|||
> |
|||
<el-button>{{$t('upload')}}</el-button> |
|||
</el-upload> |
|||
</el-form-item> |
|||
</el-form> |
|||
<P>{{$t('accumulated_used_sapce')}} {{used}}M , {{$t('month_flow')}} {{used_flow}}M</P> |
|||
<el-table :data="dataList" style="width: 100%"> |
|||
<el-table-column prop="file_id" :label="$t('file_id')"></el-table-column> |
|||
<el-table-column prop="display_name" :label="$t('display_name')"></el-table-column> |
|||
<el-table-column prop="file_type" :label="$t('file_type')" width="160"></el-table-column> |
|||
<el-table-column prop="file_size_m" :label="$t('file_size_m')" width="160"></el-table-column> |
|||
<el-table-column prop="visit_times" :label="$t('visit_times')"></el-table-column> |
|||
<el-table-column prop="addtime" :label="$t('add_time')" width="160"></el-table-column> |
|||
<el-table-column prop :label="$t('operation')"> |
|||
<template slot-scope="scope"> |
|||
<el-button @click="select(scope.row)" type="text" size="small">{{$t('select')}}</el-button> |
|||
<el-button @click="visit(scope.row)" type="text" size="small">{{$t('visit')}}</el-button> |
|||
<el-button @click="delete_row(scope.row)" type="text" size="small">{{$t('delete')}}</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<div class="block"> |
|||
<span class="demonstration"></span> |
|||
<el-pagination |
|||
@current-change="handleCurrentChange" |
|||
:page-size="count" |
|||
layout="total, prev, pager, next" |
|||
:total="total" |
|||
></el-pagination> |
|||
</div> |
|||
</el-dialog> |
|||
</el-container> |
|||
<Footer></Footer> |
|||
<div class></div> |
|||
</div> |
|||
</template> |
|||
|
|||
<style> |
|||
</style> |
|||
|
|||
<script> |
|||
export default { |
|||
props: { |
|||
callback: '', |
|||
page_id: '', |
|||
item_id: '', |
|||
manage: true |
|||
}, |
|||
data() { |
|||
return { |
|||
dialogTableVisible: false, |
|||
page: 1, |
|||
count: 5, |
|||
display_name: '', |
|||
username: '', |
|||
dataList: [], |
|||
total: 0, |
|||
positive_type: '1', |
|||
attachment_type: '-1', |
|||
used: 0, |
|||
used_flow: 0, |
|||
uploadUrl: DocConfig.server + '/api/page/upload' |
|||
} |
|||
}, |
|||
components: {}, |
|||
computed: { |
|||
uploadData: function() { |
|||
return { |
|||
page_id: this.page_id, |
|||
item_id: this.item_id |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
getList() { |
|||
this.request('/api/attachment/getMyList', { |
|||
page: this.page, |
|||
count: this.count, |
|||
attachment_type: this.attachment_type, |
|||
display_name: this.display_name, |
|||
username: this.username |
|||
}).then(data => { |
|||
var json = data.data |
|||
this.dataList = json.list |
|||
this.total = parseInt(json.total) |
|||
this.used = json.used_m |
|||
this.used_flow = json.used_flow_m |
|||
}) |
|||
}, |
|||
show() { |
|||
this.dialogTableVisible = true |
|||
this.getList() |
|||
}, |
|||
handleCurrentChange(currentPage) { |
|||
this.page = currentPage |
|||
this.getList() |
|||
}, |
|||
onSubmit() { |
|||
this.page = 1 |
|||
this.getList() |
|||
}, |
|||
visit(row) { |
|||
window.open(row.url) |
|||
}, |
|||
delete_row(row) { |
|||
this.$confirm(this.$t('confirm_delete'), ' ', { |
|||
confirmButtonText: this.$t('confirm'), |
|||
cancelButtonText: this.$t('cancel'), |
|||
type: 'warning' |
|||
}).then(() => { |
|||
this.request('/api/attachment/deleteMyAttachment', { |
|||
file_id: row.file_id |
|||
}).then(data => { |
|||
this.$message.success(this.$t('op_success')) |
|||
this.getList() |
|||
}) |
|||
}) |
|||
}, |
|||
uploadCallback(data) { |
|||
if (data.error_message) { |
|||
this.$alert(data.error_message) |
|||
} |
|||
let childRef = this.$refs.uploadFile // 获取子组件 |
|||
childRef.clearFiles() |
|||
this.getList() |
|||
}, |
|||
select(row) { |
|||
this.request('/api/attachment/bindingPage', { |
|||
file_id: row.file_id, |
|||
page_id: this.page_id |
|||
}).then(data => { |
|||
this.dialogTableVisible = false |
|||
this.callback() |
|||
}) |
|||
} |
|||
|
|||
}, |
|||
mounted() {} |
|||
} |
|||
</script> |
@ -1,8 +1,14 @@ |
|||
// action比mutation的好处是可以任意异步
|
|||
// action比mutation的好处是可以任意异步。本来mutation只能同步。现在通过action封装,可以任意异步操作数据
|
|||
|
|||
export default { |
|||
incrementAsync({ commit }) { |
|||
setTimeout(() => { |
|||
commit('increment') |
|||
}, 1000) |
|||
}, |
|||
changeItemInfo(ctx, val) { |
|||
// console.log(val) //val是dispatch派发传递过来的值
|
|||
// console.log(ctx) //ctx是上下文,必传
|
|||
ctx.commit('changeItemInfo', val)// commit到mutation
|
|||
} |
|||
} |
@ -0,0 +1,7 @@ |
|||
|
|||
const state = { |
|||
count: '1', |
|||
item_info: {} |
|||
} |
|||
|
|||
export default state |
@ -1,60 +1,82 @@ |
|||
//全局函数/变量
|
|||
export default{ |
|||
install(Vue,options) |
|||
{ |
|||
// 全局函数/变量
|
|||
export default { |
|||
install(Vue, options) { |
|||
Vue.prototype.getData = function () { |
|||
console.log('我是插件中的方法'); |
|||
console.log('我是插件中的方法') |
|||
} |
|||
|
|||
//Vue.prototype.DocConfig = {
|
|||
// "server":'http://127.0.0.1/showdoc.cc/server/index.php?s=',
|
|||
//"server":'../server/index.php?s=',
|
|||
//}
|
|||
Vue.prototype.request = function(){ |
|||
|
|||
// Vue.prototype.DocConfig = {
|
|||
// "server":'http://127.0.0.1/showdoc.cc/server/index.php?s=',
|
|||
// "server":'../server/index.php?s=',
|
|||
// }
|
|||
Vue.prototype.request = function () { |
|||
|
|||
} |
|||
|
|||
Vue.prototype.getRootPath = function(){ |
|||
return window.location.protocol +'//' +window.location.host + window.location.pathname |
|||
Vue.prototype.getRootPath = function () { |
|||
return window.location.protocol + '//' + window.location.host + window.location.pathname |
|||
} |
|||
|
|||
/*判断是否是移动设备*/ |
|||
Vue.prototype.isMobile = function (){ |
|||
return navigator.userAgent.match(/iPhone|iPad|iPod|Android|android|BlackBerry|IEMobile/i) ? true : false; |
|||
/* 判断是否是移动设备 */ |
|||
Vue.prototype.isMobile = function () { |
|||
return !!navigator.userAgent.match(/iPhone|iPad|iPod|Android|android|BlackBerry|IEMobile/i) |
|||
} |
|||
|
|||
Vue.prototype.get_user_info = function(callback){ |
|||
var that = this ; |
|||
var url = DocConfig.server+'/api/user/info'; |
|||
var params = new URLSearchParams(); |
|||
params.append('redirect_login', false); |
|||
that.axios.post(url, params) |
|||
.then(function (response) { |
|||
if (callback) {callback(response);}; |
|||
}); |
|||
Vue.prototype.get_user_info = function (callback) { |
|||
var that = this |
|||
var url = DocConfig.server + '/api/user/info' |
|||
var params = new URLSearchParams() |
|||
params.append('redirect_login', false) |
|||
that.axios.post(url, params) |
|||
.then(function (response) { |
|||
if (callback) { callback(response) }; |
|||
}) |
|||
} |
|||
|
|||
Vue.prototype.get_notice = function(callback){ |
|||
var that = this ; |
|||
var url = DocConfig.server+'/api/notice/getList'; |
|||
var params = new URLSearchParams(); |
|||
params.append('notice_type', 'unread'); |
|||
params.append('count', '1'); |
|||
that.axios.post(url, params) |
|||
.then(function (response) { |
|||
if (callback) {callback(response);}; |
|||
}); |
|||
Vue.prototype.get_notice = function (callback) { |
|||
var that = this |
|||
var url = DocConfig.server + '/api/notice/getList' |
|||
var params = new URLSearchParams() |
|||
params.append('notice_type', 'unread') |
|||
params.append('count', '1') |
|||
that.axios.post(url, params) |
|||
.then(function (response) { |
|||
if (callback) { callback(response) }; |
|||
}) |
|||
} |
|||
|
|||
Vue.prototype.set_bg_grey = function(){ |
|||
/*给body添加类,设置背景色*/ |
|||
document.getElementsByTagName("body")[0].className="grey-bg"; |
|||
Vue.prototype.set_bg_grey = function () { |
|||
/* 给body添加类,设置背景色 */ |
|||
document.getElementsByTagName('body')[0].className = 'grey-bg' |
|||
} |
|||
|
|||
Vue.prototype.unset_bg_grey = function(){ |
|||
/*去掉添加的背景色*/ |
|||
document.body.removeAttribute("class","grey-bg"); |
|||
Vue.prototype.unset_bg_grey = function () { |
|||
/* 去掉添加的背景色 */ |
|||
document.body.removeAttribute('class', 'grey-bg') |
|||
} |
|||
|
|||
// json格式化与压缩
|
|||
// compress=false的时候表示美化json,compress=true的时候表示将美化过的json压缩还原
|
|||
Vue.prototype.formatJson = function (txt, compress = false) { |
|||
if (compress === false) { |
|||
try { |
|||
if (typeof txt === 'string') { |
|||
txt = JSON.parse(txt) |
|||
} |
|||
return JSON.stringify(txt, null, 2) |
|||
} catch (e) { |
|||
// 非json数据直接显示
|
|||
return txt |
|||
} |
|||
} |
|||
// 将美化过的json压缩还原
|
|||
try { |
|||
const obj = JSON.parse(txt); |
|||
return JSON.stringify(obj); |
|||
} catch (e) { |
|||
// 非json数据直接显示
|
|||
return txt; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,228 @@ |
|||
/*reset*/ |
|||
html{-webkit-text-size-adjust:none; /*解决chrome浏览器下字体不能小于12px*/} |
|||
body{ color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif;} |
|||
a{outline:none; text-decoration:none;} a:hover{ text-decoration:underline;} |
|||
html{zoom:1;}html *{outline:0;zoom:1;} html button::-moz-focus-inner{border-color:transparent!important;} |
|||
body{overflow-x: hidden; font-size:12px;} body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;} |
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
-webkit-appearance: none; |
|||
/*去掉浏览器默认样式*/ |
|||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); |
|||
-webkit-touch-callout: none; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
body, |
|||
.body { |
|||
|
|||
-webkit-text-size-adjust: 100%; |
|||
/*关闭自动调整字体*/ |
|||
-webkit-overflow-scrolling: touch; |
|||
overflow-scrolling: touch; |
|||
} |
|||
|
|||
|
|||
/*pad*/ |
|||
img { |
|||
max-width: 100%; |
|||
} |
|||
a { |
|||
color: inherit; |
|||
} |
|||
|
|||
a:hover { |
|||
color: inherit; |
|||
} |
|||
|
|||
|
|||
.contactBox { |
|||
background: #5CCCB2; |
|||
} |
|||
|
|||
.contactBox .wrapperBox { |
|||
width: 1200px; |
|||
overflow: hidden; |
|||
margin: 0 auto; |
|||
padding-top: 30px; |
|||
padding-bottom: 70px; |
|||
color: #000; |
|||
font-size: 16px; |
|||
line-height: 2; |
|||
} |
|||
|
|||
.contactBox .wrapperBox>div { |
|||
float: left; |
|||
width: 50%; |
|||
} |
|||
|
|||
.contactBox .desc { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.contactBox .rightBox { |
|||
|
|||
overflow: hidden; |
|||
} |
|||
|
|||
.contactBox .item { |
|||
width: 100px; |
|||
float: left; |
|||
text-align: center; |
|||
margin-right: 46px; |
|||
} |
|||
|
|||
.contactBox .item img { |
|||
width: 100%; |
|||
display: block; |
|||
margin-bottom: 12px; |
|||
} |
|||
|
|||
@font-face { |
|||
font-family: "unisans"; |
|||
src: url("unisans.otf"); |
|||
/* iOS 4.1- */ |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
} |
|||
|
|||
.enText { |
|||
font-size: 60px; |
|||
font-weight: bold; |
|||
font-family: "unisans"; |
|||
color: #000; |
|||
} |
|||
|
|||
.linksBox{ |
|||
background: #009874; |
|||
color: #000; |
|||
} |
|||
.linksBox .wrapperBox{ |
|||
width: 1200px; |
|||
margin:0 auto; |
|||
position: relative; |
|||
padding-top: 60px; |
|||
padding-bottom: 60px; |
|||
} |
|||
.links{ |
|||
overflow: hidden; |
|||
|
|||
font-size: 16px; |
|||
margin-bottom: 55px; |
|||
} |
|||
.links > div{ |
|||
width: 546px; |
|||
float: left; |
|||
} |
|||
.links h3{ |
|||
font-size: 30px; |
|||
font-weight: bold; |
|||
margin-bottom: 30px; |
|||
} |
|||
.links li{ |
|||
margin-bottom: 14px; |
|||
} |
|||
.linksBtm{ |
|||
font-size: 20px; |
|||
} |
|||
.linksBtm a{ |
|||
margin-right: 100px; |
|||
font-weight: bold; |
|||
} |
|||
.rlogo{ |
|||
width:200px; |
|||
position: absolute; |
|||
right:0; |
|||
top:70px; |
|||
} |
|||
.footer { |
|||
font-size: 16px; |
|||
background: #000000; |
|||
} |
|||
|
|||
.footer .copyright span { |
|||
margin: 0 180px; |
|||
} |
|||
|
|||
.footer .copyright { |
|||
width: 1200px; |
|||
margin: 0 auto; |
|||
padding: 30px 0; |
|||
} |
|||
/* 平板--sm */ |
|||
@media screen and (max-width:992px) { |
|||
|
|||
.contactBox .wrapperBox{ |
|||
width:100%; |
|||
padding: 20px 0; |
|||
font-size: 12px; |
|||
} |
|||
.enText{ |
|||
font-size: 22px; |
|||
text-align: center; |
|||
} |
|||
.contactBox .wrapperBox>div{ |
|||
float: none; |
|||
width:100%; |
|||
padding: 0 15px; |
|||
} |
|||
.rightBox .enText{ |
|||
margin-top: 20px; |
|||
margin-bottom: 20px; |
|||
} |
|||
.contactBox .item{ |
|||
width:50%; |
|||
margin-right: 0; |
|||
} |
|||
.contactBox .item img{ |
|||
width: 100px; |
|||
margin:0 auto 15px; |
|||
} |
|||
.linksBox .wrapperBox{ |
|||
width:100%; |
|||
padding: 20px 15px; |
|||
} |
|||
.rlogo{ |
|||
display: none; |
|||
} |
|||
.links{ |
|||
margin-bottom: 15px; |
|||
} |
|||
.links > div{ |
|||
width: 100%; |
|||
float: none; |
|||
padding: 0; |
|||
text-align: center; |
|||
} |
|||
.links li{ |
|||
margin:4px 5px ; |
|||
display: inline-block; |
|||
font-size: 14px; |
|||
} |
|||
.links h3{ |
|||
font-size: 18px; |
|||
margin:10px 0; |
|||
} |
|||
.linksBtm{ |
|||
font-size: 16px; |
|||
text-align: center; |
|||
} |
|||
.linksBtm a{ |
|||
margin: 5px; |
|||
} |
|||
.footer .copyright{ |
|||
width: 100%; |
|||
padding: 10px; |
|||
font-size: 12px; |
|||
text-align: center; |
|||
} |
|||
.footer .copyright span{ |
|||
margin: 0; |
|||
} |
|||
.footer .copyright a:first-child{ |
|||
display: block; |
|||
margin:0 auto 3px; |
|||
font-size: 14px; |
|||
} |
|||
} |
@ -0,0 +1,82 @@ |
|||
|
|||
/*reset*/ |
|||
html{-webkit-text-size-adjust:none; /*解决chrome浏览器下字体不能小于12px*/} |
|||
body{ color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif;} |
|||
a{outline:none; text-decoration:none;} a:hover{ text-decoration:underline;} |
|||
html{zoom:1;}html *{outline:0;zoom:1;} html button::-moz-focus-inner{border-color:transparent!important;} |
|||
body{overflow-x: hidden; font-size:12px;} body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;} table{/*border-collapse:collapse;border-spacing:0;*/} fieldset,a img{border:0;} address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:normal;} li{list-style:none;} caption,th{text-align:left;} h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;} q:before,q:after{content:'';} |
|||
input[type="submit"], input[type="reset"], input[type="button"], button { -webkit-appearance: none; /*去掉苹果的默认UI来渲染按钮*/} em,i{ font-style:normal;} |
|||
|
|||
|
|||
|
|||
/*common*/ |
|||
.clearfix:after {content:"."; display:block; height:0; clear:both; visibility:hidden; }.clearfix {display:block;}.clear{ clear:both;} |
|||
.colwrapper { overflow:hidden; zoom:1 /*for ie*/; margin:5px auto; } |
|||
.strong{ font-weight: bold;} .left{ float: left;} .right{ float: right;} .center{ margin:0 auto; text-align:center;} |
|||
.show{ display:block; visibility:visible;}.hide{ display: none; visibility:hidden;} |
|||
.block{ display:block;} .inline{ display:inline;} |
|||
.break{ word-wrap:break-word;overflow:hidden; /*word-break:break-all;*/} |
|||
|
|||
.tal{ text-align:left} .tar{ text-align:right;} |
|||
|
|||
/*文字两侧对齐*/ |
|||
.justify { |
|||
text-align:justify; |
|||
text-justify:distribute-all-lines;/*ie6-8*/ |
|||
text-align-last:justify;/* ie9*/ |
|||
-moz-text-align-last:justify;/*ff*/ |
|||
-webkit-text-align-last:justify;/*chrome 20+*/ |
|||
} |
|||
|
|||
.toe{ |
|||
/*超出省略号*/ |
|||
word-break:keep-all; |
|||
white-space:nowrap; |
|||
overflow:hidden; |
|||
text-overflow:ellipsis; |
|||
} |
|||
@media screen and (-webkit-min-device-pixel-ratio:0){/* chrome*/ |
|||
.justify:after{ |
|||
content:"."; |
|||
display: inline-block; |
|||
width:100%; |
|||
overflow:hidden; |
|||
height:0; |
|||
} |
|||
} |
|||
|
|||
a{ color:inherit; text-decoration: none;} |
|||
a:hover{ color:#3e6ed4; text-decoration: none;} |
|||
|
|||
body{font-family: "Microsoft YaHei",sans-serif;} |
|||
|
|||
.css3{ |
|||
/*transition: all 0.3s ease-in-out 0s;*/ |
|||
|
|||
-webkit-transform:translate3d(0, -20px, 0); |
|||
-ms-transform:translate3d(0, -20px, 0); |
|||
transform:translate3d(0, -20px, 0); |
|||
|
|||
-webkit-transition-property:opacity, -webkit-transform; |
|||
transition-property:opacity, transform; |
|||
-webkit-transition-duration:1000ms; |
|||
transition-duration:1000ms; |
|||
-webkit-transition-timing-function:cubic-bezier(0.25, 0.46, 0.33, 0.98); |
|||
transition-timing-function:cubic-bezier(0.25, 0.46, 0.33, 0.98); |
|||
|
|||
-webkit-transition-delay:800ms; |
|||
transition-delay:800ms |
|||
} |
|||
.css3.animated{ |
|||
-webkit-transform:translate3d(0, 0, 0); |
|||
-ms-transform:translate3d(0, 0, 0); |
|||
transform:translate3d(0, 0, 0); |
|||
} |
|||
@media screen and (max-width: 650px) { |
|||
|
|||
} |
|||
|
|||
@media screen and (max-width: 480px) { |
|||
|
|||
} |
|||
|
@ -0,0 +1,333 @@ |
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
-webkit-appearance: none; |
|||
/*去掉浏览器默认样式*/ |
|||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); |
|||
-webkit-touch-callout: none; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
body, |
|||
.body { |
|||
|
|||
-webkit-text-size-adjust: 100%; |
|||
/*关闭自动调整字体*/ |
|||
-webkit-overflow-scrolling: touch; |
|||
overflow-scrolling: touch; |
|||
} |
|||
|
|||
|
|||
/*pad*/ |
|||
img { |
|||
max-width: 100%; |
|||
} |
|||
|
|||
input[type="submit"], |
|||
input[type="reset"], |
|||
input[type="button"], |
|||
button { |
|||
-webkit-appearance: none; |
|||
/*去掉苹果的默认UI来渲染按钮*/ |
|||
} |
|||
|
|||
@media only screen and (max-width:1480px) { |
|||
.wrapper { |
|||
width: 1240px; |
|||
} |
|||
|
|||
.hbanner .wrapper { |
|||
background-size: 650px auto; |
|||
} |
|||
|
|||
.hrow .txt h2 { |
|||
font-size: 36px; |
|||
} |
|||
|
|||
.hrow .txt p { |
|||
font-size: 18px; |
|||
} |
|||
|
|||
} |
|||
|
|||
/* 电脑小屏--md */ |
|||
@media screen and (max-width:1200px) { |
|||
.wrapper { |
|||
width: 1170px; |
|||
} |
|||
|
|||
/*价格*/ |
|||
.mprice-main .wrapper { |
|||
padding-left: 150px; |
|||
position: relative; |
|||
margin-right: 20px; |
|||
|
|||
} |
|||
|
|||
.mprice-main { |
|||
background-size: cover; |
|||
padding-bottom: 40px; |
|||
padding-top: 100px; |
|||
} |
|||
|
|||
.mprice-main .itemwrap { |
|||
white-space: nowrap; |
|||
overflow-x: scroll; |
|||
padding-top: 80px; |
|||
} |
|||
|
|||
.mprice-main .item { |
|||
float: none; |
|||
display: inline-block; |
|||
vertical-align: top; |
|||
width: 200px; |
|||
} |
|||
|
|||
.mprice-main .item ul.tit { |
|||
padding-left: 20px; |
|||
} |
|||
|
|||
.mprice-main .itemtit { |
|||
position: absolute; |
|||
left: 0; |
|||
top: 0; |
|||
} |
|||
|
|||
.mprice-main .item .btn a { |
|||
width: 120px; |
|||
height: 45px; |
|||
line-height: 45px; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
.mprice-explain { |
|||
padding: 60px 0; |
|||
} |
|||
|
|||
.mprice-explain .wrapper { |
|||
padding: 0 20px; |
|||
} |
|||
|
|||
} |
|||
|
|||
/* 平板--sm */ |
|||
@media screen and (max-width:992px) { |
|||
|
|||
|
|||
.wrapper { |
|||
width: auto; |
|||
} |
|||
|
|||
.hbanner .wrapper { |
|||
background-size: 300px auto; |
|||
background-position: center 100px; |
|||
padding-top: 400px; |
|||
height: auto; |
|||
padding-bottom: 100px; |
|||
} |
|||
|
|||
.hbanner-txt .btns a { |
|||
width: auto; |
|||
min-width: 120px; |
|||
height: 45px; |
|||
line-height: 45px; |
|||
} |
|||
|
|||
.hbanner-txt { |
|||
padding-left: 40px; |
|||
/*text-align: center;*/ |
|||
} |
|||
|
|||
.hbanner-txt h2 { |
|||
font-size: 24px; |
|||
} |
|||
|
|||
.hbanner-txt .list li { |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
.hrow .img { |
|||
width: auto; |
|||
float: none; |
|||
text-align: center; |
|||
padding-top: 0; |
|||
} |
|||
|
|||
.hrow { |
|||
height: auto !important; |
|||
padding-bottom: 100px; |
|||
padding-top: 100px; |
|||
} |
|||
|
|||
.hrow .txt { |
|||
width: auto; |
|||
float: none; |
|||
padding-top: 40px; |
|||
} |
|||
|
|||
.hrow .img>img { |
|||
max-width: 220px; |
|||
} |
|||
|
|||
.hrow .txt h2 { |
|||
font-size: 24px; |
|||
margin-bottom: 20px; |
|||
} |
|||
|
|||
.hrow .txt p { |
|||
font-size: 14px; |
|||
padding-bottom: 10px; |
|||
} |
|||
|
|||
.hfoot { |
|||
padding-top: 100px; |
|||
height: auto; |
|||
padding-bottom: 120px; |
|||
background-size: cover; |
|||
} |
|||
|
|||
.hfoot h2 { |
|||
font-size: 24px; |
|||
} |
|||
|
|||
.hfoot h2 br { |
|||
display: block; |
|||
} |
|||
|
|||
.hfoot .btn { |
|||
width: auto; |
|||
min-width: 120px; |
|||
height: 45px; |
|||
line-height: 45px; |
|||
} |
|||
|
|||
/*下载*/ |
|||
.downpage { |
|||
width: auto; |
|||
margin-left: 20px; |
|||
margin-right: 20px; |
|||
margin-top: 100px; |
|||
margin-bottom: 100px; |
|||
} |
|||
|
|||
.downlist { |
|||
padding: 40px 0; |
|||
} |
|||
|
|||
.downlist .body { |
|||
margin-top: 40px; |
|||
} |
|||
|
|||
.downlist .body li { |
|||
display: block; |
|||
margin-bottom: 40px; |
|||
} |
|||
|
|||
.downlist .body .btn a { |
|||
width: auto; |
|||
min-width: 120px; |
|||
height: 45px; |
|||
line-height: 45px; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
/*注册*/ |
|||
.form-box { |
|||
width: auto; |
|||
margin-left: 20px; |
|||
margin-right: 20px; |
|||
margin-top: 150px; |
|||
margin-bottom: 100px; |
|||
} |
|||
|
|||
.form { |
|||
padding: 20px; |
|||
padding-top: 70px; |
|||
} |
|||
|
|||
.form-btns button { |
|||
height: 45px; |
|||
line-height: 45px; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
.form-list .text { |
|||
height: 45px; |
|||
} |
|||
|
|||
.form-list .textcode+img { |
|||
height: 45px; |
|||
width: 100px; |
|||
} |
|||
|
|||
/*帮助中心*/ |
|||
.searchBox { |
|||
height: auto; |
|||
padding-top: 20px; |
|||
padding-bottom: 20px; |
|||
} |
|||
|
|||
.searchBox .wrapperBox { |
|||
width: 100%; |
|||
padding: 0 15px; |
|||
} |
|||
|
|||
.tip-text { |
|||
font-size: 18px; |
|||
} |
|||
|
|||
.input-group { |
|||
height: 40px; |
|||
padding-left: 40px; |
|||
border-radius: 20px; |
|||
} |
|||
|
|||
.input-group .btn { |
|||
font-size: 18px; |
|||
line-height: 36px; |
|||
width: 80px |
|||
} |
|||
|
|||
.input-group>img { |
|||
width: 24px; |
|||
top: 6px; |
|||
left: 10px; |
|||
} |
|||
|
|||
.input-group .form-control { |
|||
line-height: 38px; |
|||
font-size: 16px; |
|||
} |
|||
|
|||
h2.title { |
|||
font-size: 20px; |
|||
margin-bottom: 30px; |
|||
} |
|||
|
|||
.docListBox { |
|||
width: 100%; |
|||
padding: 20px 15px; |
|||
} |
|||
|
|||
.docListBox a { |
|||
width: 100%; |
|||
height: auto; |
|||
padding-top: 10px; |
|||
padding-bottom: 10px; |
|||
float:none; |
|||
font-size: 14px; |
|||
margin: 0; |
|||
border-top: 1px solid#EDEDED; |
|||
} |
|||
.docListBox a::before{ |
|||
top:50%; |
|||
margin-top: -20px; |
|||
} |
|||
|
|||
} |
|||
|
|||
@media screen and (max-width:768px) { |
|||
/*.wrapper{ |
|||
width: 750px; |
|||
}*/ |
|||
} |
@ -0,0 +1,793 @@ |
|||
* { |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
.body, |
|||
body, |
|||
select, |
|||
input, |
|||
view, |
|||
text, |
|||
button, |
|||
textarea { |
|||
font-family: 'PingFang SC', 'microsoft yahei', arial, 'helvetica neue', 'hiragino sans gb', sans-serif; |
|||
} |
|||
|
|||
body, |
|||
.body { |
|||
font-size: 14px; |
|||
color: #fff; |
|||
background-color: #fff; |
|||
overflow-x: hidden; |
|||
line-height: 1.6; |
|||
} |
|||
|
|||
a { |
|||
color: inherit; |
|||
} |
|||
|
|||
a:hover { |
|||
color: inherit; |
|||
} |
|||
|
|||
img { |
|||
max-width: 100%; |
|||
} |
|||
|
|||
.clearfix:after { |
|||
content: ""; |
|||
display: table; |
|||
clear: both; |
|||
height: 0; |
|||
visibility: hidden; |
|||
} |
|||
|
|||
.fl { |
|||
float: left; |
|||
} |
|||
|
|||
.fr { |
|||
float: right; |
|||
} |
|||
|
|||
.form-box { |
|||
width: 400px; |
|||
margin: 200px auto 170px; |
|||
} |
|||
|
|||
.form-tit { |
|||
text-align: center; |
|||
font-size: 22px; |
|||
margin-bottom: 20px; |
|||
} |
|||
|
|||
.form { |
|||
background: #202020; |
|||
border-radius: 4px; |
|||
padding: 55px 55px 55px 55px; |
|||
position: relative; |
|||
} |
|||
|
|||
.form-err { |
|||
background: #FF6A6A; |
|||
border-radius: 4px 4px 0 0; |
|||
position: absolute; |
|||
left: 0; |
|||
right: 0; |
|||
top: 0; |
|||
padding: 10px; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
font-size: 12px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.form-list li { |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
.form-list .text { |
|||
width: 100%; |
|||
height: 52px; |
|||
background: #111111; |
|||
border-radius: 4px; |
|||
border: 0; |
|||
font-size: 14px; |
|||
color: #989898; |
|||
padding: 0 15px; |
|||
border: #111111 solid 1px; |
|||
} |
|||
|
|||
.form-list .text-err { |
|||
border-color: #FF6A6A; |
|||
} |
|||
|
|||
.form-list .textcode { |
|||
width: 160px; |
|||
} |
|||
|
|||
.form-list .textcode+img { |
|||
vertical-align: middle; |
|||
width: 116px; |
|||
height: 52px; |
|||
} |
|||
|
|||
.form-list .text:focus { |
|||
border: #369FFF solid 1px; |
|||
} |
|||
|
|||
.form-list a:hover { |
|||
color: #369FFF; |
|||
} |
|||
|
|||
.form-btns { |
|||
margin-top: 50px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.form-btns li+li { |
|||
margin-top: 10px; |
|||
} |
|||
|
|||
.form-btns .btn { |
|||
width: 100%; |
|||
height: 55px; |
|||
background: #FFFFFF; |
|||
font-size: 16px; |
|||
color: #111111; |
|||
border: 1px solid #FFFFFF; |
|||
box-sizing: border-box; |
|||
border-radius: 4px; |
|||
cursor: pointer; |
|||
display: inline-block; |
|||
line-height: 55px; |
|||
} |
|||
|
|||
.form-btns .btn:hover { |
|||
background: #369FFF !important; |
|||
border-color: #369FFF !important; |
|||
color: #fff !important; |
|||
} |
|||
|
|||
.form-btns .btn.btn1 { |
|||
background: transparent; |
|||
color: #fff; |
|||
} |
|||
|
|||
.form-other { |
|||
text-align: center; |
|||
margin-top: 15px; |
|||
} |
|||
|
|||
.form-other .hd { |
|||
color: #4E4E4E; |
|||
} |
|||
|
|||
.form-other .bd { |
|||
margin-top: 15px; |
|||
} |
|||
|
|||
/*首页*/ |
|||
.wrapper { |
|||
width: 1440px; |
|||
margin: 0 auto; |
|||
|
|||
} |
|||
|
|||
.searchBox { |
|||
height: 366px; |
|||
background-image: url(../images/bg.jpg); |
|||
background-size: contain; |
|||
margin-top: 59px; |
|||
padding-top: 60px; |
|||
} |
|||
|
|||
.searchBox .wrapperBox { |
|||
width: 900px; |
|||
margin: 0 auto; |
|||
} |
|||
|
|||
.tip-text { |
|||
font-size: 50px; |
|||
text-align: center; |
|||
color: #000; |
|||
} |
|||
|
|||
.input-group { |
|||
margin-top: 30px; |
|||
position: relative; |
|||
border: 2px solid #009874; |
|||
height: 60px; |
|||
border-radius: 30px; |
|||
background: #fff; |
|||
padding-left: 60px; |
|||
padding-right: 100px; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.input-group .btn { |
|||
background: #009874; |
|||
font-size: 24px; |
|||
text-align: center; |
|||
width: 100px; |
|||
height: 100%; |
|||
line-height: 56px; |
|||
position: absolute; |
|||
right: 0; |
|||
top: 0; |
|||
border: none; |
|||
color: #fff; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.input-group>img { |
|||
width: 30px; |
|||
position: absolute; |
|||
left: 18px; |
|||
top: 14px; |
|||
} |
|||
|
|||
.input-group .form-control { |
|||
|
|||
width: 100%; |
|||
font-size: 20px; |
|||
line-height: 56px; |
|||
height: 100%; |
|||
border: none; |
|||
background: none; |
|||
} |
|||
|
|||
.docListBox { |
|||
min-height: 200px; |
|||
color: #000; |
|||
padding-top: 80px; |
|||
padding-bottom: 20px; |
|||
width: 1200px; |
|||
overflow: hidden; |
|||
margin: 0 auto; |
|||
} |
|||
|
|||
.docListBox a { |
|||
display: block; |
|||
width: 319px; |
|||
height: 173px; |
|||
margin: 0 35px; |
|||
float: left; |
|||
font-size: 20px; |
|||
padding-top: 22px; |
|||
padding-right: 70px; |
|||
border-top: 2px solid #000; |
|||
position: relative; |
|||
} |
|||
|
|||
.docListBox a::before { |
|||
content: ''; |
|||
width: 40px; |
|||
height: 40px; |
|||
position: absolute; |
|||
right: 10px; |
|||
top: 20px; |
|||
background: url(../images/icon_right.png); |
|||
background-size: 100%; |
|||
|
|||
} |
|||
|
|||
.docListBox a.active, |
|||
.docListBox a:hover { |
|||
background: #76EACF; |
|||
} |
|||
|
|||
.resListBox { |
|||
width:1100px; |
|||
padding:40px 0; |
|||
} |
|||
|
|||
.resListBox a { |
|||
width: 100%; |
|||
height: auto; |
|||
padding-top: 20px; |
|||
padding-bottom: 20px; |
|||
float: none; |
|||
font-size: 20px; |
|||
margin: 0; |
|||
border-top: 1px solid#EDEDED; |
|||
} |
|||
.resListBox a small { |
|||
display: block; |
|||
font-size: 70%; |
|||
color:#999999 |
|||
} |
|||
.resListBox a:last-child { |
|||
border-bottom: 1px solid#EDEDED; |
|||
} |
|||
|
|||
.resListBox a::before { |
|||
top: 50%; |
|||
margin-top: -20px; |
|||
} |
|||
|
|||
|
|||
h2.title { |
|||
font-size: 32px; |
|||
text-align: center; |
|||
margin-bottom: 91px; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
|
|||
.hbanner .wrapper { |
|||
background: url(../imgs/home1.png) no-repeat right center; |
|||
height: 940px; |
|||
padding-top: 305px; |
|||
} |
|||
|
|||
.hbanner-txt { |
|||
padding-left: 155px; |
|||
} |
|||
|
|||
.hbanner-txt h2 { |
|||
font-size: 40px; |
|||
line-height: 160%; |
|||
color: #fff; |
|||
font-weight: bold; |
|||
margin-bottom: 55px; |
|||
} |
|||
|
|||
.hbanner-txt h2 font { |
|||
color: #369FFF; |
|||
} |
|||
|
|||
.hbanner-txt .list { |
|||
font-size: 14px; |
|||
line-height: 20px; |
|||
} |
|||
|
|||
.hbanner-txt .list li { |
|||
margin-bottom: 24px; |
|||
} |
|||
|
|||
.hbanner-txt .list li:last-child { |
|||
margin-bottom: 0; |
|||
} |
|||
|
|||
.hbanner-txt .list .num { |
|||
background: #333333; |
|||
border-radius: 1px; |
|||
margin-left: 5px; |
|||
padding: 0 3px; |
|||
font-family: 'Barlow-Regular'; |
|||
} |
|||
|
|||
.hbanner-txt .btns { |
|||
margin-top: 60px; |
|||
} |
|||
|
|||
.hbanner-txt .btns a { |
|||
width: 130px; |
|||
height: 55px; |
|||
line-height: 55px; |
|||
text-align: center; |
|||
display: inline-block; |
|||
border: 1px solid #FFFFFF; |
|||
box-sizing: border-box; |
|||
border-radius: 4px; |
|||
margin-right: 24px; |
|||
/*transition: 0.4s;*/ |
|||
} |
|||
|
|||
.hbanner-txt .btns a:hover { |
|||
background: #369FFF !important; |
|||
color: #fff !important; |
|||
border-color: #369FFF; |
|||
} |
|||
|
|||
.hbanner-txt .btns a.on { |
|||
color: #111111; |
|||
background: #fff; |
|||
} |
|||
|
|||
.hrow { |
|||
height: 634px; |
|||
} |
|||
|
|||
.hrow .wrapper { |
|||
/*overflow: hidden;*/ |
|||
padding: 0 10%; |
|||
} |
|||
|
|||
.hrow .fl { |
|||
float: left; |
|||
} |
|||
|
|||
.hrow .fr { |
|||
float: right; |
|||
} |
|||
|
|||
.hrow .txt { |
|||
/*padding-left: 155px;*/ |
|||
padding-top: 210px; |
|||
/*width: 570px;*/ |
|||
width: 53%; |
|||
} |
|||
|
|||
.hrow .txt h2 { |
|||
font-weight: 600; |
|||
font-size: 40px; |
|||
line-height: 160%; |
|||
margin-bottom: 50px; |
|||
} |
|||
|
|||
.hrow .txt p { |
|||
font-size: 22px; |
|||
line-height: 1.4; |
|||
padding-bottom: 30px; |
|||
} |
|||
|
|||
.hrow .txt p img { |
|||
margin-right: 13px; |
|||
} |
|||
|
|||
.hrow .img { |
|||
/*padding-top: 120px;*/ |
|||
padding-top: 110px; |
|||
/*width: 500px;*/ |
|||
width: 43%; |
|||
} |
|||
|
|||
.hrow1 { |
|||
background: #202020; |
|||
height: 634px; |
|||
} |
|||
|
|||
.hrow1 .img { |
|||
position: relative; |
|||
} |
|||
|
|||
.hrow1 .img>.box { |
|||
position: absolute; |
|||
left: 0; |
|||
top: -50px; |
|||
} |
|||
|
|||
.hrow1 .img>img { |
|||
position: relative; |
|||
z-index: 2; |
|||
} |
|||
|
|||
.hrow2 { |
|||
background: #369FFF; |
|||
height: 634px; |
|||
} |
|||
|
|||
.hrow3 { |
|||
background: #111111; |
|||
height: 634px; |
|||
} |
|||
|
|||
.hrow4 { |
|||
background: #202020; |
|||
height: 570px; |
|||
} |
|||
|
|||
.hrow5 { |
|||
background: #369FFF; |
|||
height: 634px; |
|||
} |
|||
|
|||
.hrow6 { |
|||
background: #111111; |
|||
height: 617px; |
|||
} |
|||
|
|||
.hrow7 { |
|||
background: #202020; |
|||
height: 617px; |
|||
} |
|||
|
|||
.hfoot { |
|||
height: 594px; |
|||
background: url(../imgs/home9.png) no-repeat center top #fff; |
|||
color: #111111; |
|||
text-align: center; |
|||
padding-top: 280px; |
|||
position: relative; |
|||
} |
|||
|
|||
.hfoot h2 { |
|||
font-size: 40px; |
|||
line-height: 160%; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.hfoot h2 br { |
|||
display: none; |
|||
} |
|||
|
|||
.hfoot .num { |
|||
background: #DFF0FF; |
|||
color: #369FFF; |
|||
font-weight: bold; |
|||
border-radius: 1px; |
|||
margin-right: 1px; |
|||
padding: 0 6px; |
|||
font-family: 'Barlow-Regular'; |
|||
} |
|||
|
|||
.hfoot .btn { |
|||
display: inline-block; |
|||
width: 130px; |
|||
height: 55px; |
|||
line-height: 55px; |
|||
background: #111111; |
|||
border-radius: 4px; |
|||
margin-top: 24px; |
|||
font-size: 16px; |
|||
color: #fff; |
|||
/*transition: 0.4s;*/ |
|||
} |
|||
|
|||
.hfoot .btn:hover { |
|||
background: #369FFF; |
|||
} |
|||
|
|||
.hfoot .copyright { |
|||
color: #9C9C9C; |
|||
position: absolute; |
|||
left: 0; |
|||
right: 0; |
|||
text-align: center; |
|||
bottom: 35px; |
|||
} |
|||
|
|||
/*价格*/ |
|||
.mprice-main { |
|||
background: #111111 url(../imgs/bg1.png) no-repeat center top; |
|||
padding-top: 200px; |
|||
padding-bottom: 210px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.mprice-main .wrapper { |
|||
overflow: hidden; |
|||
/*padding-left: 140px;*/ |
|||
padding-top: 80px; |
|||
|
|||
} |
|||
|
|||
.mprice-main .item { |
|||
width: 218px; |
|||
/*float: left;*/ |
|||
display: inline-block; |
|||
vertical-align: top; |
|||
text-align: center; |
|||
margin-right: 24px; |
|||
cursor: pointer; |
|||
transition: 0.4s; |
|||
-webkit-transition: 0.4s; |
|||
} |
|||
|
|||
.mprice-main .item:hover { |
|||
transform: translateY(-20px); |
|||
-webkit-transform: translateY(-20px); |
|||
} |
|||
|
|||
.mprice-main .itemtit:hover { |
|||
transform: translateY(0); |
|||
-webkit-transform: translateY(0); |
|||
} |
|||
|
|||
.mprice-main .item .title { |
|||
font-style: normal; |
|||
font-weight: 600; |
|||
font-size: 22px; |
|||
height: 60px; |
|||
} |
|||
|
|||
.mprice-main .itembox { |
|||
background: #202020; |
|||
border-radius: 4px; |
|||
height: 902px; |
|||
padding-top: 46px; |
|||
position: relative; |
|||
padding-bottom: 130px; |
|||
} |
|||
|
|||
.mprice-main .itembox-bgnone { |
|||
background: none; |
|||
} |
|||
|
|||
.mprice-main .itembox-border { |
|||
background: #111111; |
|||
border: 1px solid #202020; |
|||
|
|||
} |
|||
|
|||
.mprice-main .itembox-border li { |
|||
border-bottom: #202020 solid 1px; |
|||
} |
|||
|
|||
.mprice-main .itembox-highlight { |
|||
background: #369FFF; |
|||
} |
|||
|
|||
.mprice-main .item ul { |
|||
padding: 0 25px; |
|||
} |
|||
|
|||
.mprice-main .item ul.tit { |
|||
color: #989898; |
|||
text-align: left; |
|||
padding-left: 50px; |
|||
} |
|||
|
|||
.mprice-main .item li { |
|||
padding: 20px 0; |
|||
} |
|||
|
|||
.mprice-main .item li.num { |
|||
height: 90px; |
|||
padding: 0; |
|||
border: none; |
|||
font-family: "Barlow-Regular"; |
|||
} |
|||
|
|||
.mprice-main .item li.num big { |
|||
font-size: 40px; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.mprice-main .item .btn { |
|||
position: absolute; |
|||
left: 0; |
|||
right: 0; |
|||
bottom: 35px; |
|||
} |
|||
|
|||
.mprice-main .item .btn a { |
|||
width: 130px; |
|||
height: 55px; |
|||
line-height: 55px; |
|||
text-align: center; |
|||
border: 1px solid #FFFFFF; |
|||
box-sizing: border-box; |
|||
border-radius: 4px; |
|||
display: inline-block; |
|||
} |
|||
|
|||
.mprice-main .item .btn a:hover { |
|||
background: #369FFF; |
|||
border-color: #369FFF; |
|||
} |
|||
|
|||
.mprice-main .itembox-highlight .btn a { |
|||
color: #369FFF; |
|||
background: #fff; |
|||
} |
|||
|
|||
.mprice-main .itembox-highlight .btn a:hover { |
|||
border-color: #fff; |
|||
color: #fff; |
|||
} |
|||
|
|||
.mprice-explain { |
|||
background: #202020; |
|||
padding: 60px 0 150px; |
|||
|
|||
} |
|||
|
|||
.mprice-explain .wrapper { |
|||
padding: 0 155px; |
|||
} |
|||
|
|||
.mprice-explain h3 { |
|||
font-style: normal; |
|||
font-weight: 600; |
|||
font-size: 22px; |
|||
margin-bottom: 60px; |
|||
} |
|||
|
|||
.mprice-explain p { |
|||
margin-bottom: 24px; |
|||
font-size: 14px; |
|||
|
|||
} |
|||
|
|||
/*下载*/ |
|||
.downpage { |
|||
|
|||
width: 736px; |
|||
/*height: 821px;*/ |
|||
background: #202020; |
|||
border-radius: 4px; |
|||
margin: 0 auto; |
|||
margin-top: 210px; |
|||
margin-bottom: 270px; |
|||
padding: 24px; |
|||
} |
|||
|
|||
.downlist { |
|||
border-bottom: #333333 solid 1px; |
|||
padding: 60px 0; |
|||
} |
|||
|
|||
.downlist .head { |
|||
font-style: normal; |
|||
font-weight: 600; |
|||
font-size: 22px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.downlist .dbody { |
|||
margin-top: 60px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.downlist .dbody li { |
|||
display: inline-block; |
|||
margin: 0 30px; |
|||
} |
|||
|
|||
.downlist .dbody .txt { |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
font-size: 14px; |
|||
color: #989898; |
|||
margin-top: 15px; |
|||
} |
|||
|
|||
.downlist .dbody .btn { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.downlist .dbody .btn a { |
|||
width: 130px; |
|||
height: 55px; |
|||
line-height: 55px; |
|||
text-align: center; |
|||
border: 1px solid #FFFFFF; |
|||
box-sizing: border-box; |
|||
border-radius: 4px; |
|||
display: inline-block; |
|||
font-style: normal; |
|||
font-weight: 500; |
|||
font-size: 16px; |
|||
} |
|||
|
|||
.downlist .dbody .btn a.on { |
|||
background: #fff; |
|||
color: #111111; |
|||
} |
|||
|
|||
.downlist .dbody .btn a:hover { |
|||
background: #369FFF; |
|||
border-color: #369FFF; |
|||
color: #fff; |
|||
} |
|||
|
|||
.downlist .dbody .link { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.downlist .dbody .link a { |
|||
text-decoration: underline; |
|||
font-style: normal; |
|||
font-weight: 500; |
|||
font-size: 16px; |
|||
} |
|||
|
|||
.downlist+.downlist { |
|||
border: none; |
|||
} |
|||
|
|||
.downtip { |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
font-size: 12px; |
|||
line-height: 17px; |
|||
color: #666666; |
|||
padding-top: 24px; |
|||
} |
|||
|
|||
.regbg { |
|||
background: #111111 url(../imgs/regbg.jpg) no-repeat center top; |
|||
} |
2708
web_src/static/editor.md/lib/marked.min.js
File diff suppressed because it is too large
View File
@ -0,0 +1,29 @@ |
|||
/** |
|||
* marked v0.3.3 - a markdown parser |
|||
* Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) |
|||
* https://github.com/chjj/marked
|
|||
*/ |
|||
(function() { |
|||
var block = {newline: /^\n+/, code: /^( {4}[^\n]+\n*)+/, fences: noop, hr: /^( *[-*_]){3,} *(?:\n+|$)/, heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, nptable: noop, lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/, list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, table: noop, paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, text: /^[^\n]+/}; block.bullet = /(?:[*+-]|\d+\.)/; block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; block.item = replace(block.item, 'gm')(/bull/g, block.bullet)(); block.list = replace(block.list)(/bull/g, block.bullet)('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')('def', '\\n+(?=' + block.def.source + ')')(); block.blockquote = replace(block.blockquote)('def', block.def)(); block._tag = '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; block.html = replace(block.html)('comment', /<!--[\s\S]*?-->/)('closed', /<(tag)[\s\S]+?<\/\1>/)('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g, block._tag)(); block.paragraph = replace(block.paragraph)('hr', block.hr)('heading', block.heading)('lheading', block.lheading)('blockquote', block.blockquote)('tag', '<' + block._tag)('def', block.def)(); block.normal = merge({}, block); block.gfm = merge({}, block.normal, {fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/, paragraph: /^/}); block.gfm.paragraph = replace(block.paragraph)('(?!', '(?!' + block.gfm.fences.source.replace('\\1', '\\2') + '|' + block.list.source.replace('\\1', '\\3') + '|')(); block.tables = merge({}, block.gfm, {nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}); function Lexer(options) { this.tokens = []; this.tokens.links = {}; this.options = options || marked.defaults; this.rules = block.normal; if (this.options.gfm) { if (this.options.tables) { this.rules = block.tables } else { this.rules = block.gfm } } }Lexer.rules = block; Lexer.lex = function(src, options) { var lexer = new Lexer(options); return lexer.lex(src) }; Lexer.prototype.lex = function(src) { src = src.replace(/\r\n|\r/g, '\n').replace(/\t/g, ' ').replace(/\u00a0/g, ' ').replace(/\u2424/g, '\n'); return this.token(src, true) }; Lexer.prototype.token = function(src, top, bq) { |
|||
var src = src.replace(/^ +$/gm, ''), next, loose, cap, bull, b, item, space, i, l; while (src) { |
|||
if (cap = this.rules.newline.exec(src)) { src = src.substring(cap[0].length); if (cap[0].length > 1) { this.tokens.push({type: 'space'}) } } if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); cap = cap[0].replace(/^ {4}/gm, ''); this.tokens.push({type: 'code', text: !this.options.pedantic ? cap.replace(/\n+$/, '') : cap}); continue } if (cap = this.rules.fences.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'code', lang: cap[2], text: cap[3]}); continue } if (cap = this.rules.heading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'heading', depth: cap[1].length, text: cap[2]}); continue } if (top && (cap = this.rules.nptable.exec(src))) { src = src.substring(cap[0].length); item = {type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/\n$/, '').split('\n')}; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right' } else { if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center' } else { if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left' } else { item.align[i] = null } } } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i].split(/ *\| */) } this.tokens.push(item); continue } if (cap = this.rules.lheading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'heading', depth: cap[2] === '=' ? 1 : 2, text: cap[1]}); continue } if (cap = this.rules.hr.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'hr'}); continue } if (cap = this.rules.blockquote.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'blockquote_start'}); cap = cap[0].replace(/^ *> ?/gm, ''); this.token(cap, top, true); this.tokens.push({type: 'blockquote_end'}); continue } if (cap = this.rules.list.exec(src)) { |
|||
src = src.substring(cap[0].length); bull = cap[2]; this.tokens.push({type: 'list_start', ordered: bull.length > 1}); cap = cap[0].match(this.rules.item); next = false; l = cap.length; i = 0; for (;i < l; i++) { |
|||
item = cap[i]; space = item.length; item = item.replace(/^ *([*+-]|\d+\.) +/, ''); if (~item.indexOf('\n ')) { space -= item.length; item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, '') } if (this.options.smartLists && i !== l - 1) { b = block.bullet.exec(cap[i + 1])[0]; if (bull !== b && !(bull.length > 1 && b.length > 1)) { src = cap.slice(i + 1).join('\n') + src; i = l - 1 } }loose = next || /\n\n(?!\s*$)/.test(item); if (i !== l - 1) { next = item.charAt(item.length - 1) === '\n'; if (!loose) { loose = next } } this.tokens.push({type: loose ? 'loose_item_start' : 'list_item_start'}); this.token(item, false, bq) |
|||
this.tokens.push({type: 'list_item_end'}) |
|||
} this.tokens.push({type: 'list_end'}); continue |
|||
} if (cap = this.rules.html.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: this.options.sanitize ? 'paragraph' : 'html', pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style', text: cap[0]}); continue } if ((!bq && top) && (cap = this.rules.def.exec(src))) { src = src.substring(cap[0].length); this.tokens.links[cap[1].toLowerCase()] = {href: cap[2], title: cap[3]}; continue } if (top && (cap = this.rules.table.exec(src))) { src = src.substring(cap[0].length); item = {type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')}; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right' } else { if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center' } else { if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left' } else { item.align[i] = null } } } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i].replace(/^ *\| *| *\| *$/g, '').split(/ *\| */) } this.tokens.push(item); continue } if (top && (cap = this.rules.paragraph.exec(src))) { src = src.substring(cap[0].length); this.tokens.push({type: 'paragraph', text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1]}); continue } if (cap = this.rules.text.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'text', text: cap[0]}); continue } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)) } |
|||
} return this.tokens |
|||
}; var inline = {escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, url: noop, tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, link: /^!?\[(inside)\]\(href\)/, reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/, br: /^ {2,}\n(?!\s*$)/, del: noop, text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/}; inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/; inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/; inline.link = replace(inline.link)('inside', inline._inside)('href', inline._href)(); inline.reflink = replace(inline.reflink)('inside', inline._inside)(); inline.normal = merge({}, inline); inline.pedantic = merge({}, inline.normal, {strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}); inline.gfm = merge({}, inline.normal, {escape: replace(inline.escape)('])', '~|])')(), url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, del: /^~~(?=\S)([\s\S]*?\S)~~/, text: replace(inline.text)(']|', '~]|')('|', '|https?://|')()}); inline.breaks = merge({}, inline.gfm, {br: replace(inline.br)('{2,}', '*')(), text: replace(inline.gfm.text)('{2,}', '*')()}); function InlineLexer(links, options) { this.options = options || marked.defaults; this.links = links; this.rules = inline.normal; this.renderer = this.options.renderer || new Renderer(); this.renderer.options = this.options; if (!this.links) { throw new Error('Tokens array requires a `links` property.') } if (this.options.gfm) { if (this.options.breaks) { this.rules = inline.breaks } else { this.rules = inline.gfm } } else { if (this.options.pedantic) { this.rules = inline.pedantic } } }InlineLexer.rules = inline; InlineLexer.output = function(src, links, options) { var inline = new InlineLexer(links, options); return inline.output(src) }; InlineLexer.prototype.output = function(src) { |
|||
var out = '', link, text, href, cap; while (src) { |
|||
if (cap = this.rules.escape.exec(src)) { src = src.substring(cap[0].length); out += cap[1]; continue } if (cap = this.rules.autolink.exec(src)) { src = src.substring(cap[0].length); if (cap[2] === '@') { text = cap[1].charAt(6) === ':' ? this.mangle(cap[1].substring(7)) : this.mangle(cap[1]); href = this.mangle('mailto:') + text } else { text = escape(cap[1]); href = text }out += this.renderer.link(href, null, text); continue } if (!this.inLink && (cap = this.rules.url.exec(src))) { src = src.substring(cap[0].length); text = escape(cap[1]); href = text; out += this.renderer.link(href, null, text); continue } if (cap = this.rules.tag.exec(src)) { if (!this.inLink && /^<a /i.test(cap[0])) { this.inLink = true } else { if (this.inLink && /^<\/a>/i.test(cap[0])) { this.inLink = false } }src = src.substring(cap[0].length); out += this.options.sanitize ? escape(cap[0]) : cap[0]; continue } if (cap = this.rules.link.exec(src)) { src = src.substring(cap[0].length); this.inLink = true; out += this.outputLink(cap, {href: cap[2], title: cap[3]}); this.inLink = false; continue } if ((cap = this.rules.reflink.exec(src)) || (cap = this.rules.nolink.exec(src))) { src = src.substring(cap[0].length); link = (cap[2] || cap[1]).replace(/\s+/g, ' '); link = this.links[link.toLowerCase()]; if (!link || !link.href) { out += cap[0].charAt(0); src = cap[0].substring(1) + src; continue } this.inLink = true; out += this.outputLink(cap, link); this.inLink = false; continue } if (cap = this.rules.strong.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.strong(this.output(cap[2] || cap[1])); continue } if (cap = this.rules.em.exec(src)) { |
|||
src = src.substring(cap[0].length); out += this.renderer.em(this.output(cap[2] || cap[1])); continue |
|||
} if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.codespan(escape(cap[2], true)); continue } if (cap = this.rules.br.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.br(); continue } if (cap = this.rules.del.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.del(this.output(cap[1])); continue } if (cap = this.rules.text.exec(src)) { src = src.substring(cap[0].length); out += escape(this.smartypants(cap[0])); continue } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)) } |
|||
} return out |
|||
}; InlineLexer.prototype.outputLink = function(cap, link) { var href = escape(link.href), title = link.title ? escape(link.title) : null; return cap[0].charAt(0) !== '!' ? this.renderer.link(href, title, this.output(cap[1])) : this.renderer.image(href, title, escape(cap[1])) }; InlineLexer.prototype.smartypants = function(text) { if (!this.options.smartypants) { return text } return text.replace(/--/g, '\u2014').replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018').replace(/'/g, '\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c').replace(/"/g, '\u201d').replace(/\.{3}/g, '\u2026') }; InlineLexer.prototype.mangle = function(text) { var out = '', l = text.length, i = 0, ch; for (;i < l; i++) { ch = text.charCodeAt(i); if (Math.random() > 0.5) { ch = 'x' + ch.toString(16) }out += '&#' + ch + ';' } return out }; function Renderer(options) { this.options = options || {} }Renderer.prototype.code = function(code, lang, escaped) { if (this.options.highlight) { var out = this.options.highlight(code, lang); if (out != null && out !== code) { escaped = true; code = out } } if (!lang) { return '<pre><code>' + (escaped ? code : escape(code, true)) + '\n</code></pre>' } return '<pre><code class="' + this.options.langPrefix + escape(lang, true) + '">' + (escaped ? code : escape(code, true)) + '\n</code></pre>\n' }; Renderer.prototype.blockquote = function(quote) { return '<blockquote>\n' + quote + '</blockquote>\n' }; Renderer.prototype.html = function(html) { return html }; Renderer.prototype.heading = function(text, level, raw) { return '<h' + level + ' id="' + this.options.headerPrefix + raw.toLowerCase().replace(/[^\w]+/g, '-') + '">' + text + '</h' + level + '>\n' }; Renderer.prototype.hr = function() { return this.options.xhtml ? '<hr/>\n' : '<hr>\n' }; Renderer.prototype.list = function(body, ordered) { var type = ordered ? 'ol' : 'ul'; return '<' + type + '>\n' + body + '</' + type + '>\n' }; Renderer.prototype.listitem = function(text) { return '<li>' + text + '</li>\n' }; Renderer.prototype.paragraph = function(text) { return '<p>' + text + '</p>\n' }; Renderer.prototype.table = function(header, body) { return '<table>\n' + '<thead>\n' + header + '</thead>\n' + '<tbody>\n' + body + '</tbody>\n' + '</table>\n' }; Renderer.prototype.tablerow = function(content) { return '<tr>\n' + content + '</tr>\n' }; Renderer.prototype.tablecell = function(content, flags) { var type = flags.header ? 'th' : 'td'; var tag = flags.align ? '<' + type + ' style="text-align:' + flags.align + '">' : '<' + type + '>'; return tag + content + '</' + type + '>\n' }; Renderer.prototype.strong = function(text) { return '<strong>' + text + '</strong>' }; Renderer.prototype.em = function(text) { return '<em>' + text + '</em>' }; Renderer.prototype.codespan = function(text) { return '<code>' + text + '</code>' }; Renderer.prototype.br = function() { return this.options.xhtml ? '<br/>' : '<br>' }; Renderer.prototype.del = function(text) { return '<del>' + text + '</del>' }; Renderer.prototype.link = function(href, title, text) { if (this.options.sanitize) { try { var prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, '').toLowerCase() } catch (e) { return '' } if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0) { return '' } } var out = '<a href="' + href + '"'; if (title) { out += ' title="' + title + '"' }out += '>' + text + '</a>'; return out }; Renderer.prototype.image = function(href, title, text) { var out = '<img src="' + href + '" alt="' + text + '"'; if (title) { out += ' title="' + title + '"' }out += this.options.xhtml ? '/>' : '>'; return out }; function Parser(options) { this.tokens = []; this.token = null; this.options = options || marked.defaults; this.options.renderer = this.options.renderer || new Renderer(); this.renderer = this.options.renderer; this.renderer.options = this.options }Parser.parse = function(src, options, renderer) { var parser = new Parser(options, renderer); return parser.parse(src) }; Parser.prototype.parse = function(src) { this.inline = new InlineLexer(src.links, this.options, this.renderer); this.tokens = src.reverse(); var out = ''; while (this.next()) { out += this.tok() } return out }; Parser.prototype.next = function() { return this.token = this.tokens.pop() }; Parser.prototype.peek = function() { return this.tokens[this.tokens.length - 1] || 0 }; Parser.prototype.parseText = function() { var body = this.token.text; while (this.peek().type === 'text') { body += '\n' + this.next().text } return this.inline.output(body) }; Parser.prototype.tok = function() { |
|||
switch (this.token.type) { |
|||
case 'space':return ''; case 'hr':return this.renderer.hr(); case 'heading':return this.renderer.heading(this.inline.output(this.token.text), this.token.depth, this.token.text); case 'code':return this.renderer.code(this.token.text, this.token.lang, this.token.escaped); case 'table':var header = '', body = '', i, row, cell, flags, j; cell = ''; for (i = 0; i < this.token.header.length; i++) { |
|||
flags = {header: true, align: this.token.align[i]}; cell += this.renderer.tablecell(this.inline.output(this.token.header[i]), {header: true, align: this.token.align[i]}) |
|||
}header += this.renderer.tablerow(cell); for (i = 0; i < this.token.cells.length; i++) { row = this.token.cells[i]; cell = ''; for (j = 0; j < row.length; j++) { cell += this.renderer.tablecell(this.inline.output(row[j]), {header: false, align: this.token.align[j]}) }body += this.renderer.tablerow(cell) } return this.renderer.table(header, body); case 'blockquote_start':var body = ''; while (this.next().type !== 'blockquote_end') { body += this.tok() } return this.renderer.blockquote(body); case 'list_start':var body = '', ordered = this.token.ordered; while (this.next().type !== 'list_end') { body += this.tok() } return this.renderer.list(body, ordered); case 'list_item_start':var body = ''; while (this.next().type !== 'list_item_end') { body += this.token.type === 'text' ? this.parseText() : this.tok() } return this.renderer.listitem(body); case 'loose_item_start':var body = ''; while (this.next().type !== 'list_item_end') { body += this.tok() } return this.renderer.listitem(body); case 'html':var html = !this.token.pre && !this.options.pedantic ? this.inline.output(this.token.text) : this.token.text; return this.renderer.html(html); case 'paragraph':return this.renderer.paragraph(this.inline.output(this.token.text)); case 'text':return this.renderer.paragraph(this.parseText()) |
|||
} |
|||
}; function escape(html, encode) { return html.replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''') } function unescape(html) { return html.replace(/&([#\w]+);/g, function(_, n) { n = n.toLowerCase(); if (n === 'colon') { return ':' } if (n.charAt(0) === '#') { return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1)) } return '' }) } function replace(regex, opt) { regex = regex.source; opt = opt || ''; return function self(name, val) { if (!name) { return new RegExp(regex, opt) }val = val.source || val; val = val.replace(/(^|[^\[])\^/g, '$1'); regex = regex.replace(name, val); return self } } function noop() {}noop.exec = noop; function merge(obj) { var i = 1, target, key; for (;i < arguments.length; i++) { target = arguments[i]; for (key in target) { if (Object.prototype.hasOwnProperty.call(target, key)) { obj[key] = target[key] } } } return obj } function marked(src, opt, callback) { if (callback || typeof opt === 'function') { if (!callback) { callback = opt; opt = null }opt = merge({}, marked.defaults, opt || {}); var highlight = opt.highlight, tokens, pending, i = 0; try { tokens = Lexer.lex(src, opt) } catch (e) { return callback(e) }pending = tokens.length; var done = function(err) { if (err) { opt.highlight = highlight; return callback(err) } var out; try { out = Parser.parse(tokens, opt) } catch (e) { err = e }opt.highlight = highlight; return err ? callback(err) : callback(null, out) }; if (!highlight || highlight.length < 3) { return done() } delete opt.highlight; if (!pending) { return done() } for (;i < tokens.length; i++) { (function(token) { if (token.type !== 'code') { return --pending || done() } return highlight(token.text, token.lang, function(err, code) { if (err) { return done(err) } if (code == null || code === token.text) { return --pending || done() }token.text = code; token.escaped = true; --pending || done() }) })(tokens[i]) } return } try { if (opt) { opt = merge({}, marked.defaults, opt) } return Parser.parse(Lexer.lex(src, opt), opt) } catch (e) { e.message += '\nPlease report this to https://github.com/chjj/marked.'; if ((opt || marked.defaults).silent) { return '<p>An error occured:</p><pre>' + escape(e.message + '', true) + '</pre>' } throw e } }marked.options = marked.setOptions = function(opt) { merge(marked.defaults, opt); return marked }; marked.defaults = {gfm: true, tables: true, breaks: false, pedantic: false, sanitize: false, smartLists: false, silent: false, highlight: null, langPrefix: 'lang-', smartypants: false, headerPrefix: '', renderer: new Renderer(), xhtml: false}; marked.Parser = Parser; marked.parser = Parser.parse; marked.Renderer = Renderer; marked.Lexer = Lexer; marked.lexer = Lexer.lex; marked.InlineLexer = InlineLexer; marked.inlineLexer = InlineLexer.output; marked.parse = marked; if (typeof module !== 'undefined' && typeof exports === 'object') { module.exports = marked } else { if (typeof define === 'function' && define.amd) { define(function() { return marked }) } else { this.marked = marked } } |
|||
}).call(function() { return this || (typeof window !== 'undefined' ? window : global) }()) |
After Width: 3840 | Height: 804 | Size: 23 KiB |
After Width: 200 | Height: 200 | Size: 16 KiB |
After Width: 80 | Height: 80 | Size: 287 B |
After Width: 378 | Height: 82 | Size: 4.8 KiB |
After Width: 400 | Height: 290 | Size: 12 KiB |
After Width: 200 | Height: 200 | Size: 22 KiB |
After Width: 60 | Height: 60 | Size: 1.2 KiB |
After Width: 34 | Height: 34 | Size: 649 B |
After Width: 155 | Height: 55 | Size: 7.2 KiB |
After Width: 162 | Height: 38 | Size: 1.8 KiB |
After Width: 34 | Height: 34 | Size: 204 B |
After Width: 34 | Height: 34 | Size: 419 B |
After Width: 204 | Height: 146 | Size: 1.6 KiB |
After Width: 19 | Height: 15 | Size: 342 B |
After Width: 19 | Height: 15 | Size: 241 B |
After Width: 38 | Height: 38 | Size: 1.2 KiB |
After Width: 34 | Height: 34 | Size: 439 B |
After Width: 1440 | Height: 805 | Size: 60 KiB |
After Width: 922 | Height: 586 | Size: 15 KiB |
After Width: 462 | Height: 263 | Size: 9.4 KiB |
After Width: 364 | Height: 208 | Size: 9.2 KiB |
After Width: 384 | Height: 220 | Size: 7.5 KiB |
After Width: 929 | Height: 530 | Size: 25 KiB |
After Width: 116 | Height: 52 | Size: 12 KiB |
After Width: 799 | Height: 652 | Size: 80 KiB |
After Width: 740 | Height: 513 | Size: 12 KiB |
After Width: 531 | Height: 197 | Size: 15 KiB |
After Width: 500 | Height: 362 | Size: 34 KiB |
After Width: 500 | Height: 402 | Size: 38 KiB |
After Width: 500 | Height: 326 | Size: 17 KiB |
After Width: 500 | Height: 382 | Size: 68 KiB |
After Width: 500 | Height: 326 | Size: 20 KiB |
After Width: 500 | Height: 356 | Size: 26 KiB |
After Width: 500 | Height: 287 | Size: 46 KiB |
After Width: 1337 | Height: 594 | Size: 75 KiB |
After Width: 34 | Height: 34 | Size: 601 B |
After Width: 1439 | Height: 1029 | Size: 49 KiB |