8 files modified
3 files added
| | |
| | | <a-col v-bind="showSmall"> |
| | | <router-link to="/main3">我的网盘 »</router-link> |
| | | </a-col> |
| | | <a-col v-bind="showSmall"> |
| | | <router-link to="/main4">友人帐 »</router-link> |
| | | </a-col> |
| | | <a-col v-bind="showMain"> |
| | | <a-auto-complete ref="mySearch" |
| | | v-bind="search" @select="onSelect" @search="onSearch" @change="onChange"> |
| | | <a-auto-complete ref="mySearch" v-bind="search" @select="onSelect" @search="onSearch" @change="onChange"> |
| | | <a-input @keydown.enter="onSelect"> |
| | | <a-icon slot="suffix" type="search" class="certain-category-icon" /> |
| | | </a-input> |
| | |
| | | }, |
| | | showSmall: { |
| | | xs: 6, |
| | | sm: 6, |
| | | md: 6, |
| | | lg: 6, |
| | | xl: 6, |
| | | xxl: 6, |
| | | sm: 4, |
| | | md: 4, |
| | | lg: 4, |
| | | xl: 4, |
| | | xxl: 4, |
| | | }, |
| | | showMain: { |
| | | xs: 0, |
| | |
| | | <div> |
| | | <div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" :infinite-scroll-distance="10"> |
| | | <div v-for="temp in data"> |
| | | <newArticle></newArticle> |
| | | <box5 v-bind="temp"></box5> |
| | | </div> |
| | | <div v-if="loading && !busy" class="demo-loading-container"> |
| | |
| | | import infiniteScroll from 'vue-infinite-scroll'; |
| | | import box5 from "../mini/box5-article.vue" |
| | | import babyActicle from '../../assets/baby.htm' |
| | | import newArticle from "../mini/box-new-article.vue" |
| | | import shijie from '../../assets/shijie.htm' |
| | | |
| | | var obj1 = { |
| | |
| | | |
| | | export default { |
| | | components: { |
| | | box5 |
| | | box5, |
| | | newArticle |
| | | }, |
| | | directives: { |
| | | infiniteScroll |
| | |
| | | } |
| | | |
| | | .recent-post-item a { |
| | | color: #99a9bf; |
| | | // color: #99a9bf; |
| | | text-decoration: none; |
| | | word-wrap: break-word; |
| | | -webkit-transition: all .2s; |
| | |
| | | <template> |
| | | <a-form-model ref="ruleForm" :model="form" :rules="rules" :label-col="labelCol" :wrapper-col="wrapperCol"> |
| | | <a-form-model-item ref="name" label="Activity name" prop="name"> |
| | | <a-input v-model="form.name" @blur=" |
| | | () => { |
| | | $refs.name.onFieldBlur(); |
| | | } |
| | | " /> |
| | | <a-form-model ref="ruleForm" :model="ruleForm" :rules="rules" v-bind="layout"> |
| | | <a-form-model-item has-feedback label="Password" prop="pass"> |
| | | <a-input v-model="ruleForm.pass" type="password" autocomplete="off" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="Activity zone" prop="region"> |
| | | <a-select v-model="form.region" placeholder="please select your zone"> |
| | | <a-select-option value="shanghai"> |
| | | Zone one |
| | | </a-select-option> |
| | | <a-select-option value="beijing"> |
| | | Zone two |
| | | </a-select-option> |
| | | </a-select> |
| | | <a-form-model-item has-feedback label="Confirm" prop="checkPass"> |
| | | <a-input v-model="ruleForm.checkPass" type="password" autocomplete="off" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="Activity time" required prop="date1"> |
| | | <a-date-picker v-model="form.date1" show-time type="date" placeholder="Pick a date" style="width: 100%;" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="Instant delivery" prop="delivery"> |
| | | <a-switch v-model="form.delivery" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="Activity type" prop="type"> |
| | | <a-checkbox-group v-model="form.type"> |
| | | <a-checkbox value="1" name="type"> |
| | | Online |
| | | </a-checkbox> |
| | | <a-checkbox value="2" name="type"> |
| | | Promotion |
| | | </a-checkbox> |
| | | <a-checkbox value="3" name="type"> |
| | | Offline |
| | | </a-checkbox> |
| | | </a-checkbox-group> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="Resources" prop="resource"> |
| | | <a-radio-group v-model="form.resource"> |
| | | <a-radio value="1"> |
| | | Sponsor |
| | | </a-radio> |
| | | <a-radio value="2"> |
| | | Venue |
| | | </a-radio> |
| | | </a-radio-group> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="Activity form" prop="desc"> |
| | | <a-input v-model="form.desc" type="textarea" /> |
| | | <a-form-model-item has-feedback label="Age" prop="age"> |
| | | <a-input v-model.number="ruleForm.age" /> |
| | | </a-form-model-item> |
| | | <a-form-model-item :wrapper-col="{ span: 14, offset: 4 }"> |
| | | <a-button type="primary" @click="onSubmit"> |
| | | Create |
| | | <a-button type="primary" @click="submitForm('ruleForm')"> |
| | | Submit |
| | | </a-button> |
| | | <a-button style="margin-left: 10px;" @click="resetForm"> |
| | | <a-button style="margin-left: 10px" @click="resetForm('ruleForm')"> |
| | | Reset |
| | | </a-button> |
| | | </a-form-model-item> |
| | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | let checkPending; |
| | | let checkAge = (rule, value, callback) => { |
| | | clearTimeout(checkPending); |
| | | if (!value) { |
| | | return callback(new Error('Please input the age')); |
| | | } |
| | | checkPending = setTimeout(() => { |
| | | if (!Number.isInteger(value)) { |
| | | callback(new Error('Please input digits')); |
| | | } else { |
| | | if (value < 18) { |
| | | callback(new Error('Age must be greater than 18')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | }, 1000); |
| | | }; |
| | | let validatePass = (rule, value, callback) => { |
| | | if (value === '') { |
| | | callback(new Error('Please input the password')); |
| | | } else { |
| | | if (this.ruleForm.checkPass !== '') { |
| | | this.$refs.ruleForm.validateField('checkPass'); |
| | | } |
| | | callback(); |
| | | } |
| | | }; |
| | | let validatePass2 = (rule, value, callback) => { |
| | | if (value === '') { |
| | | callback(new Error('Please input the password again')); |
| | | } else if (value !== this.ruleForm.pass) { |
| | | callback(new Error("Two inputs don't match!")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | |
| | | let validateContent = (rule, value, callback) => { |
| | | console.log(1111); |
| | | if (1 == 1) { |
| | | this.$refs.ruleForm.validateField('checkPass'); |
| | | } |
| | | callback(); |
| | | }; |
| | | return { |
| | | labelCol: { |
| | | span: 4 |
| | | }, |
| | | wrapperCol: { |
| | | span: 14 |
| | | }, |
| | | other: '', |
| | | form: { |
| | | name: '', |
| | | region: undefined, |
| | | date1: undefined, |
| | | delivery: false, |
| | | type: [], |
| | | resource: '', |
| | | desc: '', |
| | | ruleForm: { |
| | | pass: '', |
| | | checkPass: '', |
| | | age: '', |
| | | }, |
| | | rules: { |
| | | name: [{ |
| | | required: true, |
| | | message: 'Please input Activity name', |
| | | trigger: 'blur' |
| | | }, |
| | | { |
| | | min: 3, |
| | | max: 5, |
| | | message: 'Length should be 3 to 5', |
| | | trigger: 'blur' |
| | | }, |
| | | ], |
| | | region: [{ |
| | | required: true, |
| | | message: 'Please select Activity zone', |
| | | pass: [{ |
| | | validator: validatePass, |
| | | trigger: 'change' |
| | | }], |
| | | date1: [{ |
| | | required: true, |
| | | message: 'Please pick a date', |
| | | checkPass: [{ |
| | | validator: validatePass2, |
| | | trigger: 'change' |
| | | }], |
| | | type: [{ |
| | | type: 'array', |
| | | required: true, |
| | | message: 'Please select at least one activity type', |
| | | trigger: 'change', |
| | | }, ], |
| | | resource: [{ |
| | | required: true, |
| | | message: 'Please select activity resource', |
| | | age: [{ |
| | | validator: checkAge, |
| | | trigger: 'change' |
| | | }, ], |
| | | desc: [{ |
| | | required: true, |
| | | message: 'Please input activity form', |
| | | trigger: 'blur' |
| | | }], |
| | | common: [{ |
| | | validator: validateContent, |
| | | trigger: 'change' |
| | | }], |
| | | }, |
| | | layout: { |
| | | labelCol: { |
| | | span: 4 |
| | | }, |
| | | wrapperCol: { |
| | | span: 14 |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | onSubmit() { |
| | | this.$refs.ruleForm.validate(valid => { |
| | | submitForm(formName) { |
| | | this.$refs[formName].validate(valid => { |
| | | if (valid) { |
| | | console.log('11'); |
| | | alert('submit!'); |
| | | } else { |
| | | console.log('error submit!!'); |
| | |
| | | } |
| | | }); |
| | | }, |
| | | resetForm() { |
| | | this.$refs.ruleForm.resetFields(); |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | }, |
| | | }; |
New file |
| | |
| | | <template> |
| | | <div style="display: flex;" class="link-box"> |
| | | <div v-for="temp in [1,2,1,1,1,1]"> |
| | | <!-- <a href="#" target="_blank" class="no-underline"> --> |
| | | <a href="#" class="no-underline"> |
| | | <div class="thumb"> |
| | | <img width="200" height="200" src="https://cdn.jsdelivr.net/gh/Musenxi/CDN/长野.jpg" alt="长野 の BLOG"> |
| | | </div> |
| | | <div class="content"> |
| | | <p class="title"> |
| | | 长野 の BLOG |
| | | </p> |
| | | </div> |
| | | </a> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default {} |
| | | </script> |
| | | |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | .myFriend { |
| | | a { |
| | | padding: 10px; |
| | | } |
| | | } |
| | | |
| | | .link-box a { |
| | | width: 33.75rem; |
| | | background: #fff; |
| | | float: left; |
| | | margin: 0 0 4.375rem; |
| | | color: #2E2E2E; |
| | | text-decoration: none; |
| | | border-bottom: none; |
| | | border-radius: .25rem; |
| | | overflow: hidden; |
| | | -webkit-touch-callout: none; |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | // -moz-box-shadow: 0 0.0625rem 0.0625rem rgba(0, 0, 0, 0.1); |
| | | -webkit-box-shadow: 0 3px.0625rem 0.0625rem #0000001a; |
| | | -moz-box-shadow: 0 3px 0.0625rem #0000001a; |
| | | box-shadow: 0 3px 0.0625rem #0000001a; |
| | | -webkit-transform: translate3d(0, 0, 0); |
| | | -moz-transform: translate3d(0, 0, 0); |
| | | -ms-transform: translate3d(0, 0, 0); |
| | | -o-transform: translate3d(0, 0, 0); |
| | | transform: translate3d(0, 0, 0); |
| | | -webkit-transition: .3s; |
| | | -moz-transition: .3s; |
| | | -ms-transition: .3s; |
| | | -o-transition: .3s; |
| | | transition: .3s; |
| | | } |
| | | |
| | | .link-box a:hover:after { |
| | | left: 0; |
| | | width: 100%; |
| | | -webkit-transition: width 350ms; |
| | | -moz-transition: width 350ms; |
| | | -ms-transition: width 350ms; |
| | | -o-transition: width 350ms; |
| | | transition: width 350ms; |
| | | } |
| | | |
| | | .link-box a .thumb { |
| | | font-size: 0; |
| | | overflow: hidden; |
| | | background-color: #fff; |
| | | margin: 0; |
| | | border-top-left-radius: .25rem; |
| | | border-top-right-radius: .25rem; |
| | | } |
| | | |
| | | .link-box a .thumb img { |
| | | width: 100%; |
| | | height: auto; |
| | | position: relative; |
| | | margin: 0; |
| | | padding: 0; |
| | | -webkit-transition: .4s; |
| | | -moz-transition: .4s; |
| | | -ms-transition: .4s; |
| | | -o-transition: .4s; |
| | | transition: .4s; |
| | | } |
| | | |
| | | .link-box a .content { |
| | | text-align: center; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .link-box a .content .title { |
| | | text-align: center; |
| | | padding: 1rem .25rem; |
| | | font-weight: 500; |
| | | color: #333; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | margin: 0; |
| | | } |
| | | |
| | | .link-box a:hover, |
| | | .link-box a:active { |
| | | -webkit-box-shadow: 0 1.375rem 2.6875rem rgba(0, 0, 0, 0.15); |
| | | -moz-box-shadow: 0 1.375rem 2.6875rem rgba(0, 0, 0, 0.15); |
| | | box-shadow: 0 1.375rem 2.6875rem rgba(0, 0, 0, 0.15); |
| | | -webkit-transform: translateY(-0.25rem); |
| | | -moz-transform: translateY(-0.25rem); |
| | | -ms-transform: translateY(-0.25rem); |
| | | -o-transform: translateY(-0.25rem); |
| | | transform: translateY(-0.25rem); |
| | | -moz-transform: none; |
| | | } |
| | | |
| | | @media screen and (min-width: 1600px) { |
| | | .link-box a { |
| | | margin: 0 0.9375rem 3.75rem; |
| | | width: -webkit-calc(500% / 5 - 1.875rem); |
| | | width: calc(500% / 5 - 1.875rem); |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 1599px) and (min-width: 768px) { |
| | | .link-box a { |
| | | margin: 0 0.9375rem 3.75rem; |
| | | width: -webkit-calc(150% / 4 - 1.875rem); |
| | | width: calc(150% / 4 - 1.875rem); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | @media screen and (max-width: 500px) and (min-width: 319px) { |
| | | .link-box a { |
| | | margin: 0 0.75rem 1.5rem; |
| | | width: -webkit-calc(50% - 1.5rem); |
| | | width: calc(50% - 1.5rem); |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 767px) and (min-width: 501px) { |
| | | .link-box a { |
| | | margin: 0 0.9375rem 3.75rem; |
| | | width: -webkit-calc(100% / 3 - 1.875rem); |
| | | width: calc(100% / 3 - 1.875rem); |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <div class="recent-posts" id="recent-posts" v-for="(item ,index) in [1,1,1]"> |
| | | <div class="recent-post-item"> |
| | | |
| | | <div class="post_cover left_radius" v-if="index%2==0"> |
| | | <router-link to="/mdDetail" :title="title"> |
| | | <div class="block left_radius"></div> |
| | | <img class="post_bg" src="https://unpkg.zhimg.com/ahzo@1.0.3/blogpic/1.jpg" |
| | | onerror="this.onerror=null,this.src="/img/404.jpg"" :alt="title"> |
| | | </router-link> |
| | | </div> |
| | | |
| | | <div class="post_cover right_radius" v-else> |
| | | <router-link to="/mdDetail" :title="title"> |
| | | <div class="block right_radius"></div> |
| | | <img class="post_bg" src="https://unpkg.zhimg.com/ahzo@1.0.3/blogpic/1.jpg" |
| | | onerror="this.onerror=null,this.src="/img/404.jpg"" :alt="title"> |
| | | </router-link> |
| | | </div> |
| | | |
| | | <div class="recent-post-info"> |
| | | <router-link to="/mdDetail" class="article-title"> {{title}} </router-link> |
| | | <!-- <a class="article-title" href="/mdDetail" :title="title"> {{title}}</a> --> |
| | | <div class="article-meta-wrap" style="display: flex;"> |
| | | <span class="post-meta-date"> |
| | | <a-icon type="calendar" /> |
| | | <span class="article-meta-label"></span> |
| | | <time datetime="2022-01-13T06:25:00.000Z" |
| | | title=" 2022-01-13 14:25:00">{{publishTime}}</time> |
| | | </span> |
| | | <span class="article-meta__separator" style="margin: 0px 3px ;"> | </span> |
| | | <span class="article-meta"> |
| | | <a-icon type="book" /> |
| | | <router-link to="/mdDetail" class="article-meta__categories"> {{tag}} </router-link> |
| | | <!-- <a class="article-meta__categories" href="#"> {{tag}}</a> --> |
| | | </span> |
| | | </div> |
| | | <div class="content"> |
| | | {{content}} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | "title": "使用KeyStore生成证书", |
| | | "publishTime": "2022-01-14", |
| | | "tag": "随手记", |
| | | "content": "前言Keytool是一个Java数据证书的管理工具 , 在keystore里,包含两种数据: 密钥实体(Key entity):即密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 可信任的证书实体(trusted certificate entries):即证书(包含公钥) keytool常用命令: genkey 在用户主目录中创建一个默认文件”.keystore” alias 产生别名 keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中) keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA)) validity 指定创建的证书有效期多少天 keysize 指定密钥长度 storepass 指定密钥库的密码(获取keystore信息所需的密码) keypass 指定别名条目的密码(私钥的密码) dname 指定证书拥有者信息 例如: “CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码” list 显示密钥库中的证书信息 keytool - ..." |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | @card-bg: #f5f8fa; |
| | | @card-box-shadow: 8px 8px 18px rgba(0, 0, 0, 0.1), -8px -8px 18px rgba(255, 255, 255, 1); |
| | | @ahzoo-proportion: 1; |
| | | @cursorURL: "https://blog.ahzoo.cn/blogpic/normal.cur"; |
| | | @global-font-size: 14px; |
| | | @font-color: #666; |
| | | @title-clolr: dimgray; |
| | | @card-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0.2), 0 0 0 rgba(255, 255, 255, 0.8), inset 9px 9px 15px rgba(0, 0, 0, 0.1), inset -9px -9px 15px rgba(255, 255, 255, 1); |
| | | |
| | | |
| | | // #recent-posts>.recent-post-item:not(:first-child) { |
| | | // margin-top: 1rem; |
| | | // } |
| | | #recent-posts>.recent-post-item { |
| | | margin-top: 1rem; |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item { |
| | | display: -webkit-box; |
| | | display: -moz-box; |
| | | display: -webkit-flex; |
| | | display: -ms-flexbox; |
| | | display: box; |
| | | display: flex; |
| | | -webkit-box-orient: horizontal; |
| | | -moz-box-orient: horizontal; |
| | | -o-box-orient: horizontal; |
| | | -webkit-flex-direction: row; |
| | | -ms-flex-direction: row; |
| | | flex-direction: row; |
| | | -webkit-box-align: center; |
| | | -moz-box-align: center; |
| | | -o-box-align: center; |
| | | -ms-flex-align: center; |
| | | -webkit-align-items: center; |
| | | align-items: center; |
| | | border-radius: 12px 8px 8px 12px; |
| | | |
| | | -webkit-transition: all .3s; |
| | | -moz-transition: all .3s; |
| | | -o-transition: all .3s; |
| | | -ms-transition: all .3s; |
| | | transition: all .3s; |
| | | |
| | | background: @card-bg; |
| | | -webkit-box-shadow: @card-box-shadow; |
| | | box-shadow: @card-box-shadow; |
| | | |
| | | } |
| | | |
| | | .recent-post-item a { |
| | | // color: #99a9bf; |
| | | text-decoration: none; |
| | | word-wrap: break-word; |
| | | -webkit-transition: all .2s; |
| | | -moz-transition: all .2s; |
| | | -o-transition: all .2s; |
| | | -ms-transition: all .2s; |
| | | transition: all .2s; |
| | | overflow-wrap: break-word; |
| | | background-color: transparent; |
| | | } |
| | | |
| | | .recent-post-item { |
| | | padding-left: calc(1.2rem * @ahzoo-proportion) !important; |
| | | padding-right: calc(1.2rem * @ahzoo-proportion) !important; |
| | | // font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Lato, Roboto, 'PingFang SC', 'Microsoft YaHei', sans-serif; |
| | | line-height: 2; |
| | | |
| | | img { |
| | | max-width: 100%; |
| | | -webkit-transition: all .2s; |
| | | -moz-transition: all .2s; |
| | | -o-transition: all .2s; |
| | | -ms-transition: all .2s; |
| | | transition: all .2s; |
| | | border-style: none; |
| | | } |
| | | } |
| | | |
| | | .recent-post-item * { |
| | | cursor: url(@cursorURL), auto !important; |
| | | font-size: @global-font-size; |
| | | color: @font-color; |
| | | } |
| | | |
| | | * { |
| | | tap-highlight-color: transparent; |
| | | -webkit-tap-highlight-color: transparent; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item .post_cover { |
| | | width: 33%; |
| | | position: sticky; |
| | | |
| | | opacity: .8; |
| | | padding: calc(1.2rem * @ahzoo-proportion) calc(0.2rem * @ahzoo-proportion); |
| | | overflow: hidden; |
| | | height: 100%; |
| | | -webkit-mask-image: -webkit-radial-gradient(#fff, #000); |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item .left_radius { |
| | | border-radius: 8px 0 0 8px; |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item .right_radius { |
| | | -webkit-box-ordinal-group: 2; |
| | | -moz-box-ordinal-group: 2; |
| | | -o-box-ordinal-group: 2; |
| | | -ms-flex-order: 2; |
| | | -webkit-order: 2; |
| | | order: 2; |
| | | border-radius: 0 8px 8px 0; |
| | | border-top-left-radius: 0px; |
| | | border-top-right-radius: 8px; |
| | | border-bottom-right-radius: 8px; |
| | | border-bottom-left-radius: 0px; |
| | | } |
| | | |
| | | .block.left_radius { |
| | | background: linear-gradient(to right, transparent, @card-bg 98%); |
| | | position: absolute; |
| | | width: 100%; |
| | | height: calc(100% - 2.2rem * @ahzoo-proportion); |
| | | z-index: 2; |
| | | top: calc(1.1rem * @ahzoo-proportion); |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item .post_cover img.post_bg { |
| | | border-radius: 15px; |
| | | width: 100%; |
| | | height: 100%; |
| | | -webkit-transition: all .6s; |
| | | -moz-transition: all .6s; |
| | | -o-transition: all .6s; |
| | | -ms-transition: all .6s; |
| | | transition: all .6s; |
| | | object-fit: cover; |
| | | } |
| | | |
| | | .block.right_radius { |
| | | background: linear-gradient(to left, transparent, @card-bg 98%); |
| | | position: absolute; |
| | | width: 100%; |
| | | height: calc(100% - 2.2rem * @ahzoo-proportion); |
| | | z-index: 2; |
| | | top: calc(1.1rem * @ahzoo-proportion); |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item>.recent-post-info { |
| | | width: 77%; |
| | | padding: 0px calc(1.2rem * @ahzoo-proportion); |
| | | display: flex; |
| | | flex-direction: column; |
| | | overflow: hidden; |
| | | |
| | | a { |
| | | text-decoration: none; |
| | | -webkit-transition: all .2s; |
| | | -moz-transition: all .2s; |
| | | -o-transition: all .2s; |
| | | -ms-transition: all .2s; |
| | | transition: all .2s; |
| | | overflow-wrap: break-word; |
| | | } |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item>.recent-post-info>.article-title { |
| | | order: 1; |
| | | font-weight: 600; |
| | | color: @title-clolr; |
| | | font-size: 1.6em; |
| | | margin-bottom: 0.3rem; |
| | | line-height: 1.4; |
| | | -webkit-transition: all .2s ease-in-out; |
| | | -moz-transition: all .2s ease-in-out; |
| | | -o-transition: all .2s ease-in-out; |
| | | -ms-transition: all .2s ease-in-out; |
| | | transition: all .2s ease-in-out; |
| | | |
| | | display: -webkit-box; |
| | | overflow: hidden; |
| | | -webkit-box-orient: vertical; |
| | | /* autoprefixer: off */ |
| | | -webkit-line-clamp: 2; |
| | | /* autoprefixer: on */ |
| | | } |
| | | |
| | | |
| | | |
| | | #recent-posts>.recent-post-item>.recent-post-info>.article-meta-wrap { |
| | | order: 3; |
| | | color: #858585; |
| | | font-size: 90%; |
| | | |
| | | .article-meta-label { |
| | | padding-right: 0.2rem; |
| | | } |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item>.recent-post-info>.content { |
| | | opacity: 0; |
| | | line-height: .8; |
| | | transition: all .25s; |
| | | color: #999; |
| | | margin-bottom: 19px; |
| | | text-overflow: ellipsis; |
| | | order: 2; |
| | | margin: 0; |
| | | |
| | | display: -webkit-box; |
| | | overflow: hidden; |
| | | -webkit-box-orient: vertical; |
| | | /* autoprefixer: off */ |
| | | -webkit-line-clamp: 3; |
| | | /* autoprefixer: on */ |
| | | |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item>.recent-post-info>.article-title:hover { |
| | | color: #448aff; |
| | | } |
| | | |
| | | |
| | | |
| | | //div本体阴影 |
| | | #recent-posts>.recent-post-item:hover { |
| | | -webkit-box-shadow: @card-hover-box-shadow; |
| | | box-shadow: @card-hover-box-shadow; |
| | | } |
| | | |
| | | // 图片缩放 |
| | | #recent-posts>.recent-post-item:hover img.post_bg { |
| | | -webkit-transform: scale(.9); |
| | | -moz-transform: scale(.9); |
| | | -o-transform: scale(.9); |
| | | -ms-transform: scale(.9); |
| | | transform: scale(.9); |
| | | -webkit-box-shadow: @card-hover-box-shadow; |
| | | box-shadow: @card-hover-box-shadow; |
| | | } |
| | | |
| | | //内容缩放 内容显示 |
| | | #recent-posts>.recent-post-item:hover .recent-post-info .content { |
| | | opacity: 1; |
| | | line-height: 1.8; |
| | | transition: all .25s; |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item .post_cover img.post_bg:hover { |
| | | transform: scale(.9); |
| | | } |
| | | |
| | | #recent-posts>.recent-post-item .post_cover img.post_bg:hover { |
| | | -webkit-transform: scale(1.1); |
| | | -moz-transform: scale(1.1); |
| | | -o-transform: scale(1.1); |
| | | -ms-transform: scale(1.1); |
| | | transform: scale(1.1); |
| | | } |
| | | |
| | | @media screen and (max-width:768px) { |
| | | #recent-posts .recent-post-item .recent-post-info .article-title { |
| | | font-size: 1.32em !important; |
| | | margin-bottom: 0 !important; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 769px) { |
| | | #recent-posts>.recent-post-item>.recent-post-info>.content { |
| | | opacity: 0; |
| | | line-height: .8; |
| | | transition: all .25s; |
| | | color: #999; |
| | | margin-bottom: 10px; |
| | | display: -webkit-container; |
| | | -webkit-line-clamp: 3; |
| | | text-overflow: ellipsis; |
| | | overflow: hidden; |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 768px) { |
| | | #recent-posts>.recent-post-item>.recent-post-info { |
| | | width: 69%; |
| | | font-size: 12px !important; |
| | | margin: .7rem 0; |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 768px) { |
| | | #recent-posts>.recent-post-item>.recent-post-info>.content { |
| | | opacity: 1; |
| | | line-height: 1.7; |
| | | color: #999; |
| | | display: -webkit-container; |
| | | -webkit-line-clamp: 3; |
| | | text-overflow: ellipsis; |
| | | overflow: hidden; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 769px) { |
| | | #recent-posts>.recent-post-item { |
| | | height: 15em; |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 768px) { |
| | | #recent-posts .recent-post-item { |
| | | height: 12em !important; |
| | | padding: 0; |
| | | -webkit-flex-direction: row; |
| | | -ms-flex-direction: row; |
| | | flex-direction: row; |
| | | } |
| | | } |
| | | |
| | | @media only screen and (max-width: 768px) { |
| | | @ahzoo-proportion: 0.65; |
| | | @global-font-size: 12px; |
| | | } |
| | | </style> |
| | |
| | | <a-input v-model="form.title" placeholder="限 50字内" /> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="模式切换"> |
| | | <a-form-model-item label="模式切换" prop="common"> |
| | | <a-switch v-model="form.online" /> |
| | | <span class="myTip"> |
| | | 本地文件/由系统生成文件 |
| | |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="定时"> |
| | | <a-date-picker v-model="form.publishDate" show-time type="<datetime></datetime>" placeholder="发布时间" |
| | | <a-date-picker v-model="form.publishDate" show-time type="datetime" placeholder="发布时间" |
| | | style="width: 100%;" :disabledDate="disabledDate" |
| | | :getCalendarContainer="getCalendarContainer()" /> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="置顶权重"> |
| | | <a-slider v-model="form.sliderValue" :default-value="20" :step="5" |
| | | :getTooltipPopupContainer="getCalendarContainer()" /> |
| | | <span class="myTip"> |
| | | 越大越靠前 |
| | | </span> |
| | | </a-form-model-item> |
| | | |
| | | |
| | |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="授权密码" v-show="form.auth=='password'"> |
| | | <a-input v-model="form.password" type="password" placeholder="Password"> |
| | | <a-input v-model="form.password" type="password" placeholder="独立密码"> |
| | | <a-icon slot="prefix" type="lock" style="color:rgba(0,0,0,.25)" /> |
| | | </a-input> |
| | | </a-form-model-item> |
| | |
| | | import moment from "moment"; |
| | | export default { |
| | | data() { |
| | | |
| | | let validateContent = (rule, value, callback) => { |
| | | if (this.form.online) { |
| | | console.log("内容未填"); |
| | | this.$refs.myForm.validateField('content') |
| | | } else { |
| | | console.log("文件未传"); |
| | | this.$refs.myForm.validateField('blogFileList') |
| | | } |
| | | callback(); |
| | | }; |
| | | |
| | | return { |
| | | |
| | | blogFileList: [], |
| | |
| | | span: 13 |
| | | }, |
| | | form: { |
| | | online: false, |
| | | preference: false, |
| | | title: '', |
| | | content: '', |
| | |
| | | trigger: 'blur' |
| | | }, |
| | | ], |
| | | common: [{ |
| | | validator: validateContent, |
| | | trigger: [] |
| | | }], |
| | | content: [{ |
| | | max: 10, |
| | | required: true, |
| | | message: '至少选一个上传内容', |
| | | message: '至少填一下上传内容', |
| | | trigger: 'blur' |
| | | }, ], |
| | | blogFileList: [{ |
| | | min: 1, |
| | | required: true, |
| | | message: '文件未上传', |
| | | }, { |
| | | min: 1, |
| | | message: '文件未上传', |
| | | }, ], |
| | | }], |
| | | class: [{ |
| | | required: true, |
| | | message: '至少选一个分类', |
| | |
| | | <div class="swichTag"> |
| | | <a-page-header style="padding: 0px;" title=" " @back="() => this.$router.go(-1)"> |
| | | </a-page-header> |
| | | <a-divider :dashed="true" orientation="left">关于我的一些..小故事</a-divider> |
| | | <a-divider :dashed="true" orientation="left">关于我的一些..<span class="myTip">小故事</span></a-divider> |
| | | |
| | | <a-timeline pending="..."> |
| | | <p slot="pendingDot" style="font-size: 18px;" /> |
| | |
| | | <li> 喜欢钢琴~喜欢吉他 </li> |
| | | <li> 爱音乐,也爱看番 </li> |
| | | <li> B界的白嫖怪</li> |
| | | <li> PC单机的<span class="myTip">伪</span>硬核玩家 </li> |
| | | <li> PC单机的<!-- <span class="myTip">伪</span> --><span class="myTip" style="text-decoration:line-through">硬核</span>玩家 </li> |
| | | <li> |
| | | |
| | | <img src="http://t.inleft.com/share/media_photo/xm.jpg" style="width: 35px;border-radius: 20px;" /> |
| | |
| | | <div class="myModal"> |
| | | <a-modal v-model="visible" title="日志添加" on-ok="handleOk"> |
| | | <template slot="footer"> |
| | | <a-button key="reset" @click="reset" type="danger"> |
| | | <a-button key="reset" @click="reset" type="danger"> |
| | | 擦掉重来 |
| | | </a-button> |
| | | <a-button key="back" @click="handleCancel"> |
| | |
| | | <a-icon type="plus-circle" style="margin-left: 0px;" /> |
| | | </a-button> |
| | | <tempFriendBox></tempFriendBox> |
| | | <tempBoxActicle></tempBoxActicle> |
| | | <router-view class="fade"></router-view> |
| | | </a-col> |
| | | |
| | |
| | | |
| | | <script> |
| | | import tempFriendBox from "../group/tempFriendBox.vue" |
| | | import tempBoxActicle from "../group/tempBoxActicle.vue" |
| | | import tempFormCheck from "../group/tempFormCheck.vue" |
| | | import box10 from "../mini/box10-add.vue" |
| | | import boxLeft from "../group/boxLeft.vue" |
| | | import boxRight from "../group/boxRight.vue" |
| | | import articleList from "../group/articleList.vue" |
| | | import articleListScorll from "../group/articleListScorll.vue" |
| | | |
| | | export default { |
| | | |
| | | components: { |
| | | tempFriendBox, |
| | | tempBoxActicle, |
| | | tempFormCheck, |
| | | box10, |
| | | boxLeft, |
| | | boxRight, |
| | | articleList, |
| | | articleListScorll, |
| | | |
| | | |
| | | }, |
| | | methods: { |
| | | getCalendarContainer(trigger) { |
| | |
| | | }, |
| | | handleOk(e) { |
| | | console.log(this.$refs.modalBox.form); |
| | | var res=this.$refs.modalBox.$refs.myForm.validate(valid => { |
| | | var res = this.$refs.modalBox.$refs.myForm.validate(valid => { |
| | | if (valid) { |
| | | this.$message.info("校验通过") |
| | | } else { |
| | |
| | | return false; |
| | | } |
| | | }); |
| | | |
| | | |
| | | if(!res)return; |
| | | |
| | | |
| | | if (!res) return; |
| | | |
| | | this.$message.info("提交表单") |
| | | |
| | |
| | | }, 3000); |
| | | }, |
| | | reset(e) { |
| | | var res=this.$refs.modalBox.$refs.myForm.resetFields() |
| | | var res = this.$refs.modalBox.$refs.myForm.resetFields() |
| | | }, |
| | | handleCancel(e) { |
| | | this.visible = false; |
| | |
| | | } |
| | | |
| | | |
| | | @card-box-shadow: 8px 8px 18px rgba(0, 0, 0, 0.1), -8px -8px 18px rgba(255, 255, 255, 1); |
| | | |
| | | /*--------------------- |
| | | | 核心盒子构成start | |
| | | ------- ---------------*/ |
| | | .blog-container { |
| | | border-radius: 15px; |
| | | // background-color: #f5f8fa; |
| | | background-color: white; |
| | | |
| | | line-height: 1.4; |
| | |
| | | padding-top: 10px; |
| | | padding-bottom: 20px; |
| | | overflow: hidden; |
| | | -webkit-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); |
| | | box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); |
| | | // box-shadow: 1px 1px 1px 2px #00000059 |
| | | // box-shadow: 1px 1px 1px 2px #00000059; |
| | | |
| | | // -webkit-box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); |
| | | // box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); |
| | | |
| | | box-shadow: @card-box-shadow; |
| | | -webkit-box-shadow: @card-box-shadow; |
| | | transition: all .4s; |
| | | -webkit-transition: all .6s; |
| | | -moz-transition: all .6s; |
| | | -o-transition: all .6s; |
| | | -ms-transition: all .6s; |
| | | } |
| | | |
| | | //div本体阴影 |
| | | .blog-container:hover { |
| | | transition: all .25s; |
| | | -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0.2), 0 0 0 rgba(255, 255, 255, 0.8), inset 9px 9px 15px rgba(0, 0, 0, 0.1), inset -9px -9px 15px rgba(255, 255, 255, 1); |
| | | box-shadow: 0 0 0 rgba(0, 0, 0, 0.2), 0 0 0 rgba(255, 255, 255, 0.8), inset 9px 9px 15px rgba(0, 0, 0, 0.1), inset -9px -9px 15px rgba(255, 255, 255, 1); |
| | | } |
| | | |
| | | .show-line { |
New file |
| | |
| | | <template> |
| | | <div class="blog-main"> |
| | | <a-row> |
| | | <a-col v-bind="colApiMain " class="holdHeight"> |
| | | <a-page-header title="朋友们" style="padding: 0px;" @back="() => this.$router.go(-1)" /> |
| | | <boxFriend></boxFriend> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import boxFriend from "../mini/box-friend.vue" |
| | | export default { |
| | | components: { |
| | | boxFriend, |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | colApiMain: { |
| | | xs: 24, |
| | | sm: 24, |
| | | md: { |
| | | span: 24, |
| | | offset: 0, |
| | | }, |
| | | lg: { |
| | | span: 20, |
| | | offset: 2, |
| | | }, |
| | | xl: { |
| | | span: 20, |
| | | offset: 2, |
| | | }, |
| | | xxl: { |
| | | span: 20, |
| | | offset: 2, |
| | | }, |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | |
| | | </style> |
| | |
| | | import main1 from '../components/swichLabel/main1-show.vue' |
| | | import main2 from '../components/swichLabel/main2-show.vue' |
| | | import main3 from '../components/swichLabel/main3-show.vue' |
| | | import main4 from '../components/swichLabel/main4-show.vue' |
| | | |
| | | import box1 from '../components/mini/box1-info.vue' |
| | | import tagTime from '../components/mini/tagTime.vue' |
| | |
| | | path: '/main3', |
| | | component: main3, |
| | | }, |
| | | { |
| | | path: '/main4', |
| | | component: main4, |
| | | }, |
| | | |
| | | |
| | | ] |