├── .gitignore
├── client
├── states
│ ├── search
│ │ ├── value.js
│ │ ├── huya
│ │ │ ├── value.js
│ │ │ ├── route.js
│ │ │ ├── template.html
│ │ │ └── style.less
│ │ ├── bili
│ │ │ ├── value.js
│ │ │ ├── route.js
│ │ │ ├── template.html
│ │ │ └── style.less
│ │ ├── douyu
│ │ │ ├── value.js
│ │ │ ├── route.js
│ │ │ ├── template.html
│ │ │ └── style.less
│ │ ├── zhanqi
│ │ │ ├── value.js
│ │ │ ├── route.js
│ │ │ ├── template.html
│ │ │ └── style.less
│ │ ├── panda
│ │ │ ├── value.js
│ │ │ ├── route.js
│ │ │ ├── template.html
│ │ │ └── style.less
│ │ ├── route.js
│ │ ├── style.less
│ │ └── template.html
│ ├── video
│ │ ├── value.js
│ │ ├── template.html
│ │ ├── style.less
│ │ └── route.js
│ └── index
│ │ ├── value.js
│ │ ├── template.html
│ │ ├── style.less
│ │ └── route.js
├── service
│ ├── biliService.js
│ ├── huyaService.js
│ ├── douyuService.js
│ ├── pandaService.js
│ └── zhanqiService.js
├── main.less
├── main.html
├── main.js
└── lib
│ └── cm-plugin.js
├── public
├── img
│ └── bili-logo-s.png
├── liveSearch
│ ├── styles.3810b05e.css.map
│ ├── layout.html
│ └── styles.3810b05e.css
├── package.json
└── main.js
├── env.js
├── README.md
├── package.json
├── LICENSE.md
├── webpack.base.config.js
└── webpack.prod.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | node_modules
3 |
--------------------------------------------------------------------------------
/client/states/search/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 |
3 | }
4 |
5 | export default value;
--------------------------------------------------------------------------------
/client/states/video/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 |
3 | url : ''
4 | }
5 |
6 | export default value;
--------------------------------------------------------------------------------
/client/states/index/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 |
3 | keyword : ''
4 | }
5 |
6 | export default value;
--------------------------------------------------------------------------------
/public/img/bili-logo-s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yjj5855/electron-vue/master/public/img/bili-logo-s.png
--------------------------------------------------------------------------------
/public/liveSearch/styles.3810b05e.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"styles.3810b05e.css","sourceRoot":""}
--------------------------------------------------------------------------------
/public/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "liveSearch",
3 | "version": "0.1.0",
4 | "main": "main.js",
5 | "scripts": {
6 |
7 | },
8 | "dependencies": {
9 |
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/client/states/search/huya/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 |
3 | huyaList : {
4 | items : [],
5 | total : 0
6 | },
7 | page : 1,
8 |
9 | showAnimation : true,
10 | stagger : 100,
11 | }
12 |
13 | export default value;
--------------------------------------------------------------------------------
/client/states/search/bili/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 | isliving : true,
3 | biliList : {
4 | items : [],
5 | total : 0
6 | },
7 | page : 1,
8 |
9 | showAnimation : true,
10 | stagger : 100,
11 | }
12 |
13 | export default value;
--------------------------------------------------------------------------------
/client/states/search/douyu/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 | isliving : true,
3 | douyuList : {
4 | items : [],
5 | total : 0
6 | },
7 | page : 1,
8 |
9 | showAnimation : true,
10 | stagger : 100,
11 | }
12 |
13 | export default value;
--------------------------------------------------------------------------------
/client/states/search/zhanqi/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 | isliving : true,
3 | zhanqiList : {
4 | items : [],
5 | total : 0
6 | },
7 | page : 1,
8 |
9 | showAnimation : true,
10 | stagger : 100,
11 | }
12 |
13 | export default value;
--------------------------------------------------------------------------------
/client/states/search/panda/value.js:
--------------------------------------------------------------------------------
1 | const value = {
2 | date : new Date().Format('yyyy-MM-dd'),
3 | pandaList : {
4 | items : [],
5 | total : 0
6 | },
7 | page : 1,
8 |
9 | showAnimation : true,
10 | stagger : 100,
11 | }
12 |
13 | export default value;
--------------------------------------------------------------------------------
/client/states/video/template.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/env.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | const env = {
3 | NODE_ENV : 'test',
4 | PORT : '5669',
5 | host_panda : 'http://www.panda.tv',
6 | host_huya : 'http://search.huya.com',
7 | host_douyu : 'http://www.douyu.com',
8 | host_bili : 'http://live.bilibili.com',
9 | host_zhanqi : 'http://www.zhanqi.tv',
10 |
11 | host_self : 'http://yangjj.me:5669',
12 | }
13 | export default env;
--------------------------------------------------------------------------------
/client/states/video/style.less:
--------------------------------------------------------------------------------
1 | .page.video{
2 | .bar.bar-nav{
3 | top: .5rem;
4 | background: transparent;
5 | &:after {
6 | -webkit-transform: scaleY(0);
7 | transform: scaleY(0);
8 | }
9 |
10 | .icon.icon-left{
11 | width: 2.2rem;
12 | height: 2.2rem;
13 | text-align: center;
14 | color: #fff;
15 | background: rgba(0,0,0,.5);
16 | border-radius: 50%;
17 | }
18 | }
19 | iframe{
20 | border: 0;
21 | }
22 | }
--------------------------------------------------------------------------------
/client/service/biliService.js:
--------------------------------------------------------------------------------
1 | import env from '../../env'
2 | //异步函数
3 | export async function searchLiveRoom(keyword,page){
4 |
5 | return new Promise((success,error)=>{
6 | $.ajax({
7 | type : 'GET',
8 | url : env.host_self+'/bili/'+keyword+'?page='+page,
9 | success : function(response){
10 | success(response)
11 | },
12 | error : function(xhr){
13 | error('请求失败')
14 | }
15 | });
16 | })
17 | }
--------------------------------------------------------------------------------
/client/service/huyaService.js:
--------------------------------------------------------------------------------
1 | import env from '../../env'
2 | //异步函数
3 | export async function searchLiveRoom(keyword,page){
4 |
5 | return new Promise((success,error)=>{
6 | $.ajax({
7 | type : 'GET',
8 | url : env.host_self+'/huya/'+keyword+'?page='+page,
9 | success : function(response){
10 | success(response)
11 | },
12 | error : function(xhr){
13 | error('请求失败')
14 | }
15 | });
16 | })
17 | }
--------------------------------------------------------------------------------
/client/service/douyuService.js:
--------------------------------------------------------------------------------
1 | import env from '../../env'
2 | //异步函数
3 | export async function searchLiveRoom(keyword,page){
4 |
5 | return new Promise((success,error)=>{
6 | $.ajax({
7 | type : 'GET',
8 | url : env.host_self+'/douyu/'+keyword+'?page='+page,
9 | success : function(response){
10 | success(response)
11 | },
12 | error : function(xhr){
13 | error('请求失败')
14 | }
15 | });
16 | })
17 | }
--------------------------------------------------------------------------------
/client/service/pandaService.js:
--------------------------------------------------------------------------------
1 | import env from '../../env'
2 | //异步函数
3 | export async function searchLiveRoom(keyword,page){
4 |
5 | return new Promise((success,error)=>{
6 | $.ajax({
7 | type : 'GET',
8 | url : env.host_self+'/panda/'+keyword+'?page='+page,
9 | success : function(response){
10 | success(response)
11 | },
12 | error : function(xhr){
13 | error('请求失败')
14 | }
15 | });
16 | })
17 | }
--------------------------------------------------------------------------------
/client/service/zhanqiService.js:
--------------------------------------------------------------------------------
1 | import env from '../../env'
2 | //异步函数
3 | export async function searchLiveRoom(keyword,page){
4 |
5 | return new Promise((success,error)=>{
6 | $.ajax({
7 | type : 'GET',
8 | url : env.host_self+'/zhanqi/'+keyword+'?page='+page,
9 | success : function(response){
10 | success(response)
11 | },
12 | error : function(xhr){
13 | error('请求失败')
14 | }
15 | });
16 | })
17 | }
--------------------------------------------------------------------------------
/client/main.less:
--------------------------------------------------------------------------------
1 | .video-box-transition{
2 | transition: all .5s ease;
3 | -webkit-animation:bounceIn 1s .2s ease both;
4 | -moz-animation:bounceIn 1s .2s ease both;
5 | }
6 | .video-box-enter,.video-box-leave{
7 |
8 | }
9 |
10 | @-webkit-keyframes bounceIn{
11 | 0%{opacity:0;
12 | -webkit-transform:scale(.3)}
13 | 50%{opacity:1;
14 | -webkit-transform:scale(1.05)}
15 | 70%{-webkit-transform:scale(.9)}
16 | 100%{-webkit-transform:scale(1)}
17 | }
18 | @-moz-keyframes bounceIn{
19 | 0%{opacity:0;
20 | -moz-transform:scale(.3)}
21 | 50%{opacity:1;
22 | -moz-transform:scale(1.05)}
23 | 70%{-moz-transform:scale(.9)}
24 | 100%{-moz-transform:scale(1)}
25 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | electron 练手项目 纯前端 配合vue框架做的
2 | 这个项目本来是一个webapp
3 |
4 | client 是客户端 源码文件夹
5 | public 是最终要打成asar文件的目录
6 |
7 | 使用webpack打包client中的源码,到public/liveSearch中
8 |
9 | #开发流程
10 |
11 | ###1.需全局安装
12 | ```
13 | npm install electron-prebuilt -g
14 | npm install asar -g
15 | npm install webpack -g
16 | ```
17 |
18 | ###2.webpack打包
19 | ```
20 | npm run build
21 | ```
22 |
23 | ###3.开发时运行
24 | ```
25 | npm run dev
26 | ```
27 |
28 | ###4.打包成asar文件
29 | ```
30 | npm run asar
31 | ```
32 |
33 | ###5.转成各平台对应的app
34 |
35 | ####简单打包
36 | 去[官网](https://github.com/electron/electron/releases)下载各平台对应的压缩包,解压出来,
37 | 把default_app.asar替换成上一步打出来的asar文件
38 |
39 | ####自动化打包
40 | 使用[electron-packager](https://github.com/electron-userland/electron-packager)
--------------------------------------------------------------------------------
/client/states/search/route.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import Vue from 'vue'
3 | import Tpl from './template.html'
4 | import Value from './value'
5 | import './style.less'
6 |
7 | let Index = Vue.extend({
8 | //replace : true, //必须注释掉 不然动画失效
9 | template : Tpl,
10 | init : function () {
11 |
12 | },
13 | ready : function(){ //做浏览器判断 和 兼容
14 |
15 | //需要初始化一下,不然监听不到infinite事件
16 | $.init();
17 | },
18 | events : {
19 |
20 | },
21 | data : ()=>{
22 | return Value
23 | },
24 | methods: {
25 |
26 | },
27 | computed : {
28 |
29 | },
30 | route : {
31 | data : function(transition){
32 |
33 | }
34 | }
35 | })
36 |
37 | export default Index
--------------------------------------------------------------------------------
/client/states/video/route.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import Vue from 'vue'
3 | import Tpl from './template.html'
4 | import Value from './value'
5 | import './style.less'
6 | import {searchLiveRoom} from '../../service/pandaService'
7 |
8 | let Index = Vue.extend({
9 | //replace : true, //必须注释掉 不然动画失效
10 | template : Tpl,
11 | init : function () {
12 |
13 | },
14 | ready : function(){ //做浏览器判断 和 兼容
15 |
16 |
17 | $.init();
18 | },
19 | data : ()=>{
20 | return Value
21 | },
22 | methods: {
23 |
24 | },
25 | computed : {
26 |
27 | },
28 | route : {
29 | data : function(transition){
30 | this.url = decodeURIComponent(transition.to.query.url);
31 | console.log(this.url)
32 | }
33 | }
34 | })
35 |
36 | export default Index
--------------------------------------------------------------------------------
/client/states/index/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/client/main.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 直播搜索
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "liveSearch",
3 | "version": "0.1.0",
4 |
5 | "scripts": {
6 | "dev": "electron ./public",
7 | "build": "rm -rf ./public/liveSearch && webpack --progress --hide-modules --config webpack.prod.config.js",
8 | "asar": "rm -rf default_app.asar && asar pack ./public default_app.asar"
9 | },
10 | "dependencies": {
11 | "babel-cli": "^6.9.0",
12 | "babel-core": "^6.0.0",
13 | "babel-loader": "^6.0.0",
14 | "babel-preset-es2015": "^6.0.0",
15 | "babel-preset-stage-3": "^6.0.0",
16 | "css-loader": "^0.23.1",
17 | "eve": "^0.5.0",
18 | "extract-text-webpack-plugin": "^1.0.1",
19 | "html-webpack-plugin": "^2.8.2",
20 | "less": "^2.6.0",
21 | "less-loader": "^2.2.2",
22 | "platform": "^1.3.1",
23 | "postcss-loader": "^0.9.1",
24 | "precss": "^1.4.0",
25 | "raw-loader": "^0.5.1",
26 | "style-loader": "^0.13.0",
27 | "url-loader": "^0.5.7",
28 | "vue": "^1.0.24",
29 | "vue-router": "^0.7.10",
30 | "webpack": "^1.4.13"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 yjj5855
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/public/liveSearch/layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 直播搜索
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/webpack.base.config.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var webpack = require('webpack')
3 | var ExtractTextPlugin = require("extract-text-webpack-plugin");
4 | var precss = require('precss');
5 | var autoprefixer = require('autoprefixer');
6 |
7 |
8 | module.exports = {
9 |
10 | devtool: 'source-map',
11 |
12 | entry: {
13 | web_app:"./client/main",
14 | //公共库
15 | vendor : [
16 | 'babel-polyfill',
17 | './env',
18 | 'vue',
19 | 'vue-router',
20 | ]
21 | },
22 |
23 | output: {
24 | path: __dirname + '/public/liveSearch',
25 | filename: '[name].[chunkhash:8].js',
26 | chunkFilename: '[id].[chunkhash:8].js',
27 | publicPath: './'
28 | },
29 |
30 | module: {
31 | loaders: [
32 | { test: /\.js$/,
33 | exclude: /node_modules/,
34 | loader: 'babel' ,
35 | query: {
36 | cacheDirectory: true,
37 | presets: ['es2015','stage-3']
38 | }
39 | },
40 | { test: /\.html$/, loader: 'raw' },
41 | { test: /\.less$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!postcss-loader!less-loader") },
42 | { test: /\.png$/, loader: 'url' ,query: { mimetype: "image/png" } }
43 |
44 | ]
45 | },
46 | postcss: function () {
47 | return [precss, autoprefixer];
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/webpack.prod.config.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack')
2 | var config = require('./webpack.base.config')
3 | var HtmlWebpackPlugin = require('html-webpack-plugin')
4 | var ExtractTextPlugin = require("extract-text-webpack-plugin");
5 |
6 | config.devtool = 'source-map'
7 |
8 | config.output.filename = '[name].[chunkhash:8].js'
9 | config.output.chunkFilename = '[id].[chunkhash:8].js'
10 |
11 |
12 | config.plugins = (config.plugins || []).concat([
13 | //把所有独立样式的CSS打包成一个style.css
14 | new ExtractTextPlugin("styles.[hash:8].css",{allChunks: true}),
15 | new webpack.optimize.CommonsChunkPlugin({
16 | name: "vendor",
17 |
18 | filename: "[name].[hash:8].js",
19 | // (Give the chunk a different name)
20 |
21 | minChunks: Infinity,
22 | // (with more entries, this ensures that no other module
23 | // goes into the vendor chunk)
24 | }),
25 | new webpack.optimize.UglifyJsPlugin({
26 | compressor: {
27 | warnings: false
28 | }
29 | }),
30 | new HtmlWebpackPlugin({
31 | name:'layout',
32 | template: './client/main.html',
33 | filename: 'layout.html',
34 | inject: 'body',
35 | chunks: ['vendor', 'web_app'],
36 | minify:{ //压缩HTML文件
37 | removeComments:true, //移除HTML中的注释
38 | collapseWhitespace:false //删除空白符与换行符
39 | }
40 | })
41 | ])
42 |
43 | module.exports = config
--------------------------------------------------------------------------------
/client/states/search/style.less:
--------------------------------------------------------------------------------
1 | .page.search{
2 | .bar.bar-nav{
3 | top: .5rem;
4 | background: transparent;
5 |
6 | &:after {
7 | -webkit-transform: scaleY(0);
8 | transform: scaleY(0);
9 | }
10 |
11 | .icon.icon-left{
12 | width: 2.2rem;
13 | height: 2.2rem;
14 | text-align: center;
15 | color: #000;
16 | background: rgba(255, 255, 255, 0.8);
17 | border-radius: 50%;
18 | }
19 | }
20 |
21 | .content{
22 | top: 0;
23 | }
24 | .tab-item{
25 | background-size: 80%;
26 | background-repeat: no-repeat;
27 | background-position: center;
28 | -webkit-filter: grayscale(100%);
29 | -moz-filter: grayscale(100%);
30 | filter: grayscale(100%);
31 |
32 | span{
33 | visibility: hidden;
34 | }
35 |
36 | &.panda{
37 | background-image: url("http://i5.pdim.gs/06b000f296eb5f4f2a16e9e012cfcf7e.png");
38 | }
39 | &.huya{
40 | background-image: url("http://a.dwstatic.com/huya/main/img/logo_index_new09_4217d25.png");
41 | }
42 | &.douyu{
43 | background-image: url("http://shark.douyucdn.cn/app/douyu/res/com/logo.png?20160303");
44 | }
45 | &.bili{
46 | background-image: url("../../../public/img/bili-logo-s.png");
47 | }
48 | &.zhanqi{
49 | background-image: url("http://dlstatic.cdn.zhanqi.tv/assets/web/static/i/logo-6.png");
50 | }
51 | &.active{
52 | -webkit-filter: grayscale(0);
53 | -moz-filter: grayscale(0);
54 | filter: grayscale(0);
55 | }
56 | }
57 |
58 | .bar.bar-tab{
59 | background-color: rgba(255,255,255,.9);
60 | }
61 |
62 | }
--------------------------------------------------------------------------------
/client/main.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import "babel-polyfill"
3 | import './main.less'
4 | import Vue from 'vue'
5 | import VueRouter from 'vue-router'
6 | import VueCm from './lib/cm-plugin'
7 |
8 | //懒加载路由 只有访问这个路由才会加载js
9 | Vue.use(VueRouter);
10 | Vue.use(VueCm);
11 |
12 | var router = new VueRouter({
13 | history: true, //html5模式 去掉锚点
14 | saveScrollPosition: true //记住页面的滚动位置 html5模式适用
15 | })
16 |
17 | //定义路由
18 | router.map({
19 | '/': {
20 | component: require('./states/index/route').default
21 | },
22 | '/search/:keyword': {
23 | component: require('./states/search/route').default,
24 | subRoutes: {
25 | '/': {
26 | component: require('./states/search/panda/route').default
27 | },
28 | '/panda': {
29 | component: require('./states/search/panda/route').default
30 | },
31 | '/huya': {
32 | component: require('./states/search/huya/route').default
33 | },
34 | '/douyu': {
35 | component: require('./states/search/douyu/route').default
36 | },
37 | '/bili': {
38 | component: require('./states/search/bili/route').default
39 | },
40 | '/zhanqi': {
41 | component: require('./states/search/zhanqi/route').default
42 | }
43 | }
44 | },
45 | '/video': {
46 | component: require('./states/video/route').default
47 | },
48 | })
49 | router.redirect({
50 | '*': '/'
51 | })
52 |
53 | var App = Vue.extend({})
54 |
55 | //启动APP
56 | router.start(App, '#app')
--------------------------------------------------------------------------------
/client/states/search/template.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/main.js:
--------------------------------------------------------------------------------
1 | const electron = require('electron');
2 | // Module to control application life.
3 | const {app} = electron;
4 | // Module to create native browser window.
5 | const {BrowserWindow} = electron;
6 |
7 | // Keep a global reference of the window object, if you don't, the window will
8 | // be closed automatically when the JavaScript object is garbage collected.
9 | let win;
10 |
11 | function createWindow() {
12 | // Create the browser window.
13 | win = new BrowserWindow({width: 414, height: 736});
14 |
15 | // and load the index.html of the app.
16 | win.loadURL(`file://${__dirname}/liveSearch/layout.html`);
17 |
18 | // Open the DevTools.
19 | // win.webContents.openDevTools();
20 |
21 | // Emitted when the window is closed.
22 | win.on('closed', () => {
23 | // Dereference the window object, usually you would store windows
24 | // in an array if your app supports multi windows, this is the time
25 | // when you should delete the corresponding element.
26 | win = null;
27 | });
28 | }
29 |
30 | // This method will be called when Electron has finished
31 | // initialization and is ready to create browser windows.
32 | // Some APIs can only be used after this event occurs.
33 | app.on('ready', createWindow);
34 |
35 | // Quit when all windows are closed.
36 | app.on('window-all-closed', () => {
37 | // On OS X it is common for applications and their menu bar
38 | // to stay active until the user quits explicitly with Cmd + Q
39 | if (process.platform !== 'darwin') {
40 | app.quit();
41 | }
42 | });
43 |
44 | app.on('activate', () => {
45 | // On OS X it's common to re-create a window in the app when the
46 | // dock icon is clicked and there are no other windows open.
47 | if (win === null) {
48 | createWindow();
49 | }
50 | });
51 |
52 | // In this file you can include the rest of your app's specific main process
53 | // code. You can also put them in separate files and require them here.
--------------------------------------------------------------------------------
/client/states/search/zhanqi/route.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import Vue from 'vue'
3 | import Tpl from './template.html'
4 | import Value from './value'
5 | import './style.less'
6 | import {searchLiveRoom} from '../../../service/zhanqiService'
7 |
8 | let Index = Vue.extend({
9 | //replace : true, //必须注释掉 不然动画失效
10 | template : Tpl,
11 | init : function () {
12 |
13 | },
14 | ready : function(){ //做浏览器判断 和 兼容
15 |
16 | //需要初始化一下,不然监听不到infinite事件
17 | $.init();
18 |
19 | },
20 | data : ()=>{
21 | return Value
22 | },
23 | methods: {
24 | async loadList(){
25 | try{
26 | let keyword = this.$route.params.keyword;
27 | let data = await searchLiveRoom(keyword,this.page);
28 | if(data && data.status == 200){
29 | this.page += 1;
30 | this.zhanqiList.total = data.total;
31 | setTimeout(()=>{
32 | this.showAnimation = false;
33 | },data.items.length * this.stagger)
34 | this.showAnimation = true;
35 | for(let i=0;i{
21 | return Value
22 | },
23 | methods: {
24 | async loadList(){
25 | try{
26 | let keyword = this.$route.params.keyword;
27 | let data = await searchLiveRoom(keyword,this.page);
28 | if(data && data.status == 200){
29 | this.page += 1;
30 | this.biliList.total = data.total;
31 | setTimeout(()=>{
32 | this.showAnimation = false;
33 | },data.items.length * this.stagger)
34 | this.showAnimation = true;
35 | for(let i=0;i= parseInt(this.biliList.total);
47 | }
48 | },
49 | route : {
50 | data : function(transition){
51 | let keyword = transition.to.params.keyword;
52 | this.loadList();
53 | },
54 | deactivate : function (transition) {
55 | this.biliList = {
56 | items : [],
57 | total : 0
58 | };
59 | this.page = 1;
60 | transition.next();
61 | }
62 | }
63 | })
64 |
65 | export default Index
--------------------------------------------------------------------------------
/client/states/search/douyu/route.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import Vue from 'vue'
3 | import Tpl from './template.html'
4 | import Value from './value'
5 | import './style.less'
6 | import {searchLiveRoom} from '../../../service/douyuService'
7 |
8 | let Index = Vue.extend({
9 | //replace : true, //必须注释掉 不然动画失效
10 | template : Tpl,
11 | init : function () {
12 |
13 | },
14 | ready : function(){ //做浏览器判断 和 兼容
15 |
16 | //需要初始化一下,不然监听不到infinite事件
17 | $.init();
18 |
19 | },
20 | data : ()=>{
21 | return Value
22 | },
23 | methods: {
24 | async loadList(){
25 | try{
26 | let keyword = this.$route.params.keyword;
27 | let data = await searchLiveRoom(keyword,this.page);
28 | if(data && data.status == 200){
29 | this.page += 1;
30 | this.douyuList.total = data.total;
31 | setTimeout(()=>{
32 | this.showAnimation = false;
33 | },data.items.length * this.stagger)
34 | this.showAnimation = true;
35 | for(let i=0;i= parseInt(this.douyuList.total);
47 | }
48 | },
49 | route : {
50 | data : function(transition){
51 | let keyword = transition.to.params.keyword;
52 | this.loadList();
53 | },
54 | deactivate : function (transition) {
55 | this.douyuList = {
56 | items : [],
57 | total : 0
58 | };
59 | this.page = 1;
60 | transition.next();
61 | }
62 | }
63 | })
64 |
65 | export default Index
--------------------------------------------------------------------------------
/client/states/search/panda/route.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import Vue from 'vue'
3 | import Tpl from './template.html'
4 | import Value from './value'
5 | import './style.less'
6 | import {searchLiveRoom} from '../../../service/pandaService'
7 |
8 | let Index = Vue.extend({
9 | //replace : true, //必须注释掉 不然动画失效
10 | template : Tpl,
11 | init : function () {
12 |
13 | },
14 | ready : function(){ //做浏览器判断 和 兼容
15 |
16 | //需要初始化一下,不然监听不到infinite事件
17 | $.init();
18 |
19 | },
20 | data : ()=>{
21 | return Value
22 | },
23 | methods: {
24 | async loadList(){
25 | try{
26 | let keyword = this.$route.params.keyword;
27 | let data = await searchLiveRoom(keyword,this.page);
28 | if(data && data.errno == 0){
29 | this.pandaList.total = data.data.total;
30 | setTimeout(()=>{
31 | this.showAnimation = false;
32 | },data.data.items.length * this.stagger)
33 | this.showAnimation = true;
34 | for(let i=0;i= parseInt(this.pandaList.total);
47 | }
48 | },
49 | route : {
50 | data : function(transition){
51 | let keyword = transition.to.params.keyword;
52 | this.loadList();
53 | },
54 | deactivate : function (transition) {
55 | this.pandaList = {
56 | items : [],
57 | total : 0
58 | };
59 | this.page = 1;
60 | transition.next();
61 | }
62 | }
63 | })
64 |
65 | export default Index
--------------------------------------------------------------------------------
/client/states/search/huya/route.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import Vue from 'vue'
3 | import Tpl from './template.html'
4 | import Value from './value'
5 | import './style.less'
6 | import {searchLiveRoom} from '../../../service/huyaService'
7 |
8 | let Index = Vue.extend({
9 | //replace : true, //必须注释掉 不然动画失效
10 | template : Tpl,
11 | init : function () {
12 |
13 | },
14 | ready : function(){ //做浏览器判断 和 兼容
15 | //需要初始化一下,不然监听不到infinite事件
16 | $.init();
17 | },
18 | data : ()=>{
19 | return Value
20 | },
21 | methods: {
22 | async loadList(){
23 | try{
24 | let keyword = this.$route.params.keyword;
25 | let data = await searchLiveRoom(keyword,this.page);
26 | if(data && data.responseHeader && data.responseHeader.status == 0){
27 | let list = data.response[3].docs;
28 | let total = data.response[3].numFound;
29 | this.huyaList.total = total;
30 | setTimeout(()=>{
31 | this.showAnimation = false;
32 | },list.length * this.stagger)
33 | this.showAnimation = true;
34 | for(let i=0;i= parseInt(this.huyaList.total);
47 | }
48 | },
49 | route : {
50 | data : function(transition){
51 | let keyword = transition.to.params.keyword;
52 | this.loadList();
53 | },
54 | deactivate : function (transition) {
55 | this.huyaList = {
56 | items : [],
57 | total : 0
58 | };
59 | this.page = 1;
60 | transition.next();
61 | }
62 | }
63 | })
64 |
65 | export default Index
--------------------------------------------------------------------------------
/client/states/search/douyu/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
直播
10 |
11 |
12 |
13 |
14 | {{{item.title}}}
15 |
16 |
17 | {{item.nick}}
18 | {{item.person}}
19 | {{item.type}}
20 |
21 |
22 |
23 |
24 |
26 |
27 |
加载更多
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
没有更多了
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/client/states/search/zhanqi/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
直播
10 |
11 |
12 |
13 |
14 | {{{item.title}}}
15 |
16 |
17 | {{item.nick}}
18 | {{item.person}}
19 | {{item.type}}
20 |
21 |
22 |
23 |
24 |
26 |
27 |
加载更多
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
没有更多了
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/client/states/search/huya/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
直播
10 |
11 |
12 |
13 |
14 | {{{item.game_roomName}}}
15 |
16 |
17 | {{item.game_nick.substr(0,14)}}
18 | {{item.game_total_count}}
19 | {{item.gameName}}
20 |
21 |
22 |
23 |
24 |
26 |
27 |
加载更多
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
没有更多了
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/client/states/search/panda/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
直播
10 |
11 |
12 |
13 |
14 |
15 | {{{item.name}}}
16 |
17 |
18 | {{item.nickname}}
19 | {{item.person_num}}
20 | {{item.classification}}
21 |
22 |
23 |
24 |
25 |
27 |
28 |
加载更多
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
没有更多了
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/client/states/index/style.less:
--------------------------------------------------------------------------------
1 | .page.index{
2 | background: linear-gradient(-45deg,#76CDFF,#50E4C8,#FFD13B,#F38648,#FF290D);
3 |
4 | @cub: cubic-bezier(.73,.14,.4,1.58);
5 | svg {
6 | overflow: visible;
7 | }
8 | .search {
9 | position: absolute;
10 | top: 30%;
11 | left: 5%;
12 | //margin-left: -16rem;
13 | //margin-top: -3.5rem;
14 | width: 90%;
15 | height: 5rem;
16 |
17 | &:not(.active) {
18 | cursor: pointer;
19 | }
20 | }
21 | .search-svg {
22 | position: absolute;
23 | top: 0;
24 | left: 0;
25 | width: 100%;
26 | height: 100%;
27 |
28 | &__path {
29 | fill: none;
30 | stroke: #fff;
31 | stroke-width: 6px;
32 | }
33 | }
34 | .search-input {
35 | position: relative;
36 | width: 80%;
37 | padding: 1rem 0 0 1.5rem;
38 | background: transparent;
39 | outline: none;
40 | border: none;
41 | font-size: 2rem;
42 | color: #fff;
43 | z-index: -1;
44 | opacity: 0;
45 | transition: opacity 0.2s;
46 |
47 | &.visible {
48 | z-index: auto;
49 | opacity: 1;
50 | }
51 | }
52 | .search-close {
53 | position: absolute;
54 | top: .8rem;
55 | right: 4%;
56 | width: 2rem;
57 | height: 2rem;
58 | cursor: pointer;
59 | z-index: -1;
60 |
61 | &.visible {
62 | z-index: auto;
63 |
64 | &:before {
65 | transform: rotate(-45deg);
66 | opacity: 1;
67 | transition: transform 0.2s @cub, opacity 0.1s;
68 | }
69 | &:after {
70 | transform: rotate(45deg);
71 | opacity: 1;
72 | transition: transform 0.2s 0.2s @cub, opacity 0.1s 0.2s;
73 | }
74 | }
75 |
76 | &:before,
77 | &:after {
78 | content: "";
79 | position: absolute;
80 | top: 1.2rem;
81 | left: 0;
82 | width: 100%;
83 | height: 0.3rem;
84 | background: #fff;
85 | border-radius: 0.5rem;
86 | opacity: 0;
87 | }
88 | &:before {
89 | transform: rotate(-45deg) translateX(2rem);
90 | transition: transform 0.2s, opacity 0.1s 0.1s;
91 | }
92 | &:after {
93 | transform: rotate(45deg) translateX(2rem);
94 | transition: transform 0.2s 0.2s, opacity 0.1s 0.3s;
95 | }
96 | }
97 | }
--------------------------------------------------------------------------------
/client/states/search/bili/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | {{{item.title}}}
18 |
19 |
20 | {{item.nick}}
21 | {{item.person}}
22 | {{item.type}}
23 |
24 |
25 |
26 |
27 |
29 |
30 |
加载更多
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
没有更多了
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/client/states/index/route.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | import Vue from 'vue'
3 | import Tpl from './template.html'
4 | import Value from './value'
5 | import './style.less'
6 | import Snap from '../../lib/snap.svg'
7 |
8 | let Index = Vue.extend({
9 | //replace : true, //必须注释掉 不然动画失效
10 | template : Tpl,
11 | init : function () {
12 |
13 | },
14 | ready : function(){ //做浏览器判断 和 兼容
15 | $.init();
16 | var $search = $(".search"),
17 | $input = $(".search-input"),
18 | $close = $(".search-close"),
19 | $svg = $(".search-svg"),
20 | $path = $(".search-svg__path")[0],
21 | initD = $svg.attr("data-init"),
22 | midD = $svg.attr("data-mid"),
23 | finalD = $svg.attr("data-active"),
24 | backDelay = 400,
25 | midAnim = 200,
26 | bigAnim = 400,
27 | animating = false;
28 |
29 | $(document).on("click", ".search:not(.active)", function() {
30 | if (animating) return;
31 | animating = true;
32 | $search.addClass("active");
33 |
34 | Snap($path).animate({"path": midD}, midAnim, mina.backin, function() {
35 | Snap($path).animate({"path": finalD}, bigAnim, mina.easeinout, function() {
36 | $input.addClass("visible");
37 | $input.focus();
38 | $close.addClass("visible");
39 | animating = false;
40 | });
41 | });
42 |
43 | });
44 |
45 | $(document).on("click", ".search-close", function() {
46 | if (animating) return;
47 | animating = true;
48 | $input.removeClass("visible");
49 | $close.removeClass("visible");
50 | $search.removeClass("active");
51 |
52 | setTimeout(function() {
53 | Snap($path).animate({"path": midD}, bigAnim, mina.easeinout, function() {
54 | Snap($path).animate({"path": initD}, midAnim, mina.easeinout, function() {
55 | animating = false;
56 | });
57 | });
58 | }, backDelay);
59 | });
60 |
61 | },
62 | data : ()=>{
63 | return Value
64 | },
65 | methods: {
66 |
67 | },
68 | computed : {
69 |
70 | },
71 | route : {
72 | data : function(){
73 |
74 | }
75 | }
76 | })
77 |
78 | export default Index
--------------------------------------------------------------------------------
/client/states/search/douyu/style.less:
--------------------------------------------------------------------------------
1 | .content.douyu{
2 | padding-top: .2rem;
3 | padding-bottom: 3rem;
4 |
5 | .video-box{
6 | width: 48%;
7 | margin-left: 1%;
8 | margin-right: 1%;
9 | margin-bottom: 8px;
10 | padding-bottom: 5px;
11 | position: relative;
12 | background: #fff;
13 | box-shadow: 0 0.05rem 0.1rem rgba(0, 0, 0, 0.3);
14 |
15 | .video-tag{
16 | display: inline-block;
17 | position: absolute;
18 | top: 14px;
19 | width: 50px;
20 | height: 22px;
21 | font-size: 15px;
22 | line-height: 22px;
23 | color: #fff;
24 | text-align: center;
25 | z-index: 1;
26 |
27 | &.video-tag-online{
28 | background-color: #00a0ff;
29 | }
30 | }
31 | .video-img{
32 | position: relative;
33 | width: 100%;
34 | padding-bottom: 56.8%;
35 | overflow: hidden;
36 |
37 | img{
38 | width: 100%;position: absolute;
39 | }
40 | }
41 |
42 | .video-title{
43 | max-width: 70%;
44 | padding-left: 5px;
45 | font-size: 12px;
46 | overflow: hidden;
47 | text-overflow: ellipsis;
48 | white-space: nowrap;
49 |
50 | b{
51 | color: #ff2121;
52 | }
53 | }
54 | .video-info{
55 | position: relative;
56 | font-size: 12px;
57 |
58 | .video-nickname{
59 | width: 200px;
60 | margin-left: 5px;
61 | padding-left: 12px;
62 | background: url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0px no-repeat;
63 | color: #787878;
64 | overflow: hidden;
65 | text-overflow: ellipsis;
66 | white-space: nowrap;
67 | }
68 | .video-number{
69 | position: absolute;
70 | padding-left: 17px;
71 | top: 0;
72 | right: 5px;
73 | background: url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;
74 | color: #787878;
75 | }
76 | .video-cate{
77 | position: absolute;
78 | right: 5px;
79 | top: -17px;
80 | width: 48px;
81 | color: #00a0ff;
82 | overflow: hidden;
83 | text-align: right;
84 | //text-overflow: ellipsis;
85 | white-space: nowrap;
86 | }
87 | }
88 |
89 | .load-more{
90 | position: absolute;
91 | top: 0;
92 | left: 0;
93 | right: 0;
94 | bottom: 0;
95 | width: 100px;
96 | margin: auto;
97 | height: 30px;
98 | text-align: center;
99 | }
100 | }
101 |
102 | }
--------------------------------------------------------------------------------
/client/states/search/huya/style.less:
--------------------------------------------------------------------------------
1 | .content.huya{
2 | padding-top: .2rem;
3 | padding-bottom: 3rem;
4 |
5 | .video-box{
6 | width: 48%;
7 | margin-left: 1%;
8 | margin-right: 1%;
9 | margin-bottom: 8px;
10 | padding-bottom: 5px;
11 | position: relative;
12 | background: #fff;
13 | box-shadow: 0 0.05rem 0.1rem rgba(0, 0, 0, 0.3);
14 |
15 | .video-tag{
16 | display: inline-block;
17 | position: absolute;
18 | top: 14px;
19 | width: 50px;
20 | height: 22px;
21 | font-size: 15px;
22 | line-height: 22px;
23 | color: #fff;
24 | text-align: center;
25 | z-index: 1;
26 |
27 | &.video-tag-online{
28 | background-color: #00a0ff;
29 | }
30 | }
31 | .video-img{
32 | position: relative;
33 | width: 100%;
34 | padding-bottom: 56.8%;
35 | overflow: hidden;
36 |
37 | img{
38 | width: 100%;position: absolute;
39 | }
40 | }
41 |
42 | .video-title{
43 | max-width: 70%;
44 | padding-left: 5px;
45 | font-size: 12px;
46 | overflow: hidden;
47 | text-overflow: ellipsis;
48 | white-space: nowrap;
49 |
50 | b{
51 | color: #ff2121;
52 | }
53 | }
54 | .video-info{
55 | position: relative;
56 | font-size: 12px;
57 |
58 | .video-nickname{
59 | width: 200px;
60 | margin-left: 5px;
61 | padding-left: 12px;
62 | background: url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0px no-repeat;
63 | color: #787878;
64 | overflow: hidden;
65 | text-overflow: ellipsis;
66 | white-space: nowrap;
67 | }
68 | .video-number{
69 | position: absolute;
70 | padding-left: 17px;
71 | top: 0;
72 | right: 5px;
73 | background: url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;
74 | color: #787878;
75 | }
76 | .video-cate{
77 | position: absolute;
78 | right: 5px;
79 | top: -17px;
80 | width: 48px;
81 | color: #00a0ff;
82 | overflow: hidden;
83 | text-align: right;
84 | //text-overflow: ellipsis;
85 | white-space: nowrap;
86 | }
87 | }
88 |
89 | .load-more{
90 | position: absolute;
91 | top: 0;
92 | left: 0;
93 | right: 0;
94 | bottom: 0;
95 | width: 100px;
96 | margin: auto;
97 | height: 30px;
98 | text-align: center;
99 | }
100 | }
101 |
102 | }
--------------------------------------------------------------------------------
/client/states/search/panda/style.less:
--------------------------------------------------------------------------------
1 | .content.panda{
2 | padding-top: .2rem;
3 | padding-bottom: 3rem;
4 |
5 | .video-box{
6 | width: 48%;
7 | margin-left: 1%;
8 | margin-right: 1%;
9 | margin-bottom: 8px;
10 | padding-bottom: 5px;
11 | position: relative;
12 | background: #fff;
13 | box-shadow: 0 0.05rem 0.1rem rgba(0, 0, 0, 0.3);
14 |
15 | .video-tag{
16 | display: inline-block;
17 | position: absolute;
18 | top: 14px;
19 | width: 50px;
20 | height: 22px;
21 | font-size: 15px;
22 | line-height: 22px;
23 | color: #fff;
24 | text-align: center;
25 | z-index: 1;
26 |
27 | &.video-tag-online{
28 | background-color: #00a0ff;
29 | }
30 | }
31 | .video-img{
32 | position: relative;
33 | width: 100%;
34 | padding-bottom: 56.8%;
35 | overflow: hidden;
36 |
37 | img{
38 | width: 100%;position: absolute;
39 | }
40 | }
41 |
42 | .video-title{
43 | max-width: 70%;
44 | padding-left: 5px;
45 | font-size: 12px;
46 | overflow: hidden;
47 | text-overflow: ellipsis;
48 | white-space: nowrap;
49 |
50 | b{
51 | color: #ff2121;
52 | }
53 | }
54 | .video-info{
55 | position: relative;
56 | font-size: 12px;
57 |
58 | .video-nickname{
59 | width: 200px;
60 | margin-left: 5px;
61 | padding-left: 12px;
62 | background: url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0px no-repeat;
63 | color: #787878;
64 | overflow: hidden;
65 | text-overflow: ellipsis;
66 | white-space: nowrap;
67 | }
68 | .video-number{
69 | position: absolute;
70 | padding-left: 17px;
71 | top: 0;
72 | right: 5px;
73 | background: url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;
74 | color: #787878;
75 | }
76 | .video-cate{
77 | position: absolute;
78 | right: 5px;
79 | top: -17px;
80 | width: 48px;
81 | color: #00a0ff;
82 | overflow: hidden;
83 | text-align: right;
84 | //text-overflow: ellipsis;
85 | white-space: nowrap;
86 | }
87 | }
88 |
89 | .load-more{
90 | position: absolute;
91 | top: 0;
92 | left: 0;
93 | right: 0;
94 | bottom: 0;
95 | width: 100px;
96 | margin: auto;
97 | height: 30px;
98 | text-align: center;
99 | }
100 | }
101 |
102 | }
--------------------------------------------------------------------------------
/client/states/search/zhanqi/style.less:
--------------------------------------------------------------------------------
1 | .content.zhanqi{
2 | padding-top: .2rem;
3 | padding-bottom: 3rem;
4 |
5 | .video-box{
6 | width: 48%;
7 | margin-left: 1%;
8 | margin-right: 1%;
9 | margin-bottom: 8px;
10 | padding-bottom: 5px;
11 | position: relative;
12 | background: #fff;
13 | box-shadow: 0 0.05rem 0.1rem rgba(0, 0, 0, 0.3);
14 |
15 | .video-tag{
16 | display: inline-block;
17 | position: absolute;
18 | top: 14px;
19 | width: 50px;
20 | height: 22px;
21 | font-size: 15px;
22 | line-height: 22px;
23 | color: #fff;
24 | text-align: center;
25 | z-index: 1;
26 |
27 | &.video-tag-online{
28 | background-color: #00a0ff;
29 | }
30 | }
31 | .video-img{
32 | position: relative;
33 | width: 100%;
34 | padding-bottom: 56.8%;
35 | overflow: hidden;
36 |
37 | img{
38 | width: 100%;position: absolute;
39 | }
40 | }
41 |
42 | .video-title{
43 | max-width: 70%;
44 | padding-left: 5px;
45 | font-size: 12px;
46 | overflow: hidden;
47 | text-overflow: ellipsis;
48 | white-space: nowrap;
49 |
50 | b{
51 | color: #ff2121;
52 | }
53 | }
54 | .video-info{
55 | position: relative;
56 | font-size: 12px;
57 |
58 | .video-nickname{
59 | width: 200px;
60 | margin-left: 5px;
61 | padding-left: 12px;
62 | background: url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0px no-repeat;
63 | color: #787878;
64 | overflow: hidden;
65 | text-overflow: ellipsis;
66 | white-space: nowrap;
67 | }
68 | .video-number{
69 | position: absolute;
70 | padding-left: 17px;
71 | top: 0;
72 | right: 5px;
73 | background: url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;
74 | color: #787878;
75 | }
76 | .video-cate{
77 | position: absolute;
78 | right: 5px;
79 | top: -17px;
80 | width: 48px;
81 | color: #00a0ff;
82 | overflow: hidden;
83 | text-align: right;
84 | //text-overflow: ellipsis;
85 | white-space: nowrap;
86 | }
87 | }
88 |
89 | .load-more{
90 | position: absolute;
91 | top: 0;
92 | left: 0;
93 | right: 0;
94 | bottom: 0;
95 | width: 100px;
96 | margin: auto;
97 | height: 30px;
98 | text-align: center;
99 | }
100 | }
101 |
102 | }
--------------------------------------------------------------------------------
/client/states/search/bili/style.less:
--------------------------------------------------------------------------------
1 | .content.bili{
2 | padding-top: .2rem;
3 | padding-bottom: 3rem;
4 |
5 | .video-box{
6 | width: 48%;
7 | margin-left: 1%;
8 | margin-right: 1%;
9 | margin-bottom: 8px;
10 | padding-bottom: 5px;
11 | position: relative;
12 | background: #fff;
13 | box-shadow: 0 0.05rem 0.1rem rgba(0, 0, 0, 0.3);
14 | border-radius: 4px;
15 |
16 | .video-tag{
17 | display: inline-block;
18 | position: absolute;
19 | top: 14px;
20 | width: 50px;
21 | height: 22px;
22 | font-size: 15px;
23 | line-height: 22px;
24 | color: #fff;
25 | text-align: center;
26 | z-index: 1;
27 |
28 | &.video-tag-online{
29 | background-color: #00a0ff;
30 | }
31 | }
32 | .video-img{
33 | position: relative;
34 | width: 100%;
35 | padding-bottom: 56.8%;
36 | overflow: hidden;
37 |
38 | img{
39 | width: 100%;position: absolute;
40 | border-radius: 4px 4px 0 0;
41 | }
42 | }
43 |
44 | .video-avatar{
45 | position: absolute;
46 | width: 2rem;
47 | height: 2rem;
48 | bottom: 1rem;
49 | left: .3rem;
50 | img{
51 | width: 100%;
52 | height: 100%;
53 | border-radius: 50%;
54 | border: 2px solid #fff;
55 | }
56 | }
57 | .video-title{
58 | max-width: 95%;
59 | padding-left: 30%;
60 | font-size: 12px;
61 | overflow: hidden;
62 | text-overflow: ellipsis;
63 | white-space: nowrap;
64 |
65 | b{
66 | color: #ff2121;
67 | }
68 | }
69 | .video-info{
70 | position: relative;
71 | font-size: 12px;
72 |
73 | .video-nickname{
74 | width: 200px;
75 | margin-left: 5px;
76 | padding-left: 12px;
77 | background: url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0px no-repeat;
78 | color: #787878;
79 | overflow: hidden;
80 | text-overflow: ellipsis;
81 | white-space: nowrap;
82 | }
83 | .video-number{
84 | position: absolute;
85 | padding-left: 17px;
86 | top: 0;
87 | right: 5px;
88 | background: url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;
89 | color: #787878;
90 | }
91 | .video-cate{
92 | position: absolute;
93 | right: 5px;
94 | top: -17px;
95 | width: 48px;
96 | color: #00a0ff;
97 | overflow: hidden;
98 | text-align: right;
99 | //text-overflow: ellipsis;
100 | white-space: nowrap;
101 | }
102 | }
103 |
104 | .load-more{
105 | position: absolute;
106 | top: 0;
107 | left: 0;
108 | right: 0;
109 | bottom: 0;
110 | width: 100px;
111 | margin: auto;
112 | height: 30px;
113 | text-align: center;
114 | }
115 | }
116 |
117 | }
--------------------------------------------------------------------------------
/client/lib/cm-plugin.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | import config from '../../env'
3 |
4 | var MyPlugin = {};
5 | MyPlugin.install = function (Vue, option) {
6 |
7 | // 设置cookie
8 | Vue.cookie = function (key, value, options) {
9 | var days, time, result, decode;
10 |
11 | if (arguments.length > 1 && String(value) !== "[object Object]") {
12 | // Enforce object
13 | options = $.extend({}, options)
14 |
15 | if (value === null || value === undefined) options.expires = -1
16 |
17 | if (typeof options.expires === 'number') {
18 | days = (options.expires * 24 * 60 * 60 * 1000)
19 | time = options.expires = new Date()
20 |
21 | time.setTime(time.getTime() + days)
22 | }
23 |
24 | value = String(value)
25 |
26 | return (document.cookie = [
27 | encodeURIComponent(key), '=',
28 | options.raw ? value : encodeURIComponent(value),
29 | options.expires ? '; expires=' + options.expires.toUTCString() : '',
30 | '; path=/',
31 | options.domain ? '; domain=' + options.domain : '',
32 | options.secure ? '; secure' : ''
33 | ].join(''))
34 | }
35 |
36 | // Key and possibly options given, get cookie
37 | options = value || {}
38 |
39 | decode = options.raw ? function (s) { return s } : decodeURIComponent
40 |
41 | return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null
42 | };
43 |
44 |
45 | // 根据浏览器环境 前往登录页
46 | Vue.prototype.goLoginPage = function(_this,webapp_path){
47 | if($.device.isWeixin){
48 | window.location.href = config.formatWeixinUrl('/webapp'+webapp_path);
49 | }else{
50 | _this.$router.go('/webapp/login')
51 | }
52 | };
53 |
54 | // 根据环境去往聊天页面
55 | Vue.prototype.goChatUrl = function(_this){
56 | let userInfo = $.localStorage.getItem('webapp_userInfo');
57 | if(userInfo){
58 | _this.$router.go('/webapp/chat')
59 | }else{
60 | if($.device.isWeixin){
61 | window.location.href = config.formatWeixinUrl('/webapp/chat');
62 | }else{
63 | _this.$router.go('/webapp/login')
64 | }
65 | }
66 | };
67 |
68 | // 返回上一页
69 | Vue.prototype.goBack = function(_this){
70 | let path;
71 | try{
72 | path = _this.$router._currentTransition.from.path;
73 | if(path){
74 | window.history.back();
75 | }else{
76 | _this.$router.replace('/')
77 | }
78 | }catch (e){
79 | _this.$router.replace('/')
80 | }
81 | };
82 |
83 | // 前往路由页面
84 | Vue.prototype.goRoute = function(route,_this){
85 | _this.$router.go(route);
86 | };
87 |
88 | //是否显示顶部标题栏 在服务端设置
89 | Vue.prototype.showTopBar = window.showTopBar;
90 |
91 |
92 | // 判断设备环境
93 | let ua = navigator.userAgent;
94 | let czl_webview = ua.match(/ChezhilWebview/);
95 | Vue.prototype.czl_webview = !!czl_webview;
96 | Vue.prototype.$device = function(key){
97 | return $.device[key];
98 | };
99 |
100 | // 简单封装本地存储
101 | $.localStorage = {
102 | getItem : function(key){
103 | if (typeof localStorage === 'object') {
104 | try {
105 | return JSON.parse(localStorage.getItem(key));
106 | } catch (e) {
107 | alert('本站无痕浏览模式,请关闭后再试!');
108 | }
109 | }
110 | },
111 | setItem : function(key,value){
112 | if (typeof localStorage === 'object') {
113 | try {
114 | return localStorage.setItem(key,JSON.stringify(value));
115 | } catch (e) {
116 | alert('请关闭[无痕浏览]模式后再试!');
117 | }
118 | }
119 | },
120 | removeItem : function(key){
121 | if (typeof localStorage === 'object') {
122 | try {
123 | return localStorage.removeItem(key);
124 | } catch (e) {
125 | alert('请关闭[无痕浏览]模式后再试!');
126 | }
127 | }
128 | },
129 | getUseSize : function(){
130 | if (typeof localStorage === 'object') {
131 | try {
132 | return JSON.stringify(localStorage).length;
133 | } catch (e) {
134 | alert('请关闭[无痕浏览]模式后再试!');
135 | }
136 | }
137 | }
138 | };
139 |
140 | //保存和删除用户信息
141 | $.saveUserInfo = function(data){
142 | if(data){
143 | $.localStorage.setItem('webapp_userInfo',data);
144 | }else{
145 | $.localStorage.removeItem('webapp_userInfo');
146 | }
147 | if(data && data.car && data.car.type_id > 0){
148 | let myCar = {
149 | brand_id : data.car.brand_id,
150 | brand_name : data.car.brand_name,
151 | series_id : data.car.series_id,
152 | series_name : data.car.series_name,
153 | type_id : data.car.type_id,
154 | type_name : data.car.type_name,
155 | }
156 | $.localStorage.setItem('myCar',myCar);
157 | }else{
158 | $.localStorage.removeItem('myCar');
159 | }
160 | }
161 |
162 | //全局ajax设置
163 | $.ajaxSettings.timeout = 20e3;
164 | $.ajaxSettings.beforeSend = function(xhr,settings){
165 | xhr.setRequestHeader('Accept','application/json, text/javascript, */*; q=0.01')
166 | xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
167 | }
168 | $.ajaxSettings.complete = function(xhr, status){
169 | //console.log('status=',status)
170 | if(status == 'abort'){
171 | $.toast('请求失败');
172 | }else if(status == 'timeout'){
173 | $.toast('请求超时');
174 | }else if(status == 'error'){
175 | try {
176 | let error = JSON.parse(xhr.responseText);
177 | $.toast(error.message);
178 | }catch(e){
179 | $.toast('服务器错误');
180 | }
181 | }
182 | };
183 |
184 | Date.prototype.Format = function (fmt) { //author: meizz
185 | var o = {
186 | "M+": this.getMonth() + 1, //月份
187 | "d+": this.getDate(), //日
188 | "H+": this.getHours(), //小时
189 | "m+": this.getMinutes(), //分
190 | "s+": this.getSeconds(), //秒
191 | "q+": Math.floor((this.getMonth() + 3) / 3), //季度
192 | "S": this.getMilliseconds() //毫秒
193 | };
194 | if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
195 | for (var k in o)
196 | if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
197 | return fmt;
198 | }
199 |
200 | };
201 | export default MyPlugin;
--------------------------------------------------------------------------------
/public/liveSearch/styles.3810b05e.css:
--------------------------------------------------------------------------------
1 | .video-box-transition{-webkit-transition:all .5s ease;transition:all .5s ease;-webkit-animation:bounceIn 1s .2s ease both;-moz-animation:bounceIn 1s .2s ease both}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05)}70%{-webkit-transform:scale(.9)}to{-webkit-transform:scale(1)}}.page.index{background:-webkit-linear-gradient(135deg,#76cdff,#50e4c8,#ffd13b,#f38648,#ff290d);background:linear-gradient(-45deg,#76cdff,#50e4c8,#ffd13b,#f38648,#ff290d)}.page.index svg{overflow:visible}.page.index .search{position:absolute;top:30%;left:5%;width:90%;height:5rem}.page.index .search:not(.active){cursor:pointer}.page.index .search-svg{position:absolute;top:0;left:0;width:100%;height:100%}.page.index .search-svg__path{fill:none;stroke:#fff;stroke-width:6px}.page.index .search-input{position:relative;width:80%;padding:1rem 0 0 1.5rem;background:transparent;outline:none;border:none;font-size:2rem;color:#fff;z-index:-1;opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.page.index .search-input.visible{z-index:auto;opacity:1}.page.index .search-close{position:absolute;top:.8rem;right:4%;width:2rem;height:2rem;cursor:pointer;z-index:-1}.page.index .search-close.visible{z-index:auto}.page.index .search-close.visible:before{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:1;-webkit-transition:opacity .1s,-webkit-transform .2s cubic-bezier(.73,.14,.4,1.58);transition:opacity .1s,-webkit-transform .2s cubic-bezier(.73,.14,.4,1.58);transition:transform .2s cubic-bezier(.73,.14,.4,1.58),opacity .1s;transition:transform .2s cubic-bezier(.73,.14,.4,1.58),opacity .1s,-webkit-transform .2s cubic-bezier(.73,.14,.4,1.58)}.page.index .search-close.visible:after{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:1;-webkit-transition:opacity .1s .2s,-webkit-transform .2s cubic-bezier(.73,.14,.4,1.58) .2s;transition:opacity .1s .2s,-webkit-transform .2s cubic-bezier(.73,.14,.4,1.58) .2s;transition:transform .2s cubic-bezier(.73,.14,.4,1.58) .2s,opacity .1s .2s;transition:transform .2s cubic-bezier(.73,.14,.4,1.58) .2s,opacity .1s .2s,-webkit-transform .2s cubic-bezier(.73,.14,.4,1.58) .2s}.page.index .search-close:after,.page.index .search-close:before{content:"";position:absolute;top:1.2rem;left:0;width:100%;height:.3rem;background:#fff;border-radius:.5rem;opacity:0}.page.index .search-close:before{-webkit-transform:rotate(-45deg) translateX(2rem);transform:rotate(-45deg) translateX(2rem);-webkit-transition:opacity .1s .1s,-webkit-transform .2s;transition:opacity .1s .1s,-webkit-transform .2s;transition:transform .2s,opacity .1s .1s;transition:transform .2s,opacity .1s .1s,-webkit-transform .2s}.page.index .search-close:after{-webkit-transform:rotate(45deg) translateX(2rem);transform:rotate(45deg) translateX(2rem);-webkit-transition:opacity .1s .3s,-webkit-transform .2s .2s;transition:opacity .1s .3s,-webkit-transform .2s .2s;transition:transform .2s .2s,opacity .1s .3s;transition:transform .2s .2s,opacity .1s .3s,-webkit-transform .2s .2s}.page.search .bar.bar-nav{top:.5rem;background:transparent}.page.search .bar.bar-nav:after{-webkit-transform:scaleY(0);transform:scaleY(0)}.page.search .bar.bar-nav .icon.icon-left{width:2.2rem;height:2.2rem;text-align:center;color:#000;background:hsla(0,0%,100%,.8);border-radius:50%}.page.search .content{top:0}.page.search .tab-item{background-size:80%;background-repeat:no-repeat;background-position:50%;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);filter:grayscale(100%)}.page.search .tab-item span{visibility:hidden}.page.search .tab-item.panda{background-image:url("http://i5.pdim.gs/06b000f296eb5f4f2a16e9e012cfcf7e.png")}.page.search .tab-item.huya{background-image:url("http://a.dwstatic.com/huya/main/img/logo_index_new09_4217d25.png")}.page.search .tab-item.douyu{background-image:url("http://shark.douyucdn.cn/app/douyu/res/com/logo.png?20160303")}.page.search .tab-item.bili{background-image:url(data:image/png;base64,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)}.page.search .tab-item.zhanqi{background-image:url("http://dlstatic.cdn.zhanqi.tv/assets/web/static/i/logo-6.png")}.page.search .tab-item.active{-webkit-filter:grayscale(0);-moz-filter:grayscale(0);filter:grayscale(0)}.page.search .bar.bar-tab{background-color:hsla(0,0%,100%,.9)}.content.panda{padding-top:.2rem;padding-bottom:3rem}.content.panda .video-box{width:48%;margin-left:1%;margin-right:1%;margin-bottom:8px;padding-bottom:5px;position:relative;background:#fff;box-shadow:0 .05rem .1rem rgba(0,0,0,.3)}.content.panda .video-box .video-tag{display:inline-block;position:absolute;top:14px;width:50px;height:22px;font-size:15px;line-height:22px;color:#fff;text-align:center;z-index:1}.content.panda .video-box .video-tag.video-tag-online{background-color:#00a0ff}.content.panda .video-box .video-img{position:relative;width:100%;padding-bottom:56.8%;overflow:hidden}.content.panda .video-box .video-img img{width:100%;position:absolute}.content.panda .video-box .video-title{max-width:70%;padding-left:5px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.panda .video-box .video-title b{color:#ff2121}.content.panda .video-box .video-info{position:relative;font-size:12px}.content.panda .video-box .video-info .video-nickname{width:200px;margin-left:5px;padding-left:12px;background:url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0 no-repeat;color:#787878;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.panda .video-box .video-info .video-number{position:absolute;padding-left:17px;top:0;right:5px;background:url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;color:#787878}.content.panda .video-box .video-info .video-cate{position:absolute;right:5px;top:-17px;width:48px;color:#00a0ff;overflow:hidden;text-align:right;white-space:nowrap}.content.panda .video-box .load-more{position:absolute;top:0;left:0;right:0;bottom:0;width:100px;margin:auto;height:30px;text-align:center}.content.huya{padding-top:.2rem;padding-bottom:3rem}.content.huya .video-box{width:48%;margin-left:1%;margin-right:1%;margin-bottom:8px;padding-bottom:5px;position:relative;background:#fff;box-shadow:0 .05rem .1rem rgba(0,0,0,.3)}.content.huya .video-box .video-tag{display:inline-block;position:absolute;top:14px;width:50px;height:22px;font-size:15px;line-height:22px;color:#fff;text-align:center;z-index:1}.content.huya .video-box .video-tag.video-tag-online{background-color:#00a0ff}.content.huya .video-box .video-img{position:relative;width:100%;padding-bottom:56.8%;overflow:hidden}.content.huya .video-box .video-img img{width:100%;position:absolute}.content.huya .video-box .video-title{max-width:70%;padding-left:5px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.huya .video-box .video-title b{color:#ff2121}.content.huya .video-box .video-info{position:relative;font-size:12px}.content.huya .video-box .video-info .video-nickname{width:200px;margin-left:5px;padding-left:12px;background:url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0 no-repeat;color:#787878;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.huya .video-box .video-info .video-number{position:absolute;padding-left:17px;top:0;right:5px;background:url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;color:#787878}.content.huya .video-box .video-info .video-cate{position:absolute;right:5px;top:-17px;width:48px;color:#00a0ff;overflow:hidden;text-align:right;white-space:nowrap}.content.huya .video-box .load-more{position:absolute;top:0;left:0;right:0;bottom:0;width:100px;margin:auto;height:30px;text-align:center}.content.douyu{padding-top:.2rem;padding-bottom:3rem}.content.douyu .video-box{width:48%;margin-left:1%;margin-right:1%;margin-bottom:8px;padding-bottom:5px;position:relative;background:#fff;box-shadow:0 .05rem .1rem rgba(0,0,0,.3)}.content.douyu .video-box .video-tag{display:inline-block;position:absolute;top:14px;width:50px;height:22px;font-size:15px;line-height:22px;color:#fff;text-align:center;z-index:1}.content.douyu .video-box .video-tag.video-tag-online{background-color:#00a0ff}.content.douyu .video-box .video-img{position:relative;width:100%;padding-bottom:56.8%;overflow:hidden}.content.douyu .video-box .video-img img{width:100%;position:absolute}.content.douyu .video-box .video-title{max-width:70%;padding-left:5px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.douyu .video-box .video-title b{color:#ff2121}.content.douyu .video-box .video-info{position:relative;font-size:12px}.content.douyu .video-box .video-info .video-nickname{width:200px;margin-left:5px;padding-left:12px;background:url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0 no-repeat;color:#787878;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.douyu .video-box .video-info .video-number{position:absolute;padding-left:17px;top:0;right:5px;background:url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;color:#787878}.content.douyu .video-box .video-info .video-cate{position:absolute;right:5px;top:-17px;width:48px;color:#00a0ff;overflow:hidden;text-align:right;white-space:nowrap}.content.douyu .video-box .load-more{position:absolute;top:0;left:0;right:0;bottom:0;width:100px;margin:auto;height:30px;text-align:center}.content.bili{padding-top:.2rem;padding-bottom:3rem}.content.bili .video-box{width:48%;margin-left:1%;margin-right:1%;margin-bottom:8px;padding-bottom:5px;position:relative;background:#fff;box-shadow:0 .05rem .1rem rgba(0,0,0,.3);border-radius:4px}.content.bili .video-box .video-tag{display:inline-block;position:absolute;top:14px;width:50px;height:22px;font-size:15px;line-height:22px;color:#fff;text-align:center;z-index:1}.content.bili .video-box .video-tag.video-tag-online{background-color:#00a0ff}.content.bili .video-box .video-img{position:relative;width:100%;padding-bottom:56.8%;overflow:hidden}.content.bili .video-box .video-img img{width:100%;position:absolute;border-radius:4px 4px 0 0}.content.bili .video-box .video-avatar{position:absolute;width:2rem;height:2rem;bottom:1rem;left:.3rem}.content.bili .video-box .video-avatar img{width:100%;height:100%;border-radius:50%;border:2px solid #fff}.content.bili .video-box .video-title{max-width:95%;padding-left:30%;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.bili .video-box .video-title b{color:#ff2121}.content.bili .video-box .video-info{position:relative;font-size:12px}.content.bili .video-box .video-info .video-nickname{width:200px;margin-left:5px;padding-left:12px;background:url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0 no-repeat;color:#787878;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.bili .video-box .video-info .video-number{position:absolute;padding-left:17px;top:0;right:5px;background:url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;color:#787878}.content.bili .video-box .video-info .video-cate{position:absolute;right:5px;top:-17px;width:48px;color:#00a0ff;overflow:hidden;text-align:right;white-space:nowrap}.content.bili .video-box .load-more{position:absolute;top:0;left:0;right:0;bottom:0;width:100px;margin:auto;height:30px;text-align:center}.content.zhanqi{padding-top:.2rem;padding-bottom:3rem}.content.zhanqi .video-box{width:48%;margin-left:1%;margin-right:1%;margin-bottom:8px;padding-bottom:5px;position:relative;background:#fff;box-shadow:0 .05rem .1rem rgba(0,0,0,.3)}.content.zhanqi .video-box .video-tag{display:inline-block;position:absolute;top:14px;width:50px;height:22px;font-size:15px;line-height:22px;color:#fff;text-align:center;z-index:1}.content.zhanqi .video-box .video-tag.video-tag-online{background-color:#00a0ff}.content.zhanqi .video-box .video-img{position:relative;width:100%;padding-bottom:56.8%;overflow:hidden}.content.zhanqi .video-box .video-img img{width:100%;position:absolute}.content.zhanqi .video-box .video-title{max-width:70%;padding-left:5px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.zhanqi .video-box .video-title b{color:#ff2121}.content.zhanqi .video-box .video-info{position:relative;font-size:12px}.content.zhanqi .video-box .video-info .video-nickname{width:200px;margin-left:5px;padding-left:12px;background:url("http://i8.pdim.gs/215adf54fcfe0cc52e924a670373eca2.png") 0 0 no-repeat;color:#787878;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content.zhanqi .video-box .video-info .video-number{position:absolute;padding-left:17px;top:0;right:5px;background:url("http://i9.pdim.gs/5e2630d66e51d54abb59f49198fa5dd1.png") 0 3px no-repeat;color:#787878}.content.zhanqi .video-box .video-info .video-cate{position:absolute;right:5px;top:-17px;width:48px;color:#00a0ff;overflow:hidden;text-align:right;white-space:nowrap}.content.zhanqi .video-box .load-more{position:absolute;top:0;left:0;right:0;bottom:0;width:100px;margin:auto;height:30px;text-align:center}.page.video .bar.bar-nav{top:.5rem;background:transparent}.page.video .bar.bar-nav:after{-webkit-transform:scaleY(0);transform:scaleY(0)}.page.video .bar.bar-nav .icon.icon-left{width:2.2rem;height:2.2rem;text-align:center;color:#fff;background:rgba(0,0,0,.5);border-radius:50%}.page.video iframe{border:0}
2 | /*# sourceMappingURL=styles.3810b05e.css.map*/
--------------------------------------------------------------------------------