Commit 13f38dc8 by golton_gao

update: code init

parents
Showing with 5721 additions and 0 deletions
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": ["transform-runtime"],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["istanbul"]
}
}
}
// http://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parser: 'babel-eslint',
parserOptions: {
sourceType: 'module'
},
env: {
browser: true,
},
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
extends: 'standard',
// required to lint *.vue files
plugins: [
'html'
],
// add your custom rules here
'rules': {
// 关闭全等
'eqeqeq': [0],
'no-unused-vars': [2, {
// 允许声明未使用变量
'vars': 'local',
// 参数不检查
'args': 'none'
}],
// 关闭语句强制分号结尾
'semi': [0],
// 空行最多不能超过100行
'no-multiple-empty-lines': [0, { 'max': 100 }],
// 关闭禁止混用tab和空格
'no-mixed-spaces-and-tabs': [0],
// 关闭检测是否是驼峰写法
'camelcase': 0,
// 关闭禁用不必要的转义
'no-useless-escape': 0,
// 关闭禁用抛出异常字面量
'no-throw-literal': 0,
// 关闭禁止重新声明变量
'no-redeclare': 0,
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
'generator-star-spacing': 0,
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'indent': [2, 2, {
'SwitchCase': 1 // switch case 缩进2个空格
}]
}
}
\ No newline at end of file
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
// to edit target browsers: use "browserlist" field in package.json
"autoprefixer": {}
}
}
{
"name": "交房模块",
"identifier": "com.jffc.vcd.module.deliveryhouse",
"build": 2,
"version": "1.0.1",
"releaseNote": "交房独立模块,添加显示加载菊花"
}
# vue-cordova-demo
> A VueCordova Project
## Build Setup
``` bash
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
# build for production and view the bundle
npm run jffc-build
# check for cordova requirements
npm run jffc-check
# build for ios production with cordova
npm run jffc-ios
# build for android production with cordova
npm run jffc-android
# build for web production with cordova & serve with hot reload at localhost:3040
npm run jffc-browser
# build V+ H5 production
npm run jffc-vbuild
# add cordova platforms ios
npm run jffc-add-ios
# add cordova platforms android
npm run jffc-add-android
# add cordova platforms browser
npm run jffc-add-browser
# save for cordova plugins
npm run jffc-save
# add cordova plugin camera
npm run jffc-add-camera
# add cordova plugin console
npm run jffc-add-console
# add cordova plugin device
npm run jffc-add-device
# add cordova plugin sqlite-storage
npm run jffc-add-sqlite
# add cordova plugin file
npm run jffc-add-file
# add cordova plugin dialogs
npm run jffc-add-dialogs
# add cordova plugin splashscreen
npm run jffc-add-splashscreen
# add cordova plugin statusbar
npm run jffc-add-statusbar
```
For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
require('./check-versions')()
process.env.NODE_ENV = 'production'
var ora = require('ora')
var rm = require('rimraf')
var path = require('path')
var chalk = require('chalk')
var webpack = require('webpack')
var config = require('../config')
var webpackConfig = require('./webpack.prod.conf')
// 设置package.json的name与version跟随config.xml里配置 @add by evanxu 2017-06-29
// 改变package版本号
var fs = require('fs')
var xml2js = require('xml2js')
var parser = new xml2js.Parser({explicitArray: false})
var versiony = require('versiony')
var xml = fs.readFileSync(process.cwd() + '/config.xml', {encoding: 'utf-8'}).toString()
parser.parseString(xml, (err, result) => {
if (err) throw err
versiony.version(result.widget.$.version).major().to('package.json')
})
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
))
var spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, function (err, stats) {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false,
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
})
})
var chalk = require('chalk')
var semver = require('semver')
var packageConfig = require('../package.json')
var shell = require('shelljs')
function exec (cmd) {
return require('child_process').execSync(cmd).toString().trim()
}
var versionRequirements = [
{
name: 'node',
currentVersion: semver.clean(process.version),
versionRequirement: packageConfig.engines.node
},
]
if (shell.which('npm')) {
versionRequirements.push({
name: 'npm',
currentVersion: exec('npm --version'),
versionRequirement: packageConfig.engines.npm
})
}
module.exports = function () {
var warnings = []
for (var i = 0; i < versionRequirements.length; i++) {
var mod = versionRequirements[i]
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
warnings.push(mod.name + ': ' +
chalk.red(mod.currentVersion) + ' should be ' +
chalk.green(mod.versionRequirement)
)
}
}
if (warnings.length) {
console.log('')
console.log(chalk.yellow('To use this template, you must update following to modules:'))
console.log()
for (var i = 0; i < warnings.length; i++) {
var warning = warnings[i]
console.log(' ' + warning)
}
console.log()
process.exit(1)
}
}
/* eslint-disable */
require('eventsource-polyfill')
var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
hotClient.subscribe(function (event) {
if (event.action === 'reload') {
window.location.reload()
}
})
require('./check-versions')()
var config = require('../config')
if (!process.env.NODE_ENV) {
process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
}
var opn = require('opn')
var path = require('path')
var express = require('express')
var webpack = require('webpack')
var proxyMiddleware = require('http-proxy-middleware')
var webpackConfig = require('./webpack.dev.conf')
// default port where dev server listens for incoming traffic
var port = process.env.PORT || config.dev.port
// automatically open browser, if not set will be false
var autoOpenBrowser = !!config.dev.autoOpenBrowser
// Define HTTP proxies to your custom API backend
// https://github.com/chimurai/http-proxy-middleware
var proxyTable = config.dev.proxyTable
var app = express()
var compiler = webpack(webpackConfig)
var devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath: webpackConfig.output.publicPath,
quiet: true
})
var hotMiddleware = require('webpack-hot-middleware')(compiler, {
log: () => {}
})
// force page reload when html-webpack-plugin template changes
compiler.plugin('compilation', function (compilation) {
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
hotMiddleware.publish({ action: 'reload' })
cb()
})
})
// proxy api requests
Object.keys(proxyTable).forEach(function (context) {
var options = proxyTable[context]
if (typeof options === 'string') {
options = { target: options }
}
app.use(proxyMiddleware(options.filter || context, options))
})
// handle fallback for HTML5 history API
app.use(require('connect-history-api-fallback')())
// serve webpack bundle output
app.use(devMiddleware)
// enable hot-reload and state-preserving
// compilation error display
app.use(hotMiddleware)
// serve pure static assets
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
app.use(staticPath, express.static('./static'))
var uri = 'http://localhost:' + port
var _resolve
var readyPromise = new Promise(resolve => {
_resolve = resolve
})
console.log('> Starting dev server...')
devMiddleware.waitUntilValid(() => {
console.log('> Listening at ' + uri + '\n')
// when env is testing, don't need open it
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
opn(uri)
}
_resolve()
})
var server = app.listen(port)
module.exports = {
ready: readyPromise,
close: () => {
server.close()
}
}
var path = require('path')
var config = require('../config')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
exports.assetsPath = function (_path) {
var assetsSubDirectory = process.env.NODE_ENV === 'production'
? config.build.assetsSubDirectory
: config.dev.assetsSubDirectory
return path.posix.join(assetsSubDirectory, _path)
}
exports.cssLoaders = function (options) {
options = options || {}
var cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV === 'production',
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
var loaders = [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
var output = []
var loaders = exports.cssLoaders(options)
for (var extension in loaders) {
var loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
require('./check-versions')()
process.env.NODE_ENV = 'production'
var ora = require('ora')
var rm = require('rimraf')
var path = require('path')
var chalk = require('chalk')
var webpack = require('webpack')
var config = require('../config')
var webpackConfig = require('./webpack.prov.conf')
// 设置package.json的name与version跟随config.xml里配置 @add by evanxu 2017-06-29
// 改变package版本号
var fs = require('fs')
var xml2js = require('xml2js')
var parser = new xml2js.Parser({explicitArray: false})
var versiony = require('versiony')
var xml = fs.readFileSync(process.cwd() + '/config.xml', {encoding: 'utf-8'}).toString()
parser.parseString(xml, (err, result) => {
if (err) throw err
versiony.version(result.widget.$.version).major().to('package.json')
})
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
))
var spinner = ora('building for V+Production...')
spinner.start()
rm(path.join(config.prov.assetsRoot, config.prov.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, function (err, stats) {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false,
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' V+Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' V+Build complete.\n'))
})
})
var utils = require('./utils')
var config = require('../config')
var isProduction = process.env.NODE_ENV === 'production'
module.exports = {
loaders: utils.cssLoaders({
sourceMap: isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap,
extract: isProduction
})
}
var path = require('path')
var utils = require('./utils')
var config = require('../config')
var vueLoaderConfig = require('./vue-loader.conf')
const vuxLoader = require('vux-loader')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
const webpackConfig = {
entry: {
app: ['babel-polyfill', './src/main.js']
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src')
}
},
module: {
rules: [
{
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter')
}
},
// {
// test: /\.less$/,
// loader: 'style-loader!css-loader!less-loader'
// },
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test')]
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
]
}
}
module.exports = vuxLoader.merge(webpackConfig, {
options: {},
plugins: [{
name: 'vux-ui'
}]
})
var utils = require('./utils')
var webpack = require('webpack')
var config = require('../config')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
// 设置package.json的name与version跟随config.xml里配置 @add by evanxu 2017-06-29
// 设置版本号、时间
var exdate = require('exdate')
var fs = require('fs')
var xml2js = require('xml2js')
var parser = new xml2js.Parser({explicitArray: false})
var xml = fs.readFileSync(process.cwd() + '/config.xml', {encoding: 'utf-8'}).toString()
var versions;
parser.parseString(xml, (err, result) => {
if (err) {
throw err
}
versions = result.widget.$.version
})
var ds = new Date()
var dates = exdate.format(ds, 'yyyy-MM-dd HH:mm')
// add hot-reload related code to entry chunks
Object.keys(baseWebpackConfig.entry).forEach(function (name) {
baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
})
module.exports = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
},
// cheap-module-eval-source-map is faster for development
devtool: '#cheap-module-eval-source-map',
plugins: [
new webpack.DefinePlugin({
'process.env': config.dev.env,
'process.vers': JSON.stringify(versions),
'process.dates': JSON.stringify(dates)
}),
// https://github.com/glenjamin/webpack-hot-middleware#installation--usage
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true
}),
new FriendlyErrorsPlugin()
]
})
var path = require('path')
var utils = require('./utils')
var webpack = require('webpack')
var config = require('../config')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var CopyWebpackPlugin = require('copy-webpack-plugin')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
// 设置package.json的name与version跟随config.xml里配置 @add by evanxu 2017-06-29
// 设置版本号、时间
var exdate = require('exdate')
var fs = require('fs')
var xml2js = require('xml2js')
var parser = new xml2js.Parser({explicitArray: false})
var xml = fs.readFileSync(process.cwd() + '/config.xml', {encoding: 'utf-8'}).toString()
var versions;
parser.parseString(xml, (err, result) => {
if (err) {
throw err
}
versions = result.widget.$.version
})
var ds = new Date()
var dates = exdate.format(ds, 'yyyy-MM-dd HH:mm')
var env = config.build.env
var webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true
})
},
devtool: config.build.productionSourceMap ? '#source-map' : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env,
'process.vers': JSON.stringify(versions),
'process.dates': JSON.stringify(dates)
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css')
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: {
safe: true
}
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module, count) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
chunks: ['vendor']
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
if (config.build.productionGzip) {
var CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.bundleAnalyzerReport) {
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig
var path = require('path')
var utils = require('./utils')
var webpack = require('webpack')
var config = require('../config')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var CopyWebpackPlugin = require('copy-webpack-plugin')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var ZipPlugin = require('zip-webpack-plugin')
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
// 设置版本号、时间
var exdate = require('exdate')
var fs = require('fs')
var xml2js = require('xml2js')
var parser = new xml2js.Parser({explicitArray: false})
var xml = fs.readFileSync(process.cwd() + '/config.xml', {encoding: 'utf-8'}).toString()
var versions;
parser.parseString(xml, (err, result) => {
if (err) {
throw err
}
versions = result.widget.$.version
})
var ds = new Date()
var dates = exdate.format(ds, 'yyyy-MM-dd HH:mm')
var env = config.prov.env
var webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.prov.productionSourceMap,
extract: true
})
},
devtool: config.prov.productionSourceMap ? '#source-map' : false,
output: {
path: config.prov.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env,
'process.vers': JSON.stringify(versions),
'process.dates': JSON.stringify(dates)
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css')
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: {
safe: true
}
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: config.prov.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module, count) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
chunks: ['vendor']
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.prov.assetsSubDirectory,
ignore: ['.*']
},
// 设置文件复制粘贴
{
from: path.resolve(path.join(__dirname, '../', config.prov.appConfFile)),
to: path.resolve(path.join(config.prov.assetsRoot, config.prov.appConfFile)),
toType: 'file',
force: true,
flatten: true
}
])
]
})
if (config.prov.productionGzip) {
var CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.prov.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
// 设置压缩打包
if (config.prov.packToZip) {
webpackConfig.plugins.push(
new ZipPlugin({
path: config.prov.assetsRoot,
filename: 'vpackage.zip'
})
)
}
if (config.prov.bundleAnalyzerReport) {
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.jffc.vcd.module.deliveryhouse" version="1.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>DeliveryHouse</name>
<description>
建发交房模块
</description>
<author email="evanxuyi@gmail.com" href="http://cordova.io">
Core Team
</author>
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="DisallowOverscroll" value="true" />
<preference name="BackupWebStorage" value="local" />
</platform>
<preference name="StatusBarBackgroundColor" value="#2c3e50" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="FadeSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="1000" />
<preference name="ShowSplashScreenSpinner" value="false" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<plugin name="cordova-plugin-camera" spec="~2.4.1" />
<plugin name="cordova-plugin-statusbar" spec="~2.2.3" />
<plugin name="cordova-plugin-splashscreen" spec="~4.0.3" />
<plugin name="cordova-plugin-dialogs" spec="~1.3.3" />
<plugin name="cordova-plugin-file" spec="~4.3.3" />
<plugin name="cordova-sqlite-storage" spec="~2.0.4" />
<plugin name="cordova-plugin-device" spec="~1.1.6" />
<plugin name="cordova-plugin-console" spec="~1.0.7" />
<engine name="browser" spec="^5.0.3" />
<engine name="ios" spec="^4.4.0" />
<engine name="android" spec="^6.2.3" />
</widget>
var merge = require('webpack-merge')
var prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
})
// see http://vuejs-templates.github.io/webpack for documentation.
var path = require('path')
module.exports = {
build: {
env: require('./prod.env'),
index: path.resolve(__dirname, '../www/index.html'),
assetsRoot: path.resolve(__dirname, '../www'),
assetsSubDirectory: 'static',
assetsPublicPath: '',
productionSourceMap: true,
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
},
dev: {
env: require('./dev.env'),
port: 8080,
autoOpenBrowser: true,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},
// CSS Sourcemaps off by default because relative paths are "buggy"
// with this option, according to the CSS-Loader README
// (https://github.com/webpack/css-loader#sourcemaps)
// In our experience, they generally work as expected,
// just be aware of this issue when enabling this option.
cssSourceMap: false
},
// 2017-11-21 新增集成V+ @evanxu
prov: {
env: require('./prov.env'),
index: path.resolve(__dirname, '../dist/index.html'),
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '',
productionSourceMap: false,
appConfFile: 'CubeModule.json',
eslint: true,
autoRoutes: true,
autoImportStyle: true,
friendlyErrorsPlugin: false,
packToZip: true,
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
/* 本地调试 */
// port: 3041,
// autoOpenBrowser: true,
// assetsSubDirectory: 'static',
// assetsPublicPath: '/',
// proxyTable: {},
// cssSourceMap: false
}
}
module.exports = {
NODE_ENV: '"production"'
}
var merge = require('webpack-merge')
var prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"provt"'
})
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
-->
# Cordova Hooks
Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. See Hooks Guide for more details: http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="jf">
<meta name="apple-mobile-web-app-title" content="contact">
<meta name="format-detection" content="telephone=no,email=no,adress=no" />
<meta name="mobile-web-app-capable" content="jf">
<title>建发交房模块</title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected 通过集成V+埋点 cordova.js 无需再自己添加 -->
</body>
</html>
This diff could not be displayed because it is too large.
{
"name": "delivery_house",
"version": "1.0.1",
"description": "建发交房模块",
"author": "Evan Xu <evanxuyi@gmail.com>, Weshine Chen <80368178@qq.com>",
"private": true,
"scripts": {
"dev": "node build/dev-server.js",
"start": "node build/dev-server.js",
"build": "node build/build.js",
"lint": "eslint --ext .js,.vue src",
"jffc-check": "cordova requirements",
"jffc-build": "node build/build.js",
"jffc-ios": "cordova build ios",
"jffc-android": "cordova build android",
"jffc-browser": "cordova prepare browser && cross-env PORT=3004 node build/dev-server.js",
"jffc-vbuild": "node build/vt-build.js",
"jffc-save": "cordova plugin save",
"jffc-add-ios": "cordova platforms add ios@4.4.0",
"jffc-add-android": "cordova platforms add android@6.2.3",
"jffc-add-browser": "cordova platforms add browser",
"jffc-add-camera": "cordova plugin add cordova-plugin-camera",
"jffc-add-console": "cordova plugin add cordova-plugin-console",
"jffc-add-device": "cordova plugin add cordova-plugin-device",
"jffc-add-sqlite": "cordova plugin add cordova-sqlite-storage",
"jffc-add-file": "cordova plugin add cordova-plugin-file",
"jffc-add-dialogs": "cordova plugin add cordova-plugin-dialogs",
"jffc-add-splashscreen": "cordova plugin add cordova-plugin-splashscreen",
"jffc-add-statusbar": "cordova plugin add cordova-plugin-statusbar"
},
"dependencies": {
"axios": "^0.16.2",
"babel-polyfill": "^6.23.0",
"cordova-android": "^6.2.3",
"cordova-browser": "^5.0.3",
"cordova-ios": "^4.4.0",
"cordova-plugin-camera": "~2.4.1",
"cordova-plugin-console": "~1.0.7",
"cordova-plugin-device": "~1.1.6",
"cordova-plugin-dialogs": "~1.3.3",
"cordova-plugin-file": "~4.3.3",
"cordova-plugin-splashscreen": "~4.0.3",
"cordova-plugin-statusbar": "~2.2.3",
"cordova-plugin-whitelist": "1",
"cordova-sqlite-storage": "~2.0.4",
"date-time-picker": "^0.5.2",
"echarts": "^4.1.0",
"exdate": "0.0.4",
"vue": "^2.3.3",
"vue-router": "^2.3.1",
"vuex": "^2.3.1",
"vux": "^2.9.2"
},
"devDependencies": {
"autoprefixer": "^6.7.2",
"babel-core": "^6.22.1",
"babel-eslint": "^7.1.1",
"babel-loader": "^6.2.10",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"chalk": "^1.1.3",
"connect-history-api-fallback": "^1.3.0",
"copy-webpack-plugin": "^4.0.1",
"cross-env": "^5.0.1",
"css-loader": "^0.28.0",
"eslint": "^3.19.0",
"eslint-config-standard": "^6.2.1",
"eslint-friendly-formatter": "^2.0.7",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^2.0.0",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^2.0.1",
"eventsource-polyfill": "^0.9.6",
"express": "^4.14.1",
"extract-text-webpack-plugin": "^2.0.0",
"file-loader": "^0.11.1",
"friendly-errors-webpack-plugin": "^1.1.3",
"html-webpack-plugin": "^2.28.0",
"http-proxy-middleware": "^0.17.3",
"less": "^3.8.1",
"less-loader": "^4.1.0",
"mockjs": "^1.0.1-beta3",
"opn": "^4.0.2",
"optimize-css-assets-webpack-plugin": "^1.3.0",
"ora": "^1.2.0",
"rimraf": "^2.6.0",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"url-loader": "^0.5.8",
"versiony": "^2.0.1",
"vue-loader": "^12.1.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.3.3",
"vux-loader": "^1.2.9",
"webpack": "^2.6.1",
"webpack-bundle-analyzer": "^2.2.1",
"webpack-dev-middleware": "^1.10.0",
"webpack-hot-middleware": "^2.18.0",
"webpack-merge": "^4.1.0",
"xml2js": "^0.4.19",
"zip-webpack-plugin": "^1.1.0"
},
"engines": {
"node": ">= 4.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
],
"cordova": {
"platforms": [
"browser",
"ios",
"android"
],
"plugins": {
"cordova-plugin-camera": {
"CAMERA_USAGE_DESCRIPTION": " ",
"PHOTOLIBRARY_USAGE_DESCRIPTION": " "
},
"cordova-plugin-console": {},
"cordova-plugin-device": {},
"cordova-plugin-dialogs": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-whitelist": {},
"cordova-plugin-file": {},
"cordova-sqlite-storage": {}
}
}
}
\ No newline at end of file
<template>
<div id="app">
<transition :name="this.$router.isBack ? 'page-out' : 'page-in'">
<router-view></router-view>
</transition>
</div>
</template>
<script>
export default {
name: 'app',
created () {
if (process.env.NODE_ENV === 'provt') {
// 兼容V+模块
console.log('当前环境:', process.env.NODE_ENV)
// todo:1、获取V+用户信息 this.$nativeApi.account.getUser()
// 2、根据用户信息,设置vuex,方便调用 this.$store.dispatch()
// 3、跳转至首页 this.$router.push('/') or 退出 this.$nativeApi.navigator.exit()
this.$nativeApi.system.statusBarColor([205, 61, 61])
this.$nativeApi.system.statusBarStyle([1])
this.$nativeApi.system.setBounces([0])
} else {
// APP模块(生产环境、开发环境)
console.log('当前环境:', process.env.NODE_ENV)
// todo:1、获取当前用户信息
// 2、根据用户信息,设置vuex,方便调用 this.$store.dispatch()
// 3、跳转至首页 this.$router.push('/') or 退出 this.$router.back()
}
}
}
</script>
<style scoped>
#app {
height: 100%;
}
</style>
.page-out-enter-active,
.page-out-leave-active,
.page-in-enter-active,
.page-in-leave-active {
will-change: transform;
transition: all 500ms;
height: 100%;
width: 100%;
top: 0;
position: absolute;
backface-visibility: visible;
perspective: 1000;
}
/* 页面退出动画效果 */
.page-out-enter {
opacity: 0;
transform: translate3d(-100%, 0, 0);
-webkit-transform: translate3d(-100%, 0, 0);
}
.page-out-enter-to {
opacity: 1;
}
.page-out-leave-active {
opacity: 0.5;
transform: translate3d(100%, 0, 0);
-webkit-transform: translate3d(100%, 0, 0);
}
/* 页面进入动画效果 */
.page-in-enter {
transform: translate3d(100%, 0, 0);
-webkit-transform: translate3d(100%, 0, 0);
}
.page-in-enter-to {
-webkit-transform: translateX(0);
transform: translateX(0);
}
.page-in-leave-active {
opacity: 0.5;
}
.list-out-enter-active,
.list-out-leave-active,
.list-in-enter-active,
.list-in-leave-active {
will-change: transform;
transition: all 300ms;
width: 100%;
backface-visibility: visible;
perspective: 1000;
}
/* 页面进入动画效果 */
.list-in-enter {
transform: translate3d(100%, 0, 0);
-webkit-transform: translate3d(100%, 0, 0);
}
.list-in-enter-to {
-webkit-transform: translateX(0);
transform: translateX(0);
}
.list-in-leave-active {
opacity: 0;
transform: translate3d(100%, 0, 0);
-webkit-transform: translate3d(100%, 0, 0);
}
/* 页面退出动画效果 */
.list-out-enter {
opacity: 1;
background-color: #0e1721;
}
.list-out-enter-to {
opacity: 1;
background-color: red;
transform: translate3d(100%, 0, 0);
-webkit-transform: translate3d(100%, 0, 0);
}
.list-out-leave-active {
background-color: blue;
opacity: 1;
}
.margin-left-normal {
margin-left: 0.2rem;
}
.padding-left-normal {
padding-left: 0.2rem;
}
.margin-bottom-normal {
margin-bottom: 0.2rem;
}
.margin-top-normal {
margin-top: 0.2rem;
}
.flexCenter {
align-items: center;
}
.flexStart {
align-items: flex-start;
}
.flexEnd {
align-items: flex-end;
}
.textLeft {
text-align: left;
}
.textRight {
text-align: right;
}
.textCenter {
text-align: center;
}
.flex-1 {
flex: 1;
}
.right-arrow {
background-image: url(../images/ic_arrow_left@2x.png);
background-repeat: no-repeat;
background-size: 100% 100%;
width: 0.4rem;
height: 0.4rem;
}
.riskWarn1 {
background-image: url(../images/ic_warn_1@2x.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.riskWarn2 {
background-image: url(../images/ic_warn_2@2x.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.infoIcon {
background-image: url(../images/ic_explain@2x.png);
background-repeat: no-repeat;
background-size: 100% 100%;
width: 0.4rem;
height: 0.4rem;
}
.alignLeft {
text-align: left;
}
.fontColor1 {
color: #6b6f7b;
}
.fontColor2 {
color: #333333;
}
.fontColor3 {
color: #cd0001;
}
.fontColor4 {
color: #0e1721;
}
.fontColor5 {
color: #cd3d3d;
}
.white {
background: white;
}
.bgColor1 {
background-color: #cd3d3d;
}
.bgColor2 {
background-color: white;
}
.bgColor3 {
background-color: #f9f9fb;
}
.bgColor4 {
background-color: #cd3d3d;
}
.font14 {
font-size: 14px;
}
.visibility {
visibility: visible;
}
.inVisibility {
display: none;
}
.hidden {
visibility: hidden;
}
.container {
height: 100%;
display: flex;
flex-direction: column;
}
/*
框架 全局 基础样式
** 可写在这 **
*/
* {
list-style: none;
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
}
*:not(input,textarea) {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
ul,
li,
div,
span,
em,
a,
i {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td{margin:0;padding:0;}
fieldset, img, input, textarea{border:0;}
address, caption, cite, code, dfn, em, th, var{font-style:normal; font-weight:normal;}
ol, ul{list-style:none;}
h1, h2, h3, h4, h5, h6{font-size:100%; font-weight:normal;}
html,body{-webkit-user-select:none;-moz-user-select:none;user-select:none;height:100%;}
a:active,
a:hover {
text-decoration: underline;
}
a,img{-webkit-touch-callout:none}
img{ width: 100%; vertical-align:middle;}
ol,
ul {
margin: 0;
}
input {
outline: none;
border: 0;
}
button {
border: 0;
margin: 0;
padding: 0;
}
body {
font-size: 16px;
background: #f3f5f6;
-webkit-overflow-scrolling: touch;
}
a {
text-decoration: none;
}
a,button,input,textarea{
-webkit-tap-highlight-color: rgba(0,0,0,0);
outline:0;
}
.flex {
display: flex;
display: -webkit-flex;
}
/* 排列方法 row=从左到右,column=从上到下 */
/* wrap=换行排列 */
.flex-flow-r-w {
flex-flow: row wrap;
}
.flex-flow-c-n {
flex-flow: column nowrap;
}
.flex-flow-c-w {
flex-flow: column wrap;
}
.flex-in {
display: -webkit-flex;
display: inline-flex;
}
.flex-wrap {
flex-wrap: wrap;
}
.flex-wrap-r {
flex-wrap: wrap-reverse;
}
.flex-l {
align-items: flex-start;
}
.flex-l-l {
justify-content: flex-start;
}
.flex-c {
align-items: center;
}
.flex-c-c {
justify-content: center;
}
.flex-r {
align-items: flex-end;
}
.flex-r-r {
justify-content: flex-end;
}
.flex-item-gsb-1 {
flex: 1 1 auto;
}
.flex-item-gsb-0 {
flex: 0 0 auto;
}
/* 元素左对齐布局 */
.flex-self-l {
align-self: flex-start;
}
/* 元素中间齐布局 */
.flex-self-c {
align-self: center;
}
/* 元素右对齐布局 */
.flex-self-r {
align-self: flex-end;
}
/* 子元素换行布局 */
.flex-dir-column {
flex-direction: column;
}
.pl-li-del {
width: 0.4rem;
height: 0.4rem;
background: url(../images/ic_cancel_selected@2x.png) no-repeat center/80%;
}
/* 自适应 */
@media screen and (max-width: 10000px) {
html {
font-size: 100px;
}
}
@media screen and (max-width: 750px) {
html {
font-size: 100px;
}
}
@media screen and (max-width: 720px) {
html {
font-size: 96px;
}
}
@media screen and (max-width: 414px) {
html {
font-size: 55.2px;
}
}
@media screen and (max-width: 412px) {
html {
font-size: 54.933333px;
}
}
@media screen and (max-width: 384px) {
html {
font-size: 51.2px;
}
}
@media screen and (max-width: 375px) {
html {
font-size: 50px;
}
}
@media screen and (max-width: 360px) {
html {
font-size: 48px;
}
}
@media screen and (max-width: 320px) {
html {
font-size: 42.66667px;
}
}
import nativeApi from './cordova/index'
export default {
install (Vue, config) {
var nativeApiObj = nativeApi(config)
Vue.$nativeApi = nativeApiObj
Vue.prototype.$nativeApi = nativeApiObj
}
}
'use strict'
import NativeApi from '../native/nativeApi'
import { sleep } from '../native/utils'
/**
* 底座模块名称
* @type {{MIDEA_COMMON: string, MIDEA_USER: string, MIDEA_BARCODE: string, MIDEA_MAP: string, MIDEA_ANNTO: string, MIDEA_SALE: string}}
*/
const MODULE_NAMES = {
MIDEA_COMMON: 'MideaCommon',
MIDEA_USER: 'MideaUser',
MIDEA_BARCODE: 'MideaBarcode',
MIDEA_MAP: 'MideaMap',
MIDEA_ANNTO: 'MideaAnnto',
MIDEA_SALE: 'MideaSale'
}
/**
* Cordova Api父类,包含基本配置和基本入口方法
* @extends NativeApi
*/
export default class CordovaApi extends NativeApi {
constructor (conf) {
conf = conf || {}
conf.platform = 'cordova'
super(conf)
if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {
var self = this
if (!window.document.getElementById('cordovaJS')) {
var script = window.document.createElement('script')
script.id = 'cordovaJS'
script.src = 'cordova.js'
script.type = 'text/javascript'
script.async = false
script.onload = function () {
console.log('Loading Cordova Plugin...')
window.document.addEventListener('deviceready', function () {
self.doReady(self)
}, false)
}
script.onerror = function () {
console.error('Cannot Load Cordova Plugin!')
}
window.document.body.appendChild(script)
}
}
}
set methods (methods) {
this._methods = methods
}
get methods () {
return this._methods
}
get moduleNames () {
return MODULE_NAMES
}
/**
* 调用cordova对象的exec方法
* @param module 所属模块
* @param method 方法名称
* @param params 附带参数
* @return {Promise}
*/
callApi (module, method, params) {
let self = this
self.log(module, method, params)
return new Promise((resolve, reject) => {
(async function () {
for (var i = 0; i < self.maxRetryTimes; i++) {
if (!self.ready || !window.cordova) {
if (i === self.maxRetryTimes - 1) {
reject('Cordova is not ready, no retry')
} else {
await sleep(self.retrySleepTime * (i + 1))
console.error('Cordova is not ready, retry later')
}
}
}
try {
window.cordova.exec(function (msg) {
resolve(msg)
}, function (msg) {
reject(msg)
}, module, method, params || [])
} catch (e) {
reject(e)
}
})()
})
}
}
import CordovaApi from './cordovaApi'
import System from './modules/system'
import GeoLocation from './modules/geoLocation'
import UserInteraction from './modules/userInteraction'
import Account from './modules/account'
import Navigator from './modules/navigator'
import DataInteraction from './modules/DataInteraction'
export default function (config) {
return new CordovaApi(config)
.setModules(
System,
GeoLocation,
UserInteraction,
Account,
Navigator,
DataInteraction
)
}
/** @module extend/common **/
import * as types from '../types'
import BaseModel from '../../native/BaseModel'
/**
* 用户账户
* @extends BaseModel
*/
export default class Account extends BaseModel {
static get moduleName () {
return types.MODULE_NAME_ACCOUNT
}
/**
* 获取当前应用登录的用户的信息
* @param {Array=} params 无参数
* @return {Promise}
* @result cn: 中文名, cookie: 用户的cookie, departmentName: 完整的部门名称, employeenumber: 员工号, gender: 性别(0 女, 1男), mail: 邮箱, mobile: 手机号码, ou: 组织架构的部门模块名, positionName: 岗位, sessionkey: 用户的sessionKey, ssoToken: 用户的ssoToken, telephonenumber: 固定电话, uid: 用户uid, uniqueIdentifier: 用户的唯一标识, userIcon: 用户头像
*/
getUser (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'getUser', params)
}
/**
* 获取用户是否登录
* @param {Array=} params 无参数
* @return {Promise}
* @result {isLogin: 是否登录}
*/
isLogin (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'isLogin', params)
}
/**
* 注销当前用户
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
logout (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'logout', params)
}
/**
* 验证密码当前用户的密码。优先验证二阶段密码,如手势、语音、人脸识别等。验证失败两次将退出当前打开的应用
* @param {Array=} params 无参数
* @return {Promise}
* @result 1:成功 0:失败
*/
authPassword (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'authPassword', params)
}
/**
* 获取当前用户的密码
* @param {Array=} params 无参数
* @return {Promise}
* @result password 密码
*/
getUserPassword (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'getUserPassword', params)
}
/**
* 跳转到页面
* @param {Array=} params 跳转到登录页面
* @return {Promise}
* @result #
*/
toLogin (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'toLogin', params)
}
}
/** @module extend/common **/
import * as types from '../types'
import BaseModel from '../../native/BaseModel'
/**
* 原生与h5数据交互相关
* @extends BaseModel
*/
export default class DataInteraction extends BaseModel {
static get moduleName () {
return types.MODULE_NAME_DATA_INTERACTION
}
/**
* 获取H5信息
* @param {Array=} params ['key'] key为想要获得的参数
* @return {Promise}
* @result 参数key的值
*/
getH5Info (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'getH5Info', params)
}
/**
* 保存H5信息
* @param {Array=} params ['key', 'value'] 保存参数的key,参数的值
* @return {Promise}
* @result #
*/
saveH5Info (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'saveH5Info', params)
}
/**
* 获取模块或用户的未读消息(美信、美的通identifier)
* @param {Array=} params 第一次参数:应用模块名称(例如:com.midea.demo)或者用户id(xxx或者xxx@midea.com.cn),如果第一个参数传的是用户Id,则一定要传第二个参数;第二个参数固定为“IM”,如果传了第二个参数,则第一个参数必定是用户id,
* @return {Promise}
* @result 返回代表未读消息数目的int类型数据
*/
getMessageUnread (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'getMessageUnread', params)
}
/**
* 获取扩展字段
* @param {Array=} params 模块名 com.midea.demo
* @return {Promise}
* @result 返回拓展字段,{extra: {action: 'xxx'}} 需要和底座商量决定action的值
*/
getExtra (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'getExtra', params)
}
/**
* 获取设备信息
* @return {Promise}
* @result 返回相关设备信息的object类型数据
*/
getDeviceInfo (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'getDeviceInfo', params)
}
}
/** @module extend/common **/
import * as types from '../types'
import BaseModel from '../../native/BaseModel'
/**
* 地图定位导航相关接口
* @extends BaseModel
*/
export default class GeoLocation extends BaseModel {
static get moduleName () {
return types.MODULE_NAME_GEO_LOCATION
}
/**
* 持续定位,每隔指定时间返回定位信息
* @param {Array=} params [间隔时间(ms)]
* @return {Promise}
* @result #
*/
startUpdatingLocation (params) {
return this.nativeApi.callApi('MideaMap', 'startUpdatingLocation', params)
}
/**
* 停止持续定位
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
stopUpdatingLocation (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP, 'stopUpdatingLocation', params)
}
/**
* 周边搜索
* @param {Array=} params 无参数
* @return {Promise}
* @result [{"citycode": 区号,"title": 标题,"poiId": "B02F50X8AR","address": 详细地址,"province": 省份,"longitude": 经度,"latitude": 维度,"city": 城市}]
*/
getPois (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP, 'getPois', params)
}
/**
* 获取经纬度
* @param {Array=} params 无参数
* @return {Promise}
* @result {address: 详细地址city: 城市citycode: 区号district: 区latitude: 维度longitude: 经度province: 省份street: 街道}
*/
location (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP, 'location', params)
}
/**
* 从目的地开始路线导航
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
selectWidget (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP, 'selectWidget', params)
}
/**
* 从目的地开始路线导航
* @param {Array=} params params ["113.2045723720553", "23.033276740700192", "112.84994614670291", "23.193689802924411", "广州2"]==>["终点的经度", "终点的纬度", "起始点的经度", "起始点的纬度", "要去的位置"]
* @return {Promise}
* @result #
*/
navToWithFrom (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP, 'navToWithFrom', params)
}
}
/** @module extend/common **/
import * as types from '../types'
import BaseModel from '../../native/BaseModel'
/**
* 应用导航器
* @extends BaseModel
*/
export default class Navigator extends BaseModel {
static get moduleName () {
return types.MODULE_NAME_NAVIGATOR
}
/**
* 从当前页面跳转到设置页面
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
showSetView (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showSetView', params)
}
/**
* 从当前页面跳转到我的页面
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
showMyView (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showMyView', params)
}
/**
* 跳转到页面
* @param {Array=} params ['messageView'] 从当前页面跳转到消息页面(不支持美信),["messageListView", "com.midea.demo"] 跳转到消息List二级页面(美信、美的通)
* @return {Promise}
* @result #
*/
showAppView (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showAppView', params)
}
/**
* 启动指定App的指定应用
* @param {Array=} params ['包名', 'AppKey'] (demo) ['com.midea.maptest', '1779d8c8fd110fd5f7caf31652d82e8c']
* @return {Promise}
* @result #
*/
startApp (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'startApp', params)
}
/**
* 跳转到个人信息页面(支持美信,新版美的通)
* @param {Array=} params ['用户ID'] 精确
* @return {Promise}
* @result #
*/
vcard (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'vcard', params)
}
/**
* 跳转到指定应用
* @param {Array=} params ['widgetKey', params]
* @return {Promise}
* @result #
*/
showWidget (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showWidget', params)
}
/**
* 选择应用
* @param {Array=} params 无
* @return {Promise}
* @result #
*/
selectWidget (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'selectWidget', params)
}
/**
* 退出应用
* @param {Array=} params 无
* @return {Promise}
* @result #
*/
exit (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'exit', params)
}
/**
* 用系统浏览器打开网址
* @param {Array=} params ['网址']
* @return {Promise}
* @result #
*/
openSysBrowser (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'openSysBrowser', params)
}
}
/** @module extend/common **/
import * as types from '../types'
import BaseModel from '../../native/BaseModel'
/**
* 系统通用接口
* @extends BaseModel
*/
export default class System extends BaseModel {
static get moduleName () {
return types.MODULE_NAME_SYSTEM
}
/**
* 跳转到手机通讯录系统页面,选择后返回json对象
* @param {Array=} params 无参数
* @return {Promise}
* @result {Object} {"name":"aaa","phone":"95079"}
*/
getContact (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER, 'getContact', params)
}
/**
* 获取手机当前系统语言
* @param {Array=} params 无参数
* @return {Promise}
* @result {String} language=cn
*/
language (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'language', params)
}
/**
* 显示导航控件
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
showNav (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showNav', params)
}
/**
* 隐藏导航控件
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
hideNav (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'hideNav', params)
}
/**
* 显示底部控件
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
showMenu (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showMenu', params)
}
/**
* 弹出输入键盘
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
showInput (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showInput', params)
}
/**
* 输入键盘消失
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
hideInput (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'hideInput', params)
}
/**
* 切换键盘到中午输入法
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
toggleInput (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'toggleInput', params)
}
/**
* 显示浮动按钮
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
showFloat (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'showFloat', params)
}
/**
* 隐藏浮动按钮
* @param {Array=} params 无参数
* @return {Promise}
* @result #
*/
hideFloat (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'hideFloat', params)
}
/**
* 改变状态栏背景色
* @param {Array=} params [230, 130, 80, 1] [Red,Green,Blue,Alpha]
* @return {Promise}
* @result #
*/
statusBarColor (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'statusBarColor', params)
}
/**
* 设置状态栏样式 1 为白色字体 0 为黑色字体
*/
statusBarStyle (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'statusContentStyle', params)
}
/**
* 复制
* @param {Array=} params ["xxx"] 复制内容xxx到剪切板
* @return {Promise}
* @result #
*/
copy (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'copy', params)
}
/**
* 粘贴结果
* @param {Array=} params 无参数
* @return {Promise}
* @result 返回字符串为剪切板(复制)的内容
*/
paste (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'paste', params)
}
/**
* 检查是否安装指定apk请求参数
* @param {Array=} params 安装版名称 com.midea.mlearning.in.test
* @return {Promise}
* @result 若安装了则返回true,否则返回false
*/
apk (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'apk', params)
}
/**
* 安卓和ios拨打电话
* @param {Array=} params [tel, '电话号码']
* @return {Promise}
* @result #
*/
callPhone (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'callPhone', params)
}
/**
* 获取webview的宽度和高度
* @param {Array=} params 无
* @return {Promise}
* @result {webviewWidth: 宽, webviewHeigh: 高}
*/
webview (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'webview', params)
}
/**
* 获取指定url图片的Base64编码数据
* @param {Array=} params ['url']
* @return {Promise}
* @result {base64: 图片数据}
*/
getBase64s (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'getBase64s', params)
}
/**
* 弹出扫码框
* @param {Array=} params 无参数
* @return {Promise}
* @result 弹出扫码框,扫码并返回结果
*/
scan (params) {
return this.nativeApi.callApi('MideaBarcode', 'scan', params)
}
/**
* 统计的事件
* @param {Array=} params [{ 'key': 'event', 'value': '测试样例' }] key是统计事件的名称,value是事件的值
* @return {Promise}
* @result #
*/
onEvent (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'onEvent', params)
}
setBounces (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'setBounces', params)
}
}
/** @module extend/common **/
import * as types from '../types'
import BaseModel from '../../native/BaseModel'
/**
* 用户交互相关
* @extends BaseModel
*/
export default class UserInteraction extends BaseModel {
static get moduleName () {
return types.MODULE_NAME_USER_INTERACTION
}
/**
* 切换屏幕方向
* @param {Array=} params [0|1|2|3] 0-竖屏 1-横屏 2-开启自动旋转 3-关闭自动旋转
* @return {Promise}
* @result #
*/
orientation (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'orientation', params)
}
/**
* 开启响应摇动手机,如果不调用停止响应摇动接口,会一直监听,直到调用停止接口或者kill手机进程
* @param {Array=} params 无
* @return {Promise}
* @result #
*/
shake (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'shake', params)
}
/**
* 停止响应摇动手机
* @param {Array=} params 无
* @return {Promise}
* @result #
*/
shakeStop (params) {
return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON, 'shakeStop', params)
}
}
export const MODULE_NAME_NAVIGATOR = 'navigator'
export const MODULE_NAME_SYSTEM = 'system'
export const MODULE_NAME_USER_INTERACTION = 'userInteraction'
export const MODULE_NAME_DATA_INTERACTION = 'dataInteraction'
export const MODULE_NAME_ACCOUNT = 'account'
export const MODULE_NAME_GEO_LOCATION = 'geoLocation'
const _MIDEA_COMMON = 'MideaCommon'
const _MIDEA_USER = 'MideaUser'
const _MIDEA_BARCODE = 'MideaBarcode'
const _MIDEA_MAP = 'MideaMap'
const _MIDEA_ANNTO = 'MideaAnnto'
const _MIDEA_SALE = 'MideaSale'
const _MIDEA_PDF = 'MideaPdf'
export default {
callApi (name, method, params) {
/**
* 调用cordova的方法
* @param name {string} 方法组、类别
* @param method {string} 方法名称
* @param params {Array} 参数
* @return {promise}
*/
var promise = new Promise((resolve, reject) => {
if (window.cordova) {
try {
window.cordova.exec((msg) => {
resolve(msg)
}, (msg) => {
reject(msg)
}, name, method, params || [])
} catch (e) {
console.log('_error', 'widget error:', e)
reject(e)
}
} else {
console.log('_debug', 'Cordova is not exist')
reject('Cordova is not exist')
}
})
return promise
},
/**
* 验证密码,主要用于hr自助认证
* @return {promise}
*/
password () {
return this.callApi(_MIDEA_COMMON, 'authPassword').then((message) => {
if (message === 0) {
this.password()
} else if (message === -1) {
this.exit()
}
})
},
/**
* 显示菜单
* @return {*|promise}
*/
showMenu: function () {
return this.callApi(_MIDEA_COMMON, 'showMenu', null)
},
/**
* 显示导航
* @return {*|promise}
*/
showNav: function () {
return this.callApi(_MIDEA_COMMON, 'showNav', null)
},
/**
* 隐藏导航
* @return {*|promise}
*/
hideNav: function () {
return this.callApi(_MIDEA_COMMON, 'hideNav', null)
},
/**
* 退出应用
* @return {*|promise}
*/
exit: function () {
return this.callApi(_MIDEA_COMMON, 'exit', null)
},
/**
* 后退
* @return {*|promise}
*/
goBack: function () {
return this.callApi(_MIDEA_COMMON, 'goBack', null)
},
/**
* 开始监听手机摇动
* @return {*|promise}
*/
shake: function () {
return this.callApi(_MIDEA_COMMON, 'shake', null)
},
/**
* 停止监听手机摇动
* @return {*|promise}
*/
shakeStop: function () {
return this.callApi(_MIDEA_COMMON, 'shakeStop', null)
},
/**
* 显示悬浮菜单
* @return {*|promise}
*/
showFloat: function () {
return this.callApi(_MIDEA_COMMON, 'showFloat', null)
},
/**
* 隐藏悬浮菜单
* @return {*|promise}
*/
hideFloat: function () {
return this.callApi(_MIDEA_COMMON, 'hideFloat', null)
},
/**
* 获取当前语言
* @return {*|promise}
*/
language: function () {
return this.callApi(_MIDEA_COMMON, 'language', null)
},
/**
* 获取用户信息
* @return {*|promise}
*/
getUser: function () {
return this.callApi(_MIDEA_USER, 'getUser', null)
},
/**
* 获取用户信息-直通宝
* @return {*|promise}
*/
getUserMap: function () {
return this.callApi(_MIDEA_USER, 'getUserMap', null)
},
/**
* 启动扫码
* @return {*|promise}
*/
scan: function () {
return this.callApi(_MIDEA_BARCODE, 'scan', null)
},
/**
* 启动扫码
* @return {*|promise}
*/
scanNow: function () {
return this.callApi(_MIDEA_BARCODE, 'scanNow', null)
},
/**
* 获取扫码结果
* @return {*|promise}
*/
getScanExtra: function () {
return this.callApi(_MIDEA_BARCODE, 'getScanExtra', null)
},
/**
* 获取位置信息
* @param arr {array} 参数
* @return {*|promise}
*/
location: function (arr) {
return this.callApi(_MIDEA_MAP, 'location', arr)
},
/**
* 开始更新位置信息
* @param arr {array} 参数
* @return {*|promise}
*/
startUpdatingLocation: function (arr) {
return this.callApi(_MIDEA_MAP, 'startUpdatingLocation', arr)
},
/**
* 停止更新位置信息
* @return {*|promise}
*/
stopUpdatingLocation: function () {
return this.callApi(_MIDEA_MAP, 'stopUpdatingLocation', null)
},
/**
* 导航
* @param arr {array} 参数
* @return {*|promise}
*/
navigation: function (arr) {
return this.callApi(_MIDEA_MAP, 'navTo', arr)
},
/**
* 开启订单跟踪-直通宝
* @param p {array} 参数
* @return {*|promise}
*/
startOrder: function (p) {
return this.callApi(_MIDEA_ANNTO, 'startOrder', p)
},
/**
* 结束订单跟踪-直通宝
* @param p {array} 参数
* @return {*|promise}
*/
stopOrder: function (p) {
return this.callApi(_MIDEA_ANNTO, 'stopOrder', p)
},
/**
* 拍照或选择图片
* @param params {object} 参数
* @return {*}
*/
getPicture: function (params) {
var promise = new Promise((resolve, reject) => {
try {
navigator.camera.getPicture(function (msg) {
resolve(msg)
}, function (msg) {
reject(msg)
},
params)
} catch (e) {
console.log('_warn', 'Cordova maybe not exist.')
reject(e)
}
})
return promise
},
/**
* 获取通讯录
* @param fields {string} 查找内容
* @param options {array} 参数
* @return {*}
*/
getContact: function (fields, options) {
var promise = new Promise((resolve, reject) => {
try {
navigator.service.contacts.find(fields,
function (msg) {
resolve(msg)
}, function (msg) {
reject(msg)
},
options)
} catch (e) {
console.log('_warn', 'Cordova maybe not exist.')
reject(e)
}
})
return promise
},
/**
* 组织架构单选
* @return {*|promise}
*/
orgChoose: function () {
return this.callApi(_MIDEA_USER, 'orgChoose', null)
},
/**
* 组织架构多选
* @param p {array} 参数
* @return {*|promise}
*/
orgMuChoose: function (p) {
return this.callApi(_MIDEA_USER, 'orgMuChoose', p)
},
/**
* 改变状态栏颜色-仅IOS
* @param p {array} 参数 [r, g, b]
* @return {*|promise}
*/
changeColor: function (p) {
return this.callApi(_MIDEA_COMMON, 'statusBarColor', p)
},
/**
* 登出,注销用户
* @return {*|promise}
*/
logout: function () {
return this.callApi(_MIDEA_COMMON, 'logout', null)
},
/**
* 获取webview信息
* @return {*|promise}
*/
webview: function () {
return this.callApi(_MIDEA_COMMON, 'webview', null)
},
/**
* 获取屏幕信息
* @return {*|promise}
*/
screen: function () {
return this.callApi(_MIDEA_COMMON, 'screen', null)
},
/**
* 获取额外启动参数
* @param params {array} 参数
* @return {*|promise}
*/
getExtra: function (params) {
return this.callApi(_MIDEA_COMMON, 'getExtra', params)
},
/**
* 获取设备信息
* @return {*|promise}
*/
getDeviceInfo: function () {
return this.callApi(_MIDEA_COMMON, 'getDeviceInfo', null)
},
/**
* 用外部浏览器打开链接
* @param url {string} 链接地址url
* @return {*|promise}
*/
openUrl: function (url) {
return this.callApi(_MIDEA_COMMON, 'openSysBrowser', [url])
},
/**
* h5事件监听
* @param params {array} 参数
* @return {*|promise}
*/
statistics: function (params) {
return this.callApi(_MIDEA_COMMON, 'onEvent', params)
},
/**
* 分享
* @param params {array} 参数
* @return {*|promise}
*/
share: function (params) {
return this.callApi(_MIDEA_COMMON, 'share', params)
},
/**
* 打开应用页面
* @return {*|promise}
*/
showAppView: function () {
return this.callApi(_MIDEA_COMMON, 'showAppView', ['messageView'])
},
/**
* 打开时间日期选择
* @param params {array} 参数
* @return {*}
*/
showPicker: function (params) {
var promise = new Promise((resolve, reject) => {
if (window.datePicker) {
params = Object.assign({
date: new Date(),
mode: 'date',
type: 'day'
}, params)
window.datePicker && window.datePicker.show(params, function (date) {
resolve(date)
})
} else {
reject()
}
})
return promise
},
/**
* 打开通讯录
* @return {*|promise}
*/
getPhoneMan: function () {
return this.callApi(_MIDEA_USER, 'getContact', null)
},
/**
* 打开个人设置页面
* @return {*|promise}
*/
goPersonalSet: function () {
return this.callApi(_MIDEA_COMMON, 'showSetView', null)
},
/**
* 打开“我的”页面
* @return {*|promise}
*/
goMyView: function () {
return this.callApi(_MIDEA_COMMON, 'showMyView', null)
},
/**
* 打开widget
* @param params {array} 参数
* @return {*|promise}
*/
showWidget: function (params) {
return this.callApi(_MIDEA_COMMON, 'showWidget', params)
},
/**
* 显示键盘
* @return {*|promise}
*/
showInput: function () {
return this.callApi(_MIDEA_COMMON, 'showInput', null)
},
/**
* 隐藏键盘
* @return {*|promise}
*/
hideInput: function () {
return this.callApi(_MIDEA_COMMON, 'hideInput', null)
},
/**
* 打开消息页面
* @return {*|promise}
*/
showMessageView: function () {
return this.callApi(_MIDEA_COMMON, 'showAppView', ['messageView'])
},
/**
* 打开美的通导购的意见反馈
* @return {*|promise}
*/
showFeedback: function () {
return this.callApi(_MIDEA_SALE, 'showFeedback', null)
},
/**
* 批量将图片转换成base64码
* @param pictureList {array} 图片列表
* @return {*|promise}
*/
getBase64CodeFromPictures: function (pictureList) {
return this.callApi(_MIDEA_COMMON, 'getBase64s', pictureList)
},
/**
* 跳转到系统设置页面,
* @param arr arr[0]为要跳转的对应的设置页面,暂时支持 蜂窝网络:CellularNetWork,WIFI:WIFI
* @returns {*}
*/
gotoSystemSetting: function (arr) {
return this.callApi(_MIDEA_COMMON, 'gotoSystemSetting', arr)
},
/**
* 附件展示
* @param param {array} 附件链接url列表
* @return {Promise}
*/
showPdf: function (param) {
return this.callApi(_MIDEA_PDF, 'showPdf', param)
},
/**
* 附件txt展示
* @param param {array} 参数
* @return {Promise}
*/
showTxt: function (param) {
return this.callApi(_MIDEA_PDF, 'showTxt', param)
},
/**
* @description c4a对称加密
* @param params {string} 字符串
* @returns {Promise}
*/
financeAesEncrypt: function (params) {
return this.callApi('MideaFinancePlugin', 'AESEncrypt', [params])
},
/**
* @description c4a对称解密
* @param params {string} 字符串
* @returns {Promise}
*/
financeAesDecrypt: function (params) {
return this.callApi('MideaFinancePlugin', 'AESDecrypt', [params])
},
/**
* @description c4a非对称加密
* @param params {string} 字符串
* @returns {Promise}
*/
financeRsaEncrypt: function (params) {
return this.callApi('MideaFinancePlugin', 'RSAEncrypt', [params])
},
/**
* @description c4a非对称解密
* @param params {string}
* @returns {Promise}
*/
financeRsaDecrypt: function (params) {
return this.callApi('MideaFinancePlugin', 'RSADecrypt', [params])
},
/**
* @description 返回c4a获取密钥的url
* @param params {object} 对象,{baseUrl,keygroup,keyversion}
* @returns {Promise}
*/
financeSecurityKey: function (params) {
return this.callApi('MideaFinancePlugin', 'getSecurityKeyUrl', [params])
},
/**
* @description 获取底座密码
* @returns {Promise}
*/
financeUserPassWord: function () {
return this.callApi(_MIDEA_USER, 'getUserPassword', [])
},
/**
* @description 美的金融保存json
* @param key {string}
* @param value {string}
* @returns {Promise}
*/
financeSaveJson: function (key, value) {
return this.callApi('MideaFinancePlugin', 'saveJson', [key, value])
},
/**
* @description 美的金融读取json
* @param key {string}
* @returns {Promise}
*/
financeGetJson: function (key) {
return this.callApi('MideaFinancePlugin', 'getJson', [key])
},
/**
* @description 打电话(底座有bug)
* @param phoneNumber {string}
* @returns {Promise}
*/
financeCall: function (phoneNumber) {
return this.callApi(_MIDEA_COMMON, 'callPhone', [phoneNumber])
},
/**
* @description 获取美的金融底座版本信息
* @param params {string}
* @returns {Promise}
*/
financeGetVersionInfo: function (params) {
return this.callApi('MideaFinancePlugin', 'getVersionInfo', [params])
},
/**
* @description 更新美的金融底座版本
* @param params {string}
* @returns {Promise}
*/
financeUpdateApp: function (params) {
return this.callApi('MideaFinancePlugin', 'updateApp', [params])
}
}
export function throwError (msg, name = '') {
const e = new Error()
e.message = msg
if (name) {
e.name = name
}
throw e
}
'use strict'
export default class BaseModel {
constructor (nativeApi) {
this.nativeApi = nativeApi
}
static get moduleName () {
return ''
}
get nativeApi () {
return this._nativeApi
}
set nativeApi (nativeApi) {
this._nativeApi = nativeApi
}
get config () {
return this.nativeApi.config
}
get debug () {
return this.nativeApi.debug
}
get platform () {
return this.nativeApi.platform
}
get ready () {
return this.nativeApi.ready
}
log () {
this.nativeApi.log()
}
debugLog () {
this.nativeApi.debugLog()
}
error () {
this.nativeApi.error()
}
info () {
this.nativeApi.info()
}
warn () {
this.nativeApi.warn()
}
}
'use strict'
import { printLog, singleInstance } from './utils'
import { throwError } from '../log'
let __instance = singleInstance()
export default class NativeApi {
constructor (conf) {
if (__instance()) return __instance()
this.config = conf
__instance(this)
}
get config () {
return this._config || {}
}
set config (conf) {
this._config = conf
}
get debug () {
return this.config.debug || false
}
get platform () {
return this.config.platform || 'native'
}
get maxRetryTimes () {
return typeof this.config.maxRetryTimes === 'number' ? this.config.maxRetryTimes : 5
}
get retrySleepTime () {
return typeof this.config.retrySleepTime === 'number' ? this.config.retrySleepTime : 100
}
get ready () {
return this.config.ready || false
}
set ready (isReady) {
this.config.ready = isReady
}
doReady (self) {
self.ready = true
}
setModule (Module, name = Module.moduleName || Module.name) {
// console.log('native api: ' + Module.toString())
// console.log(Module.moduleName)
// console.log(Module.name)
// console.log(name)
if (!name) {
const str = Module.toString()
const arr1 = str.match(/class\s+(.*?)\s+[\S\s]*\{/i)
const arr2 = str.match(/function\s+(.*?)\s*\(.*?\)[\S\s]*\{/i)
// console.log(str)
// console.log(arr1)
// console.log(arr2[1])
name = arr1 && arr1.length > 1
? arr1[1]
: (
arr2 && arr2.length > 1
? arr2[1]
: ''
)
}
name = name
? name.slice(0, 1).toLowerCase() + name.slice(1)
: ''
console.log(name)
if (!name || name.length <= 3) {
throwError('Cannot found Module Name: ' + name + '\n' + Module.toString(), 'MissedModule')
}
this.addModuleName(name)
this[name] = new Module(this)
return this
}
setModules () {
const len = arguments.length
const args = len > 0
? arguments
: []
for (let i = 0; i < len; i++) {
this.setModule(args[i])
}
return this
}
set moduleList (moduleList) {
this.config.moduleList = moduleList
}
get moduleList () {
return this.config.moduleList || []
}
addModuleName (name) {
let moduleList = this.moduleList
moduleList.push(name)
this.moduleList = moduleList
}
log () {
printLog(arguments, this.debug, 'log')
}
debugLog () {
printLog(arguments, this.debug, 'debug')
}
error () {
printLog(arguments, this.debug, 'error')
}
info () {
printLog(arguments, this.debug, 'info')
}
warn () {
printLog(arguments, this.debug, 'warn')
}
}
'use strict'
export async function sleep (timeout) {
return new Promise((resolve, reject) => {
setTimeout(function () {
resolve()
}, timeout)
})
}
export function singleInstance () {
let instance
return (newInstance) => {
if (newInstance) {
instance = newInstance
}
return instance
}
}
export function printLog (_arguments, debug = true, level = 'log') {
if (debug) {
let console = window.console || {}
let logFn = console[level] || console.log
let args = []
let length = _arguments.length
if (length > 0 && typeof _arguments[0] === 'number') {
args = _arguments
} else {
for (let i = 0; i < length; i++) {
args.push(_arguments[i])
if (i === 0 && length > 1) {
args.push('=>')
} else if (i < length - 1) {
args.push(',')
}
}
}
logFn.apply(console, args)
}
}
// 获取设备信息id
import VMT from '@/main'
/* global VMT,device:true */
const getDeviceid = () => {
return new Promise((resolve, reject) => {
if (process.env.NODE_ENV === 'provt') {
VMT.$nativeApi.dataInteraction.getDeviceInfo().then(data => {
// alert('data:' + JSON.stringify(data))
resolve(data.deviceId)
}).catch(err => {
// alert('err:' + JSON.stringify(err))
console.log(err)
const deviceid = 'DEVICEERR' + parseInt(Math.random() * 100)
reject(deviceid)
})
} else if (process.env.NODE_ENV === 'production') {
resolve(device.uuid)
} else {
const deviceid = 'DEVICETEST' + parseInt(Math.random() * 100)
reject(deviceid)
}
})
}
export default getDeviceid
// 弹窗方法api
const Alert = (title, func) => {
const titl = title
if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'provt') {
navigator.notification.alert(titl, func, '', '确定');
} else {
window.alert(titl)
func()
}
}
const Confirm = (title, func) => {
const tit = title
if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'provt') {
navigator.notification.confirm(tit, function (buttonIndex) {
if (buttonIndex == 1) {
func(true)
} else {
func(false)
}
}, '', ['确定', '取消'])
} else {
let res = window.confirm(tit)
if (res) {
func(true)
} else {
func(false)
}
}
}
export default {
Alert,
Confirm
}
// 获取图片方法api
const imgPackageHeader = 'data:image/jpeg;base64,'
const imgDefaultBase64Code = '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'
const destinationTypes = {
THUMB_URL_AND_FILE_URI: -1, // 非cordova自带类型, 返回略缩图和原图的url的json对象
DATA_URL: 0, // Return image as base64-encoded string
FILE_URI: 1, // Return image file URI
NATIVE_URI: 2 // Return image native URI (e.g. assets-library:// on iOS or content:// on Android)
}
const Camera = window.Camera = {}
Camera.DestinationType = {
THUMB_URL_AND_FILE_URI: -1, // 非cordova自带类型, 返回略缩图和原图的url的json对象
DATA_URL: 0, // Return image as base64-encoded string
FILE_URI: 1, // Return image file URI
NATIVE_URI: 2 // Return image native URI (e.g. assets-library:// on iOS or content:// on Android)
}
Camera.PictureSourceType = {
PHOTOLIBRARY: 0,
CAMERA: 1,
SAVEDPHOTOALBUM: 2
}
Camera.EncodingType = {
JPEG: 0, // Return JPEG encoded image
PNG: 1 // Return PNG encoded image
}
Camera.MediaType = {
PICTURE: 0, // allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType
VIDEO: 1, // allow selection of video only, WILL ALWAYS RETURN FILE_URI
ALLMEDIA: 2 // allow selection from all media types
}
Camera.Direction = {
BACK: 0, // Use the back-facing camera
FRONT: 1 // Use the front-facing camera
}
// 获取图片方法
var getPicture = function (type, params, feedback) {
params = params || {}
var quality = params.hasOwnProperty('quality') ? params.quality : 35
var allowEdit = params.hasOwnProperty('allowEdit') ? params.allowEdit : false
var saveToPhotoAlbum = params.hasOwnProperty('saveToPhotoAlbum') ? params.saveToPhotoAlbum : false
if (!window.cordova) {
console.log('非发布环境,用本地图片代替')
feedback({
base64Code: imgDefaultBase64Code,
base64Url: imgPackageHeader + imgDefaultBase64Code
})
} else {
console.log('发布环境,调用拍照接口')
// SEGI兼容在这边做
navigator.camera.getPicture(function (data) {
feedback({
base64Code: data,
base64Url: imgPackageHeader + data
})
}, function (msg) {
console.log('拍照失败原因:', msg)
}, {
quality: quality,
destinationType: destinationTypes.DATA_URL,
allowEdit: allowEdit,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 375,
targetHeight: 667,
saveToPhotoAlbum: saveToPhotoAlbum,
sourceType: type,
mediaType: Camera.MediaType.PICTURE,
correctOrientation: true,
cameraDirection: Camera.Direction.BACK
})
}
}
// 获取图片方式
var selectPicture = function (key, feedback) {
let maxNum = 1
let isSingle = true
let quality = 35
let allowEdit = false
let saveToPhotoAlbum = false
let noneSelect = false
let widthRate = 1
let heightRate = 1
let maxWidth = 720
let maxHeight = 1280
let params = {
isSingle: isSingle,
maxNum: maxNum,
quality: quality,
allowEdit: allowEdit,
saveToPhotoAlbum: saveToPhotoAlbum,
noneSelect: noneSelect,
widthRate: widthRate,
heightRate: heightRate,
maxWidth: maxWidth,
maxHeight: maxHeight
}
if (key === '1') {
getPicture(Camera.PictureSourceType.CAMERA, params, feedback)
} else if (key === '2') {
getPicture(Camera.PictureSourceType.SAVEDPHOTOALBUM, params, feedback)
}
}
var urlEncodeForBase64Code = function (base64Code) {
return base64Code ? base64Code.replace(/\+/g, '%2B') : ''
}
export default {
selectPicture: selectPicture,
urlEncodeForBase64Code: urlEncodeForBase64Code
}
/*
封装 定义 数据请求API
*/
let URL_API = {};
// API接口
let API = {
// 服务器host
Host: 'http://csm.cndrealty.com/csm/staticfactionReport',
TestHost: 'http://csmtest.cndrealty.com/csm/staticfactionReport',
// 2. 公共模块
// 2.1. 登录
// Login: 'app/loginNew',
// 2.2. 登出url
LogOut: 'loginout',
// --------------- 满意度接口 开始 ---------------
// 获取本月、集团累计以及去年标杆满意度数据
GroupSatisfaction: '/getGroupSatisfaction',
// 获取总体满意度排名数据
OverallSatisfaction: '/getOverAllSatisfaction',
// 获取集团均值、去年集团均值以及去年标杆
GroupSatisfactionAvg: '/getGroupSatisfactionAvg',
// 获取二级指标数据
TwoIndicators: '/getTwoIndicators',
// 获取交房情况数据
HouseSituation: '/getHouseSituation',
// 获取交房情况数据
RoomData: '/getRoomData',
// 获取项目交房信息
ProjectInfoToRoom: '/getProjectInfoToRoom',
// 获取项目风险预警信息
ProjectInfoToRisk: '/getProjectInfoRisk'
// --------------- 满意度接口 结束 ---------------
};
for (let key in API) {
if (API.hasOwnProperty(key)) {
const KEY = key.toUpperCase();
URL_API[KEY] = API[key];
}
}
export default URL_API;
/**
* [setStorage 设置本地存储,避免多次调用JSON.stringify方法,并对数据类型做了判断,避免字符串数据的多次转化]
* @param {[String]} key [key识别]
* @param {[Unknown]} data [存储的数据]
*/
export const setStorage = (key, data) => {
var toString = Object.prototype.toString
var notString = toString.call(data) !== '[object String]'
// console.log(data)
// estimate the type of data
if (notString) {
localStorage.setItem(key, JSON.stringify(data))
} else {
localStorage.setItem(key, data)
}
}
/**
* [getStorage 获取本地存储]
* @param {[String]} key [key识别]
* @return {[type]} [description]
*/
export const getStorage = (key) => {
var data = localStorage.getItem(key)
try {
return JSON.parse(data)
} catch (e) {
return data
}
}
/**
* [removeStorage]
* @param {[type]} key [description]
* @return {[type]} [description]
*/
export const removeStorage = (key) => {
key && localStorage.removeItem(key)
}
function Base64 () {
// private property
var _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
// public method for encoding
this.encode = function (input) {
var output = '';
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = _utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
this.decode = function (input) {
var output = '';
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
var _utf8_encode = function (string) {
string = string.replace(/\r\n/g, '\n');
var utftext = '';
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
var _utf8_decode = function (utftext) {
var string = '';
var i = 0;
var c = 0;
var c2 = 0;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i + 1);
var c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
var b = new Base64()
export default b
/*
连接服务器数据接口,返回数据
*/
import APIPath from './APIPath'
import { postJson } from '../utils/http'
// --------------- 满意度接口 开始 ---------------
// 获取本月、集团累计、去年标杆满意度
export async function GroupSatisfaction (params) {
const { orgId, orgMonth } = params
let res = await postJson(APIPath.GROUPSATISFACTION, { orgId, orgMonth })
// console.log(res)
return checkCode(checkStatus(res))
}
// 获取总体满意度排名数据
export async function OverallSatisfaction (params) {
const { orgId, quotaCode, orgMonth } = params
let res = await postJson(APIPath.OVERALLSATISFACTION, { orgId, quotaCode, orgMonth })
// console.log(res)
return checkCode(checkStatus(res))
}
// 获取二级指标
export async function TwoIndicators (params) {
const { orgId, orgMonth } = params
let res = await postJson(APIPath.TWOINDICATORS, { orgId, orgMonth })
return checkCode(checkStatus(res))
}
// 获取集团均值、去年集团均值以及去年标杆
export async function GroupSatisfactionAvg (params) {
const { orgId, orgMonth } = params
let res = await postJson(APIPath.GROUPSATISFACTIONAVG, { orgId, orgMonth })
return checkCode(checkStatus(res))
}
// 获取交房情况数据
// projectId, batchNum 不传,默认查询集团,查询项目需要传值
export async function HouseSituation (params) {
const { projectId, batchNum, userId } = params
// console.log(params)
let res = await postJson(APIPath.HOUSESITUATION, { projectId, batchNum, userId })
return checkCode(checkStatus(res))
}
// 获取交房(已交房、未交房)数据
export async function RoomData (params) {
const { type } = params
let res = await postJson(APIPath.ROOMDATA, { type })
return checkCode(checkStatus(res))
}
// 获取项目交房信息
export async function ProjectInfoToRoom (params) {
const { projectId, batchNum, type } = params
let res = await postJson(APIPath.PROJECTINFOTOROOM, { projectId, batchNum, type })
return checkCode(checkStatus(res))
}
// 获取项目风险预警信息
export async function ProjectInfoToRisk (params) {
const { projectId, batchNum, orgId } = params
let res = await postJson(APIPath.PROJECTINFOTORISK, { projectId, batchNum, orgId })
return checkCode(checkStatus(res))
}
// --------------- 满意度接口 结束 ---------------
export const RESULT_OK = 0
// 处理来自网络或者服务器掉错误
function checkStatus (response) {
if (response.status === 200) {
return response.data
}
// 返回的数据格式跟接口文档规定的格式相同
return {
code: -404,
message: response.statusText,
data: response.statusText
}
}
// 处理来自接口响应成功返回的错误
function checkCode (data) {
return new Promise((resolve, reject) => {
if (data.code != RESULT_OK) {
reject(data.message)
} else {
resolve(data.data)
}
})
}
import * as Storage from './Storage'
import APIPath from './APIPath'
import * as Fetch from './request'
import DateTimePicker from 'date-time-picker'
/*
时间选择配置
*/
const dateOptions = (del) => {
if (del) {
const { defs, min } = del
return {
lang: 'zh-CN',
format: 'yyyy-MM-dd',
default: defs,
min
}
} else {
return {
lang: 'zh-CN',
format: 'yyyy-MM-dd'
}
}
}
const timeOptions = {
lang: 'EN',
format: 'HH:mm',
minuteStep: 5,
min: '00:00',
max: '23:59'
}
const dateConfig = {
day: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
shortDay: ['日', '一', '二', '三', '四', '五', '六'],
MDW: 'M月d日D',
YM: 'yyyy年M月',
OK: '确定',
CANCEL: '取消'
}
/*
参数过滤
*/
const paramFormat = (data) => {
return data.replace(/\//g, '~2F').replace(/\+/g, '~2B').replace(/=/g, '~3D')
}
export {
Storage,
APIPath,
Fetch,
DateTimePicker,
dateOptions,
timeOptions,
dateConfig,
paramFormat
}
/*
封装 定义 连接方法、返回数据格式
*/
// import qs from 'qs';
import axios from 'axios';
const fetchPath = (options) => {
let {
method,
data,
header,
url
} = options;
switch (method.toLowerCase()) {
case 'get':
return axios({
method,
url,
headers: { 'Authorization': header },
params: data
});
case 'post':
return axios({
method,
url,
headers: { 'Authorization': header },
data
})
default:
return axios(options);
}
};
/**
* Requests a URL, returning a promise.
*
* @param {string} url The URL we want to request
* @param {object} [options] The options we want to pass to "fetch"
* @return {object} An object containing either "data" or "err"
*/
export default function request (options) {
return fetchPath(options).then((response) => {
const { data } = response
const { status, msg } = data
return {
statusMsg: msg,
statusCode: status,
...data
};
}).catch((error) => {
const { message } = error
return {
statusMsg: message,
statusCode: -1000
};
});
}
<template>
<div class="base-page">
<title-bar :title="title" />
<loading ref="loading" :show="this.$store.state.showLoading" />
<div class="main">
<slot></slot>
</div>
</div>
</template>
<script>
import Loading from '@/components/Loading'
export default {
name: 'BasePage',
props: ['title'],
components: {
'loading': Loading
}
}
</script>
<style scoped>
.base-page {
display: flex;
flex-direction: column;
height: 100%;
background-color: rgb(245, 245, 247);
}
.title-bar {
position: fixed;
top: 0;
width: 100%;
z-index: 999;
}
.main {
margin-top: 1rem;
overflow: auto;
flex: 1;
display: flex;
flex-direction: column;
}
</style>
<template>
<div class="datetime"><span class="fontColor2">{{date}}</span></div>
</template>
<script>
export default {
name: 'DateTime',
props: ['date']
}
</script>
<style scoped>
.datetime {
background: white;
height: 0.9rem;
min-height: 0.9rem;
font-weight: bold;
font-size: 14px;
display: flex;
align-items: center;
padding-left: 0.2rem;
}
</style>
<template>
<div class="delivery-info">
<div v-transfer-dom>
<previewer ref="previewer" :list="previewerList" :options="options" @on-close="closePreview"></previewer>
</div>
<item-title title="交房情况">
<button v-show="type=='group'" @click="showPlay" class="bgColor1">年度交房计划</button>
</item-title>
<div class="houseTotalNum">
<span class="normal-font">项目住宅总户数</span>
<br />
<span class="totalNum">{{totalNum}}</span>
<div v-show="type=='project'">
<span class="normal-font">项目集中交付时间为</span>
<br />
<span class="normal-font">{{focusDate}}</span>
</div>
</div>
<div class="chart">
<div id="deliverychart" ref="deliverychart"></div>
<div class="legend">
<span class="square color1"></span>
<span class="normal-font col1">符合交房条件(户)</span>
<span class="normal-font col2">{{meetHandoverNum}}</span>
<span class="normal-font col3">{{meetHandoverRate}}</span>
</div>
<div class="legend">
<span class="square color2"></span>
<span class="normal-font col1">累计实际交付(户)</span>
<span class="normal-font col2">{{handoverNum}}</span>
<span class="normal-font col3">{{handoverRate}}</span>
</div>
<div class="legend">
<span class="square color3"></span>
<span class="normal-font col1">累计报修(户)</span>
<span class="normal-font col2">{{repairNum}}</span>
<span class="normal-font col3">{{repairRate}}</span>
</div>
</div>
</div>
</template>
<script>
/**
* 交房情况
*/
import ItemTitle from './ItemTitle'
import * as echarts from 'echarts'
import { Previewer, TransferDom } from 'vux'
import { mapGetters } from 'vuex'
export default {
name: 'DeliveryInfo',
directives: {
TransferDom
},
props: {
info: {
type: Object,
default: function () {
return {}
}
},
type: String,
focusDate: String
},
data () {
return {
options: {
maxSpreadZoom: 5, // 最大放大倍数
fullscreenEl: false, // 关闭全屏按钮
pinchToClose: false, // 缩放退出
closeOnScroll: false, // 滚动退出
closeOnVerticalDrag: false, // 垂直拖动退出
tapToClose: false, // 点击退出
tapToToggleControls: false, // 单击控制模式切换
escKey: false, // ESC按键退出
history: false // back按键退出
}
}
},
computed: {
...mapGetters('deliveryHouse', [
'showPreview'
]),
previewerList () {
return [
{
src: this.info.imgUrl
}
]
},
totalNum () {
return isNaN(this.info.totalNum) ? '' : Number(this.info.totalNum)
},
meetHandoverNum () {
return isNaN(this.info.meetHandoverNum) ? '' : Number(this.info.meetHandoverNum)
},
meetHandoverRate () {
return this.info.meetHandoverRate
},
handoverNum () {
return isNaN(this.info.handoverNum) ? '' : Number(this.info.handoverNum)
},
handoverRate () {
return this.info.handoverRate
},
repairNum () {
return isNaN(this.info.repairNum) ? '' : Number(this.info.repairNum)
},
repairRate () {
return this.info.repairRate
},
chartOpt () {
return {
backgroundColor: 'white',
angleAxis: {
max: this.totalNum,
axisLine: {
lineStyle: {
color: '#708ca6',
width: 1
}
},
axisTick: {
length: 4,
lineStyle: {
width: 0.5
}
},
splitLine: {
lineStyle: {
width: 0.5,
opacity: 0.5
}
}
},
radiusAxis: {
axisLabel: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false
},
type: 'category',
data: ['累计报修', '累计实际交付', '符合交房条件'],
z: 10
},
polar: {
radius: '80%'
},
series: [
{
type: 'bar',
data: [this.repairNum, 0, 0],
silent: true,
coordinateSystem: 'polar',
stack: 'a',
name: '累计报修(户)',
color: ['#FD694B']
},
{
type: 'bar',
data: [0, this.handoverNum, 0],
silent: true,
coordinateSystem: 'polar',
stack: 'a',
name: '累计实际交付(户)',
color: ['#7179CA']
},
{
type: 'bar',
data: [0, 0, this.meetHandoverNum],
silent: true,
coordinateSystem: 'polar',
stack: 'a',
name: '符合交房条件(户)',
color: ['#4ECEFF']
}
],
color: ['#FD694B', '#7179CA', '#4ECEFF']
}
}
},
components: {
'item-title': ItemTitle,
'previewer': Previewer
},
watch: {
info: function (val, oldVal) {
this.updateChartData()
},
showPreview: function (val, oldVal) {
if (val) {
this.$refs.previewer.show(0)
} else if (this.$refs.previewer) {
this.$refs.previewer.close()
}
}
},
mounted () {
this.$echart = echarts.init(this.$refs.deliverychart)
this.$echart.setOption(this.chartOpt)
},
methods: {
updateChartData () {
this.$echart.setOption({
angleAxis: {
max: this.totalNum
},
series: [
{
type: 'bar',
data: [this.repairNum, 0, 0]
},
{
type: 'bar',
data: [0, this.handoverNum, 0]
},
{
type: 'bar',
data: [0, 0, this.meetHandoverNum]
}
]
})
},
showPlay () {
this.$store.commit('deliveryHouse/showPreview', true)
},
closePreview () {
this.$store.commit('deliveryHouse/showPreview', false)
}
}
}
</script>
<style scoped>
.delivery-info {
background: white;
padding-bottom: 0.3rem;
}
button {
height: 0.6rem;
padding-left: 0.15rem;
padding-right: 0.15rem;
border-radius: 5px;
color: white;
position: absolute;
right: 0.2rem;
top: 0.15rem;
}
.houseTotalNum {
border-bottom: 1px solid #ebeff3;
padding-top: 0.3rem;
padding-bottom: 0.3rem;
margin-left: 0.2rem;
margin-right: 0.2rem;
}
.normal-font {
font-size: 14px;
color: #6b6f7b;
}
.totalNum {
color: #0e1721;
font-weight: bold;
font-size: 28px;
}
.chart {
margin-top: 0.3rem;
background: white;
}
#deliverychart {
height: 4.2rem;
width: 100%;
margin-bottom: 0.3rem;
}
.legend {
display: flex;
justify-content: flex-start;
align-items: center;
padding-right: 0.2rem;
}
.square {
width: 0.2rem;
height: 0.2rem;
margin-left: 0.2rem;
margin-right: 0.2rem;
border-radius: 2px;
}
.color1 {
background: #4ECEFF;
}
.color2 {
background: #7179CA;
}
.color3 {
background: #FD694B;
}
.col1 {
flex: 1;
text-align: left;
}
.col2 {
width: 1.5rem;
text-align: left;
}
.col3 {
width: 1.5rem;
text-align: right;
}
</style>
<template>
<div class="delivery-list">
<ul>
<li class="table-header">
<span class="col1 padding-left-normal">组织/项目</span>
<span class="col2">交房集中期</span>
<span class="col3">天数</span>
<span class="col4">风险</span>
</li>
<li v-for="(it, index) in list" :key="index" class="table-body" @click="itemClick(it)">
<div class="col1 orgProject padding-left-normal">
<span class="orgName">{{it.orgName}}</span>
<span class="projectName">{{it.projectName}}</span>
</div>
<div class="col2 datezoom">
<span>{{startDate(it.focusDate)}}</span>
<span></span>
<span>{{endDate(it.focusDate)}}</span>
</div>
<span class="col3 dateNum">{{dayCount(it.dayCount)}}</span>
<span class="col4" @click.stop="alertInfo(it.lightRemark)">
<img class="risk" :src="getIcon(it.risk)" alt="">
</span>
</li>
</ul>
</div>
</template>
<script>
const riskWarn1 = require('../assets/images/ic_warn_1@2x.png')
const riskWarn2 = require('../assets/images/ic_warn_2@2x.png')
const riskWarn3 = require('../assets/images/ic_warn_3@2x.png')
/**
* 交房、未交房列表
*/
export default {
name: 'DeliveryList',
props: {
list: {
type: Array
}
},
data () {
return {
riskWarn1Icon: riskWarn1,
riskWarn2Icon: riskWarn2,
riskWarn3Icon: riskWarn3
}
},
methods: {
getIcon (risk) {
switch (risk) {
case '1':
return this.riskWarn2Icon
case '2':
return this.riskWarn3Icon
default:
return this.riskWarn1Icon
}
},
alertInfo (info) {
this.$dialog.Alert(info || '暂无', function () {})
},
itemClick (item) {
this.$emit('itemClick', item)
},
dayCount (dayCount) {
return isNaN(dayCount) ? '' : Number(dayCount)
},
startDate (focusDate) {
let dateArr = focusDate.split('-')
if (dateArr.length >= 3) {
return `${dateArr[0]}.${dateArr[1]}.${dateArr[2]}`
} else {
return '-'
}
},
endDate (focusDate) {
let dateArr = focusDate.split('-')
if (dateArr.length >= 6) {
return `${dateArr[3]}.${dateArr[4]}.${dateArr[5]}`
} else {
return '-'
}
}
}
}
</script>
<style scoped>
.delivery-list {
background: white;
}
ul {
margin: auto 0.2rem;
}
.table-header {
display: flex;
border-bottom: #f0f0f2 solid 1px;
height: 0.9rem;
align-items: center;
}
.table-header span {
font-size: 14px;
color: #333333;
font-weight: bold;
}
.col1 {
flex: 1;
}
.col2 {
width: 2rem;
}
.col3, .col4 {
width: 1rem;
}
.table-header span:first-child {
text-align: left;
}
.table-body {
display: flex;
color: #6B6F7B;
align-items: center;
height: 1rem;
}
.table-body:nth-child(odd) {
background: #F9F9FB;
}
.orgProject {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
}
.orgName, .dateNum {
font-size: 13px;
font-weight: bold;
color: #6B6F7B;
}
.projectName {
font-size: 11px;
color: #6B6F7B;
}
.datezoom {
display: flex;
flex-direction: column;
align-items: center;
}
.datezoom span {
font-size: 10px;
color: #6B6F7B;
}
.risk {
width: 0.4rem;
height: 0.41rem;
align-self: center;
}
</style>
<template>
<div class="room-num">
<item-title title="交房数量"></item-title>
<div class="roomNumInfo">
<span>本次预计交房数</span>
<span class="roomNum">{{countNum}}</span>
</div>
<ul>
<li v-for="(it, index) in list" :key="index"><span>{{it.buildingName}}</span></li>
</ul>
</div>
</template>
<script>
/**
* 交房数量
*/
import { mapGetters } from 'vuex'
import ItemTitle from './ItemTitle'
export default {
name: 'DeliveryRoomNum',
components: {
'item-title': ItemTitle
},
data () {
return {
}
},
computed: {
...mapGetters('deliveryHouse', [
'projectRoomInfo'
]),
countNum () {
return this.projectRoomInfo ? this.projectRoomInfo.countNum : ''
},
list () {
return this.projectRoomInfo ? this.projectRoomInfo.list : []
}
}
}
</script>
<style scoped>
.room-num {
background: white;
}
.roomNumInfo {
display: flex;
justify-content: space-between;
margin-left: 0.2rem;
margin-right: 0.2rem;
height: 0.9rem;
border-bottom: 1px solid #ebeff3;
align-items: center;
}
.roomNumInfo span:first-child {
color: #333333;
font-size: 15px;
}
.roomNum {
color: #cd0001;
font-size: 16px;
}
ul {
border-top: 1px solid #F6F8FA;
margin-left: 0.2rem;
margin-right: 0.2rem;
flex: 1;
overflow: auto;
}
li {
display: flex;
justify-content: space-between;
align-items: center;
}
li span {
font-size: 14px;
color: #6b6f7b;
height: 0.9rem;
line-height: 0.9rem;
}
</style>
<template>
<div class="item-title">
<span class="indicate"> </span>
<span class="title">{{title}}</span>
<slot></slot>
</div>
</template>
<script>
export default {
name: 'ItemTitle',
props: ['title']
}
</script>
<style scoped>
.item-title {
position: relative;
display: flex;
border-bottom: 1px solid #ebeff3;
align-items: center;
height: 0.9rem;
}
.indicate {
background: #cd3d3d;
width: 4px;
height: 18px;
margin-left: 0.2rem;
margin-right: 0.1rem;
}
.title {
color: #333333;
font-weight: bold;
font-size: 16px;
height: 16px;
line-height: 16px;
align-self: center;
}
</style>
<template>
<transition :name="transition">
<div
class="weui-loading_toast vux-loading"
:class="!text ? 'vux-loading-no-text' : ''"
v-show="show">
<div class="weui-mask_transparent"></div>
<div
class="weui-toast"
:style="{
position: position
}">
<i class="weui-loading weui-icon_toast"></i>
<p class="weui-toast__content" v-if="text">{{ text || 'loading' }}</p>
</div>
</div>
</transition>
</template>
<script>
// 根据vux loading组件修改
export default {
name: 'loading',
model: {
prop: 'show',
event: 'change'
},
props: {
show: {
type: Boolean,
default: true
},
text: {
type: String,
default: '加载中...'
},
position: {
type: String,
default: 'fixed'
},
transition: {
type: String,
default: 'vux-mask'
}
},
watch: {
show (val) {
this.$emit('update:show', val)
}
}
}
</script>
<style scoped>
.loading {
position: fixed;
width: 30vw;
height: 30vw;
z-index: 9999;
background: rgba(0, 0, 0, 0.7);
display: flex;
flex-direction: column;
vertical-align: middle;
text-align: center;
}
.weui-toast {
position: fixed;
width: 7.6em;
min-height: 7.6em;
top: calc(50% - 7.6em / 2.0);
left: 50%;
margin-left: -3.8em;
background: rgba(17,17,17,0.7);
text-align: center;
border-radius: 5px;
color: #FFFFFF;
}
.weui-toast__content {
margin: 0 0 15px;
color: #FFFFFF;
}
.vux-loading .weui-toast {
z-index: 999;
}
.weui-icon_toast.weui-loading {
margin: 30px 0 0;
width: 38px;
height: 38px;
vertical-align: baseline;
display: inline-block;
}
.vux-mask-enter, .vux-mask-leave-active,
.vux-mask-leave-active, .vux-mask-enter-active {
position: relative;
z-index: 1;
}
.vux-mask-enter, .vux-mask-leave-active {
opacity: 0;
}
.vux-mask-leave-active, .vux-mask-enter-active {
transition: opacity 300ms;
}
.vux-loading-no-text .weui-toast {
min-height: 98px;
}
.weui-mask {
position: fixed;
z-index: 1000;
top: 0;
right: 0;
left: 0;
bottom: 0;
background: rgba(0, 0, 0, .6);
}
/** 透明遮罩层 预留顶部标题栏高度,阻止页面上下滚动 */
.weui-mask_transparent{
position: fixed;
z-index: 1000;
top: 1rem;
right: 0;
left: 0;
bottom: 0;
}
.weui-loading {
width: 20px;
height: 20px;
display: inline-block;
vertical-align: middle;
animation: weuiLoading 1s steps(12, end) infinite;
background: transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat;
background-size: 100%;
}
.weui-loading.weui-loading_transparent{
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMjAnIGhlaWdodD0nMTIwJyB2aWV3Qm94PScwIDAgMTAwIDEwMCc+PHBhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgxMDB2MTAwSDB6Jy8+PHJlY3QgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjU2KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwIC0zMCknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjUpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKDMwIDEwNS45OCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjQzKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA3NS45OCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjM4KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSg5MCA2NSA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjMyKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTguNjYgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4yOCknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoMTUwIDU0LjAyIDY1KScvPjxyZWN0IHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyB4PSc0Ni41JyB5PSc0MCcgZmlsbD0ncmdiYSgyNTUsMjU1LDI1NSwuMjUpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKDE4MCA1MCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjIpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKC0xNTAgNDUuOTggNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4xNyknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoLTEyMCA0MS4zNCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjE0KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgtOTAgMzUgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4xKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjAgMjQuMDIgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4wMyknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoLTMwIC01Ljk4IDY1KScvPjwvc3ZnPgo=");
}
@-webkit-keyframes weuiLoading {
0% {
transform: rotate3d(0, 0, 1, 0deg);
}
100% {
transform: rotate3d(0, 0, 1, 360deg);
}
}
@keyframes weuiLoading {
0% {
transform: rotate3d(0, 0, 1, 0deg);
}
100% {
transform: rotate3d(0, 0, 1, 360deg);
}
}
</style>
<template>
<div class="risk-warning">
<item-title title="风险预警" >
<img class="risk" :src="riskWarnIcon" alt="" @click="alertInfo('risk')">
</item-title>
<ul>
<li>
<span class="label">交付评估得分</span>
<div class="flex flexCenter">
<span class="value">{{this.formatResult(compositeScore)}}</span>
<span class="toAlertIcon" @click="alertInfo('composite')"><img :src="alertIcon" alt=""></span>
</div>
</li>
<li><span class="label">满意度累计得分</span><span class="value">{{satisfactionScore}}</span></li>
<li><span class="label">集中整改率</span><span class="value">{{rectificationRate}}</span></li>
<li><span class="label">备注</span><span class="toAlertIcon"><img :src="alertIcon" alt="" @click="alertInfo('remark')"></span></li>
</ul>
</div>
</template>
<script>
/**
* 风险预警
*/
import { mapGetters } from 'vuex'
import ItemTitle from './ItemTitle'
const riskWarn1 = require('../assets/images/ic_warn_1@2x.png')
const riskWarn2 = require('../assets/images/ic_warn_2@2x.png')
const riskWarn3 = require('../assets/images/ic_warn_3@2x.png')
const alertIcon = require('../assets/images/ic_arrow_left_2@2x.png')
export default {
name: 'RiskWarning',
components: {
'item-title': ItemTitle
},
data () {
return {
alertIcon: alertIcon
}
},
computed: {
...mapGetters('deliveryHouse', [
'projectRiskInfo'
]),
riskWarnIcon: function () {
return this.risk == '1' ? riskWarn2 : this.risk == '2' ? riskWarn3 : riskWarn1
},
compositeScore () {
return this.projectRiskInfo ? this.projectRiskInfo.compositeScore : ''
},
antiSeepScore () {
return this.projectRiskInfo ? this.projectRiskInfo.antiseepScore : ''
},
functionScore () {
return this.projectRiskInfo ? this.projectRiskInfo.functionScore : ''
},
scheduleScore () {
return this.projectRiskInfo ? this.projectRiskInfo.scheduleScore : ''
},
lightRemark () {
return this.projectRiskInfo ? this.projectRiskInfo.lightRemark : ''
},
rectificationRate () {
return this.projectRiskInfo ? this.projectRiskInfo.rectificationRate : '暂无'
},
risk () {
return this.projectRiskInfo ? this.projectRiskInfo.risk : ''
},
projectRemark () {
return this.projectRiskInfo ? this.projectRiskInfo.projectRemark : ''
},
satisfactionScore () {
return this.projectRiskInfo ? this.projectRiskInfo.satisfactionScore : '暂无'
}
},
methods: {
alertInfo (type) {
if (type == 'composite') {
this.$dialog.Alert(this.formatResult(this.antiSeepScore + this.functionScore + this.scheduleScore), function () {})
} else if (type == 'risk') {
this.$dialog.Alert(this.formatResult(this.lightRemark), function () {})
} else if (type == 'remark') {
this.$dialog.Alert(this.formatResult(this.projectRemark), function () {})
}
},
formatResult (value) {
if (isNaN(value)) { // 非数字
return value
} else if (Number(value) == 0) {
return '暂无'
} else {
return Number(value)
}
}
}
}
</script>
<style scoped>
.risk-warning {
background: white;
}
ul {
padding-left: 0.1rem;
padding-right: 0.1rem;
}
li {
display: flex;
justify-content: space-between;
padding-left: 0.1rem;
padding-right: 0.1rem;
height: 0.9rem;
align-items: center;
}
li:nth-child(even) {
background: #F9F9FB;
}
.label {
font-size: 14px;
color: #6b6f7b;
}
.value {
font-size: 13px;
color: #6b6f7b;
align-self: center;
}
.risk {
width: 0.4rem;
height: 0.41rem;
position: absolute;
right: 0.2rem;
top: 0.245rem;
}
span.label + span.value::after {
content: "";
padding-right: 0.5rem;
width: 0.4rem;
height: 0.4rem;
}
.toAlertIcon {
width: 0.4rem;
height: 0.4rem;
display: flex;
padding-top: 0.2rem;
padding-bottom: 0.2rem;
padding-left: 0.1rem;
}
</style>
<template>
<div class="title-bar">
<span class="back" v-if="isShowBack" @click="back"><img :src="backIcon"/></span>
<span class="title">{{title}}</span>
</div>
</template>
<script>
import backIcon from '../assets/images/ic_back@2x.png'
export default {
name: 'TitleBar',
props: {
title: String,
isShowBack: {
type: Boolean,
default: true
},
backIcon: {
type: String,
default: backIcon
},
backHandle: {
type: Function
}
},
methods: {
back () {
if (this.backHandle) {
this.backHandle()
} else {
this.$router.back()
}
}
}
}
</script>
<style scoped>
.title-bar {
background: #CD3D3D;
height: 1rem;
min-height: 1rem;
display: flex;
justify-content: center;
align-items: center;
}
.title-bar span {
color: white;
vertical-align: center;
}
.back {
position: absolute;
left: 0px;
padding-left: 0.2rem;
padding-right: 0.2rem;
height: 1rem;
line-height: 1rem;
}
.back img {
width: 0.5rem;
height: 0.5rem;
}
.title {
font-size: 20px;
}
</style>
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from '@/App'
import router from '@/router'
import store from '@/vuex/store'
import TitleBar from '@/components/TitleBar'
import BasePage from '@/components/BasePage'
import axios from 'axios'
import { APIPath } from './common'
import Dialog from '@/base/plugins/dialog'
// 全局axios默认配置
axios.defaults.baseURL = APIPath.HOST
Vue.prototype.$axios = axios
// 获取屏幕宽高
Vue.prototype.getViewportSize = function () {
return {
width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
}
}
/* V+兼容 */
import nativeApi from './base/NativeApi/cordova'
Vue.use(nativeApi, Object.assign({ debug: true, maxRetryTimes: 10, retrySleepTime: 100 }))
// 判断是否V+模块
Vue.prototype.$vPlusModule = process.env.NODE_ENV === 'provt'
Vue.config.productionTip = false
Vue.component('title-bar', TitleBar) // 全局注册标题栏
Vue.component('page', BasePage)
Vue.prototype.$dialog = Dialog // 全局的对话框
let VMT
/* eslint-disable no-new */
if (process.env.NODE_ENV === 'production') {
document.addEventListener('deviceready', function () {
VMT = new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
})
} else {
VMT = new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
}
export default VMT
import Vue from 'vue'
import Router from 'vue-router'
import HouseDelivery from '@/screen/HouseDelivery'
import ProjectDelivery from '@/screen/ProjectDelivery'
Vue.use(Router)
const router = new Router({
routes: [{
path: '/',
name: 'HouseDelivery',
component: HouseDelivery
},
{
path: '/projectdelivery',
name: 'ProjectDelivery',
component: ProjectDelivery
}]
})
// 手动维护路由记录
router.myHistory = []
Router.prototype.isBack = false
router.afterEach((to, from) => {
if (router.myHistory.indexOf(to.fullPath) == -1) {
router.isBack = false
router.myHistory.push(to.fullPath)
} else {
if (router.myHistory[router.myHistory.length - 1] == from.fullPath) {
router.isBack = true
router.myHistory.pop()
}
}
})
export default router
<template>
<div class="container">
<title-bar :title="title" :isShowBack="this.$vPlusModule" :backHandle="backHandle" />
<loading ref="loading" :show="this.$store.state.showLoading" />
<delivery-info class="marginBottom" :info="groupHouseInfo" type='group'/>
<div>
<div class="tab-container">
<button :class="['tab', {tabSelected: isCheckOut}]"
@click="onTabChange(true)">
已交房
</button>
<button :class="['tab', {tabSelected: !isCheckOut}]"
@click="onTabChange(false)">
未交房
</button>
</div>
<div class="delivery-list">
<delivery-list v-if="isCheckOut" @itemClick="itemClickHandler" :list="checkOutList"/>
<transition name="list-in">
<keep-alive key="chart">
<delivery-list v-if="!isCheckOut" @itemClick="itemClickHandler" :list="notCheckOutList"/>
</keep-alive>
</transition>
</div>
</div>
</div>
</template>
<script>
/** 集团交房页面 */
import '@/assets/css/base.css'
import '@/assets/css/app.css'
import { mapActions, mapGetters, mapMutations } from 'vuex'
import DeliveryInfo from '@/components/DeliveryInfo'
import DeliveryList from '@/components/DeliveryList'
import Loading from '@/components/Loading'
export default {
name: 'HouseDelivery',
components: {
'delivery-info': DeliveryInfo,
'delivery-list': DeliveryList,
'loading': Loading
},
created () {
console.log('is v+ module: ' + this.$vPlusModule)
if (this.$vPlusModule) {
this.getUserInfo()
}
if (!this.$router.isBack) {
this.fetchData()
} else {
this.$store.commit('deliveryHouse/resetProject')
}
},
data () {
return {
title: '集团交房',
chartOpt: {
angleAxis: {
},
radiusAxis: {
type: 'category',
data: ['累计保修', '累计实际交付', '符合交房条件'],
z: 10
},
polar: {
},
series: [{
type: 'bar',
data: [57, 0, 0],
coordinateSystem: 'polar',
stack: 'a',
name: '累计保修(户)'
}, {
type: 'bar',
data: [0, 143, 0],
coordinateSystem: 'polar',
stack: 'a',
name: '累计实际交付(户)'
}, {
type: 'bar',
data: [0, 0, 275],
coordinateSystem: 'polar',
stack: 'a',
name: '符合交房条件(户)'
}],
color: ['#D53A35', '#334B5C', '#6AB0B8']
}
}
},
computed: {
...mapGetters('deliveryHouse', [
'groupHouseInfo',
'isCheckOut',
'checkOutList',
'notCheckOutList',
'showPreview'
]),
...mapGetters('user', [
'userId'
])
},
methods: {
...mapActions('deliveryHouse', [
'getHouseSituation',
'getRoomData'
]),
...mapActions('user', [
'getUserInfo'
]),
...mapMutations([
'showLoading'
]),
fetchData () {
this.showLoading(true)
this.$axios.all([
this.getHouseSituation({projectId: '', batchNum: '', userId: ''}),
this.getRoomData({type: 1}),
this.getRoomData({type: 2})
])
.then(this.$axios.spread(() => {
this.showLoading(false)
}))
.catch(error => {
this.showLoading(false)
this.$dialog.Alert(error, function () {})
})
},
onTabChange (isCheckOut) {
this.$store.commit('deliveryHouse/isCheckOut', isCheckOut)
},
itemClickHandler (item) {
this.showLoading(true)
this.getHouseSituation({projectId: item.projectId, batchNum: item.batchNum, userId: this.userId})
.then(_ => {
this.showLoading(false)
this.$store.commit('deliveryHouse/setProjectInfo', item)
this.$router.push({name: 'ProjectDelivery', params: item})
})
.catch(error => {
this.showLoading(false)
this.$dialog.Alert(error, function () {})
})
},
backHandle () {
if (this.$vPlusModule) {
this.$nativeApi.navigator.exit()
} else {
this.$router.back()
}
}
},
beforeRouteLeave (to, from, next) {
if (!this.showPreview) {
next()
} else {
this.$store.commit('deliveryHouse/showPreview', false)
next(false)
}
}
}
</script>
<style scoped>
.marginBottom {
margin-bottom: 0.2rem;
}
.tab-container {
display: flex;
}
.tab {
flex: 1;
font-size: 15px;
cursor: pointer;
border-bottom: solid #f0f0f2 1px;
background: white;
height: 0.8rem;
color: #6b6f7b;
}
.tabSelected {
color: #cd3d3d;
border-bottom: solid #cd3d3d 3px;
}
.delivery-list {
overflow-x: hidden;
}
</style>
<template>
<div class="container">
<title-bar :title="projectName" />
<loading ref="loading" :show="this.$store.state.showLoading" />
<delivery-info v-if="projectHouseInfo" class="margin-bottom-normal"
:focusDate="focusDate"
:info="projectHouseInfo" type='project'/>
<risk-warning class="margin-bottom-normal" />
</div>
</template>
<script>
/**
* 项目、组织交房页面
*/
import { mapActions, mapGetters, mapMutations } from 'vuex'
import DeliveryInfo from '../components/DeliveryInfo'
import RiskWarning from '../components/RiskWarning'
import DeliveryRoomNum from '../components/DeliveryRoomNum'
export default {
name: 'ProjectDelivery',
components: {
'delivery-info': DeliveryInfo,
'risk-warning': RiskWarning,
'delivery-room-num': DeliveryRoomNum
},
created () {
this.fetchData()
},
computed: {
...mapGetters('deliveryHouse', [
'projectInfo',
'isCheckOut',
'projectHouseInfo'
]),
projectName () {
return this.projectInfo ? this.projectInfo.projectName : ''
},
projectId () {
return this.projectInfo ? this.projectInfo.projectId : ''
},
batchNum () {
return this.projectInfo ? this.projectInfo.batchNum : ''
},
orgId () {
return this.projectInfo ? this.projectInfo.orgId : ''
},
type () {
return this.isCheckOut ? 1 : 2
},
focusDate () {
if (this.$route.params.focusDate) {
let dateArr = this.$route.params.focusDate.split('-')
if (dateArr.length >= 6) {
return `${dateArr[0]}${dateArr[1]}${dateArr[2]}日-${dateArr[3]}${dateArr[4]}${dateArr[5]}日`
} else if (dateArr.length >= 3) {
return `${dateArr[0]}${dateArr[1]}${dateArr[2]}日-`
} else {
return this.$route.params.focusDate
}
}
}
},
methods: {
...mapActions('deliveryHouse', [
'getHouseSituation',
'getProjectInfoToRoom',
'getProjectInfoToRisk'
]),
...mapMutations([
'showLoading'
]),
fetchData () {
this.showLoading(true)
this.$axios.all([
this.getProjectInfoToRisk({projectId: this.projectId, batchNum: this.batchNum, orgId: this.orgId})
])
.then(this.$axios.spread(() => {
this.showLoading(false)
}))
.catch(error => {
this.showLoading(false)
this.$dialog.Alert(error, function () {})
})
}
}
}
</script>
/*
封装 定义 连接方法、返回数据格式
*/
// import qs from 'qs';
import axios from 'axios';
// import {APIPath} from '../common'
// import Dialog from '@/base/plugins/dialog'
// 全局axios默认配置
// axios.defaults.baseURL = APIPath.HOST
// axios.defaults.baseURL = APIPath.TESTHOST
axios.defaults.headers = {
'X-Requested-With': 'XMLHttpRequest',
'Authorization': 'Basic c21zc2VydmljZXVzZXI6ZmRjVXNlcjY1NCNAIQ=='// 正式环境 账号 smsserviceuser 密码 fdcUser654#@! // todo 获取登录后的账号密码进行封装 'Basic c21zc2VydmljZXVzZXI6ZmRjVXNlcjY1NCNAIQ=='
// 'Authorization': 'Basic bGl1eW1AZWhvbWVvbC5jbjppdGFk' // 测试环境
}
axios.defaults.timeout = 60 * 1000
// 传json格式参数,不需要
// axios.defaults.transformRequest = [function (params) {
// console.log(params)
// 数据序列化
// return qs.stringify(params)
// }]
let cancel
let promiseArr = {}
const CancelToken = axios.CancelToken
// axios拦截器
axios.interceptors.request.use(config => {
let params = JSON.stringify(config.data)
let key = config.url + '?' + params
// 同一个URL,但是参数不同
if (promiseArr[key]) {
promiseArr[key]('操作取消')
promiseArr[key] = cancel
} else {
promiseArr[key] = cancel
}
return config
}, error => {
return Promise.reject(error)
})
axios.interceptors.response.use(response => {
return response
}, error => {
return Promise.reject(error)
})
export function get (url, params = {}) {
return new Promise((resolve, reject) => {
axios({
method: 'get',
url,
params,
cancelToken: new CancelToken(c => {
cancel = c
})
}).then(res => {
resolve(res)
})
})
}
export function post (url, params = {}) {
return new Promise((resolve, reject) => {
axios({
method: 'post',
url: url,
data: params,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
cancelToken: new CancelToken(c => {
cancel = c
})
}).then(res => {
resolve(res)
})
})
}
export function postJson (url, params = {}) {
return new Promise((resolve, reject) => {
axios({
method: 'post',
url: url,
data: params,
dataType: 'json',
headers: {
'Content-Type': 'application/json; charset=UTF-8'
},
cancelToken: new CancelToken(c => {
cancel = c
})
}).then(res => {
resolve(res)
}).catch(err => {
// errorHandle(errorParse(err))
reject(errorParse(err))
})
})
}
/**
* 解析错误类型,返回错误信息
* @param {*} error
*/
function errorParse (error) {
let message = error
if (error.code == 'ECONNABORTED') { // 请求超时
message = '请求超时!请检查网络连接是否正常!'
return message
}
if (error.message != '操作取消') {
if (error.response) {
switch (error.response.status) {
case 404:
message = '404错误!请检查url是否拼写正确!\n' + error.request.responseURL
break
case 400:
message = '请求错误(400)'
break
case 401:
message = '未授权,请重新登录(401)'
break
case 403:
message = '拒绝访问(403)'
break
case 408:
message = '请求超时(408)'
break
case 500:
message = '服务器错误(500)'
break
case 501:
message = '服务未实现(501)'
break
case 502:
message = '网络错误(502)'
break
case 503:
message = '服务不可用(503)'
break
case 504:
message = '网络超时(504)'
break
case 505:
message = 'HTTP版本不受支持(505)'
break
default:
message = error
}
}
}
return message
}
// function errorHandle (error) {
// Dialog.Alert(error, function () {})
// }
/*
actions.js
封装 获取相应 数据、状态值 方法
*/
/* global cordova:true */
// 引入接口
// import * as Connect from '@/common/connect'
import Base64 from '@/common/base64'
import axios from 'axios'
/*
测试数据分配,10: 房产,20: 物业。
*/
const TESTTYPES = 10
/* V+集成登录获取信息 */
export const getVUserInfo = ({ commit }, data) => {
return new Promise((resolve, reject) => {
const { uname, pwd, host } = data.data
const datas = {
username: uname,
password: Base64.encode(pwd)
}
axios({
method: 'post',
url: host + 'app/loginNew',
data: datas
}).then(res => {
console.log('comein:' + JSON.stringify(res.data))
if (res.data.status === 200) {
// 设置用户数据 userInfo
const dats = res.data.record
// 设置httpHead
const b2v = 'Basic ' + Base64.encode(uname + ':' + pwd)
const datas = {
userInfo: dats,
host,
header: b2v
}
commit('getInfos', { data: datas })
resolve()
} else {
reject(res.data.exception)
}
}).catch(error => {
console.log('fail:' + JSON.stringify(error))
reject(error)
})
})
}
/* 获取用户信息 */
export const getUserInfo = ({ commit }, data) => {
return new Promise((resolve, reject) => {
// console.log('function ' + JSON.stringify(data))
// 同步到state
if (process.env.NODE_ENV === 'production') {
cordova.exec(function (result) {
const dats = JSON.parse(result)
commit('getInfo', { data: dats, type: data.type })
resolve()
}, function (error) {
navigator.notification.alert(error)
resolve()
}, 'YFPlugin', data.type, [])
} else {
// 房产
const adf = {
'username': '邴博',
'cell': '13506027389',
'fid': 'DzmkcfSZQ\/CdF77ixahmwxO33n8=',
'userId': 'bingb@cndrealty.com'
}
// 物业
const adw = {
'username': '刘燕美',
'cell': '1',
'fid': 'dsG2\/e2wTMOehOmJU3HQ3hO33n8=',
'userId': 'liuym@ehomeol.cn'
}
commit('getInfo', {
data: TESTTYPES === 10 ? adf : adw,
type: data.type
})
resolve()
}
})
}
/* 获取hosts */
export const getHttpHost = ({ commit }, data) => {
return new Promise((resolve, reject) => {
// console.log('function ' + JSON.stringify(data))
// 同步到state
if (process.env.NODE_ENV === 'production') {
cordova.exec(function (result) {
commit('getInfo', { data: result, type: data.type })
resolve()
}, function (error) {
navigator.notification.alert(error)
resolve()
}, 'YFPlugin', data.type, [])
} else {
commit('getInfo', { data: 'http://csmtest.cndrealty.com/csm/', type: data.type })
resolve()
}
})
}
/* 获取httpHead */
export const getHttpHeadValue = ({ commit }, data) => {
return new Promise((resolve, reject) => {
// console.log('function ' + JSON.stringify(data))
// 同步到state
if (process.env.NODE_ENV === 'production') {
cordova.exec(function (result) {
commit('getInfo', { data: result, type: data.type })
resolve()
}, function (error) {
navigator.notification.alert(error)
resolve()
}, 'YFPlugin', data.type, [])
} else {
TESTTYPES === 10 ? commit('getInfo', { data: 'Basic YmluZ2JAY25kcmVhbHR5LmNvbTppdGFk', type: data.type }) : commit('getInfo', { data: 'Basic bGl1eW1AZWhvbWVvbC5jbjppdGFk', type: data.type })
resolve()
}
})
}
/*
清除Vuex缓存设置
*/
export const clearVuexData = ({ commit, state }, data) => {
const { userInfo, HttpHeadValue, HttpHost } = state
const datas = {
userInfo,
HttpHeadValue,
HttpHost
}
commit('reSetStateData', datas)
}
import { HouseSituation, RoomData, ProjectInfoToRoom, ProjectInfoToRisk } from '@/common/connect'
const state = {
group: {
isCheckOut: true
},
project: {}
}
const getters = {
groupHouseInfo: state => state.group.houseInfo,
projectHouseInfo: state => state.project.houseInfo,
checkOutList: state => state.group.checkOutList,
notCheckOutList: state => state.group.notCheckOutList,
isCheckOut: state => state.group.isCheckOut,
projectInfo: state => state.project.info,
projectRoomInfo: state => state.project.roomInfo,
projectRiskInfo: state => state.project.riskInfo,
showPreview: state => state.group.showPreview
}
const actions = {
async getHouseSituation ({commit}, params) {
let { projectId } = params
let json = await HouseSituation(params)
if (projectId) {
commit('setProjectHouseInfo', json)
} else {
commit('setGroupHouseInfo', json)
}
},
async getRoomData ({commit}, params) {
let { type } = params
let json = await RoomData(params)
if (type == 1) {
commit('setCheckOutList', json)
} else if (type == 2) {
commit('setNotCheckOutList', json)
}
},
async getProjectInfoToRoom ({commit}, params) {
let json = await ProjectInfoToRoom(params)
if (json instanceof Array && json.length == 1) {
commit('setProjectRoomInfo', json[0])
}
},
async getProjectInfoToRisk ({commit}, params) {
let json = await ProjectInfoToRisk(params)
if (json instanceof Array && json.length > 0) {
commit('setProjectRiskInfo', json[0])
}
}
}
const mutations = {
// 图片预览
showPreview (state, show) {
state.group = { ...state.group, showPreview: show }
},
// 集团交房情况
setGroupHouseInfo (state, info) {
state.group = { ...state.group, houseInfo: info }
},
// 项目交房情况
setProjectHouseInfo (state, info) {
state.project = { ...state.project, houseInfo: info }
},
// 已交房列表
setCheckOutList (state, list) {
state.group = { ...state.group, checkOutList: list }
},
// 未交房列表
setNotCheckOutList (state, list) {
state.group = { ...state.group, notCheckOutList: list }
},
// 切换交房状态:已交房、未交房
isCheckOut (state, checkout) {
state.group.isCheckOut = checkout
},
// 设置选中项目的信息
setProjectInfo (state, project) {
state.project = { ...state.project, info: project }
},
// 设置交房列表及数量
setProjectRoomInfo (state, roomInfo) {
state.project = { ...state.project, roomInfo: roomInfo }
},
// 设置项目风险预警信息
setProjectRiskInfo (state, riskInfo) {
state.project = { ...state.project, riskInfo: riskInfo }
},
// 清空项目交房页面数据
resetProject (state) {
state.project = {}
},
// 清空集团交房页面数据
resetGroup (state) {
state.group = {
isCheckOut: true
}
}
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}
import Vue from 'vue'
const state = {}
const getters = {
userId: state => state.userId // || 'bcheng' || 'nYtXWDZxR26cC2oDN4M5yRO33n8='
}
const actions = {
async getUserInfo ({commit}) {
Vue.prototype.$nativeApi.account.getUser()
.then(user => {
commit('setUserInfo', user)
})
.catch(error => {
console.log(error)
})
}
}
const mutations = {
setUserInfo (state, info) {
state.userId = info.uid
}
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}
/*
mutations.js
同步 actions 方法 返回的数据
*/
// 异步返回数据 封装
export default {
showLoading (state, show) {
state.showLoading = show
},
// 更新 HttpHost、HttpHeadValue、UserInfo
getInfo (state, data) {
// 根据不同参数,同步数据到state
switch (data.type) {
case 'getUserInfo':
state.userInfo = data.data
break;
case 'getHttpHeadValue':
state.HttpHeadValue = data.data
break;
case 'getHttpHost':
state.HttpHost = data.data
break;
}
},
// 更新 HttpHost、HttpHeadValue、UserInfo,兼容V+
getInfos (state, data) {
const { userInfo, host, header } = data.data
state.userInfo = userInfo
state.HttpHost = host
state.HttpHeadValue = header
},
// 清空数据
reSetStateData (state, data) {
Object.assign(state, data)
}
}
/*
Vuex: state初始化
*/
export default {
// 用户信息
userInfo: null,
// 头部信息
HttpHeadValue: null,
// Host
HttpHost: null,
showLoading: false
}
/*
Vuex 状态管理
*/
import Vue from 'vue'
import Vuex from 'vuex'
import * as actions from './actions'
import mutations from './mutations'
import state from './state'
import deliveryHouse from './modules/deliveryHouse'
import user from './modules/user'
Vue.use(Vuex)
const debug = process.env.NODE_ENV !== 'production'
Vue.config.debug = debug
export default new Vuex.Store({
modules: {
deliveryHouse,
user
},
state,
mutations,
actions,
strict: debug
})
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,width=device-width"><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=jf><meta name=apple-mobile-web-app-title content=contact><meta name=format-detection content="telephone=no,email=no,adress=no"><meta name=mobile-web-app-capable content=jf><title>建发交房模块</title><link href=static/css/app.5ef1ef815c144f91a4f2143bccc79bd5.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=static/js/manifest.b8902de8e3a6b0284c95.js></script><script type=text/javascript src=static/js/vendor.3bcb7ecbb612196a6389.js></script><script type=text/javascript src=static/js/app.d148d6334fbdee418171.js></script></body></html>
\ No newline at end of file
#app[data-v-b401447e]{height:100%}.marginBottom[data-v-7885d421]{margin-bottom:.2rem}.tab-container[data-v-7885d421]{display:-ms-flexbox;display:flex}.tab[data-v-7885d421]{-ms-flex:1;flex:1;font-size:15px;cursor:pointer;border-bottom:1px solid #f0f0f2;background:#fff;height:.8rem;color:#6b6f7b}.tabSelected[data-v-7885d421]{color:#cd3d3d;border-bottom:3px solid #cd3d3d}.delivery-list[data-v-7885d421]{overflow-x:hidden}*{list-style:none;font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}:not(input,textarea),a,div,em,i,li,span,ul{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}blockquote,body,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}fieldset,img,input,textarea{border:0}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:400}ol,ul{list-style:none}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}body,html{-webkit-user-select:none;-moz-user-select:none;user-select:none;height:100%}a:active,a:hover{text-decoration:underline}a,img{-webkit-touch-callout:none}img{width:100%;vertical-align:middle}ol,ul{margin:0}input{outline:none;border:0}button{border:0;margin:0;padding:0}body{font-size:16px;background:#f3f5f6;-webkit-overflow-scrolling:touch}a{text-decoration:none}a,button,input,textarea{-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.flex{display:flex;display:-webkit-flex}.flex-flow-r-w{flex-flow:row wrap}.flex-flow-c-n{flex-flow:column nowrap}.flex-flow-c-w{flex-flow:column wrap}.flex-in{display:inline-flex}.flex-wrap{flex-wrap:wrap}.flex-wrap-r{flex-wrap:wrap-reverse}.flex-l{align-items:flex-start}.flex-l-l{justify-content:flex-start}.flex-c{align-items:center}.flex-c-c{justify-content:center}.flex-r{align-items:flex-end}.flex-r-r{justify-content:flex-end}.flex-item-gsb-1{flex:1 1 auto}.flex-item-gsb-0{flex:0 0 auto}.flex-self-l{align-self:flex-start}.flex-self-c{align-self:center}.flex-self-r{align-self:flex-end}.flex-dir-column{flex-direction:column}.pl-li-del{width:.4rem;height:.4rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkZEQ0I0RDFERjRFRjExRTY4QjY2RDI5RkZDN0I2RDY2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkZEQ0I0RDFFRjRFRjExRTY4QjY2RDI5RkZDN0I2RDY2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkRDQjREMUJGNEVGMTFFNjhCNjZEMjlGRkM3QjZENjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RkRDQjREMUNGNEVGMTFFNjhCNjZEMjlGRkM3QjZENjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5o5fmTAAADEklEQVR42uyYX4hMURzHZ5Y1EV5Qil28KCW0eNk0pFV2bavFkvVvy0YmD/KgVps/D5stD2LzN3+yYieREVqSl0WtWsxKSPtgkxKitK+Mz6nfrdtt77nn3DszzYNffTqnmXt/53t/55zf+RPP5XKxUrayWIlbyQscG+XlV8nkDIqlsARmwmQYAyPwQz0CWRj081HV15d/gQjbSqFYCeUmr8BduABfbdqK20wShDVRtMOCkEFXkT0Fh+CPSQSNBCJsPMVFaM7T0PoIO+FZkMAyA3GzZAw153Hsz4WnsC1SF8skUOKmFHCithLFS9YCETeO4gPMKUI2qUHkE9suvl4kccoeEJCJxgJ5uJ5iQxHzcQKu2kTwjMbZMMyG1ZYi1kmPvPP7n8AsDBQoua5C09AvxsswPKK+2ULcHfgkK4yfHTOJYCqgsUV8xHlJsmmK/YbinJ5Jap6txfc0X4H8OZ1ihUFEdvHsEamfgOMG4k7DHgPfG3URrLYYU4cRuVvqB+Ca5/9Gj7iUod9qncDFlgP/HKyV+nYYcEUu4+rWlIXPKp3AyhApIuP66jrBtlvdVqETOCFkHnsOq+A79Mq+MG0ZOcf+6gSWx8LbVFd9EmwqxJZ/JKQfNeZ6nPUdvshOO7Imr8CfIcU5Y+4+vJG6mjC1Ifz91gnMRhCnJsQamA835beHsMPS56BOYL+NOFYSvzynlssuqXdDm4XfAV+BNPiWYsjASaNGnGN74aDUO+GkocDbQWtxd4CD9YjLyNIYlIQ7oEXq++BGgO8hfGeDBHY5J65RTG2/74k40yR8xTVZXgY8e9Roy0/jHa7u8dp7+AbLLQf/Y9nJJHz+/0z0Kk03rO2Sy0azeSHExWSlSZjuYrQC+RIV1oYibvk7abPf6tDEC+q6YksRxN2irbZQB3deVLOutYDi0rTRFOlmQQ7VdQFniVDdanKmMbofRGSvTI6ePAhTa3WN6eoSt70CJgUtk6TbYLk9U0vYWbjs+fj8CvTc29TLbtq5wPTuStSq8FrdHMALn94pjMBi2f9L9Kj2T4ABAKem4KEcAONNAAAAAElFTkSuQmCC) no-repeat 50%/80%}@media screen and (max-width:10000px){html{font-size:100px}}@media screen and (max-width:750px){html{font-size:100px}}@media screen and (max-width:720px){html{font-size:96px}}@media screen and (max-width:414px){html{font-size:55.2px}}@media screen and (max-width:412px){html{font-size:54.933333px}}@media screen and (max-width:384px){html{font-size:51.2px}}@media screen and (max-width:375px){html{font-size:50px}}@media screen and (max-width:360px){html{font-size:48px}}@media screen and (max-width:320px){html{font-size:42.66667px}}.page-in-enter-active,.page-in-leave-active,.page-out-enter-active,.page-out-leave-active{will-change:transform;transition:all .5s;height:100%;width:100%;top:0;position:absolute;backface-visibility:visible;perspective:1000}.page-out-enter{opacity:0;transform:translate3d(-100%,0,0);-webkit-transform:translate3d(-100%,0,0)}.page-out-enter-to{opacity:1}.page-out-leave-active{opacity:.5}.page-in-enter,.page-out-leave-active{transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0)}.page-in-enter-to{transform:translateX(0)}.page-in-leave-active{opacity:.5}.list-in-enter-active,.list-in-leave-active,.list-out-enter-active,.list-out-leave-active{will-change:transform;transition:all .3s;width:100%;backface-visibility:visible;perspective:1000}.list-in-enter{transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0)}.list-in-enter-to{transform:translateX(0)}.list-in-leave-active{opacity:0;transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0)}.list-out-enter{opacity:1;background-color:#0e1721}.list-out-enter-to{opacity:1;background-color:red;transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0)}.list-out-leave-active{background-color:blue;opacity:1}.margin-left-normal{margin-left:.2rem}.padding-left-normal{padding-left:.2rem}.margin-bottom-normal{margin-bottom:.2rem}.margin-top-normal{margin-top:.2rem}.flexCenter{align-items:center}.flexStart{align-items:flex-start}.flexEnd{align-items:flex-end}.textLeft{text-align:left}.textRight{text-align:right}.textCenter{text-align:center}.flex-1{flex:1}.right-arrow{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg0MEQyNjY4ODk3NDExRTg5MDM5QjIwOUVFNTYzMDk5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg0MEQyNjY5ODk3NDExRTg5MDM5QjIwOUVFNTYzMDk5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODQwRDI2NjY4OTc0MTFFODkwMzlCMjA5RUU1NjMwOTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODQwRDI2Njc4OTc0MTFFODkwMzlCMjA5RUU1NjMwOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tRQBKAAABkElEQVR42uzYTShEURTA8feQNCUrC4qVlSILUmxkykcJC5SFbGwsrHxsscZKlmqKhWZSImkwbCRlocjOimJhpTQxpef/6kzdXlNEc8/EO/XbnKbm9N4599wZ1/M8p5CiyCmwCAv6Kkq+86Gd1Pmvv2gw2vZ/Xtk4VuGqvTIjRrCOYrxhVvMJdWNDivFjBvOaBV3jPpBbwLRWQU/ozFHUEia1mvoBUTwaOb+516TZVabsDl14DhTlN/uw1kl9K03+YuT8Zt9En9bquEIPXo1cKRLyWlV22QX6kTZyZdhFu9ZyPcUQMkYugn00a237A4ziw8hVSL5B6/qR6+rpaj0hv7m3jLXiyAT24sZ2QR3YlgnLRlrG/9L2E2qViYoYuXcM4Mz2lDUhiXIjl5HT+tj2OVSPQ5mkbPgTNoY92yd1HY5QGZiwCcRt77IapFAdKGYKMdvbvgonqA3k5+T6Yf0+1JijmEUsa90Yk9K02fWwIldY1V8dcTlzWvLxi+MnBTnSvDEnT+GGf8eEBf21gj4FGAACLkg+INwFMQAAAABJRU5ErkJggg==);width:.4rem;height:.4rem}.right-arrow,.riskWarn1{background-repeat:no-repeat;background-size:100% 100%}.riskWarn1{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZDMUNCNkVGODk2RTExRTg4RDk2OUI0QTlDMTg3RDE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZDMUNCNkYwODk2RTExRTg4RDk2OUI0QTlDMTg3RDE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkMxQ0I2RUQ4OTZFMTFFODhEOTY5QjRBOUMxODdEMTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkMxQ0I2RUU4OTZFMTFFODhEOTY5QjRBOUMxODdEMTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6c1nqjAAACZklEQVR42uyXS2hTQRSG8zCYUqpFqFSJbhR01+oqrUiLuBGpoAsFFcSFUASxUksVKdTXwooLqYvgCwmKe0HEtxEUdypYEdciSkQsilBSe/0G/sAl3JvM9d7aUHLg44TcefycOXNmJu44TqyeLBGrM1sQdoD4lb3G3YYk7Aza3zlwM1pBsmXQOi+XLOGzDCl4DvsCjDVt2c6M+QxSQSL0B9rhIqLaLCa5AKcs2i01Y8JyzWEniESbwR2FxXDGYqIC3Ldod1pjHoEZz9WpVoeIzkNcDzQjsuT6v12h3wLroUWfvsKExF2HbxUb6Dc8Vr9/2mW7YG1ZDEIW4kZhANLwHYzoT2qfgQ2wSe3G4CyUlGO98KFqGbGt1IgxW/surIMXmvCpRy6YNNgMJyELr2AbFG3qUMJSzBJN3gFDsJGBHoFXYprceADdcEyintjWKdvCOA5rYD8ibtgWYTinyFxTTu0IXRiJzlbcbrgcQIzbjJCrsB36oqjUJ2AShmu0Syppkx7fhjTG8VCCiM5KXBfkic6PGmLyyrOsx3fT95bGyoSJUK/8PQsxZllz8NKn3R35rjCCVsu/84lgpZiDSmYvm5BfFUbQIvmfIcUY+yXfOlvXj0sSE1PNeQ1vxKEq/dKzJcicU2+F41riDlfu/b8LGrtuBDr5WeY8NMFHODxnd2rZHuXTex2sxbm8wkYmJipBuajERLVkWd2HJuviXeYqePPz5doQVPP+5b5Tcz4N4la4vveo6JmdNBVyLvNA6NfRUnD9/5kCO+aX1IN6p1daf4RBKFf2sn3R6yTYq6OR1A1BPvZXgAEAJL2qQhCIm84AAAAASUVORK5CYII=)}.riskWarn2{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCMjcyRkM3ODk2RTExRThCRjlFREExRjk5MjZGRDAyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCMjcyRkM4ODk2RTExRThCRjlFREExRjk5MjZGRDAyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkIyNzJGQzU4OTZFMTFFOEJGOUVEQTFGOTkyNkZEMDIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkIyNzJGQzY4OTZFMTFFOEJGOUVEQTFGOTkyNkZEMDIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7t6dGQAAACXklEQVR42uyXTUhUURTH5yPJkEqCREPbGNhOazUmfhBtQgxskVCLcBdBlJRkRKCpiwwXUguJihCivRBiaeVA0aoPyIjWIYkRiSKI6fS78Bde8t7Mfb6nDjIHfpxh3v34c+65594bTaVSkWyyWCTLbEfQAT7U1Rn3DOJwxm//o8lkuIJkJVC4LZcs5rEMeZCE8z7G+mvZzoz5BvL8RGgZimEAUfstJumH2xbtisyYcEBz2Aki0VZw12Av9FhMNAGjFu26NWYbrLg1iKarQ0TnJa4eChC55Pi/WKE/afTDbn2ahkmJewy/1mygBRhXv3XtshY4vCoGITtxnXAF8uE3GNE/1L4UauC42vVBLywpxxrgW7oJo7aVGjFmaz+HI/BWE752yQWTBiegCxLwHk7BjE0dilmK2afJK6EdahloDNwS0+TGCzgGHRL1yrZO2RbGe1ABrYh4YtnHhP6OIvNIOXU6cGEkOo24s/DAhxinGSEPoRmawqjUN2EWrmdoF1fSxl2+tWuMG4EEEZ2DuGoYIjp/MogZUp4lXL6bvk81VmmQCDXIj1iIMcs6CO882g3LVwcRdEj+i0cE14q5qGR2s0n58iCC9sjPBRRjbF6+cKOuH/clJqKa8xE+iUtp+uVvlCBzTn0WKccSVzpyb/MuaOy6W1DFz1Xuwi74Dpe37E4tO6d8+qqDdWYrr7ChiQlL0GBYYsJasoTuQ7NZ8S5zFLzt+XLNCcpk/92pOZ+u4soc3+tV9MxOWgw4l3kgXNDRMuH4f4oC2+claErv9M20nwgq8f3qyCV1TpCH/RNgAExur8j6ueB/AAAAAElFTkSuQmCC)}.infoIcon,.riskWarn2{background-repeat:no-repeat;background-size:100% 100%}.infoIcon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkU3Mjc1QTdBODk3MDExRThCMDY5OEVBMEUyODNBMzAzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkU3Mjc1QTdCODk3MDExRThCMDY5OEVBMEUyODNBMzAzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTcyNzVBNzg4OTcwMTFFOEIwNjk4RUEwRTI4M0EzMDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RTcyNzVBNzk4OTcwMTFFOEIwNjk4RUEwRTI4M0EzMDMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5p8ldUAAADN0lEQVR42syYTUhUURTH3xtkNokYtahFIZkxRYRRhqVhK2eIpnaRRoZt+gCDNq3CVbughUVkyyiFdn2hkYsgzYKyD8imLKwkRkL7IjNCmP4Hzsj1emd89543Mhf+3Pdm3j3n9879Ovf5mUzGK+ZSkr3wfd+qYVfvwAZUCWgnFINWQUv47yloDEpBD6He5kTdsI39bOD82YsAgICKomqGTkKbLYPxHOogM4D9Fzog4JLsoELYax/pBQF5OxRAgFG3XYJaQh5eV6ETAJ1yBgTcSho/0KYCzYFXNI4BmbYGBNwKVP1QZYEn6geoHpDjJsBInm7tWQQ4j330sM95JZKj0QWoWuCUlphb0LeAz1ezz4UB8Sa0trUK4F5A69Fl+6iGxgO2a2XfuQHxQAkvJZLSlZ2ZqL+iumnRtoMZckbwAFQlBNyo3ccs2lYxw/ytjktbCIO+BVGYRD0A7YYaLNsTw7XZLTg7nbvvPSL6d0WSI6xriu8Y0bs4LjSa4fF2CDoFTQtsxU1d3CAw+Bo6iEnxUplwtPKfd7RHLBf1CMYcjT2FjkNHtN/fCl44ZprFLlnKT+godB1ao/23SwBYYQIsdTA0wpkOJat6+rRHAFiaa5mxLVuV67vK+KvkXURc1AhKZt0QJsgX5X6vkGvaBJgWGNS7VwqYNgGmwgBE95ZTficETJkABx2NUbYypNwnQhjbgybAPkdjdzD+1MN1kuvfAsA+E+ATaNQFUEvXKEH4JUg8RpllLiBHodPS2F/ovnK/HSrj/fiwI+AVtUf0fLCTd4eg5ROM/VHu30BboDrHnYR8X86ZsMLZD1TtNgkmunWbFtFj0GnH6LUzg5dvJ6GtqwmqDbjQPwAk7SJRjlqZI9xj9j2nGM/FcLga1TNo+SIlqBM0NBC9z4HOxfxgUrj92WxrSRUuyLmYICnkjbxkFKqQ7Ub25VkBMmQ/j8XhAsCRzVr24TkBMiQtHTXQOWgmBLAZtlXDtvMW2w+Ya1Gd4VketQSjj5bd0FmAvV/wBObyhVUBXYpqPycG9Xlm+wR/IaNPeDcA9j3wEVECaABexml/Of9Ei+0YgCadz7A6YLGWiFfk5b8AAwA5ABhuepl6tAAAAABJRU5ErkJggg==);width:.4rem;height:.4rem}.alignLeft{text-align:left}.fontColor1{color:#6b6f7b}.fontColor2{color:#333}.fontColor3{color:#cd0001}.fontColor4{color:#0e1721}.fontColor5{color:#cd3d3d}.white{background:#fff}.bgColor1{background-color:#cd3d3d}.bgColor2{background-color:#fff}.bgColor3{background-color:#f9f9fb}.bgColor4{background-color:#cd3d3d}.font14{font-size:14px}.visibility{visibility:visible}.inVisibility{display:none}.hidden{visibility:hidden}.container{height:100%;display:flex;flex-direction:column}.delivery-info[data-v-cd3e480a]{background:#fff;padding-bottom:.3rem}button[data-v-cd3e480a]{height:.6rem;padding-left:.15rem;padding-right:.15rem;border-radius:5px;color:#fff;position:absolute;right:.2rem;top:.15rem}.houseTotalNum[data-v-cd3e480a]{border-bottom:1px solid #ebeff3;padding-top:.3rem;padding-bottom:.3rem;margin-left:.2rem;margin-right:.2rem}.normal-font[data-v-cd3e480a]{font-size:14px;color:#6b6f7b}.totalNum[data-v-cd3e480a]{color:#0e1721;font-weight:700;font-size:28px}.chart[data-v-cd3e480a]{margin-top:.3rem;background:#fff}#deliverychart[data-v-cd3e480a]{height:4.2rem;width:100%;margin-bottom:.3rem}.legend[data-v-cd3e480a]{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;padding-right:.2rem}.square[data-v-cd3e480a]{width:.2rem;height:.2rem;margin-left:.2rem;margin-right:.2rem;border-radius:2px}.color1[data-v-cd3e480a]{background:#4eceff}.color2[data-v-cd3e480a]{background:#7179ca}.color3[data-v-cd3e480a]{background:#fd694b}.col1[data-v-cd3e480a]{-ms-flex:1;flex:1;text-align:left}.col2[data-v-cd3e480a]{width:1.5rem;text-align:left}.col3[data-v-cd3e480a]{width:1.5rem;text-align:right}.item-title[data-v-3b9bdf1c]{position:relative;display:-ms-flexbox;display:flex;border-bottom:1px solid #ebeff3;-ms-flex-align:center;align-items:center;height:.9rem}.indicate[data-v-3b9bdf1c]{background:#cd3d3d;width:4px;height:18px;margin-left:.2rem;margin-right:.1rem}.title[data-v-3b9bdf1c]{color:#333;font-weight:700;font-size:16px;height:16px;line-height:16px;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */.pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;-ms-touch-action:none;touch-action:none;z-index:1500;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:none}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:-webkit-grab;cursor:grab}.pswp--dragging .pswp__img{cursor:-webkit-grabbing;cursor:grabbing}.pswp__bg{background:#000;opacity:0;transform:translateZ(0);-webkit-backface-visibility:hidden}.pswp__bg,.pswp__scroll-wrap{position:absolute;left:0;top:0;width:100%;height:100%}.pswp__scroll-wrap{overflow:hidden}.pswp__container,.pswp__zoom-wrap{-ms-touch-action:none;touch-action:none;position:absolute;left:0;right:0;top:0;bottom:0}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;width:100%;transform-origin:left top;transition:transform 333ms cubic-bezier(.4,0,.22,1)}.pswp__bg{will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{transition:none}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden}.pswp__item{right:0;bottom:0;overflow:hidden}.pswp__img,.pswp__item{position:absolute;left:0;top:0}.pswp__img{width:auto;height:auto}.pswp__img--placeholder{-webkit-backface-visibility:hidden}.pswp__img--placeholder--blank{background:#222}.pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.pswp__error-msg{position:absolute;left:0;top:50%;width:100%;text-align:center;font-size:14px;line-height:16px;margin-top:-8px;color:#ccc}.pswp__error-msg a{color:#ccc;text-decoration:underline}/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */.pswp__button{width:44px;height:44px;position:relative;background:none;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:right;opacity:.75;transition:opacity .2s;box-shadow:none}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{outline:none;opacity:.9}.pswp__button::-moz-focus-inner{padding:0;border:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAABYCAQAAACjBqE3AAAB6klEQVR4Ae3bsWpUQRTG8YkkanwCa7GzVotsI/gEgk9h4Vu4ySLYmMYgbJrc3lrwZbJwC0FMt4j7F6Y4oIZrsXtgxvx/1c0ufEX4cnbmLCmSJEmSJEmSJEmSJP3XCBPvbJU+8doWmDFwyZpLBmYlNJebz0KwzykwsuSYJSNwykEJreV2BaBMaLIQZ2xYcFgqDlmw4ayE/FwL0dDk4Qh4W37DAjgqIT+3HRbigjH+iikVdxgZStgyN0Su2sXIeTwTT+esdpcbIlfNAuZ/TxresG4zV8kYWSZNiKUTokMMSWeIwTNEn4fK2TW3gRNgVkJLuVksROA9G+bEvoATNlBCa7nZXEwdxEZxzpKRKFh+bsv8LmPFmhX1OwfIz81jIRJQ5eeqG9B+riRJkiRJkiRJkiRJkiRJkiRJUkvA/8RQoEpKlJWINFkJ62AlrEP/mNBibnv2yz/A3t7Uq3LcpoxP8COjC1T5vxoAD5VdoEqdDrd5QuW1swtUSaueh3zkiuBiqgtA2OlkeMcP/uDqugsJdbjHF65VdPMKwS0+WQc/MgKvrIOHysB9vgPwk8+85hmPbnQdvHZyDMAFD7L3EOpgMcVdvnHFS0/vlatrXvCVx0U9gt3fxvnA0/hB4nmRJEmSJEmSJEmSJGmHfgFLaDPoMu5xWwAAAABJRU5ErkJggg==) 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px}@media (-webkit-min-device-pixel-ratio:1.1),(-webkit-min-device-pixel-ratio:1.09375),(min-resolution:1.1dppx),(min-resolution:105dpi){.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjY0IiBoZWlnaHQ9Ijg4IiB2aWV3Qm94PSIwIDAgMjY0IDg4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5kZWZhdWx0LXNraW4gMjwvdGl0bGU+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Zz48cGF0aCBkPSJNNjcuMDAyIDU5LjV2My43NjhjLTYuMzA3Ljg0LTkuMTg0IDUuNzUtMTAuMDAyIDkuNzMyIDIuMjItMi44MyA1LjU2NC01LjA5OCAxMC4wMDItNS4wOThWNzEuNUw3MyA2NS41ODUgNjcuMDAyIDU5LjV6IiBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiLz48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTMgMjl2LTVoMnYzaDN2MmgtNXpNMTMgMTVoNXYyaC0zdjNoLTJ2LTV6TTMxIDE1djVoLTJ2LTNoLTN2LTJoNXpNMzEgMjloLTV2LTJoM3YtM2gydjV6IiBpZD0iU2hhcGUiLz48L2c+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTYyIDI0djVoLTJ2LTNoLTN2LTJoNXpNNjIgMjBoLTV2LTJoM3YtM2gydjV6TTcwIDIwdi01aDJ2M2gzdjJoLTV6TTcwIDI0aDV2MmgtM3YzaC0ydi01eiIvPjwvZz48cGF0aCBkPSJNMjAuNTg2IDY2bC01LjY1Ni01LjY1NiAxLjQxNC0xLjQxNEwyMiA2NC41ODZsNS42NTYtNS42NTYgMS40MTQgMS40MTRMMjMuNDE0IDY2bDUuNjU2IDUuNjU2LTEuNDE0IDEuNDE0TDIyIDY3LjQxNGwtNS42NTYgNS42NTYtMS40MTQtMS40MTRMMjAuNTg2IDY2eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMTEuNzg1IDY1LjAzTDExMCA2My41bDMtMy41aC0xMHYtMmgxMGwtMy0zLjUgMS43ODUtMS40NjhMMTE3IDU5bC01LjIxNSA2LjAzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xNTIuMjE1IDY1LjAzTDE1NCA2My41bC0zLTMuNWgxMHYtMmgtMTBsMy0zLjUtMS43ODUtMS40NjhMMTQ3IDU5bDUuMjE1IDYuMDN6IiBmaWxsPSIjZmZmIi8+PGc+PHBhdGggaWQ9IlJlY3RhbmdsZS0xMSIgZmlsbD0iI2ZmZiIgZD0iTTE2MC45NTcgMjguNTQzbC0zLjI1LTMuMjUtMS40MTMgMS40MTQgMy4yNSAzLjI1eiIvPjxwYXRoIGQ9Ik0xNTIuNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIGlkPSJPdmFsLTEiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUwIDIxaDV2MWgtNXoiLz48L2c+PGc+PHBhdGggZD0iTTExNi45NTcgMjguNTQzbC0xLjQxNCAxLjQxNC0zLjI1LTMuMjUgMS40MTQtMS40MTQgMy4yNSAzLjI1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMDguNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA2IDIxaDV2MWgtNXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA5LjA0MyAxOS4wMDhsLS4wODUgNS0xLS4wMTcuMDg1LTV6Ii8+PC9nPjwvZz48L2c+PC9zdmc+)}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:none}}.pswp__button--close{background-position:0 -44px}.pswp__button--share{background-position:-44px -44px}.pswp__button--fs{display:none}.pswp--supports-fs .pswp__button--fs{display:block}.pswp--fs .pswp__button--fs{background-position:-44px 0}.pswp__button--zoom{display:none;background-position:-88px 0}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right{visibility:hidden}.pswp__button--arrow--left,.pswp__button--arrow--right{background:none;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";top:35px;background-color:rgba(0,0,0,.3);height:30px;width:32px;position:absolute}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px}.pswp__counter,.pswp__share-modal{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:1600;opacity:0;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity}.pswp__share-modal--hidden{display:none}.pswp__share-tooltip{z-index:1620;position:absolute;background:#fff;top:56px;border-radius:2px;display:block;width:auto;right:44px;box-shadow:0 2px 5px rgba(0,0,0,.25);transform:translateY(6px);transition:transform .25s;-webkit-backface-visibility:hidden;will-change:transform}.pswp__share-tooltip a{display:block;padding:8px 12px;font-size:14px;line-height:18px}.pswp__share-tooltip a,.pswp__share-tooltip a:hover{color:#000;text-decoration:none}.pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0}.pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px}.pswp__share-modal--fade-in{opacity:1}.pswp__share-modal--fade-in .pswp__share-tooltip{transform:translateY(0)}.pswp--touch .pswp__share-tooltip a{padding:16px 12px}a.pswp__share--facebook:before{content:"";display:block;width:0;height:0;position:absolute;top:-12px;right:15px;border:6px solid transparent;border-bottom-color:#fff;-webkit-pointer-events:none;-moz-pointer-events:none;pointer-events:none}a.pswp__share--facebook:hover{background:#3e5c9a;color:#fff}a.pswp__share--facebook:hover:before{border-bottom-color:#3e5c9a}a.pswp__share--twitter:hover{background:#55acee;color:#fff}a.pswp__share--pinterest:hover{background:#ccc;color:#ce272d}a.pswp__share--download:hover{background:#ddd}.pswp__counter{position:absolute;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px}.pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px}.pswp__caption small{font-size:11px;color:#bbb}.pswp__caption__center{text-align:left;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;will-change:opacity;direction:ltr}.pswp__preloader__icn{width:20px;height:20px;margin:12px}.pswp__preloader--active{opacity:1}.pswp__preloader--active .pswp__preloader__icn{background:url(data:image/gif;base64,R0lGODlhFAAUAPMIAIeHhz8/P1dXVycnJ8/Pz7e3t5+fn29vb////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwAIACwAAAAAFAAUAEAEUxDJSatFxtwaggWAdIyHJAhXoRYSQUhDPGx0TbmujahbXGWZWqdDAYEsp5NupLPkdDwE7oXwWVasimzWrAE1tKFHErQRK8eL8mMUlRBJVI307uoiACH5BAUHAAgALAEAAQASABIAAAROEMkpS6E4W5upMdUmEQT2feFIltMJYivbvhnZ3R0A4NMwIDodz+cL7nDEn5CH8DGZh8MtEMBEoxkqlXKVIgQCibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpjaE4W5spANUmFQX2feFIltMJYivbvhnZ3d1x4BNBIDodz+cL7nDEn5CH8DGZAsFtMMBEoxkqlXKVIgIBibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpAaA4W5vpOdUmGQb2feFIltMJYivbvhnZ3Z0g4FNRIDodz+cL7nDEn5CH8DGZgcCNQMBEoxkqlXKVIgYDibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpz6E4W5upENUmAQD2feFIltMJYivbvhnZ3V0Q4JNhIDodz+cL7nDEn5CH8DGZg8GtUMBEoxkqlXKVIggEibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkphaA4W5tpCNUmHQf2feFIltMJYivbvhnZ3d0w4BMAIDodz+cL7nDEn5CH8DGZBMLNYMBEoxkqlXKVIgoFibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpQ6A4W5vpGNUmCQL2feFIltMJYivbvhnZ3R1B4NNxIDodz+cL7nDEn5CH8DGZhcINAMBEoxkqlXKVIgwGibbK9YLBYvLtHH5K0J0IACH5BAUHAAcALAEAAQASABIAAANCeLo6wzA6FxkhbaoQ4L3ZxnXLh0EjWZ4RV71VUcCLIByyTNt2PsO8m452sBGJBsNxkUwuD03lAQBASqnUJ7aq5UYSADs=) 0 0 no-repeat}.pswp--css_animation .pswp__preloader--active{opacity:1}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{animation:clockwise .5s linear infinite}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.pswp--css_animation .pswp__preloader__icn{background:none;opacity:.75;width:14px;height:14px;position:absolute;left:15px;top:15px;margin:0}.pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.pswp--css_animation .pswp__preloader__donut{box-sizing:border-box;width:14px;height:14px;border:2px solid #fff;border-radius:50%;border-left-color:transparent;border-bottom-color:transparent;position:absolute;top:0;left:0;background:none;margin:0}@media screen and (max-width:1024px){.pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right}}@keyframes clockwise{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes donut-rotate{0%{transform:rotate(0)}50%{transform:rotate(-140deg)}to{transform:rotate(0)}}.pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:1550}.pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{-webkit-backface-visibility:hidden;will-change:opacity;transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.pswp__caption,.pswp__top-bar{background-color:rgba(0,0,0,.5)}.pswp__ui--fit .pswp__caption,.pswp__ui--fit .pswp__top-bar{background-color:rgba(0,0,0,.3)}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right,.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__element--disabled{display:none!important}.pswp--minimal--dark .pswp__top-bar{background:none}.delivery-list[data-v-420aa02a]{background:#fff}ul[data-v-420aa02a]{margin:auto .2rem}.table-header[data-v-420aa02a]{display:-ms-flexbox;display:flex;border-bottom:1px solid #f0f0f2;height:.9rem;-ms-flex-align:center;align-items:center}.table-header span[data-v-420aa02a]{font-size:14px;color:#333;font-weight:700}.col1[data-v-420aa02a]{-ms-flex:1;flex:1}.col2[data-v-420aa02a]{width:2rem}.col3[data-v-420aa02a],.col4[data-v-420aa02a]{width:1rem}.table-header span[data-v-420aa02a]:first-child{text-align:left}.table-body[data-v-420aa02a]{display:-ms-flexbox;display:flex;color:#6b6f7b;-ms-flex-align:center;align-items:center;height:1rem}.table-body[data-v-420aa02a]:nth-child(odd){background:#f9f9fb}.orgProject[data-v-420aa02a]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:start;align-items:flex-start}.dateNum[data-v-420aa02a],.orgName[data-v-420aa02a]{font-size:13px;font-weight:700;color:#6b6f7b}.projectName[data-v-420aa02a]{font-size:11px;color:#6b6f7b}.datezoom[data-v-420aa02a]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.datezoom span[data-v-420aa02a]{font-size:10px;color:#6b6f7b}.risk[data-v-420aa02a]{width:.4rem;height:.41rem;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.loading[data-v-2d091593]{position:fixed;width:30vw;height:30vw;z-index:9999;background:rgba(0,0,0,.7);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;vertical-align:middle;text-align:center}.weui-toast[data-v-2d091593]{position:fixed;width:7.6em;min-height:7.6em;top:calc(50% - 7.6em / 2);left:50%;margin-left:-3.8em;background:hsla(0,0%,7%,.7);text-align:center;border-radius:5px;color:#fff}.weui-toast__content[data-v-2d091593]{margin:0 0 15px;color:#fff}.vux-loading .weui-toast[data-v-2d091593]{z-index:999}.weui-icon_toast.weui-loading[data-v-2d091593]{margin:30px 0 0;width:38px;height:38px;vertical-align:baseline;display:inline-block}.vux-mask-enter-active[data-v-2d091593],.vux-mask-enter[data-v-2d091593],.vux-mask-leave-active[data-v-2d091593]{position:relative;z-index:1}.vux-mask-enter[data-v-2d091593],.vux-mask-leave-active[data-v-2d091593]{opacity:0}.vux-mask-enter-active[data-v-2d091593],.vux-mask-leave-active[data-v-2d091593]{transition:opacity .3s}.vux-loading-no-text .weui-toast[data-v-2d091593]{min-height:98px}.weui-mask[data-v-2d091593]{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0;background:rgba(0,0,0,.6)}.weui-mask_transparent[data-v-2d091593]{position:fixed;z-index:1000;top:1rem;right:0;left:0;bottom:0}.weui-loading[data-v-2d091593]{width:20px;height:20px;display:inline-block;vertical-align:middle;animation:weuiLoading-data-v-2d091593 1s steps(12) infinite;background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat;background-size:100%}.weui-loading.weui-loading_transparent[data-v-2d091593]{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMjAnIGhlaWdodD0nMTIwJyB2aWV3Qm94PScwIDAgMTAwIDEwMCc+PHBhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgxMDB2MTAwSDB6Jy8+PHJlY3QgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjU2KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwIC0zMCknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjUpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKDMwIDEwNS45OCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjQzKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA3NS45OCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjM4KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSg5MCA2NSA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjMyKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTguNjYgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4yOCknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoMTUwIDU0LjAyIDY1KScvPjxyZWN0IHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyB4PSc0Ni41JyB5PSc0MCcgZmlsbD0ncmdiYSgyNTUsMjU1LDI1NSwuMjUpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKDE4MCA1MCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjIpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKC0xNTAgNDUuOTggNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4xNyknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoLTEyMCA0MS4zNCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjE0KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgtOTAgMzUgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4xKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjAgMjQuMDIgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4wMyknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoLTMwIC01Ljk4IDY1KScvPjwvc3ZnPgo=")}@keyframes weuiLoading-data-v-2d091593{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.risk-warning[data-v-378e7224]{background:#fff}li[data-v-378e7224],ul[data-v-378e7224]{padding-left:.1rem;padding-right:.1rem}li[data-v-378e7224]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;height:.9rem;-ms-flex-align:center;align-items:center}li[data-v-378e7224]:nth-child(2n){background:#f9f9fb}.label[data-v-378e7224]{font-size:14px;color:#6b6f7b}.value[data-v-378e7224]{font-size:13px;color:#6b6f7b;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.risk[data-v-378e7224]{width:.4rem;height:.41rem;position:absolute;right:.2rem;top:.245rem}span.label+span.value[data-v-378e7224]:after{content:"";padding-right:.5rem;width:.4rem;height:.4rem}.toAlertIcon[data-v-378e7224]{width:.4rem;height:.4rem;display:-ms-flexbox;display:flex;padding-top:.2rem;padding-bottom:.2rem;padding-left:.1rem}.room-num[data-v-002341ee]{background:#fff}.roomNumInfo[data-v-002341ee]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;margin-left:.2rem;margin-right:.2rem;height:.9rem;border-bottom:1px solid #ebeff3;-ms-flex-align:center;align-items:center}.roomNumInfo span[data-v-002341ee]:first-child{color:#333;font-size:15px}.roomNum[data-v-002341ee]{color:#cd0001;font-size:16px}ul[data-v-002341ee]{border-top:1px solid #f6f8fa;margin-left:.2rem;margin-right:.2rem;-ms-flex:1;flex:1;overflow:auto}li[data-v-002341ee]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}li span[data-v-002341ee]{font-size:14px;color:#6b6f7b;height:.9rem;line-height:.9rem}.title-bar[data-v-3a2b07d4]{background:#cd3d3d;height:1rem;min-height:1rem;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.title-bar span[data-v-3a2b07d4]{color:#fff;vertical-align:center}.back[data-v-3a2b07d4]{position:absolute;left:0;padding-left:.2rem;padding-right:.2rem;height:1rem;line-height:1rem}.back img[data-v-3a2b07d4]{width:.5rem;height:.5rem}.title[data-v-3a2b07d4]{font-size:20px}.base-page[data-v-1b64908e]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;background-color:#f5f5f7}.title-bar[data-v-1b64908e]{position:fixed;top:0;width:100%;z-index:999}.main[data-v-1b64908e]{margin-top:1rem;overflow:auto;-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.picker-mask{position:fixed;z-index:1000;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.46)}@keyframes pickerShow{0%{opacity:0}to{opacity:1}}.picker-mask.time-picker-ani{animation:pickerShow .2s linear}.picker-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;opacity:1;font-family:PingFang SC,HanHei SC,Helvetica Neue,Helvetica,sans-serif;line-height:1.5;background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,.8);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.picker-container i{font-style:normal}.picker-container [data-active]{position:relative}.picker-container .picker-disabled.active:after,.picker-container [data-active]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(circle,#000 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;pointer-events:none;background-size:0 0;opacity:0;transition:background .5s,opacity 1s}.picker-container .active:after{background-size:1000% 1000%;opacity:.2}.picker-container .picker-disabled{color:#d6d6d6}.picker-head{padding:10px 16px;line-height:1.5;color:#ececec;background-color:#00bcd4}.picker-head-active{color:#fff}.picker-year{font-size:14px;width:4em}.picker-date{font-size:24px;text-indent:-2px}.picker-content{position:relative;overflow:hidden;width:100%;height:224px;font-size:12px;color:rgba(0,0,0,.8)}.picker-content li,.picker-content ul{list-style:none;margin:0;padding:0}.date-picker-main{width:100%;transform:translateX(-100%) translateZ(0)}.date-picker-main:after{content:"";display:table;clear:both}.scroller-picker-main{position:relative;text-align:center}.scroller-picker-main li{padding:10px 0;overflow:hidden}.scroller-picker-main .picker-active{color:#00bcd4}.scroller-picker-midd{position:absolute;top:50%;width:100%;height:40px;margin-top:-20px;box-sizing:border-box}.scroller-picker-midd:after,.scroller-picker-midd:before{content:"";position:absolute;left:0;width:100%;border-top:1px solid #e2e3e5}.scroller-picker-midd:before{top:0;-webkit-transform:scaleY(.5) translateZ(0);transform-origin:left top;transform:scaleY(.5) translateZ(0)}.scroller-picker-midd:after{bottom:0;-webkit-transform:scaleY(.5) translateZ(0);transform-origin:left bottom;transform:scaleY(.5) translateZ(0)}.picker-actions-arrow{z-index:1;position:absolute;top:0;left:8px;right:8px;font-size:14px;line-height:20px}.picker-actions-arrow i{cursor:pointer;float:left;padding:16px 14px}.picker-actions-arrow i:last-child{float:right}.picker-actions-arrow i[data-active]:after{height:42px;top:50%;transform:translateY(-50%);border-radius:50%}.picker-bdy{float:left;width:100%;padding:0 8px;margin-right:-100%;position:relative;box-sizing:border-box}.picker-bdy-curr{left:100%}.picker-bdy-next{left:200%}.date-picker-title{text-align:center;padding:16px;font-size:14px;font-weight:800;line-height:20px}.date-picker-days i{position:relative;width:14.28%;height:12px;padding:6px 0;text-align:center;display:inline-block;line-height:1;vertical-align:top;cursor:pointer;overflow:hidden}.date-picker-days i[data-active]:after{width:24px;left:50%;transform:translate(-50%);border-radius:50%}.date-picker-days-bdy i span{position:relative}.date-picker-days-bdy i:before{content:"";left:50%;top:50%;width:0;height:0;position:absolute;border-radius:50%;background-color:#00bcd4;transform:translate(-50%,-50%)}.picker-bdy-curr .date-picker-days-bdy i.picker-active{color:#fff}.picker-bdy-curr .date-picker-days-bdy i.picker-active:before{width:24px;height:24px}.date-picker-days-bdy .picker-now{color:#00bcd4}.date-picker-days-title{font-weight:500}.date-picker-days-bdy i[data-val="0"]{color:transparent}.date-picker-days-bdy i[data-val="0"]:before{content:none}.picker-foot{padding:6px 10px;text-align:right;color:#393939}.picker-act{padding:5px 15px;margin-left:10px;text-decoration:none;display:inline-block;font-size:14px;font-weight:600;color:inherit;background-color:transparent;border-radius:2px;transition:background-color .2s linear}.picker-act:hover{background-color:hsla(0,0%,60%,.2)}.picker-act-clear{margin-left:0;float:left}.time-picker-container .picker-head{text-align:center;font-size:38px;font-weight:300}.time-picker-container .picker-cell{margin-left:-20px}.time-picker-container .picker-cell[data-active]:after{width:30px;height:30px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%}.time-picker-container .picker-cell-inner{margin-left:-12px}.time-picker-container .picker-active{z-index:1;color:#fff;pointer-events:none}.time-picker-container .picker-active b{position:absolute;left:50%;top:50%;margin-top:-1px;margin-left:-1px;width:2px;height:2px;background-color:#fff;border-radius:50%}.time-picker-main{position:absolute;top:50%;left:50%;height:200px;width:200px;transform:translate3d(-50%,-50%,0);border-radius:50%;background-color:rgba(0,0,0,.05)}.time-picker-main>ul{position:absolute;top:1px;right:1px;bottom:1px;left:1px}.time-picker-main:before{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background-color:rgba(0,188,212,.9);transform:translate(-50%,-50%)}.time-picker-main-minutes>.time-picker-minutes-1{top:10px;right:10px;bottom:10px;left:10px}.time-picker-minutes-1 .picker-cell{width:6px;margin-left:-3px;margin-top:-6px;transform-origin:50% 96px}.time-picker-minutes-1 .picker-cell i{margin-top:-3px}.time-picker-minutes-1 .picker-active b{margin-top:-4px}.time-picker-minutes-10 .picker-cell{width:80px;margin-left:-40px}.picker-hour,.picker-minute{display:inline-block;width:46px}.picker-hour[data-active]:after,.picker-minute[data-active]:after{height:46px;top:5px}.picker-hour{text-align:right}.picker-minute{text-align:left}.picker-cell{position:absolute!important;top:0;left:50%;width:40px;height:28px;transform-origin:50% 99px;transition:all .2s}.picker-cell i{position:absolute;top:50%;left:50%;pointer-events:none}.picker-cell-inner{top:30px;width:24px;height:24px;transform-origin:50% 69px}.time-picker-line{top:99px;left:100px;width:70px;height:2px;pointer-events:none;transform-origin:0 50%;transition:all .2s}.time-picker-line,.time-picker-line:before{position:absolute;background-color:rgba(0,188,212,.9)}.time-picker-line:before{content:"";left:100%;top:0;margin-top:-14px;width:30px;height:30px;border-radius:50%}.time-picker-line-inner{width:42px}
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/App.vue?33dd","webpack:///./src/screen/HouseDelivery.vue?d9ed","webpack:///./src/assets/css/base.css","webpack:///./src/assets/css/app.css","webpack:///./src/components/DeliveryInfo.vue?60ef","webpack:///./src/components/ItemTitle.vue?5211","webpack:///./~/x-photoswipe/dist/photoswipe.css","webpack:///./~/x-photoswipe/dist/default-skin/default-skin.css","webpack:///./src/components/DeliveryList.vue?a762","webpack:///./src/components/Loading.vue?3711","webpack:///./src/components/RiskWarning.vue?fd36","webpack:///./src/components/DeliveryRoomNum.vue?432f","webpack:///./src/components/TitleBar.vue?b5d9","webpack:///./src/components/BasePage.vue?61ff","webpack:///./~/date-time-picker/src/css/index.css"],"names":[],"mappings":"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CE,cACA,gBACA,cAAgB,CAElB,wBACE,iBACA,eAAkB,CAEpB,gCACE,cACA,WACA,mBAAsB,CAExB,yBACE,oBACA,aACA,oBACI,2BACJ,sBACI,mBACJ,mBAAsB,CAExB,yBACE,YACA,aACA,kBACA,mBACA,iBAAmB,CAErB,yBACE,kBAAoB,CAEtB,yBACE,kBAAoB,CAEtB,yBACE,kBAAoB,CAEtB,uBACE,WACI,OACJ,eAAiB,CAEnB,uBACE,aACA,eAAiB,CAEnB,uBACE,aACA,gBAAkB,CC3EpB,6BACE,kBACA,oBACA,aACA,gCACA,sBACI,mBACJ,YAAe,CAEjB,2BACE,mBACA,UACA,YACA,kBACA,kBAAqB,CAEvB,wBACE,WACA,gBACA,eACA,YACA,iBACA,2BACI,0BACA,iBAAmB,CCzBzB,2EAKA,MACE,aACA,kBACA,WACA,YACA,OACA,MACA,gBACA,sBACA,kBACA,aACA,8BAEA,mCACA,YAAc,CAEhB,QACI,qBAAuB,CAE3B,UACI,cAAgB,CAIpB,uBAEE,aACA,oBAEA,iDAAwD,CAE1D,YACE,aAAe,CAEjB,+BAEE,uBACA,oBACA,cAAgB,CAElB,4BAEE,oBACA,iBACA,WAAa,CAEf,2BAEE,wBACA,qBACA,eAAiB,CAOnB,UAME,gBACA,UACA,wBACA,kCAAoC,CAGtC,6BAXE,kBACA,OACA,MACA,WACA,WAAa,CAcd,mBADC,eAAiB,CAEnB,kCAEE,sBACA,kBACA,kBACA,OACA,QACA,MACA,QAAU,CAIZ,4BAEE,yBACA,sBACA,qBACI,iBACJ,wCACA,0BAA4B,CAE9B,iBACE,kBACA,WACA,0BAEA,mDAA0D,CAE5D,UACE,oBAEA,iDAAwD,CAE1D,iEAEE,eAAiB,CAEnB,kCAEE,kCAAoC,CAEtC,YAGE,QAEA,SACA,eAAiB,CAEnB,uBAPE,kBACA,OAEA,KAAO,CAUR,WAJC,WACA,WAAa,CASf,wBACE,kCAAoC,CAOtC,+BACE,eAAiB,CAEnB,qBACE,qBACA,sBACA,OACA,KAAO,CAOT,iBACE,kBACA,OACA,QACA,WACA,kBACA,eACA,iBACA,gBACA,UAAY,CAEd,mBACE,WACA,yBAA2B,CClL7B,iFAmBA,cACE,WACA,YACA,kBACA,gBACA,eACA,iBACA,wBACA,cACA,SACA,UACA,SACA,YACA,YACA,uBACA,eAAiB,CAEnB,wCACI,SAAW,CAEf,qBACI,aACA,UAAa,CAEjB,gCACI,UACA,QAAU,CAId,2CACE,SAAW,CAEb,mFAGE,uDACA,2BACA,WACA,WAAa,CAEf,sIAEA,oHAGI,8CAAwC,CAE5C,6EAEI,eAAiB,CACpB,CAED,qBACE,2BAA6B,CAE/B,qBACE,+BAAiC,CAEnC,kBACE,YAAc,CAEhB,qCACE,aAAe,CAEjB,4BACE,2BAA6B,CAE/B,oBACE,aACA,2BAA6B,CAE/B,wCACE,aAAe,CAEjB,qCACE,4BAA8B,CAIhC,iFAEE,iBAAmB,CAOrB,uDAEE,gBACA,QACA,iBACA,WACA,aACA,iBAAmB,CAErB,2BACE,MAAQ,CAEV,4BACE,OAAS,CAEX,qEAEE,WACA,SACA,gCACA,YACA,WACA,iBAAmB,CAErB,kCACE,SACA,gCAAkC,CAEpC,mCACE,UACA,+BAAiC,CAQnC,kCAEE,yBACA,sBACA,qBACI,gBAAkB,CAExB,mBACE,cACA,0BACA,WACA,YACA,MACA,OACA,aACA,kBACA,aACA,UACA,iCACA,mCACA,mBAAqB,CAEvB,2BACE,YAAc,CAEhB,qBACE,aACA,kBACA,gBACA,SACA,kBACA,cACA,WACA,WACA,qCACA,0BACA,0BACA,mCACA,qBAAuB,CAEzB,uBACI,cACA,iBAGA,eACA,gBAAkB,CAEtB,oDALI,WACA,oBAAsB,CAQ1B,mCAEM,yBAA2B,CAEjC,kCACM,yBAA2B,CAEjC,4BACE,SAAW,CAEb,iDACI,uBAAyB,CAI7B,oCACE,iBAAmB,CAErB,+BACE,WACA,cACA,QACA,SACA,kBACA,UACA,WACA,6BACA,yBACA,4BACA,yBACA,mBAAqB,CAEvB,8BACE,mBACA,UAAY,CAEd,qCACI,2BAA6B,CAEjC,6BACE,mBACA,UAAY,CAEd,+BACE,gBACA,aAAe,CAEjB,8BACE,eAAiB,CAQnB,eACE,kBACA,OACA,MACA,YACA,eACA,iBACA,WACA,YACA,cAAgB,CAQlB,eACE,kBACA,OACA,SACA,WACA,eAAiB,CAEnB,qBACI,eACA,UAAY,CAEhB,uBACE,gBACA,gBACA,cACA,eACA,aACA,iBACA,UAAY,CAEd,sBACE,YAAc,CAIhB,qBACE,iBAAmB,CAUrB,iBACE,WACA,YACA,kBACA,MACA,SACA,kBACA,UACA,iCACA,oBACA,aAAe,CAEjB,sBACE,WACA,YACA,WAAa,CAEf,yBACE,SAAW,CAEb,+CAEI,sDAA6C,CAEjD,8CACE,SAAW,CAEb,oEACI,uCAA2C,CAE/C,sEACI,2DAAsE,CAE1E,2CACE,gBACA,YACA,WACA,YACA,kBACA,UACA,SACA,QAAU,CAEZ,2CAKE,kBACA,UACA,YACA,eAAiB,CAEnB,6CACE,sBACA,WACA,YACA,sBACA,kBACA,8BACA,gCACA,kBACA,MACA,OACA,gBACA,QAAU,CAEZ,qCACA,iBACI,kBACA,UACA,SACA,SACA,WAAa,CAChB,CAED,qBACA,GACI,sBAAwB,CAE5B,GACI,uBAA0B,CAC7B,CAED,wBACA,GACI,mBAAqB,CAEzB,IACI,yBAA2B,CAE/B,GACI,mBAAqB,CACxB,CASD,UACE,4BACA,mBACA,UACA,YAAc,CAIhB,eACE,kBACA,OACA,MACA,YACA,UAAY,CAEd,uHAIE,mCACA,oBACA,iDAAwD,CAI1D,yFAEE,kBAAoB,CAEtB,8BAEE,+BAAqC,CAIvC,4DAEE,+BAAqC,CAOvC,sHAEE,SAAW,CAOb,6JAKE,YAAe,CAIjB,qIAGE,YAAc,CAEhB,yBACE,sBAAyB,CAE3B,oCACE,eAAiB,CAClB,s3HCheD,gCACE,eAAkB,CAEpB,oBACE,iBAAoB,CAEtB,+BACE,oBACA,aACA,gCACA,aACA,sBACI,kBAAoB,CAE1B,oCACE,eACA,WACA,eAAkB,CAEpB,uBACE,WACI,MAAQ,CAEd,uBACE,UAAY,CAEd,8CACE,UAAY,CAEd,gDACE,eAAiB,CAEnB,6BACE,oBACA,aACA,cACA,sBACI,mBACJ,WAAa,CAEf,4CACE,kBAAoB,CAEtB,6BACE,oBACA,aACA,0BACI,sBACJ,qBACI,uBACJ,qBACI,sBAAwB,CAE9B,oDACE,eACA,gBACA,aAAe,CAEjB,8BACE,eACA,aAAe,CAEjB,2BACE,oBACA,aACA,0BACI,sBACJ,sBACI,kBAAoB,CAE1B,gCACE,eACA,aAAe,CAEjB,uBACE,YACA,cACA,2BACI,0BACA,iBAAmB,CC/EzB,0BACI,eACA,WACA,YACA,aACA,0BACA,oBACA,aACA,0BACI,sBACJ,sBACA,iBAAmB,CAEvB,6BACI,eACA,YACA,iBACA,0BACA,SACA,mBACA,4BACA,kBACA,kBACA,UAAe,CAEnB,sCACI,gBACA,UAAe,CAEnB,0CACE,WAAa,CAEf,+CACE,gBACA,WACA,YACA,wBACA,oBAAsB,CAExB,iHAEE,kBACA,SAAW,CAEb,yEACE,SAAW,CAEb,gFACE,sBAA0B,CAE5B,kDACE,eAAiB,CAEnB,4BACI,eACA,aACA,MACA,QACA,OACA,SACA,yBAA8B,CAGlC,wCACI,eACA,aACA,SACA,QACA,OACA,QAAU,CAEd,+BACI,WACA,YACA,qBACA,sBACA,4DACA,m5DACA,oBAAsB,CAE1B,wDACM,8oEAAgpE,CAEtpE,uCACA,GACI,sBAAmC,CAEvC,GACI,uBAAqC,CACxC,CCzFD,+BACE,eAAkB,CAMpB,wCAHE,mBACA,mBAAsB,CAYvB,oBATC,oBACA,aACA,sBACI,8BAGJ,aACA,sBACI,kBAAoB,CAE1B,kCACE,kBAAoB,CAEtB,wBACE,eACA,aAAe,CAEjB,wBACE,eACA,cACA,2BACI,0BACA,iBAAmB,CAEzB,uBACE,YACA,cACA,kBACA,YACA,WAAc,CAEhB,6CACE,WACA,oBACA,YACA,YAAe,CAEjB,8BACE,YACA,aACA,oBACA,aACA,kBACA,qBACA,kBAAqB,CCpDvB,2BACE,eAAkB,CAEpB,8BACE,oBACA,aACA,sBACI,8BACJ,kBACA,mBACA,aACA,gCACA,sBACI,kBAAoB,CAE1B,+CACE,WACA,cAAgB,CAElB,0BACE,cACA,cAAgB,CAElB,oBACE,6BACA,kBACA,mBACA,WACI,OACJ,aAAe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","file":"static/css/app.5ef1ef815c144f91a4f2143bccc79bd5.css","sourcesContent":["\n#app[data-v-b401447e] {\n height: 100%;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/App.vue","\n.marginBottom[data-v-7885d421] {\n margin-bottom: 0.2rem;\n}\n.tab-container[data-v-7885d421] {\n display: -ms-flexbox;\n display: flex;\n}\n.tab[data-v-7885d421] {\n\t-ms-flex: 1;\n\t flex: 1;\n font-size: 15px;\n cursor: pointer;\n border-bottom: solid #f0f0f2 1px;\n background: white;\n height: 0.8rem;\n color: #6b6f7b;\n}\n.tabSelected[data-v-7885d421] {\n color: #cd3d3d;\n border-bottom: solid #cd3d3d 3px;\n}\n.delivery-list[data-v-7885d421] {\n overflow-x: hidden;\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/screen/HouseDelivery.vue","/*\r\n 框架 全局 基础样式\r\n ** 可写在这 **\r\n */\r\n\r\n* {\r\n list-style: none;\r\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n text-align: center;\r\n color: #2c3e50;\r\n}\r\n\r\n*:not(input,textarea) {\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\nul,\r\nli,\r\ndiv,\r\nspan,\r\nem,\r\na,\r\ni {\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\nbody, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td{margin:0;padding:0;}\r\nfieldset, img, input, textarea{border:0;}\r\naddress, caption, cite, code, dfn, em, th, var{font-style:normal; font-weight:normal;}\r\nol, ul{list-style:none;}\r\nh1, h2, h3, h4, h5, h6{font-size:100%; font-weight:normal;}\r\nhtml,body{-webkit-user-select:none;-moz-user-select:none;user-select:none;height:100%;}\r\n\r\na:active,\r\na:hover {\r\n text-decoration: underline;\r\n}\r\n\r\na,img{-webkit-touch-callout:none}\r\nimg{ width: 100%; vertical-align:middle;}\r\n\r\nol,\r\nul {\r\n margin: 0;\r\n}\r\n\r\ninput {\r\n outline: none;\r\n border: 0;\r\n}\r\n\r\nbutton {\r\n border: 0;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\nbody {\r\n font-size: 16px;\r\n background: #f3f5f6;\r\n -webkit-overflow-scrolling: touch;\r\n}\r\n\r\na {\r\n text-decoration: none;\r\n}\r\n\r\na,button,input,textarea{\r\n -webkit-tap-highlight-color: rgba(0,0,0,0);\r\n outline:0;\r\n}\r\n\r\n\r\n.flex {\r\n display: flex;\r\n display: -webkit-flex;\r\n}\r\n/* 排列方法 row=从左到右,column=从上到下 */\r\n/* wrap=换行排列 */\r\n.flex-flow-r-w {\r\n flex-flow: row wrap;\r\n}\r\n.flex-flow-c-n {\r\n flex-flow: column nowrap;\r\n}\r\n.flex-flow-c-w {\r\n flex-flow: column wrap;\r\n}\r\n.flex-in {\r\n display: -webkit-flex;\r\n display: inline-flex;\r\n}\r\n.flex-wrap {\r\n flex-wrap: wrap;\r\n}\r\n.flex-wrap-r {\r\n flex-wrap: wrap-reverse;\r\n}\r\n.flex-l {\r\n align-items: flex-start;\r\n}\r\n.flex-l-l {\r\n justify-content: flex-start;\r\n}\r\n.flex-c {\r\n align-items: center;\r\n}\r\n.flex-c-c {\r\n justify-content: center;\r\n}\r\n.flex-r {\r\n align-items: flex-end;\r\n}\r\n.flex-r-r {\r\n justify-content: flex-end;\r\n}\r\n.flex-item-gsb-1 {\r\n flex: 1 1 auto;\r\n}\r\n.flex-item-gsb-0 {\r\n flex: 0 0 auto;\r\n}\r\n/* 元素左对齐布局 */\r\n.flex-self-l {\r\n align-self: flex-start;\r\n}\r\n/* 元素中间齐布局 */\r\n.flex-self-c {\r\n align-self: center;\r\n}\r\n/* 元素右对齐布局 */\r\n.flex-self-r {\r\n align-self: flex-end;\r\n}\r\n/* 子元素换行布局 */\r\n.flex-dir-column {\r\n flex-direction: column;\r\n}\r\n\r\n.pl-li-del {\r\n width: 0.4rem;\r\n height: 0.4rem;\r\n background: url(../images/ic_cancel_selected@2x.png) no-repeat center/80%;\r\n}\r\n\r\n/* 自适应 */\r\n@media screen and (max-width: 10000px) {\r\n html {\r\n font-size: 100px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 750px) {\r\n html {\r\n font-size: 100px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 720px) {\r\n html {\r\n font-size: 96px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 414px) {\r\n html {\r\n font-size: 55.2px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 412px) {\r\n html {\r\n font-size: 54.933333px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 384px) {\r\n html {\r\n font-size: 51.2px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 375px) {\r\n html {\r\n font-size: 50px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 360px) {\r\n html {\r\n font-size: 48px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 320px) {\r\n html {\r\n font-size: 42.66667px;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/assets/css/base.css",".page-out-enter-active,\n.page-out-leave-active,\n.page-in-enter-active,\n.page-in-leave-active {\n will-change: transform;\n transition: all 500ms;\n height: 100%;\n width: 100%;\n top: 0;\n position: absolute;\n backface-visibility: visible;\n perspective: 1000;\n}\n\n/* 页面退出动画效果 */\n.page-out-enter {\n opacity: 0;\n transform: translate3d(-100%, 0, 0);\n -webkit-transform: translate3d(-100%, 0, 0);\n}\n\n.page-out-enter-to {\n opacity: 1;\n}\n\n.page-out-leave-active {\n opacity: 0.5;\n transform: translate3d(100%, 0, 0);\n -webkit-transform: translate3d(100%, 0, 0);\n}\n\n\n/* 页面进入动画效果 */\n.page-in-enter {\n transform: translate3d(100%, 0, 0);\n -webkit-transform: translate3d(100%, 0, 0);\n}\n\n.page-in-enter-to {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n}\n\n.page-in-leave-active {\n opacity: 0.5;\n}\n\n.list-out-enter-active,\n.list-out-leave-active,\n.list-in-enter-active,\n.list-in-leave-active {\n will-change: transform;\n transition: all 300ms;\n width: 100%;\n backface-visibility: visible;\n perspective: 1000;\n}\n/* 页面进入动画效果 */\n.list-in-enter {\n transform: translate3d(100%, 0, 0);\n -webkit-transform: translate3d(100%, 0, 0);\n}\n\n.list-in-enter-to {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n}\n\n.list-in-leave-active {\n opacity: 0;\n transform: translate3d(100%, 0, 0);\n -webkit-transform: translate3d(100%, 0, 0);\n}\n\n/* 页面退出动画效果 */\n.list-out-enter {\n opacity: 1;\n background-color: #0e1721;\n}\n\n.list-out-enter-to {\n opacity: 1;\n background-color: red;\n transform: translate3d(100%, 0, 0);\n -webkit-transform: translate3d(100%, 0, 0);\n}\n\n.list-out-leave-active {\n background-color: blue;\n opacity: 1;\n}\n\n.margin-left-normal {\n margin-left: 0.2rem;\n}\n.padding-left-normal {\n padding-left: 0.2rem;\n}\n\n.margin-bottom-normal {\n margin-bottom: 0.2rem;\n}\n\n.margin-top-normal {\n margin-top: 0.2rem;\n}\n\n.flexCenter {\n align-items: center;\n}\n\n.flexStart {\n align-items: flex-start;\n}\n\n.flexEnd {\n align-items: flex-end;\n}\n\n.textLeft {\n text-align: left;\n}\n\n.textRight {\n text-align: right;\n}\n\n.textCenter {\n text-align: center;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.right-arrow {\n background-image: url(../images/ic_arrow_left@2x.png);\n background-repeat: no-repeat;\n background-size: 100% 100%;\n width: 0.4rem;\n height: 0.4rem;\n}\n\n.riskWarn1 {\n background-image: url(../images/ic_warn_1@2x.png);\n background-repeat: no-repeat;\n background-size: 100% 100%;\n}\n\n.riskWarn2 {\n background-image: url(../images/ic_warn_2@2x.png);\n background-repeat: no-repeat;\n background-size: 100% 100%;\n}\n\n.infoIcon {\n background-image: url(../images/ic_explain@2x.png);\n background-repeat: no-repeat;\n background-size: 100% 100%;\n width: 0.4rem;\n height: 0.4rem;\n}\n\n.alignLeft {\n text-align: left;\n}\n\n.fontColor1 {\n color: #6b6f7b;\n}\n\n.fontColor2 {\n color: #333333;\n}\n\n.fontColor3 {\n color: #cd0001;\n}\n\n.fontColor4 {\n color: #0e1721;\n}\n\n.fontColor5 {\n color: #cd3d3d;\n}\n\n.white {\n background: white;\n}\n\n.bgColor1 {\n background-color: #cd3d3d;\n}\n\n.bgColor2 {\n background-color: white;\n}\n\n.bgColor3 {\n background-color: #f9f9fb;\n}\n\n.bgColor4 {\n background-color: #cd3d3d;\n}\n\n.font14 {\n font-size: 14px;\n}\n\n.visibility {\n visibility: visible;\n}\n\n.inVisibility {\n display: none;\n}\n\n.hidden {\n visibility: hidden;\n}\n\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/assets/css/app.css","\n.delivery-info[data-v-cd3e480a] {\n background: white;\n padding-bottom: 0.3rem;\n}\nbutton[data-v-cd3e480a] {\n height: 0.6rem;\n padding-left: 0.15rem;\n padding-right: 0.15rem;\n border-radius: 5px;\n color: white;\n position: absolute;\n right: 0.2rem;\n top: 0.15rem;\n}\n.houseTotalNum[data-v-cd3e480a] {\n border-bottom: 1px solid #ebeff3;\n padding-top: 0.3rem;\n padding-bottom: 0.3rem;\n margin-left: 0.2rem;\n margin-right: 0.2rem;\n}\n.normal-font[data-v-cd3e480a] {\n font-size: 14px;\n color: #6b6f7b;\n}\n.totalNum[data-v-cd3e480a] {\n color: #0e1721;\n font-weight: bold;\n font-size: 28px;\n}\n.chart[data-v-cd3e480a] {\n margin-top: 0.3rem;\n background: white;\n}\n#deliverychart[data-v-cd3e480a] {\n height: 4.2rem;\n width: 100%;\n margin-bottom: 0.3rem;\n}\n.legend[data-v-cd3e480a] {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: start;\n justify-content: flex-start;\n -ms-flex-align: center;\n align-items: center;\n padding-right: 0.2rem;\n}\n.square[data-v-cd3e480a] {\n width: 0.2rem;\n height: 0.2rem;\n margin-left: 0.2rem;\n margin-right: 0.2rem;\n border-radius: 2px;\n}\n.color1[data-v-cd3e480a] {\n background: #4ECEFF;\n}\n.color2[data-v-cd3e480a] {\n background: #7179CA;\n}\n.color3[data-v-cd3e480a] {\n background: #FD694B;\n}\n.col1[data-v-cd3e480a] {\n -ms-flex: 1;\n flex: 1;\n text-align: left;\n}\n.col2[data-v-cd3e480a] {\n width: 1.5rem;\n text-align: left;\n}\n.col3[data-v-cd3e480a] {\n width: 1.5rem;\n text-align: right;\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DeliveryInfo.vue","\n.item-title[data-v-3b9bdf1c] {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n border-bottom: 1px solid #ebeff3;\n -ms-flex-align: center;\n align-items: center;\n height: 0.9rem;\n}\n.indicate[data-v-3b9bdf1c] {\n background: #cd3d3d;\n width: 4px;\n height: 18px;\n margin-left: 0.2rem;\n margin-right: 0.1rem;\n}\n.title[data-v-3b9bdf1c] {\n color: #333333;\n font-weight: bold;\n font-size: 16px;\n height: 16px;\n line-height: 16px;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ItemTitle.vue","/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */\n/*\n\tStyles for basic PhotoSwipe functionality (sliding area, open/close transitions)\n*/\n/* pswp = photoswipe */\n.pswp {\n display: none;\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n overflow: hidden;\n -ms-touch-action: none;\n touch-action: none;\n z-index: 1500;\n -webkit-text-size-adjust: 100%;\n /* create separate layer, to avoid paint on window.onscroll in webkit/blink */\n -webkit-backface-visibility: hidden;\n outline: none;\n}\n.pswp * {\n box-sizing: border-box;\n}\n.pswp img {\n max-width: none;\n}\n\n/* style is added when JS option showHideOpacity is set to true */\n.pswp--animate_opacity {\n /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */\n opacity: 0.001;\n will-change: opacity;\n /* for open/close transition */\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n}\n.pswp--open {\n display: block;\n}\n.pswp--zoom-allowed .pswp__img {\n /* autoprefixer: off */\n cursor: -webkit-zoom-in;\n cursor: -moz-zoom-in;\n cursor: zoom-in;\n}\n.pswp--zoomed-in .pswp__img {\n /* autoprefixer: off */\n cursor: -webkit-grab;\n cursor: -moz-grab;\n cursor: grab;\n}\n.pswp--dragging .pswp__img {\n /* autoprefixer: off */\n cursor: -webkit-grabbing;\n cursor: -moz-grabbing;\n cursor: grabbing;\n}\n\n/*\n\tBackground is added as a separate element.\n\tAs animating opacity is much faster than animating rgba() background-color.\n*/\n.pswp__bg {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: #000;\n opacity: 0;\n transform: translateZ(0);\n -webkit-backface-visibility: hidden;\n will-change: opacity;\n}\n.pswp__scroll-wrap {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n.pswp__container,\n.pswp__zoom-wrap {\n -ms-touch-action: none;\n touch-action: none;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n}\n\n/* Prevent selection and tap highlights */\n.pswp__container,\n.pswp__img {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n.pswp__zoom-wrap {\n position: absolute;\n width: 100%;\n transform-origin: left top;\n /* for open/close transition */\n transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1);\n}\n.pswp__bg {\n will-change: opacity;\n /* for open/close transition */\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n}\n.pswp--animated-in .pswp__bg,\n.pswp--animated-in .pswp__zoom-wrap {\n transition: none;\n}\n.pswp__container,\n.pswp__zoom-wrap {\n -webkit-backface-visibility: hidden;\n}\n.pswp__item {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n overflow: hidden;\n}\n.pswp__img {\n position: absolute;\n width: auto;\n height: auto;\n top: 0;\n left: 0;\n}\n\n/*\n\tstretched thumbnail or div placeholder element (see below)\n\tstyle is added to avoid flickering in webkit/blink when layers overlap\n*/\n.pswp__img--placeholder {\n -webkit-backface-visibility: hidden;\n}\n\n/*\n\tdiv element that matches size of large image\n\tlarge image loads on top of it\n*/\n.pswp__img--placeholder--blank {\n background: #222;\n}\n.pswp--ie .pswp__img {\n width: 100% !important;\n height: auto !important;\n left: 0;\n top: 0;\n}\n\n/*\n\tError message appears when image is not loaded\n\t(JS option errorMsg controls markup)\n*/\n.pswp__error-msg {\n position: absolute;\n left: 0;\n top: 50%;\n width: 100%;\n text-align: center;\n font-size: 14px;\n line-height: 16px;\n margin-top: -8px;\n color: #CCC;\n}\n.pswp__error-msg a {\n color: #CCC;\n text-decoration: underline;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/x-photoswipe/dist/photoswipe.css","/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */\n/*\n\n\tContents:\n\n\t1. Buttons\n\t2. Share modal and links\n\t3. Index indicator (\"1 of X\" counter)\n\t4. Caption\n\t5. Loading indicator\n\t6. Additional styles (root element, top bar, idle state, hidden state, etc.)\n\n*/\n/*\n\t\n\t1. Buttons\n\n */\n/* <button> css reset */\n.pswp__button {\n width: 44px;\n height: 44px;\n position: relative;\n background: none;\n cursor: pointer;\n overflow: visible;\n -webkit-appearance: none;\n display: block;\n border: 0;\n padding: 0;\n margin: 0;\n float: right;\n opacity: 0.75;\n transition: opacity 0.2s;\n box-shadow: none;\n}\n.pswp__button:focus, .pswp__button:hover {\n opacity: 1;\n}\n.pswp__button:active {\n outline: none;\n opacity: 0.9;\n}\n.pswp__button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n\n/* pswp__ui--over-close class it added when mouse is over element that should close gallery */\n.pswp__ui--over-close .pswp__button--close {\n opacity: 1;\n}\n.pswp__button,\n.pswp__button--arrow--left:before,\n.pswp__button--arrow--right:before {\n background: url(default-skin.png) 0 0 no-repeat;\n background-size: 264px 88px;\n width: 44px;\n height: 44px;\n}\n@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {\n /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */\n.pswp--svg .pswp__button,\n .pswp--svg .pswp__button--arrow--left:before,\n .pswp--svg .pswp__button--arrow--right:before {\n background-image: url(default-skin.svg);\n}\n.pswp--svg .pswp__button--arrow--left,\n .pswp--svg .pswp__button--arrow--right {\n background: none;\n}\n}\n.pswp__button--close {\n background-position: 0 -44px;\n}\n.pswp__button--share {\n background-position: -44px -44px;\n}\n.pswp__button--fs {\n display: none;\n}\n.pswp--supports-fs .pswp__button--fs {\n display: block;\n}\n.pswp--fs .pswp__button--fs {\n background-position: -44px 0;\n}\n.pswp__button--zoom {\n display: none;\n background-position: -88px 0;\n}\n.pswp--zoom-allowed .pswp__button--zoom {\n display: block;\n}\n.pswp--zoomed-in .pswp__button--zoom {\n background-position: -132px 0;\n}\n\n/* no arrows on touch screens */\n.pswp--touch .pswp__button--arrow--left,\n.pswp--touch .pswp__button--arrow--right {\n visibility: hidden;\n}\n\n/*\n\tArrow buttons hit area\n\t(icon is added to :before pseudo-element)\n*/\n.pswp__button--arrow--left,\n.pswp__button--arrow--right {\n background: none;\n top: 50%;\n margin-top: -50px;\n width: 70px;\n height: 100px;\n position: absolute;\n}\n.pswp__button--arrow--left {\n left: 0;\n}\n.pswp__button--arrow--right {\n right: 0;\n}\n.pswp__button--arrow--left:before,\n.pswp__button--arrow--right:before {\n content: '';\n top: 35px;\n background-color: rgba(0, 0, 0, 0.3);\n height: 30px;\n width: 32px;\n position: absolute;\n}\n.pswp__button--arrow--left:before {\n left: 6px;\n background-position: -138px -44px;\n}\n.pswp__button--arrow--right:before {\n right: 6px;\n background-position: -94px -44px;\n}\n\n/*\n\n\t2. Share modal/popup and links\n\n */\n.pswp__counter,\n.pswp__share-modal {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.pswp__share-modal {\n display: block;\n background: rgba(0, 0, 0, 0.5);\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n padding: 10px;\n position: absolute;\n z-index: 1600;\n opacity: 0;\n transition: opacity 0.25s ease-out;\n -webkit-backface-visibility: hidden;\n will-change: opacity;\n}\n.pswp__share-modal--hidden {\n display: none;\n}\n.pswp__share-tooltip {\n z-index: 1620;\n position: absolute;\n background: #FFF;\n top: 56px;\n border-radius: 2px;\n display: block;\n width: auto;\n right: 44px;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);\n transform: translateY(6px);\n transition: transform 0.25s;\n -webkit-backface-visibility: hidden;\n will-change: transform;\n}\n.pswp__share-tooltip a {\n display: block;\n padding: 8px 12px;\n color: #000;\n text-decoration: none;\n font-size: 14px;\n line-height: 18px;\n}\n.pswp__share-tooltip a:hover {\n text-decoration: none;\n color: #000;\n}\n.pswp__share-tooltip a:first-child {\n /* round corners on the first/last list item */\n border-radius: 2px 2px 0 0;\n}\n.pswp__share-tooltip a:last-child {\n border-radius: 0 0 2px 2px;\n}\n.pswp__share-modal--fade-in {\n opacity: 1;\n}\n.pswp__share-modal--fade-in .pswp__share-tooltip {\n transform: translateY(0);\n}\n\n/* increase size of share links on touch devices */\n.pswp--touch .pswp__share-tooltip a {\n padding: 16px 12px;\n}\na.pswp__share--facebook:before {\n content: '';\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n top: -12px;\n right: 15px;\n border: 6px solid transparent;\n border-bottom-color: #FFF;\n -webkit-pointer-events: none;\n -moz-pointer-events: none;\n pointer-events: none;\n}\na.pswp__share--facebook:hover {\n background: #3E5C9A;\n color: #FFF;\n}\na.pswp__share--facebook:hover:before {\n border-bottom-color: #3E5C9A;\n}\na.pswp__share--twitter:hover {\n background: #55ACEE;\n color: #FFF;\n}\na.pswp__share--pinterest:hover {\n background: #CCC;\n color: #CE272D;\n}\na.pswp__share--download:hover {\n background: #DDD;\n}\n\n/*\n\n\t3. Index indicator (\"1 of X\" counter)\n\n */\n.pswp__counter {\n position: absolute;\n left: 0;\n top: 0;\n height: 44px;\n font-size: 13px;\n line-height: 44px;\n color: #FFF;\n opacity: 0.75;\n padding: 0 10px;\n}\n\n/*\n\t\n\t4. Caption\n\n */\n.pswp__caption {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n min-height: 44px;\n}\n.pswp__caption small {\n font-size: 11px;\n color: #BBB;\n}\n.pswp__caption__center {\n text-align: left;\n max-width: 420px;\n margin: 0 auto;\n font-size: 13px;\n padding: 10px;\n line-height: 20px;\n color: #CCC;\n}\n.pswp__caption--empty {\n display: none;\n}\n\n/* Fake caption element, used to calculate height of next/prev image */\n.pswp__caption--fake {\n visibility: hidden;\n}\n\n/*\n\n\t5. Loading indicator (preloader)\n\n\tYou can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR\n\n */\n.pswp__preloader {\n width: 44px;\n height: 44px;\n position: absolute;\n top: 0;\n left: 50%;\n margin-left: -22px;\n opacity: 0;\n transition: opacity 0.25s ease-out;\n will-change: opacity;\n direction: ltr;\n}\n.pswp__preloader__icn {\n width: 20px;\n height: 20px;\n margin: 12px;\n}\n.pswp__preloader--active {\n opacity: 1;\n}\n.pswp__preloader--active .pswp__preloader__icn {\n /* We use .gif in browsers that don't support CSS animation */\n background: url(preloader.gif) 0 0 no-repeat;\n}\n.pswp--css_animation .pswp__preloader--active {\n opacity: 1;\n}\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {\n animation: clockwise 500ms linear infinite;\n}\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {\n animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;\n}\n.pswp--css_animation .pswp__preloader__icn {\n background: none;\n opacity: 0.75;\n width: 14px;\n height: 14px;\n position: absolute;\n left: 15px;\n top: 15px;\n margin: 0;\n}\n.pswp--css_animation .pswp__preloader__cut {\n /* \n\t\t\tThe idea of animating inner circle is based on Polymer (\"material\") loading indicator \n\t\t\t by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html\n\t\t*/\n position: relative;\n width: 7px;\n height: 14px;\n overflow: hidden;\n}\n.pswp--css_animation .pswp__preloader__donut {\n box-sizing: border-box;\n width: 14px;\n height: 14px;\n border: 2px solid #FFF;\n border-radius: 50%;\n border-left-color: transparent;\n border-bottom-color: transparent;\n position: absolute;\n top: 0;\n left: 0;\n background: none;\n margin: 0;\n}\n@media screen and (max-width: 1024px) {\n.pswp__preloader {\n position: relative;\n left: auto;\n top: auto;\n margin: 0;\n float: right;\n}\n}\n@keyframes clockwise {\n0% {\n transform: rotate(0deg);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n@keyframes donut-rotate {\n0% {\n transform: rotate(0);\n}\n50% {\n transform: rotate(-140deg);\n}\n100% {\n transform: rotate(0);\n}\n}\n\n/*\n\t\n\t6. Additional styles\n\n */\n/* root element of UI */\n.pswp__ui {\n -webkit-font-smoothing: auto;\n visibility: visible;\n opacity: 1;\n z-index: 1550;\n}\n\n/* top black bar with buttons and \"1 of X\" indicator */\n.pswp__top-bar {\n position: absolute;\n left: 0;\n top: 0;\n height: 44px;\n width: 100%;\n}\n.pswp__caption,\n.pswp__top-bar,\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n -webkit-backface-visibility: hidden;\n will-change: opacity;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n}\n\n/* pswp--has_mouse class is added only when two subsequent mousemove events occur */\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n visibility: visible;\n}\n.pswp__top-bar,\n.pswp__caption {\n background-color: rgba(0, 0, 0, 0.5);\n}\n\n/* pswp__ui--fit class is added when main image \"fits\" between top bar and bottom bar (caption) */\n.pswp__ui--fit .pswp__top-bar,\n.pswp__ui--fit .pswp__caption {\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */\n.pswp__ui--idle .pswp__top-bar {\n opacity: 0;\n}\n.pswp__ui--idle .pswp__button--arrow--left,\n.pswp__ui--idle .pswp__button--arrow--right {\n opacity: 0;\n}\n\n/*\n\tpswp__ui--hidden class is added when controls are hidden\n\te.g. when user taps to toggle visibility of controls\n*/\n.pswp__ui--hidden .pswp__top-bar,\n.pswp__ui--hidden .pswp__caption,\n.pswp__ui--hidden .pswp__button--arrow--left,\n.pswp__ui--hidden .pswp__button--arrow--right {\n /* Force paint & create composition layer for controls. */\n opacity: 0.001;\n}\n\n/* pswp__ui--one-slide class is added when there is just one item in gallery */\n.pswp__ui--one-slide .pswp__button--arrow--left,\n.pswp__ui--one-slide .pswp__button--arrow--right,\n.pswp__ui--one-slide .pswp__counter {\n display: none;\n}\n.pswp__element--disabled {\n display: none !important;\n}\n.pswp--minimal--dark .pswp__top-bar {\n background: none;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/x-photoswipe/dist/default-skin/default-skin.css","\n.delivery-list[data-v-420aa02a] {\n background: white;\n}\nul[data-v-420aa02a] {\n margin: auto 0.2rem;\n}\n.table-header[data-v-420aa02a] {\n display: -ms-flexbox;\n display: flex;\n border-bottom: #f0f0f2 solid 1px;\n height: 0.9rem;\n -ms-flex-align: center;\n align-items: center;\n}\n.table-header span[data-v-420aa02a] {\n font-size: 14px;\n color: #333333;\n font-weight: bold;\n}\n.col1[data-v-420aa02a] {\n -ms-flex: 1;\n flex: 1;\n}\n.col2[data-v-420aa02a] {\n width: 2rem;\n}\n.col3[data-v-420aa02a], .col4[data-v-420aa02a] {\n width: 1rem;\n}\n.table-header span[data-v-420aa02a]:first-child {\n text-align: left;\n}\n.table-body[data-v-420aa02a] {\n display: -ms-flexbox;\n display: flex;\n color: #6B6F7B;\n -ms-flex-align: center;\n align-items: center;\n height: 1rem;\n}\n.table-body[data-v-420aa02a]:nth-child(odd) {\n background: #F9F9FB;\n}\n.orgProject[data-v-420aa02a] {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n.orgName[data-v-420aa02a], .dateNum[data-v-420aa02a] {\n font-size: 13px;\n font-weight: bold;\n color: #6B6F7B;\n}\n.projectName[data-v-420aa02a] {\n font-size: 11px;\n color: #6B6F7B;\n}\n.datezoom[data-v-420aa02a] {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: center;\n align-items: center;\n}\n.datezoom span[data-v-420aa02a] {\n font-size: 10px;\n color: #6B6F7B;\n}\n.risk[data-v-420aa02a] {\n width: 0.4rem;\n height: 0.41rem;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DeliveryList.vue","\n.loading[data-v-2d091593] {\n position: fixed;\n width: 30vw;\n height: 30vw;\n z-index: 9999;\n background: rgba(0, 0, 0, 0.7);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n vertical-align: middle;\n text-align: center;\n}\n.weui-toast[data-v-2d091593] {\n position: fixed;\n width: 7.6em;\n min-height: 7.6em;\n top: calc(50% - 7.6em / 2.0);\n left: 50%;\n margin-left: -3.8em;\n background: rgba(17,17,17,0.7);\n text-align: center;\n border-radius: 5px;\n color: #FFFFFF;\n}\n.weui-toast__content[data-v-2d091593] {\n margin: 0 0 15px;\n color: #FFFFFF;\n}\n.vux-loading .weui-toast[data-v-2d091593] {\n z-index: 999;\n}\n.weui-icon_toast.weui-loading[data-v-2d091593] {\n margin: 30px 0 0;\n width: 38px;\n height: 38px;\n vertical-align: baseline;\n display: inline-block;\n}\n.vux-mask-enter[data-v-2d091593], .vux-mask-leave-active[data-v-2d091593],\n.vux-mask-leave-active[data-v-2d091593], .vux-mask-enter-active[data-v-2d091593] {\n position: relative;\n z-index: 1;\n}\n.vux-mask-enter[data-v-2d091593], .vux-mask-leave-active[data-v-2d091593] {\n opacity: 0;\n}\n.vux-mask-leave-active[data-v-2d091593], .vux-mask-enter-active[data-v-2d091593] {\n transition: opacity 300ms;\n}\n.vux-loading-no-text .weui-toast[data-v-2d091593] {\n min-height: 98px;\n}\n.weui-mask[data-v-2d091593] {\n position: fixed;\n z-index: 1000;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n background: rgba(0, 0, 0, .6);\n}\n/** 透明遮罩层 预留顶部标题栏高度,阻止页面上下滚动 */\n.weui-mask_transparent[data-v-2d091593]{\n position: fixed;\n z-index: 1000;\n top: 1rem;\n right: 0;\n left: 0;\n bottom: 0;\n}\n.weui-loading[data-v-2d091593] {\n width: 20px;\n height: 20px;\n display: inline-block;\n vertical-align: middle;\n animation: weuiLoading-data-v-2d091593 1s steps(12, end) infinite;\n background: transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=\") no-repeat;\n background-size: 100%;\n}\n.weui-loading.weui-loading_transparent[data-v-2d091593]{\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMjAnIGhlaWdodD0nMTIwJyB2aWV3Qm94PScwIDAgMTAwIDEwMCc+PHBhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgxMDB2MTAwSDB6Jy8+PHJlY3QgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjU2KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwIC0zMCknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjUpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKDMwIDEwNS45OCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjQzKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA3NS45OCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjM4KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSg5MCA2NSA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjMyKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTguNjYgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4yOCknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoMTUwIDU0LjAyIDY1KScvPjxyZWN0IHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyB4PSc0Ni41JyB5PSc0MCcgZmlsbD0ncmdiYSgyNTUsMjU1LDI1NSwuMjUpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKDE4MCA1MCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjIpJyByeD0nNScgcnk9JzUnIHRyYW5zZm9ybT0ncm90YXRlKC0xNTAgNDUuOTggNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4xNyknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoLTEyMCA0MS4zNCA2NSknLz48cmVjdCB3aWR0aD0nNycgaGVpZ2h0PScyMCcgeD0nNDYuNScgeT0nNDAnIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsLjE0KScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgtOTAgMzUgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4xKScgcng9JzUnIHJ5PSc1JyB0cmFuc2Zvcm09J3JvdGF0ZSgtNjAgMjQuMDIgNjUpJy8+PHJlY3Qgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHg9JzQ2LjUnIHk9JzQwJyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LC4wMyknIHJ4PSc1JyByeT0nNScgdHJhbnNmb3JtPSdyb3RhdGUoLTMwIC01Ljk4IDY1KScvPjwvc3ZnPgo=\");\n}\n@keyframes weuiLoading-data-v-2d091593 {\n0% {\n transform: rotate3d(0, 0, 1, 0deg);\n}\n100% {\n transform: rotate3d(0, 0, 1, 360deg);\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Loading.vue","\n.risk-warning[data-v-378e7224] {\n background: white;\n}\nul[data-v-378e7224] {\n padding-left: 0.1rem;\n padding-right: 0.1rem;\n}\nli[data-v-378e7224] {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding-left: 0.1rem;\n padding-right: 0.1rem;\n height: 0.9rem;\n -ms-flex-align: center;\n align-items: center;\n}\nli[data-v-378e7224]:nth-child(even) {\n background: #F9F9FB;\n}\n.label[data-v-378e7224] {\n font-size: 14px;\n color: #6b6f7b;\n}\n.value[data-v-378e7224] {\n font-size: 13px;\n color: #6b6f7b;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.risk[data-v-378e7224] {\n width: 0.4rem;\n height: 0.41rem;\n position: absolute;\n right: 0.2rem;\n top: 0.245rem;\n}\nspan.label + span.value[data-v-378e7224]::after {\n content: \"\";\n padding-right: 0.5rem;\n width: 0.4rem;\n height: 0.4rem;\n}\n.toAlertIcon[data-v-378e7224] {\n width: 0.4rem;\n height: 0.4rem;\n display: -ms-flexbox;\n display: flex;\n padding-top: 0.2rem;\n padding-bottom: 0.2rem;\n padding-left: 0.1rem;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/RiskWarning.vue","\n.room-num[data-v-002341ee] {\n background: white;\n}\n.roomNumInfo[data-v-002341ee] {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n margin-left: 0.2rem;\n margin-right: 0.2rem;\n height: 0.9rem;\n border-bottom: 1px solid #ebeff3;\n -ms-flex-align: center;\n align-items: center;\n}\n.roomNumInfo span[data-v-002341ee]:first-child {\n color: #333333;\n font-size: 15px;\n}\n.roomNum[data-v-002341ee] {\n color: #cd0001;\n font-size: 16px;\n}\nul[data-v-002341ee] {\n border-top: 1px solid #F6F8FA;\n margin-left: 0.2rem;\n margin-right: 0.2rem;\n -ms-flex: 1;\n flex: 1;\n overflow: auto;\n}\nli[data-v-002341ee] {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n}\nli span[data-v-002341ee] {\n font-size: 14px;\n color: #6b6f7b;\n height: 0.9rem;\n line-height: 0.9rem;\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DeliveryRoomNum.vue","\n.title-bar[data-v-3a2b07d4] {\n background: #CD3D3D;\n height: 1rem;\n min-height: 1rem;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.title-bar span[data-v-3a2b07d4] {\n color: white;\n vertical-align: center;\n}\n.back[data-v-3a2b07d4] {\n position: absolute;\n left: 0px;\n padding-left: 0.2rem;\n padding-right: 0.2rem;\n height: 1rem;\n line-height: 1rem;\n}\n.back img[data-v-3a2b07d4] {\n width: 0.5rem;\n height: 0.5rem;\n}\n.title[data-v-3a2b07d4] {\n font-size: 20px;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TitleBar.vue","\n.base-page[data-v-1b64908e] {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n height: 100%;\n background-color: rgb(245, 245, 247);\n}\n.title-bar[data-v-1b64908e] {\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 999;\n}\n.main[data-v-1b64908e] {\n margin-top: 1rem;\n overflow: auto;\n -ms-flex: 1;\n flex: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/BasePage.vue",".picker-mask {position:fixed;z-index:1000;top:0;left:0;width:100%;height:100%;background-color:rgba(0, 0, 0, .46);}\n@-webkit-keyframes pickerShow {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes pickerShow {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.picker-mask.time-picker-ani {-webkit-animation:pickerShow .2s linear;animation:pickerShow .2s linear;}\n\n.picker-container {position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:280px;opacity:1;font-family:'PingFang SC', 'HanHei SC', 'Helvetica Neue', 'Helvetica', sans-serif;line-height:1.5;background-color:#fff;box-shadow:0 0 10px rgba(0, 0, 0, .8);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;}\n.picker-container i {font-style:normal;}\n.picker-container [data-active] {position:relative;}\n.picker-container [data-active]:after,\n.picker-container .picker-disabled.active:after {content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-image:-webkit-radial-gradient(circle, #000000 10%, transparent 10.01%);background-image:-o-radial-gradient(circle, #000000 10%, transparent 10.01%);background-image:radial-gradient(circle, #000000 10%, transparent 10.01%);background-repeat:no-repeat;background-position:50%;pointer-events:none;-webkit-background-size:0% 0%;background-size:0% 0%;opacity:0;-webkit-transition:background .5s, opacity 1s;transition: background .5s, opacity 1s;}\n.picker-container .active:after {-webkit-background-size:1000% 1000%;background-size:1000% 1000%;opacity:0.2;}\n.picker-container .picker-disabled {color:#d6d6d6;}\n\n.picker-head {padding:10px 16px;line-height:1.5;color:#ececec;background-color:#00bcd4;}\n.picker-head-active {color:#fff;}\n.picker-year {font-size:14px;width:4em;}\n.picker-date {font-size:24px;text-indent:-2px;}\n.picker-content {position:relative;overflow:hidden;width:100%;height:224px;font-size:12px;color:rgba(0, 0, 0, 0.8);}\n.picker-content ul,\n.picker-content li {list-style:none;margin:0;padding:0;}\n\n.date-picker-main {width:100%;-webkit-transform:translateX(-100%) translateZ(0);transform:translateX(-100%) translateZ(0);}\n.date-picker-main:after {content:\"\";display:table;clear:both;}\n\n.scroller-picker-main {position:relative;text-align:center;}\n.scroller-picker-main li {padding:10px 0;overflow:hidden;}\n.scroller-picker-main .picker-active {color:#00bcd4;}\n.scroller-picker-midd {position:absolute;top:50%;width:100%;height:40px;margin-top:-20px;-webkit-box-sizing:border-box;box-sizing:border-box;}\n.scroller-picker-midd:before,\n.scroller-picker-midd:after {content:\"\";position:absolute;left:0;width:100%;border-top:1px solid #e2e3e5;}\n.scroller-picker-midd:before {top:0;-webkit-transform:scaleY(.5) translateZ(0);-webkit-transform-origin:left top;transform-origin:left top;transform:scaleY(.5) translateZ(0);}\n.scroller-picker-midd:after {bottom:0;-webkit-transform:scaleY(.5) translateZ(0);-webkit-transform-origin:left bottom;transform-origin:left bottom;transform:scaleY(.5) translateZ(0);}\n\n.picker-actions-arrow {z-index:1;position:absolute;top:0;left:8px;right:8px;font-size:14px;line-height:20px;}\n.picker-actions-arrow i {cursor:pointer;float:left;padding:16px 14px;}\n.picker-actions-arrow i:last-child {float:right;}\n.picker-actions-arrow i[data-active]:after {height:42px;top:50%;-webkit-transform:translate(0, -50%);transform:translate(0, -50%);border-radius:50%;}\n\n.picker-bdy {float:left;width:100%;padding:0 8px;margin-right:-100%;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;}\n.picker-bdy-curr {left:100%;}\n.picker-bdy-next {left:200%;}\n\n.date-picker-title {text-align:center;padding:16px;font-size:14px;font-weight:800;line-height:20px;}\n\n.date-picker-days {/*padding-bottom:8px;*/}\n.date-picker-days i {position:relative;width:14.28%;height:12px;padding:6px 0;text-align:center;display:inline-block;line-height:1;vertical-align:top;cursor:pointer;overflow:hidden;}\n.date-picker-days i[data-active]:after {width:24px;left:50%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);border-radius:50%;}\n\n.date-picker-days-bdy i span {position:relative;}\n.date-picker-days-bdy i:before {content:\"\";left:50%;top:50%;width:0;height:0;position:absolute;border-radius:50%;background-color:#00bcd4;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}\n/*.date-picker-days-bdy i:hover,*/\n.picker-bdy-curr .date-picker-days-bdy i.picker-active {color:#fff;}\n/*.date-picker-days-bdy i:hover:before,*/\n.picker-bdy-curr .date-picker-days-bdy i.picker-active:before {width:24px;height:24px;}\n/*.date-picker-days-bdy i:hover:before {transition:all .2s;}*/\n.date-picker-days-bdy .picker-now {color:#00bcd4;}\n\n.date-picker-days-title {font-weight:500;}\n.date-picker-days-bdy i[data-val=\"0\"] {color:transparent;}\n.date-picker-days-bdy i[data-val=\"0\"]:before {content:none;}\n\n.picker-foot {padding:6px 10px;text-align:right;color:#393939;}\n.picker-act {padding:5px 15px;margin-left:10px;text-decoration:none;display:inline-block;font-size:14px;font-weight:600;color:inherit;background-color:transparent;border-radius:2px;-webkit-transition:background-color .2s linear;transition:background-color .2s linear;}\n.picker-act:hover {background-color:rgba(153, 153, 153, 0.2);}\n.picker-act-clear {margin-left:0;float:left;}\n\n.time-picker-container .picker-head {text-align:center;font-size:38px;font-weight:300;}\n/*.time-picker-container .picker-content {height:200px;}*/\n.time-picker-container .picker-cell {margin-left:-20px;}\n.time-picker-container .picker-cell[data-active]:after {width:30px;height:30px;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border-radius:50%;}\n.time-picker-container .picker-cell-inner {margin-left:-12px;}\n.time-picker-container .picker-active {z-index:1;color:#fff;pointer-events:none;}\n.time-picker-container .picker-active b {position:absolute;left:50%;top:50%;margin-top:-1px;margin-left:-1px;width:2px;height:2px;background-color:#fff;border-radius:50%;}\n\n.time-picker-main {position:absolute;top:50%;left:50%;height:200px;width:200px;-webkit-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0);border-radius:50%;background-color:rgba(0, 0, 0, 0.05);}\n.time-picker-main > ul {position:absolute;top:1px;right:1px;bottom:1px;left:1px;}\n.time-picker-main:before {content:\"\";position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background-color:rgba(0, 188, 212, 0.9);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}\n\n.time-picker-main-minutes > .time-picker-minutes-1 {top:10px;right:10px;bottom:10px;left:10px;}\n.time-picker-minutes-1 .picker-cell {width:6px;margin-left:-3px;margin-top:-6px;-webkit-transform-origin:50% 96px;transform-origin:50% 96px;}\n.time-picker-minutes-1 .picker-cell i {margin-top:-3px;}\n.time-picker-minutes-1 .picker-active b {margin-top:-4px;}\n\n.time-picker-minutes-10 .picker-cell {width:80px;margin-left:-40px;}\n\n.picker-hour, .picker-minute {display:inline-block;width:46px;}\n.picker-hour[data-active]:after, .picker-minute[data-active]:after {height:46px;top:5px;}\n.picker-hour {text-align:right;}\n.picker-minute {text-align:left;}\n.picker-cell {position:absolute!important;top:0;left:50%;width:40px;height:28px;-webkit-transform-origin:50% 99px;transform-origin:50% 99px;-webkit-transition:all .2s;transition:all .2s;}\n.picker-cell i {position:absolute;top:50%;left:50%;pointer-events:none;}\n.picker-cell-inner {top:30px;width:24px;height:24px;-webkit-transform-origin:50% 69px;transform-origin:50% 69px;}\n\n.time-picker-line {position:absolute;top:99px;left:100px;width:70px;height:2px;pointer-events:none;background-color:rgba(0, 188, 212, 0.9);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition:all .2s;transition:all .2s;}\n.time-picker-line:before {content:\"\";position:absolute;left:100%;top:0;margin-top:-14px;width:30px;height:30px;background-color:rgba(0, 188, 212, 0.9);border-radius:50%;}\n.time-picker-line-inner {width:42px;}\n\n\n\n// WEBPACK FOOTER //\n// ./~/date-time-picker/src/css/index.css"],"sourceRoot":""}
\ No newline at end of file
webpackJsonp([1],{1003:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVCMjBDODdGQjcyMTExRThBRERFQzQyQTJBQTYwRkI4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjVCMjBDODgwQjcyMTExRThBRERFQzQyQTJBQTYwRkI4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUIyMEM4N0RCNzIxMTFFOEFEREVDNDJBMkFBNjBGQjgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NUIyMEM4N0VCNzIxMTFFOEFEREVDNDJBMkFBNjBGQjgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6q3LXJAAACH0lEQVR42uyXTyilURjG3YlCExH7MROzsZANUabENfK3KGZx78pi0ExYjGGhWSi37BDCBkmkyPg3ksg0UrJhYadmZTFSamZqJnPn99arTl/Rda9zs/hOPT33fM/pvr/O933vudcTDAZjHtN4EvPIhgvkArlAtkdsKItmv3wrxDbQDqp7U1bwx8jSsAN0jUrIvkdjh/LRU1SJJoDwGNkz9BxlolWy5GgAjaMT/exDPTcBO3KITes0G80DFWcViKJXWAU610ufKOozljTp7ZThRcPhAnnuc5YBkYvtoUT0F5UCu6tZCraPXuryLrKAVSAtXI0t6u5eogIKn2qWoQ94ui5vIJu3+tpTYBlr06nsyhog6ZqdYTXot+aT+oba7UMUHsQGdCq7skzhBM3ktvk1i0dLZC+i0Rg70GejLUzdtAOgFrAPmqXpLqZaBaKoNMJGdKSX6uVBNvJ+bEynWfKIWT86KPoL+2pcynMs2bgje3ggbkMv9l6nP1C3kVVhczr9h95aee2Ngh+xPgOmmB071qwYW0EJCuMnm7EG5ICRXvTqFhj5cl+oMGHdMgq2GzBypJQbMEUGjIzW+8CEc3Q0G+eUwHgpeKCZPLSbKEnzFrIRaz/QHDDSiV/fAfMuHJiQgSjod8BUakeWLMcBI4fqkO3fQ6MOmG0jCzhgApG0klCB1tEFqnXAyNhCP1FnpDAR9SH3b5AL5AK5QA80/gswADX7z/WCIideAAAAAElFTkSuQmCC"},1004:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5OTk3MUUyODk3MTExRThBOERDQkZBN0RENjQ2NTAyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY5OTk3MUUzODk3MTExRThBOERDQkZBN0RENjQ2NTAyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Njk5OTcxRTA4OTcxMTFFOEE4RENCRkE3REQ2NDY1MDIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Njk5OTcxRTE4OTcxMTFFOEE4RENCRkE3REQ2NDY1MDIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz58/7kYAAABHklEQVR42tzYvQrCMBQFYOvmoi/hqmsHNwdHBzcRwdUXFNHF1ccQBEFd1M0f4gl26Ng099zeGjg4pX5NS3pzE+dcw/JoKv/fEDkj66ITEsUVHCBbpIXckY6lFUyRVYZ7IfPCM/0KkpMiN/cbT2QcMt80jg2MxjGBIjgWUAzHAOZxH2Qae00mbiZxXSlcD7lK46SAHndh4CSAVFwskI6LAargygLVcGWAeZwfC3axEYNbKlRCQcCDNs4npGB9V3IoCbibLnK0/IgrQcZuM3SkxEZNRf7tp64WxUItyi06UvJxUJDSL7U4krE19CUPTxoH9yikVuvDIyfWgOabR7Vov0UjNVvAvsu6QdrII/s11UTfIyPkhOwsNtFLja8AAwAOeHfzcw5HuwAAAABJRU5ErkJggg=="},1005:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"room-num"},[n("item-title",{attrs:{title:"交房数量"}}),t._v(" "),n("div",{staticClass:"roomNumInfo"},[n("span",[t._v("本次预计交房数")]),t._v(" "),n("span",{staticClass:"roomNum"},[t._v(t._s(t.countNum))])]),t._v(" "),n("ul",t._l(t.list,function(e,i){return n("li",{key:i},[n("span",[t._v(t._s(e.buildingName))])])}))],1)},staticRenderFns:[]}},1006:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"base-page"},[n("title-bar",{attrs:{title:t.title}}),t._v(" "),n("loading",{ref:"loading",attrs:{show:this.$store.state.showLoading}}),t._v(" "),n("div",{staticClass:"main"},[t._t("default")],2)],1)},staticRenderFns:[]}},1007:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:t.transition}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.show,expression:"show"}],staticClass:"weui-loading_toast vux-loading",class:t.text?"":"vux-loading-no-text"},[n("div",{staticClass:"weui-mask_transparent"}),t._v(" "),n("div",{staticClass:"weui-toast",style:{position:t.position}},[n("i",{staticClass:"weui-loading weui-icon_toast"}),t._v(" "),t.text?n("p",{staticClass:"weui-toast__content"},[t._v(t._s(t.text||"loading"))]):t._e()])])])},staticRenderFns:[]}},1008:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pswp vux-previewer",attrs:{tabindex:"-1",role:"dialog","aria-hidden":"true"}},[n("div",{staticClass:"pswp__bg"}),t._v(" "),n("div",{staticClass:"pswp__scroll-wrap"},[t._m(0),t._v(" "),n("div",{staticClass:"pswp__ui pswp__ui--hidden"},[n("div",{staticClass:"pswp__top-bar"},[n("div",{staticClass:"pswp__counter"}),t._v(" "),t._t("button-after"),t._v(" "),n("button",{staticClass:"pswp__button pswp__button--close",attrs:{title:"Close (Esc)"}}),t._v(" "),n("button",{staticClass:"pswp__button pswp__button--share",attrs:{title:"Share"}}),t._v(" "),n("button",{staticClass:"pswp__button pswp__button--fs",attrs:{title:"Toggle fullscreen"}}),t._v(" "),n("button",{staticClass:"pswp__button pswp__button--zoom",attrs:{title:"Zoom in/out"}}),t._v(" "),t._t("button-before"),t._v(" "),t._m(1)],2),t._v(" "),t._m(2),t._v(" "),n("button",{staticClass:"pswp__button pswp__button--arrow--left",attrs:{title:"Previous (arrow left)"}}),t._v(" "),n("button",{staticClass:"pswp__button pswp__button--arrow--right",attrs:{title:"Next (arrow right)"}}),t._v(" "),t._m(3)])])])},staticRenderFns:[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pswp__container"},[n("div",{staticClass:"pswp__item"}),t._v(" "),n("div",{staticClass:"pswp__item"}),t._v(" "),n("div",{staticClass:"pswp__item"})])},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pswp__preloader"},[n("div",{staticClass:"pswp__preloader__icn"},[n("div",{staticClass:"pswp__preloader__cut"},[n("div",{staticClass:"pswp__preloader__donut"})])])])},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pswp__share-modal pswp__share-modal--hidden pswp__single-tap"},[n("div",{staticClass:"pswp__share-tooltip"})])},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pswp__caption"},[n("div",{staticClass:"pswp__caption__center"})])}]}},1009:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"risk-warning"},[n("item-title",{attrs:{title:"风险预警"}},[n("img",{staticClass:"risk",attrs:{src:t.riskWarnIcon,alt:""},on:{click:function(e){t.alertInfo("risk")}}})]),t._v(" "),n("ul",[n("li",[n("span",{staticClass:"label"},[t._v("交付评估得分")]),t._v(" "),n("div",{staticClass:"flex flexCenter"},[n("span",{staticClass:"value"},[t._v(t._s(this.formatResult(t.compositeScore)))]),t._v(" "),n("span",{staticClass:"toAlertIcon",on:{click:function(e){t.alertInfo("composite")}}},[n("img",{attrs:{src:t.alertIcon,alt:""}})])])]),t._v(" "),n("li",[n("span",{staticClass:"label"},[t._v("满意度累计得分")]),n("span",{staticClass:"value"},[t._v(t._s(t.satisfactionScore))])]),t._v(" "),n("li",[n("span",{staticClass:"label"},[t._v("集中整改率")]),n("span",{staticClass:"value"},[t._v(t._s(t.rectificationRate))])]),t._v(" "),n("li",[n("span",{staticClass:"label"},[t._v("备注")]),n("span",{staticClass:"toAlertIcon"},[n("img",{attrs:{src:t.alertIcon,alt:""},on:{click:function(e){t.alertInfo("remark")}}})])])])],1)},staticRenderFns:[]}},101:function(t,e,n){"use strict";n.d(e,"b",function(){return i}),n.d(e,"f",function(){return o}),n.d(e,"d",function(){return a}),n.d(e,"a",function(){return r}),n.d(e,"c",function(){return s}),n.d(e,"e",function(){return c});var i="navigator",o="system",a="userInteraction",r="dataInteraction",s="account",c="geoLocation"},1010:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"title-bar"},[t.isShowBack?n("span",{staticClass:"back",on:{click:t.back}},[n("img",{attrs:{src:t.backIcon}})]):t._e(),t._v(" "),n("span",{staticClass:"title"},[t._v(t._s(t.title))])])},staticRenderFns:[]}},1011:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"item-title"},[n("span",{staticClass:"indicate"}),t._v(" "),n("span",{staticClass:"title"},[t._v(t._s(t.title))]),t._v(" "),t._t("default")],2)},staticRenderFns:[]}},1012:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"delivery-list"},[n("ul",[t._m(0),t._v(" "),t._l(t.list,function(e,i){return n("li",{key:i,staticClass:"table-body",on:{click:function(n){t.itemClick(e)}}},[n("div",{staticClass:"col1 orgProject padding-left-normal"},[n("span",{staticClass:"orgName"},[t._v(t._s(e.orgName))]),t._v(" "),n("span",{staticClass:"projectName"},[t._v(t._s(e.projectName))])]),t._v(" "),n("div",{staticClass:"col2 datezoom"},[n("span",[t._v(t._s(t.startDate(e.focusDate)))]),t._v(" "),n("span",[t._v("至")]),t._v(" "),n("span",[t._v(t._s(t.endDate(e.focusDate)))])]),t._v(" "),n("span",{staticClass:"col3 dateNum"},[t._v(t._s(t.dayCount(e.dayCount)))]),t._v(" "),n("span",{staticClass:"col4",on:{click:function(n){n.stopPropagation(),t.alertInfo(e.lightRemark)}}},[n("img",{staticClass:"risk",attrs:{src:t.getIcon(e.risk),alt:""}})])])})],2)])},staticRenderFns:[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("li",{staticClass:"table-header"},[n("span",{staticClass:"col1 padding-left-normal"},[t._v("组织/项目")]),t._v(" "),n("span",{staticClass:"col2"},[t._v("交房集中期")]),t._v(" "),n("span",{staticClass:"col3"},[t._v("天数")]),t._v(" "),n("span",{staticClass:"col4"},[t._v("风险")])])}]}},1013:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"container"},[n("title-bar",{attrs:{title:t.projectName}}),t._v(" "),n("loading",{ref:"loading",attrs:{show:this.$store.state.showLoading}}),t._v(" "),t.projectHouseInfo?n("delivery-info",{staticClass:"margin-bottom-normal",attrs:{focusDate:t.focusDate,info:t.projectHouseInfo,type:"project"}}):t._e(),t._v(" "),n("risk-warning",{staticClass:"margin-bottom-normal"})],1)},staticRenderFns:[]}},1014:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"container"},[n("title-bar",{attrs:{title:t.title,isShowBack:this.$vPlusModule,backHandle:t.backHandle}}),t._v(" "),n("loading",{ref:"loading",attrs:{show:this.$store.state.showLoading}}),t._v(" "),n("delivery-info",{staticClass:"marginBottom",attrs:{info:t.groupHouseInfo,type:"group"}}),t._v(" "),n("div",[n("div",{staticClass:"tab-container"},[n("button",{class:["tab",{tabSelected:t.isCheckOut}],on:{click:function(e){t.onTabChange(!0)}}},[t._v("\n 已交房\n ")]),t._v(" "),n("button",{class:["tab",{tabSelected:!t.isCheckOut}],on:{click:function(e){t.onTabChange(!1)}}},[t._v("\n 未交房\n ")])]),t._v(" "),n("div",{staticClass:"delivery-list"},[t.isCheckOut?n("delivery-list",{attrs:{list:t.checkOutList},on:{itemClick:t.itemClickHandler}}):t._e(),t._v(" "),n("transition",{attrs:{name:"list-in"}},[n("keep-alive",{key:"chart"},[t.isCheckOut?t._e():n("delivery-list",{attrs:{list:t.notCheckOutList},on:{itemClick:t.itemClickHandler}})],1)],1)],1)])],1)},staticRenderFns:[]}},1015:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("transition",{attrs:{name:this.$router.isBack?"page-out":"page-in"}},[n("router-view")],1)],1)},staticRenderFns:[]}},1016:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"delivery-info"},[n("div",{directives:[{name:"transfer-dom",rawName:"v-transfer-dom"}]},[n("previewer",{ref:"previewer",attrs:{list:t.previewerList,options:t.options},on:{"on-close":t.closePreview}})],1),t._v(" "),n("item-title",{attrs:{title:"交房情况"}},[n("button",{directives:[{name:"show",rawName:"v-show",value:"group"==t.type,expression:"type=='group'"}],staticClass:"bgColor1",on:{click:t.showPlay}},[t._v("年度交房计划")])]),t._v(" "),n("div",{staticClass:"houseTotalNum"},[n("span",{staticClass:"normal-font"},[t._v("项目住宅总户数")]),t._v(" "),n("br"),t._v(" "),n("span",{staticClass:"totalNum"},[t._v(t._s(t.totalNum))]),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:"project"==t.type,expression:"type=='project'"}]},[n("span",{staticClass:"normal-font"},[t._v("项目集中交付时间为")]),t._v(" "),n("br"),t._v(" "),n("span",{staticClass:"normal-font"},[t._v(t._s(t.focusDate))])])]),t._v(" "),n("div",{staticClass:"chart"},[n("div",{ref:"deliverychart",attrs:{id:"deliverychart"}}),t._v(" "),n("div",{staticClass:"legend"},[n("span",{staticClass:"square color1"}),t._v(" "),n("span",{staticClass:"normal-font col1"},[t._v("符合交房条件(户)")]),t._v(" "),n("span",{staticClass:"normal-font col2"},[t._v(t._s(t.meetHandoverNum))]),t._v(" "),n("span",{staticClass:"normal-font col3"},[t._v(t._s(t.meetHandoverRate))])]),t._v(" "),n("div",{staticClass:"legend"},[n("span",{staticClass:"square color2"}),t._v(" "),n("span",{staticClass:"normal-font col1"},[t._v("累计实际交付(户)")]),t._v(" "),n("span",{staticClass:"normal-font col2"},[t._v(t._s(t.handoverNum))]),t._v(" "),n("span",{staticClass:"normal-font col3"},[t._v(t._s(t.handoverRate))])]),t._v(" "),n("div",{staticClass:"legend"},[n("span",{staticClass:"square color3"}),t._v(" "),n("span",{staticClass:"normal-font col1"},[t._v("累计报修(户)")]),t._v(" "),n("span",{staticClass:"normal-font col2"},[t._v(t._s(t.repairNum))]),t._v(" "),n("span",{staticClass:"normal-font col3"},[t._v(t._s(t.repairRate))])])])],1)},staticRenderFns:[]}},1019:function(t,e,n){function i(t){n(997)}var o=n(40)(n(445),n(1015),i,"data-v-b401447e",null);t.exports=o.exports},102:function(t,e,n){"use strict";var i=n(54),o=n.n(i),a=n(55),r=n.n(a),s=function(){function t(e){o()(this,t),this.nativeApi=e}return r()(t,[{key:"log",value:function(){this.nativeApi.log()}},{key:"debugLog",value:function(){this.nativeApi.debugLog()}},{key:"error",value:function(){this.nativeApi.error()}},{key:"info",value:function(){this.nativeApi.info()}},{key:"warn",value:function(){this.nativeApi.warn()}},{key:"nativeApi",get:function(){return this._nativeApi},set:function(t){this._nativeApi=t}},{key:"config",get:function(){return this.nativeApi.config}},{key:"debug",get:function(){return this.nativeApi.debug}},{key:"platform",get:function(){return this.nativeApi.platform}},{key:"ready",get:function(){return this.nativeApi.ready}}],[{key:"moduleName",get:function(){return""}}]),t}();e.a=s},1020:function(t,e,n){function i(t){n(988)}var o=n(40)(n(446),n(1006),i,"data-v-1b64908e",null);t.exports=o.exports},1021:function(t,e,n){function i(t){n(995)}var o=n(40)(n(448),n(1012),i,"data-v-420aa02a",null);t.exports=o.exports},1022:function(t,e,n){function i(t){n(987)}var o=n(40)(n(449),n(1005),i,"data-v-002341ee",null);t.exports=o.exports},1023:function(t,e,n){function i(t){n(992)}var o=n(40)(n(452),n(1009),i,"data-v-378e7224",null);t.exports=o.exports},1024:function(t,e,n){function i(t){n(993)}var o=n(40)(n(453),n(1010),i,"data-v-3a2b07d4",null);t.exports=o.exports},1025:function(t,e,n){function i(t){n(996)}var o=n(40)(n(454),n(1014),i,"data-v-7885d421",null);t.exports=o.exports},1026:function(t,e,n){var i=n(40)(n(455),n(1013),null,null,null);t.exports=i.exports},1027:function(t,e,n){function i(t){n(991),n(990)}var o=n(40)(n(444),n(1008),i,null,null);t.exports=o.exports},1068:function(t,e,n){n(401),t.exports=n(400)},245:function(t,e,n){function i(t){n(994)}var o=n(40)(n(450),n(1011),i,"data-v-3b9bdf1c",null);t.exports=o.exports},259:function(t,e,n){"use strict";function i(){var t=void 0;return function(e){return e&&(t=e),t}}function o(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"log";if(e){var i=window.console||{},o=i[n]||i.log,a=[],r=t.length;if(r>0&&"number"==typeof t[0])a=t;else for(var s=0;s<r;s++)a.push(t[s]),0===s&&r>1?a.push("=>"):s<r-1&&a.push(",");o.apply(i,a)}}n.d(e,"a",function(){return p}),e.b=i,e.c=o;var a=n(119),r=n.n(a),s=n(103),c=n.n(s),u=n(118),l=n.n(u),p=function(){var t=l()(r.a.mark(function t(e){return r.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new c.a(function(t,n){setTimeout(function(){t()},e)}));case 1:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}()},260:function(t,e,n){"use strict";var i={},o={Host:"http://csm.cndrealty.com/csm/staticfactionReport",TestHost:"http://csmtest.cndrealty.com/csm/staticfactionReport",LogOut:"loginout",GroupSatisfaction:"/getGroupSatisfaction",OverallSatisfaction:"/getOverAllSatisfaction",GroupSatisfactionAvg:"/getGroupSatisfactionAvg",TwoIndicators:"/getTwoIndicators",HouseSituation:"/getHouseSituation",RoomData:"/getRoomData",ProjectInfoToRoom:"/getProjectInfoToRoom",ProjectInfoToRisk:"/getProjectInfoRisk"};for(var a in o)if(o.hasOwnProperty(a)){var r=a.toUpperCase();i[r]=o[a]}e.a=i},376:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZDMUNCNkVGODk2RTExRTg4RDk2OUI0QTlDMTg3RDE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZDMUNCNkYwODk2RTExRTg4RDk2OUI0QTlDMTg3RDE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkMxQ0I2RUQ4OTZFMTFFODhEOTY5QjRBOUMxODdEMTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkMxQ0I2RUU4OTZFMTFFODhEOTY5QjRBOUMxODdEMTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6c1nqjAAACZklEQVR42uyXS2hTQRSG8zCYUqpFqFSJbhR01+oqrUiLuBGpoAsFFcSFUASxUksVKdTXwooLqYvgCwmKe0HEtxEUdypYEdciSkQsilBSe/0G/sAl3JvM9d7aUHLg44TcefycOXNmJu44TqyeLBGrM1sQdoD4lb3G3YYk7Aza3zlwM1pBsmXQOi+XLOGzDCl4DvsCjDVt2c6M+QxSQSL0B9rhIqLaLCa5AKcs2i01Y8JyzWEniESbwR2FxXDGYqIC3Ldod1pjHoEZz9WpVoeIzkNcDzQjsuT6v12h3wLroUWfvsKExF2HbxUb6Dc8Vr9/2mW7YG1ZDEIW4kZhANLwHYzoT2qfgQ2wSe3G4CyUlGO98KFqGbGt1IgxW/surIMXmvCpRy6YNNgMJyELr2AbFG3qUMJSzBJN3gFDsJGBHoFXYprceADdcEyintjWKdvCOA5rYD8ibtgWYTinyFxTTu0IXRiJzlbcbrgcQIzbjJCrsB36oqjUJ2AShmu0Syppkx7fhjTG8VCCiM5KXBfkic6PGmLyyrOsx3fT95bGyoSJUK/8PQsxZllz8NKn3R35rjCCVsu/84lgpZiDSmYvm5BfFUbQIvmfIcUY+yXfOlvXj0sSE1PNeQ1vxKEq/dKzJcicU2+F41riDlfu/b8LGrtuBDr5WeY8NMFHODxnd2rZHuXTex2sxbm8wkYmJipBuajERLVkWd2HJuviXeYqePPz5doQVPP+5b5Tcz4N4la4vveo6JmdNBVyLvNA6NfRUnD9/5kCO+aX1IN6p1daf4RBKFf2sn3R6yTYq6OR1A1BPvZXgAEAJL2qQhCIm84AAAAASUVORK5CYII="},377:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCMjcyRkM3ODk2RTExRThCRjlFREExRjk5MjZGRDAyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCMjcyRkM4ODk2RTExRThCRjlFREExRjk5MjZGRDAyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkIyNzJGQzU4OTZFMTFFOEJGOUVEQTFGOTkyNkZEMDIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkIyNzJGQzY4OTZFMTFFOEJGOUVEQTFGOTkyNkZEMDIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7t6dGQAAACXklEQVR42uyXTUhUURTH5yPJkEqCREPbGNhOazUmfhBtQgxskVCLcBdBlJRkRKCpiwwXUguJihCivRBiaeVA0aoPyIjWIYkRiSKI6fS78Bde8t7Mfb6nDjIHfpxh3v34c+65594bTaVSkWyyWCTLbEfQAT7U1Rn3DOJwxm//o8lkuIJkJVC4LZcs5rEMeZCE8z7G+mvZzoz5BvL8RGgZimEAUfstJumH2xbtisyYcEBz2Aki0VZw12Av9FhMNAGjFu26NWYbrLg1iKarQ0TnJa4eChC55Pi/WKE/afTDbn2ahkmJewy/1mygBRhXv3XtshY4vCoGITtxnXAF8uE3GNE/1L4UauC42vVBLywpxxrgW7oJo7aVGjFmaz+HI/BWE752yQWTBiegCxLwHk7BjE0dilmK2afJK6EdahloDNwS0+TGCzgGHRL1yrZO2RbGe1ABrYh4YtnHhP6OIvNIOXU6cGEkOo24s/DAhxinGSEPoRmawqjUN2EWrmdoF1fSxl2+tWuMG4EEEZ2DuGoYIjp/MogZUp4lXL6bvk81VmmQCDXIj1iIMcs6CO882g3LVwcRdEj+i0cE14q5qGR2s0n58iCC9sjPBRRjbF6+cKOuH/clJqKa8xE+iUtp+uVvlCBzTn0WKccSVzpyb/MuaOy6W1DFz1Xuwi74Dpe37E4tO6d8+qqDdWYrr7ChiQlL0GBYYsJasoTuQ7NZ8S5zFLzt+XLNCcpk/92pOZ+u4soc3+tV9MxOWgw4l3kgXNDRMuH4f4oC2+claErv9M20nwgq8f3qyCV1TpCH/RNgAExur8j6ueB/AAAAAElFTkSuQmCC"},378:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE4RDk5MzZFQjcwMjExRThCQkFEODE0ODc3NDEwQTI2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE4RDk5MzZGQjcwMjExRThCQkFEODE0ODc3NDEwQTI2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MThEOTkzNkNCNzAyMTFFOEJCQUQ4MTQ4Nzc0MTBBMjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MThEOTkzNkRCNzAyMTFFOEJCQUQ4MTQ4Nzc0MTBBMjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz67De46AAACZUlEQVR42uyXT0gUURzHd7YkRSoRMhXrUmA3q9NahBLtIaSgDh3qEN1CCIuSjAjS7JDRIewgURFCdBciavpnkHSrICM6ixRFJEURldPn5XdpXGbcN824LbI/+Ly3O/P+fOe93/u99xzP81KlZOlUidni2C24jklvwiLYE7l+1ktY0Iw1QM2CnLJ0yDRUwGPYH6Gtn5blTJuPoCLKCP2CeriIqBUWnVyAPotydX/aTKUa1YeloKw3TXoMlkO/RUejcMei3Bm1eQSmgwo4c8Yh13FJ26AakT98z+s19NthIyzVm3cwLnHX4EPeAvoK91UvcJUVElRLuo5KY/q/hPQ0HIZK+Ch/mFCNJtgMK+EbDMBZyH3MJnitev8gaLY4s7RvwQZ4ImEPA3zBuME26IUMPIWd8N4mDqUtxdSq8xbohi00dA+CHNP4xl2NRo9EPbCNU7aBcRCa4QAirlvWMZ9+TiNzVT61O35gdJ0O0r1wOYIYvxkhV2AX7EgiUp+EKTheoJzZy9qV51u32jgRT5DrrCZthWFG51MBMcPys0zAe1P3htpqijNC7cpvW4gx0zoEYyHlRpS3xhG0VvnLkBHMF9MpZw6yceVr4ghapvxzTDHGviivma/jxyWJyUXgZ/BcHJqjXuV8CTL71Avh+aa4xed7RTygZb1TsJ5fOc5DFbyBrv93pp6xffKnV7A1dN8q0hE2MTFJCRpKSkxSU5bReWiqNO5lfwPewry5lgUVstlnatc5SrrK975NQc+spO8x+zIXhIPaWkZ9zycJsANhgiZ1Ty+mvUVQQ/RbR9mpy4KC7bcAAwBRV6T3n8unNQAAAABJRU5ErkJggg=="},379:function(t,e,n){function i(t){n(998)}var o=n(40)(n(447),n(1016),i,"data-v-cd3e480a",null);t.exports=o.exports},380:function(t,e,n){function i(t){n(989)}var o=n(40)(n(451),n(1007),i,"data-v-2d091593",null);t.exports=o.exports},400:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(186),o=n.n(i),a=n(178),r=n(1019),s=n.n(r),c=n(436),u=n(443),l=n(1024),p=n.n(l),h=n(1020),d=n.n(h),f=n(142),v=n.n(f),m=n(434),A=n(430),g=n(419);v.a.defaults.baseURL=m.a.TESTHOST,a.a.prototype.$axios=v.a,a.a.prototype.getViewportSize=function(){return{width:window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,height:window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}},a.a.use(g.a,o()({debug:!0,maxRetryTimes:10,retrySleepTime:100})),a.a.prototype.$vPlusModule=!1,a.a.config.productionTip=!1,a.a.component("title-bar",p.a),a.a.component("page",d.a),a.a.prototype.$dialog=A.a;var I=void 0;document.addEventListener("deviceready",function(){I=new a.a({el:"#app",router:c.a,store:u.a,render:function(t){return t(s.a)}})}),e.default=I},419:function(t,e,n){"use strict";var i=n(421);e.a={install:function(t,e){var o=n.i(i.a)(e);t.$nativeApi=o,t.prototype.$nativeApi=o}}},420:function(t,e,n){"use strict";var i=n(119),o=n.n(i),a=n(118),r=n.n(a),s=n(103),c=n.n(s),u=n(75),l=n.n(u),p=n(54),h=n.n(p),d=n(55),f=n.n(d),v=n(78),m=n.n(v),A=n(77),g=n.n(A),I=n(429),y=n(259),k={MIDEA_COMMON:"MideaCommon",MIDEA_USER:"MideaUser",MIDEA_BARCODE:"MideaBarcode",MIDEA_MAP:"MideaMap",MIDEA_ANNTO:"MideaAnnto",MIDEA_SALE:"MideaSale"},w=function(t){function e(t){h()(this,e),t=t||{},t.platform="cordova";var n=m()(this,(e.__proto__||l()(e)).call(this,t));if("undefined"!=typeof window&&void 0!==window.document){var i=n;if(!window.document.getElementById("cordovaJS")){var o=window.document.createElement("script");o.id="cordovaJS",o.src="cordova.js",o.type="text/javascript",o.async=!1,o.onload=function(){console.log("Loading Cordova Plugin..."),window.document.addEventListener("deviceready",function(){i.doReady(i)},!1)},o.onerror=function(){console.error("Cannot Load Cordova Plugin!")},window.document.body.appendChild(o)}}return n}return g()(e,t),f()(e,[{key:"callApi",value:function(t,e,i){var a=this;return a.log(t,e,i),new c.a(function(s,c){r()(o.a.mark(function r(){var u;return o.a.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:u=0;case 1:if(!(u<a.maxRetryTimes)){o.next=13;break}if(a.ready&&window.cordova){o.next=10;break}if(u!==a.maxRetryTimes-1){o.next=7;break}c("Cordova is not ready, no retry"),o.next=10;break;case 7:return o.next=9,n.i(y.a)(a.retrySleepTime*(u+1));case 9:console.error("Cordova is not ready, retry later");case 10:u++,o.next=1;break;case 13:try{window.cordova.exec(function(t){s(t)},function(t){c(t)},t,e,i||[])}catch(t){c(t)}case 14:case"end":return o.stop()}},r,this)}))()})}},{key:"methods",set:function(t){this._methods=t},get:function(){return this._methods}},{key:"moduleNames",get:function(){return k}}]),e}(I.a);e.a=w},421:function(t,e,n){"use strict";var i=n(420),o=n(426),a=n(424),r=n(427),s=n(423),c=n(425),u=n(422);e.a=function(t){return new i.a(t).setModules(o.a,a.a,r.a,s.a,c.a,u.a)}},422:function(t,e,n){"use strict";var i=n(75),o=n.n(i),a=n(54),r=n.n(a),s=n(55),c=n.n(s),u=n(78),l=n.n(u),p=n(77),h=n.n(p),d=n(101),f=n(102),v=function(t){function e(){return r()(this,e),l()(this,(e.__proto__||o()(e)).apply(this,arguments))}return h()(e,t),c()(e,[{key:"getH5Info",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"getH5Info",t)}},{key:"saveH5Info",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"saveH5Info",t)}},{key:"getMessageUnread",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"getMessageUnread",t)}},{key:"getExtra",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"getExtra",t)}},{key:"getDeviceInfo",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"getDeviceInfo",t)}}],[{key:"moduleName",get:function(){return d.a}}]),e}(f.a);e.a=v},423:function(t,e,n){"use strict";var i=n(75),o=n.n(i),a=n(54),r=n.n(a),s=n(55),c=n.n(s),u=n(78),l=n.n(u),p=n(77),h=n.n(p),d=n(101),f=n(102),v=function(t){function e(){return r()(this,e),l()(this,(e.__proto__||o()(e)).apply(this,arguments))}return h()(e,t),c()(e,[{key:"getUser",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"getUser",t)}},{key:"isLogin",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"isLogin",t)}},{key:"logout",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"logout",t)}},{key:"authPassword",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"authPassword",t)}},{key:"getUserPassword",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"getUserPassword",t)}},{key:"toLogin",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"toLogin",t)}}],[{key:"moduleName",get:function(){return d.c}}]),e}(f.a);e.a=v},424:function(t,e,n){"use strict";var i=n(75),o=n.n(i),a=n(54),r=n.n(a),s=n(55),c=n.n(s),u=n(78),l=n.n(u),p=n(77),h=n.n(p),d=n(101),f=n(102),v=function(t){function e(){return r()(this,e),l()(this,(e.__proto__||o()(e)).apply(this,arguments))}return h()(e,t),c()(e,[{key:"startUpdatingLocation",value:function(t){return this.nativeApi.callApi("MideaMap","startUpdatingLocation",t)}},{key:"stopUpdatingLocation",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP,"stopUpdatingLocation",t)}},{key:"getPois",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP,"getPois",t)}},{key:"location",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP,"location",t)}},{key:"selectWidget",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP,"selectWidget",t)}},{key:"navToWithFrom",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_MAP,"navToWithFrom",t)}}],[{key:"moduleName",get:function(){return d.e}}]),e}(f.a);e.a=v},425:function(t,e,n){"use strict";var i=n(75),o=n.n(i),a=n(54),r=n.n(a),s=n(55),c=n.n(s),u=n(78),l=n.n(u),p=n(77),h=n.n(p),d=n(101),f=n(102),v=function(t){function e(){return r()(this,e),l()(this,(e.__proto__||o()(e)).apply(this,arguments))}return h()(e,t),c()(e,[{key:"showSetView",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showSetView",t)}},{key:"showMyView",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showMyView",t)}},{key:"showAppView",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showAppView",t)}},{key:"startApp",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"startApp",t)}},{key:"vcard",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"vcard",t)}},{key:"showWidget",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showWidget",t)}},{key:"selectWidget",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"selectWidget",t)}},{key:"exit",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"exit",t)}},{key:"openSysBrowser",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"openSysBrowser",t)}}],[{key:"moduleName",get:function(){return d.b}}]),e}(f.a);e.a=v},426:function(t,e,n){"use strict";var i=n(75),o=n.n(i),a=n(54),r=n.n(a),s=n(55),c=n.n(s),u=n(78),l=n.n(u),p=n(77),h=n.n(p),d=n(101),f=n(102),v=function(t){function e(){return r()(this,e),l()(this,(e.__proto__||o()(e)).apply(this,arguments))}return h()(e,t),c()(e,[{key:"getContact",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_USER,"getContact",t)}},{key:"language",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"language",t)}},{key:"showNav",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showNav",t)}},{key:"hideNav",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"hideNav",t)}},{key:"showMenu",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showMenu",t)}},{key:"showInput",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showInput",t)}},{key:"hideInput",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"hideInput",t)}},{key:"toggleInput",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"toggleInput",t)}},{key:"showFloat",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"showFloat",t)}},{key:"hideFloat",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"hideFloat",t)}},{key:"statusBarColor",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"statusBarColor",t)}},{key:"statusBarStyle",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"statusContentStyle",t)}},{key:"copy",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"copy",t)}},{key:"paste",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"paste",t)}},{key:"apk",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"apk",t)}},{key:"callPhone",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"callPhone",t)}},{key:"webview",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"webview",t)}},{key:"getBase64s",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"getBase64s",t)}},{key:"scan",value:function(t){return this.nativeApi.callApi("MideaBarcode","scan",t)}},{key:"onEvent",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"onEvent",t)}},{key:"setBounces",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"setBounces",t)}}],[{key:"moduleName",get:function(){return d.f}}]),e}(f.a);e.a=v},427:function(t,e,n){"use strict";var i=n(75),o=n.n(i),a=n(54),r=n.n(a),s=n(55),c=n.n(s),u=n(78),l=n.n(u),p=n(77),h=n.n(p),d=n(101),f=n(102),v=function(t){function e(){return r()(this,e),l()(this,(e.__proto__||o()(e)).apply(this,arguments))}return h()(e,t),c()(e,[{key:"orientation",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"orientation",t)}},{key:"shake",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"shake",t)}},{key:"shakeStop",value:function(t){return this.nativeApi.callApi(this.nativeApi.moduleNames.MIDEA_COMMON,"shakeStop",t)}}],[{key:"moduleName",get:function(){return d.d}}]),e}(f.a);e.a=v},428:function(t,e,n){"use strict";function i(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=new Error;throw n.message=t,e&&(n.name=e),n}e.a=i},429:function(t,e,n){"use strict";var i=n(54),o=n.n(i),a=n(55),r=n.n(a),s=n(259),c=n(428),u=n.i(s.b)(),l=function(){function t(e){if(o()(this,t),u())return u();this.config=e,u(this)}return r()(t,[{key:"doReady",value:function(t){t.ready=!0}},{key:"setModule",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.moduleName||t.name;if(!e){var i=t.toString(),o=i.match(/class\s+(.*?)\s+[\S\s]*\{/i),a=i.match(/function\s+(.*?)\s*\(.*?\)[\S\s]*\{/i);e=o&&o.length>1?o[1]:a&&a.length>1?a[1]:""}return e=e?e.slice(0,1).toLowerCase()+e.slice(1):"",console.log(e),(!e||e.length<=3)&&n.i(c.a)("Cannot found Module Name: "+e+"\n"+t.toString(),"MissedModule"),this.addModuleName(e),this[e]=new t(this),this}},{key:"setModules",value:function(){for(var t=arguments.length,e=t>0?arguments:[],n=0;n<t;n++)this.setModule(e[n]);return this}},{key:"addModuleName",value:function(t){var e=this.moduleList;e.push(t),this.moduleList=e}},{key:"log",value:function(){n.i(s.c)(arguments,this.debug,"log")}},{key:"debugLog",value:function(){n.i(s.c)(arguments,this.debug,"debug")}},{key:"error",value:function(){n.i(s.c)(arguments,this.debug,"error")}},{key:"info",value:function(){n.i(s.c)(arguments,this.debug,"info")}},{key:"warn",value:function(){n.i(s.c)(arguments,this.debug,"warn")}},{key:"config",get:function(){return this._config||{}},set:function(t){this._config=t}},{key:"debug",get:function(){return this.config.debug||!1}},{key:"platform",get:function(){return this.config.platform||"native"}},{key:"maxRetryTimes",get:function(){return"number"==typeof this.config.maxRetryTimes?this.config.maxRetryTimes:5}},{key:"retrySleepTime",get:function(){return"number"==typeof this.config.retrySleepTime?this.config.retrySleepTime:100}},{key:"ready",get:function(){return this.config.ready||!1},set:function(t){this.config.ready=t}},{key:"moduleList",set:function(t){this.config.moduleList=t},get:function(){return this.config.moduleList||[]}}]),t}();e.a=l},430:function(t,e,n){"use strict";var i=function(t,e){var n=t;navigator.notification.alert(n,e,"","确定")},o=function(t,e){var n=t;navigator.notification.confirm(n,function(t){e(1==t?!0:!1)},"",["确定","取消"])};e.a={Alert:i,Confirm:o}},431:function(t,e,n){"use strict";var i=n(185);n.n(i)},432:function(t,e,n){"use strict";function i(){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";this.encode=function(n){var i,o,a,r,s,c,u,l="",p=0;for(n=e(n);p<n.length;)i=n.charCodeAt(p++),o=n.charCodeAt(p++),a=n.charCodeAt(p++),r=i>>2,s=(3&i)<<4|o>>4,c=(15&o)<<2|a>>6,u=63&a,isNaN(o)?c=u=64:isNaN(a)&&(u=64),l=l+t.charAt(r)+t.charAt(s)+t.charAt(c)+t.charAt(u);return l},this.decode=function(e){var i,o,a,r,s,c,u,l="",p=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");p<e.length;)r=t.indexOf(e.charAt(p++)),s=t.indexOf(e.charAt(p++)),c=t.indexOf(e.charAt(p++)),u=t.indexOf(e.charAt(p++)),i=r<<2|s>>4,o=(15&s)<<4|c>>2,a=(3&c)<<6|u,l+=String.fromCharCode(i),64!=c&&(l+=String.fromCharCode(o)),64!=u&&(l+=String.fromCharCode(a));return l=n(l)};var e=function(t){t=t.replace(/\r\n/g,"\n");for(var e="",n=0;n<t.length;n++){var i=t.charCodeAt(n);i<128?e+=String.fromCharCode(i):i>127&&i<2048?(e+=String.fromCharCode(i>>6|192),e+=String.fromCharCode(63&i|128)):(e+=String.fromCharCode(i>>12|224),e+=String.fromCharCode(i>>6&63|128),e+=String.fromCharCode(63&i|128))}return e},n=function(t){for(var e="",n=0,i=0,o=0;n<t.length;)if((i=t.charCodeAt(n))<128)e+=String.fromCharCode(i),n++;else if(i>191&&i<224)o=t.charCodeAt(n+1),e+=String.fromCharCode((31&i)<<6|63&o),n+=2;else{o=t.charCodeAt(n+1);var a=t.charCodeAt(n+2);e+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&a),n+=3}return e}}var o=new i;e.a=o},433:function(t,e,n){"use strict";function i(t){return 200===t.status?t.data:{code:-404,message:t.statusText,data:t.statusText}}function o(t){return new r.a(function(e,n){t.code!=A?n(t.message):e(t.data)})}n.d(e,"a",function(){return d}),n.d(e,"b",function(){return f}),n.d(e,"c",function(){return v}),n.d(e,"d",function(){return m});var a=n(103),r=n.n(a),s=n(119),c=n.n(s),u=n(118),l=n.n(u),p=n(260),h=n(437),d=(function(){var t=l()(c.a.mark(function t(e){var a,r,s;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.orgId,r=e.orgMonth,t.next=3,n.i(h.a)(p.a.GROUPSATISFACTION,{orgId:a,orgMonth:r});case 3:return s=t.sent,t.abrupt("return",o(i(s)));case 5:case"end":return t.stop()}},t,this)}))}(),function(){var t=l()(c.a.mark(function t(e){var a,r,s,u;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.orgId,r=e.quotaCode,s=e.orgMonth,t.next=3,n.i(h.a)(p.a.OVERALLSATISFACTION,{orgId:a,quotaCode:r,orgMonth:s});case 3:return u=t.sent,t.abrupt("return",o(i(u)));case 5:case"end":return t.stop()}},t,this)}))}(),function(){var t=l()(c.a.mark(function t(e){var a,r,s;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.orgId,r=e.orgMonth,t.next=3,n.i(h.a)(p.a.TWOINDICATORS,{orgId:a,orgMonth:r});case 3:return s=t.sent,t.abrupt("return",o(i(s)));case 5:case"end":return t.stop()}},t,this)}))}(),function(){var t=l()(c.a.mark(function t(e){var a,r,s;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.orgId,r=e.orgMonth,t.next=3,n.i(h.a)(p.a.GROUPSATISFACTIONAVG,{orgId:a,orgMonth:r});case 3:return s=t.sent,t.abrupt("return",o(i(s)));case 5:case"end":return t.stop()}},t,this)}))}(),function(){var t=l()(c.a.mark(function t(e){var a,r,s,u;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.projectId,r=e.batchNum,s=e.userId,t.next=3,n.i(h.a)(p.a.HOUSESITUATION,{projectId:a,batchNum:r,userId:s});case 3:return u=t.sent,t.abrupt("return",o(i(u)));case 5:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}()),f=function(){var t=l()(c.a.mark(function t(e){var a,r;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.type,t.next=3,n.i(h.a)(p.a.ROOMDATA,{type:a});case 3:return r=t.sent,t.abrupt("return",o(i(r)));case 5:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),v=function(){var t=l()(c.a.mark(function t(e){var a,r,s,u;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.projectId,r=e.batchNum,s=e.type,t.next=3,n.i(h.a)(p.a.PROJECTINFOTOROOM,{projectId:a,batchNum:r,type:s});case 3:return u=t.sent,t.abrupt("return",o(i(u)));case 5:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),m=function(){var t=l()(c.a.mark(function t(e){var a,r,s,u;return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.projectId,r=e.batchNum,s=e.orgId,t.next=3,n.i(h.a)(p.a.PROJECTINFOTORISK,{projectId:a,batchNum:r,orgId:s});case 3:return u=t.sent,t.abrupt("return",o(i(u)));case 5:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),A=0},434:function(t,e,n){"use strict";var i=(n(431),n(260)),o=(n(435),n(715));n.n(o);n.d(e,"a",function(){return i.a})},435:function(t,e,n){"use strict";var i=n(76),o=(n.n(i),n(142));n.n(o)},436:function(t,e,n){"use strict";var i=n(178),o=n(1017),a=n(1025),r=n.n(a),s=n(1026),c=n.n(s);i.a.use(o.a);var u=new o.a({routes:[{path:"/",name:"HouseDelivery",component:r.a},{path:"/projectdelivery",name:"ProjectDelivery",component:c.a}]});u.myHistory=[],o.a.prototype.isBack=!1,u.afterEach(function(t,e){-1==u.myHistory.indexOf(t.fullPath)?(u.isBack=!1,u.myHistory.push(t.fullPath)):u.myHistory[u.myHistory.length-1]==e.fullPath&&(u.isBack=!0,u.myHistory.pop())}),e.a=u},437:function(t,e,n){"use strict";function i(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new r.a(function(n,i){l()({method:"post",url:t,data:e,dataType:"json",headers:{"Content-Type":"application/json; charset=UTF-8"},cancelToken:new d(function(t){p=t})}).then(function(t){n(t)}).catch(function(t){i(o(t))})})}function o(t){var e=t;if("ECONNABORTED"==t.code)return e="请求超时!请检查网络连接是否正常!";if("操作取消"!=t.message&&t.response)switch(t.response.status){case 404:e="404错误!请检查url是否拼写正确!\n"+t.request.responseURL;break;case 400:e="请求错误(400)";break;case 401:e="未授权,请重新登录(401)";break;case 403:e="拒绝访问(403)";break;case 408:e="请求超时(408)";break;case 500:e="服务器错误(500)";break;case 501:e="服务未实现(501)";break;case 502:e="网络错误(502)";break;case 503:e="服务不可用(503)";break;case 504:e="网络超时(504)";break;case 505:e="HTTP版本不受支持(505)";break;default:e=t}return e}e.a=i;var a=n(103),r=n.n(a),s=n(185),c=n.n(s),u=n(142),l=n.n(u);l.a.defaults.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Basic d3Vxa0BjbmRyZWFsdHkuY29tOjEyMzQ1Ng=="},l.a.defaults.timeout=6e4;var p=void 0,h={},d=l.a.CancelToken;l.a.interceptors.request.use(function(t){var e=c()(t.data),n=t.url+"?"+e;return h[n]?(h[n]("操作取消"),h[n]=p):h[n]=p,t},function(t){return r.a.reject(t)}),l.a.interceptors.response.use(function(t){return t},function(t){return r.a.reject(t)})},438:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n.d(e,"getVUserInfo",function(){return l}),n.d(e,"getUserInfo",function(){return p}),n.d(e,"getHttpHost",function(){return h}),n.d(e,"getHttpHeadValue",function(){return d}),n.d(e,"clearVuexData",function(){return f});var i=n(185),o=n.n(i),a=n(103),r=n.n(a),s=n(432),c=n(142),u=n.n(c),l=function(t,e){var n=t.commit;return new r.a(function(t,i){var a=e.data,r=a.uname,c=a.pwd,l=a.host,p={username:r,password:s.a.encode(c)};u()({method:"post",url:l+"app/loginNew",data:p}).then(function(e){if(console.log("comein:"+o()(e.data)),200===e.data.status){var a=e.data.record,u="Basic "+s.a.encode(r+":"+c);n("getInfos",{data:{userInfo:a,host:l,header:u}}),t()}else i(e.data.exception)}).catch(function(t){console.log("fail:"+o()(t)),i(t)})})},p=function(t,e){var n=t.commit;return new r.a(function(t,i){cordova.exec(function(i){var o=JSON.parse(i);n("getInfo",{data:o,type:e.type}),t()},function(e){navigator.notification.alert(e),t()},"YFPlugin",e.type,[])})},h=function(t,e){var n=t.commit;return new r.a(function(t,i){cordova.exec(function(i){n("getInfo",{data:i,type:e.type}),t()},function(e){navigator.notification.alert(e),t()},"YFPlugin",e.type,[])})},d=function(t,e){var n=t.commit;return new r.a(function(t,i){cordova.exec(function(i){n("getInfo",{data:i,type:e.type}),t()},function(e){navigator.notification.alert(e),t()},"YFPlugin",e.type,[])})},f=function(t,e){var n=t.commit,i=t.state;n("reSetStateData",{userInfo:i.userInfo,HttpHeadValue:i.HttpHeadValue,HttpHost:i.HttpHost})}},439:function(t,e,n){"use strict";var i=n(76),o=n.n(i),a=n(119),r=n.n(a),s=n(118),c=n.n(s),u=n(433),l={group:{isCheckOut:!0},project:{}},p={groupHouseInfo:function(t){return t.group.houseInfo},projectHouseInfo:function(t){return t.project.houseInfo},checkOutList:function(t){return t.group.checkOutList},notCheckOutList:function(t){return t.group.notCheckOutList},isCheckOut:function(t){return t.group.isCheckOut},projectInfo:function(t){return t.project.info},projectRoomInfo:function(t){return t.project.roomInfo},projectRiskInfo:function(t){return t.project.riskInfo},showPreview:function(t){return t.group.showPreview}},h={getHouseSituation:function(t,e){var i=this,o=t.commit;return c()(r.a.mark(function t(){var a,s;return r.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.projectId,t.next=3,n.i(u.a)(e);case 3:s=t.sent,a?o("setProjectHouseInfo",s):o("setGroupHouseInfo",s);case 5:case"end":return t.stop()}},t,i)}))()},getRoomData:function(t,e){var i=this,o=t.commit;return c()(r.a.mark(function t(){var a,s;return r.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.type,t.next=3,n.i(u.b)(e);case 3:s=t.sent,1==a?o("setCheckOutList",s):2==a&&o("setNotCheckOutList",s);case 5:case"end":return t.stop()}},t,i)}))()},getProjectInfoToRoom:function(t,e){var i=this,o=t.commit;return c()(r.a.mark(function t(){var a;return r.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.i(u.c)(e);case 2:a=t.sent,a instanceof Array&&1==a.length&&o("setProjectRoomInfo",a[0]);case 4:case"end":return t.stop()}},t,i)}))()},getProjectInfoToRisk:function(t,e){var i=this,o=t.commit;return c()(r.a.mark(function t(){var a;return r.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.i(u.d)(e);case 2:a=t.sent,a instanceof Array&&a.length>0&&o("setProjectRiskInfo",a[0]);case 4:case"end":return t.stop()}},t,i)}))()}},d={showPreview:function(t,e){t.group=o()({},t.group,{showPreview:e})},setGroupHouseInfo:function(t,e){t.group=o()({},t.group,{houseInfo:e})},setProjectHouseInfo:function(t,e){t.project=o()({},t.project,{houseInfo:e})},setCheckOutList:function(t,e){t.group=o()({},t.group,{checkOutList:e})},setNotCheckOutList:function(t,e){t.group=o()({},t.group,{notCheckOutList:e})},isCheckOut:function(t,e){t.group.isCheckOut=e},setProjectInfo:function(t,e){t.project=o()({},t.project,{info:e})},setProjectRoomInfo:function(t,e){t.project=o()({},t.project,{roomInfo:e})},setProjectRiskInfo:function(t,e){t.project=o()({},t.project,{riskInfo:e})},resetProject:function(t){t.project={}},resetGroup:function(t){t.group={isCheckOut:!0}}};e.a={namespaced:!0,state:l,getters:p,actions:h,mutations:d}},440:function(t,e,n){"use strict";var i=n(119),o=n.n(i),a=n(118),r=n.n(a),s=n(178),c={},u={userId:function(t){return t.userId}},l={getUserInfo:function(t){var e=this,n=t.commit;return r()(o.a.mark(function t(){return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:s.a.prototype.$nativeApi.account.getUser().then(function(t){n("setUserInfo",t)}).catch(function(t){console.log(t)});case 1:case"end":return t.stop()}},t,e)}))()}},p={setUserInfo:function(t,e){t.userId=e.uid}};e.a={namespaced:!0,state:c,getters:u,actions:l,mutations:p}},441:function(t,e,n){"use strict";var i=n(186),o=n.n(i);e.a={showLoading:function(t,e){t.showLoading=e},getInfo:function(t,e){switch(e.type){case"getUserInfo":t.userInfo=e.data;break;case"getHttpHeadValue":t.HttpHeadValue=e.data;break;case"getHttpHost":t.HttpHost=e.data}},getInfos:function(t,e){var n=e.data,i=n.userInfo,o=n.host,a=n.header;t.userInfo=i,t.HttpHost=o,t.HttpHeadValue=a},reSetStateData:function(t,e){o()(t,e)}}},442:function(t,e,n){"use strict";e.a={userInfo:null,HttpHeadValue:null,HttpHost:null,showLoading:!1}},443:function(t,e,n){"use strict";var i=n(178),o=n(115),a=n(438),r=n(441),s=n(442),c=n(439),u=n(440);i.a.use(o.a);i.a.config.debug=!1,e.a=new o.a.Store({modules:{deliveryHouse:c.a,user:u.a},state:s.a,mutations:r.a,actions:a,strict:!1})},444:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(1029),o=n.n(i),a=n(1028),r=n.n(a),s=n(374),c=n.n(s);e.default={name:"previewer",computed:{imgs:function(){return this.list.map(function(t){return t.msrc||(t.msrc=t.src),void 0===t.w&&(t.w=0,t.h=0),t})}},watch:{imgs:function(t,e){if(this.photoswipe)if(t.length&&t.length-e.length==-1){var n=this.photoswipe.getCurrentIndex();this.photoswipe.invalidateCurrItems(),this.photoswipe.items.splice(n,1);var i=n;i>this.photoswipe.items.length-1&&(i=0),this.photoswipe.goTo(i),this.photoswipe.updateSize(!0),this.photoswipe.ui.update()}else t.length||this.close()}},methods:{init:function(t){var e=this,n=this.imgs[t];if(!n.w||!n.h||n.w<5||n.h<5){var i=new Image;i.onload=function(){n.w=this.width,n.h=this.height,e.doInit(t)},i.src=n.src}else this.doInit(t)},doInit:function(t){var e=this,n=this,i=c()({history:!1,shareEl:!1,tapToClose:!0,index:t},this.options);this.photoswipe=new o.a(this.$el,r.a,this.imgs,i),this.photoswipe.listen("gettingData",function(t,e){if(!e.w||!e.h||e.w<1||e.h<1){var i=new Image;i.onload=function(){e.w=this.width,e.h=this.height,n.photoswipe.updateSize(!0)},i.src=e.src}}),this.photoswipe.init(),this.photoswipe.listen("close",function(){e.$emit("on-close")}),this.photoswipe.listen("afterChange",function(t,n){e.$emit("on-index-change",{currentIndex:e.photoswipe.getCurrentIndex()})})},show:function(t){this.init(t)},getCurrentIndex:function(){return this.photoswipe.getCurrentIndex()},close:function(){this.photoswipe.close()},goTo:function(t){this.photoswipe.goTo(t)},prev:function(){this.photoswipe.prev()},next:function(){this.photoswipe.next()}},props:{list:{type:Array,required:!0},index:{type:Number,default:0},options:{type:Object,default:function(){return{}}}}}},445:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"app",created:function(){console.log("当前环境:","production")}}},446:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(380),o=n.n(i);e.default={name:"BasePage",props:["title"],components:{loading:o.a}}},447:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(76),o=n.n(i),a=n(245),r=n.n(a),s=n(723),c=(n.n(s),n(1027)),u=n.n(c),l=n(456),p=n(115);e.default={name:"DeliveryInfo",directives:{TransferDom:l.a},props:{info:{type:Object,default:function(){return{}}},type:String,focusDate:String},data:function(){return{options:{maxSpreadZoom:5,fullscreenEl:!1,pinchToClose:!1,closeOnScroll:!1,closeOnVerticalDrag:!1,tapToClose:!1,tapToToggleControls:!1,escKey:!1,history:!1}}},computed:o()({},n.i(p.b)("deliveryHouse",["showPreview"]),{previewerList:function(){return[{src:this.info.imgUrl}]},totalNum:function(){return isNaN(this.info.totalNum)?"":Number(this.info.totalNum)},meetHandoverNum:function(){return isNaN(this.info.meetHandoverNum)?"":Number(this.info.meetHandoverNum)},meetHandoverRate:function(){return this.info.meetHandoverRate},handoverNum:function(){return isNaN(this.info.handoverNum)?"":Number(this.info.handoverNum)},handoverRate:function(){return this.info.handoverRate},repairNum:function(){return isNaN(this.info.repairNum)?"":Number(this.info.repairNum)},repairRate:function(){return this.info.repairRate},chartOpt:function(){return{backgroundColor:"white",angleAxis:{max:this.totalNum,axisLine:{lineStyle:{color:"#708ca6",width:1}},axisTick:{length:4,lineStyle:{width:.5}},splitLine:{lineStyle:{width:.5,opacity:.5}}},radiusAxis:{axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},type:"category",data:["累计报修","累计实际交付","符合交房条件"],z:10},polar:{radius:"80%"},series:[{type:"bar",data:[this.repairNum,0,0],silent:!0,coordinateSystem:"polar",stack:"a",name:"累计报修(户)",color:["#FD694B"]},{type:"bar",data:[0,this.handoverNum,0],silent:!0,coordinateSystem:"polar",stack:"a",name:"累计实际交付(户)",color:["#7179CA"]},{type:"bar",data:[0,0,this.meetHandoverNum],silent:!0,coordinateSystem:"polar",stack:"a",name:"符合交房条件(户)",color:["#4ECEFF"]}],color:["#FD694B","#7179CA","#4ECEFF"]}}}),components:{"item-title":r.a,previewer:u.a},watch:{info:function(t,e){this.updateChartData()},showPreview:function(t,e){t?this.$refs.previewer.show(0):this.$refs.previewer&&this.$refs.previewer.close()}},mounted:function(){this.$echart=s.init(this.$refs.deliverychart),this.$echart.setOption(this.chartOpt)},methods:{updateChartData:function(){this.$echart.setOption({angleAxis:{max:this.totalNum},series:[{type:"bar",data:[this.repairNum,0,0]},{type:"bar",data:[0,this.handoverNum,0]},{type:"bar",data:[0,0,this.meetHandoverNum]}]})},showPlay:function(){this.$store.commit("deliveryHouse/showPreview",!0)},closePreview:function(){this.$store.commit("deliveryHouse/showPreview",!1)}}}},448:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(376),o=n(377),a=n(378);e.default={name:"DeliveryList",props:{list:{type:Array}},data:function(){return{riskWarn1Icon:i,riskWarn2Icon:o,riskWarn3Icon:a}},methods:{getIcon:function(t){switch(t){case"1":return this.riskWarn2Icon;case"2":return this.riskWarn3Icon;default:return this.riskWarn1Icon}},alertInfo:function(t){this.$dialog.Alert(t||"暂无",function(){})},itemClick:function(t){this.$emit("itemClick",t)},dayCount:function(t){return isNaN(t)?"":Number(t)},startDate:function(t){var e=t.split("-");return e.length>=3?e[0]+"."+e[1]+"."+e[2]:"-"},endDate:function(t){var e=t.split("-");return e.length>=6?e[3]+"."+e[4]+"."+e[5]:"-"}}}},449:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(76),o=n.n(i),a=n(115),r=n(245),s=n.n(r);e.default={name:"DeliveryRoomNum",components:{"item-title":s.a},data:function(){return{}},computed:o()({},n.i(a.b)("deliveryHouse",["projectRoomInfo"]),{countNum:function(){return this.projectRoomInfo?this.projectRoomInfo.countNum:""},list:function(){return this.projectRoomInfo?this.projectRoomInfo.list:[]}})}},450:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"ItemTitle",props:["title"]}},451:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"loading",model:{prop:"show",event:"change"},props:{show:{type:Boolean,default:!0},text:{type:String,default:"加载中..."},position:{type:String,default:"fixed"},transition:{type:String,default:"vux-mask"}},watch:{show:function(t){this.$emit("update:show",t)}}}},452:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(76),o=n.n(i),a=n(115),r=n(245),s=n.n(r),c=n(376),u=n(377),l=n(378),p=n(1003);e.default={name:"RiskWarning",components:{"item-title":s.a},data:function(){return{alertIcon:p}},computed:o()({},n.i(a.b)("deliveryHouse",["projectRiskInfo"]),{riskWarnIcon:function(){return"1"==this.risk?u:"2"==this.risk?l:c},compositeScore:function(){return this.projectRiskInfo?this.projectRiskInfo.compositeScore:""},antiSeepScore:function(){return this.projectRiskInfo?this.projectRiskInfo.antiseepScore:""},functionScore:function(){return this.projectRiskInfo?this.projectRiskInfo.functionScore:""},scheduleScore:function(){return this.projectRiskInfo?this.projectRiskInfo.scheduleScore:""},lightRemark:function(){return this.projectRiskInfo?this.projectRiskInfo.lightRemark:""},rectificationRate:function(){return this.projectRiskInfo?this.projectRiskInfo.rectificationRate:"暂无"},risk:function(){return this.projectRiskInfo?this.projectRiskInfo.risk:""},projectRemark:function(){return this.projectRiskInfo?this.projectRiskInfo.projectRemark:""},satisfactionScore:function(){return this.projectRiskInfo?this.projectRiskInfo.satisfactionScore:"暂无"}}),methods:{alertInfo:function(t){"composite"==t?this.$dialog.Alert(this.formatResult(this.antiSeepScore+this.functionScore+this.scheduleScore),function(){}):"risk"==t?this.$dialog.Alert(this.formatResult(this.lightRemark),function(){}):"remark"==t&&this.$dialog.Alert(this.formatResult(this.projectRemark),function(){})},formatResult:function(t){return isNaN(t)?t:0==Number(t)?"暂无":Number(t)}}}},453:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(1004),o=n.n(i);e.default={name:"TitleBar",props:{title:String,isShowBack:{type:Boolean,default:!0},backIcon:{type:String,default:o.a},backHandle:{type:Function}},methods:{back:function(){this.backHandle?this.backHandle():this.$router.back()}}}},454:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(76),o=n.n(i),a=n(986),r=(n.n(a),n(985)),s=(n.n(r),n(115)),c=n(379),u=n.n(c),l=n(1021),p=n.n(l),h=n(380),d=n.n(h);e.default={name:"HouseDelivery",components:{"delivery-info":u.a,"delivery-list":p.a,loading:d.a},created:function(){console.log("is v+ module: "+this.$vPlusModule),this.$vPlusModule&&this.getUserInfo(),this.$router.isBack?this.$store.commit("deliveryHouse/resetProject"):this.fetchData()},data:function(){return{title:"集团交房",chartOpt:{angleAxis:{},radiusAxis:{type:"category",data:["累计保修","累计实际交付","符合交房条件"],z:10},polar:{},series:[{type:"bar",data:[57,0,0],coordinateSystem:"polar",stack:"a",name:"累计保修(户)"},{type:"bar",data:[0,143,0],coordinateSystem:"polar",stack:"a",name:"累计实际交付(户)"},{type:"bar",data:[0,0,275],coordinateSystem:"polar",stack:"a",name:"符合交房条件(户)"}],color:["#D53A35","#334B5C","#6AB0B8"]}}},computed:o()({},n.i(s.b)("deliveryHouse",["groupHouseInfo","isCheckOut","checkOutList","notCheckOutList","showPreview"]),n.i(s.b)("user",["userId"])),methods:o()({},n.i(s.c)("deliveryHouse",["getHouseSituation","getRoomData"]),n.i(s.c)("user",["getUserInfo"]),n.i(s.d)(["showLoading"]),{fetchData:function(){var t=this;this.showLoading(!0),this.$axios.all([this.getHouseSituation({projectId:"",batchNum:"",userId:""}),this.getRoomData({type:1}),this.getRoomData({type:2})]).then(this.$axios.spread(function(){t.showLoading(!1)})).catch(function(e){t.showLoading(!1),t.$dialog.Alert(e,function(){})})},onTabChange:function(t){this.$store.commit("deliveryHouse/isCheckOut",t)},itemClickHandler:function(t){var e=this;this.showLoading(!0),this.getHouseSituation({projectId:t.projectId,batchNum:t.batchNum,userId:this.userId}).then(function(n){e.showLoading(!1),e.$store.commit("deliveryHouse/setProjectInfo",t),e.$router.push({name:"ProjectDelivery",params:t})}).catch(function(t){e.showLoading(!1),e.$dialog.Alert(t,function(){})})},backHandle:function(){this.$vPlusModule?this.$nativeApi.navigator.exit():this.$router.back()}}),beforeRouteLeave:function(t,e,n){this.showPreview?(this.$store.commit("deliveryHouse/showPreview",!1),n(!1)):n()}}},455:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(76),o=n.n(i),a=n(115),r=n(379),s=n.n(r),c=n(1023),u=n.n(c),l=n(1022),p=n.n(l);e.default={name:"ProjectDelivery",components:{"delivery-info":s.a,"risk-warning":u.a,"delivery-room-num":p.a},created:function(){this.fetchData()},computed:o()({},n.i(a.b)("deliveryHouse",["projectInfo","isCheckOut","projectHouseInfo"]),{projectName:function(){return this.projectInfo?this.projectInfo.projectName:""},projectId:function(){return this.projectInfo?this.projectInfo.projectId:""},batchNum:function(){return this.projectInfo?this.projectInfo.batchNum:""},orgId:function(){return this.projectInfo?this.projectInfo.orgId:""},type:function(){return this.isCheckOut?1:2},focusDate:function(){if(this.$route.params.focusDate){var t=this.$route.params.focusDate.split("-");return t.length>=6?t[0]+"年"+t[1]+"月"+t[2]+"日-"+t[3]+"年"+t[4]+"月"+t[5]+"日":t.length>=3?t[0]+"年"+t[1]+"月"+t[2]+"日-":this.$route.params.focusDate}}}),methods:o()({},n.i(a.c)("deliveryHouse",["getHouseSituation","getProjectInfoToRoom","getProjectInfoToRisk"]),n.i(a.d)(["showLoading"]),{fetchData:function(){var t=this;this.showLoading(!0),this.$axios.all([this.getProjectInfoToRisk({projectId:this.projectId,batchNum:this.batchNum,orgId:this.orgId})]).then(this.$axios.spread(function(){t.showLoading(!1)})).catch(function(e){t.showLoading(!1),t.$dialog.Alert(e,function(){})})}})}},984:function(t,e){},985:function(t,e){},986:function(t,e){},987:function(t,e){},988:function(t,e){},989:function(t,e){},990:function(t,e){},991:function(t,e){},992:function(t,e){},993:function(t,e){},994:function(t,e){},995:function(t,e){},996:function(t,e){},997:function(t,e){},998:function(t,e){}},[1068]);
//# sourceMappingURL=app.d148d6334fbdee418171.js.map
\ No newline at end of file
This diff could not be displayed because it is too large.
!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,i){for(var u,a,f,s=0,l=[];s<t.length;s++)a=t[s],o[a]&&l.push(o[a][0]),o[a]=0;for(u in c)Object.prototype.hasOwnProperty.call(c,u)&&(e[u]=c[u]);for(r&&r(t,c,i);l.length;)l.shift()();if(i)for(s=0;s<i.length;s++)f=n(n.s=i[s]);return f};var t={},o={2:0};n.e=function(e){function r(){u.onerror=u.onload=null,clearTimeout(a);var n=o[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),o[e]=void 0)}var t=o[e];if(0===t)return new Promise(function(e){e()});if(t)return t[2];var c=new Promise(function(n,r){t=o[e]=[n,r]});t[2]=c;var i=document.getElementsByTagName("head")[0],u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,u.timeout=12e4,n.nc&&u.setAttribute("nonce",n.nc),u.src=n.p+"static/js/"+e+"."+{0:"3bcb7ecbb612196a6389",1:"d148d6334fbdee418171"}[e]+".js";var a=setTimeout(r,12e4);return u.onerror=u.onload=r,i.appendChild(u),c},n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,"a",r),r},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.b8902de8e3a6b0284c95.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///static/js/manifest.b8902de8e3a6b0284c95.js","webpack:///webpack/bootstrap 646ab17ce2cec8d269f2"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","2","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","0","1","setTimeout","appendChild","m","c","value","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"CAAS,SAAUA,GCuCnB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QA1DA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,GAAAX,GAAAY,EAAAC,EAAAT,EAAA,EAAAU,KACQV,EAAAK,EAAAM,OAAoBX,IAC5BQ,EAAAH,EAAAL,GACAY,EAAAJ,IACAE,EAAAG,KAAAD,EAAAJ,GAAA,IAEAI,EAAAJ,GAAA,CAEA,KAAAZ,IAAAU,GACAQ,OAAAC,UAAAC,eAAAd,KAAAI,EAAAV,KACAF,EAAAE,GAAAU,EAAAV,GAIA,KADAO,KAAAE,EAAAC,EAAAC,GACAG,EAAAC,QACAD,EAAAO,SAEA,IAAAV,EACA,IAAAP,EAAA,EAAYA,EAAAO,EAAAI,OAA2BX,IACvCS,EAAAd,IAAAuB,EAAAX,EAAAP,GAGA,OAAAS,GAIA,IAAAZ,MAGAe,GACAO,EAAA,EA6BAxB,GAAAyB,EAAA,SAAAZ,GA+BA,QAAAa,KAEAC,EAAAC,QAAAD,EAAAE,OAAA,KACAC,aAAAC,EACA,IAAAC,GAAAf,EAAAJ,EACA,KAAAmB,IACAA,GACAA,EAAA,MAAAC,OAAA,iBAAApB,EAAA,aAEAI,EAAAJ,OAAAqB,IAvCA,GAAAC,GAAAlB,EAAAJ,EACA,QAAAsB,EACA,UAAAC,SAAA,SAAAC,GAA0CA,KAI1C,IAAAF,EACA,MAAAA,GAAA,EAIA,IAAAG,GAAA,GAAAF,SAAA,SAAAC,EAAAE,GACAJ,EAAAlB,EAAAJ,IAAAwB,EAAAE,IAEAJ,GAAA,GAAAG,CAGA,IAAAE,GAAAC,SAAAC,qBAAA,WACAf,EAAAc,SAAAE,cAAA,SACAhB,GAAAiB,KAAA,kBACAjB,EAAAkB,QAAA,QACAlB,EAAAmB,OAAA,EACAnB,EAAAI,QAAA,KAEA/B,EAAA+C,IACApB,EAAAqB,aAAA,QAAAhD,EAAA+C,IAEApB,EAAAsB,IAAAjD,EAAAkD,EAAA,aAAArC,EAAA,KAAwEsC,EAAA,uBAAAC,EAAA,wBAAsDvC,GAAA,KAC9H,IAAAkB,GAAAsB,WAAA3B,EAAA,KAgBA,OAfAC,GAAAC,QAAAD,EAAAE,OAAAH,EAaAc,EAAAc,YAAA3B,GAEAW,GAIAtC,EAAAuD,EAAAxD,EAGAC,EAAAwD,EAAAtD,EAGAF,EAAAK,EAAA,SAAAoD,GAA2C,MAAAA,IAG3CzD,EAAA0D,EAAA,SAAAvD,EAAAwD,EAAAC,GACA5D,EAAA6D,EAAA1D,EAAAwD,IACAxC,OAAA2C,eAAA3D,EAAAwD,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMA5D,EAAAkE,EAAA,SAAA9D,GACA,GAAAwD,GAAAxD,KAAA+D,WACA,WAA2B,MAAA/D,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAA0D,EAAAE,EAAA,IAAAA,GACAA,GAIA5D,EAAA6D,EAAA,SAAAO,EAAAC,GAAsD,MAAAlD,QAAAC,UAAAC,eAAAd,KAAA6D,EAAAC,IAGtDrE,EAAAkD,EAAA,GAGAlD,EAAAsE,GAAA,SAAAC,GAA8D,KAApBC,SAAAC,MAAAF,GAAoBA","file":"static/js/manifest.b8902de8e3a6b0284c95.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t2: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"3bcb7ecbb612196a6389\",\"1\":\"d148d6334fbdee418171\"}[chunkId] + \".js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/ })\n/************************************************************************/\n/******/ ([]);\n\n\n// WEBPACK FOOTER //\n// static/js/manifest.b8902de8e3a6b0284c95.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"3bcb7ecbb612196a6389\",\"1\":\"d148d6334fbdee418171\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 646ab17ce2cec8d269f2"],"sourceRoot":""}
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment