Browse Source

初始化

zhengkaixin 2 năm trước cách đây
mục cha
commit
47a313563b
100 tập tin đã thay đổi với 34 bổ sung4783 xóa
  1. 1 1
      .gitignore
  2. 0 9
      config/dev.js
  3. 0 336
      config/pages.js
  4. 0 9
      config/prod.js
  5. 0 9
      config/test.js
  6. BIN
      index/home/favicon.ico
  7. 0 180
      index/home/index.html
  8. BIN
      index/parking/favicon.ico
  9. 0 99
      index/parking/index.html
  10. BIN
      index/pension/favicon.ico
  11. 0 100
      index/pension/index.html
  12. BIN
      index/residence/favicon.ico
  13. 0 58
      index/residence/index.html
  14. 1 4
      package.json
  15. 0 0
      src/App.vue
  16. 0 0
      src/apis/Common/device.js
  17. 0 0
      src/apis/Common/health.js
  18. 0 0
      src/apis/Common/notice.js
  19. 0 0
      src/apis/Control/statistic.js
  20. 0 0
      src/apis/Guest/current.js
  21. 0 0
      src/apis/Guest/from.js
  22. 0 0
      src/apis/Guest/to.js
  23. 0 0
      src/apis/Home/common.js
  24. 0 0
      src/apis/Home/from.js
  25. 0 0
      src/apis/Home/person.js
  26. 0 0
      src/apis/Home/weixin.js
  27. 0 0
      src/apis/Master/Property/car.js
  28. 0 0
      src/apis/Master/activity.js
  29. 0 0
      src/apis/Master/attendance.js
  30. 0 0
      src/apis/Master/business_travel.js
  31. 0 0
      src/apis/Master/company.js
  32. 0 0
      src/apis/Master/electronic_fence.js
  33. 0 0
      src/apis/Master/extra_work.js
  34. 0 0
      src/apis/Master/family.js
  35. 0 0
      src/apis/Master/guest.js
  36. 0 0
      src/apis/Master/health.js
  37. 0 0
      src/apis/Master/index.js
  38. 0 0
      src/apis/Master/leave.js
  39. 1 1
      src/apis/Master/live.js
  40. 0 0
      src/apis/Master/mine.js
  41. 0 0
      src/apis/Master/property.js
  42. 0 0
      src/apis/Other/energy.js
  43. 0 0
      src/apis/Other/return.js
  44. 1 1
      src/apis/ali.js
  45. 1 1
      src/apis/common.js
  46. 1 1
      src/apis/payment.js
  47. 2 2
      src/apis/user.js
  48. 1 1
      src/apis/weixin.js
  49. 5 5
      src/components/Amap.vue
  50. 6 6
      src/components/Common.vue
  51. 5 5
      src/components/GreenCode.vue
  52. 1 1
      src/components/NavMenu.vue
  53. 2 2
      src/components/NullList.vue
  54. 2 2
      src/components/ShareServer.vue
  55. 1 1
      src/components/TextareaCheck.vue
  56. 1 1
      src/components/Tips.vue
  57. 1 1
      src/components/TopHeader.vue
  58. 1 1
      src/main.js
  59. 0 131
      src/projects/business/utils/request.js
  60. 0 113
      src/projects/business/views/Common/Notice/Send.vue
  61. 0 213
      src/projects/business/views/Master/EditFun.vue
  62. 0 63
      src/projects/business/views/Master/Mine/About/Cert.vue
  63. 0 13
      src/projects/business/views/Master/Property/Car/Pay.vue
  64. 0 14
      src/projects/business/views/Master/Property/Cost/Home.vue
  65. 0 27
      src/projects/home/App.vue
  66. 0 45
      src/projects/home/main.js
  67. 0 135
      src/projects/home/utils/request.js
  68. 0 60
      src/projects/parking/App.vue
  69. 0 87
      src/projects/parking/apis/car.js
  70. 0 29
      src/projects/parking/apis/common.js
  71. 0 62
      src/projects/parking/apis/merchant.js
  72. 0 34
      src/projects/parking/apis/weixin.js
  73. 0 168
      src/projects/parking/components/CommonCar.vue
  74. 0 156
      src/projects/parking/components/CommonMerchant.vue
  75. 0 44
      src/projects/parking/main.js
  76. 0 53
      src/projects/parking/router/car.js
  77. 0 55
      src/projects/parking/router/index.js
  78. 0 86
      src/projects/parking/router/merchant.js
  79. 0 135
      src/projects/parking/utils/request.js
  80. 0 135
      src/projects/parking/utils/request51.js
  81. 0 33
      src/projects/parking/views/Auth.vue
  82. 0 266
      src/projects/parking/views/Car/Input.vue
  83. 0 189
      src/projects/parking/views/Car/Pay.vue
  84. 0 82
      src/projects/parking/views/Car/PayResult.vue
  85. 0 203
      src/projects/parking/views/Car/Search.vue
  86. 0 33
      src/projects/parking/views/Home.vue
  87. 0 21
      src/projects/parking/views/Layout.vue
  88. 0 175
      src/projects/parking/views/Merchant/Bind.vue
  89. 0 75
      src/projects/parking/views/Merchant/Check/Result.vue
  90. 0 140
      src/projects/parking/views/Merchant/Check/Search.vue
  91. 0 137
      src/projects/parking/views/Merchant/Check/SearchResult.vue
  92. 0 120
      src/projects/parking/views/Merchant/History/Info.vue
  93. 0 193
      src/projects/parking/views/Merchant/History/List.vue
  94. 0 113
      src/projects/parking/vue-touch-keyboard/CHANGELOG.md
  95. 0 21
      src/projects/parking/vue-touch-keyboard/LICENSE
  96. 0 139
      src/projects/parking/vue-touch-keyboard/README.md
  97. 0 6
      src/projects/parking/vue-touch-keyboard/dist/vue-touch-keyboard.css
  98. 0 6
      src/projects/parking/vue-touch-keyboard/dist/vue-touch-keyboard.js
  99. 0 135
      src/projects/parking/vue-touch-keyboard/package.json
  100. 0 1
      src/projects/parking/vue-touch-keyboard/src/icons/backspace.svg

+ 1 - 1
.gitignore

@@ -2,7 +2,7 @@
 node_modules
 /dist
 /config/project.js
-
+*.lock
 
 # local env files
 .env.local

+ 0 - 9
config/dev.js

@@ -1,9 +0,0 @@
-let projectName = process.argv[2]
-console.log(process.argv);
-let fs = require('fs')
-
-fs.writeFileSync('./config/project.js', `exports.name = '${projectName}'`)
-
-
-let exec = require('child_process').execSync;
-exec('yarn serve', {stdio: 'inherit'});

+ 0 - 336
config/pages.js

@@ -1,336 +0,0 @@
-const projectName = require('./project');
-const path = require('path');
-
-const CompressionWebpackPlugin = require("compression-webpack-plugin")
-const productionGzipExtensions = ['js', 'css']
-
-function resolve(dir) {
-	return path.join(__dirname, dir)
-}
-
-let title = '';
-if (process.env.VUE_APP_NODE_NAME == 'production') {
-	title = ''
-} else if (process.env.VUE_APP_NODE_NAME == 'test') {
-	title = '(测试)'
-} else {
-	title = '(开发)'
-}
-
-const Timestamp = new Date().getTime();
-const config = {
-	//商业园区
-	business: {
-		pages: {
-			index: {
-				entry: 'src/projects/business/main.js',
-				template: 'index/business/index.html',
-				filename: 'index.html',
-				title: '小鹏管家' + title,
-			}
-		},
-		outputDir: 'dist/business',
-		devServer: {
-			host: '0.0.0.0',
-			port: 80,
-			//解析缓存
-			disableHostCheck: true,
-			//支持gzip
-			compress: true,
-		},
-		chainWebpack: (config) => {
-			config.entry.app = ['babel-polyfill', '../src/projects/business/main.js']
-			config.resolve.alias
-				.set('@', resolve('../src/projects/business/'))
-				.set('$project', resolve('../src/'))
-				.set('$root', resolve('../'))
-
-			config.plugins.delete('preload-index');
-			config.plugins.delete('prefetch-index');
-
-			config.optimization.minimize(true);
-
-			//打包分析添加
-			//config.output.filename('js/[name].[hash].js').end();
-			//config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
-		},
-		configureWebpack: config => {
-			//开启gzip压缩,需要配置Nginx服务器gzip选项开启
-			config.plugins.push(
-				new CompressionWebpackPlugin({
-					algorithm: 'gzip', //开启gzip
-					test: /\.js$|\.html$|.\css/, // 匹配文件名
-					threshold: 10240, // 对超过10k的数据压缩
-					deleteOriginalAssets: false // 不删除源文件
-				})
-			);
-
-			config.output.filename = `./static/js/[name].${Timestamp}.js`
-			config.output.chunkFilename = `./static/js/[name].${Timestamp}.js`
-
-			config.performance = {
-				hints: 'warning',
-				//入口起点的最大体积 整数类型(以字节为单位)
-				maxEntrypointSize: 50000000,
-				//生成文件的最大体积 整数类型(以字节为单位 300k)
-				maxAssetSize: 30000000,
-				//只给出 js 文件的性能提示
-				assetFilter: function(assetFilename) {
-					return assetFilename.endsWith('.js');
-				}
-			}
-		},
-	},
-	//住宅小区
-	residence: {
-		pages: {
-			index: {
-				entry: 'src/projects/residence/main.js',
-				template: 'index/residence/index.html',
-				filename: 'index.html',
-				title: '小鹏管家' + title,
-			}
-		},
-		outputDir: 'dist/residence',
-		devServer: {
-			host: '0.0.0.0',
-			port: 8080,
-			//解析缓存
-			disableHostCheck: true,
-			//支持gzip
-			compress: true,
-		},
-		chainWebpack: (config) => {
-			config.entry.app = ['babel-polyfill', '../src/projects/residence/main.js']
-			config.resolve.alias
-				.set('@', resolve('../src/projects/residence/'))
-				.set('$project', resolve('../src/'))
-				.set('$root', resolve('../'))
-
-			config.plugins.delete('preload-index');
-			config.plugins.delete('prefetch-index');
-
-			config.optimization.minimize(true);
-
-			//打包分析添加
-			//config.output.filename('js/[name].[hash].js').end();
-			//config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
-		},
-		configureWebpack: (config) => {
-			//开启gzip压缩,需要配置Nginx服务器gzip选项开启
-			config.plugins.push(
-				new CompressionWebpackPlugin({
-					algorithm: 'gzip', //开启gzip
-					test: /\.js$|\.html$|.\css/, // 匹配文件名
-					threshold: 10240, // 对超过10k的数据压缩
-					deleteOriginalAssets: false // 不删除源文件
-				})
-			);
-
-			config.output.filename = `./static/js/[name].${Timestamp}.js`
-			config.output.chunkFilename = `./static/js/[name].${Timestamp}.js`
-
-			config.performance = {
-				hints: 'warning',
-				//入口起点的最大体积 整数类型(以字节为单位)
-				maxEntrypointSize: 50000000,
-				//生成文件的最大体积 整数类型(以字节为单位 300k)
-				maxAssetSize: 30000000,
-				//只给出 js 文件的性能提示
-				assetFilter: function(assetFilename) {
-					return assetFilename.endsWith('.js');
-				}
-			}
-		},
-	},
-	//机构/居家养老
-	pension: {
-		pages: {
-			index: {
-				entry: 'src/projects/pension/main.js',
-				template: 'index/pension/index.html',
-				filename: 'index.html',
-				title: '小鹏管家' + title,
-			}
-		},
-		outputDir: 'dist/pension',
-		devServer: {
-			host: '0.0.0.0',
-			port: 8080,
-			//解析缓存
-			disableHostCheck: true,
-			//支持gzip
-			compress: true,
-		},
-		chainWebpack: (config) => {
-			config.entry.app = ['babel-polyfill', '../src/projects/pension/main.js']
-			config.resolve.alias
-				.set('@', resolve('../src/projects/pension/'))
-				.set('$project', resolve('../src/'))
-				.set('$root', resolve('../'))
-
-			config.plugins.delete('preload-index');
-			config.plugins.delete('prefetch-index');
-
-			config.optimization.minimize(true);
-
-			//打包分析添加
-			//config.output.filename('js/[name].[hash].js').end();
-			//config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
-		},
-		configureWebpack: (config) => {
-			//开启gzip压缩,需要配置Nginx服务器gzip选项开启
-			config.plugins.push(
-				new CompressionWebpackPlugin({
-					algorithm: 'gzip', //开启gzip
-					test: /\.js$|\.html$|.\css/, // 匹配文件名
-					threshold: 10240, // 对超过10k的数据压缩
-					deleteOriginalAssets: false // 不删除源文件
-				})
-			);
-
-			config.output.filename = `./static/js/[name].${Timestamp}.js`
-			config.output.chunkFilename = `./static/js/[name].${Timestamp}.js`
-
-			config.performance = {
-				hints: 'warning',
-				//入口起点的最大体积 整数类型(以字节为单位)
-				maxEntrypointSize: 50000000,
-				//生成文件的最大体积 整数类型(以字节为单位 300k)
-				maxAssetSize: 30000000,
-				//只给出 js 文件的性能提示
-				assetFilter: function(assetFilename) {
-					return assetFilename.endsWith('.js');
-				}
-			}
-		},
-	},
-	//入口
-	home: {
-		pages: {
-			index: {
-				entry: 'src/projects/home/main.js',
-				template: 'index/home/index.html',
-				filename: 'index.html',
-				title: '小鹏管家' + title,
-			}
-		},
-		outputDir: 'dist/home',
-		devServer: {
-			host: '0.0.0.0',
-			port: 8080,
-			//解析缓存
-			disableHostCheck: true,
-			//支持gzip
-			compress: true,
-		},
-		chainWebpack: (config) => {
-			config.entry.app = ['babel-polyfill', '../src/projects/home/main.js']
-			config.resolve.alias
-				.set('@', resolve('../src/projects/home/'))
-				.set('$project', resolve('../src/'))
-				.set('$root', resolve('../'))
-
-			config.plugins.delete('preload-index');
-			config.plugins.delete('prefetch-index');
-
-			config.optimization.minimize(true);
-
-			//打包分析添加
-			//config.output.filename('js/[name].[hash].js').end();
-			//config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
-		},
-		configureWebpack: (config) => {
-			//开启gzip压缩,需要配置Nginx服务器gzip选项开启
-			config.plugins.push(
-				new CompressionWebpackPlugin({
-					algorithm: 'gzip', //开启gzip
-					test: /\.js$|\.html$|.\css/, // 匹配文件名
-					threshold: 10240, // 对超过10k的数据压缩
-					deleteOriginalAssets: false // 不删除源文件
-				})
-			);
-
-			config.output.filename = `./static/js/[name].${Timestamp}.js`
-			config.output.chunkFilename = `./static/js/[name].${Timestamp}.js`
-
-			config.performance = {
-				hints: 'warning',
-				//入口起点的最大体积 整数类型(以字节为单位)
-				maxEntrypointSize: 50000000,
-				//生成文件的最大体积 整数类型(以字节为单位 300k)
-				maxAssetSize: 30000000,
-				//只给出 js 文件的性能提示
-				assetFilter: function(assetFilename) {
-					return assetFilename.endsWith('.js');
-				}
-			}
-		},
-	},
-
-	//停车收费
-	parking: {
-		pages: {
-			index: {
-				entry: 'src/projects/parking/main.js',
-				template: 'index/parking/index.html',
-				filename: 'index.html',
-				title: '小鹏管家停车收费' + title,
-			}
-		},
-		outputDir: 'dist/parking',
-		devServer: {
-			host: '0.0.0.0',
-			port: 8080,
-			//解析缓存
-			disableHostCheck: true,
-			//支持gzip
-			compress: true,
-		},
-		chainWebpack: (config) => {
-			config.entry.app = ['babel-polyfill', '../src/projects/parking/main.js']
-			config.resolve.alias
-				.set('@', resolve('../src/projects/parking/'))
-				.set('$project', resolve('../src/'))
-				.set('$root', resolve('../'))
-
-			config.plugins.delete('preload-index');
-			config.plugins.delete('prefetch-index');
-
-			config.optimization.minimize(true);
-
-			//打包分析添加
-			//config.output.filename('js/[name].[hash].js').end();
-			//config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
-		},
-		configureWebpack: config => {
-			//开启gzip压缩,需要配置Nginx服务器gzip选项开启
-			config.plugins.push(
-				new CompressionWebpackPlugin({
-					algorithm: 'gzip', //开启gzip
-					test: /\.js$|\.html$|.\css/, // 匹配文件名
-					threshold: 10240, // 对超过10k的数据压缩
-					deleteOriginalAssets: false // 不删除源文件
-				})
-			);
-
-			config.output.filename = `./static/js/[name].${Timestamp}.js`
-			config.output.chunkFilename = `./static/js/[name].${Timestamp}.js`
-
-			config.performance = {
-				hints: 'warning',
-				//入口起点的最大体积 整数类型(以字节为单位)
-				maxEntrypointSize: 50000000,
-				//生成文件的最大体积 整数类型(以字节为单位 300k)
-				maxAssetSize: 30000000,
-				//只给出 js 文件的性能提示
-				assetFilter: function(assetFilename) {
-					return assetFilename.endsWith('.js');
-				}
-			}
-		},
-	}
-}
-
-const configObj = config[projectName.name]
-module.exports = configObj

+ 0 - 9
config/prod.js

@@ -1,9 +0,0 @@
-let projectName = process.argv[2]
-console.log(process.argv);
-let fs = require('fs')
-
-fs.writeFileSync('./config/project.js', `exports.name = '${projectName}'`)
-
-
-let exec = require('child_process').execSync;
-exec('yarn build', {stdio: 'inherit'});

+ 0 - 9
config/test.js

@@ -1,9 +0,0 @@
-let projectName = process.argv[2]
-console.log(process.argv);
-let fs = require('fs')
-
-fs.writeFileSync('./config/project.js', `exports.name = '${projectName}'`)
-
-
-let exec = require('child_process').execSync;
-exec('yarn test', {stdio: 'inherit'});

BIN
index/home/favicon.ico


+ 0 - 180
index/home/index.html

@@ -1,180 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-cn">
-	<head>
-		<script>
-			//加载开始时间
-			var start_time = (new Date()).getTime();
-			var route_path ="/";
-			if(window.location.href.split("#")[1]){
-				route_path= window.location.href.split("#")[1].replace(/\?.*/, '')	
-			}
-		</script>
-
-		<meta charset="utf-8">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,IE=IE9">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge">
-		<meta name="apple-mobile-web-app-capable" content="yes">
-		<meta name="apple-touch-fullscreen" content="yes">
-		<meta name="aformat-detection" content="telephone=no,email=no">
-		<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,viewport-fit=cover">
-		<link rel="icon" href="<%= BASE_URL %>favicon.ico">
-		<title>
-			<%= htmlWebpackPlugin.options.title %>
-		</title>
-
-		<style>
-			body{-webkit-text-size-adjust: 100% !important;}
-			#z-loading-2 .index-title{
-				padding:60% 0 0;
-				text-align: center;
-				font-size: 30px;
-				color: #666;
-			}
-			#z-loading-2 .index-xxd{
-				color:#666;
-				text-align: center;
-				font-size: 15px;
-				margin-top: 15px;
-			}
-			#z-loading-2 .index-load{
-				text-align: center;
-				color:#666;
-				/* border-radius: 50%; */
-				font-size: 12px;
-				position: absolute;
-				bottom: 30px;
-				right: 30px;
-				/* width: 20px;
-				height: 20px;
-				background: #ddd; */
-			}
-		</style>
-	</head>
-	<body>
-		<noscript>
-			<strong>
-				We're sorry but
-				<%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to
-				continue.
-			</strong>
-		</noscript>
-
-		<div id="z-loading-2" style="display: block;position:fixed;left:0px;top:0px;bottom:0px;right:0px;z-index: 999;background-color: #fff;">
-			<div style="width:100%;text-align: center;height: 100%;">
-				<img src="#"
-				 
-				 style="width: 100%;height: 100%;display: none;"
-				 id="qdt" />
-				<div class="index-load" id="index-load" style="display:block"></div>
-			</div>
-		</div>
-		<script>
-			var indexSetInval;
-			var indexStartNum = 1;
-			indexSetInval = setInterval(function() {
-				indexStartNum++;
-				var str = '加载中' + ((indexStartNum % 2 == 0) ? '…' : '……');
-				document.getElementById('index-load').innerHTML = str;
-			}, 1000)
-			function imgerror(){
-				
-			}
-			loadXMLDoc()
-			function loadXMLDoc()
-			{
-				var xmlhttp;
-				if (window.XMLHttpRequest)
-				{
-					//  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
-					xmlhttp=new XMLHttpRequest();
-				}
-				else
-				{
-					// IE6, IE5 浏览器执行代码
-					xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
-				}
-				xmlhttp.onreadystatechange=function()
-				{
-					if (xmlhttp.readyState==4 && xmlhttp.status==200)
-					{
-						var obj=JSON.parse(xmlhttp.responseText)
-						
-						if(obj.data.sortNo==1){
-							document.getElementById('qdt').src = obj.data.value;
-							
-						}else{
-							document.getElementById('qdt').src = 'https://yktwechat.xiaoxinda.com/config/xpgj2021.webp';
-							
-						}
-						document.getElementById('qdt').style.display="block"
-						
-					}
-				}
-				xmlhttp.open("GET","https://xpgjapi.xiaoxinda.com/sys/dataDictionary/edit/b9a4877c-3e4b-4c7c-813f-2ec2a6fdcf18",true);
-				xmlhttp.send();
-			}
-		</script>
-
-		<div id="app"></div>
-
-
-		<script>
-			
-			document.onreadystatechange = function() {
-				if (document.readyState == "complete") {
-					clearInterval(indexSetInval);
-					//removeLoading()
-					var end_time = (new Date()).getTime();
-					var loading_time = end_time - start_time;
-					console.log(((loading_time) / 1000).toString() + '秒');
-					if (loading_time < 2000) {
-						setTimeout(function() {
-							removeLoading();
-						}, 2000 - (loading_time));
-					} else {
-						removeLoading()
-					}
-				}
-			}
-
-			function removeLoading() {
-				if (document.getElementById('z-loading-2').style.display != 'none') {
-					var loading = document.getElementById('z-loading-2');
-				}
-				document.body.removeChild(loading);
-			}
-		</script>
-
-
-		<script type="text/javascript">
-			(function() {
-				if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
-					handleFontSize();
-				} else {
-					if (document.addEventListener) {
-						document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
-					} else if (document.attachEvent) {
-						document.attachEvent("WeixinJSBridgeReady", handleFontSize);
-						document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
-					}
-				}
-
-				function handleFontSize() {
-					/*设置网页字体为默认大小*/
-					WeixinJSBridge.invoke('setFontSizeCallback', {
-						'fontSize': 0
-					});
-					/*重写设置网页字体大小的事件*/
-					WeixinJSBridge.on('menu:setfont', function() {
-						WeixinJSBridge.invoke('setFontSizeCallback', {
-							'fontSize': 0
-						});
-					});
-				}
-			})();
-		</script>
-
-		<script src="https://hm.baidu.com/hm.js?70f1b4bfc1d017e50a488b34b9dcc02c"></script>
-	</body>
-</html>

BIN
index/parking/favicon.ico


+ 0 - 99
index/parking/index.html

@@ -1,99 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-cn">
-	<head>
-		<script>
-			//加载开始时间
-			var start_time = (new Date()).getTime();
-			var route_path ="/";
-			if(window.location.href.split("#")[1]){
-				route_path= window.location.href.split("#")[1].replace(/\?.*/, '')	
-			}
-		</script>
-
-		<meta charset="utf-8">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,IE=IE9">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge">
-		<meta name="apple-mobile-web-app-capable" content="yes">
-		<meta name="apple-touch-fullscreen" content="yes">
-		<meta name="aformat-detection" content="telephone=no,email=no">
-		<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,viewport-fit=cover">
-		<link rel="icon" href="<%= BASE_URL %>favicon.ico">
-		<title>
-			<%= htmlWebpackPlugin.options.title %>
-		</title>
-	</head>
-	<body>
-		<noscript>
-			<strong>
-				We're sorry but
-				<%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to
-				continue.
-			</strong>
-		</noscript>
-
-		<div id="z-loading-1" style="display: block;position: fixed;left:0px;top:0px;bottom:0px;right:0px;width: 100%;height: 100%;background: rgb(255, 255, 255, 0.9);z-index: 999;">
-			<div style="position: absolute;top: 40%;left: 38%">
-				<img src="http://rccs.oss-cn-hangzhou.aliyuncs.com/jp_housekeeper/img/xxd_loading.gif" id="loading-gif" />
-			</div>
-			<div class="index-load" id="index-load" style="display:block;position: absolute;bottom: 10px;right: 10px;"></div>
-		</div>
-		<script>
-			var indexSetInval;
-			var indexStartNum = 1;
-			indexSetInval = setInterval(function() {
-				indexStartNum++;
-				var str = '加载中' + ((indexStartNum % 2 == 0) ? '…' : '……');
-				document.getElementById('index-load').innerHTML = str;
-			}, 1000)
-		</script>
-
-		<div id="app"></div>
-
-		<script>
-			document.onreadystatechange = function() {
-				if (document.readyState == "complete") {
-					clearInterval(indexSetInval);
-					removeLoading()
-				}
-			}
-
-			function removeLoading() {
-				if (document.getElementById('z-loading-1').style.display != 'none') {
-					var loading = document.getElementById('z-loading-1');
-				}
-				document.body.removeChild(loading);
-			}
-		</script>
-
-		<script type="text/javascript">
-			(function() {
-				if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
-					handleFontSize();
-				} else {
-					if (document.addEventListener) {
-						document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
-					} else if (document.attachEvent) {
-						document.attachEvent("WeixinJSBridgeReady", handleFontSize);
-						document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
-					}
-				}
-
-				function handleFontSize() {
-					/*设置网页字体为默认大小*/
-					WeixinJSBridge.invoke('setFontSizeCallback', {
-						'fontSize': 0
-					});
-					/*重写设置网页字体大小的事件*/
-					WeixinJSBridge.on('menu:setfont', function() {
-						WeixinJSBridge.invoke('setFontSizeCallback', {
-							'fontSize': 0
-						});
-					});
-				}
-			})();
-		</script>
-
-		<script src="https://hm.baidu.com/hm.js?70f1b4bfc1d017e50a488b34b9dcc02c"></script>
-	</body>
-</html>

BIN
index/pension/favicon.ico


+ 0 - 100
index/pension/index.html

@@ -1,100 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-cn">
-	<head>
-		<script>
-			//加载开始时间
-			var start_time = (new Date()).getTime();
-			var route_path ="/";
-			if(window.location.href.split("#")[1]){
-				route_path= window.location.href.split("#")[1].replace(/\?.*/, '')	
-			}
-		</script>
-
-		<meta charset="utf-8">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,IE=IE9">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge">
-		<meta name="apple-mobile-web-app-capable" content="yes">
-		<meta name="apple-touch-fullscreen" content="yes">
-		<meta name="aformat-detection" content="telephone=no,email=no">
-		<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,viewport-fit=cover">
-		<link rel="icon" href="<%= BASE_URL %>favicon.ico">
-		<title>
-			<%= htmlWebpackPlugin.options.title %>
-		</title>
-	</head>
-	<body>
-		<noscript>
-			<strong>
-				We're sorry but
-				<%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to
-				continue.
-			</strong>
-		</noscript>
-
-		<div id="z-loading-1" style="display: block;position: fixed;left:0px;top:0px;bottom:0px;right:0px;width: 100%;height: 100%;background: rgb(255, 255, 255, 0.9);z-index: 999;">
-			<div style="position: absolute;top: 40%;left: 40%">
-				<img src="http://rccs.oss-cn-hangzhou.aliyuncs.com/jp_housekeeper/img/xxd_loading.gif" id="loading-gif" />
-			</div>
-			<div class="index-load" id="index-load" style="display:block;position: absolute;bottom: 10px;right: 10px;"></div>
-		</div>
-		<script>
-			var indexSetInval;
-			var indexStartNum = 1;
-			indexSetInval = setInterval(function() {
-				indexStartNum++;
-				var str = '加载中' + ((indexStartNum % 2 == 0) ? '…' : '……');
-				document.getElementById('index-load').innerHTML = str;
-			}, 1000)
-		</script>
-
-		<div id="app"></div>
-
-		<script>
-			document.onreadystatechange = function() {
-				if (document.readyState == "complete") {
-					clearInterval(indexSetInval);
-					removeLoading()
-				}
-			}
-
-			function removeLoading() {
-				if (document.getElementById('z-loading-1').style.display != 'none') {
-					var loading = document.getElementById('z-loading-1');
-				}
-				document.body.removeChild(loading);
-			}
-		</script>
-
-
-		<script type="text/javascript">
-			(function() {
-				if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
-					handleFontSize();
-				} else {
-					if (document.addEventListener) {
-						document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
-					} else if (document.attachEvent) {
-						document.attachEvent("WeixinJSBridgeReady", handleFontSize);
-						document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
-					}
-				}
-
-				function handleFontSize() {
-					/*设置网页字体为默认大小*/
-					WeixinJSBridge.invoke('setFontSizeCallback', {
-						'fontSize': 0
-					});
-					/*重写设置网页字体大小的事件*/
-					WeixinJSBridge.on('menu:setfont', function() {
-						WeixinJSBridge.invoke('setFontSizeCallback', {
-							'fontSize': 0
-						});
-					});
-				}
-			})();
-		</script>
-		
-		<script src="https://hm.baidu.com/hm.js?70f1b4bfc1d017e50a488b34b9dcc02c"></script>
-	</body>
-</html>

BIN
index/residence/favicon.ico


+ 0 - 58
index/residence/index.html

@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-cn">
-	<head>
-		<meta charset="utf-8">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge,IE=IE9">
-		<meta http-equiv="X-UA-Compatible" content="IE=edge">
-		<meta name="apple-mobile-web-app-capable" content="yes">
-		<meta name="apple-touch-fullscreen" content="yes">
-		<meta name="aformat-detection" content="telephone=no,email=no">
-		<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,viewport-fit=cover">
-		<link rel="icon" href="<%= BASE_URL %>favicon.ico">
-		<title>
-			<%= htmlWebpackPlugin.options.title %>
-		</title>
-	</head>
-	<body>
-		<noscript>
-			<strong>
-				We're sorry but
-				<%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to
-				continue.
-			</strong>
-		</noscript>
-		<div id="app"></div>
-
-
-		<script type="text/javascript">
-			(function() {
-				if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
-					handleFontSize();
-				} else {
-					if (document.addEventListener) {
-						document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
-					} else if (document.attachEvent) {
-						document.attachEvent("WeixinJSBridgeReady", handleFontSize);
-						document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
-					}
-				}
-
-				function handleFontSize() {
-					/*设置网页字体为默认大小*/
-					WeixinJSBridge.invoke('setFontSizeCallback', {
-						'fontSize': 0
-					});
-					/*重写设置网页字体大小的事件*/
-					WeixinJSBridge.on('menu:setfont', function() {
-						WeixinJSBridge.invoke('setFontSizeCallback', {
-							'fontSize': 0
-						});
-					});
-				}
-			})();
-		</script>
-		
-		<script src="https://hm.baidu.com/hm.js?70f1b4bfc1d017e50a488b34b9dcc02c"></script>
-	</body>
-</html>

+ 1 - 4
package.json

@@ -5,10 +5,7 @@
 	"scripts": {
 		"serve": "vue-cli-service serve",
 		"build": "vue-cli-service build --mode production",
-		"test": "vue-cli-service build --mode test",
-		"jserve": "node config/dev.js",
-		"jbuild": "node config/prod.js",
-		"jtest": "node config/test.js"
+		"test": "vue-cli-service build --mode test"
 	},
 	"dependencies": {
 		"axios": "^0.20.0",

+ 0 - 0
src/projects/business/App.vue → src/App.vue


+ 0 - 0
src/projects/business/apis/Common/device.js → src/apis/Common/device.js


+ 0 - 0
src/projects/business/apis/Common/health.js → src/apis/Common/health.js


+ 0 - 0
src/projects/business/apis/Common/notice.js → src/apis/Common/notice.js


+ 0 - 0
src/projects/business/apis/Control/statistic.js → src/apis/Control/statistic.js


+ 0 - 0
src/projects/business/apis/Guest/current.js → src/apis/Guest/current.js


+ 0 - 0
src/projects/business/apis/Guest/from.js → src/apis/Guest/from.js


+ 0 - 0
src/projects/business/apis/Guest/to.js → src/apis/Guest/to.js


+ 0 - 0
src/projects/home/apis/common.js → src/apis/Home/common.js


+ 0 - 0
src/projects/home/apis/from.js → src/apis/Home/from.js


+ 0 - 0
src/projects/home/apis/person.js → src/apis/Home/person.js


+ 0 - 0
src/projects/home/apis/weixin.js → src/apis/Home/weixin.js


+ 0 - 0
src/projects/business/apis/Master/Property/car.js → src/apis/Master/Property/car.js


+ 0 - 0
src/projects/business/apis/Master/activity.js → src/apis/Master/activity.js


+ 0 - 0
src/projects/business/apis/Master/attendance.js → src/apis/Master/attendance.js


+ 0 - 0
src/projects/business/apis/Master/business_travel.js → src/apis/Master/business_travel.js


+ 0 - 0
src/projects/business/apis/Master/company.js → src/apis/Master/company.js


+ 0 - 0
src/projects/business/apis/Master/electronic_fence.js → src/apis/Master/electronic_fence.js


+ 0 - 0
src/projects/business/apis/Master/extra_work.js → src/apis/Master/extra_work.js


+ 0 - 0
src/projects/business/apis/Master/family.js → src/apis/Master/family.js


+ 0 - 0
src/projects/business/apis/Master/guest.js → src/apis/Master/guest.js


+ 0 - 0
src/projects/business/apis/Master/health.js → src/apis/Master/health.js


+ 0 - 0
src/projects/business/apis/Master/index.js → src/apis/Master/index.js


+ 0 - 0
src/projects/business/apis/Master/leave.js → src/apis/Master/leave.js


+ 1 - 1
src/projects/business/apis/Master/live.js → src/apis/Master/live.js

@@ -1,4 +1,4 @@
-import request from '$project/utils/request'
+import request from '@/utils/request'
 import Qs from 'qs';
 
 //购买状态详情

+ 0 - 0
src/projects/business/apis/Master/mine.js → src/apis/Master/mine.js


+ 0 - 0
src/projects/business/apis/Master/property.js → src/apis/Master/property.js


+ 0 - 0
src/projects/business/apis/Other/energy.js → src/apis/Other/energy.js


+ 0 - 0
src/projects/business/apis/Other/return.js → src/apis/Other/return.js


+ 1 - 1
src/apis/ali.js

@@ -1,4 +1,4 @@
-import request from '$project/utils/request'
+import request from '@/utils/request'
 import Qs from 'qs';
 
 //根据code换取openid

+ 1 - 1
src/apis/common.js

@@ -1,4 +1,4 @@
-import request from '$project/utils/request'
+import request from '@/utils/request'
 import Qs from 'qs';
 
 //上传图片

+ 1 - 1
src/apis/payment.js

@@ -1,4 +1,4 @@
-import request from '$project/utils/request'
+import request from '@/utils/request'
 import Qs from 'qs';
 
 //订单列表

+ 2 - 2
src/apis/user.js

@@ -1,9 +1,9 @@
-import request from '$project/utils/request'
+import request from '@/utils/request'
 import Qs from 'qs';
 
 import {
 	getToken
-} from '$project/utils/storage'
+} from '@/utils/storage'
 
 //获取用户角色列表
 export function getRoleList() {

+ 1 - 1
src/apis/weixin.js

@@ -1,4 +1,4 @@
-import request from '$project/utils/request'
+import request from '@/utils/request'
 import Qs from 'qs';
 
 //根据code换取openid

+ 5 - 5
src/components/Amap.vue

@@ -7,8 +7,8 @@
 </template>
 
 <script>
-	import MapLoader from '$project/utils/AMap'
-	import Loading from '$project/components/Loading.vue'
+	import MapLoader from '@/utils/AMap'
+	import Loading from '@/components/Loading.vue'
 	export default {
 		components: {
 			Loading
@@ -60,11 +60,11 @@
 					var _this = this;
 					amapPointArr.forEach(function(item, index) {
 						if (index == 0 || amapPointArr.length == 1) {
-							var icon = require("$project/assets/img/map_0.png");
+							var icon = require("@/assets/img/map_0.png");
 						} else if (index == amapPointArr.length - 1) {
-							var icon = require("$project/assets/img/map_2.png");
+							var icon = require("@/assets/img/map_2.png");
 						} else {
-							var icon = require("$project/assets/img/map_1.png");
+							var icon = require("@/assets/img/map_1.png");
 						}
 						var marker=new AMap.Marker({
 							map: map,

+ 6 - 6
src/components/Common.vue

@@ -6,20 +6,20 @@
 
 <script>
 	const projectName = require('$root/config/project');
-	import * as API_WeiXin from '$project/apis/weixin'
-	import * as API_User from '$project/apis/user'
-	import Loading from '$project/components/Loading.vue'
+	import * as API_WeiXin from '@/apis/weixin'
+	import * as API_User from '@/apis/user'
+	import Loading from '@/components/Loading.vue'
 	import {
 		getUrlParam,
 		getWeixinRedirectURI,
 		isWeiXin
-	} from '$project/utils'
+	} from '@/utils'
 	import {
 		mapGetters,
 		mapMutations
 	} from 'vuex'
-	import * as types from '$project/store/mutation-types'
-	import * as Dictionaries from '$project/utils/dictionaries'
+	import * as types from '@/store/mutation-types'
+	import * as Dictionaries from '@/utils/dictionaries'
 	export default {
 		name: 'Common',
 		components: {

+ 5 - 5
src/projects/business/components/GreenCode.vue → src/components/GreenCode.vue

@@ -71,13 +71,13 @@
 <script>
 	import * as API_Master from '@/apis/Master/index'
 	import * as API_Health from '@/apis/Common/health'
-	import Loading from '$project/components/Loading.vue'
+	import Loading from '@/components/Loading.vue'
 	import QRCode from 'qrcodejs2'
 	import {
 		convertCanvasToImage,
 		checkIdCard,
 		substrMb
-	} from '$project/utils'
+	} from '@/utils'
 	import {
 		mapGetters,
 		mapMutations
@@ -292,9 +292,9 @@
 	}
 </script>
 
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style scoped src="$project/assets/css/sczpfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
+<style scoped src="@/assets/css/xpwyfyy.css"></style>
+<style scoped src="@/assets/css/sczpfyy.css"></style>
+<style src="@/assets/css/iconfont.css"></style>
 <style scoped>
 	.fyy-popup-bg{
 		position: fixed;

+ 1 - 1
src/projects/business/components/NavMenu.vue → src/components/NavMenu.vue

@@ -63,7 +63,7 @@
 	}
 </script>
 
-<style src="$project/assets/css/iconfont.css"></style>
+<style src="@/assets/css/iconfont.css"></style>
 <style scoped>
 	.message-nav {
 		position: relative;

+ 2 - 2
src/components/NullList.vue

@@ -1,7 +1,7 @@
 <template>
 	<div class="mui-slider-group" style="z-index: 8">
 		<div style="text-align: center;margin-top: 100px">
-			<img src="~$project/assets/img/no.png" width="50%" style="width: 50%">
+			<img src="~@/assets/img/no.png" width="50%" style="width: 50%">
 			<p class="kong-title">{{remark}}</p>
 			<p v-if="type=='relatives'" class="kong-spec">如需邀请家属扫码关联,请<span @click="typeRouteFun">出示二维码</span></p>
 		</div>
@@ -29,7 +29,7 @@
 		mounted() {}
 	}
 </script>
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
+<style scoped src="@/assets/css/xpwyfyy.css"></style>
 
 <style scoped="scoped">
 	.kong-title {

+ 2 - 2
src/components/ShareServer.vue

@@ -2,10 +2,10 @@
 </template>
 
 <script>
-    import * as API_Common from '$project/apis/common'
+    import * as API_Common from '@/apis/common'
 
     import wx from 'weixin-js-sdk'
-    import * as WxJsApi from '$project/utils/wxJsApi'
+    import * as WxJsApi from '@/utils/wxJsApi'
 
 	export default {
 		name: 'Share',

+ 1 - 1
src/components/TextareaCheck.vue

@@ -50,7 +50,7 @@
 		}
 	}
 </script>
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
+<style scoped src="@/assets/css/xpwyfyy.css"></style>
 
 <style scoped>
 

+ 1 - 1
src/components/Tips.vue

@@ -12,7 +12,7 @@
 				<img :src="bannerTipsActivity.contentUrl"  v-if="bannerTipsActivity.contentUrl" @click="gotTo" width="50%"/>
 			</div>
 			<a class="fyy-over mui-icon " @click="bannerTipsHide">
-				<img src="~$project/assets/img/close.png" width="36px">
+				<img src="~@/assets/img/close.png" width="36px">
 			</a>
 		</div>
 		<div class="mui-popup-backdrop mui-active" v-if="bannerTipsVisible" ></div>

+ 1 - 1
src/components/TopHeader.vue

@@ -84,7 +84,7 @@
 	}
 </script>
 
-<style scoped src="$project/assets/css/xpgj.css"></style>
+<style scoped src="@/assets/css/xpgj.css"></style>
 <style scoped>
 	.jp-badge {
 		font-size: 12px !important;

+ 1 - 1
src/projects/business/main.js → src/main.js

@@ -183,7 +183,7 @@ router.beforeEach((to, from, next) => {
 	}
 
 	if (process.env.VUE_APP_NODE_NAME == 'production') {
-		window._hmt.push(['_trackEvent', '页面跳转', 'click', to.meta.title, 1]);
+		//window._hmt.push(['_trackEvent', '页面跳转', 'click', to.meta.title, 1]);
 	}
 
 	checkRole(to, from, next);

+ 0 - 131
src/projects/business/utils/request.js

@@ -1,131 +0,0 @@
-import axios from 'axios';
-import store from '$project/store';
-import router from '@/router';
-import Vue from 'vue';
-import Qs from 'qs';
-import $ from 'jquery';
-
-import {
-	getToken,
-	getOpenId
-} from '$project/utils/storage'
-
-axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'
-
-//检测是否可以访问通
-var baseApiList = [process.env.VUE_APP_BACKEND_URL, process.env.VUE_APP_MIRROR_BACKEND_URL];
-if (process.env.VUE_APP_NODE_NAME == 'devlopment') {			
-	//baseApiList = ['http://192.168.77.162:8086/jp-housekeeper-server/']
-	//baseApiList = ['http://127.0.0.1:8086/jp-housekeeper-server/']
-	
-}
-var apiTypeIndex = 0;
-var checkApiGetBackendUrl = function(index) {
-	$.ajax({
-		url: baseApiList[index] + '/mobile/companyInfoApi/link',
-		type: 'GET',
-		async: false, //同步
-		data: {},
-		timeout: 3000,
-		success: function(data, textStatus, jqXHR) {
-
-		},
-		error: function(xhr, textStatus) {
-			console.log(index)
-			console.log(baseApiList[index] + '异常');
-			if (document.title.indexOf('-') > -1) {
-				document.title = document.title.substring(0, document.title.indexOf('-')) + '-线路' + (index + 1);
-			} else {
-				document.title = document.title + '-线路' + (index + 1);
-			}
-
-			if (index == baseApiList.length - 1) {
-				alert('接口无法访问,请联系开发者处理');
-			} else {
-				index++;
-				apiTypeIndex = index;
-				checkApiGetBackendUrl(index);
-			}
-		},
-		complete: function() {
-			console.log('接口通畅校验完成')
-		}
-	})
-}
-checkApiGetBackendUrl(apiTypeIndex);
-
-//只有当刷新的时候才会访问一次校验
-store.commit('SET_API_TYPE', baseApiList[apiTypeIndex]);
-var BACKEND_URL = baseApiList[apiTypeIndex];
-
-
-// 创建axios实例
-const service = axios.create({
-	baseURL: BACKEND_URL,
-	timeout: 20000,
-	// 请求头信息
-	headers: {
-		'Content-Type': 'application/x-www-form-urlencoded',
-		'X-Requested-With': 'XMLHttpRequest',
-	},
-});
-
-//request拦截器
-service.interceptors.request.use(config => {
-	let Authorization = getToken() ? getToken() : '';
-	config.headers['Authorization'] = Authorization;
-	return config;
-}, error => {
-	//对请求错误处理
-	return Promise.reject(error);
-});
-
-// response拦截器
-service.interceptors.response.use(
-	response => {
-		if (response.data.code === 200) {
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-		} else if (response.data.code === 415) {
-			//这里不执行,token过期
-		} else {
-			//无code的情况
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-
-			// todo 根据返回值判定去向,比如token过期,未登录等等
-
-			// 403 接口需要登录
-			/* if (response.data.code === 403) {
-				store.dispatch('clearToken');
-				router.replace({
-					name: 'Login',
-					query: {
-						redirect: router.currentRoute.fullPath
-					}
-				});
-			} */
-
-			return Promise.reject(response.data.message);
-		}
-	},
-	error => {
-		// alert('网络超时!请重新加载!');
-		//console.error(error);
-		// 判断请求异常信息中是否含有超时timeout字符串
-		if (error.message.includes('timeout')) {
-			return Promise.reject('请求超时,请稍后再试');
-		} else if (error.message.includes('NetworkError')) {
-			return Promise.reject('网络错误,请稍后再试');
-		}
-		return Promise.reject(error);
-	}
-);
-
-export default service;

+ 0 - 113
src/projects/business/views/Common/Notice/Send.vue

@@ -1,113 +0,0 @@
-<template>
-	<div>
-		<common @asynCallBack="asynCallBack"></common>
-		<top-header :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content margin60">
-			<form class="mui-input-group vongi-send">
-				<div class="mui-input-row">
-					<label>通知标题</label>
-					<input type="text" v-model="addForm.title" placeholder="请输入标题">
-				</div>
-
-				<textarea-check v-model="addForm.content" :max="1000" :placeholder="'请填写内容,最多可输入1000字'"></textarea-check>
-
-			</form>
-		</div>
-		<div class="fyy-footer">
-			<div class="bindfyy-btn">
-				<button type="submit" class="mui-btn mui-btn-primary " @click="submit">发送</button></div>
-		</div>
-		<loading :visible="isLoading"></loading>
-
-	</div>
-</template>
-
-
-<script>
-	import * as API_Notice from '@/apis/Common/notice'
-
-	import Common from '$project/components/Common.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import TextareaCheck from '$project/components/TextareaCheck.vue'
-
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'CommonNoticeSend',
-		components: {
-			Common,
-			Loading,
-			TopHeader,
-			TextareaCheck
-		},
-		data() {
-			return {
-				pageTitle: '发送通知',
-
-				isLoading: false,
-
-				addForm: {
-					title: '',
-					content: '',
-				},
-				detail: {},
-			}
-		},
-		created() {
-
-		},
-		methods: {
-
-			//表单校验
-			checkForm() {
-				if (!this.addForm.title) {
-					mui.toast('请输入通知标题');
-					return false;
-				} else if (!this.addForm.content) {
-					mui.toast('请输入通知内容');
-					return false;
-				} else {
-					return true;
-				}
-			},
-			//提交
-			submit() {
-				if (this.checkForm()) {
-					this.isLoading = true;
-					API_Notice.sendMessage(this.addForm).then(response => {
-						this.isLoading = false;
-						mui.toast("发送成功");
-						//跳转首页
-						this.$router.push({
-							name: 'Master',
-							query: {}
-						})
-
-					}).catch(error => {
-						this.isLoading = false;
-						mui.toast(error);
-					})
-				}
-			},
-			asynCallBack() {
-
-			},
-		},
-		mounted() {
-
-		},
-		destroyed() {},
-		computed: {
-
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style scoped>
-</style>

+ 0 - 213
src/projects/business/views/Master/EditFun.vue

@@ -1,213 +0,0 @@
-<template>
-	<div id="app">
-
-		<common ref="common" @asynCallBack="asynCallBack"></common>
-		<top-header :pageTitle="pageTitle" :rightLink="rightLink" :doRightLink="doRightLink"></top-header>
-
-
-		<div class="mui-content vongi-icons">
-			<div class="vongi-all">
-				<h4 class="vongi-center">您可以将常用的应用添加到主页</h4>
-				<ul class="mui-table-view mui-grid-view mui-grid-9">
-					<draggable element="ul" v-model="menuList" :options="{handle:'.drag-img,.zhe-zhao,.mui-media-body',chosenClass:'choose',animation:200}">
-						<li v-for="(item,index) in menuList" class="mui-table-view-cell mui-media mui-col-xs-3 li-block">
-							<!-- <router-link :to="{name:item.iconRoute,query:item.iconParam}"> -->
-							<img :src="requirePic(item.iconPic)" class="drag-img" />
-							<div class="zhe-zhao"></div>
-							<div class="mui-media-body" v-text="item.iconName"></div>
-							<!-- </router-link> -->
-							<span slot="footer" @click="del(item.id,index)" class="mui-icon mui-icon-closeempty vongi-close"></span>
-						</li>
-					</draggable>
-				</ul>
-			</div>
-			<div class="vongi-all">
-				<h2>全部服务</h2>
-				<div v-if="iten.cun_num" v-for="(iten,indey) in allFunList">
-					<h4 v-text="iten.name"></h4>
-					<ul class="mui-table-view mui-grid-view mui-grid-9">
-						<li v-show="item.is_show" v-for="(item,index) in iten.list" :class="'mui-table-view-cell mui-media mui-col-xs-3 '+(item.iconRoute?'':'kfz')">
-							<!-- <router-link :to="{name:item.iconRoute,query:item.iconParam}"> -->
-							<img :src="requirePic(item.iconPic)" />
-							<div class="mui-media-body" v-text="item.iconName"></div>
-							<!-- </router-link> -->
-							<span @click="add(indey,index)" class="mui-icon mui-icon-plusempty vongi-add"></span>
-						</li>
-					</ul>
-				</div>
-			</div>
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import draggable from 'vuedraggable'
-	import * as API_User from '$project/apis/user'
-	import Common from '$project/components/Common.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import NavMenu from '@/components/NavMenu.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'MasterEditFun',
-		components: {
-			Common,
-			Loading,
-			TopHeader,
-			NavMenu,
-			draggable,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '管理常用服务',
-
-				rightLink: {
-					show: true,
-					icon: 'mui-btn mui-btn-primary',
-					style: 'width: 55px;height: 25px;margin-top:5px;margin-right: 0px;line-height: 5px;color: #fff;font-size:16px;',
-					title: '完成'
-				},
-
-				allFunList: [],
-				menuList: [],
-				idList: [],
-			}
-		},
-		created() {
-			this.menuList = this.menu_list;
-			this.resetIdList();
-		},
-		methods: {
-			//引入图片
-			requirePic(file) {
-				if (file) {
-					if (file.indexOf('http') == 0) {
-						return file;
-					} else {
-						return require('$project/assets/img/' + file);
-					}
-				}
-			},
-			//获取所有的功能列表包括常用功能
-			getFunList() {
-				this.isLoading = true;
-				API_User.getFunList().then(response => {
-					this.isLoading = false;
-					this.allFunList = this.resetAllFunList(response.allIcon);
-				}).catch(error => {
-					mui.toast(error);
-				})
-			},
-			//重置数组
-			resetAllFunList(list) {
-				for (var i = 0; i < list.length; i++) {
-					var num = 0;
-					for (var j = 0; j < list[i]['list'].length; j++) {
-						if (this.idList.indexOf(list[i]['list'][j]['id']) > -1) {
-							list[i]['list'][j]['is_show'] = 0;
-						} else {
-							list[i]['list'][j]['is_show'] = 1;
-							num++;
-						}
-					}
-					list[i]['cun_num'] = num;
-				}
-				return list;
-			},
-			resetIdList() {
-				var list = [];
-				for (var i = 0; i < this.menuList.length; i++) {
-					list.push(this.menuList[i]['id']);
-				}
-				this.idList = list;
-			},
-			//添加图标
-			add(indy, index) {
-				if (this.menuList.length < 7) {
-					this.menuList.push(this.allFunList[indy]['list'][index])
-					this.allFunList[indy]['list'][index]['is_show'] = 0;
-					this.allFunList[indy]['cun_num']--;
-				} else {
-					mui.toast('最多只能添加7个常用服务');
-				}
-			},
-			//减少图标
-			del(id, index) {
-
-				for (var i = 0; i < this.menuList.length; i++) {
-					if (this.menuList[i]['id'] == id) {
-						this.menuList.splice(i, 1);
-					}
-				}
-
-				var allFunList = this.allFunList;
-				for (var i = 0; i < allFunList.length; i++) {
-					var item = allFunList[i];
-					for (var j = 0; j < item['list'].length; j++) {
-						if (item['list'][j]['id'] == id) {
-							item['list'][j]['is_show'] = 1;
-							item['cun_num']++;
-							this.$set(this.allFunList, i, item)
-						}
-					}
-				}
-			},
-			//保存常用图片
-			doRightLink() {
-				this.isLoading = true;
-				this.resetIdList();
-				API_User.saveFun(this.idList.join(',')).then(response => {
-					this.isLoading = false;
-					mui.toast('保存成功');
-					this.$router.go(-1);
-				}).catch(error => {
-					mui.toast(error);
-				})
-			},
-			asynCallBack() {
-
-			},
-		},
-		mounted() {
-			this.getFunList()
-		},
-		destroyed() {},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-				token: 'token',
-				person_data: 'person_data',
-				person_popedom: 'person_popedom',
-				menu_list: 'menu_list'
-			})
-		}
-	}
-</script>
-
-<style src="$project/assets/css/iconfont.css"></style>
-<style scoped src="$project/assets/css/xpgj.css"></style>
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style scoped>
-	.mui-table-view ul {
-		padding-left: 0;
-	}
-
-	.li-block {
-		position: relative;
-	}
-
-	.zhe-zhao {
-		position: absolute;
-		width: 100%;
-		height: 32px;
-		top: 0;
-		opacity: 0;
-	}
-</style>

+ 0 - 63
src/projects/business/views/Master/Mine/About/Cert.vue

@@ -1,63 +0,0 @@
-<template>
-	<div>
-		<common @asynCallBack="asynCallBack"></common>
-		<top-header :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content">
-			<div class="vongi-about">
-				<h6 class="vongi-center margin10">最近更新日期:2020年10月7日</h6>
-				<h4><b>增值电信业务经营许可证:鄂B2-20090053</b></h4>
-				<img src="~$project/assets/img/gongshang.png" />
-			</div>
-		</div>
-	</div>
-</template>
-
-<script>
-	import Common from '$project/components/Common.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'MasterMineAboutCert',
-		components: {
-			Common,
-			Loading,
-			TopHeader
-		},
-		data() {
-			return {
-				pageTitle: '证照信息',
-				isLoading: false,
-			}
-		},
-		created() {},
-		methods: {
-			asynCallBack() {},
-		},
-		mounted() {
-			document.body.style.backgroundColor = '#fff';
-		},
-		destroyed() {
-			//移除背景色
-			document.body.style.backgroundColor = '';
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-				token: 'token',
-				person_data: 'person_data',
-				person_popedom: 'person_popedom',
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style scoped src="$project/assets/css/xpgj.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 13
src/projects/business/views/Master/Property/Car/Pay.vue

@@ -1,13 +0,0 @@
-<template>
-<div>
-    MasterPropertyCarPay
-</div>
-</template>
-
-<script>
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 14
src/projects/business/views/Master/Property/Cost/Home.vue

@@ -1,14 +0,0 @@
-<template>
-<div>
-
-</div>
-</template>
-
-<script>
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>
-

+ 0 - 27
src/projects/home/App.vue

@@ -1,27 +0,0 @@
-<template>
-	<div id="app">
-		<router-view />
-	</div>
-</template>
-
-<script>
-	export default {
-		name: 'Home',
-		mounted() {
-			mui('body').on('tap', '.kfz', function() {
-				mui.toast('开发中');
-			});
-			mui('body').on('tap', '.jump', function() {
-				document.location.href = this.href;
-			});
-		}
-	}
-</script>
-
-<style lang="scss">
-	#app {
-		font-family: Avenir, Helvetica, Arial, sans-serif;
-		-webkit-font-smoothing: antialiased;
-		-moz-osx-font-smoothing: grayscale;
-	}
-</style>

+ 0 - 45
src/projects/home/main.js

@@ -1,45 +0,0 @@
-import Vue from 'vue'
-import App from './App.vue'
-import router from './router'
-import store from '$project/store'
-
-//引入mui
-import mui from '$project/assets/js/mui.js'
-import '$project/assets/css/mui.min.css'
-import Vconsole from 'vconsole'
-
-window.mui = mui;
-window.mui.init();
-
-if (location.hostname === 'localhost') {
-	Vue.prototype.HTTPLOCAT = ''
-} else {
-	const http = window.location.protocol + '//' + location.hostname + ':' + location.port
-	Vue.prototype.HTTPLOCAT = http + ''
-}
-
-router.beforeEach((to, from, next) => {
-	if (to.query.test) {
-		if (to.query.test == 'test') {
-			let vConsole = new Vconsole()
-		}
-	}
-
-	//如果传递过来了推广人id则存储
-	if (to.query.promote_id) {
-		store.commit('SET_INVITATION_CODE', to.query.promote_id);
-	}
-	
-	if (process.env.VUE_APP_NODE_NAME == 'production') {
-		window._hmt.push(['_trackEvent', '页面跳转', 'click', to.meta.title, 1]);
-	}
-
-	next();
-})
-
-Vue.config.productionTip = false
-new Vue({
-	router,
-	store,
-	render: h => h(App)
-}).$mount('#app')

+ 0 - 135
src/projects/home/utils/request.js

@@ -1,135 +0,0 @@
-import axios from 'axios';
-import store from '$project/store';
-import router from '@/router';
-import Vue from 'vue';
-import $ from 'jquery';
-
-import {
-	getToken
-} from '$project/utils/storage'
-
-axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'
-
-//检测是否可以访问通
-var baseApiList = [process.env.VUE_APP_BACKEND_URL, process.env.VUE_APP_MIRROR_BACKEND_URL];
-var apiTypeIndex = 0;
-var checkApiGetBackendUrl = function(index) {
-	$.ajax({
-		url: baseApiList[index] + '/mobile/companyInfoApi/link',
-		type: 'GET',
-		async: false, //同步
-		data: {},
-		timeout: 3000,
-		success: function(data, textStatus, jqXHR) {
-
-		},
-		error: function(xhr, textStatus) {
-			console.log(index)
-			console.log(baseApiList[index] + '异常');
-			if (document.title.indexOf('-') > -1) {
-				document.title = document.title.substring(0, document.title.indexOf('-')) + '-线路' + (index + 1);
-			} else {
-				document.title = document.title + '-线路' + (index + 1);
-			}
-
-			if (index == baseApiList.length - 1) {
-				alert('接口无法访问,请联系开发者处理');
-			} else {
-				index++;
-				apiTypeIndex = index;
-				checkApiGetBackendUrl(index);
-			}
-		},
-		complete: function() {
-			console.log('接口通畅校验完成')
-		}
-	})
-}
-checkApiGetBackendUrl(apiTypeIndex);
-
-//只有当刷新的时候才会访问一次校验
-store.commit('SET_API_TYPE', baseApiList[apiTypeIndex]);
-var BACKEND_URL = baseApiList[apiTypeIndex];
-
-// 创建axios实例
-const service = axios.create({
-	baseURL: BACKEND_URL,
-	timeout: 20000,
-	// 请求头信息
-	headers: {
-		'Content-Type': 'application/x-www-form-urlencoded',
-		'X-Requested-With': 'XMLHttpRequest',
-	},
-});
-
-//request拦截器
-service.interceptors.request.use(config => {
-
-	// if (process.env.NODE_ENV == 'devlopment') {
-	// 	var Authorization = process.env.VUE_APP_AUTH;
-	// } else {
-	var Authorization = getToken() ? getToken() : '';
-
-	//var Authorization =  'Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMDAxNSIsImV4cCI6MTYwMTM3NzQyNH0.lmtjaZH3VAreGTS9zPosBHPRQ3_DC2esuY1AV1pI1rM';
-	// }
-
-	// 获取token
-	//const token = store.state.token;
-	//if (token) {
-	config.headers['Authorization'] = Authorization;
-	//}
-	return config;
-}, error => {
-	//对请求错误处理
-	return Promise.reject(error);
-});
-
-// response拦截器
-service.interceptors.response.use(
-	response => {
-		if (response.data.code === 200) {
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-		} else if (response.data.code === 415) {
-			//这里不执行,token过期
-		} else {
-			//无code的情况
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-
-			// todo 根据返回值判定去向,比如token过期,未登录等等
-
-			// 403 接口需要登录
-			/* if (response.data.code === 403) {
-				store.dispatch('clearToken');
-				router.replace({
-					name: 'Login',
-					query: {
-						redirect: router.currentRoute.fullPath
-					}
-				});
-			} */
-
-			return Promise.reject(response.data.message);
-		}
-	},
-	error => {
-		// alert('网络超时!请重新加载!');
-		//console.error(error);
-		// 判断请求异常信息中是否含有超时timeout字符串
-		if (error.message.includes('timeout')) {
-			return Promise.reject('请求超时,请稍后再试');
-		} else if (error.message.includes('NetworkError')) {
-			return Promise.reject('网络错误,请稍后再试');
-		}
-		return Promise.reject(error);
-	}
-);
-
-export default service;

+ 0 - 60
src/projects/parking/App.vue

@@ -1,60 +0,0 @@
-<template>
-	<div id="app">
-		<router-view />
-	</div>
-</template>
-
-<script>
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'Home',
-		created() {},
-		methods: {
-			removeElement(element) {
-				for (var i = 0; i < element.length; i++) {
-					console.log(element[i]);
-					document.body.removeChild(element[i]);
-				}
-			}
-		},
-		mounted() {
-			mui('body').on('tap', '.kfz', function() {
-				mui.toast('开发中');
-			});
-			mui('body').on('tap', '.jump', function() {
-				document.location.href = this.href;
-			});
-		},
-		watch: {
-			//解决系统返回键app外的元素仍然存在的问题
-			'$route': function(to, from) {
-				var muidtpicker = document.getElementsByClassName('mui-dtpicker mui-active');
-				var muibackdrop = document.getElementsByClassName('mui-backdrop');
-				var muipoppicker = document.getElementsByClassName('mui-poppicker mui-active');
-				if (muidtpicker) {
-					this.removeElement(muidtpicker);
-					//console.log(muidtpicker)
-				}
-				if (muibackdrop) {
-					this.removeElement(muibackdrop);
-					//console.log(muibackdrop)
-				}
-				if (muipoppicker) {
-					this.removeElement(muipoppicker);
-					//console.log(muibackdrop)
-				}
-			}
-		},
-	}
-</script>
-
-<style lang="scss">
-	#app {
-		font-family: Avenir, Helvetica, Arial, sans-serif;
-		-webkit-font-smoothing: antialiased;
-		-moz-osx-font-smoothing: grayscale;
-	}
-</style>

+ 0 - 87
src/projects/parking/apis/car.js

@@ -1,87 +0,0 @@
-import request from '@/utils/request'
-import request51 from '@/utils/request51'
-
-import Qs from 'qs';
-
-//获取停车场信息
-export function findByCompanyId(companyId) {
-	return request({
-		url: '/mobile/parkingInfoApi/findByCompanyId',
-		data: Qs.stringify({
-			companyId: companyId
-		}),
-		method: 'post',
-	})
-}
-
-
-//查询车牌号缴费详情
-export function carPayDetail(params) {
-	return request({
-		url: '/mobile/parkingInfoApi/carPayDetail',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}
-
-//查询当前车辆缴费详情
-export function channelPayDetail(params) {
-	return request({
-		url: '/mobile/parkingInfoApi/channelPayDetail',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}
-
-//获取微信支付信息
-export function parkingWxPay(params) {
-	return request({
-		url: '/wxPay/parkingWxPay',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}
-
-//获取支付宝支付信息
-export function parkingTradeWebPay(params) {
-	return request({
-		url: '/aliPay/parkingTradeWebPay',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}
-
-
-//获取停车场信息
-export function userGetCarDetail(code,companyId,qrCode) {
-	return request({
-		url: '/mobile/parkingInfoApi/userGetCarDetail?carNumber='+code+'&merchantId='+companyId+"&qrCode="+qrCode,
-		
-		method: 'get',
-	})
-}
-
-//获取停车场信息
-export function userGetCarMember(carNumber,companyId,qrCode) {
-	return request51({
-		url: '/parkingMemberInfo/userGetCarMember',
-		data: Qs.stringify({
-			carNumber:carNumber,
-			 shopId:companyId,
-			 qrCode:qrCode,
-		}),
-		method: 'post',
-	})
-}
-
-export function validQrCode(companyId,qrCode) {
-	return request51({
-		url: '/parkingMemberInfo/validQrCode',
-		data: Qs.stringify({
-		 
-			 shopId:companyId,
-			 qrCode:qrCode,
-		}),
-		method: 'post',
-	})
-}

+ 0 - 29
src/projects/parking/apis/common.js

@@ -1,29 +0,0 @@
-import request from '../utils/request'
-import Qs from 'qs';
-
-//上传图片
-export function upload(formData) {
-	return request({
-		url: '/mobile/personInfoApi/upload',
-		data: formData,
-		method: 'post',
-	})
-}
-
-//上传图片
-export function uploadBase64(formData) {
-	return request({
-		url: '/mobile/personInfoApi/uploadBase64',
-		data: formData,
-		method: 'post',
-	})
-}
-
-//发送短信
-export function sendMsg(params) {
-	return request({
-		url: '/mobile/personInfoApi/getVerifyCode',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}

+ 0 - 62
src/projects/parking/apis/merchant.js

@@ -1,62 +0,0 @@
-import request from '@/utils/request'
-import Qs from 'qs';
-
-//查询获取商户token等信息
-export function findByOpenIdAndMerchant(openId, merchantId) {
-	return request({
-		url: '/mobile/parkingInfoApi/findByOpenIdAndMerchant',
-		data: Qs.stringify({
-			openId: openId,
-			merchantId: merchantId
-		}),
-		method: 'post',
-	})
-}
-
-//查询停车详情
-export function queryParkDetail(params) {
-	return request({
-		url: '/mobile/parkingInfoApi/queryParkDetail',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}
-
-//赠送优惠券
-export function giveDiscountTicket(params) {
-	return request({
-		url: '/mobile/parkingInfoApi/giveDiscountTicket',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}
-
-//历史记录列表
-export function discountTicketList(params) {
-	return request({
-		url: '/mobile/parkingInfoApi/discountTicketList',
-		data: Qs.stringify(params),
-		method: 'post',
-	})
-}
-
-//历史记录详情
-export function discountTicketDetail(id) {
-	return request({
-		url: '/mobile/parkingInfoApi/discountTicketDetail',
-		data: Qs.stringify({
-			id: id
-		}),
-		method: 'post',
-	})
-}
-
-
-//绑定停车场商户
-export function bindParkMerchant(data) {
-	return request({
-		url: '/mobile/parkingInfoApi/bindParkMerchant',
-		data: Qs.stringify(data),
-		method: 'post',
-	})
-}

+ 0 - 34
src/projects/parking/apis/weixin.js

@@ -1,34 +0,0 @@
-import request from '../utils/request'
-import Qs from 'qs';
-
-//根据code换取openid
-export function getDataByCode(code) {
-	return request({
-		url: '/wechat/findUserInfo/' + code,
-		params: {},
-		method: 'get',
-	})
-}
-
-//获取微信配置
-export function getConfig(url) {
-	return request({
-		url: '/wechat/getConfig',
-		params: {
-			url: url
-		},
-		method: 'get',
-	})
-}
-
-//根据openId获取当前用户角色
-export function getPopedom(openId, type) {
-	return request({
-		url: '/mobile/personInfoApi/findPopedomByOpenId',
-		data: Qs.stringify({
-			openId: openId,
-			type: type
-		}),
-		method: 'post',
-	})
-}

+ 0 - 168
src/projects/parking/components/CommonCar.vue

@@ -1,168 +0,0 @@
-<template>
-	<div>
-		<loading :visible="isLoading" :doLoading="doLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import * as API_WeiXin from '$project/apis/weixin'
-	import * as API_Ali from '$project/apis/ali'
-	import Loading from '$project/components/Loading.vue'
-	import {
-		getUrlParam,
-		getWeixinRedirectURI,
-		getAlipayRedirectURI
-	} from '$project/utils'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import * as types from '$project/store/mutation-types'
-	export default {
-		name: 'CommonCar',
-		components: {
-			Loading,
-		},
-		props: {
-			//是否获取openid
-			checkOpenId: {
-				require: false,
-				default: true,
-			},
-			doLoading: {
-				require: false,
-				default: false,
-			},
-		},
-		data() {
-			return {
-				isLoading: false,
-			}
-		},
-		created() {
-			//公共组件的执行方法放在created中执行,父组件的create放在motuned中执行
-			if (IS_WEIXIN) {
-				if (this.checkOpenId) {
-					if (!this.wx_openId) {
-						this.getOpenid();
-					} else {
-						this.asynCallBack();
-					}
-				}
-			} else if (IS_ALI) {
-				if (this.checkOpenId) {
-					if (!this.ali_openId) {
-						this.getUserId();
-					} else {
-						this.asynCallBack();
-					}
-				}
-			} else {
-				if (this.checkOpenId) {
-					/* mui.alert('请使用微信浏览打开!', '提示', function() {
-						//info.innerText = '你刚关闭了警告框';
-					}); */
-				}
-			}
-		},
-		methods: {
-			//获取openid
-			getOpenid() {
-				const code = getUrlParam('code');
-				if (!code) {
-					window.location.href = getWeixinRedirectURI(process.env.VUE_APP_WXAPPID, document.URL);
-				} else {
-					console.log(code);
-
-					if (!this.wx_openId) {
-						const step1 = API_WeiXin.getDataByCode(code).then(response => {
-							//console.log(response)
-							this.set_wx_openid(response.openid);
-
-							//回调
-							this.asynCallBack();
-
-							return Promise.resolve(response.openid);
-						}).catch(error => {
-							//console.log(error);
-							mui.toast(error);
-							return Promise.reject(error);
-						});
-						step1.then(() => {
-							let redirect = this.$route.query.redirect;
-							if (redirect) {
-								this.$router.push({
-									path: decodeURIComponent(redirect)
-								});
-							} else {
-								window.location.href = document.URL.replace(/\?code=(.*?)&state=STATE/g, '');
-							}
-						});
-					} else {
-						//如果存在openid,把链接中code字符去除
-						window.location.href = document.URL.replace(/\?code=(.*?)&state=STATE/g, '');
-					}
-				}
-			},
-			//获取openid
-			getUserId() {
-				var code = getUrlParam('auth_code');
-				if (!code) {
-					//alert(getAlipayRedirectURI(process.env.VUE_APP_ALIAPPID, document.URL))
-					//这里用car/search来代替
-					var authUrl = document.URL.replace('car/search', 'auth');
-					window.location.href = getAlipayRedirectURI(process.env.VUE_APP_ALIAPPID, authUrl + '&page=' +
-						encodeURIComponent(document.URL));
-				} else {
-					console.log(code);
-					if (!this.ali_openId) {
-						const step1 = API_Ali.getDataByCode(code).then(response => {
-							//alert(JSON.stringify(response))
-							this.set_ali_openid(response.openid);
-
-							//回调
-							this.asynCallBack();
-
-							return Promise.resolve(response.openid);
-						}).catch(error => {
-							//console.log(error);
-							return Promise.reject(error);
-						});
-						step1.then(() => {
-							let redirect = this.$route.query.redirect;
-							if (redirect) {
-								this.$router.push({
-									path: decodeURIComponent(redirect)
-								});
-							} else {
-								window.location.href = document.URL.replace(/\?code=(.*?)&state=STATE/g, '');
-							}
-						});
-					} else {
-						//如果存在openid,把链接中code字符去除
-						window.location.href = document.URL.replace(/\?code=(.*?)&state=STATE/g, '');
-					}
-				}
-			},
-
-			//异步回调父组件的方法
-			asynCallBack() {
-				this.$emit('asynCallBack');
-			},
-			...mapMutations({
-				set_wx_openid: types.SET_WEIXIN_OPENID,
-				set_ali_openid: types.SET_ALI_OPENID,
-			})
-		},
-		mounted() {},
-		computed: {
-			...mapGetters({
-				wx_openId: 'wx_openid',
-				ali_openId: 'ali_openid',
-			})
-		}
-	}
-</script>
-
-<style>
-</style>

+ 0 - 156
src/projects/parking/components/CommonMerchant.vue

@@ -1,156 +0,0 @@
-<template>
-	<div>
-		<loading :visible="isLoading" :doLoading="doLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import * as API_WeiXin from '$project/apis/weixin'
-	import * as API_Merchant from '@/apis/merchant'
-	import Loading from '$project/components/Loading.vue'
-	import {
-		getUrlParam,
-		getWeixinRedirectURI,
-		isWeiXin
-	} from '$project/utils'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import * as types from '$project/store/mutation-types'
-	export default {
-		name: 'CommonMerchant',
-		components: {
-			Loading,
-		},
-		props: {
-			//是否获取openid
-			checkOpenId: {
-				require: false,
-				default: true,
-			},
-			doLoading: {
-				require: false,
-				default: false,
-			},
-		},
-		data() {
-			return {
-				isLoading: false,
-			}
-		},
-		created() {
-			//公共组件的执行方法放在created中执行,父组件的create放在motuned中执行
-			if (isWeiXin()) {
-				if (this.checkOpenId) {
-					if (!this.openId) {
-						this.getOpenid();
-					} else {
-						this.getDataByOpenId();
-					}
-				}
-			} else {
-				if (this.checkOpenId) {
-					/* mui.alert('请使用微信浏览打开!', '提示', function() {
-						//info.innerText = '你刚关闭了警告框';
-					}); */
-				}
-			}
-		},
-		methods: {
-			//获取openid
-			getOpenid() {
-				const code = getUrlParam('code');
-				if (!code) {
-					window.location.href = getWeixinRedirectURI(process.env.VUE_APP_WXAPPID, document.URL);
-				} else {
-					console.log(code);
-
-					if (!this.openId) {
-						const step1 = API_WeiXin.getDataByCode(code).then(response => {
-							//console.log(response)
-							this.set_openid(response.openid);
-
-							//角色判定调用不同的信息获取详情
-							this.getDataByOpenId();
-
-							return Promise.resolve(response.openid);
-						}).catch(error => {
-							//console.log(error);
-							return Promise.reject(error);
-						});
-						step1.then(() => {
-							let redirect = this.$route.query.redirect;
-							if (redirect) {
-								this.$router.push({
-									path: decodeURIComponent(redirect)
-								});
-							} else {
-								window.location.href = document.URL.replace(/\?code=(.*?)&state=STATE/g, '');
-							}
-						});
-					} else {
-						//如果存在openid,把链接中code字符去除
-						window.location.href = document.URL.replace(/\?code=(.*?)&state=STATE/g, '');
-					}
-				}
-			},
-			//角色判定调用不同的信息获取详情
-			getDataByOpenId() {
-				this.getUserInfoByOpenId();
-			},
-			//获取用户详情
-			getUserInfoByOpenId() {
-				this.isLoading = true;
-
-				var type = type || '';
-				API_Merchant.findByOpenIdAndMerchant(this.openId, this.parking_merchant_id).then(response => {
-
-					this.isLoading = false;
-
-					console.log(response)
-
-					var token = response ? response.token : '';
-					this.set_token(token);
-
-					this.set_parking_merchant_data(response);
-
-
-					this.asynCallBack();
-
-				}).catch(error => {
-					mui.toast(error);
-				})
-			},
-
-
-
-			//异步回调父组件的方法
-			asynCallBack() {
-				this.$emit('asynCallBack');
-			},
-			...mapMutations({
-				set_openid: types.SET_WEIXIN_OPENID,
-				set_token: types.SET_TOKEN,
-				set_parking_merchant_data: types.SET_PARKING_MERCHANT_DATA
-			})
-		},
-		mounted() {
-			//如果是开发环境则直接读取findbyopenid信息
-			if (process.env.VUE_APP_NODE_NAME == 'devlopment') {
-				this.getDataByOpenId();
-			}
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-				token: 'token',
-				parking_merchant_id: 'parking_merchant_id',
-				parking_merchant_data: 'parking_merchant_data'
-			})
-		}
-	}
-</script>
-
-<style>
-</style>

+ 0 - 44
src/projects/parking/main.js

@@ -1,44 +0,0 @@
-import Vue from 'vue'
-import App from './App.vue'
-import router from './router'
-import store from '$project/store'
-
-//引入mui
-import mui from '$project/assets/js/mui.js'
-import '$project/assets/css/mui.min.css'
-import Vconsole from 'vconsole'
-
-window.mui = mui;
-window.mui.init();
-
-
-//引入全局配置
-import '$project/utils/global'
-
-if (location.hostname === 'localhost') {
-	Vue.prototype.HTTPLOCAT = ''
-} else {
-	const http = window.location.protocol + '//' + location.hostname + ':' + location.port
-	Vue.prototype.HTTPLOCAT = http + ''
-}
-
-router.beforeEach((to, from, next) => {
-	if (to.query.test) {
-		if (to.query.test == 'test') {
-			let vConsole = new Vconsole()
-		}
-	}
-	
-	if (process.env.VUE_APP_NODE_NAME == 'production') {
-		window._hmt.push(['_trackEvent', '页面跳转', 'click', to.meta.title, 1]);
-	}
-
-	next();
-})
-
-Vue.config.productionTip = false
-new Vue({
-	router,
-	store,
-	render: h => h(App)
-}).$mount('#app')

+ 0 - 53
src/projects/parking/router/car.js

@@ -1,53 +0,0 @@
-import Vue from 'vue'
-import VueRouter from 'vue-router'
-
-if (!window.VueRouter) Vue.use(VueRouter)
-
-const routesCar = [
-
-	//车主支付
-	{
-		path: '/car',
-		component: () => import('../views/Layout.vue'),
-		children: [
-			//搜索
-			{
-				path: 'search',
-				name: 'CarSearch',
-				component: () => import('../views/Car/Search.vue'),
-				meta: {
-					title: '搜索',
-				}
-			},
-			//车辆录入
-			{
-				path: 'input',
-				name: 'CarInput',
-				component: () => import('../views/Car/Input.vue'),
-				meta: {
-					title: '车辆录入',
-				}
-			},
-			//支付
-			{
-				path: 'pay',
-				name: 'CarPay',
-				component: () => import('../views/Car/Pay.vue'),
-				meta: {
-					title: '支付',
-				}
-			},
-			//支付结果
-			{
-				path: 'payResult',
-				name: 'CarPayResult',
-				component: () => import('../views/Car/PayResult.vue'),
-				meta: {
-					title: '支付结果',
-				}
-			},
-		]
-	},
-]
-
-export default routesCar

+ 0 - 55
src/projects/parking/router/index.js

@@ -1,55 +0,0 @@
-import Vue from 'vue'
-import VueRouter from 'vue-router'
-
-//公共
-import routesCar from './car'
-//访客
-import routesMerchant from './merchant'
-
-if (!window.VueRouter) Vue.use(VueRouter)
-
-const routesIndex = [
-	//首页
-	{
-		path: '/',
-		name: 'Home',
-		component: () => import('../views/Home.vue'),
-		meta: {
-			requireAuth: false,
-			role: [],
-			title: '首页',
-		}
-	},
-	//支付宝微信获取中间页
-	{
-		path: '/auth',
-		name: 'Auth',
-		component: () => import('../views/Auth.vue'),
-		meta: {
-			requireAuth: false,
-			role: [],
-			title: '支付宝微信获取中间页',
-		}
-	},
-]
-
-const routes = routesIndex.concat(routesCar, routesMerchant);
-
-const router = new VueRouter({
-	//base: process.env.BASE_URL,
-	routes,
-
-	// keep-alive 返回缓存页面后记录浏览位置
-	scrollBehavior(to, from, savedPosition) {
-		if (savedPosition) {
-			return savedPosition;
-		} else {
-			return {
-				x: 0,
-				y: 0
-			}
-		}
-	},
-})
-
-export default router

+ 0 - 86
src/projects/parking/router/merchant.js

@@ -1,86 +0,0 @@
-import Vue from 'vue'
-import VueRouter from 'vue-router'
-
-if (!window.VueRouter) Vue.use(VueRouter)
-
-const routesMerchant = [
-	//商户管理
-	{
-		path: '/merchant',
-		component: () => import('../views/Layout.vue'),
-		children: [
-			//绑定商户
-			{
-				
-					path: 'bind',
-					name: 'MerchantBind',
-					component: () => import('../views/Merchant/Bind.vue'),
-					meta: {
-						title: '绑定商户',
-					}
-				
-			},
-			//登记
-			{
-				path: 'check',
-				component: () => import('../views/Layout.vue'),
-				children: [
-					//搜索
-					{
-						path: 'search',
-						name: 'MerchantCheckSearch',
-						component: () => import('../views/Merchant/Check/Search.vue'),
-						meta: {
-							title: '搜索',
-						}
-					},
-					//搜索结果
-					{
-						path: 'searchResult',
-						name: 'MerchantCheckSearchResult',
-						component: () => import('../views/Merchant/Check/SearchResult.vue'),
-						meta: {
-							title: '搜索结果',
-						}
-					},
-					//登记结果
-					{
-						path: 'result',
-						name: 'MerchantCheckResult',
-						component: () => import('../views/Merchant/Check/Result.vue'),
-						meta: {
-							title: '登记结果',
-						}
-					},
-				]
-			},
-			//历史记录
-			{
-				path: 'history',
-				component: () => import('../views/Layout.vue'),
-				children: [
-					//记录列表
-					{
-						path: 'list',
-						name: 'MerchantHistoryList',
-						component: () => import('../views/Merchant/History/List.vue'),
-						meta: {
-							title: '记录列表',
-						}
-					},
-					//记录详情
-					{
-						path: 'info',
-						name: 'MerchantHistoryInfo',
-						component: () => import('../views/Merchant/History/Info.vue'),
-						meta: {
-							title: '记录详情',
-						}
-					},
-				]
-			},
-		]
-	},
-]
-
-export default routesMerchant

+ 0 - 135
src/projects/parking/utils/request.js

@@ -1,135 +0,0 @@
-import axios from 'axios';
-import store from '$project/store';
-import router from '@/router';
-import Vue from 'vue';
-import $ from 'jquery';
-
-import {
-	getToken
-} from '$project/utils/storage'
-
-axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'
-
-//检测是否可以访问通
-var baseApiList = [process.env.VUE_APP_BACKEND_URL, process.env.VUE_APP_MIRROR_BACKEND_URL];
-var apiTypeIndex = 0;
-var checkApiGetBackendUrl = function(index) {
-	$.ajax({
-		url: baseApiList[index] + '/mobile/companyInfoApi/link',
-		type: 'GET',
-		async: false, //同步
-		data: {},
-		timeout: 3000,
-		success: function(data, textStatus, jqXHR) {
-
-		},
-		error: function(xhr, textStatus) {
-			console.log(index)
-			console.log(baseApiList[index] + '异常');
-			if (document.title.indexOf('-') > -1) {
-				document.title = document.title.substring(0, document.title.indexOf('-')) + '-线路' + (index + 1);
-			} else {
-				document.title = document.title + '-线路' + (index + 1);
-			}
-
-			if (index == baseApiList.length - 1) {
-				alert('接口无法访问,请联系开发者处理');
-			} else {
-				index++;
-				apiTypeIndex = index;
-				checkApiGetBackendUrl(index);
-			}
-		},
-		complete: function() {
-			console.log('接口通畅校验完成')
-		}
-	})
-}
-checkApiGetBackendUrl(apiTypeIndex);
-
-//只有当刷新的时候才会访问一次校验
-store.commit('SET_API_TYPE', baseApiList[apiTypeIndex]);
-var BACKEND_URL = baseApiList[apiTypeIndex];
-
-// 创建axios实例
-const service = axios.create({
-	baseURL: BACKEND_URL,
-	timeout: 20000,
-	// 请求头信息
-	headers: {
-		'Content-Type': 'application/x-www-form-urlencoded',
-		'X-Requested-With': 'XMLHttpRequest',
-	},
-});
-
-//request拦截器
-service.interceptors.request.use(config => {
-
-	// if (process.env.NODE_ENV == 'devlopment') {
-	// 	var Authorization = process.env.VUE_APP_AUTH;
-	// } else {
-	var Authorization = getToken() ? getToken() : '';
-
-	//var Authorization =  'Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMDAxNSIsImV4cCI6MTYwMTM3NzQyNH0.lmtjaZH3VAreGTS9zPosBHPRQ3_DC2esuY1AV1pI1rM';
-	// }
-
-	// 获取token
-	//const token = store.state.token;
-	//if (token) {
-	config.headers['Authorization'] = Authorization;
-	//}
-	return config;
-}, error => {
-	//对请求错误处理
-	return Promise.reject(error);
-});
-
-// response拦截器
-service.interceptors.response.use(
-	response => {
-		if (response.data.code === 200) {
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-		} else if (response.data.code === 415) {
-			//这里不执行,token过期
-		} else {
-			//无code的情况
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-
-			// todo 根据返回值判定去向,比如token过期,未登录等等
-
-			// 403 接口需要登录
-			/* if (response.data.code === 403) {
-				store.dispatch('clearToken');
-				router.replace({
-					name: 'Login',
-					query: {
-						redirect: router.currentRoute.fullPath
-					}
-				});
-			} */
-
-			return Promise.reject(response.data.message);
-		}
-	},
-	error => {
-		// alert('网络超时!请重新加载!');
-		//console.error(error);
-		// 判断请求异常信息中是否含有超时timeout字符串
-		if (error.message.includes('timeout')) {
-			return Promise.reject('请求超时,请稍后再试');
-		} else if (error.message.includes('NetworkError')) {
-			return Promise.reject('网络错误,请稍后再试');
-		}
-		return Promise.reject(error);
-	}
-);
-
-export default service;

+ 0 - 135
src/projects/parking/utils/request51.js

@@ -1,135 +0,0 @@
-import axios from 'axios';
-import store from '$project/store';
-import router from '@/router';
-import Vue from 'vue';
-import $ from 'jquery';
-
-import {
-	getToken
-} from '$project/utils/storage'
-
-axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'
-
-//检测是否可以访问通
-var baseApiList = [process.env.VUE_APP_BACKEND_URL51, process.env.VUE_APP_MIRROR_BACKEND_URL];
-var apiTypeIndex = 0;
-var checkApiGetBackendUrl = function(index) {
-	$.ajax({
-		url: baseApiList[index] + '/mobile/companyInfoApi/link',
-		type: 'GET',
-		async: false, //同步
-		data: {},
-		timeout: 3000,
-		success: function(data, textStatus, jqXHR) {
-
-		},
-		error: function(xhr, textStatus) {
-			console.log(index)
-			console.log(baseApiList[index] + '异常');
-			if (document.title.indexOf('-') > -1) {
-				document.title = document.title.substring(0, document.title.indexOf('-')) + '-线路' + (index + 1);
-			} else {
-				document.title = document.title + '-线路' + (index + 1);
-			}
-
-			if (index == baseApiList.length - 1) {
-				alert('接口无法访问,请联系开发者处理');
-			} else {
-				index++;
-				apiTypeIndex = index;
-				checkApiGetBackendUrl(index);
-			}
-		},
-		complete: function() {
-			console.log('接口通畅校验完成')
-		}
-	})
-}
-checkApiGetBackendUrl(apiTypeIndex);
-
-//只有当刷新的时候才会访问一次校验
-store.commit('SET_API_TYPE', baseApiList[apiTypeIndex]);
-var BACKEND_URL = baseApiList[apiTypeIndex];
-
-// 创建axios实例
-const service = axios.create({
-	baseURL: BACKEND_URL,
-	timeout: 20000,
-	// 请求头信息
-	headers: {
-		'Content-Type': 'application/x-www-form-urlencoded',
-		'X-Requested-With': 'XMLHttpRequest',
-	},
-});
-
-//request拦截器
-service.interceptors.request.use(config => {
-
-	// if (process.env.NODE_ENV == 'devlopment') {
-	// 	var Authorization = process.env.VUE_APP_AUTH;
-	// } else {
-	var Authorization = getToken() ? getToken() : '';
-
-	//var Authorization =  'Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMDAxNSIsImV4cCI6MTYwMTM3NzQyNH0.lmtjaZH3VAreGTS9zPosBHPRQ3_DC2esuY1AV1pI1rM';
-	// }
-
-	// 获取token
-	//const token = store.state.token;
-	//if (token) {
-	config.headers['Authorization'] = Authorization;
-	//}
-	return config;
-}, error => {
-	//对请求错误处理
-	return Promise.reject(error);
-});
-
-// response拦截器
-service.interceptors.response.use(
-	response => {
-		if (response.data.code === 200) {
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-		} else if (response.data.code === 415) {
-			//这里不执行,token过期
-		} else {
-			//无code的情况
-			if (response.data.result) {
-				return Promise.resolve(response.data.data);
-			} else {
-				return Promise.reject(response.data.message);
-			}
-
-			// todo 根据返回值判定去向,比如token过期,未登录等等
-
-			// 403 接口需要登录
-			/* if (response.data.code === 403) {
-				store.dispatch('clearToken');
-				router.replace({
-					name: 'Login',
-					query: {
-						redirect: router.currentRoute.fullPath
-					}
-				});
-			} */
-
-			return Promise.reject(response.data.message);
-		}
-	},
-	error => {
-		// alert('网络超时!请重新加载!');
-		//console.error(error);
-		// 判断请求异常信息中是否含有超时timeout字符串
-		if (error.message.includes('timeout')) {
-			return Promise.reject('请求超时,请稍后再试');
-		} else if (error.message.includes('NetworkError')) {
-			return Promise.reject('网络错误,请稍后再试');
-		}
-		return Promise.reject(error);
-	}
-);
-
-export default service;

+ 0 - 33
src/projects/parking/views/Auth.vue

@@ -1,33 +0,0 @@
-<template>
-	<div>
-		<common-car ref="common" @asynCallBack="asynCallBack"></common-car>
-	</div>
-</template>
-
-<script>
-	import CommonCar from '@/components/CommonCar.vue'
-	export default {
-		name: 'Auth',
-		components: {
-			CommonCar,
-		},
-		data() {
-			return {
-				page: this.$route.query.page,
-			}
-		},
-		methods: {
-			asynCallBack() {
-
-			}
-		},
-		mounted() {
-			if(this.page){
-				window.location.href = this.page;
-			}
-		},
-	}
-</script>
-
-<style>
-</style>

+ 0 - 266
src/projects/parking/views/Car/Input.vue

@@ -1,266 +0,0 @@
-<template>
-	<div>
-		<common-car ref="common" @asynCallBack="asynCallBack"></common-car>
-		<top-header :leftShow='false' :pageTitle="pageTitle"></top-header>
-
-
-		<div class="mui-content" v-if="!qrCode">
-			<div class="vongi-car-over">
-				<img src="~$project/assets/img/car_fail.png" />
-				
-				<h2>链接已失效</h2>
-				<!-- <div class="colorfe616c">请在30分钟内离开停车场,<br>超出时间段将可能产生新的费用</div>
-				<div class="vongi-car-over-line"></div>
-				<p>停车时长:1小时20分钟</p>
-				<p>入场时间:07-12 13:51</p>
-				<p>离场时间:07-12 16:30</p> -->
-			</div>
-			<!--缴费失败-->
-			<!-- <div class="vongi-car-over">
-				<img src="~$project/assets/img/car_fail.png" />
-				<h2>缴费失败!</h2>
-				<div>请重新扫码再试一次,如无法登记车牌,<br>请联系车场管理员。</div>
-			</div>	 -->
-		</div>
-		
-		<div class="mui-content vongi-car-index"  v-if="qrCode">
-			<div class="vongi-car-banner">
-<!-- 				<h5 class="mui-ellipsis">停车位置:{{detail.parkingName}}</h5>
- -->				<div class="flew">
-					<input type="text" v-model="searchForm.carNumber"
-						readonly="readonly" ref="input"
-						@click="show"
-					 placeholder="请输入车牌号查询">
-					<button @click="submit" class="mui-btn mui-btn-blue">录入</button>
-				</div>
-			</div>
-			
-		</div>
-		
-			<div class="vongi-qingjiadt" v-if="kongResult">
-				<form class="mui-input-group vongi-cd-payli">
-					
-				 <div class="mui-input-row">
-				 	<label>车牌号</label>
-				 	<span v-text="channelForm.carNumber"></span>
-				 </div>
-					<div class="mui-input-row">
-						<label>生效时间</label>
-						<span v-text="detail.inTime"></span>
-					</div>
-					<div class="mui-input-row">
-						<label>截止时间</label>
-						<span v-text="detail.memberTime"></span>
-					</div>
-					
-				</form>
-				<div class=" " style=" text-align: center;padding: 30px;color: #3f51b5;">
-					<div class="">
-						<h1>录入成功!</h1>
- 					</div>
-				</div>
-			</div>
-			<div 
-			 v-if="qrCode"  class="vongi-car-footer" style="position: fixed;width: 100%;bottom: 10px;color: red;" >
-			 
-				<div class="mui-media-body" style="padding: 20px;margin-bottom: 15px;">
-					<b>注:</b>
-					<br>
-					1.请于确认录入后5分钟再离场。
-					<br>
-					2.会员续租车辆请于到期后再到前台扫码续租
-					<br>
-					3.点击输入框可显示\收起键盘
-				</div>
-				<vue-touch-keyboard  :options="options" :defaultKeySet="defaultKeySet"
-				 v-show="visible" :layout="layout" 
-				   :accept="accept" :input="input"  ref="key"  />
-			</div>
-			
-	
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import  VueTouchKeyboard from '@/vue-touch-keyboard'
-	import style from "@/vue-touch-keyboard/dist/vue-touch-keyboard.css"; // load default style
-	import Vue from 'vue'
-	Vue.use(VueTouchKeyboard);
-	
-	
-	import * as API_Car from '@/apis/car'
-	import CommonCar from '@/components/CommonCar.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import * as types from '$project/store/mutation-types'
-	export default {
-		name: 'CarSearch',
-		components: {
-			CommonCar,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				defaultKeySet:"shifted",
-				visible: true,
-				layout: "compact",
-				input: null,
-				options: {
-				  useKbEvents: false,
-				  preventClickEvent: false
-				},
-				isLoading: false,
-				qrCode:'#',
-				pageTitle: '车牌查询',
-
-				searchForm: {
-					carNumber: '',
-					companyId: '',
-				},
-				
-				channelForm: {
-					channelId: '',
-					companyId: '',
-				},
-
-				kongResult: false,
-
-				detail: {}
-			}
-		},
-		created() {
-			if (this.$route.query.companyId) {
-				//入口页必须带merchantId
-				this.set_parking_company_id(this.$route.query.companyId);
-			} else {
-				if (!this.parking_company_id) {
-					mui.alert('参数错误');
-				}
-			}
-			if(this.$route.query.qrCode){
-				this.qrCode=this.$route.query.qrCode;
-				
-			}
-
-
-		},
-		methods: {
-			
-			accept(text) {
-			    this.visible = false
-			},
-		
-			show(e) {
-				
-			  this.input = e.target;
-			  
-			  if (!this.visible){
-				  if(this.searchForm.carNumber.length==0){
-					  this.$refs.key.changeKeySet(this.defaultKeySet)
-				  }
-				  this.visible = true
-			  }else{
-				    this.visible = false
-			  }
-			  
-			},
-			
-			
-			//获取停车场信息
-			 submit(){
-				 
-				 if (this.checkForm()) {
-					 this.isLoading = true;
-					 					this.channelForm={
-					 						carNumber:this.searchForm.carNumber,
-					 						companyId:this.parking_company_id
-					 					}
-					 API_Car.userGetCarMember(this.channelForm.carNumber,this.channelForm.companyId,this.qrCode).then(response => {
-					 					
-					 	this.isLoading = false;
-					 	this.kongResult = false;
-					 					//this.searchForm.carNumber=""
-					 				
-					 					this.searchByCarNumber()
-					 }).catch(error => {
-					 	this.isLoading = false;
-					 	mui.toast(error);
-						//this.searchByCarNumber()
-					 	
-					 })
-				 }
-				 	
-			 },
-			//检测
-			checkForm() {
-				if (!this.searchForm.carNumber) {
-					mui.toast('请输入车牌号码');
-					return false;
-				} else {
-					return true;
-				}
-			},
-			//查询车牌信息
-			searchByCarNumber() {
-				
-					this.isLoading = true;
-					
-					API_Car.userGetCarDetail(this.searchForm.carNumber,this.parking_company_id,this.qrCode).then(response => {
-						this.detail=response;
-					
-						this.isLoading = false;
-						this.kongResult = true;
-						this.visible=false;
-
-					}).catch(error => {
-						this.isLoading = false;
-						mui.toast(error);
-						
-					})
-				
-			},
-			validQrCode(){
-				this.isLoading = true;
-				
-				API_Car.validQrCode(this.parking_company_id,this.qrCode).then(response => {
-					this.isLoading = false;
-					  this.input = this.$refs.input;
-				}).catch(error => {
-					this.isLoading = false;
-					this.qrCode="";
-					mui.toast(error);
-					
-				})
-			},
-			asynCallBack() {},
-			...mapMutations({
-				set_parking_company_id: types.SET_PARKING_COMPANY_ID,
-			})
-		},
-		mounted() {
-			this.validQrCode()
-		
-		},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				wx_openId: 'wx_openid',
-				ali_openId: 'ali_openid',
-				parking_company_id: 'parking_company_id'
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 189
src/projects/parking/views/Car/Pay.vue

@@ -1,189 +0,0 @@
-<template>
-	<div>
-		<common-car ref="common" @asynCallBack="asynCallBack"></common-car>
-		<top-header :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content vongi-car-pay">
-			<div class="vongi-car-pay-top">
-				<h4>停车费</h4>
-				<div class="mui-h1"  v-if="!kongResult" v-text="'¥'+detail.total"></div>
-				<div class="mui-h1"  v-if="kongResult"></div>
-				
-			</div>
-			<div class="vongi-qingjiadt">
-				<form class="mui-input-group vongi-cd-payli">
-					<div class="mui-input-row">
-						<label>车牌号</label>
-						<span class="flew">
-							{{detail.carNumber}}
-							<a @click="goToBack" class="color4fc5f7 marginl5">修改</a>
-						</span>
-					</div>
-					<div class="mui-input-row">
-						<label>停车位置</label>
-						<span v-text="detail.parkingName"></span>
-					</div>
-					<div class="mui-input-row">
-						<label>入场时间</label>
-						<span v-text="detail.inParkingTime"></span>
-					</div>
-				</form>
-				<div v-if="detail.discountMoney" class="mui-content-padded flew-sp">
-					使用优惠券
-					<a class="color4fc5f7">[停车]{{detail.discountMoney}}元停车抵用券</a>
-				</div>
-			</div>
-		</div>
-		<div class="vongi-cashier-btn-row">
-			<div class="vongi-cashier-btn-white">
-				<span>应缴金额:¥{{detail.price}}</span>
-				<div @click="pay" v-if="!kongResult" class="vongi-cashier-btn">支付离场</div>
-				<div @click="searchByChannel" v-if="kongResult" class="vongi-cashier-btn">刷新</div>
-				
-			</div>
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import CommonCar from '@/components/CommonCar.vue'
-	import * as API_Car from '@/apis/car'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import {
-		wxPayJs
-	} from '$project/utils/wxpay'
-	import {
-		aliPayJs
-	} from '$project/utils/alipay'
-	export default {
-		name: 'CarPay',
-		components: {
-			CommonCar,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '停车缴费',
-				kongResult: false,
-				detail: {
-					total:""
-				}
-			}
-		},
-		created() {
-			
-			
-			if(this.$route.query.channelId){
-				
-			}else  if (this.$route.params.detail) {
-				this.detail = this.$route.params.detail;
-			} else {
-				this.$router.push({
-					name: 'CarSearch'
-				})
-			}
-		},
-		methods: {
-			goToBack() {
-				this.$router.go(-1);
-			},
-			//支付
-			pay() {
-				if (IS_WEIXIN) {
-					this.payWx();
-				} else if (IS_ALI) {
-					this.payAli();
-				} else {
-					this.payAli();
-					mui.alert('请用微信或支付宝打开')
-				}
-			},
-			//微信支付
-			payWx() {
-				API_Car.parkingWxPay({
-					id: this.detail.id,
-					openId: this.wx_openId
-				}).then(data => {
-					data.url = window.location.href.split("#")[0] + "/#/car/payResult";
-
-					this.isLoading = false;
-					wxPayJs(data)
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-				})
-			},
-			//支付宝支付
-			payAli() {
-				API_Car.parkingTradeWebPay({
-					id: this.detail.id,
-					openId: this.ali_openId
-				}).then(response => {
-					this.isLoading = false;
-					let opthions = {
-						tradeNo: response.tradeOrder.tradeNo,
-						succUrl: window.location.href.split("#")[0] + "/#/car/payResult",
-						cancelUrl: window.location.href.split("#")[0] + "/#/car/search?companyId=" + this
-							.parking_company_id,
-					}
-					console.log(opthions);
-					aliPayJs(opthions);
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-				})
-			},
-			//查询闸口信息
-			searchByChannel() {
-				this.isLoading = true;
-				var  channelForm={}
-				channelForm.channelId = this.$route.query.channelId;
-				channelForm.companyId = this.parking_company_id;
-				API_Car.channelPayDetail(channelForm).then(response => {
-			
-					this.isLoading = false;
-					this.detail =response;
-					this.kongResult = false;
-			
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-					this.kongResult = true;
-				})
-			},
-			asynCallBack() {
-
-			}
-		},
-		mounted() {
-			if(this.$route.query.channelId){
-				this.searchByChannel()
-			}
-		},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				wx_openId: 'wx_openid',
-				ali_openId: 'ali_openid',
-				parking_company_id: 'parking_company_id'
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style scoped>
-</style>

+ 0 - 82
src/projects/parking/views/Car/PayResult.vue

@@ -1,82 +0,0 @@
-<template>
-	<div>
-		<common-car ref="common" @asynCallBack="asynCallBack"></common-car>
-		<top-header routeName="CarSearch" :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content">
-			<div class="vongi-car-over">
-				<img src="~$project/assets/img/car_yes.png" />
-				<h2>支付成功</h2>
-				<!-- <div class="colorfe616c">请在30分钟内离开停车场,<br>超出时间段将可能产生新的费用</div>
-				<div class="vongi-car-over-line"></div>
-				<p>停车时长:1小时20分钟</p>
-				<p>入场时间:07-12 13:51</p>
-				<p>离场时间:07-12 16:30</p> -->
-			</div>
-			<!--缴费失败-->
-			<!-- <div class="vongi-car-over">
-				<img src="~$project/assets/img/car_fail.png" />
-				<h2>缴费失败!</h2>
-				<div>请重新扫码再试一次,如无法登记车牌,<br>请联系车场管理员。</div>
-			</div>	 -->
-		</div>
-		<div class="fyy-footer padd30">
-			<div class="bindfyy-btn">
-				<button type="button" @click="goToSearch" class="mui-btn mui-btn-primary ">返回</button>
-			</div>
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import CommonCar from '@/components/CommonCar.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'CarPayResult',
-		components: {
-			CommonCar,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '停车缴费',
-			}
-		},
-		created() {},
-		methods: {
-			goToSearch() {
-				this.$router.push({
-					name: 'CarSearch'
-				})
-			},
-			asynCallBack() {
-
-			}
-		},
-		mounted() {},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				wx_openId: 'wx_openid',
-				ali_openid: 'ali_openid',
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 203
src/projects/parking/views/Car/Search.vue

@@ -1,203 +0,0 @@
-<template>
-	<div>
-		<common-car ref="common" @asynCallBack="asynCallBack"></common-car>
-		<top-header :pageTitle="pageTitle" :leftShow="false"></top-header>
-
-		<div class="mui-content vongi-car-index">
-			<div class="vongi-car-banner">
-				<h5 class="mui-ellipsis">停车位置:{{detail.parkingName}}</h5>
-				<div class="flew">
-					<input type="text" v-model="searchForm.carNumber"
-					 
-					 readonly="readonly" ref="input"
-					 
-					 placeholder="请输入车牌号查询">
-					<button @click="searchByCarNumber" class="mui-btn mui-btn-blue">查询</button>
-				</div>
-			</div>
-			<div v-if="kongResult" class="vongi-car-not">
-				<img src="~$project/assets/img/car_not.png">
-				<div class="mui-text-center">没有找到停车信息!</div>
-			</div>
-		</div>
-		<div class="vongi-car-footer" style="position: fixed;width: 100%;bottom: 10px;" >
-			<div class="mui-media-body" style="margin-bottom: 15px;">
-				<b>停车场收费说明:</b><br>
-				缴费后请于规定时间离场,离场会自动抬杆。如果找不到停车信息,或者临牌停车,请至集中缴费处缴纳现金。
-			</div>
-			<vue-touch-keyboard  :options="options" :defaultKeySet="defaultKeySet"
-			 v-show="visible" :layout="layout" 
-			   :accept="accept" :input="input"  ref="key"  />
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import  VueTouchKeyboard from '@/vue-touch-keyboard'
-	import style from "@/vue-touch-keyboard/dist/vue-touch-keyboard.css"; // load default style
-	import Vue from 'vue'
-	Vue.use(VueTouchKeyboard);
-	
-	import * as API_Car from '@/apis/car'
-	import CommonCar from '@/components/CommonCar.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import * as types from '$project/store/mutation-types'
-	export default {
-		name: 'CarSearch',
-		components: {
-			CommonCar,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				defaultKeySet:"shifted",
-				visible: true,
-				layout: "compact",
-				input: null,
-				options: {
-				  useKbEvents: false,
-				  preventClickEvent: false
-				},
-				isLoading: false,
-
-				pageTitle: '车牌查询',
-
-				searchForm: {
-					carNumber: '',
-					companyId: '',
-				},
-
-				channelForm: {
-					channelId: '',
-					companyId: '',
-				},
-
-				kongResult: false,
-
-				detail: {}
-			}
-		},
-		created() {
-			if (this.$route.query.companyId) {
-				//入口页必须带merchantId
-				this.set_parking_company_id(this.$route.query.companyId);
-			} else {
-				if (!this.parking_company_id) {
-					mui.alert('参数错误');
-				}
-			}
-
-			
-
-		},
-		methods: {
-			accept(text) {
-			    this.visible = false
-			},
-					
-			show(e) {
-				
-			  this.input = e.target;
-			  
-			  if (!this.visible){
-				  if(this.searchForm.carNumber.length==0){
-					  this.$refs.key.changeKeySet(this.defaultKeySet)
-				  }
-				  this.visible = true
-			  }else{
-				    this.visible = false
-			  }
-			  
-			},
-			//获取停车场信息
-			getInfo() {
-				 this.input = this.$refs.input;
-				//this.isLoading = true;
-				API_Car.findByCompanyId(this.parking_company_id).then(response => {
-
-					//this.isLoading = false;
-					
-					this.detail = response;
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-				})
-			},
-			//检测
-			checkForm() {
-				if (!this.searchForm.carNumber) {
-					mui.toast('请输入车牌号码');
-					return false;
-				} else {
-					return true;
-				}
-			},
-			//查询车牌信息
-			searchByCarNumber() {
-				if (this.checkForm()) {
-					this.isLoading = true;
-					this.searchForm.companyId = this.parking_company_id;
-					API_Car.carPayDetail(this.searchForm).then(response => {
-
-						this.isLoading = false;
-
-						this.$router.push({
-							name: 'CarPay',
-							params: {
-								detail: response
-							}
-						})
-
-					}).catch(error => {
-						this.isLoading = false;
-						mui.toast(error);
-						this.kongResult = true;
-					})
-				}
-			},
-			
-			asynCallBack() {},
-			...mapMutations({
-				set_parking_company_id: types.SET_PARKING_COMPANY_ID,
-			})
-		},
-		mounted() {
-			
-			if (this.$route.query.channelId) {
-			
-				this.$router.push({
-					name: 'CarPay',
-					query: {
-						channelId: this.$route.query.channelId
-					}
-				})
-				
-			}else if (this.parking_company_id) {
-				this.getInfo();
-			}
-		},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				wx_openId: 'wx_openid',
-				ali_openId: 'ali_openid',
-				parking_company_id: 'parking_company_id'
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 33
src/projects/parking/views/Home.vue

@@ -1,33 +0,0 @@
-<template>
-	<div></div>
-</template>
-
-<script>
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'Home',
-		data() {
-			return {}
-		},
-		created() {},
-		methods: {
-
-		},
-		mounted() {},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-			})
-		}
-	}
-</script>
-
-
-<style scoped>
-</style>

+ 0 - 21
src/projects/parking/views/Layout.vue

@@ -1,21 +0,0 @@
-<template>
-	<div>
-		<keep-alive :include="keep_alive_components">
-			<router-view></router-view>
-		</keep-alive>
-	</div>
-</template>
-
-<script>
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		computed: {
-			...mapGetters({
-				keep_alive_components: 'keep_alive_components',
-			})
-		}
-	}
-</script>

+ 0 - 175
src/projects/parking/views/Merchant/Bind.vue

@@ -1,175 +0,0 @@
-<template>
-	<div>
-		<top-header :leftShow="false" :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content vongi-car-index">
-			<div class="vongi-car-banner">
-				<h1 style="text-align: center;" class="mui-ellipsis">{{merchantName}}</h1>
-				
-			</div>
-			 
-			<form class="mui-input-group vongi-login-form">
-				<!-- <div class="mui-input-row">
-					<input name="name" v-model="subForm.name" type="text" class="mui-input-clear" placeholder="请填写您的姓名">
-				</div> -->
-				<div class="mui-input-row">
-					<input type="text"  v-model="name"  class="mui-input-clear" placeholder="请输入姓名">
-				</div>
-				<div class="mui-input-row">
-					<input   type="number" v-model="phone"  class="mui-input-clear" placeholder="请输入手机号码">
-					 
-				</div>
-			</form>
-		</div>
-		<div class="vongi-btn vongi-login-btn">
-				<button class="mui-btn mui-btn-primary" @click="submit()">
-					确认绑定
-				</button>
-			</div>
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import * as API_WeiXin from '$project/apis/weixin'
-	
-	import * as API_Merchant from '@/apis/merchant'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		getUrlParam,
-		getWeixinRedirectURI,
-		isWeiXin
-	} from '$project/utils'
-
-	export default {
-		name: 'MerchantBind',
-		components: {
-		
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '商户绑定',
-				merchantId: '',
-				merchantName: '', //
-				name:'',
-				phone: '',
-				obj:{},
-
-			}
-		},
-		created() {
-			if (this.$route.query.id) {
-				this.merchantId = this.$route.query.id;
-			}
-			if (this.$route.query.name) {
-				this.merchantName = this.$route.query.name;
-			}
-		},
-		methods: {
-			//获取openid
-			getOpenid() {
-				//const engine = window.localStorage
-				
-				this.isLoading=true
-				var obj=window.localStorage.getItem("xpgj_bind");
-				
-				const code = getUrlParam('code');
-				if (!code&&!obj) {
-					window.location.href = getWeixinRedirectURI(process.env.VUE_APP_WXAPPID, document.URL);
-				} else {
-					
-					if(!obj){
-						API_WeiXin.getDataByCode(code).then(response => {
-							//console.log(response)
-							this.openId=response.openid;
-							this.isLoading=false;
-							this.obj=obj
-							
-							window.localStorage.setItem("xpgj_wx_openid",JSON.stringify(response.openid));
-							
-							window.localStorage.setItem("xpgj_bind",JSON.stringify(response));
-						}).catch(error => {
-							mui.toast(error);
-						});
-					}else{
-						this.isLoading=false
-						this.obj=JSON.parse(obj);
-					}
-					
-					
-
-				}
-			},
-			asynCallBack() {
-
-			},
-			//检测
-			checkForm() {
-			if (!this.name) {
-				mui.toast('请输入姓名');
-				return false;
-			} else if (!this.phone) {
-					mui.toast('请输入手机号码');
-					return false;
-				} else {
-					return true;
-				}
-			},
-			//查询
-			submit() {
-				if (this.checkForm()) {
-					this.obj.name=this.name;
-					this.obj.phone=this.phone;
-					var  obj={
-						id:this.merchantId,
-						...this.obj
-					}
-					this.isLoading = true;
-				
-					
-					API_Merchant.bindParkMerchant(obj).then(response => {
-
-						//this.isLoading = false;
-						//MerchantCheckSearch
-						//mui.toast("绑定成功");
-						mui.alert('绑定成功','提示',()=>{
-							this.$router.push({
-								name: 'MerchantCheckSearch',
-								query: {
-									merchantId: this.merchantId
-								}
-							})
-						});
-						
-					}).catch(error => {
-						this.isLoading = false;
-						mui.toast(error);
-						
-					})
-				}
-			},
-
-		},
-		mounted() {
-			this.getOpenid();
-			
-		
-
-
-		},
-		destroyed() {
-
-		},
-
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 75
src/projects/parking/views/Merchant/Check/Result.vue

@@ -1,75 +0,0 @@
-<template>
-	<div>
-		<common-merchant ref="common" @asynCallBack="asynCallBack"></common-merchant>
-		<top-header routeName="MerchantCheckSearch" :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content">
-			<div class="vongi-car-over">
-				<img src="~$project/assets/img/car_yes.png" />
-				<h2>赠送成功!</h2>
-			</div>
-		</div>
-		<div class="fyy-footer padd30">
-			<div class="bindfyy-btn">
-				<button type="button" @click="goToBack" class="mui-btn mui-btn-primary ">返 回</button>
-			</div>
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import CommonMerchant from '@/components/CommonMerchant.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'MerchantCheckResult',
-		components: {
-			CommonMerchant,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '车牌登记',
-			}
-		},
-		created() {},
-		methods: {
-			//返回
-			goToBack() {
-				this.$router.push({
-					name: 'MerchantCheckSearch',
-					query: {
-						merchantId: this.parking_merchant_id
-					}
-				})
-			},
-			asynCallBack() {
-
-			},
-		},
-		mounted() {},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-				parking_merchant_id: 'parking_merchant_id'
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 140
src/projects/parking/views/Merchant/Check/Search.vue

@@ -1,140 +0,0 @@
-<template>
-	<div>
-		<common-merchant ref="common" @asynCallBack="asynCallBack"></common-merchant>
-		<top-header :pageTitle="pageTitle" :rightLink="rightLink" :doRightLink="doRightLink"></top-header>
-
-		<div class="mui-content vongi-car-index">
-			<div class="vongi-car-banner">
-				<h5 class="mui-ellipsis">协议商户:{{merchant_name}}</h5>
-				<div class="flew">
-					<input type="text" v-model="searchForm.carNumber" placeholder="请输入车牌号查询">
-					<button class="mui-btn mui-btn-blue" @click="submit">查询</button>
-				</div>
-			</div>
-			<div v-show="kongResult" class="vongi-car-not">
-				<img src="~$project/assets/img/car_not.png">
-				<div class="mui-text-center">没有找到停车信息!</div>
-			</div>
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import * as API_Merchant from '@/apis/merchant'
-	import CommonMerchant from '@/components/CommonMerchant.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import * as types from '$project/store/mutation-types'
-	export default {
-		name: 'MerchantCheckSearch',
-		components: {
-			CommonMerchant,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '车牌查询',
-
-				rightLink: {
-					show: true,
-					icon: 'mui-icon iconfont icon-riqi',
-					style: 'font-size:15px;',
-					title: '历史记录'
-				},
-
-				searchForm: {
-					carNumber: '鄂D'
-				},
-
-				kongResult: false,
-			}
-		},
-		created() {
-			if (this.$route.query.merchantId) {
-				//入口页必须带merchantId
-				this.set_parking_merchat_id(this.$route.query.merchantId);
-			} else {
-				if (!this.parking_merchant_id) {
-					mui.alert('参数错误');
-				}
-			}
-		},
-		methods: {
-			asynCallBack() {
-
-			},
-			//检测
-			checkForm() {
-				if (!this.searchForm.carNumber) {
-					mui.toast('请输入车牌号码');
-					return false;
-				} else {
-					return true;
-				}
-			},
-			//查询
-			submit() {
-				if (this.checkForm()) {
-					this.isLoading = true;
-					API_Merchant.queryParkDetail(this.searchForm).then(response => {
-
-						this.isLoading = false;
-
-						this.$router.push({
-							name: 'MerchantCheckSearchResult',
-							params: {
-								detail: response
-							}
-						})
-
-					}).catch(error => {
-						this.isLoading = false;
-						mui.toast(error);
-						this.kongResult = true;
-					})
-				}
-			},
-			//历史记录
-			doRightLink() {
-				this.$router.push({
-					name: 'MerchantHistoryList'
-				})
-			},
-			...mapMutations({
-				set_parking_merchat_id: types.SET_PARKING_MERCHANT_ID,
-			})
-		},
-		mounted() {},
-		destroyed() {
-
-		},
-		computed: {
-			merchant_name: function() {
-				if (this.parking_merchant_data) {
-					return this.parking_merchant_data.name;
-				} else {
-					return '';
-				}
-			},
-			...mapGetters({
-				openId: 'wx_openid',
-				parking_merchant_id: 'parking_merchant_id',
-				parking_merchant_data: 'parking_merchant_data'
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 137
src/projects/parking/views/Merchant/Check/SearchResult.vue

@@ -1,137 +0,0 @@
-<template>
-	<div>
-		<common-merchant ref="common" @asynCallBack="asynCallBack"></common-merchant>
-		<top-header :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content vongi-car-dj">
-			<div class="vongi-car-banner flew-sp flew-items">
-				<div class="flew-items">
-					<img class="mui-media-object" src="~$project/assets/img/antFill-car.png">
-					<div class="mui-media-body ">
-						车牌号码
-						<p class='mui-h2' v-text="detail.carNumber"></p>
-					</div>
-				</div>
-				<div>
-					<button class="mui-btn mui-btn-outlined" @click="goToSearch">修改</button>
-				</div>
-			</div>
-			<div class="vongi-car-over">
-				<h1>- 停车中 -</h1>
-				<div class="vongi-car-over-line"></div>
-				<h4>协议商户:{{detail.merchantName}}</h4>
-				<h4>停车位置:{{detail.parkingName}}</h4>
-				<h4>入场时间:{{detail.inParkingTime}}</h4>
-				<h4>已停时长:{{detail.parkingTime}}</h4>
-			</div>
-			<div class="vongi-car-juan flew-items">
-				<div class="car-juan">
-					<h2>¥<span class="mui-h1" v-text="detail.discountMoney"></span></h2>
-					<h6>抵用券</h6>
-				</div>
-				<div class="car-juan-text">
-					<h4 class="mui-ellipsis">[停车]{{detail.discountMoney}}元停车抵用券</h4>
-					<p class="colorf8b155">仅限 {{today}} 当日有效</p>
-					<p>本抵用券无法叠加使用</p>
-				</div>
-			</div>
-		</div>
-		<div class="fyy-footer">
-			<div class="bindfyy-btn">
-				<button type="button" @click="sure" class="mui-btn mui-btn-primary ">确认赠送</button>
-			</div>
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import * as API_Merchant from '@/apis/merchant'
-	import CommonMerchant from '@/components/CommonMerchant.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import {
-		currentTimeStamp,
-		parseUnixTime
-	} from '$project/utils'
-	export default {
-		name: 'MerchantCheckSearchResult',
-		components: {
-			CommonMerchant,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '车牌登记',
-
-				detail: {},
-
-				sureForm: {
-					carNumber: '',
-					id: '',
-				},
-				today: '',
-			}
-		},
-		created() {
-			this.detail = this.$route.params.detail;
-			this.sureForm.carNumber = this.detail.carNumber;
-			this.sureForm.id = this.detail.id;
-
-			this.today = parseUnixTime(currentTimeStamp(), '{y}.{m}.{d}');
-		},
-		methods: {
-			//确认赠送
-			sure() {
-				var _this = this;
-				var btnArray = ['否', '是'];
-				mui.confirm('是否确认赠送?', '提示', btnArray, function(e) {
-					if (e.index == 1) {
-						_this.sendTicket();
-					}
-				})
-			},
-			sendTicket() {
-				this.isLoading = true;
-				API_Merchant.giveDiscountTicket(this.sureForm).then(response => {
-
-					this.isLoading = false;
-
-					this.$router.push({
-						name: 'MerchantCheckResult'
-					})
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-				})
-			},
-			//返回修改
-			goToSearch() {
-				this.$router.go(-1);
-			},
-			asynCallBack() {},
-		},
-		mounted() {},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 120
src/projects/parking/views/Merchant/History/Info.vue

@@ -1,120 +0,0 @@
-<template>
-	<div>
-		<common-merchant ref="common" @asynCallBack="asynCallBack"></common-merchant>
-		<top-header :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content">
-			<div class="vongi-car-hisdat">
-				<div class="vongi-car-carp">
-					{{detail.carNumber}}
-				</div>
-			</div>
-			<div class="vongi-editme vongi-popup-center">
-				<form class="mui-input-group margin10">
-					<div class="mui-input-row">
-						<label>车辆状态</label>
-						<p v-text="detail.parkingStatusStr"></p>
-					</div>
-					<div class="mui-input-row">
-						<label>已停时长</label>
-						<p v-text="detail.inTimeStr"></p>
-					</div>
-					<div class="mui-input-row">
-						<label>登记时间</label>
-						<p v-text="detail.couponCreateTime"></p>
-					</div>
-				</form>
-				<form class="mui-input-group">
-					<div class="mui-input-row">
-						<label>协议商户</label>
-						<p v-text="detail.merchantName">金盆洗脚城</p>
-					</div>
-					<div class="mui-input-row">
-						<label>停车位置</label>
-						<p v-text="detail.parkingName"></p>
-					</div>
-					<div class="mui-input-row">
-						<label>赠送抵扣券</label>
-						<p v-text="detail.couponMoney+'元'"></p>
-					</div>
-					<div class="mui-input-row">
-						<label>入场时间</label>
-						<p v-text="detail.inParkTime"></p>
-					</div>
-					<div class="mui-input-row">
-						<label>离场时间</label>
-						<p v-text="detail.outParkTime?detail.outParkTime:'--'"></p>
-					</div>
-				</form>
-			</div>
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	import * as API_Merchant from '@/apis/merchant'
-	import CommonMerchant from '@/components/CommonMerchant.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	export default {
-		name: 'MerchantHistoryInfo',
-		components: {
-			CommonMerchant,
-			Loading,
-			TopHeader,
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '登记详情',
-
-				id: this.$route.query.id,
-
-				detail: {}
-			}
-		},
-		created() {},
-		methods: {
-			//获取详情
-			getInfo() {
-				this.isLoading = true;
-				API_Merchant.discountTicketDetail(this.id).then(response => {
-
-					this.isLoading = false;
-
-					this.detail = response;
-
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-				})
-			},
-			asynCallBack() {
-
-			},
-		},
-		mounted() {
-			this.getInfo();
-		},
-		destroyed() {
-
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-			})
-		}
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style>
-</style>

+ 0 - 193
src/projects/parking/views/Merchant/History/List.vue

@@ -1,193 +0,0 @@
-<template>
-	<div>
-		<common-merchant ref="common" @asynCallBack="asynCallBack"></common-merchant>
-		<top-header :pageTitle="pageTitle"></top-header>
-
-		<div class="mui-content vongi-kqtj-center vongi-dktz-c">
-			<div class="fyy-temper-date margin10">
-				<a class="mui-col-xs-12">
-					<span @click="selectStartTime">{{listForm.startTime}}</span>
-					至
-					<span @click="selectEndTime">{{listForm.endTime}}</span>
-					<span class="mui-icon mui-icon-arrowdown"></span>
-				</a>
-				<!-- <a href="" class="mui-col-xs-4">登记人<span class="mui-icon mui-icon-arrowdown"></span></a> -->
-			</div>
-			<div class="vongi-clasadmin vongi-bagfff">
-				<div class="vongi-xzdw-search">
-					<input type="search" @keyup.enter="reloadList" v-model="listForm.carNumber" placeholder="请输入车牌号查询">
-					<span class="mui-icon mui-icon-search"></span>
-				</div>
-			</div>
-			<div class="vongi-archives">
-				<ul class="mui-table-view">
-					<li v-for="(item,index) in recordList" class="mui-table-view-cell">
-						<router-link class="mui-navigate-right" :to="{name:'MerchantHistoryInfo',query:{id:item.id}}">
-							{{item.carNum}}
-							<span class="mui-pull-right mui-h6" v-text="item.createTime"></span>
-						</router-link>
-					</li>
-				</ul>
-			</div>
-
-			<NullList :remark="'暂无历史记录'" v-if="!recordList.length"></NullList>
-
-		</div>
-
-		<loading :visible="isLoading"></loading>
-	</div>
-</template>
-
-<script>
-	require('$project/assets/js/mui.picker.min.js');
-	import * as API_Merchant from '@/apis/merchant'
-	import CommonMerchant from '@/components/CommonMerchant.vue'
-	import Loading from '$project/components/Loading.vue'
-	import TopHeader from '$project/components/TopHeader.vue'
-	import isReachBottom from '$project/utils/isReachBottom'
-	import NullList from '$project/components/NullList.vue'
-	import {
-		mapGetters,
-		mapMutations
-	} from 'vuex'
-	import {
-		currentTimeStamp,
-		parseUnixTime,
-		afterTimeStamp
-	} from '$project/utils'
-	export default {
-		name: 'MerchantHistoryList',
-		components: {
-			CommonMerchant,
-			Loading,
-			TopHeader,
-			NullList
-		},
-		data() {
-			return {
-				isLoading: false,
-
-				pageTitle: '历史记录',
-
-				listForm: {
-					pageIndex: 1,
-					pageSize: 20,
-					totalPage: 1,
-					startTime: '',
-					endTime: '',
-					carNumber: ''
-				},
-				recordList: [],
-			}
-		},
-		created() {
-			this.listForm.startTime = parseUnixTime(currentTimeStamp(), '{y}-{m}-{d} 00:00');
-			this.listForm.endTime = parseUnixTime(afterTimeStamp(1, this.listForm.startTime), '{y}-{m}-{d} 00:00');
-		},
-		methods: {
-			//获取列表
-			getList() {
-				this.isLoading = true;
-				API_Merchant.discountTicketList(this.listForm).then(response => {
-					if (response) {
-						if (this.listForm.pageIndex == 1) {
-							this.recordList = response.data;
-							this.listForm.pageIndex = response.pageNumber;
-							this.listForm.totalPage = response.totalPage;
-						} else {
-							this.recordList = [
-								...this.recordList,
-								...response.data
-							];
-						}
-					}
-					this.listForm.pageIndex++;
-					this.isLoading = false;
-				}).catch(error => {
-					this.isLoading = false;
-					mui.toast(error);
-				})
-			},
-			//下拉事件
-			handleScrool() {
-				if (isReachBottom()) {
-					console.log('到达底部')
-					if (this.listForm.pageIndex <= this.listForm.totalPage && this.isLoading == false) {
-						this.getList();
-					} else {
-						return;
-					}
-				}
-			},
-			//重载列表
-			reloadList() {
-				this.listForm.pageIndex = 1;
-				this.getList();
-			},
-			//选择开始时间
-			selectStartTime() {
-				var _this = this;
-				var picker = new mui.DtPicker({
-					"type": "datetime",
-					"beginYear": 2020,
-					"endDate": new Date(),
-					"value": _this.listForm.startTime
-				});
-				picker.show(function(rs) {
-					_this.listForm.startTime = rs.text;
-					picker.dispose();
-					_this.reloadList();
-				});
-			},
-			//选择结束时间
-			selectEndTime() {
-				var _this = this;
-				var picker = new mui.DtPicker({
-					"type": "datetime",
-					"beginDate": new Date(_this.listForm.startTime),
-					"value": _this.listForm.endTime
-				});
-				picker.show(function(rs) {
-					_this.listForm.endTime = rs.text;
-					picker.dispose();
-					_this.reloadList();
-				});
-			},
-			asynCallBack() {
-
-			},
-		},
-		mounted() {
-			this.getList();
-			//监控下拉加载事件
-			var _this = this;
-			window.addEventListener('scroll', _this.handleScrool);
-		},
-		destroyed() {
-			//销毁监听事件
-			var _this = this;
-			window.removeEventListener('scroll', _this.handleScrool);
-		},
-		computed: {
-			...mapGetters({
-				openId: 'wx_openid',
-			})
-		},
-		//keepalive监控判断
-		beforeRouteLeave(to, from, next) {
-			console.log(to.name);
-			if (['MerchantHistoryInfo'].indexOf(to.name) > -1) {
-				this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', ['MerchantHistoryList'])
-			} else {
-				this.$store.commit('SET_KEEP_ALIVE_COMPONENTS', [])
-			}
-			next()
-		},
-	}
-</script>
-
-<style scoped src="$project/assets/css/xpwyfyy.css"></style>
-<style src="$project/assets/css/iconfont.css"></style>
-<style src="$project/assets/css/mui.picker.min.css"></style>
-<style>
-</style>

+ 0 - 113
src/projects/parking/vue-touch-keyboard/CHANGELOG.md

@@ -1,113 +0,0 @@
-<a name="0.3.2"></a>
-## 0.3.2 (2019-07-16)
-
-* 0.3.2 ([a051188](https://github.com/icebob/vue-touch-keyboard/commit/a051188))
-* Check for selection and insert character over selection. ([7132f6a](https://github.com/icebob/vue-touch-keyboard/commit/7132f6a))
-* Check selection and delete selected on backspace. ([d12cb79](https://github.com/icebob/vue-touch-keyboard/commit/d12cb79))
-* remove calls to console.log ([1e92752](https://github.com/icebob/vue-touch-keyboard/commit/1e92752))
-* update deps ([5b4a1e9](https://github.com/icebob/vue-touch-keyboard/commit/5b4a1e9))
-
-
-
-<a name="0.3.1"></a>
-## 0.3.1 (2019-02-15)
-
-* :package: build ([504336f](https://github.com/icebob/vue-touch-keyboard/commit/504336f))
-* 0.3.1 ([cff0281](https://github.com/icebob/vue-touch-keyboard/commit/cff0281))
-* Add TextArea Html Element to input types ([fa53e7b](https://github.com/icebob/vue-touch-keyboard/commit/fa53e7b))
-* Added the defaultKeySet property ([99fe2ee](https://github.com/icebob/vue-touch-keyboard/commit/99fe2ee))
-* Build ([b0ee6ed](https://github.com/icebob/vue-touch-keyboard/commit/b0ee6ed))
-* Change require("./App.vue"); to require("./app.vue"); ([c34c93e](https://github.com/icebob/vue-touch-keyboard/commit/c34c93e))
-* Change require("./App.vue"); to require("./app.vue"); ([15be384](https://github.com/icebob/vue-touch-keyboard/commit/15be384))
-* Fix errors in example code ([3d3caeb](https://github.com/icebob/vue-touch-keyboard/commit/3d3caeb))
-* fix lint ([a42216d](https://github.com/icebob/vue-touch-keyboard/commit/a42216d))
-* Update README.md ([beece74](https://github.com/icebob/vue-touch-keyboard/commit/beece74))
-* Update README.md ([78749ab](https://github.com/icebob/vue-touch-keyboard/commit/78749ab))
-
-
-
-<a name="0.3.0"></a>
-# 0.3.0 (2018-03-26)
-
-* :package: build & release ([4526c71](https://github.com/icebob/vue-touch-keyboard/commit/4526c71))
-* 0.3.0 ([77f79a3](https://github.com/icebob/vue-touch-keyboard/commit/77f79a3))
-* Feature - Prevent click event doc updated ([cefb1ab](https://github.com/icebob/vue-touch-keyboard/commit/cefb1ab))
-* Feature - Prevent click event option added ([8050b10](https://github.com/icebob/vue-touch-keyboard/commit/8050b10))
-* Fix - keypress event to keydown changed ([8bac388](https://github.com/icebob/vue-touch-keyboard/commit/8bac388))
-* keypress event to keydown updated ([29ab934](https://github.com/icebob/vue-touch-keyboard/commit/29ab934))
-* update node versions ([3ba60f3](https://github.com/icebob/vue-touch-keyboard/commit/3ba60f3))
-
-
-
-<a name="0.2.1"></a>
-## 0.2.1 (2018-01-26)
-
-* 0.2.1 ([a12df4c](https://github.com/icebob/vue-touch-keyboard/commit/a12df4c))
-* binded keys to prevent Vue console error ([e94d9bb](https://github.com/icebob/vue-touch-keyboard/commit/e94d9bb))
-* built dist version ([8298cef](https://github.com/icebob/vue-touch-keyboard/commit/8298cef))
-* push test ([256bd2b](https://github.com/icebob/vue-touch-keyboard/commit/256bd2b))
-
-
-
-<a name="0.2.0"></a>
-# 0.2.0 (2017-03-02)
-
-* :package: build for vue2 ([8c04f66](https://github.com/icebob/vue-touch-keyboard/commit/8c04f66))
-* migrate files to vue2 ([f512f34](https://github.com/icebob/vue-touch-keyboard/commit/f512f34))
-* skip typings ([fecca11](https://github.com/icebob/vue-touch-keyboard/commit/fecca11))
-* update readme ([b819b25](https://github.com/icebob/vue-touch-keyboard/commit/b819b25))
-* docs: fix npm link ([d4bb635](https://github.com/icebob/vue-touch-keyboard/commit/d4bb635))
-
-
-
-<a name="0.1.0"></a>
-# 0.1.0 (2016-10-28)
-
-* :package:  build ([222e1d9](https://github.com/icebob/vue-touch-keyboard/commit/222e1d9))
-* :package: build ([867731f](https://github.com/icebob/vue-touch-keyboard/commit/867731f))
-* :package: build ([3e56711](https://github.com/icebob/vue-touch-keyboard/commit/3e56711))
-* :package: build ([3daae1e](https://github.com/icebob/vue-touch-keyboard/commit/3daae1e))
-* :package: build ([eea3480](https://github.com/icebob/vue-touch-keyboard/commit/eea3480))
-* :package: build ([b76287e](https://github.com/icebob/vue-touch-keyboard/commit/b76287e))
-* :package: build ([3fe74c3](https://github.com/icebob/vue-touch-keyboard/commit/3fe74c3))
-* :package: build ([3b6f746](https://github.com/icebob/vue-touch-keyboard/commit/3b6f746))
-* :package: build ([75eeca4](https://github.com/icebob/vue-touch-keyboard/commit/75eeca4))
-* add accept event handler ([a5f305b](https://github.com/icebob/vue-touch-keyboard/commit/a5f305b))
-* add asserts ([1d39a02](https://github.com/icebob/vue-touch-keyboard/commit/1d39a02))
-* add changelog ([0fd6255](https://github.com/icebob/vue-touch-keyboard/commit/0fd6255))
-* base library code ([0f6526a](https://github.com/icebob/vue-touch-keyboard/commit/0f6526a))
-* create base code ([e2d2a5b](https://github.com/icebob/vue-touch-keyboard/commit/e2d2a5b))
-* fix image markdown ([a33ddb9](https://github.com/icebob/vue-touch-keyboard/commit/a33ddb9))
-* fix layout ([f2da48f](https://github.com/icebob/vue-touch-keyboard/commit/f2da48f))
-* fix lint errors ([fe572c8](https://github.com/icebob/vue-touch-keyboard/commit/fe572c8))
-* Initial commit ([1c8644d](https://github.com/icebob/vue-touch-keyboard/commit/1c8644d))
-* linting ([9ec6aec](https://github.com/icebob/vue-touch-keyboard/commit/9ec6aec))
-* modify layout & add backspace icon ([2a4c419](https://github.com/icebob/vue-touch-keyboard/commit/2a4c419))
-* organize code ([d16d59d](https://github.com/icebob/vue-touch-keyboard/commit/d16d59d))
-* removed fix width from style ([91513f1](https://github.com/icebob/vue-touch-keyboard/commit/91513f1))
-* rename mini layout to compact ([609cffb](https://github.com/icebob/vue-touch-keyboard/commit/609cffb))
-* rename props ([68532d9](https://github.com/icebob/vue-touch-keyboard/commit/68532d9))
-* rename vars ([5953216](https://github.com/icebob/vue-touch-keyboard/commit/5953216))
-* rewrite layouts ([fa21941](https://github.com/icebob/vue-touch-keyboard/commit/fa21941))
-* scrolling to input ([5befa87](https://github.com/icebob/vue-touch-keyboard/commit/5befa87))
-* simpler layout ([908ced0](https://github.com/icebob/vue-touch-keyboard/commit/908ced0))
-* try to lock focus on input ([f20b5b5](https://github.com/icebob/vue-touch-keyboard/commit/f20b5b5))
-* Update README.md ([a0c1280](https://github.com/icebob/vue-touch-keyboard/commit/a0c1280))
-* Update README.md ([aab6503](https://github.com/icebob/vue-touch-keyboard/commit/aab6503))
-* update screenshot ([af38439](https://github.com/icebob/vue-touch-keyboard/commit/af38439))
-* docs: add readme ([9693159](https://github.com/icebob/vue-touch-keyboard/commit/9693159))
-* docs: change screenshot ([4704ac5](https://github.com/icebob/vue-touch-keyboard/commit/4704ac5))
-* docs: improve readme ([886123f](https://github.com/icebob/vue-touch-keyboard/commit/886123f))
-* docs: update badges ([77cd0e9](https://github.com/icebob/vue-touch-keyboard/commit/77cd0e9))
-* docs: update readme ([48719b9](https://github.com/icebob/vue-touch-keyboard/commit/48719b9))
-* docs: update screenshot url ([5e0d6c4](https://github.com/icebob/vue-touch-keyboard/commit/5e0d6c4))
-* fix: Handle maxlength prop ([133d51d](https://github.com/icebob/vue-touch-keyboard/commit/133d51d))
-* new: add {next} function. ([cdd2106](https://github.com/icebob/vue-touch-keyboard/commit/cdd2106))
-* layout: more similar to real keyboard layout ([964eaeb](https://github.com/icebob/vue-touch-keyboard/commit/964eaeb))
-* dev: fix app ([50a4162](https://github.com/icebob/vue-touch-keyboard/commit/50a4162))
-* dev: styling dev example ([0cc19f7](https://github.com/icebob/vue-touch-keyboard/commit/0cc19f7))
-* dev: update code ([9e3b69e](https://github.com/icebob/vue-touch-keyboard/commit/9e3b69e))
-* style: fix placeholder margin ([5f9cbb1](https://github.com/icebob/vue-touch-keyboard/commit/5f9cbb1))
-
-
-

+ 0 - 21
src/projects/parking/vue-touch-keyboard/LICENSE

@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Icebob
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.

+ 0 - 139
src/projects/parking/vue-touch-keyboard/README.md

@@ -1,139 +0,0 @@
-# vue-touch-keyboard [![NPM version](https://img.shields.io/npm/v/vue-touch-keyboard.svg)](https://www.npmjs.com/package/vue-touch-keyboard) ![VueJS v2.x compatible](https://img.shields.io/badge/vue%202.x-compatible-green.svg)
-
-Virtual keyboard component for Vue.js v2.x. Designed to Raspberry Pi Touch Display
-
-[![Codacy Badge](https://api.codacy.com/project/badge/Grade/5f3594b30dd4489094730fa2babd7ba5)](https://www.codacy.com/app/mereg-norbert/vue-touch-keyboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=icebob/vue-touch-keyboard&amp;utm_campaign=Badge_Grade)
-[![Build Status](https://travis-ci.org/icebob/vue-touch-keyboard.svg?branch=master)](https://travis-ci.org/icebob/vue-touch-keyboard)
-[![Coverage Status](https://coveralls.io/repos/github/icebob/vue-touch-keyboard/badge.svg?branch=master)](https://coveralls.io/github/icebob/vue-touch-keyboard?branch=master)
-[![NPMS.io score](https://badges.npms.io/vue-touch-keyboard.svg)]()
-
-[![Dependency Status](https://david-dm.org/icebob/vue-touch-keyboard.svg)](https://david-dm.org/icebob/vue-touch-keyboard)
-[![devDependency Status](https://david-dm.org/icebob/vue-touch-keyboard/dev-status.svg)](https://david-dm.org/icebob/vue-touch-keyboard#info=devDependencies)
-[![Downloads](https://img.shields.io/npm/dt/vue-touch-keyboard.svg)](https://www.npmjs.com/package/vue-touch-keyboard)
-
-**If you like my work, please [donate](https://www.paypal.me/meregnorbert). Thank you!**
-
-## Demo
-[JSFiddle demo](https://jsfiddle.net/icebob/88n7c1L8/)
-[Codepen demo](https://codepen.io/alvidr/pen/JBEmdR/)
-
-[![Screenshot](https://cloud.githubusercontent.com/assets/306521/19721016/d56005bc-9b70-11e6-8568-39dc207bc466.png)]()
-
-## Features
-- 3 built-in layouts, but you can create custom layouts
-- **no external dependencies**
-- full responsive
-- customizable styles
-- ...etc
-
-## Installation
-### NPM
-You can install it via [NPM](http://npmjs.org/).
-```
-$ npm install vue-touch-keyboard
-```
-### Manual
-Download zip package and unpack and add the `vue-touch-keyboard.css` and `vue-touch-keyboard.js` file to your project from dist folder.
-```
-https://github.com/icebob/vue-touch-keyboard/archive/master.zip
-```
-
-## Usage
-```html
-<template>
-  <div>
-    <input type="text" placeholder="Text input" @focus="show" data-layout="normal" />
-    <vue-touch-keyboard :options="options" v-if="visible" :layout="layout" :cancel="hide" :accept="accept" :input="input" />
-  </div>
-</template>
-
-<script>
-  import VueTouchKeyboard from "vue-touch-keyboard";
-  import style from "vue-touch-keyboard/dist/vue-touch-keyboard.css"; // load default style
-
-  Vue.use(VueTouchKeyboard);
-
-  export default {
-    data: {
-      visible: false,
-      layout: "normal",
-      input: null,
-      options: {
-        useKbEvents: false,
-        preventClickEvent: false
-      }
-    },
-
-    methods: {
-        accept(text) {
-          alert("Input text: " + text);
-          this.hide();
-        },
-
-        show(e) {
-          this.input = e.target;
-          this.layout = e.target.dataset.layout;
-
-          if (!this.visible)
-            this.visible = true
-        },
-
-        hide() {
-          this.visible = false;
-        }
-    }
-  }
-</script>
-```
-
-## Properties
-Property      | Default  | Accepted values | Description
-------------- | -------- | --------------- | -----------
-`input`     | required  | `HTMLInputElement`   | The target input HTML element
-`layout`    | required  | `String` or `Object`    | Layout of keys. If you are using the built-in layouts, you can set as the name of the layout. If you want to use custom layout, you need to set a layout `Object`.
-`accept`    | `null`  | `Function`     | Event handler. Fired when the "Accept/Close" button pressed.
-`cancel`    | `null`  | `Function`     | Event handler. Fired when the "Cancel" button pressed.
-`change`    | `null`  | `Function`     | Event handler. Fired when the input value changed.
-`next`      | `null`  | `Function`     | Event handler. Fired when the "Next" button pressed or the length of the value of the input reached the `maxLength` of the `input`
-`options`   | `{}`    | `Object`     | Functional options.
-`defaultKeySet`| `default` | `String`  | Default key set. You can choose a desired key set of your layout to be used when a keyboard is initialized.
-
-## Options
-Option      | Default  | Accepted values | Description
------------ | -------- | --------------- | -----------
-`useKbEvents`  | `false`  | `boolean`    | If true, the component will generate a `keydown` event and trigger it. If it returns with `false`, it won't insert the new character.
-`preventClickEvent`  | `false`  | `boolean`    | If true, the component will `preventDefault` the click event.
-
-## Built-in layouts
-* `normal` - Normal full layout. Similar as real keyboard layouts
-* `numeric` - Only for numbers
-* `compact` - Compact layout. Similar as mobile phone keyboard layouts
-
-## Development
-This command will start a `webpack-dev-server` with content of `dev` folder.
-```bash
-npm run dev
-```
-
-## Build
-This command will build a distributable version in the `dist` directory.
-```bash
-npm run build
-```
-
-## Test
-```bash
-npm test
-```
-
-## Contribution
-Please send pull requests improving the usage and fixing bugs, improving documentation and providing better examples, or providing some testing, because these things are important.
-
-## License
-vue-touch-keyboard is available under the [MIT license](https://tldrlegal.com/license/mit-license).
-
-## Contact
-
-Copyright (C) 2016 Icebob
-
-[![@icebob](https://img.shields.io/badge/github-icebob-green.svg)](https://github.com/icebob) [![@icebob](https://img.shields.io/badge/twitter-Icebobcsi-blue.svg)](https://twitter.com/Icebobcsi)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 6
src/projects/parking/vue-touch-keyboard/dist/vue-touch-keyboard.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 6
src/projects/parking/vue-touch-keyboard/dist/vue-touch-keyboard.js


+ 0 - 135
src/projects/parking/vue-touch-keyboard/package.json

@@ -1,135 +0,0 @@
-{
-  "_from": "vue-touch-keyboard",
-  "_id": "vue-touch-keyboard@0.3.2",
-  "_inBundle": false,
-  "_integrity": "sha512-+GAZSMdiPfop2At9fhGLzs2Jodd6BQla4q4Mm+VkpQLUaxmFFU64NWsjxvkkYjncAgbv/oO5wi+rM1X4eVHCbg==",
-  "_location": "/vue-touch-keyboard",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "tag",
-    "registry": true,
-    "raw": "vue-touch-keyboard",
-    "name": "vue-touch-keyboard",
-    "escapedName": "vue-touch-keyboard",
-    "rawSpec": "",
-    "saveSpec": null,
-    "fetchSpec": "latest"
-  },
-  "_requiredBy": [
-    "#USER",
-    "/"
-  ],
-  "_resolved": "https://registry.npmjs.org/vue-touch-keyboard/-/vue-touch-keyboard-0.3.2.tgz",
-  "_shasum": "b005cddf1fc2f0f7f0137cc3201a998a4ba2a749",
-  "_spec": "vue-touch-keyboard",
-  "_where": "/Users/zhengkaixin/Documents/HBuilderProjects/jp-changyi",
-  "author": {
-    "name": "Icebob"
-  },
-  "bugs": {
-    "url": "https://github.com/icebob/vue-touch-keyboard/issues"
-  },
-  "bundleDependencies": false,
-  "dependencies": {
-    "babel-runtime": "^6.26.0"
-  },
-  "deprecated": false,
-  "description": "Virtual keyboard component for Vue.js",
-  "devDependencies": {
-    "babel-core": "^6.26.3",
-    "babel-loader": "6.3.2",
-    "babel-plugin-transform-runtime": "6.23.0",
-    "babel-preset-es2015": "^6.24.1",
-    "babel-preset-stage-0": "^6.24.1",
-    "chai": "3.5.0",
-    "conventional-changelog-cli": "1.2.0",
-    "conventional-github-releaser": "1.1.3",
-    "coveralls": "2.11.16",
-    "css-loader": "0.26.2",
-    "eslint": "3.16.1",
-    "eslint-friendly-formatter": "2.0.7",
-    "eslint-loader": "1.6.3",
-    "eslint-plugin-html": "2.0.1",
-    "eslint-plugin-vue": "2.0.1",
-    "extract-text-webpack-plugin": "1.0.1",
-    "file-loader": "0.10.1",
-    "git-commit-message-convention": "git://github.com/kazupon/git-commit-message-convention.git#065dfffbe2de5f6f16150aac9d4db7fdf5515e56",
-    "inject-loader": "2.0.1",
-    "isparta-loader": "2.0.0",
-    "jade": "1.11.0",
-    "jade-loader": "0.8.0",
-    "karma": "1.3.0",
-    "karma-chai": "0.1.0",
-    "karma-chrome-launcher": "1.0.1",
-    "karma-coverage": "^1.1.2",
-    "karma-coveralls": "1.1.2",
-    "karma-mocha": "^1.3.0",
-    "karma-phantomjs-launcher": "^1.0.4",
-    "karma-sinon-chai": "1.2.4",
-    "karma-sourcemap-loader": "0.3.7",
-    "karma-spec-reporter": "0.0.32",
-    "karma-webpack": "1.8.0",
-    "lodash": "^4.17.14",
-    "lolex": "1.6.0",
-    "mocha": "2.5.3",
-    "mocha-generators": "1.2.0",
-    "mocha-loader": "0.7.1",
-    "node-sass": "^4.12.0",
-    "npm-check": "^5.9.0",
-    "phantomjs-prebuilt": "^2.1.16",
-    "sass-loader": "3.2.0",
-    "sinon": "1.17.7",
-    "sinon-chai": "2.8.0",
-    "stats-webpack-plugin": "0.4.3",
-    "style-loader": "0.13.2",
-    "url-loader": "0.5.8",
-    "vue": "^2.6.10",
-    "vue-hot-reload-api": "^2.3.3",
-    "vue-html-loader": "1.2.4",
-    "vue-loader": "11.1.3",
-    "vue-style-loader": "2.0.3",
-    "vue-template-compiler": "^2.6.10",
-    "webpack": "1.13.2",
-    "webpack-dev-middleware": "1.10.1",
-    "webpack-dev-server": "1.16.1",
-    "webpack-merge": "0.14.1"
-  },
-  "files": [
-    "dist/vue-touch-keyboard.js",
-    "dist/vue-touch-keyboard.css",
-    "src"
-  ],
-  "homepage": "https://github.com/icebob/vue-touch-keyboard",
-  "keywords": [
-    "vue",
-    "vuejs",
-    "form",
-    "generator",
-    "schema",
-    "json"
-  ],
-  "license": "MIT",
-  "main": "dist/vue-touch-keyboard.js",
-  "name": "vue-touch-keyboard",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/icebob/vue-touch-keyboard.git"
-  },
-  "scripts": {
-    "build": "webpack --progress --config webpack.build.config.js",
-    "changelog": "conventional-changelog -i CHANGELOG.md -s -r 0",
-    "ci": "karma start test/unit/karma.conf.js --auto-watch --no-single-run --reporters=dots --port=9877",
-    "coverage": "npm run test && npm run coverall",
-    "coverall": "cat ./test/unit/coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
-    "deps": "npm-check -u",
-    "dev": "webpack-dev-server --config webpack.dev.config.js --inline --hot --content-base dev/",
-    "docs": "cd docs && gitbook serve",
-    "e2e": "node test/e2e/runner.js",
-    "lint": "eslint --ext=.js,.vue src test/unit/specs",
-    "prebuild": "npm run test",
-    "pretest": "npm run lint",
-    "test": "npm run unit",
-    "unit": "karma start test/unit/karma.conf.js"
-  },
-  "version": "0.3.2"
-}

+ 0 - 1
src/projects/parking/vue-touch-keyboard/src/icons/backspace.svg

@@ -1 +0,0 @@
-<?xml version="1.0" ?><svg height="48" viewBox="0 0 48 48" width="48" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h48v48h-48z" fill="none"/><path d="M44 6h-30c-1.38 0-2.47.7-3.19 1.76l-10.81 16.23 10.81 16.23c.72 1.06 1.81 1.78 3.19 1.78h30c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm-6 25.17l-2.83 2.83-7.17-7.17-7.17 7.17-2.83-2.83 7.17-7.17-7.17-7.17 2.83-2.83 7.17 7.17 7.17-7.17 2.83 2.83-7.17 7.17 7.17 7.17z" fill="white"/></svg>

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác