├── .babelrc
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── README.md
├── build
├── build.js
├── check-versions.js
├── logo.png
├── utils.js
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
└── prod.env.js
├── favicon.ico
├── index.html
├── package-lock.json
├── package.json
├── src
├── App.vue
├── assets
│ ├── css
│ │ ├── animate.css
│ │ ├── base.css
│ │ ├── iconfont.css
│ │ └── weui.min.css
│ └── image
│ │ ├── book.png
│ │ ├── chat-info-qr.png
│ │ ├── contact_add-friend-addgroup.png
│ │ ├── contact_add-friend-contacts.png
│ │ ├── contact_add-friend-my-qr.png
│ │ ├── contact_add-friend-offical.png
│ │ ├── contact_add-friend-reda.png
│ │ ├── contact_add-friend-scanqr.png
│ │ ├── contact_female.png
│ │ ├── contact_male.png
│ │ ├── contact_top-addgroup.png
│ │ ├── contact_top-friend-notify.png
│ │ ├── contact_top-offical.png
│ │ ├── contact_top-tag.png
│ │ ├── find-album-reflash-icon.png
│ │ ├── find_icon-bottle.png
│ │ ├── find_icon-circle.png
│ │ ├── find_icon-locationservice.png
│ │ ├── find_icon-moregame.png
│ │ ├── find_icon-qrcode.png
│ │ ├── find_icon-shake.png
│ │ ├── find_icon-shopping.png
│ │ ├── me_more-expression.png
│ │ ├── me_more-my-album.png
│ │ ├── me_more-my-bank-card.png
│ │ ├── me_more-my-favorites.png
│ │ ├── me_more-setting.png
│ │ ├── me_my-card-package-icon.png
│ │ ├── mht.jpg
│ │ ├── mybackground.jpg
│ │ ├── myqr.png
│ │ ├── rico.png
│ │ ├── rzf.jpg
│ │ ├── timg.png
│ │ ├── tyx.jpg
│ │ ├── yyx.jpg
│ │ └── zxl.jpg
├── components
│ ├── common
│ │ ├── vfooter.vue
│ │ ├── vheader.vue
│ │ └── vsearch.vue
│ ├── pages
│ │ ├── albums.vue
│ │ ├── chatview.vue
│ │ ├── details.vue
│ │ ├── moments.vue
│ │ ├── myprofile.vue
│ │ ├── myqr.vue
│ │ ├── personalheader.vue
│ │ ├── photo.vue
│ │ └── settings.vue
│ ├── vcontact.vue
│ ├── vdialogue.vue
│ ├── vexplore.vue
│ └── vme.vue
├── main.js
├── router
│ └── index.js
└── vuex
│ └── store.js
└── static
├── .gitkeep
└── data.json
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-vue-jsx", "transform-runtime"]
12 | }
13 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | /dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | "postcss-import": {},
6 | "postcss-url": {},
7 | // to edit target browsers: use "browserslist" field in package.json
8 | "autoprefixer": {}
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### 起因
2 | 看过一遍Vue.js文档后,想做点什么,于是挑了微信作为目标
3 | ### 技术
4 | 技术上用的基础的Vue router和axios等等全家桶,实现了几乎全部界面。
5 | ### 界面
6 | ![请输入图片描述][1]
7 | ![请输入图片描述][2]
8 | ![请输入图片描述][3]
9 | ![请输入图片描述][4]
10 | ### 在线演示地址
11 | [微信](http://www.ricofishing.com)
12 | [Github地址](https://github.com/RicardoCao-Biker/vue-wechat)
13 |
14 | [1]: http://39.107.107.62/vuenote/vuewechat1.jpg
15 | [2]: http://39.107.107.62/vuenote/vuewechat2.jpg
16 | [3]: http://39.107.107.62/vuenote/vuewechat3.jpg
17 | [4]: http://39.107.107.62/vuenote/vuewechat4.jpg
18 |
19 | ### Build Setup
20 |
21 | ``` bash
22 | # install dependencies
23 | npm install
24 |
25 | # serve with hot reload at localhost:8080
26 | npm run dev
27 |
28 | # build for production with minification
29 | npm run build
30 |
31 | # build for production and view the bundle analyzer report
32 | npm run build --report
33 | ```
34 |
35 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
36 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | require('./check-versions')()
3 |
4 | process.env.NODE_ENV = 'production'
5 |
6 | const ora = require('ora')
7 | const rm = require('rimraf')
8 | const path = require('path')
9 | const chalk = require('chalk')
10 | const webpack = require('webpack')
11 | const config = require('../config')
12 | const webpackConfig = require('./webpack.prod.conf')
13 |
14 | const spinner = ora('building for production...')
15 | spinner.start()
16 |
17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18 | if (err) throw err
19 | webpack(webpackConfig, (err, stats) => {
20 | spinner.stop()
21 | if (err) throw err
22 | process.stdout.write(stats.toString({
23 | colors: true,
24 | modules: false,
25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
26 | chunks: false,
27 | chunkModules: false
28 | }) + '\n\n')
29 |
30 | if (stats.hasErrors()) {
31 | console.log(chalk.red(' Build failed with errors.\n'))
32 | process.exit(1)
33 | }
34 |
35 | console.log(chalk.cyan(' Build complete.\n'))
36 | console.log(chalk.yellow(
37 | ' Tip: built files are meant to be served over an HTTP server.\n' +
38 | ' Opening index.html over file:// won\'t work.\n'
39 | ))
40 | })
41 | })
42 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const chalk = require('chalk')
3 | const semver = require('semver')
4 | const packageConfig = require('../package.json')
5 | const shell = require('shelljs')
6 |
7 | function exec (cmd) {
8 | return require('child_process').execSync(cmd).toString().trim()
9 | }
10 |
11 | const versionRequirements = [
12 | {
13 | name: 'node',
14 | currentVersion: semver.clean(process.version),
15 | versionRequirement: packageConfig.engines.node
16 | }
17 | ]
18 |
19 | if (shell.which('npm')) {
20 | versionRequirements.push({
21 | name: 'npm',
22 | currentVersion: exec('npm --version'),
23 | versionRequirement: packageConfig.engines.npm
24 | })
25 | }
26 |
27 | module.exports = function () {
28 | const warnings = []
29 |
30 | for (let i = 0; i < versionRequirements.length; i++) {
31 | const mod = versionRequirements[i]
32 |
33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
34 | warnings.push(mod.name + ': ' +
35 | chalk.red(mod.currentVersion) + ' should be ' +
36 | chalk.green(mod.versionRequirement)
37 | )
38 | }
39 | }
40 |
41 | if (warnings.length) {
42 | console.log('')
43 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
44 | console.log()
45 |
46 | for (let i = 0; i < warnings.length; i++) {
47 | const warning = warnings[i]
48 | console.log(' ' + warning)
49 | }
50 |
51 | console.log()
52 | process.exit(1)
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/build/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/build/logo.png
--------------------------------------------------------------------------------
/build/utils.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const config = require('../config')
4 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
5 | const packageConfig = require('../package.json')
6 |
7 | exports.assetsPath = function (_path) {
8 | const assetsSubDirectory = process.env.NODE_ENV === 'production'
9 | ? config.build.assetsSubDirectory
10 | : config.dev.assetsSubDirectory
11 |
12 | return path.posix.join(assetsSubDirectory, _path)
13 | }
14 |
15 | exports.cssLoaders = function (options) {
16 | options = options || {}
17 |
18 | const cssLoader = {
19 | loader: 'css-loader',
20 | options: {
21 | sourceMap: options.sourceMap
22 | }
23 | }
24 |
25 | const postcssLoader = {
26 | loader: 'postcss-loader',
27 | options: {
28 | sourceMap: options.sourceMap
29 | }
30 | }
31 |
32 | // generate loader string to be used with extract text plugin
33 | function generateLoaders (loader, loaderOptions) {
34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
35 |
36 | if (loader) {
37 | loaders.push({
38 | loader: loader + '-loader',
39 | options: Object.assign({}, loaderOptions, {
40 | sourceMap: options.sourceMap
41 | })
42 | })
43 | }
44 |
45 | // Extract CSS when that option is specified
46 | // (which is the case during production build)
47 | if (options.extract) {
48 | return ExtractTextPlugin.extract({
49 | use: loaders,
50 | fallback: 'vue-style-loader'
51 | })
52 | } else {
53 | return ['vue-style-loader'].concat(loaders)
54 | }
55 | }
56 |
57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
58 | return {
59 | css: generateLoaders(),
60 | postcss: generateLoaders(),
61 | less: generateLoaders('less'),
62 | sass: generateLoaders('sass', { indentedSyntax: true }),
63 | scss: generateLoaders('sass'),
64 | stylus: generateLoaders('stylus'),
65 | styl: generateLoaders('stylus')
66 | }
67 | }
68 |
69 | // Generate loaders for standalone style files (outside of .vue)
70 | exports.styleLoaders = function (options) {
71 | const output = []
72 | const loaders = exports.cssLoaders(options)
73 |
74 | for (const extension in loaders) {
75 | const loader = loaders[extension]
76 | output.push({
77 | test: new RegExp('\\.' + extension + '$'),
78 | use: loader
79 | })
80 | }
81 |
82 | return output
83 | }
84 |
85 | exports.createNotifierCallback = () => {
86 | const notifier = require('node-notifier')
87 |
88 | return (severity, errors) => {
89 | if (severity !== 'error') return
90 |
91 | const error = errors[0]
92 | const filename = error.file && error.file.split('!').pop()
93 |
94 | notifier.notify({
95 | title: packageConfig.name,
96 | message: severity + ': ' + error.name,
97 | subtitle: filename || '',
98 | icon: path.join(__dirname, 'logo.png')
99 | })
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const config = require('../config')
4 | const isProduction = process.env.NODE_ENV === 'production'
5 | const sourceMapEnabled = isProduction
6 | ? config.build.productionSourceMap
7 | : config.dev.cssSourceMap
8 |
9 | module.exports = {
10 | loaders: utils.cssLoaders({
11 | sourceMap: sourceMapEnabled,
12 | extract: isProduction
13 | }),
14 | cssSourceMap: sourceMapEnabled,
15 | cacheBusting: config.dev.cacheBusting,
16 | transformToRequire: {
17 | video: ['src', 'poster'],
18 | source: 'src',
19 | img: 'src',
20 | image: 'xlink:href'
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const utils = require('./utils')
4 | const config = require('../config')
5 | const vueLoaderConfig = require('./vue-loader.conf')
6 |
7 | function resolve (dir) {
8 | return path.join(__dirname, '..', dir)
9 | }
10 |
11 |
12 |
13 | module.exports = {
14 | context: path.resolve(__dirname, '../'),
15 | entry: {
16 | app: './src/main.js'
17 | },
18 | output: {
19 | path: config.build.assetsRoot,
20 | filename: '[name].js',
21 | publicPath: process.env.NODE_ENV === 'production'
22 | ? config.build.assetsPublicPath
23 | : config.dev.assetsPublicPath
24 | },
25 | resolve: {
26 | extensions: ['.js', '.vue', '.json'],
27 | alias: {
28 | 'vue$': 'vue/dist/vue.esm.js',
29 | '@': resolve('src'),
30 | }
31 | },
32 | module: {
33 | rules: [
34 | {
35 | test: /\.vue$/,
36 | loader: 'vue-loader',
37 | options: vueLoaderConfig
38 | },
39 | {
40 | test: /\.js$/,
41 | loader: 'babel-loader',
42 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
43 | },
44 | {
45 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
46 | loader: 'url-loader',
47 | options: {
48 | limit: 10000,
49 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
50 | }
51 | },
52 | {
53 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
54 | loader: 'url-loader',
55 | options: {
56 | limit: 10000,
57 | name: utils.assetsPath('media/[name].[hash:7].[ext]')
58 | }
59 | },
60 | {
61 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
62 | loader: 'url-loader',
63 | options: {
64 | limit: 10000,
65 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
66 | }
67 | }
68 | ]
69 | },
70 | node: {
71 | // prevent webpack from injecting useless setImmediate polyfill because Vue
72 | // source contains it (although only uses it if it's native).
73 | setImmediate: false,
74 | // prevent webpack from injecting mocks to Node native modules
75 | // that does not make sense for the client
76 | dgram: 'empty',
77 | fs: 'empty',
78 | net: 'empty',
79 | tls: 'empty',
80 | child_process: 'empty'
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const webpack = require('webpack')
4 | const config = require('../config')
5 | const merge = require('webpack-merge')
6 | const path = require('path')
7 | const baseWebpackConfig = require('./webpack.base.conf')
8 | const CopyWebpackPlugin = require('copy-webpack-plugin')
9 | const HtmlWebpackPlugin = require('html-webpack-plugin')
10 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
11 | const portfinder = require('portfinder')
12 |
13 | const HOST = process.env.HOST
14 | const PORT = process.env.PORT && Number(process.env.PORT)
15 |
16 | const devWebpackConfig = merge(baseWebpackConfig, {
17 | module: {
18 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
19 | },
20 | // cheap-module-eval-source-map is faster for development
21 | devtool: config.dev.devtool,
22 |
23 | // these devServer options should be customized in /config/index.js
24 | devServer: {
25 | clientLogLevel: 'warning',
26 | historyApiFallback: {
27 | rewrites: [
28 | { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
29 | ],
30 | },
31 | hot: true,
32 | contentBase: false, // since we use CopyWebpackPlugin.
33 | compress: true,
34 | host: HOST || config.dev.host,
35 | port: PORT || config.dev.port,
36 | open: config.dev.autoOpenBrowser,
37 | overlay: config.dev.errorOverlay
38 | ? { warnings: false, errors: true }
39 | : false,
40 | publicPath: config.dev.assetsPublicPath,
41 | proxy: config.dev.proxyTable,
42 | quiet: true, // necessary for FriendlyErrorsPlugin
43 | watchOptions: {
44 | poll: config.dev.poll,
45 | }
46 | },
47 | plugins: [
48 | new webpack.DefinePlugin({
49 | 'process.env': require('../config/dev.env')
50 | }),
51 | new webpack.HotModuleReplacementPlugin(),
52 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
53 | new webpack.NoEmitOnErrorsPlugin(),
54 | // https://github.com/ampedandwired/html-webpack-plugin
55 | new HtmlWebpackPlugin({
56 | filename: 'index.html',
57 | template: 'index.html',
58 | inject: true
59 | }),
60 | // copy custom static assets
61 | new CopyWebpackPlugin([
62 | {
63 | from: path.resolve(__dirname, '../static'),
64 | to: config.dev.assetsSubDirectory,
65 | ignore: ['.*']
66 | }
67 | ])
68 | ]
69 | })
70 |
71 | module.exports = new Promise((resolve, reject) => {
72 | portfinder.basePort = process.env.PORT || config.dev.port
73 | portfinder.getPort((err, port) => {
74 | if (err) {
75 | reject(err)
76 | } else {
77 | // publish the new Port, necessary for e2e tests
78 | process.env.PORT = port
79 | // add port to devServer config
80 | devWebpackConfig.devServer.port = port
81 |
82 | // Add FriendlyErrorsPlugin
83 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
84 | compilationSuccessInfo: {
85 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
86 | },
87 | onErrors: config.dev.notifyOnErrors
88 | ? utils.createNotifierCallback()
89 | : undefined
90 | }))
91 |
92 | resolve(devWebpackConfig)
93 | }
94 | })
95 | })
96 |
--------------------------------------------------------------------------------
/build/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const utils = require('./utils')
4 | const webpack = require('webpack')
5 | const config = require('../config')
6 | const merge = require('webpack-merge')
7 | const baseWebpackConfig = require('./webpack.base.conf')
8 | const CopyWebpackPlugin = require('copy-webpack-plugin')
9 | const HtmlWebpackPlugin = require('html-webpack-plugin')
10 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
11 | const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
12 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
13 |
14 | const env = require('../config/prod.env')
15 |
16 | const webpackConfig = merge(baseWebpackConfig, {
17 | module: {
18 | rules: utils.styleLoaders({
19 | sourceMap: config.build.productionSourceMap,
20 | extract: true,
21 | usePostCSS: true
22 | })
23 | },
24 | devtool: config.build.productionSourceMap ? config.build.devtool : false,
25 | output: {
26 | path: config.build.assetsRoot,
27 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
28 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
29 | },
30 | plugins: [
31 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
32 | new webpack.DefinePlugin({
33 | 'process.env': env
34 | }),
35 | new UglifyJsPlugin({
36 | uglifyOptions: {
37 | compress: {
38 | warnings: false
39 | }
40 | },
41 | sourceMap: config.build.productionSourceMap,
42 | parallel: true
43 | }),
44 | // extract css into its own file
45 | new ExtractTextPlugin({
46 | filename: utils.assetsPath('css/[name].[contenthash].css'),
47 | // Setting the following option to `false` will not extract CSS from codesplit chunks.
48 | // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
49 | // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
50 | // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
51 | allChunks: true,
52 | }),
53 | // Compress extracted CSS. We are using this plugin so that possible
54 | // duplicated CSS from different components can be deduped.
55 | new OptimizeCSSPlugin({
56 | cssProcessorOptions: config.build.productionSourceMap
57 | ? { safe: true, map: { inline: false } }
58 | : { safe: true }
59 | }),
60 | // generate dist index.html with correct asset hash for caching.
61 | // you can customize output by editing /index.html
62 | // see https://github.com/ampedandwired/html-webpack-plugin
63 | new HtmlWebpackPlugin({
64 | filename: config.build.index,
65 | template: 'index.html',
66 | inject: true,
67 | minify: {
68 | removeComments: true,
69 | collapseWhitespace: true,
70 | removeAttributeQuotes: true
71 | // more options:
72 | // https://github.com/kangax/html-minifier#options-quick-reference
73 | },
74 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
75 | chunksSortMode: 'dependency'
76 | }),
77 | // keep module.id stable when vendor modules does not change
78 | new webpack.HashedModuleIdsPlugin(),
79 | // enable scope hoisting
80 | new webpack.optimize.ModuleConcatenationPlugin(),
81 | // split vendor js into its own file
82 | new webpack.optimize.CommonsChunkPlugin({
83 | name: 'vendor',
84 | minChunks (module) {
85 | // any required modules inside node_modules are extracted to vendor
86 | return (
87 | module.resource &&
88 | /\.js$/.test(module.resource) &&
89 | module.resource.indexOf(
90 | path.join(__dirname, '../node_modules')
91 | ) === 0
92 | )
93 | }
94 | }),
95 | // extract webpack runtime and module manifest to its own file in order to
96 | // prevent vendor hash from being updated whenever app bundle is updated
97 | new webpack.optimize.CommonsChunkPlugin({
98 | name: 'manifest',
99 | minChunks: Infinity
100 | }),
101 | // This instance extracts shared chunks from code splitted chunks and bundles them
102 | // in a separate chunk, similar to the vendor chunk
103 | // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
104 | new webpack.optimize.CommonsChunkPlugin({
105 | name: 'app',
106 | async: 'vendor-async',
107 | children: true,
108 | minChunks: 3
109 | }),
110 |
111 | // copy custom static assets
112 | new CopyWebpackPlugin([
113 | {
114 | from: path.resolve(__dirname, '../static'),
115 | to: config.build.assetsSubDirectory,
116 | ignore: ['.*']
117 | }
118 | ])
119 | ]
120 | })
121 |
122 | if (config.build.productionGzip) {
123 | const CompressionWebpackPlugin = require('compression-webpack-plugin')
124 |
125 | webpackConfig.plugins.push(
126 | new CompressionWebpackPlugin({
127 | asset: '[path].gz[query]',
128 | algorithm: 'gzip',
129 | test: new RegExp(
130 | '\\.(' +
131 | config.build.productionGzipExtensions.join('|') +
132 | ')$'
133 | ),
134 | threshold: 10240,
135 | minRatio: 0.8
136 | })
137 | )
138 | }
139 |
140 | if (config.build.bundleAnalyzerReport) {
141 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
142 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
143 | }
144 |
145 | module.exports = webpackConfig
146 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"'
7 | })
8 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | // Template version: 1.3.1
3 | // see http://vuejs-templates.github.io/webpack for documentation.
4 |
5 | const path = require('path')
6 |
7 | module.exports = {
8 | dev: {
9 |
10 | // Paths
11 | assetsSubDirectory: 'static',
12 | assetsPublicPath: '/',
13 | proxyTable: {},
14 |
15 | // Various Dev Server settings
16 | host: 'localhost', // can be overwritten by process.env.HOST
17 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
18 | autoOpenBrowser: false,
19 | errorOverlay: true,
20 | notifyOnErrors: true,
21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
22 |
23 |
24 | /**
25 | * Source Maps
26 | */
27 |
28 | // https://webpack.js.org/configuration/devtool/#development
29 | devtool: 'cheap-module-eval-source-map',
30 |
31 | // If you have problems debugging vue-files in devtools,
32 | // set this to false - it *may* help
33 | // https://vue-loader.vuejs.org/en/options.html#cachebusting
34 | cacheBusting: true,
35 |
36 | cssSourceMap: true
37 | },
38 |
39 | build: {
40 | // Template for index.html
41 | index: path.resolve(__dirname, '../dist/index.html'),
42 |
43 | // Paths
44 | assetsRoot: path.resolve(__dirname, '../dist'),
45 | assetsSubDirectory: 'static',
46 | assetsPublicPath: '/',
47 |
48 | /**
49 | * Source Maps
50 | */
51 |
52 | productionSourceMap: true,
53 | // https://webpack.js.org/configuration/devtool/#production
54 | devtool: '#source-map',
55 |
56 | // Gzip off by default as many popular static hosts such as
57 | // Surge or Netlify already gzip all static assets for you.
58 | // Before setting to `true`, make sure to:
59 | // npm install --save-dev compression-webpack-plugin
60 | productionGzip: false,
61 | productionGzipExtensions: ['js', 'css'],
62 |
63 | // Run the build command with an extra argument to
64 | // View the bundle analyzer report after build finishes:
65 | // `npm run build --report`
66 | // Set to `true` or `false` to always turn it on or off
67 | bundleAnalyzerReport: process.env.npm_config_report
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"'
4 | }
5 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/favicon.ico
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 微信
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-wechat",
3 | "version": "1.0.0",
4 | "description": "vue-wechat",
5 | "author": "rico",
6 | "private": true,
7 | "scripts": {
8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9 | "start": "npm run dev",
10 | "build": "node build/build.js"
11 | },
12 | "dependencies": {
13 | "vue": "^2.5.2",
14 | "vue-router": "^3.0.1",
15 | "vuex": "^3.0.1",
16 | "axios":"^0.18.0"
17 | },
18 | "devDependencies": {
19 | "autoprefixer": "^7.1.2",
20 | "babel-core": "^6.22.1",
21 | "babel-helper-vue-jsx-merge-props": "^2.0.3",
22 | "babel-loader": "^7.1.1",
23 | "babel-plugin-syntax-jsx": "^6.18.0",
24 | "babel-plugin-transform-runtime": "^6.22.0",
25 | "babel-plugin-transform-vue-jsx": "^3.5.0",
26 | "babel-preset-env": "^1.3.2",
27 | "babel-preset-stage-2": "^6.22.0",
28 | "chalk": "^2.0.1",
29 | "copy-webpack-plugin": "^4.0.1",
30 | "css-loader": "^0.28.0",
31 | "extract-text-webpack-plugin": "^3.0.0",
32 | "file-loader": "^1.1.4",
33 | "friendly-errors-webpack-plugin": "^1.6.1",
34 | "html-webpack-plugin": "^2.30.1",
35 | "node-notifier": "^5.1.2",
36 | "optimize-css-assets-webpack-plugin": "^3.2.0",
37 | "ora": "^1.2.0",
38 | "portfinder": "^1.0.13",
39 | "postcss-import": "^11.0.0",
40 | "postcss-loader": "^2.0.8",
41 | "postcss-url": "^7.2.1",
42 | "rimraf": "^2.6.0",
43 | "semver": "^5.3.0",
44 | "shelljs": "^0.7.6",
45 | "uglifyjs-webpack-plugin": "^1.1.1",
46 | "url-loader": "^0.5.8",
47 | "vue-loader": "^13.3.0",
48 | "vue-style-loader": "^3.0.1",
49 | "vue-template-compiler": "^2.5.2",
50 | "webpack": "^3.6.0",
51 | "webpack-bundle-analyzer": "^2.9.0",
52 | "webpack-dev-server": "^2.9.1",
53 | "webpack-merge": "^4.1.0"
54 | },
55 | "engines": {
56 | "node": ">= 6.0.0",
57 | "npm": ">= 3.0.0"
58 | },
59 | "browserslist": [
60 | "> 1%",
61 | "last 2 versions",
62 | "not ie <= 8"
63 | ]
64 | }
65 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
26 |
31 |
--------------------------------------------------------------------------------
/src/assets/css/base.css:
--------------------------------------------------------------------------------
1 | .middle{
2 | position:fixed;
3 | top:45px;
4 | width:100%;
5 | height:100%;
6 | }
7 | body{
8 | width:100%;
9 | margin:0;
10 | padding:0;
11 | background-color: #efeff4;
12 | height:100%;
13 |
14 | }
15 | a{
16 | text-decoration: none;
17 | }
18 | a:link {
19 | color: #000000;
20 | text-decoration: none;
21 | }
22 | a:visited {
23 | color: #000000;
24 | text-decoration: none;
25 | }
26 | a:hover {
27 | color: #000000;
28 | text-decoration: none;
29 |
30 | }
31 | a:active {
32 | color: #000000;
33 | text-decoration: none;
34 | }
35 | /*a:active div{
36 | background-color:#efeff4;
37 | }*/
38 | #app{
39 | width:100%;
40 | margin:0;
41 | padding:0;
42 | }
43 | p{
44 | margin:0;
45 | }
46 | span{
47 | margin:0;
48 |
49 | }
50 | dl{
51 | margin:0px;
52 | }
53 | h4{margin:5px 0 5px 0 ;}
54 | .idcells{
55 | width:100%;
56 | border-top: solid 0.5px #d9d9d9;
57 | border-bottom: solid 0.5px #d9d9d9;
58 | margin:10px 0 12px 0;
59 | background-color: white;
60 | }
61 | .cells{
62 | width:100%;
63 | border-top: solid 0.5px #d9d9d9;
64 | margin:10px 0 12px 0;
65 | display:flex;
66 | align-items: center;
67 | background-color: white;
68 | flex-direction: column;
69 | }
70 | .cells a{
71 | width:100%;
72 | }
73 | .cellimg img{
74 | width:24px;
75 | height:24px;
76 |
77 | }
78 | .cellimg{
79 | display: inline-block;
80 | margin:5px 10px 0 10px
81 | }
82 | .cellname{
83 | font-size: 15px;
84 | display: inline-block;
85 | margin:5px 0px 5px 10px;
86 | }
87 | .cell{
88 | width:100%;
89 | border-bottom: solid 0.5px #d9d9d9;
90 | margin:0px;
91 | display:flex;
92 | align-items: center;
93 | background-color: white;
94 | }
95 | .buttongreen{
96 | width:90%;
97 | height:35px;
98 | background-color:#1aad19;
99 | border-radius: 5px;
100 | margin:15px auto;
101 | text-align: center;
102 | line-height: 35px;
103 | color:white;
104 | }
105 | .buttonwhite{
106 | width:90%;
107 | height:35px;
108 | background-color:white;
109 | border-radius: 5px;
110 | margin:10px auto;
111 | text-align: center;
112 | line-height: 35px;
113 | color:black;
114 | }
115 | ::-webkit-scrollbar{
116 | display:none;
117 | }
118 |
--------------------------------------------------------------------------------
/src/assets/css/iconfont.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'iconfont';
3 | src: url('//at.alicdn.com/t/font_1474796923_6082804.eot'); /* IE9*/
4 | src: url('//at.alicdn.com/t/font_1474796923_6082804.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
5 | url('//at.alicdn.com/t/font_1474796923_6082804.woff') format('woff'), /* chrome、firefox */
6 | url('//at.alicdn.com/t/font_1474796923_6082804.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
7 | url('//at.alicdn.com/t/font_1474796923_6082804.svg#iconfont') format('svg'); /* iOS 4.1- */
8 | }
9 |
10 | .iconfont {
11 | font-family:"iconfont" !important;
12 | font-size:16px;
13 | font-style:normal;
14 | -webkit-font-smoothing: antialiased;
15 | -webkit-text-stroke-width: 0.2px;
16 | -moz-osx-font-smoothing: grayscale;
17 | }
18 |
19 | /**/
20 | .icon-tips-jia::before { content: "\e605"; }
21 | .icon-return-arrow::before { content: "\e60a"; }
22 | .icon-tips-add-friend::before { content: "\e606"; }
23 | .icon-chat-set::before { content: "\e60e"; }
24 | .icon-mute::before { content: "\e604"; }
25 | .icon-tips-xiaoxi::before { content: "\e607"; }
26 | .icon-chat-person::before { content: "\e60c"; }
27 | .icon-chat-friends::before { content: "\e60c"; }
28 | .icon-more::before { content: "\e60b"; }
29 | .icon-tips-saoyisao::before { content: "\e608"; }
30 | .icon-wechat::before { content: "\e600"; }
31 | .icon-me::before { content: "\e601"; }
32 | .icon-dialogue-jia::before { content: "\e615"; }
33 | .icon-tips-fukuan::before { content: "\e609"; }
34 | .icon-contact::before { content: "\e610"; }
35 | .icon-find::before { content: "\e603"; }
36 | .icon-chat-group::before { content: "\e60d"; }
37 | .icon-chat-detail-add::before { content: "\e616"; }
38 |
39 | .icon-dialogue-voice::before { content: "\e60f"; }
40 | .icon-dialogue-jianpan::before { content: "\e611"; }
41 | .icon-dialogue-smile::before { content: "\e612"; }
42 | .icon-dialogue-bar-jianpan::before{ content: "\e602"; }
43 | .icon-dialogue-bar-menu::before{ content: "\e613"; }
44 | .icon-search::before{ content: "\e614"; }
45 | .icon-iphone-address::before{ content: "\e617"; }
46 |
47 |
--------------------------------------------------------------------------------
/src/assets/css/weui.min.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-weight: 400;
3 | font-style: normal;
4 | font-family: weui;
5 | src: url("data:application/octet-stream;base64,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") format("truetype")
6 | }
7 |
8 | [class*=" weui-icon-"],
9 | [class^=weui-icon-] {
10 | display: inline-block;
11 | vertical-align: middle;
12 | font: normal normal normal 14px/1 weui;
13 | font-size: inherit;
14 | text-rendering: auto;
15 | -webkit-font-smoothing: antialiased
16 | }
17 |
18 | [class*=" weui-icon-"]:before,
19 | [class^=weui-icon-]:before {
20 | display: inline-block;
21 | margin-left: .2em;
22 | margin-right: .2em
23 | }
24 |
25 | .weui-icon-circle:before {
26 | content: "\EA01"
27 | }
28 |
29 | .weui-icon-download:before {
30 | content: "\EA02"
31 | }
32 |
33 | .weui-icon-info:before {
34 | content: "\EA03"
35 | }
36 |
37 | .weui-icon-safe-success:before {
38 | content: "\EA04"
39 | }
40 |
41 | .weui-icon-safe-warn:before {
42 | content: "\EA05"
43 | }
44 |
45 | .weui-icon-success:before {
46 | content: "\EA06"
47 | }
48 |
49 | .weui-icon-success-circle:before {
50 | content: "\EA07"
51 | }
52 |
53 | .weui-icon-success-no-circle:before {
54 | content: "\EA08"
55 | }
56 |
57 | .weui-icon-waiting:before {
58 | content: "\EA09"
59 | }
60 |
61 | .weui-icon-waiting-circle:before {
62 | content: "\EA0A"
63 | }
64 |
65 | .weui-icon-warn:before {
66 | content: "\EA0B"
67 | }
68 |
69 | .weui-icon-info-circle:before {
70 | content: "\EA0C"
71 | }
72 |
73 | .weui-icon-cancel:before {
74 | content: "\EA0D"
75 | }
76 |
77 | .weui-icon-search:before {
78 | content: "\EA0E"
79 | }
80 |
81 | .weui-icon-clear:before {
82 | content: "\EA0F"
83 | }
84 |
85 | .weui-icon-back:before {
86 | content: "\EA10"
87 | }
88 |
89 | .weui-icon-delete:before {
90 | content: "\EA11"
91 | }
92 |
93 | [class*=" weui-icon_"]:before,
94 | [class^=weui-icon_]:before {
95 | margin: 0
96 | }
97 |
98 | .weui-icon-success {
99 | font-size: 23px;
100 | color: #09bb07
101 | }
102 |
103 | .weui-icon-waiting {
104 | font-size: 23px;
105 | color: #10aeff
106 | }
107 |
108 | .weui-icon-warn {
109 | font-size: 23px;
110 | color: #f43530
111 | }
112 |
113 | .weui-icon-info {
114 | font-size: 23px;
115 | color: #10aeff
116 | }
117 |
118 | .weui-icon-success-circle,
119 | .weui-icon-success-no-circle {
120 | font-size: 23px;
121 | color: #09bb07
122 | }
123 |
124 | .weui-icon-waiting-circle {
125 | font-size: 23px;
126 | color: #10aeff
127 | }
128 |
129 | .weui-icon-circle {
130 | font-size: 23px;
131 | color: #c9c9c9
132 | }
133 |
134 | .weui-icon-download,
135 | .weui-icon-info-circle {
136 | font-size: 23px;
137 | color: #09bb07
138 | }
139 |
140 | .weui-icon-safe-success {
141 | color: #09bb07
142 | }
143 |
144 | .weui-icon-safe-warn {
145 | color: #ffbe00
146 | }
147 |
148 | .weui-icon-cancel {
149 | color: #f43530;
150 | font-size: 22px
151 | }
152 |
153 | .weui-icon-clear,
154 | .weui-icon-search {
155 | color: #b2b2b2;
156 | font-size: 14px
157 | }
158 |
159 | .weui-icon-delete.weui-icon_gallery-delete {
160 | color: #fff;
161 | font-size: 22px
162 | }
163 |
164 | .weui-icon_msg {
165 | font-size: 93px
166 | }
167 |
168 | .weui-icon_msg.weui-icon-warn {
169 | color: #f76260
170 | }
171 |
172 | .weui-icon_msg-primary {
173 | font-size: 93px
174 | }
175 |
176 | .weui-icon_msg-primary.weui-icon-warn {
177 | color: #ffbe00
178 | }
179 |
180 | .weui-btn {
181 | position: relative;
182 | display: block;
183 | margin-left: auto;
184 | margin-right: auto;
185 | padding-left: 14px;
186 | padding-right: 14px;
187 | box-sizing: border-box;
188 | font-size: 18px;
189 | text-align: center;
190 | text-decoration: none;
191 | color: #fff;
192 | line-height: 2.55555556;
193 | border-radius: 5px;
194 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
195 | overflow: hidden
196 | }
197 |
198 | .weui-btn:after {
199 | content: " ";
200 | width: 200%;
201 | height: 200%;
202 | position: absolute;
203 | top: 0;
204 | left: 0;
205 | border: 1px solid rgba(0, 0, 0, .2);
206 | -webkit-transform: scale(.5);
207 | transform: scale(.5);
208 | -webkit-transform-origin: 0 0;
209 | transform-origin: 0 0;
210 | box-sizing: border-box;
211 | border-radius: 10px
212 | }
213 |
214 | .weui-btn_inline {
215 | display: inline-block
216 | }
217 |
218 | .weui-btn_default {
219 | color: #000;
220 | background-color: #f8f8f8
221 | }
222 |
223 | .weui-btn_default:not(.weui-btn_disabled):visited {
224 | color: #000
225 | }
226 |
227 | .weui-btn_default:not(.weui-btn_disabled):active {
228 | color: rgba(0, 0, 0, .6);
229 | background-color: #dedede
230 | }
231 |
232 | .weui-btn_primary {
233 | background-color: #1aad19
234 | }
235 |
236 | .weui-btn_primary:not(.weui-btn_disabled):visited {
237 | color: #fff
238 | }
239 |
240 | .weui-btn_primary:not(.weui-btn_disabled):active {
241 | color: hsla(0, 0%, 100%, .6);
242 | background-color: #179b16
243 | }
244 |
245 | .weui-btn_warn {
246 | background-color: #e64340
247 | }
248 |
249 | .weui-btn_warn:not(.weui-btn_disabled):visited {
250 | color: #fff
251 | }
252 |
253 | .weui-btn_warn:not(.weui-btn_disabled):active {
254 | color: hsla(0, 0%, 100%, .6);
255 | background-color: #ce3c39
256 | }
257 |
258 | .weui-btn_disabled {
259 | color: hsla(0, 0%, 100%, .6)
260 | }
261 |
262 | .weui-btn_disabled.weui-btn_default {
263 | color: rgba(0, 0, 0, .3);
264 | background-color: #f7f7f7
265 | }
266 |
267 | .weui-btn_disabled.weui-btn_primary {
268 | background-color: #9ed99d
269 | }
270 |
271 | .weui-btn_disabled.weui-btn_warn {
272 | background-color: #ec8b89
273 | }
274 |
275 | .weui-btn_loading .weui-loading {
276 | margin: -.2em .34em 0 0
277 | }
278 |
279 | .weui-btn_loading.weui-btn_primary,
280 | .weui-btn_loading.weui-btn_warn {
281 | color: hsla(0, 0%, 100%, .6)
282 | }
283 |
284 | .weui-btn_loading.weui-btn_primary .weui-loading,
285 | .weui-btn_loading.weui-btn_warn .weui-loading {
286 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")
287 | }
288 |
289 | .weui-btn_loading.weui-btn_primary {
290 | background-color: #179b16
291 | }
292 |
293 | .weui-btn_loading.weui-btn_warn {
294 | background-color: #ce3c39
295 | }
296 |
297 | .weui-btn_plain-primary {
298 | color: #1aad19;
299 | border: 1px solid #1aad19
300 | }
301 |
302 | .weui-btn_plain-primary:not(.weui-btn_plain-disabled):active {
303 | color: rgba(26, 173, 25, .6);
304 | border-color: rgba(26, 173, 25, .6)
305 | }
306 |
307 | .weui-btn_plain-primary:after {
308 | border-width: 0
309 | }
310 |
311 | .weui-btn_plain-default {
312 | color: #353535;
313 | border: 1px solid #353535
314 | }
315 |
316 | .weui-btn_plain-default:not(.weui-btn_plain-disabled):active {
317 | color: rgba(53, 53, 53, .6);
318 | border-color: rgba(53, 53, 53, .6)
319 | }
320 |
321 | .weui-btn_plain-default:after {
322 | border-width: 0
323 | }
324 |
325 | .weui-btn_plain-disabled {
326 | color: rgba(0, 0, 0, .2);
327 | border-color: rgba(0, 0, 0, .2)
328 | }
329 |
330 | button.weui-btn,
331 | input.weui-btn {
332 | width: 100%;
333 | border-width: 0;
334 | outline: 0;
335 | -webkit-appearance: none
336 | }
337 |
338 | button.weui-btn:focus,
339 | input.weui-btn:focus {
340 | outline: 0
341 | }
342 |
343 | button.weui-btn_inline,
344 | button.weui-btn_mini,
345 | input.weui-btn_inline,
346 | input.weui-btn_mini {
347 | width: auto
348 | }
349 |
350 | button.weui-btn_plain-default,
351 | button.weui-btn_plain-primary,
352 | input.weui-btn_plain-default,
353 | input.weui-btn_plain-primary {
354 | border-width: 1px;
355 | background-color: transparent
356 | }
357 |
358 | .weui-btn_mini {
359 | display: inline-block;
360 | padding: 0 1.32em;
361 | line-height: 2.3;
362 | font-size: 13px
363 | }
364 |
365 | .weui-btn+.weui-btn {
366 | margin-top: 15px
367 | }
368 |
369 | .weui-btn.weui-btn_inline+.weui-btn.weui-btn_inline {
370 | margin-top: auto;
371 | margin-left: 15px
372 | }
373 |
374 | .weui-btn-area {
375 | margin: 1.17647059em 15px .3em
376 | }
377 |
378 | .weui-btn-area_inline {
379 | display: -webkit-box;
380 | display: -webkit-flex;
381 | display: flex
382 | }
383 |
384 | .weui-btn-area_inline .weui-btn {
385 | margin-top: auto;
386 | margin-right: 15px;
387 | width: 100%;
388 | -webkit-box-flex: 1;
389 | -webkit-flex: 1;
390 | flex: 1
391 | }
392 |
393 | .weui-btn-area_inline .weui-btn:last-child {
394 | margin-right: 0
395 | }
396 |
397 | .weui-cells {
398 | margin-top: 1.17647059em;
399 | background-color: #fff;
400 | line-height: 1.41176471;
401 | font-size: 15px;
402 | overflow: hidden;
403 | position: relative
404 | }
405 |
406 | .weui-cells:before {
407 | top: 0;
408 | border-top: 1px solid #d9d9d9;
409 | -webkit-transform-origin: 0 0;
410 | transform-origin: 0 0;
411 | -webkit-transform: scaleY(.5);
412 | transform: scaleY(.5)
413 | }
414 |
415 | .weui-cells:after,
416 | .weui-cells:before {
417 | content: " ";
418 | position: absolute;
419 | left: 0;
420 | right: 0;
421 | height: 1px;
422 | color: #d9d9d9
423 | }
424 |
425 | .weui-cells:after {
426 | bottom: 0;
427 | border-bottom: 1px solid #d9d9d9;
428 | -webkit-transform-origin: 0 100%;
429 | transform-origin: 0 100%;
430 | -webkit-transform: scaleY(.5);
431 | transform: scaleY(.5)
432 | }
433 |
434 | .weui-cells__title {
435 | margin-top: .77em;
436 | margin-bottom: .3em;
437 | padding-left: 15px;
438 | padding-right: 15px;
439 | color: #999;
440 | font-size: 14px
441 | }
442 |
443 | .weui-cells__title+.weui-cells {
444 | margin-top: 0
445 | }
446 |
447 | .weui-cells__tips {
448 | margin-top: .3em;
449 | color: #999;
450 | padding-left: 15px;
451 | padding-right: 15px;
452 | font-size: 14px
453 | }
454 |
455 | .weui-cell {
456 | padding: 10px 15px;
457 | position: relative;
458 | display: -webkit-box;
459 | display: -webkit-flex;
460 | display: flex;
461 | -webkit-box-align: center;
462 | -webkit-align-items: center;
463 | align-items: center
464 | }
465 |
466 | .weui-cell:before {
467 | content: " ";
468 | position: absolute;
469 | left: 0;
470 | top: 0;
471 | right: 0;
472 | height: 1px;
473 | border-top: 1px solid #d9d9d9;
474 | color: #d9d9d9;
475 | -webkit-transform-origin: 0 0;
476 | transform-origin: 0 0;
477 | -webkit-transform: scaleY(.5);
478 | transform: scaleY(.5);
479 | left: 15px
480 | }
481 |
482 | .weui-cell:first-child:before {
483 | display: none
484 | }
485 |
486 | .weui-cell_primary {
487 | -webkit-box-align: start;
488 | -webkit-align-items: flex-start;
489 | align-items: flex-start
490 | }
491 |
492 | .weui-cell__bd {
493 | -webkit-box-flex: 1;
494 | -webkit-flex: 1;
495 | flex: 1
496 | }
497 |
498 | .weui-cell__ft {
499 | text-align: right;
500 | color: #999
501 | }
502 |
503 | .weui-cell_access {
504 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
505 | color: inherit
506 | }
507 |
508 | .weui-cell_access:active {
509 | background-color: #ececec
510 | }
511 |
512 | .weui-cell_access .weui-cell__ft {
513 | padding-right: 13px;
514 | position: relative
515 | }
516 |
517 | .weui-cell_access .weui-cell__ft:after {
518 | content: " ";
519 | display: inline-block;
520 | height: 6px;
521 | width: 6px;
522 | border-width: 2px 2px 0 0;
523 | border-color: #c8c8cd;
524 | border-style: solid;
525 | -webkit-transform: matrix(.71, .71, -.71, .71, 0, 0);
526 | transform: matrix(.71, .71, -.71, .71, 0, 0);
527 | position: relative;
528 | top: -2px;
529 | position: absolute;
530 | top: 50%;
531 | margin-top: -4px;
532 | right: 2px
533 | }
534 |
535 | .weui-cell_link {
536 | color: #586c94;
537 | font-size: 14px
538 | }
539 |
540 | .weui-cell_link:first-child:before {
541 | display: block
542 | }
543 |
544 | .weui-check__label {
545 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
546 | }
547 |
548 | .weui-check__label:active {
549 | background-color: #ececec
550 | }
551 |
552 | .weui-check {
553 | position: absolute;
554 | left: -9999em
555 | }
556 |
557 | .weui-cells_radio .weui-cell__ft {
558 | padding-left: .35em
559 | }
560 |
561 | .weui-cells_radio .weui-check:checked+.weui-icon-checked:before {
562 | display: block;
563 | content: "\EA08";
564 | color: #09bb07;
565 | font-size: 16px
566 | }
567 |
568 | .weui-cells_checkbox .weui-cell__hd {
569 | padding-right: .35em
570 | }
571 |
572 | .weui-cells_checkbox .weui-icon-checked:before {
573 | content: "\EA01";
574 | color: #c9c9c9;
575 | font-size: 23px;
576 | display: block
577 | }
578 |
579 | .weui-cells_checkbox .weui-check:checked+.weui-icon-checked:before {
580 | content: "\EA06";
581 | color: #09bb07
582 | }
583 |
584 | .weui-label {
585 | display: block;
586 | width: 105px;
587 | word-wrap: break-word;
588 | word-break: break-all
589 | }
590 |
591 | .weui-input {
592 | width: 100%;
593 | border: 0;
594 | outline: 0;
595 | -webkit-appearance: none;
596 | background-color: transparent;
597 | font-size: inherit;
598 | color: inherit;
599 | height: 1.41176471em;
600 | line-height: 1.41176471
601 | }
602 |
603 | .weui-input::-webkit-inner-spin-button,
604 | .weui-input::-webkit-outer-spin-button {
605 | -webkit-appearance: none;
606 | margin: 0
607 | }
608 |
609 | .weui-textarea {
610 | display: block;
611 | border: 0;
612 | resize: none;
613 | width: 100%;
614 | color: inherit;
615 | font-size: 1em;
616 | line-height: inherit;
617 | outline: 0
618 | }
619 |
620 | .weui-textarea-counter {
621 | color: #b2b2b2;
622 | text-align: right
623 | }
624 |
625 | .weui-cell_warn .weui-textarea-counter {
626 | color: #e64340
627 | }
628 |
629 | .weui-toptips {
630 | display: none;
631 | position: fixed;
632 | -webkit-transform: translateZ(0);
633 | transform: translateZ(0);
634 | top: 0;
635 | left: 0;
636 | right: 0;
637 | padding: 5px;
638 | font-size: 14px;
639 | text-align: center;
640 | color: #fff;
641 | z-index: 5000;
642 | word-wrap: break-word;
643 | word-break: break-all
644 | }
645 |
646 | .weui-toptips_warn {
647 | background-color: #e64340
648 | }
649 |
650 | .weui-cells_form .weui-cell__ft {
651 | font-size: 0
652 | }
653 |
654 | .weui-cells_form .weui-icon-warn {
655 | display: none
656 | }
657 |
658 | .weui-cells_form input,
659 | .weui-cells_form label[for],
660 | .weui-cells_form textarea {
661 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
662 | }
663 |
664 | .weui-cell_warn {
665 | color: #e64340
666 | }
667 |
668 | .weui-cell_warn .weui-icon-warn {
669 | display: inline-block
670 | }
671 |
672 | .weui-form-preview {
673 | position: relative;
674 | background-color: #fff
675 | }
676 |
677 | .weui-form-preview:before {
678 | top: 0;
679 | border-top: 1px solid #d9d9d9;
680 | -webkit-transform-origin: 0 0;
681 | transform-origin: 0 0;
682 | -webkit-transform: scaleY(.5);
683 | transform: scaleY(.5)
684 | }
685 |
686 | .weui-form-preview:after,
687 | .weui-form-preview:before {
688 | content: " ";
689 | position: absolute;
690 | left: 0;
691 | right: 0;
692 | height: 1px;
693 | color: #d9d9d9
694 | }
695 |
696 | .weui-form-preview:after {
697 | bottom: 0;
698 | border-bottom: 1px solid #d9d9d9;
699 | -webkit-transform-origin: 0 100%;
700 | transform-origin: 0 100%;
701 | -webkit-transform: scaleY(.5);
702 | transform: scaleY(.5)
703 | }
704 |
705 | .weui-form-preview__hd {
706 | position: relative;
707 | padding: 10px 15px;
708 | text-align: right;
709 | line-height: 2.5em
710 | }
711 |
712 | .weui-form-preview__hd:after {
713 | content: " ";
714 | position: absolute;
715 | left: 0;
716 | bottom: 0;
717 | right: 0;
718 | height: 1px;
719 | border-bottom: 1px solid #d9d9d9;
720 | color: #d9d9d9;
721 | -webkit-transform-origin: 0 100%;
722 | transform-origin: 0 100%;
723 | -webkit-transform: scaleY(.5);
724 | transform: scaleY(.5);
725 | left: 15px
726 | }
727 |
728 | .weui-form-preview__hd .weui-form-preview__value {
729 | font-style: normal;
730 | font-size: 1.6em
731 | }
732 |
733 | .weui-form-preview__bd {
734 | padding: 10px 15px;
735 | font-size: .9em;
736 | text-align: right;
737 | color: #999;
738 | line-height: 2
739 | }
740 |
741 | .weui-form-preview__ft {
742 | position: relative;
743 | line-height: 50px;
744 | display: -webkit-box;
745 | display: -webkit-flex;
746 | display: flex
747 | }
748 |
749 | .weui-form-preview__ft:after {
750 | content: " ";
751 | position: absolute;
752 | left: 0;
753 | top: 0;
754 | right: 0;
755 | height: 1px;
756 | border-top: 1px solid #d5d5d6;
757 | color: #d5d5d6;
758 | -webkit-transform-origin: 0 0;
759 | transform-origin: 0 0;
760 | -webkit-transform: scaleY(.5);
761 | transform: scaleY(.5)
762 | }
763 |
764 | .weui-form-preview__item {
765 | overflow: hidden
766 | }
767 |
768 | .weui-form-preview__label {
769 | float: left;
770 | margin-right: 1em;
771 | min-width: 4em;
772 | color: #999;
773 | text-align: justify;
774 | text-align-last: justify
775 | }
776 |
777 | .weui-form-preview__value {
778 | display: block;
779 | overflow: hidden;
780 | word-break: normal;
781 | word-wrap: break-word
782 | }
783 |
784 | .weui-form-preview__btn {
785 | position: relative;
786 | display: block;
787 | -webkit-box-flex: 1;
788 | -webkit-flex: 1;
789 | flex: 1;
790 | color: #3cc51f;
791 | text-align: center;
792 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
793 | }
794 |
795 | button.weui-form-preview__btn {
796 | background-color: transparent;
797 | border: 0;
798 | outline: 0;
799 | line-height: inherit;
800 | font-size: inherit
801 | }
802 |
803 | .weui-form-preview__btn:active {
804 | background-color: #eee
805 | }
806 |
807 | .weui-form-preview__btn:after {
808 | content: " ";
809 | position: absolute;
810 | left: 0;
811 | top: 0;
812 | width: 1px;
813 | bottom: 0;
814 | border-left: 1px solid #d5d5d6;
815 | color: #d5d5d6;
816 | -webkit-transform-origin: 0 0;
817 | transform-origin: 0 0;
818 | -webkit-transform: scaleX(.5);
819 | transform: scaleX(.5)
820 | }
821 |
822 | .weui-form-preview__btn:first-child:after {
823 | display: none
824 | }
825 |
826 | .weui-form-preview__btn_default {
827 | color: #999
828 | }
829 |
830 | .weui-form-preview__btn_primary {
831 | color: #0bb20c
832 | }
833 |
834 | .weui-cell_select {
835 | padding: 0
836 | }
837 |
838 | .weui-cell_select .weui-select {
839 | padding-right: 30px
840 | }
841 |
842 | .weui-cell_select .weui-cell__bd:after {
843 | content: " ";
844 | display: inline-block;
845 | height: 6px;
846 | width: 6px;
847 | border-width: 2px 2px 0 0;
848 | border-color: #c8c8cd;
849 | border-style: solid;
850 | -webkit-transform: matrix(.71, .71, -.71, .71, 0, 0);
851 | transform: matrix(.71, .71, -.71, .71, 0, 0);
852 | position: relative;
853 | top: -2px;
854 | position: absolute;
855 | top: 50%;
856 | right: 15px;
857 | margin-top: -4px
858 | }
859 |
860 | .weui-select {
861 | -webkit-appearance: none;
862 | border: 0;
863 | outline: 0;
864 | background-color: transparent;
865 | width: 100%;
866 | font-size: inherit;
867 | height: 44px;
868 | line-height: 44px;
869 | position: relative;
870 | z-index: 1;
871 | padding-left: 15px
872 | }
873 |
874 | .weui-cell_select-before {
875 | padding-right: 15px
876 | }
877 |
878 | .weui-cell_select-before .weui-select {
879 | width: 105px;
880 | box-sizing: border-box
881 | }
882 |
883 | .weui-cell_select-before .weui-cell__hd {
884 | position: relative
885 | }
886 |
887 | .weui-cell_select-before .weui-cell__hd:after {
888 | content: " ";
889 | position: absolute;
890 | right: 0;
891 | top: 0;
892 | width: 1px;
893 | bottom: 0;
894 | border-right: 1px solid #d9d9d9;
895 | color: #d9d9d9;
896 | -webkit-transform-origin: 100% 0;
897 | transform-origin: 100% 0;
898 | -webkit-transform: scaleX(.5);
899 | transform: scaleX(.5)
900 | }
901 |
902 | .weui-cell_select-before .weui-cell__hd:before {
903 | content: " ";
904 | display: inline-block;
905 | height: 6px;
906 | width: 6px;
907 | border-width: 2px 2px 0 0;
908 | border-color: #c8c8cd;
909 | border-style: solid;
910 | -webkit-transform: matrix(.71, .71, -.71, .71, 0, 0);
911 | transform: matrix(.71, .71, -.71, .71, 0, 0);
912 | position: relative;
913 | top: -2px;
914 | position: absolute;
915 | top: 50%;
916 | right: 15px;
917 | margin-top: -4px
918 | }
919 |
920 | .weui-cell_select-before .weui-cell__bd {
921 | padding-left: 15px
922 | }
923 |
924 | .weui-cell_select-before .weui-cell__bd:after {
925 | display: none
926 | }
927 |
928 | .weui-cell_select-after {
929 | padding-left: 15px
930 | }
931 |
932 | .weui-cell_select-after .weui-select {
933 | padding-left: 0
934 | }
935 |
936 | .weui-cell_vcode {
937 | padding-top: 0;
938 | padding-right: 0;
939 | padding-bottom: 0
940 | }
941 |
942 | .weui-vcode-btn,
943 | .weui-vcode-img {
944 | margin-left: 5px;
945 | height: 44px;
946 | vertical-align: middle
947 | }
948 |
949 | .weui-vcode-btn {
950 | display: inline-block;
951 | padding: 0 .6em 0 .7em;
952 | border-left: 1px solid #e5e5e5;
953 | line-height: 44px;
954 | font-size: 17px;
955 | color: #3cc51f
956 | }
957 |
958 | button.weui-vcode-btn {
959 | background-color: transparent;
960 | border-top: 0;
961 | border-right: 0;
962 | border-bottom: 0;
963 | outline: 0
964 | }
965 |
966 | .weui-vcode-btn:active {
967 | color: #52a341
968 | }
969 |
970 | .weui-gallery {
971 | display: none;
972 | position: fixed;
973 | top: 0;
974 | right: 0;
975 | bottom: 0;
976 | left: 0;
977 | background-color: #000;
978 | z-index: 1000
979 | }
980 |
981 | .weui-gallery__img {
982 | position: absolute;
983 | top: 0;
984 | right: 0;
985 | bottom: 60px;
986 | left: 0;
987 | background: 50% no-repeat;
988 | background-size: contain
989 | }
990 |
991 | .weui-gallery__opr {
992 | position: absolute;
993 | right: 0;
994 | bottom: 0;
995 | left: 0;
996 | background-color: #0d0d0d;
997 | color: #fff;
998 | line-height: 60px;
999 | text-align: center
1000 | }
1001 |
1002 | .weui-gallery__del {
1003 | display: block
1004 | }
1005 |
1006 | .weui-cell_switch {
1007 | padding-top: 6px;
1008 | padding-bottom: 6px
1009 | }
1010 |
1011 | .weui-switch {
1012 | -webkit-appearance: none;
1013 | appearance: none
1014 | }
1015 |
1016 | .weui-switch,
1017 | .weui-switch-cp__box {
1018 | position: relative;
1019 | width: 52px;
1020 | height: 32px;
1021 | border: 1px solid #dfdfdf;
1022 | outline: 0;
1023 | border-radius: 16px;
1024 | box-sizing: border-box;
1025 | background-color: #dfdfdf;
1026 | -webkit-transition: background-color .1s, border .1s;
1027 | transition: background-color .1s, border .1s
1028 | }
1029 |
1030 | .weui-switch-cp__box:before,
1031 | .weui-switch:before {
1032 | content: " ";
1033 | position: absolute;
1034 | top: 0;
1035 | left: 0;
1036 | width: 50px;
1037 | height: 30px;
1038 | border-radius: 15px;
1039 | background-color: #fdfdfd;
1040 | -webkit-transition: -webkit-transform .35s cubic-bezier(.45, 1, .4, 1);
1041 | transition: -webkit-transform .35s cubic-bezier(.45, 1, .4, 1);
1042 | transition: transform .35s cubic-bezier(.45, 1, .4, 1);
1043 | transition: transform .35s cubic-bezier(.45, 1, .4, 1), -webkit-transform .35s cubic-bezier(.45, 1, .4, 1)
1044 | }
1045 |
1046 | .weui-switch-cp__box:after,
1047 | .weui-switch:after {
1048 | content: " ";
1049 | position: absolute;
1050 | top: 0;
1051 | left: 0;
1052 | width: 30px;
1053 | height: 30px;
1054 | border-radius: 15px;
1055 | background-color: #fff;
1056 | box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
1057 | -webkit-transition: -webkit-transform .35s cubic-bezier(.4, .4, .25, 1.35);
1058 | transition: -webkit-transform .35s cubic-bezier(.4, .4, .25, 1.35);
1059 | transition: transform .35s cubic-bezier(.4, .4, .25, 1.35);
1060 | transition: transform .35s cubic-bezier(.4, .4, .25, 1.35), -webkit-transform .35s cubic-bezier(.4, .4, .25, 1.35)
1061 | }
1062 |
1063 | .weui-switch-cp__input:checked~.weui-switch-cp__box,
1064 | .weui-switch:checked {
1065 | border-color: #04be02;
1066 | background-color: #04be02
1067 | }
1068 |
1069 | .weui-switch-cp__input:checked~.weui-switch-cp__box:before,
1070 | .weui-switch:checked:before {
1071 | -webkit-transform: scale(0);
1072 | transform: scale(0)
1073 | }
1074 |
1075 | .weui-switch-cp__input:checked~.weui-switch-cp__box:after,
1076 | .weui-switch:checked:after {
1077 | -webkit-transform: translateX(20px);
1078 | transform: translateX(20px)
1079 | }
1080 |
1081 | .weui-switch-cp__input {
1082 | position: absolute;
1083 | left: -9999px
1084 | }
1085 |
1086 | .weui-switch-cp__box {
1087 | display: block
1088 | }
1089 |
1090 | .weui-uploader__hd {
1091 | display: -webkit-box;
1092 | display: -webkit-flex;
1093 | display: flex;
1094 | padding-bottom: 10px;
1095 | -webkit-box-align: center;
1096 | -webkit-align-items: center;
1097 | align-items: center
1098 | }
1099 |
1100 | .weui-uploader__title {
1101 | -webkit-box-flex: 1;
1102 | -webkit-flex: 1;
1103 | flex: 1
1104 | }
1105 |
1106 | .weui-uploader__info {
1107 | color: #b2b2b2
1108 | }
1109 |
1110 | .weui-uploader__bd {
1111 | margin-bottom: -4px;
1112 | margin-right: -9px;
1113 | overflow: hidden
1114 | }
1115 |
1116 | .weui-uploader__files {
1117 | list-style: none
1118 | }
1119 |
1120 | .weui-uploader__file {
1121 | float: left;
1122 | margin-right: 9px;
1123 | margin-bottom: 9px;
1124 | width: 79px;
1125 | height: 79px;
1126 | background: no-repeat 50%;
1127 | background-size: cover
1128 | }
1129 |
1130 | .weui-uploader__file_status {
1131 | position: relative
1132 | }
1133 |
1134 | .weui-uploader__file_status:before {
1135 | content: " ";
1136 | position: absolute;
1137 | top: 0;
1138 | right: 0;
1139 | bottom: 0;
1140 | left: 0;
1141 | background-color: rgba(0, 0, 0, .5)
1142 | }
1143 |
1144 | .weui-uploader__file_status .weui-uploader__file-content {
1145 | display: block
1146 | }
1147 |
1148 | .weui-uploader__file-content {
1149 | display: none;
1150 | position: absolute;
1151 | top: 50%;
1152 | left: 50%;
1153 | -webkit-transform: translate(-50%, -50%);
1154 | transform: translate(-50%, -50%);
1155 | color: #fff
1156 | }
1157 |
1158 | .weui-uploader__file-content .weui-icon-warn {
1159 | display: inline-block
1160 | }
1161 |
1162 | .weui-uploader__input-box {
1163 | float: left;
1164 | position: relative;
1165 | margin-right: 9px;
1166 | margin-bottom: 9px;
1167 | width: 77px;
1168 | height: 77px;
1169 | border: 1px solid #d9d9d9
1170 | }
1171 |
1172 | .weui-uploader__input-box:after,
1173 | .weui-uploader__input-box:before {
1174 | content: " ";
1175 | position: absolute;
1176 | top: 50%;
1177 | left: 50%;
1178 | -webkit-transform: translate(-50%, -50%);
1179 | transform: translate(-50%, -50%);
1180 | background-color: #d9d9d9
1181 | }
1182 |
1183 | .weui-uploader__input-box:before {
1184 | width: 2px;
1185 | height: 39.5px
1186 | }
1187 |
1188 | .weui-uploader__input-box:after {
1189 | width: 39.5px;
1190 | height: 2px
1191 | }
1192 |
1193 | .weui-uploader__input-box:active {
1194 | border-color: #999
1195 | }
1196 |
1197 | .weui-uploader__input-box:active:after,
1198 | .weui-uploader__input-box:active:before {
1199 | background-color: #999
1200 | }
1201 |
1202 | .weui-uploader__input {
1203 | position: absolute;
1204 | z-index: 1;
1205 | top: 0;
1206 | left: 0;
1207 | width: 100%;
1208 | height: 100%;
1209 | opacity: 0;
1210 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
1211 | }
1212 |
1213 | .weui-msg {
1214 | padding-top: 36px;
1215 | text-align: center
1216 | }
1217 |
1218 | .weui-msg__icon-area {
1219 | margin-bottom: 30px
1220 | }
1221 |
1222 | .weui-msg__text-area {
1223 | margin-bottom: 25px;
1224 | padding: 0 20px
1225 | }
1226 |
1227 | .weui-msg__text-area a {
1228 | color: #586c94
1229 | }
1230 |
1231 | .weui-msg__title {
1232 | margin-bottom: 5px;
1233 | font-weight: 400;
1234 | font-size: 20px
1235 | }
1236 |
1237 | .weui-msg__desc {
1238 | font-size: 14px;
1239 | color: #999
1240 | }
1241 |
1242 | .weui-msg__opr-area {
1243 | margin-bottom: 25px
1244 | }
1245 |
1246 | .weui-msg__extra-area {
1247 | margin-bottom: 15px;
1248 | font-size: 14px;
1249 | color: #999
1250 | }
1251 |
1252 | .weui-msg__extra-area a {
1253 | color: #586c94
1254 | }
1255 |
1256 | @media screen and (min-height:438px) {
1257 | .weui-msg__extra-area {
1258 | position: fixed;
1259 | left: 0;
1260 | bottom: 0;
1261 | width: 100%;
1262 | text-align: center
1263 | }
1264 | }
1265 |
1266 | .weui-article {
1267 | padding: 20px 15px;
1268 | font-size: 15px
1269 | }
1270 |
1271 | .weui-article section {
1272 | margin-bottom: 1.5em
1273 | }
1274 |
1275 | .weui-article h1 {
1276 | font-size: 18px;
1277 | font-weight: 400;
1278 | margin-bottom: .9em
1279 | }
1280 |
1281 | .weui-article h2 {
1282 | font-size: 16px
1283 | }
1284 |
1285 | .weui-article h2,
1286 | .weui-article h3 {
1287 | font-weight: 400;
1288 | margin-bottom: .34em
1289 | }
1290 |
1291 | .weui-article h3 {
1292 | font-size: 15px
1293 | }
1294 |
1295 | .weui-article * {
1296 | max-width: 100%;
1297 | box-sizing: border-box;
1298 | word-wrap: break-word
1299 | }
1300 |
1301 | .weui-article p {
1302 | margin: 0 0 .8em
1303 | }
1304 |
1305 | .weui-tabbar {
1306 | display: -webkit-box;
1307 | display: -webkit-flex;
1308 | display: flex;
1309 | position: absolute;
1310 | z-index: 500;
1311 | bottom: 0;
1312 | width: 100%;
1313 | background-color: #f7f7fa
1314 | }
1315 |
1316 | .weui-tabbar:before {
1317 | content: " ";
1318 | position: absolute;
1319 | left: 0;
1320 | top: 0;
1321 | right: 0;
1322 | height: 1px;
1323 | border-top: 1px solid #c0bfc4;
1324 | color: #c0bfc4;
1325 | -webkit-transform-origin: 0 0;
1326 | transform-origin: 0 0;
1327 | -webkit-transform: scaleY(.5);
1328 | transform: scaleY(.5)
1329 | }
1330 |
1331 | .weui-tabbar__item {
1332 | display: block;
1333 | -webkit-box-flex: 1;
1334 | -webkit-flex: 1;
1335 | flex: 1;
1336 | padding: 5px 0 0;
1337 | font-size: 0;
1338 | color: #999;
1339 | text-align: center;
1340 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
1341 | }
1342 |
1343 | .weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon,
1344 | .weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon>i,
1345 | .weui-tabbar__item.weui-bar__item_on .weui-tabbar__label {
1346 | color: #09bb07
1347 | }
1348 |
1349 | .weui-tabbar__icon {
1350 | display: inline-block;
1351 | width: 27px;
1352 | height: 27px
1353 | }
1354 |
1355 | .weui-tabbar__icon>i,
1356 | i.weui-tabbar__icon {
1357 | font-size: 24px;
1358 | color: #999
1359 | }
1360 |
1361 | .weui-tabbar__icon img {
1362 | width: 100%;
1363 | height: 100%
1364 | }
1365 |
1366 | .weui-tabbar__label {
1367 | text-align: center;
1368 | color: #999;
1369 | font-size: 10px;
1370 | line-height: 1.8
1371 | }
1372 |
1373 | .weui-navbar {
1374 | display: -webkit-box;
1375 | display: -webkit-flex;
1376 | display: flex;
1377 | position: absolute;
1378 | z-index: 500;
1379 | top: 0;
1380 | width: 100%;
1381 | background-color: #fafafa
1382 | }
1383 |
1384 | .weui-navbar:after {
1385 | content: " ";
1386 | position: absolute;
1387 | left: 0;
1388 | bottom: 0;
1389 | right: 0;
1390 | height: 1px;
1391 | border-bottom: 1px solid #ccc;
1392 | color: #ccc;
1393 | -webkit-transform-origin: 0 100%;
1394 | transform-origin: 0 100%;
1395 | -webkit-transform: scaleY(.5);
1396 | transform: scaleY(.5)
1397 | }
1398 |
1399 | .weui-navbar+.weui-tab__panel {
1400 | padding-top: 50px;
1401 | padding-bottom: 0
1402 | }
1403 |
1404 | .weui-navbar__item {
1405 | position: relative;
1406 | display: block;
1407 | -webkit-box-flex: 1;
1408 | -webkit-flex: 1;
1409 | flex: 1;
1410 | padding: 13px 0;
1411 | text-align: center;
1412 | font-size: 15px;
1413 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
1414 | }
1415 |
1416 | .weui-navbar__item:active {
1417 | background-color: #ededed
1418 | }
1419 |
1420 | .weui-navbar__item.weui-bar__item_on {
1421 | background-color: #eaeaea
1422 | }
1423 |
1424 | .weui-navbar__item:after {
1425 | content: " ";
1426 | position: absolute;
1427 | right: 0;
1428 | top: 0;
1429 | width: 1px;
1430 | bottom: 0;
1431 | border-right: 1px solid #ccc;
1432 | color: #ccc;
1433 | -webkit-transform-origin: 100% 0;
1434 | transform-origin: 100% 0;
1435 | -webkit-transform: scaleX(.5);
1436 | transform: scaleX(.5)
1437 | }
1438 |
1439 | .weui-navbar__item:last-child:after {
1440 | display: none
1441 | }
1442 |
1443 | .weui-tab {
1444 | position: relative;
1445 | height: 100%
1446 | }
1447 |
1448 | .weui-tab__panel {
1449 | box-sizing: border-box;
1450 | height: 100%;
1451 | padding-bottom: 50px;
1452 | overflow: auto;
1453 | -webkit-overflow-scrolling: touch
1454 | }
1455 |
1456 | .weui-tab__content {
1457 | display: none
1458 | }
1459 |
1460 | .weui-progress {
1461 | display: -webkit-box;
1462 | display: -webkit-flex;
1463 | display: flex;
1464 | -webkit-box-align: center;
1465 | -webkit-align-items: center;
1466 | align-items: center
1467 | }
1468 |
1469 | .weui-progress__bar {
1470 | background-color: #ebebeb;
1471 | height: 3px;
1472 | -webkit-box-flex: 1;
1473 | -webkit-flex: 1;
1474 | flex: 1
1475 | }
1476 |
1477 | .weui-progress__inner-bar {
1478 | width: 0;
1479 | height: 100%;
1480 | background-color: #09bb07
1481 | }
1482 |
1483 | .weui-progress__opr {
1484 | display: block;
1485 | margin-left: 15px;
1486 | font-size: 0
1487 | }
1488 |
1489 | .weui-panel {
1490 | background-color: #fff;
1491 | margin-top: 10px;
1492 | position: relative;
1493 | overflow: hidden
1494 | }
1495 |
1496 | .weui-panel:first-child {
1497 | margin-top: 0
1498 | }
1499 |
1500 | .weui-panel:before {
1501 | top: 0;
1502 | border-top: 1px solid #e5e5e5;
1503 | -webkit-transform-origin: 0 0;
1504 | transform-origin: 0 0;
1505 | -webkit-transform: scaleY(.5);
1506 | transform: scaleY(.5)
1507 | }
1508 |
1509 | .weui-panel:after,
1510 | .weui-panel:before {
1511 | content: " ";
1512 | position: absolute;
1513 | left: 0;
1514 | right: 0;
1515 | height: 1px;
1516 | color: #e5e5e5
1517 | }
1518 |
1519 | .weui-panel:after {
1520 | bottom: 0;
1521 | border-bottom: 1px solid #e5e5e5;
1522 | -webkit-transform-origin: 0 100%;
1523 | transform-origin: 0 100%;
1524 | -webkit-transform: scaleY(.5);
1525 | transform: scaleY(.5)
1526 | }
1527 |
1528 | .weui-panel__hd {
1529 | padding: 14px 15px 10px;
1530 | color: #999;
1531 | font-size: 13px;
1532 | position: relative
1533 | }
1534 |
1535 | .weui-panel__hd:after {
1536 | content: " ";
1537 | position: absolute;
1538 | left: 0;
1539 | bottom: 0;
1540 | right: 0;
1541 | height: 1px;
1542 | border-bottom: 1px solid #e5e5e5;
1543 | color: #e5e5e5;
1544 | -webkit-transform-origin: 0 100%;
1545 | transform-origin: 0 100%;
1546 | -webkit-transform: scaleY(.5);
1547 | transform: scaleY(.5);
1548 | left: 15px
1549 | }
1550 |
1551 | .weui-media-box {
1552 | padding: 15px;
1553 | position: relative
1554 | }
1555 |
1556 | .weui-media-box:before {
1557 | content: " ";
1558 | position: absolute;
1559 | left: 0;
1560 | top: 0;
1561 | right: 0;
1562 | height: 1px;
1563 | border-top: 1px solid #e5e5e5;
1564 | color: #e5e5e5;
1565 | -webkit-transform-origin: 0 0;
1566 | transform-origin: 0 0;
1567 | -webkit-transform: scaleY(.5);
1568 | transform: scaleY(.5);
1569 | left: 15px
1570 | }
1571 |
1572 | .weui-media-box:first-child:before {
1573 | display: none
1574 | }
1575 |
1576 | a.weui-media-box {
1577 | color: #000;
1578 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
1579 | }
1580 |
1581 | a.weui-media-box:active {
1582 | background-color: #ececec
1583 | }
1584 |
1585 | .weui-media-box__title {
1586 | font-weight: 400;
1587 | font-size: 17px;
1588 | width: auto;
1589 | overflow: hidden;
1590 | text-overflow: ellipsis;
1591 | white-space: nowrap;
1592 | word-wrap: normal;
1593 | word-wrap: break-word;
1594 | word-break: break-all
1595 | }
1596 |
1597 | .weui-media-box__desc {
1598 | color: #999;
1599 | font-size: 13px;
1600 | line-height: 1.2;
1601 | overflow: hidden;
1602 | text-overflow: ellipsis;
1603 | display: -webkit-box;
1604 | -webkit-box-orient: vertical;
1605 | -webkit-line-clamp: 2
1606 | }
1607 |
1608 | .weui-media-box__info {
1609 | margin-top: 15px;
1610 | padding-bottom: 5px;
1611 | font-size: 13px;
1612 | color: #cecece;
1613 | line-height: 1em;
1614 | list-style: none;
1615 | overflow: hidden
1616 | }
1617 |
1618 | .weui-media-box__info__meta {
1619 | float: left;
1620 | padding-right: 1em
1621 | }
1622 |
1623 | .weui-media-box__info__meta_extra {
1624 | padding-left: 1em;
1625 | border-left: 1px solid #cecece
1626 | }
1627 |
1628 | .weui-media-box_text .weui-media-box__title {
1629 | margin-bottom: 8px
1630 | }
1631 |
1632 | .weui-media-box_appmsg {
1633 | display: -webkit-box;
1634 | display: -webkit-flex;
1635 | display: flex;
1636 | -webkit-box-align: center;
1637 | -webkit-align-items: center;
1638 | align-items: center
1639 | }
1640 |
1641 | .weui-media-box_appmsg .weui-media-box__hd {
1642 | margin-right: .8em;
1643 | width: 60px;
1644 | height: 60px;
1645 | line-height: 60px;
1646 | text-align: center
1647 | }
1648 |
1649 | .weui-media-box_appmsg .weui-media-box__thumb {
1650 | width: 100%;
1651 | max-height: 100%;
1652 | vertical-align: top
1653 | }
1654 |
1655 | .weui-media-box_appmsg .weui-media-box__bd {
1656 | -webkit-box-flex: 1;
1657 | -webkit-flex: 1;
1658 | flex: 1;
1659 | min-width: 0
1660 | }
1661 |
1662 | .weui-media-box_small-appmsg {
1663 | padding: 0
1664 | }
1665 |
1666 | .weui-media-box_small-appmsg .weui-cells {
1667 | margin-top: 0
1668 | }
1669 |
1670 | .weui-media-box_small-appmsg .weui-cells:before {
1671 | display: none
1672 | }
1673 |
1674 | .weui-grids {
1675 | position: relative;
1676 | overflow: hidden
1677 | }
1678 |
1679 | .weui-grids:before {
1680 | right: 0;
1681 | height: 1px;
1682 | border-top: 1px solid #d9d9d9;
1683 | -webkit-transform-origin: 0 0;
1684 | transform-origin: 0 0;
1685 | -webkit-transform: scaleY(.5);
1686 | transform: scaleY(.5)
1687 | }
1688 |
1689 | .weui-grids:after,
1690 | .weui-grids:before {
1691 | content: " ";
1692 | position: absolute;
1693 | left: 0;
1694 | top: 0;
1695 | color: #d9d9d9
1696 | }
1697 |
1698 | .weui-grids:after {
1699 | width: 1px;
1700 | bottom: 0;
1701 | border-left: 1px solid #d9d9d9;
1702 | -webkit-transform-origin: 0 0;
1703 | transform-origin: 0 0;
1704 | -webkit-transform: scaleX(.5);
1705 | transform: scaleX(.5)
1706 | }
1707 |
1708 | .weui-grid {
1709 | position: relative;
1710 | float: left;
1711 | padding: 20px 10px;
1712 | width: 33.33333333%;
1713 | box-sizing: border-box
1714 | }
1715 |
1716 | .weui-grid:before {
1717 | top: 0;
1718 | width: 1px;
1719 | border-right: 1px solid #d9d9d9;
1720 | -webkit-transform-origin: 100% 0;
1721 | transform-origin: 100% 0;
1722 | -webkit-transform: scaleX(.5);
1723 | transform: scaleX(.5)
1724 | }
1725 |
1726 | .weui-grid:after,
1727 | .weui-grid:before {
1728 | content: " ";
1729 | position: absolute;
1730 | right: 0;
1731 | bottom: 0;
1732 | color: #d9d9d9
1733 | }
1734 |
1735 | .weui-grid:after {
1736 | left: 0;
1737 | height: 1px;
1738 | border-bottom: 1px solid #d9d9d9;
1739 | -webkit-transform-origin: 0 100%;
1740 | transform-origin: 0 100%;
1741 | -webkit-transform: scaleY(.5);
1742 | transform: scaleY(.5)
1743 | }
1744 |
1745 | .weui-grid:active {
1746 | background-color: #ececec
1747 | }
1748 |
1749 | .weui-grid__icon {
1750 | width: 28px;
1751 | height: 28px;
1752 | margin: 0 auto
1753 | }
1754 |
1755 | .weui-grid__icon img {
1756 | display: block;
1757 | width: 100%;
1758 | height: 100%
1759 | }
1760 |
1761 | .weui-grid__icon+.weui-grid__label {
1762 | margin-top: 5px
1763 | }
1764 |
1765 | .weui-grid__label {
1766 | display: block;
1767 | color: #000;
1768 | white-space: nowrap;
1769 | text-overflow: ellipsis;
1770 | overflow: hidden
1771 | }
1772 |
1773 | .weui-footer,
1774 | .weui-grid__label {
1775 | text-align: center;
1776 | font-size: 14px
1777 | }
1778 |
1779 | .weui-footer {
1780 | color: #999
1781 | }
1782 |
1783 | .weui-footer a {
1784 | color: #586c94
1785 | }
1786 |
1787 | .weui-footer_fixed-bottom {
1788 | position: fixed;
1789 | bottom: .52em;
1790 | left: 0;
1791 | right: 0
1792 | }
1793 |
1794 | .weui-footer__links {
1795 | font-size: 0
1796 | }
1797 |
1798 | .weui-footer__link {
1799 | display: inline-block;
1800 | vertical-align: top;
1801 | margin: 0 .62em;
1802 | position: relative;
1803 | font-size: 14px
1804 | }
1805 |
1806 | .weui-footer__link:before {
1807 | content: " ";
1808 | position: absolute;
1809 | left: 0;
1810 | top: 0;
1811 | width: 1px;
1812 | bottom: 0;
1813 | border-left: 1px solid #c7c7c7;
1814 | color: #c7c7c7;
1815 | -webkit-transform-origin: 0 0;
1816 | transform-origin: 0 0;
1817 | -webkit-transform: scaleX(.5);
1818 | transform: scaleX(.5);
1819 | left: -.65em;
1820 | top: .36em;
1821 | bottom: .36em
1822 | }
1823 |
1824 | .weui-footer__link:first-child:before {
1825 | display: none
1826 | }
1827 |
1828 | .weui-footer__text {
1829 | padding: 0 .34em;
1830 | font-size: 12px
1831 | }
1832 |
1833 | .weui-flex {
1834 | display: -webkit-box;
1835 | display: -webkit-flex;
1836 | display: flex
1837 | }
1838 |
1839 | .weui-flex__item {
1840 | -webkit-box-flex: 1;
1841 | -webkit-flex: 1;
1842 | flex: 1
1843 | }
1844 |
1845 | .weui-dialog {
1846 | position: fixed;
1847 | z-index: 5000;
1848 | width: 80%;
1849 | max-width: 300px;
1850 | top: 50%;
1851 | left: 50%;
1852 | -webkit-transform: translate(-50%, -50%);
1853 | transform: translate(-50%, -50%);
1854 | background-color: #fff;
1855 | text-align: center;
1856 | border-radius: 3px;
1857 | overflow: hidden
1858 | }
1859 |
1860 | .weui-dialog__hd {
1861 | padding: 1.3em 1.6em .5em
1862 | }
1863 |
1864 | .weui-dialog__title {
1865 | font-weight: 400;
1866 | font-size: 18px
1867 | }
1868 |
1869 | .weui-dialog__bd {
1870 | padding: 0 1.6em .8em;
1871 | min-height: 40px;
1872 | font-size: 15px;
1873 | line-height: 1.3;
1874 | word-wrap: break-word;
1875 | word-break: break-all;
1876 | color: #999
1877 | }
1878 |
1879 | .weui-dialog__bd:first-child {
1880 | padding: 2.7em 20px 1.7em;
1881 | color: #353535
1882 | }
1883 |
1884 | .weui-dialog__ft {
1885 | position: relative;
1886 | line-height: 48px;
1887 | font-size: 18px;
1888 | display: -webkit-box;
1889 | display: -webkit-flex;
1890 | display: flex
1891 | }
1892 |
1893 | .weui-dialog__ft:after {
1894 | content: " ";
1895 | position: absolute;
1896 | left: 0;
1897 | top: 0;
1898 | right: 0;
1899 | height: 1px;
1900 | border-top: 1px solid #d5d5d6;
1901 | color: #d5d5d6;
1902 | -webkit-transform-origin: 0 0;
1903 | transform-origin: 0 0;
1904 | -webkit-transform: scaleY(.5);
1905 | transform: scaleY(.5)
1906 | }
1907 |
1908 | .weui-dialog__btn {
1909 | display: block;
1910 | -webkit-box-flex: 1;
1911 | -webkit-flex: 1;
1912 | flex: 1;
1913 | color: #3cc51f;
1914 | text-decoration: none;
1915 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1916 | position: relative
1917 | }
1918 |
1919 | .weui-dialog__btn:active {
1920 | background-color: #eee
1921 | }
1922 |
1923 | .weui-dialog__btn:after {
1924 | content: " ";
1925 | position: absolute;
1926 | left: 0;
1927 | top: 0;
1928 | width: 1px;
1929 | bottom: 0;
1930 | border-left: 1px solid #d5d5d6;
1931 | color: #d5d5d6;
1932 | -webkit-transform-origin: 0 0;
1933 | transform-origin: 0 0;
1934 | -webkit-transform: scaleX(.5);
1935 | transform: scaleX(.5)
1936 | }
1937 |
1938 | .weui-dialog__btn:first-child:after {
1939 | display: none
1940 | }
1941 |
1942 | .weui-dialog__btn_default {
1943 | color: #353535
1944 | }
1945 |
1946 | .weui-dialog__btn_primary {
1947 | color: #0bb20c
1948 | }
1949 |
1950 | .weui-skin_android .weui-dialog {
1951 | text-align: left;
1952 | box-shadow: 0 6px 30px 0 rgba(0, 0, 0, .1)
1953 | }
1954 |
1955 | .weui-skin_android .weui-dialog__title {
1956 | font-size: 21px
1957 | }
1958 |
1959 | .weui-skin_android .weui-dialog__hd {
1960 | text-align: left
1961 | }
1962 |
1963 | .weui-skin_android .weui-dialog__bd {
1964 | color: #999;
1965 | padding: .25em 1.6em 2em;
1966 | font-size: 17px;
1967 | text-align: left
1968 | }
1969 |
1970 | .weui-skin_android .weui-dialog__bd:first-child {
1971 | padding: 1.6em 1.6em 2em;
1972 | color: #353535
1973 | }
1974 |
1975 | .weui-skin_android .weui-dialog__ft {
1976 | display: block;
1977 | text-align: right;
1978 | line-height: 42px;
1979 | font-size: 16px;
1980 | padding: 0 1.6em .7em
1981 | }
1982 |
1983 | .weui-skin_android .weui-dialog__ft:after {
1984 | display: none
1985 | }
1986 |
1987 | .weui-skin_android .weui-dialog__btn {
1988 | display: inline-block;
1989 | vertical-align: top;
1990 | padding: 0 .8em
1991 | }
1992 |
1993 | .weui-skin_android .weui-dialog__btn:after {
1994 | display: none
1995 | }
1996 |
1997 | .weui-skin_android .weui-dialog__btn:active,
1998 | .weui-skin_android .weui-dialog__btn:visited {
1999 | background-color: rgba(0, 0, 0, .06)
2000 | }
2001 |
2002 | .weui-skin_android .weui-dialog__btn:last-child {
2003 | margin-right: -.8em
2004 | }
2005 |
2006 | .weui-skin_android .weui-dialog__btn_default {
2007 | color: gray
2008 | }
2009 |
2010 | @media screen and (min-width:1024px) {
2011 | .weui-dialog {
2012 | width: 35%
2013 | }
2014 | }
2015 |
2016 | .weui-toast {
2017 | position: fixed;
2018 | z-index: 5000;
2019 | width: 7.6em;
2020 | min-height: 7.6em;
2021 | top: 180px;
2022 | left: 50%;
2023 | margin-left: -3.8em;
2024 | background: hsla(0, 0%, 7%, .7);
2025 | text-align: center;
2026 | border-radius: 5px;
2027 | color: #fff
2028 | }
2029 |
2030 | .weui-icon_toast {
2031 | margin: 22px 0 0;
2032 | display: block
2033 | }
2034 |
2035 | .weui-icon_toast.weui-icon-success-no-circle:before {
2036 | color: #fff;
2037 | font-size: 55px
2038 | }
2039 |
2040 | .weui-icon_toast.weui-loading {
2041 | margin: 30px 0 0;
2042 | width: 38px;
2043 | height: 38px;
2044 | vertical-align: baseline
2045 | }
2046 |
2047 | .weui-toast__content {
2048 | margin: 0 0 15px
2049 | }
2050 |
2051 | .weui-mask {
2052 | background: rgba(0, 0, 0, .6)
2053 | }
2054 |
2055 | .weui-mask,
2056 | .weui-mask_transparent {
2057 | position: fixed;
2058 | z-index: 1000;
2059 | top: 0;
2060 | right: 0;
2061 | left: 0;
2062 | bottom: 0
2063 | }
2064 |
2065 | .weui-actionsheet {
2066 | position: fixed;
2067 | left: 0;
2068 | bottom: 0;
2069 | -webkit-transform: translateY(100%);
2070 | transform: translateY(100%);
2071 | -webkit-backface-visibility: hidden;
2072 | backface-visibility: hidden;
2073 | z-index: 5000;
2074 | width: 100%;
2075 | background-color: #efeff4;
2076 | -webkit-transition: -webkit-transform .3s;
2077 | transition: -webkit-transform .3s;
2078 | transition: transform .3s;
2079 | transition: transform .3s, -webkit-transform .3s
2080 | }
2081 |
2082 | .weui-actionsheet__menu {
2083 | background-color: #fff
2084 | }
2085 |
2086 | .weui-actionsheet__action {
2087 | margin-top: 6px;
2088 | background-color: #fff
2089 | }
2090 |
2091 | .weui-actionsheet__cell {
2092 | position: relative;
2093 | padding: 10px 0;
2094 | text-align: center;
2095 | font-size: 18px
2096 | }
2097 |
2098 | .weui-actionsheet__cell:before {
2099 | content: " ";
2100 | position: absolute;
2101 | left: 0;
2102 | top: 0;
2103 | right: 0;
2104 | height: 1px;
2105 | border-top: 1px solid #d9d9d9;
2106 | color: #d9d9d9;
2107 | -webkit-transform-origin: 0 0;
2108 | transform-origin: 0 0;
2109 | -webkit-transform: scaleY(.5);
2110 | transform: scaleY(.5)
2111 | }
2112 |
2113 | .weui-actionsheet__cell:active {
2114 | background-color: #ececec
2115 | }
2116 |
2117 | .weui-actionsheet__cell:first-child:before {
2118 | display: none
2119 | }
2120 |
2121 | .weui-skin_android .weui-actionsheet {
2122 | position: fixed;
2123 | left: 50%;
2124 | top: 50%;
2125 | bottom: auto;
2126 | -webkit-transform: translate(-50%, -50%);
2127 | transform: translate(-50%, -50%);
2128 | width: 274px;
2129 | box-sizing: border-box;
2130 | -webkit-backface-visibility: hidden;
2131 | backface-visibility: hidden;
2132 | background: transparent;
2133 | -webkit-transition: -webkit-transform .3s;
2134 | transition: -webkit-transform .3s;
2135 | transition: transform .3s;
2136 | transition: transform .3s, -webkit-transform .3s
2137 | }
2138 |
2139 | .weui-skin_android .weui-actionsheet__action {
2140 | display: none
2141 | }
2142 |
2143 | .weui-skin_android .weui-actionsheet__menu {
2144 | border-radius: 2px;
2145 | box-shadow: 0 6px 30px 0 rgba(0, 0, 0, .1)
2146 | }
2147 |
2148 | .weui-skin_android .weui-actionsheet__cell {
2149 | padding: 13px 24px;
2150 | font-size: 16px;
2151 | line-height: 1.4;
2152 | text-align: left
2153 | }
2154 |
2155 | .weui-skin_android .weui-actionsheet__cell:first-child {
2156 | border-top-left-radius: 2px;
2157 | border-top-right-radius: 2px
2158 | }
2159 |
2160 | .weui-skin_android .weui-actionsheet__cell:last-child {
2161 | border-bottom-left-radius: 2px;
2162 | border-bottom-right-radius: 2px
2163 | }
2164 |
2165 | .weui-actionsheet_toggle {
2166 | -webkit-transform: translate(0);
2167 | transform: translate(0)
2168 | }
2169 |
2170 | .weui-loadmore {
2171 | width: 65%;
2172 | margin: 1.5em auto;
2173 | line-height: 1.6em;
2174 | font-size: 14px;
2175 | text-align: center
2176 | }
2177 |
2178 | .weui-loadmore__tips {
2179 | display: inline-block;
2180 | vertical-align: middle
2181 | }
2182 |
2183 | .weui-loadmore_line {
2184 | border-top: 1px solid #e5e5e5;
2185 | margin-top: 2.4em
2186 | }
2187 |
2188 | .weui-loadmore_line .weui-loadmore__tips {
2189 | position: relative;
2190 | top: -.9em;
2191 | padding: 0 .55em;
2192 | background-color: #fff;
2193 | color: #999
2194 | }
2195 |
2196 | .weui-loadmore_dot .weui-loadmore__tips {
2197 | padding: 0 .16em
2198 | }
2199 |
2200 | .weui-loadmore_dot .weui-loadmore__tips:before {
2201 | content: " ";
2202 | width: 4px;
2203 | height: 4px;
2204 | border-radius: 50%;
2205 | background-color: #e5e5e5;
2206 | display: inline-block;
2207 | position: relative;
2208 | vertical-align: 0;
2209 | top: -.16em
2210 | }
2211 |
2212 | .weui-badge {
2213 | display: inline-block;
2214 | padding: .15em .4em;
2215 | min-width: 8px;
2216 | border-radius: 18px;
2217 | background-color: #f43530;
2218 | color: #fff;
2219 | line-height: 1.2;
2220 | text-align: center;
2221 | font-size: 12px;
2222 | vertical-align: middle
2223 | }
2224 |
2225 | .weui-badge_dot {
2226 | padding: .4em;
2227 | min-width: 0
2228 | }
2229 |
2230 | .weui-search-bar {
2231 | position: relative;
2232 | padding: 8px 10px;
2233 | display: -webkit-box;
2234 | display: -webkit-flex;
2235 | display: flex;
2236 | box-sizing: border-box;
2237 | background-color: #efeff4
2238 | }
2239 |
2240 | .weui-search-bar:before {
2241 | top: 0;
2242 | border-top: 1px solid #d7d6dc;
2243 | -webkit-transform-origin: 0 0;
2244 | transform-origin: 0 0;
2245 | -webkit-transform: scaleY(.5);
2246 | transform: scaleY(.5)
2247 | }
2248 |
2249 | .weui-search-bar:after,
2250 | .weui-search-bar:before {
2251 | content: " ";
2252 | position: absolute;
2253 | left: 0;
2254 | right: 0;
2255 | height: 1px;
2256 | color: #d7d6dc
2257 | }
2258 |
2259 | .weui-search-bar:after {
2260 | bottom: 0;
2261 | border-bottom: 1px solid #d7d6dc;
2262 | -webkit-transform-origin: 0 100%;
2263 | transform-origin: 0 100%;
2264 | -webkit-transform: scaleY(.5);
2265 | transform: scaleY(.5)
2266 | }
2267 |
2268 | .weui-search-bar.weui-search-bar_focusing .weui-search-bar__cancel-btn {
2269 | display: block
2270 | }
2271 |
2272 | .weui-search-bar.weui-search-bar_focusing .weui-search-bar__label {
2273 | display: none
2274 | }
2275 |
2276 | .weui-search-bar__form {
2277 | position: relative;
2278 | -webkit-box-flex: 1;
2279 | -webkit-flex: auto;
2280 | flex: auto;
2281 | background-color: #efeff4
2282 | }
2283 |
2284 | .weui-search-bar__form:after {
2285 | content: "";
2286 | position: absolute;
2287 | left: 0;
2288 | top: 0;
2289 | width: 200%;
2290 | height: 200%;
2291 | -webkit-transform: scale(.5);
2292 | transform: scale(.5);
2293 | -webkit-transform-origin: 0 0;
2294 | transform-origin: 0 0;
2295 | border-radius: 10px;
2296 | border: 1px solid #e6e6ea;
2297 | box-sizing: border-box;
2298 | background: #fff
2299 | }
2300 |
2301 | .weui-search-bar__box {
2302 | position: relative;
2303 | padding-left: 30px;
2304 | padding-right: 30px;
2305 | height: 100%;
2306 | width: 100%;
2307 | box-sizing: border-box;
2308 | z-index: 1
2309 | }
2310 |
2311 | .weui-search-bar__box .weui-search-bar__input {
2312 | padding: 4px 0;
2313 | width: 100%;
2314 | height: 1.42857143em;
2315 | border: 0;
2316 | font-size: 14px;
2317 | line-height: 1.42857143em;
2318 | box-sizing: content-box;
2319 | background: transparent
2320 | }
2321 |
2322 | .weui-search-bar__box .weui-search-bar__input:focus {
2323 | outline: none
2324 | }
2325 |
2326 | .weui-search-bar__box .weui-icon-search {
2327 | position: absolute;
2328 | left: 10px;
2329 | top: 0;
2330 | line-height: 28px
2331 | }
2332 |
2333 | .weui-search-bar__box .weui-icon-clear {
2334 | position: absolute;
2335 | top: 0;
2336 | right: 0;
2337 | padding: 0 10px;
2338 | line-height: 28px
2339 | }
2340 |
2341 | .weui-search-bar__label {
2342 | position: absolute;
2343 | top: 1px;
2344 | right: 1px;
2345 | bottom: 1px;
2346 | left: 1px;
2347 | z-index: 2;
2348 | border-radius: 3px;
2349 | text-align: center;
2350 | color: #9b9b9b;
2351 | background: #fff
2352 | }
2353 |
2354 | .weui-search-bar__label span {
2355 | display: inline-block;
2356 | font-size: 14px;
2357 | vertical-align: middle
2358 | }
2359 |
2360 | .weui-search-bar__label .weui-icon-search {
2361 | margin-right: 5px
2362 | }
2363 |
2364 | .weui-search-bar__cancel-btn {
2365 | display: none;
2366 | margin-left: 10px;
2367 | line-height: 28px;
2368 | color: #09bb07;
2369 | white-space: nowrap
2370 | }
2371 |
2372 | .weui-search-bar__input:not(:valid)~.weui-icon-clear {
2373 | display: none
2374 | }
2375 |
2376 | input[type=search]::-webkit-search-cancel-button,
2377 | input[type=search]::-webkit-search-decoration,
2378 | input[type=search]::-webkit-search-results-button,
2379 | input[type=search]::-webkit-search-results-decoration {
2380 | display: none
2381 | }
2382 |
2383 | .weui-picker {
2384 | position: fixed;
2385 | width: 100%;
2386 | left: 0;
2387 | bottom: 0;
2388 | z-index: 5000;
2389 | -webkit-backface-visibility: hidden;
2390 | backface-visibility: hidden;
2391 | -webkit-transform: translateY(100%);
2392 | transform: translateY(100%);
2393 | -webkit-transition: -webkit-transform .3s;
2394 | transition: -webkit-transform .3s;
2395 | transition: transform .3s;
2396 | transition: transform .3s, -webkit-transform .3s
2397 | }
2398 |
2399 | .weui-picker__hd {
2400 | display: -webkit-box;
2401 | display: -webkit-flex;
2402 | display: flex;
2403 | padding: 10px 15px;
2404 | background-color: #fbf9fe;
2405 | position: relative;
2406 | text-align: center
2407 | }
2408 |
2409 | .weui-picker__hd:after {
2410 | content: " ";
2411 | position: absolute;
2412 | left: 0;
2413 | bottom: 0;
2414 | right: 0;
2415 | height: 1px;
2416 | border-bottom: 1px solid #e5e5e5;
2417 | color: #e5e5e5;
2418 | -webkit-transform-origin: 0 100%;
2419 | transform-origin: 0 100%;
2420 | -webkit-transform: scaleY(.5);
2421 | transform: scaleY(.5)
2422 | }
2423 |
2424 | .weui-picker__action {
2425 | display: block;
2426 | -webkit-box-flex: 1;
2427 | -webkit-flex: 1;
2428 | flex: 1;
2429 | color: #586c94
2430 | }
2431 |
2432 | .weui-picker__action:first-child {
2433 | text-align: left
2434 | }
2435 |
2436 | .weui-picker__action:last-child {
2437 | text-align: right
2438 | }
2439 |
2440 | .weui-picker__bd {
2441 | display: -webkit-box;
2442 | display: -webkit-flex;
2443 | display: flex;
2444 | position: relative;
2445 | background-color: #fff;
2446 | height: 238px;
2447 | overflow: hidden
2448 | }
2449 |
2450 | .weui-picker__group {
2451 | -webkit-box-flex: 1;
2452 | -webkit-flex: 1;
2453 | flex: 1;
2454 | position: relative;
2455 | height: 100%
2456 | }
2457 |
2458 | .weui-picker__mask {
2459 | top: 0;
2460 | height: 100%;
2461 | margin: 0 auto;
2462 | background: -webkit-linear-gradient(top, hsla(0, 0%, 100%, .95), hsla(0, 0%, 100%, .6)), -webkit-linear-gradient(bottom, hsla(0, 0%, 100%, .95), hsla(0, 0%, 100%, .6));
2463 | background: linear-gradient(180deg, hsla(0, 0%, 100%, .95), hsla(0, 0%, 100%, .6)), linear-gradient(0deg, hsla(0, 0%, 100%, .95), hsla(0, 0%, 100%, .6));
2464 | background-position: top, bottom;
2465 | background-size: 100% 102px;
2466 | background-repeat: no-repeat;
2467 | -webkit-transform: translateZ(0);
2468 | transform: translateZ(0)
2469 | }
2470 |
2471 | .weui-picker__indicator,
2472 | .weui-picker__mask {
2473 | position: absolute;
2474 | left: 0;
2475 | width: 100%;
2476 | z-index: 3
2477 | }
2478 |
2479 | .weui-picker__indicator {
2480 | height: 34px;
2481 | top: 102px
2482 | }
2483 |
2484 | .weui-picker__indicator:before {
2485 | top: 0;
2486 | border-top: 1px solid #e5e5e5;
2487 | -webkit-transform-origin: 0 0;
2488 | transform-origin: 0 0;
2489 | -webkit-transform: scaleY(.5);
2490 | transform: scaleY(.5)
2491 | }
2492 |
2493 | .weui-picker__indicator:after,
2494 | .weui-picker__indicator:before {
2495 | content: " ";
2496 | position: absolute;
2497 | left: 0;
2498 | right: 0;
2499 | height: 1px;
2500 | color: #e5e5e5
2501 | }
2502 |
2503 | .weui-picker__indicator:after {
2504 | bottom: 0;
2505 | border-bottom: 1px solid #e5e5e5;
2506 | -webkit-transform-origin: 0 100%;
2507 | transform-origin: 0 100%;
2508 | -webkit-transform: scaleY(.5);
2509 | transform: scaleY(.5)
2510 | }
2511 |
2512 | .weui-picker__content {
2513 | position: absolute;
2514 | top: 0;
2515 | left: 0;
2516 | width: 100%
2517 | }
2518 |
2519 | .weui-picker__item {
2520 | padding: 5px 0 4px;
2521 | text-align: center;
2522 | color: #000;
2523 | text-overflow: ellipsis;
2524 | white-space: nowrap;
2525 | overflow: hidden
2526 | }
2527 |
2528 | .weui-picker__item_disabled {
2529 | color: #999
2530 | }
2531 |
2532 | @-webkit-keyframes a {
2533 | 0% {
2534 | -webkit-transform: translate3d(0, 100%, 0);
2535 | transform: translate3d(0, 100%, 0)
2536 | }
2537 | to {
2538 | -webkit-transform: translateZ(0);
2539 | transform: translateZ(0)
2540 | }
2541 | }
2542 |
2543 | @keyframes a {
2544 | 0% {
2545 | -webkit-transform: translate3d(0, 100%, 0);
2546 | transform: translate3d(0, 100%, 0)
2547 | }
2548 | to {
2549 | -webkit-transform: translateZ(0);
2550 | transform: translateZ(0)
2551 | }
2552 | }
2553 |
2554 | .weui-animate-slide-up {
2555 | -webkit-animation: a ease .3s forwards;
2556 | animation: a ease .3s forwards
2557 | }
2558 |
2559 | @-webkit-keyframes b {
2560 | 0% {
2561 | -webkit-transform: translateZ(0);
2562 | transform: translateZ(0)
2563 | }
2564 | to {
2565 | -webkit-transform: translate3d(0, 100%, 0);
2566 | transform: translate3d(0, 100%, 0)
2567 | }
2568 | }
2569 |
2570 | @keyframes b {
2571 | 0% {
2572 | -webkit-transform: translateZ(0);
2573 | transform: translateZ(0)
2574 | }
2575 | to {
2576 | -webkit-transform: translate3d(0, 100%, 0);
2577 | transform: translate3d(0, 100%, 0)
2578 | }
2579 | }
2580 |
2581 | .weui-animate-slide-down {
2582 | -webkit-animation: b ease .3s forwards;
2583 | animation: b ease .3s forwards
2584 | }
2585 |
2586 | @-webkit-keyframes c {
2587 | 0% {
2588 | opacity: 0
2589 | }
2590 | to {
2591 | opacity: 1
2592 | }
2593 | }
2594 |
2595 | @keyframes c {
2596 | 0% {
2597 | opacity: 0
2598 | }
2599 | to {
2600 | opacity: 1
2601 | }
2602 | }
2603 |
2604 | .weui-animate-fade-in {
2605 | -webkit-animation: c ease .3s forwards;
2606 | animation: c ease .3s forwards
2607 | }
2608 |
2609 | @-webkit-keyframes d {
2610 | 0% {
2611 | opacity: 1
2612 | }
2613 | to {
2614 | opacity: 0
2615 | }
2616 | }
2617 |
2618 | @keyframes d {
2619 | 0% {
2620 | opacity: 1
2621 | }
2622 | to {
2623 | opacity: 0
2624 | }
2625 | }
2626 |
2627 | .weui-animate-fade-out {
2628 | -webkit-animation: d ease .3s forwards;
2629 | animation: d ease .3s forwards
2630 | }
2631 |
2632 | .weui-agree {
2633 | display: block;
2634 | padding: .5em 15px;
2635 | font-size: 13px
2636 | }
2637 |
2638 | .weui-agree a {
2639 | color: #586c94
2640 | }
2641 |
2642 | .weui-agree__text {
2643 | color: #999
2644 | }
2645 |
2646 | .weui-agree__checkbox {
2647 | -webkit-appearance: none;
2648 | appearance: none;
2649 | outline: 0;
2650 | font-size: 0;
2651 | border: 1px solid #d1d1d1;
2652 | background-color: #fff;
2653 | border-radius: 3px;
2654 | width: 13px;
2655 | height: 13px;
2656 | position: relative;
2657 | vertical-align: 0;
2658 | top: 2px
2659 | }
2660 |
2661 | .weui-agree__checkbox:checked:before {
2662 | font-family: weui;
2663 | font-style: normal;
2664 | font-weight: 400;
2665 | font-variant: normal;
2666 | text-transform: none;
2667 | text-align: center;
2668 | speak: none;
2669 | display: inline-block;
2670 | vertical-align: middle;
2671 | text-decoration: inherit;
2672 | content: "\EA08";
2673 | color: #09bb07;
2674 | font-size: 13px;
2675 | position: absolute;
2676 | top: 50%;
2677 | left: 50%;
2678 | -webkit-transform: translate(-50%, -48%) scale(.73);
2679 | transform: translate(-50%, -48%) scale(.73)
2680 | }
2681 |
2682 | .weui-agree__checkbox:disabled {
2683 | background-color: #e1e1e1
2684 | }
2685 |
2686 | .weui-agree__checkbox:disabled:before {
2687 | color: #adadad
2688 | }
2689 |
2690 | .weui-loading {
2691 | width: 20px;
2692 | height: 20px;
2693 | display: inline-block;
2694 | vertical-align: middle;
2695 | -webkit-animation: e 1s steps(12) infinite;
2696 | animation: e 1s steps(12) infinite;
2697 | background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;
2698 | background-size: 100%
2699 | }
2700 |
2701 | .weui-loading.weui-loading_transparent {
2702 | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")
2703 | }
2704 |
2705 | @-webkit-keyframes e {
2706 | 0% {
2707 | -webkit-transform: rotate(0deg);
2708 | transform: rotate(0deg)
2709 | }
2710 | to {
2711 | -webkit-transform: rotate(1turn);
2712 | transform: rotate(1turn)
2713 | }
2714 | }
2715 |
2716 | @keyframes e {
2717 | 0% {
2718 | -webkit-transform: rotate(0deg);
2719 | transform: rotate(0deg)
2720 | }
2721 | to {
2722 | -webkit-transform: rotate(1turn);
2723 | transform: rotate(1turn)
2724 | }
2725 | }
2726 |
2727 | .weui-slider {
2728 | padding: 15px 18px;
2729 | -webkit-user-select: none;
2730 | user-select: none
2731 | }
2732 |
2733 | .weui-slider__inner {
2734 | position: relative;
2735 | height: 2px;
2736 | background-color: #e9e9e9
2737 | }
2738 |
2739 | .weui-slider__track {
2740 | height: 2px;
2741 | background-color: #1aad19;
2742 | width: 0
2743 | }
2744 |
2745 | .weui-slider__handler {
2746 | position: absolute;
2747 | left: 0;
2748 | top: 50%;
2749 | width: 28px;
2750 | height: 28px;
2751 | margin-left: -14px;
2752 | margin-top: -14px;
2753 | border-radius: 50%;
2754 | background-color: #fff;
2755 | box-shadow: 0 0 4px rgba(0, 0, 0, .2)
2756 | }
2757 |
2758 | .weui-slider-box {
2759 | display: -webkit-box;
2760 | display: -webkit-flex;
2761 | display: flex;
2762 | -webkit-box-align: center;
2763 | -webkit-align-items: center;
2764 | align-items: center
2765 | }
2766 |
2767 | .weui-slider-box .weui-slider {
2768 | -webkit-box-flex: 1;
2769 | -webkit-flex: 1;
2770 | flex: 1
2771 | }
2772 |
2773 | .weui-slider-box__value {
2774 | margin-left: .5em;
2775 | min-width: 24px;
2776 | color: #888;
2777 | text-align: center;
2778 | font-size: 14px
2779 | }
--------------------------------------------------------------------------------
/src/assets/image/book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/book.png
--------------------------------------------------------------------------------
/src/assets/image/chat-info-qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/chat-info-qr.png
--------------------------------------------------------------------------------
/src/assets/image/contact_add-friend-addgroup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_add-friend-addgroup.png
--------------------------------------------------------------------------------
/src/assets/image/contact_add-friend-contacts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_add-friend-contacts.png
--------------------------------------------------------------------------------
/src/assets/image/contact_add-friend-my-qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_add-friend-my-qr.png
--------------------------------------------------------------------------------
/src/assets/image/contact_add-friend-offical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_add-friend-offical.png
--------------------------------------------------------------------------------
/src/assets/image/contact_add-friend-reda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_add-friend-reda.png
--------------------------------------------------------------------------------
/src/assets/image/contact_add-friend-scanqr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_add-friend-scanqr.png
--------------------------------------------------------------------------------
/src/assets/image/contact_female.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_female.png
--------------------------------------------------------------------------------
/src/assets/image/contact_male.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_male.png
--------------------------------------------------------------------------------
/src/assets/image/contact_top-addgroup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_top-addgroup.png
--------------------------------------------------------------------------------
/src/assets/image/contact_top-friend-notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_top-friend-notify.png
--------------------------------------------------------------------------------
/src/assets/image/contact_top-offical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_top-offical.png
--------------------------------------------------------------------------------
/src/assets/image/contact_top-tag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/contact_top-tag.png
--------------------------------------------------------------------------------
/src/assets/image/find-album-reflash-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find-album-reflash-icon.png
--------------------------------------------------------------------------------
/src/assets/image/find_icon-bottle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find_icon-bottle.png
--------------------------------------------------------------------------------
/src/assets/image/find_icon-circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find_icon-circle.png
--------------------------------------------------------------------------------
/src/assets/image/find_icon-locationservice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find_icon-locationservice.png
--------------------------------------------------------------------------------
/src/assets/image/find_icon-moregame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find_icon-moregame.png
--------------------------------------------------------------------------------
/src/assets/image/find_icon-qrcode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find_icon-qrcode.png
--------------------------------------------------------------------------------
/src/assets/image/find_icon-shake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find_icon-shake.png
--------------------------------------------------------------------------------
/src/assets/image/find_icon-shopping.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/find_icon-shopping.png
--------------------------------------------------------------------------------
/src/assets/image/me_more-expression.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/me_more-expression.png
--------------------------------------------------------------------------------
/src/assets/image/me_more-my-album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/me_more-my-album.png
--------------------------------------------------------------------------------
/src/assets/image/me_more-my-bank-card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/me_more-my-bank-card.png
--------------------------------------------------------------------------------
/src/assets/image/me_more-my-favorites.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/me_more-my-favorites.png
--------------------------------------------------------------------------------
/src/assets/image/me_more-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/me_more-setting.png
--------------------------------------------------------------------------------
/src/assets/image/me_my-card-package-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/me_my-card-package-icon.png
--------------------------------------------------------------------------------
/src/assets/image/mht.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/mht.jpg
--------------------------------------------------------------------------------
/src/assets/image/mybackground.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/mybackground.jpg
--------------------------------------------------------------------------------
/src/assets/image/myqr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/myqr.png
--------------------------------------------------------------------------------
/src/assets/image/rico.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/rico.png
--------------------------------------------------------------------------------
/src/assets/image/rzf.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/rzf.jpg
--------------------------------------------------------------------------------
/src/assets/image/timg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/timg.png
--------------------------------------------------------------------------------
/src/assets/image/tyx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/tyx.jpg
--------------------------------------------------------------------------------
/src/assets/image/yyx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/yyx.jpg
--------------------------------------------------------------------------------
/src/assets/image/zxl.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/src/assets/image/zxl.jpg
--------------------------------------------------------------------------------
/src/components/common/vfooter.vue:
--------------------------------------------------------------------------------
1 |
2 |
22 |
23 |
28 |
--------------------------------------------------------------------------------
/src/components/common/vheader.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
23 |
--------------------------------------------------------------------------------
/src/components/common/vsearch.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
38 |
--------------------------------------------------------------------------------
/src/components/pages/albums.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 〈 详细资料
6 |
7 |
8 |
9 |
10 |
![]()
11 |
12 |
13 |
{{contacts[usernum].name}}
14 |
15 |
16 |
17 |
18 |
19 | {{contacts[usernum].note}}
20 |
21 |
22 |
23 |
{{themoment.time}}小时前
24 |
25 |
26 |
27 |
28 | {{themoment.content}}
29 |
30 |
31 |
32 |
33 |
34 |
35 |
60 |
--------------------------------------------------------------------------------
/src/components/pages/chatview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 〈 返回
6 |
7 |
8 |
{{$route.query.chatidname}}
9 |
10 |
11 |
12 |
13 |
14 |
{{dia.content}}
15 |
16 |
17 |
25 |
26 |
27 |
28 |
52 |
166 |
--------------------------------------------------------------------------------
/src/components/pages/details.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 〈 返回
5 |
6 |
27 |
28 |
29 |
32 |
33 | {{contacts[usernum].region}}
34 |
35 |
36 |
37 |
38 |
41 |
42 |
43 |
![]()
44 |
45 |
46 |
47 |
48 |
49 |
52 |
53 | {{contacts[usernum].note}}
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
89 |
--------------------------------------------------------------------------------
/src/components/pages/moments.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 〈 返回
6 |
7 |
8 |
9 |
曹昱RICO
10 |

11 |
12 |
13 |
14 |
15 |
16 |
17 |
{{themoments.name}}
18 |
{{themoments.content}}
19 |
20 |
{{themoments.time}}小时前
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
47 |
--------------------------------------------------------------------------------
/src/components/pages/myprofile.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 〈 我
5 |
6 |
7 |
8 |
16 |
17 |
25 |
33 |
34 |
35 |
38 |
39 |

40 |
41 |
42 |
43 |
44 |
45 |
53 |
61 |
62 |
65 |
66 |
手机号更换为13691214473
67 |
68 |
69 |
70 |
71 |
72 |
81 |
--------------------------------------------------------------------------------
/src/components/pages/myqr.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 〈 个人信息
6 |
7 |
8 |

9 |
10 |
11 |
12 |
13 |
22 |
--------------------------------------------------------------------------------
/src/components/pages/personalheader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
20 |
--------------------------------------------------------------------------------
/src/components/pages/photo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 〈 返回
6 |
7 |
8 |
9 |
![]()
10 |
11 |
12 |
{{contacts[usernum].momentsimg[picnum].content}}
13 |
>
16 |
17 |
18 |
19 |
20 |
48 |
100 |
--------------------------------------------------------------------------------
/src/components/pages/settings.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 〈 我
5 |
6 |
13 |
30 |
42 |
49 |
54 |
59 |
60 |
61 |
70 |
--------------------------------------------------------------------------------
/src/components/vcontact.vue:
--------------------------------------------------------------------------------
1 |
2 |
52 |
53 |
67 |
--------------------------------------------------------------------------------
/src/components/vdialogue.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
+
4 |
5 |
6 |
7 |
8 | 发起群聊
9 |
10 |
11 |
12 | 添加朋友
13 |
14 |
15 |
16 | 扫一扫
17 |
18 |
19 |
20 | 收付款
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | {{thedialoge.name}}
31 | {{thedialoge.lasttime}}
32 |
33 |
34 |
35 | {{thedialoge.conversation[thedialoge.conversation.length-1].talker}}:
36 |
37 |
38 | {{thedialoge.conversation[thedialoge.conversation.length-1].content}}
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
68 |
--------------------------------------------------------------------------------
/src/components/vexplore.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |

8 |
9 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |

19 |
20 |
23 |
24 |
25 |
26 |

27 |
28 |
31 |
32 |
33 |
34 |
35 |
36 |

37 |
38 |
41 |
42 |
43 |
44 |

45 |
46 |
49 |
50 |
51 |
73 |
85 |
86 |
87 |
91 |
--------------------------------------------------------------------------------
/src/components/vme.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 |
9 |
曹昱RICO
10 |
微信号: ricardo_cy
11 |
12 |
13 |

14 |
15 |
16 |
17 |
29 |
30 |
31 |
32 |

33 |
34 |
37 |
38 |
39 |
40 |

41 |
42 |
43 |
46 |
47 |
48 |
49 |
50 |

51 |
52 |
55 |
56 |
57 |
58 |

59 |
60 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |

70 |
71 |
74 |
75 |
76 |
77 |
78 |
79 |
83 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue'
4 | import App from './App'
5 | import router from './router'
6 | import store from './vuex/store.js'
7 | import axios from 'axios'
8 |
9 | Vue.prototype.$http = axios;
10 | Vue.config.productionTip = false;
11 | // Vue.use(axios);
12 | /* eslint-disable no-new */
13 | new Vue({
14 | el: '#app',
15 | router,
16 | store,
17 | components: { App },
18 | template: ''
19 | })
20 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Router from 'vue-router';
3 | import vcontact from '../components/vcontact.vue';
4 | import vexplore from '../components/vexplore.vue';
5 | import vdialogue from '../components/vdialogue.vue';
6 | import vme from '../components/vme.vue';
7 | import myprofile from'../components/pages/myprofile.vue';
8 | import personalheader from '../components/pages/personalheader.vue';
9 | import myqr from '../components/pages/myqr.vue';
10 | import settings from '../components/pages/settings.vue';
11 | import details from '../components/pages/details.vue';
12 | import moments from '../components/pages/moments.vue';
13 | import albums from '../components/pages/albums.vue';
14 | import photo from '../components/pages/photo.vue';
15 | import chatview from '../components/pages/chatview.vue';
16 |
17 | Vue.use(Router)
18 |
19 | export default new Router({
20 | routes: [
21 | {
22 | path: '/vcontact',
23 | component: vcontact,
24 | meta:{
25 | title:'联系人'
26 | }
27 | },
28 | {
29 | path: '/vexplore',
30 | component: vexplore,
31 | meta:{
32 | title:'发现'
33 | }
34 | },
35 | {
36 | path: '/',
37 | component: vdialogue,
38 | meta:{
39 | title:'微信'
40 | }
41 | },
42 | {
43 | path: '/vdialogue',
44 | component: vdialogue,
45 | meta:{
46 | title:'微信'
47 | }
48 | },
49 | {
50 | path: '/vme',
51 | component: vme,
52 | meta:{
53 | title:'我'
54 | }
55 | },
56 | {
57 | path: '/myprofile',
58 | component: myprofile,
59 | meta:{
60 | title:'个人信息'
61 | }
62 | },
63 | {
64 | path: '/personalheader',
65 | component: personalheader,
66 | meta:{
67 | title:'个人头像'
68 | }
69 | },
70 | {
71 | path: '/myqr',
72 | component: myqr,
73 | meta:{
74 | title:'我的二维码'
75 | }
76 | },
77 | {
78 | path: '/settings',
79 | component: settings,
80 | meta:{
81 | title:'设置'
82 | }
83 | },
84 | {
85 | path: '/details',
86 | component: details,
87 | meta:{
88 | title:'详细资料'
89 | }
90 | },
91 | {
92 | path: '/moments',
93 | component: moments,
94 | meta:{
95 | title:'朋友圈'
96 | }
97 | },
98 | {
99 | path: '/albums',
100 | component: albums,
101 | meta:{
102 | title:'相册'
103 | }
104 | },
105 | {
106 | path: '/photo',
107 | component: photo,
108 | meta:{
109 | title:'照片'
110 | }
111 | },
112 | {
113 | path: '/chatview',
114 | component: chatview,
115 | meta:{
116 | title:''
117 | }
118 | }
119 | ]
120 | })
121 |
--------------------------------------------------------------------------------
/src/vuex/store.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import vuex from 'vuex'
3 |
4 | Vue.use(vuex);
5 |
6 | export default new vuex.Store({
7 |
8 | })
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rico-c/vue-wechat/86dc18c6fbd2b6e6a1136f192d7bc3c5e6fb33e2/static/.gitkeep
--------------------------------------------------------------------------------
/static/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "contacts": [
3 | {
4 | "name": "尤雨溪",
5 | "id": "EvanYou",
6 | "num":0,
7 | "chatnum":0,
8 | "sex": 1,
9 | "region": "美国",
10 | "headerimg": "https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=d49c7e60ee1190ef15f69a8daf72f673/4afbfbedab64034f29596c8ba6c379310b551da2.jpg",
11 | "momentsimg": [
12 | {
13 | "id": "EvanYou",
14 | "num":0,
15 | "time": 1,
16 | "content":"Vue 的核心库只关注视图层",
17 | "imgs": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523213064737&di=b4f2be5d7a7a3b260b11eab7fd69cf79&imgtype=0&src=http%3A%2F%2Fwww.xz7.com%2Fup%2F2017-7%2F201771392324.png"
18 | },{
19 | "id": "EvanYou",
20 | "num":1,
21 | "time": 4,
22 | "content":"Vue 也完全能够为复杂的单页应用提供驱动",
23 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523213128186&di=b19afbbf938e1057437a0e5719fb9f4a&imgtype=0&src=http%3A%2F%2Fs1.51cto.com%2Fwyfs02%2FM02%2F8A%2FA1%2FwKiom1g1d4KzJLj_AAENEPluz5E910.jpg-wh_651x-s_1750868483.jpg"}
24 | ],
25 | "note": "VUE是一套用于构建用户界面的渐进式框架",
26 | "backgroundimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523213284243&di=53dddd55fe6ce46c4a37cde1a01a0377&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F0197fa570a2bfb6ac7251f05e8c74a.jpg%401280w_1l_2o_100sh.jpg"
27 | },
28 | {
29 | "name": "马化腾",
30 | "id": "pony",
31 | "num":1,
32 | "chatnum":2,
33 | "sex": 1,
34 | "region": "广东 深圳",
35 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
36 | "momentsimg": [
37 | {
38 | "id": "pony",
39 | "num":0,
40 | "time": 2,
41 | "content":"坚持每天发现、修正一两个小问题,不到一年就能把产品打磨出来了。",
42 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523214853042&di=ebfcb386524ddf5e2133d0906a5acb6a&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimage%2Fc0%253Dpixel_huitu%252C0%252C0%252C294%252C40%2Fsign%3Da80e8ff3a451f3ded7bfb124fd969573%2F32fa828ba61ea8d3c807333d9c0a304e251f58e5.jpg"
43 | },{
44 | "id": "pony",
45 | "num":1,
46 | "time": 5,
47 | "content":"做别人做不了的事",
48 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523214906979&di=809829e33b217104785ae17bbf86932c&imgtype=0&src=http%3A%2F%2Farticle.job5156.com%2Fuploads%2F140926%2F1411692855508040.jpg"
49 | },{
50 | "id": "pony",
51 | "num":2,
52 | "time": 7,
53 | "content":"回顾腾讯10年业务的发展,其实就是慢慢地试",
54 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523214974246&di=4fe151e5f93d3f780032f94723c2eb55&imgtype=0&src=http%3A%2F%2Fimg1.iyiou.com%2FCover%2F2017-08-16%2Fgongsi-tengxun.jpg"
55 | }
56 | ],
57 | "note": "テンセントボス",
58 | "backgroundimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523278377687&di=d19b0686eb436341924b12c8901b8a04&imgtype=0&src=http%3A%2F%2Fimg0w.pconline.com.cn%2Fpconline%2F1305%2F14%2F3296135_01.jpg"
59 | },
60 | {
61 | "name": "张小龙",
62 | "id": "AllenZhang",
63 | "num":2,
64 | "chatnum":null,
65 | "sex": 1,
66 | "region": "广东 深圳",
67 | "headerimg": "http://i2.itc.cn/20151208/805_3081ca12_e74c_a8ce_69f1_c28c0264fa0d_4.jpg",
68 | "momentsimg": [
69 | {
70 | "id": "AllenZhang",
71 | "num":0,
72 | "time": 3,
73 | "content":"我们会觉得应该把更多的时间聚焦在用户身上",
74 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523810174&di=a585ae582260fc91ab955cfa43a03f34&imgtype=jpg&er=1&src=http%3A%2F%2Fwaaaat.welovead.com%2Fupload%2Frss_download%2F20180305%2F600_0%2F201803051201173235.jpg"},
75 | {
76 | "id": "AllenZhang",
77 | "num":1,
78 | "time": 10,
79 | "content":"关于微信平台的价值观是让创造发挥价值",
80 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215489217&di=fa900b793d92dab7c0d6d26b644f95cd&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2018%2F079%2F58%2FI6G52P1530EO.jpg"}
81 | ],
82 | "note": "一个好的产品是用完即走的",
83 | "backgroundimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523278400208&di=93cc8fa334f47edea39e95d21b61027a&imgtype=0&src=http%3A%2F%2Fphotocdn.sohu.com%2F20160113%2Fmp54270373_1452667786111_1_th.png"
84 | },
85 | {
86 | "name": "任正非",
87 | "id": "rzf",
88 | "num":3,
89 | "chatnum":1,
90 | "sex": 1,
91 | "region": "广东 深圳",
92 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523189945773&di=d454e42003f2dee23a046e8236405017&imgtype=0&src=http%3A%2F%2Fy1.ifengimg.com%2F7c7ccbd3890051bf%2F2012%2F0429%2Frdn_4f9cf63ee41ba.jpg",
93 | "momentsimg": [
94 | {
95 | "id": "rzf",
96 | "num":0,
97 | "time": 6,
98 | "content":"年轻人不要光从书本上学习,一定要学会从实践中学习",
99 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215597175&di=40df0e3580150c6377c37968561b424a&imgtype=jpg&src=http%3A%2F%2Fimg4.imgtn.bdimg.com%2Fit%2Fu%3D3607873549%2C24252651%26fm%3D214%26gp%3D0.jpg"}
100 | ],
101 | "note": "世界通信行业三分天下,华为将占一分",
102 | "backgroundimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523278417808&di=094bfeb6393be7a21bd49ffb5d12c474&imgtype=0&src=http%3A%2F%2Fwww.chinairn.com%2FUserFiles%2Fimage%2F20161118%2F20161118144638_7185.jpg"
103 | },
104 | {
105 | "name": "唐艺昕",
106 | "id": "tyx",
107 | "num":4,
108 | "chatnum":null,
109 | "sex": 0,
110 | "region": "重庆 沙坪坝",
111 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523784683&di=2c93f15ee642d36cb09acd92eae06f2d&imgtype=jpg&er=1&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201609%2F23%2F20160923224812_4FRHa.jpeg",
112 | "momentsimg": [
113 | {
114 | "id": "tyx",
115 | "num":0,
116 | "time": 8,
117 | "content":"明日回京放放风~",
118 | "imgs":"https://wx1.sinaimg.cn/mw690/63548d94ly1fntujka30lj21yj2i8hdu.jpg"},
119 | {
120 | "id": "tyx",
121 | "num":1,
122 | "time": 9,
123 | "content":"好时节~",
124 | "imgs":"https://wx4.sinaimg.cn/mw690/63112839ly1fq43g0drtbj21400qojze.jpg"
125 | }
126 | ],
127 | "note": "代表作品甄嬛传",
128 | "backgroundimg": "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=492153157,642373384&fm=11&gp=0.jpg"
129 | }
130 | ],
131 | "dialogue": [
132 | {
133 | "name":"尤雨溪",
134 | "member":["尤雨溪","曹昱RICO"],
135 | "type":0,
136 | "num":0,
137 | "lasttime":"上午7:08",
138 | "headerimg":"https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=d49c7e60ee1190ef15f69a8daf72f673/4afbfbedab64034f29596c8ba6c379310b551da2.jpg",
139 | "conversation":[
140 | {
141 | "speaker":"https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=d49c7e60ee1190ef15f69a8daf72f673/4afbfbedab64034f29596c8ba6c379310b551da2.jpg",
142 | "position":"left",
143 | "num":0,
144 | "content":"小伙子你觉得VUE和REACT、Angular哪个好?"
145 | },
146 | {
147 | "speaker":"https://upload-images.jianshu.io/upload_images/9672967-451a147b4ed26b9d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/700",
148 | "position":"right",
149 | "num":null,
150 | "content":"The core idea is don't put all your eggs in a single basket. Picking a JavaScript framework is not a one-or-the-other scenario; you don't have to stick with one forever. And no matter what others say, it's impossible to make the best decision for yourself without trying them out and get first-hand experience with it. If you just go with one and ignore the others, you are almost certainly doing it wrong."
151 | },
152 | {
153 | "speaker": "https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=d49c7e60ee1190ef15f69a8daf72f673/4afbfbedab64034f29596c8ba6c379310b551da2.jpg",
154 | "position":"left",
155 | "num":0,
156 | "content": "渐进式Javascript框架"
157 | }
158 | ]
159 | },
160 | {
161 | "name":"任正非",
162 | "member":["任正非","曹昱RICO"],
163 | "type":0,
164 | "num":1,
165 | "lasttime":"上午7:18",
166 | "headerimg":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523189945773&di=d454e42003f2dee23a046e8236405017&imgtype=0&src=http%3A%2F%2Fy1.ifengimg.com%2F7c7ccbd3890051bf%2F2012%2F0429%2Frdn_4f9cf63ee41ba.jpg",
167 | "conversation":[
168 | {
169 | "speaker":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523189945773&di=d454e42003f2dee23a046e8236405017&imgtype=0&src=http%3A%2F%2Fy1.ifengimg.com%2F7c7ccbd3890051bf%2F2012%2F0429%2Frdn_4f9cf63ee41ba.jpg",
170 | "position":"left",
171 | "num":3,
172 | "content":"要么成为领先者,要么被淘汰"
173 | },
174 | {
175 | "speaker":"https://upload-images.jianshu.io/upload_images/9672967-451a147b4ed26b9d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/700",
176 | "position":"right",
177 | "num":null,
178 | "content":"成为领先者"
179 | }
180 | ]
181 | },
182 | {
183 | "name":"马化腾",
184 | "member":["马化腾","曹昱RICO"],
185 | "type":0,
186 | "num":2,
187 | "lasttime":"上午8:56",
188 | "headerimg":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
189 | "conversation":[
190 | {
191 | "speaker":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
192 | "position":"left",
193 | "num":1,
194 | "content":"我认为腾讯的成功,首先就是技术、产品和用户感这个要非常强。第二,团队稳健、股东架构稳健很重要。"
195 | },
196 | {
197 | "speaker":"https://upload-images.jianshu.io/upload_images/9672967-451a147b4ed26b9d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/700",
198 | "position":"right",
199 | "num":null,
200 | "content":"回顾腾讯10年业务的发展,其实就是慢慢地试,有信心,步子才会逐渐大一点。"
201 | },
202 | {
203 | "speaker":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
204 | "position":"left",
205 | "num":1,
206 | "content":"在中国互联网发展的早期,对大多数网民来说,据我们了解接触,很多是浏览器都不知道,电子邮件也不知道,就知道上QQ就是上网。"
207 | },
208 | {
209 | "speaker":"https://upload-images.jianshu.io/upload_images/9672967-451a147b4ed26b9d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/700",
210 | "position":"right",
211 | "num":null,
212 | "content":"生命在于创造。"
213 | }
214 | ]
215 | },
216 | {
217 | "name":"重庆大学校友群",
218 | "member":["任正非","唐艺昕","曹昱RICO"],
219 | "type":1,
220 | "num":3,
221 | "lasttime":"上午9:18",
222 | "headerimg":"https://upload-images.jianshu.io/upload_images/9672967-aa376c146059a6cf.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/283",
223 | "conversation":[
224 | {
225 | "talker":"任正非",
226 | "speaker":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523189945773&di=d454e42003f2dee23a046e8236405017&imgtype=0&src=http%3A%2F%2Fy1.ifengimg.com%2F7c7ccbd3890051bf%2F2012%2F0429%2Frdn_4f9cf63ee41ba.jpg",
227 | "position":"left",
228 | "num":3,
229 | "content":"1929年刘湘创办重庆大学,20世纪40年代成为有文、理、工、商、法、医6个学院的国立综合性大学,1942年更名为国立重庆大学。"
230 | },{
231 | "talker":"唐艺昕",
232 | "speaker":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523784683&di=2c93f15ee642d36cb09acd92eae06f2d&imgtype=jpg&er=1&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201609%2F23%2F20160923224812_4FRHa.jpeg",
233 | "position":"left",
234 | "num":4,
235 | "content":"马寅初、李四光等一大批学者来到重庆大学教学。"
236 | },{
237 | "talker":"曹昱RICO",
238 | "speaker":"https://upload-images.jianshu.io/upload_images/9672967-451a147b4ed26b9d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/700",
239 | "position":"right",
240 | "num":null,
241 | "content":"耐劳苦,尚俭朴,勤学业,爱国家"
242 | }
243 | ]
244 | },
245 | {
246 | "name":"微信产品群",
247 | "member":["马化腾","张小龙","曹昱RICO"],
248 | "type":1,
249 | "num":4,
250 | "lasttime":"上午10:00",
251 | "headerimg":"https://upload-images.jianshu.io/upload_images/9672967-237246372d3eb09f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/283",
252 | "conversation":[
253 | {
254 | "talker":"马化腾",
255 | "speaker":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
256 | "position":"left",
257 | "num":1,
258 | "content":"微信是什么"
259 | },{
260 | "talker":"张小龙",
261 | "speaker":"http://i2.itc.cn/20151208/805_3081ca12_e74c_a8ce_69f1_c28c0264fa0d_4.jpg",
262 | "position":"left",
263 | "num":2,
264 | "content":"你如何使用微信,决定了微信是什么。"
265 | }
266 | ]
267 | }
268 | ],
269 | "moments": [
270 | {
271 | "name": "尤雨溪",
272 | "headerimg": "https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=d49c7e60ee1190ef15f69a8daf72f673/4afbfbedab64034f29596c8ba6c379310b551da2.jpg",
273 | "time": 1,
274 | "content":"Vue 的核心库只关注视图层",
275 | "imgs": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523213064737&di=b4f2be5d7a7a3b260b11eab7fd69cf79&imgtype=0&src=http%3A%2F%2Fwww.xz7.com%2Fup%2F2017-7%2F201771392324.png"
276 | },
277 | {
278 | "name": "马化腾",
279 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
280 | "time": 2,
281 | "content":"坚持每天发现、修正一两个小问题,不到一年就能把产品打磨出来了。",
282 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523214853042&di=ebfcb386524ddf5e2133d0906a5acb6a&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimage%2Fc0%253Dpixel_huitu%252C0%252C0%252C294%252C40%2Fsign%3Da80e8ff3a451f3ded7bfb124fd969573%2F32fa828ba61ea8d3c807333d9c0a304e251f58e5.jpg"
283 | },
284 | {
285 | "name": "张小龙",
286 | "headerimg": "http://i2.itc.cn/20151208/805_3081ca12_e74c_a8ce_69f1_c28c0264fa0d_4.jpg",
287 | "time": 3,
288 | "content":"我们会觉得应该把更多的时间聚焦在用户身上",
289 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523810174&di=a585ae582260fc91ab955cfa43a03f34&imgtype=jpg&er=1&src=http%3A%2F%2Fwaaaat.welovead.com%2Fupload%2Frss_download%2F20180305%2F600_0%2F201803051201173235.jpg"
290 | },
291 | {
292 | "name": "尤雨溪",
293 | "headerimg": "https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=d49c7e60ee1190ef15f69a8daf72f673/4afbfbedab64034f29596c8ba6c379310b551da2.jpg",
294 | "time": 4,
295 | "content":"Vue 也完全能够为复杂的单页应用提供驱动",
296 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523213128186&di=b19afbbf938e1057437a0e5719fb9f4a&imgtype=0&src=http%3A%2F%2Fs1.51cto.com%2Fwyfs02%2FM02%2F8A%2FA1%2FwKiom1g1d4KzJLj_AAENEPluz5E910.jpg-wh_651x-s_1750868483.jpg"
297 | },
298 | {
299 | "name": "马化腾",
300 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
301 | "time": 5,
302 | "content":"做别人做不了的事",
303 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523214906979&di=809829e33b217104785ae17bbf86932c&imgtype=0&src=http%3A%2F%2Farticle.job5156.com%2Fuploads%2F140926%2F1411692855508040.jpg"
304 | },
305 | {
306 | "name": "任正非",
307 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523189945773&di=d454e42003f2dee23a046e8236405017&imgtype=0&src=http%3A%2F%2Fy1.ifengimg.com%2F7c7ccbd3890051bf%2F2012%2F0429%2Frdn_4f9cf63ee41ba.jpg",
308 | "time": 6,
309 | "content":"年轻人不要光从书本上学习,一定要学会从实践中学习",
310 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215597175&di=40df0e3580150c6377c37968561b424a&imgtype=jpg&src=http%3A%2F%2Fimg4.imgtn.bdimg.com%2Fit%2Fu%3D3607873549%2C24252651%26fm%3D214%26gp%3D0.jpg"
311 | },
312 | {
313 | "name": "马化腾",
314 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215026185&di=97675718d3c220e7fb46453abc7d8633&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20150624%2F51%2F10411837753251226111.jpg",
315 | "time": 7,
316 | "content":"回顾腾讯10年业务的发展,其实就是慢慢地试",
317 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523214974246&di=4fe151e5f93d3f780032f94723c2eb55&imgtype=0&src=http%3A%2F%2Fimg1.iyiou.com%2FCover%2F2017-08-16%2Fgongsi-tengxun.jpg"
318 | },
319 | {
320 | "name": "唐艺昕",
321 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523784683&di=2c93f15ee642d36cb09acd92eae06f2d&imgtype=jpg&er=1&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201609%2F23%2F20160923224812_4FRHa.jpeg",
322 | "time": 8,
323 | "content":"明日回京放放风~",
324 | "imgs":"https://wx1.sinaimg.cn/mw690/63548d94ly1fntujka30lj21yj2i8hdu.jpg"
325 | },
326 | {
327 | "name": "唐艺昕",
328 | "headerimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523784683&di=2c93f15ee642d36cb09acd92eae06f2d&imgtype=jpg&er=1&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201609%2F23%2F20160923224812_4FRHa.jpeg",
329 | "time": 9,
330 | "content":"好时节~",
331 | "imgs":"https://wx4.sinaimg.cn/mw690/63112839ly1fq43g0drtbj21400qojze.jpg"
332 | },
333 | {
334 | "name": "张小龙",
335 | "headerimg": "http://i2.itc.cn/20151208/805_3081ca12_e74c_a8ce_69f1_c28c0264fa0d_4.jpg",
336 | "time": 10,
337 | "content":"关于微信平台的价值观是让创造发挥价值",
338 | "imgs":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523215489217&di=fa900b793d92dab7c0d6d26b644f95cd&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2018%2F079%2F58%2FI6G52P1530EO.jpg"
339 | }
340 |
341 | ]
342 | }
--------------------------------------------------------------------------------