shish %!s(int64=4) %!d(string=hai) anos
pai
achega
b9444b277b

+ 4 - 4
ghs/vue.config.js

@@ -3,7 +3,7 @@ const path = require('path');
 const isProduction = process.env.NODE_ENV === 'production';
 
 //http和https切换请修改这里,修改后需要重新运行npm run serve shish 2021.4.12
-const proxyTarget = 'http://api.shop.hzghd.com';
+const proxyTarget = 'https://api.shop.wixhb.com';
 
 function resolve(dir) {
 	return path.join(__dirname, dir);
@@ -14,11 +14,11 @@ function resolve(dir) {
  * **/
 let hostUrl = ``;
 if(process.env.NODE_ENV == 'development'){
-	hostUrl = `http://img.hzghd.com/`;
+	hostUrl = `https://img.wixhb.com/`;
 }else if(process.env.NODE_ENV == 'local'){
-	hostUrl = `http://img.hzghd.com/`;
+	hostUrl = `https://img.wixhb.com/`;
 }else{
-	hostUrl = `https://img.hzghd.com/`;
+	hostUrl = `https://img.wixhb.com/`;
 }
 
 const cdn = {

+ 179 - 0
开发/km/vue.config.js

@@ -0,0 +1,179 @@
+const path = require('path');
+
+const isProduction = process.env.NODE_ENV === 'production';
+
+//http和https切换请修改这里,修改后需要重新运行npm run serve shish 2021.4.12
+const proxyTarget = 'http://api.shop.wixhb.cn';
+
+function resolve(dir) {
+	return path.join(__dirname, dir);
+}
+
+/**
+ * 姜枫 2021.05.04
+ * **/
+let hostUrl = ``;
+if(process.env.NODE_ENV == 'development'){
+	hostUrl = `http://img.wixhb.cn/`;
+}else if(process.env.NODE_ENV == 'local'){
+	hostUrl = `http://img.wixhb.cn/`;
+}else{
+	hostUrl = `https://img.wixhb.cn/`;
+}
+
+const cdn = {
+	dev: {
+		css: [`${hostUrl}cdn/element-ui/2.13.0/theme-chalk/index.css`]
+	},
+	pro: {
+		css: [
+			`${hostUrl}cdn/nprogress/0.2.0/nprogress.min.css`,
+			`${hostUrl}cdn/quill/2.0.0-dev.3/quill.core.min.css`,
+			`${hostUrl}cdn/viewerjs/1.3.7/viewer.min.css`,
+			`${hostUrl}cdn/element-ui/2.13.0/theme-chalk/index.css`
+		],
+		js: [
+			`${hostUrl}cdn/vue/2.6.10/vue.min.js`,
+			`${hostUrl}cdn/vue-router/3.1.3/vue-router.min.js`,
+			`${hostUrl}cdn/vuex/3.1.1/vuex.min.js`,
+			`${hostUrl}cdn/clipboard.js/2.0.4/clipboard.min.js`,
+			`${hostUrl}cdn/axios/0.19.0-beta.1/axios.min.js`,
+			`${hostUrl}cdn/nprogress/0.2.0/nprogress.min.js`,
+			`${hostUrl}cdn/Mock.js/1.0.1-beta3/mock-min.js`,
+			`${hostUrl}cdn/quill/2.0.0-dev.3/quill.min.js`,
+			`${hostUrl}cdn/element-ui/2.13.0/index.js`,
+			`${hostUrl}cdn/viewerjs/1.3.7/viewer.min.js`,
+			`${hostUrl}cdn/echarts/4.4.0-rc.1/echarts.min.js`,
+			`${hostUrl}cdn/npm/vue-echarts@4.0.2.js`
+		]
+	}
+};
+
+module.exports = {
+	publicPath: '/',
+	lintOnSave: true,
+	productionSourceMap: false,
+	parallel: require('os').cpus().length > 1,
+	// 输出文件目录
+	outputDir: 'dist/shop/',
+
+	css: {
+		extract: isProduction,
+		sourceMap: false,
+		loaderOptions: {
+			stylus: {
+				import: '~@/assets/css/common.styl'
+			},
+			sass: {
+				prependData: `@import "~@/assets/css/base.scss";`
+			}
+		}
+	},
+
+	devServer: {
+		host: '127.0.0.1',
+		port: 7777,
+		open: false,
+		compress: false,
+		overlay: {
+			warnings: false,
+			errors: true
+		},
+
+		proxy: {
+			'/dev': {
+				target: proxyTarget,
+				changeOrigin: true,
+				pathRewrite: { '^/dev': '' }
+			},
+			'/s-dev': {
+				target: proxyTarget,
+				changeOrigin: true,
+				pathRewrite: { '^/s-dev': '' }
+			},
+			'/pro': {
+				target: proxyTarget,
+				changeOrigin: true,
+				pathRewrite: { '^/pro': '/api' }
+			}
+		}
+	},
+
+	chainWebpack: config => {
+		// 移除 prefetch 插件
+		config.plugins.delete('prefetch');
+		// 移除 preload 插件
+		// config.plugins.delete('preload');
+		// svg
+		// config.module.rule('svg').uses.clear();
+
+		// config.module
+		// 	.rule('svg-sprite-loader')
+		// 	.test(/.svg$/)
+		// 	.exclude.add(/node_modules/)
+		// 	.end()
+		// 	.use('svg-sprite-loader')
+		// 	.loader('svg-sprite-loader')
+		// 	.options({
+		// 		symbolId: '[name]'
+		// 	});
+
+		// 去掉元素之间空格
+		config.module
+			.rule('vue')
+			.use('vue-loader')
+			.loader('vue-loader')
+			.tap(options => {
+				options.compilerOptions.preserveWhitespace = true;
+				return options;
+			})
+			.end();
+
+		// 引入cdn
+		config.plugin('html').tap(args => {
+			args[0].cdn = cdn[isProduction ? 'pro' : 'dev'];
+			return args;
+		});
+
+		if (isProduction) {
+			config.performance.set('hints', false);
+
+			config.optimization.splitChunks({
+				chunks: 'all',
+				cacheGroups: {
+					libs: {
+						name: 'chunk-libs',
+						test: /[\\/]node_modules[\\/]/,
+						priority: 10,
+						chunks: 'initial'
+					},
+					commons: {
+						name: 'chunk-cool',
+						test: resolve('src/cool'),
+						minChunks: 3,
+						priority: 5,
+						reuseExistingChunk: true
+					}
+				}
+			});
+		}
+	},
+
+	configureWebpack: config => {
+		if (isProduction) {
+			config.externals = {
+				vue: 'Vue',
+				'vue-router': 'VueRouter',
+				'element-ui': 'ELEMENT',
+				vuex: 'Vuex',
+				axios: 'axios',
+				mockjs: 'Mock',
+				nprogress: 'NProgress',
+				quill: 'Quill',
+				viewer: 'Viewer',
+				echarts: 'echarts',
+				'vue-echarts': 'VueECharts'
+			};
+		}
+	}
+};

+ 12 - 0
开发/kmApp/src/ext.json

@@ -0,0 +1,12 @@
+{
+  "extEnable": true,
+  "extAppid": "wx21b7c3ef12082099",
+  "directCommit": false,
+  "ext": {
+    "account": 12362,
+    "apiHost": "https://api.shop.wixhb.cn",
+    "socketApiHost": "api.shop.wixhb.cn",
+    "imgHost": "https://img.wixhb.cn",
+    "name":"只管花"
+  }
+}

+ 144 - 0
开发/kmApp/src/manifest.json

@@ -0,0 +1,144 @@
+{
+    "name" : "供应商",
+    "appid" : "",
+    "description" : "应用描述",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : true,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "nvueLaunchMode" : "fast",
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        "modules" : {
+            "OAuth" : {},
+            "Payment" : {},
+            "Push" : {},
+            "Share" : {},
+            "Speech" : {},
+            "VideoPlayer" : {}
+        },
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {
+                "UIBackgroundModes" : [ "audio" ],
+                "urlschemewhitelist" : [ "baidumap", "iosamap" ]
+            },
+            /* SDK配置 */
+            "sdkConfigs" : {
+                "speech" : {
+                    "ifly" : {}
+                }
+            },
+            "orientation" : [ "portrait-primary" ]
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 线上(销花宝) wxcf32b3f0684c2433 开发(花掌柜) wx21b7c3ef12082099 */
+    "mp-weixin" : {
+        "appid" : "wx21b7c3ef12082099",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true,
+        "permission" : {
+            "scope.userLocation" : {
+                "desc" : "请点击确定"
+            }
+        }
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "h5" : {
+        "template" : "template.h5.html",
+        "router" : {
+            // "mode" : "history",
+            "base" : "/"
+        },
+        "async": {
+            "timeout": 200000
+        },
+        "optimization": {
+            "treeShaking": {
+                "enable": true
+            }
+        },
+        "devServer": {
+            "port": 81,
+            "proxy": {
+                "/api": {
+                    "target": "http://api.shop.hzghd.com",
+                    "secure": false,
+                    "changeOrigin": true,
+                    "pathRewrite": {
+                        "^/api": ""
+                    }
+                }
+            }
+        },
+        "sdkConfigs" : {
+            "maps" : {
+                "qqmap" : {
+                    "key" : ""
+                }
+            }
+        },
+        "async" : {
+            "timeout" : 20000
+        }
+    }
+}

+ 435 - 0
开发/kmApp/src/static/iconfont/iconfont.css

@@ -0,0 +1,435 @@
+@font-face {
+  font-family: 'iconfont';  /* project id 1525256 */
+  src: url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.eot');
+  src: url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.eot?#iefix') format('embedded-opentype'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.woff2') format('woff2'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.woff') format('woff'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.ttf') format('truetype'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.svg#iconfont') format('svg');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.iconcachu::before {
+  content: "\e7e6";
+}
+
+.iconjihuo:before {
+  content: "\e601";
+}
+
+.iconmingxi1:before {
+  content: "\e7e5";
+}
+.iconjian:before {
+  content: "\e7e3";
+}
+
+.iconzeng:before {
+  content: "\e7e4";
+}
+
+.iconqiehuan1:before {
+  content: "\e7e2";
+}
+
+.iconqishouyinying:before {
+  content: "\e7e1";
+}
+
+.iconxiayi:before {
+  content: "\e7de";
+}
+
+.iconshangyi:before {
+  content: "\e7e0";
+}
+
+.iconyiruku:before {
+  content: "\e7df";
+}
+
+.iconyikaidian:before {
+  content: "\e7d7";
+}
+
+.icondianhua1:before {
+  content: "\e7d9";
+}
+
+.iconshoukuanma1:before {
+  content: "\e7d8";
+}
+
+.icondaichuku:before {
+  content: "\e7da";
+}
+
+.iconyichuku:before {
+  content: "\e7db";
+}
+
+.iconyiquxiao:before {
+  content: "\e7dc";
+}
+
+.icondairuku:before {
+  content: "\e7dd";
+}
+
+.iconshoukuanma:before {
+  content: "\e600";
+}
+
+.icongouwuche:before {
+  content: "\e7d5";
+}
+
+.iconjianqu:before {
+  content: "\e7d3";
+}
+
+.icontianjia:before {
+  content: "\e7d4";
+}
+
+.iconsearch1:before {
+  content: "\e7d6";
+}
+
+.icondingdanweixuanzhong1:before {
+  content: "\e7c9";
+}
+
+.icondianpuweixuanzhong:before {
+  content: "\e7ca";
+}
+
+.iconwodeweixuanzhong:before {
+  content: "\e7cb";
+}
+
+.iconyingyongweixuanzhong:before {
+  content: "\e7cc";
+}
+
+.icondianpuxuanzhong:before {
+  content: "\e7cd";
+}
+
+.icondingdanxuanzhong1:before {
+  content: "\e7ce";
+}
+
+.iconwodexuanzhong:before {
+  content: "\e7cf";
+}
+
+.iconkehuweixuanzhong1:before {
+  content: "\e7d0";
+}
+
+.iconyingyongxuanzhong:before {
+  content: "\e7d1";
+}
+
+.iconkehuxuanzhong1:before {
+  content: "\e7d2";
+}
+
+.iconxiaochengxu2:before {
+  content: "\e78d";
+}
+
+.iconmeituan:before {
+  content: "\e78e";
+}
+
+.iconzhangshangcaifuyemianshoujiban344:before {
+  content: "\e632";
+}
+
+.iconwaimai:before {
+  content: "\e692";
+}
+
+.iconxiaochengxu1:before {
+  content: "\e619";
+}
+
+.iconjiantouxia:before {
+  content: "\e61a";
+}
+
+.iconshenheweitongguo:before {
+  content: "\e774";
+}
+
+.iconsanjiao_xia:before {
+  content: "\e631";
+}
+
+.iconsanjiaoshang:before {
+  content: "\e643";
+}
+
+.icondagou:before {
+  content: "\e607";
+}
+
+.iconshezhi:before {
+  content: "\e645";
+}
+
+.iconcaidan:before {
+  content: "\e65d";
+}
+
+.iconxiaoxi2:before {
+  content: "\e76f";
+}
+
+.iconmorentu:before {
+  content: "\e76e";
+}
+
+.icongou:before {
+  content: "\e76d";
+}
+
+.iconbianjijiage1:before {
+  content: "\e76c";
+}
+
+.iconchenggong:before {
+  content: "\e76b";
+}
+
+.iconfahuo:before {
+  content: "\e75d";
+}
+
+.iconshouye:before {
+  content: "\e75e";
+}
+
+.icontianjiatuku:before {
+  content: "\e767";
+}
+
+.iconxinrenlingquanshezhi:before {
+  content: "\e768";
+}
+
+.iconhuiyuandengjishezhi:before {
+  content: "\e769";
+}
+
+.iconweixin:before {
+  content: "\e76a";
+}
+
+.iconcaidanlan:before {
+  content: "\e75c";
+}
+
+.icontupiantianjia:before {
+  content: "\e75f";
+}
+
+.icondelete:before {
+  content: "\e760";
+}
+
+.iconxiaoxi1:before {
+  content: "\e761";
+}
+
+.iconxiala:before {
+  content: "\e762";
+}
+
+.icontianjiakehu:before {
+  content: "\e766";
+}
+
+.iconweixingongzhonghao:before {
+  content: "\e763";
+}
+
+.iconshoujihao1:before {
+  content: "\e764";
+}
+
+.iconweixinlaiyuan:before {
+  content: "\e765";
+}
+
+.iconkehuxuanzhong:before {
+  content: "\e755";
+}
+
+.iconkehuweixuanzhong:before {
+  content: "\e756";
+}
+
+.icongongzuotaiweixuanzhong:before {
+  content: "\e757";
+}
+
+.icongongzuotaixuanzhong:before {
+  content: "\e758";
+}
+
+.icondingdanweixuanzhong:before {
+  content: "\e759";
+}
+
+.icondingdanxuanzhong:before {
+  content: "\e75a";
+}
+
+.iconcaozuo:before {
+  content: "\e751";
+}
+
+.iconcaozuojihuo:before {
+  content: "\e752";
+}
+
+.iconfenxiang1:before {
+  content: "\e74c";
+}
+
+.iconbianji:before {
+  content: "\e74d";
+}
+
+.iconjinyong:before {
+  content: "\e74e";
+}
+
+.iconqiyong:before {
+  content: "\e74f";
+}
+
+.iconshanchu1:before {
+  content: "\e750";
+}
+
+.iconzhiding:before {
+  content: "\e753";
+}
+
+.iconxiajia:before {
+  content: "\e754";
+}
+
+.iconguanbi:before {
+  content: "\e74b";
+}
+
+.iconshanchu:before {
+  content: "\e74a";
+}
+
+.iconkefu:before {
+  content: "\e749";
+}
+
+.icontupian:before {
+  content: "\e746";
+}
+
+.iconxiaochengxu:before {
+  content: "\e747";
+}
+
+.iconzhifubao:before {
+  content: "\e748";
+}
+
+.iconchangjianwentixiangguanwenti2:before {
+  content: "\e679";
+}
+
+.iconxuanzhong:before {
+  content: "\e744";
+}
+
+.iconweixuanzhong:before {
+  content: "\e745";
+}
+
+.iconfenxiang:before {
+  content: "\e743";
+}
+
+.iconxiaoxi:before {
+  content: "\e741";
+}
+
+.icondianpu:before {
+  content: "\e742";
+}
+
+.icondianhua:before {
+  content: "\e73f";
+}
+
+.iconditu:before {
+  content: "\e740";
+}
+
+.iconsearch:before {
+  content: "\e73d";
+}
+
+.iconclose:before {
+  content: "\e73e";
+}
+
+.icondaizhifu:before {
+  content: "\e733";
+}
+
+.iconshoujihao:before {
+  content: "\e734";
+}
+
+.iconxiangyou:before {
+  content: "\e735";
+}
+
+.iconhaopingxingxing:before {
+  content: "\e736";
+}
+
+.iconmine:before {
+  content: "\e737";
+}
+
+.iconstore:before {
+  content: "\e738";
+}
+
+.iconhome:before {
+  content: "\e739";
+}
+
+.iconclassification:before {
+  content: "\e73a";
+}
+
+.iconyiguoqi:before {
+  content: "\e73b";
+}
+
+.iconyishiyong:before {
+  content: "\e73c";
+}

+ 179 - 0
线上/km/vue.config.js

@@ -0,0 +1,179 @@
+const path = require('path');
+
+const isProduction = process.env.NODE_ENV === 'production';
+
+//http和https切换请修改这里,修改后需要重新运行npm run serve shish 2021.4.12
+const proxyTarget = 'http://api.shop.hzghd.com';
+
+function resolve(dir) {
+	return path.join(__dirname, dir);
+}
+
+/**
+ * 姜枫 2021.05.04
+ * **/
+let hostUrl = ``;
+if(process.env.NODE_ENV == 'development'){
+	hostUrl = `http://img.hzghd.com/`;
+}else if(process.env.NODE_ENV == 'local'){
+	hostUrl = `http://img.hzghd.com/`;
+}else{
+	hostUrl = `https://img.hzghd.com/`;
+}
+
+const cdn = {
+	dev: {
+		css: [`${hostUrl}cdn/element-ui/2.13.0/theme-chalk/index.css`]
+	},
+	pro: {
+		css: [
+			`${hostUrl}cdn/nprogress/0.2.0/nprogress.min.css`,
+			`${hostUrl}cdn/quill/2.0.0-dev.3/quill.core.min.css`,
+			`${hostUrl}cdn/viewerjs/1.3.7/viewer.min.css`,
+			`${hostUrl}cdn/element-ui/2.13.0/theme-chalk/index.css`
+		],
+		js: [
+			`${hostUrl}cdn/vue/2.6.10/vue.min.js`,
+			`${hostUrl}cdn/vue-router/3.1.3/vue-router.min.js`,
+			`${hostUrl}cdn/vuex/3.1.1/vuex.min.js`,
+			`${hostUrl}cdn/clipboard.js/2.0.4/clipboard.min.js`,
+			`${hostUrl}cdn/axios/0.19.0-beta.1/axios.min.js`,
+			`${hostUrl}cdn/nprogress/0.2.0/nprogress.min.js`,
+			`${hostUrl}cdn/Mock.js/1.0.1-beta3/mock-min.js`,
+			`${hostUrl}cdn/quill/2.0.0-dev.3/quill.min.js`,
+			`${hostUrl}cdn/element-ui/2.13.0/index.js`,
+			`${hostUrl}cdn/viewerjs/1.3.7/viewer.min.js`,
+			`${hostUrl}cdn/echarts/4.4.0-rc.1/echarts.min.js`,
+			`${hostUrl}cdn/npm/vue-echarts@4.0.2.js`
+		]
+	}
+};
+
+module.exports = {
+	publicPath: '/',
+	lintOnSave: true,
+	productionSourceMap: false,
+	parallel: require('os').cpus().length > 1,
+	// 输出文件目录
+	outputDir: 'dist/shop/',
+
+	css: {
+		extract: isProduction,
+		sourceMap: false,
+		loaderOptions: {
+			stylus: {
+				import: '~@/assets/css/common.styl'
+			},
+			sass: {
+				prependData: `@import "~@/assets/css/base.scss";`
+			}
+		}
+	},
+
+	devServer: {
+		host: '127.0.0.1',
+		port: 7777,
+		open: false,
+		compress: false,
+		overlay: {
+			warnings: false,
+			errors: true
+		},
+
+		proxy: {
+			'/dev': {
+				target: proxyTarget,
+				changeOrigin: true,
+				pathRewrite: { '^/dev': '' }
+			},
+			'/s-dev': {
+				target: proxyTarget,
+				changeOrigin: true,
+				pathRewrite: { '^/s-dev': '' }
+			},
+			'/pro': {
+				target: proxyTarget,
+				changeOrigin: true,
+				pathRewrite: { '^/pro': '/api' }
+			}
+		}
+	},
+
+	chainWebpack: config => {
+		// 移除 prefetch 插件
+		config.plugins.delete('prefetch');
+		// 移除 preload 插件
+		// config.plugins.delete('preload');
+		// svg
+		// config.module.rule('svg').uses.clear();
+
+		// config.module
+		// 	.rule('svg-sprite-loader')
+		// 	.test(/.svg$/)
+		// 	.exclude.add(/node_modules/)
+		// 	.end()
+		// 	.use('svg-sprite-loader')
+		// 	.loader('svg-sprite-loader')
+		// 	.options({
+		// 		symbolId: '[name]'
+		// 	});
+
+		// 去掉元素之间空格
+		config.module
+			.rule('vue')
+			.use('vue-loader')
+			.loader('vue-loader')
+			.tap(options => {
+				options.compilerOptions.preserveWhitespace = true;
+				return options;
+			})
+			.end();
+
+		// 引入cdn
+		config.plugin('html').tap(args => {
+			args[0].cdn = cdn[isProduction ? 'pro' : 'dev'];
+			return args;
+		});
+
+		if (isProduction) {
+			config.performance.set('hints', false);
+
+			config.optimization.splitChunks({
+				chunks: 'all',
+				cacheGroups: {
+					libs: {
+						name: 'chunk-libs',
+						test: /[\\/]node_modules[\\/]/,
+						priority: 10,
+						chunks: 'initial'
+					},
+					commons: {
+						name: 'chunk-cool',
+						test: resolve('src/cool'),
+						minChunks: 3,
+						priority: 5,
+						reuseExistingChunk: true
+					}
+				}
+			});
+		}
+	},
+
+	configureWebpack: config => {
+		if (isProduction) {
+			config.externals = {
+				vue: 'Vue',
+				'vue-router': 'VueRouter',
+				'element-ui': 'ELEMENT',
+				vuex: 'Vuex',
+				axios: 'axios',
+				mockjs: 'Mock',
+				nprogress: 'NProgress',
+				quill: 'Quill',
+				viewer: 'Viewer',
+				echarts: 'echarts',
+				'vue-echarts': 'VueECharts'
+			};
+		}
+	}
+};

+ 12 - 0
线上/kmApp/src/ext.json

@@ -0,0 +1,12 @@
+{
+  "extEnable": true,
+  "extAppid": "wx21b7c3ef12082099",
+  "directCommit": false,
+  "ext": {
+    "account": 12362,
+    "apiHost": "https://api.shop.hzghd.com",
+    "socketApiHost": "api.shop.hzghd.com",
+    "imgHost": "https://img.hzghd.com",
+    "name":"花掌柜"
+  }
+}

+ 144 - 0
线上/kmApp/src/manifest.json

@@ -0,0 +1,144 @@
+{
+    "name" : "供应商",
+    "appid" : "",
+    "description" : "应用描述",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : true,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "nvueLaunchMode" : "fast",
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        "modules" : {
+            "OAuth" : {},
+            "Payment" : {},
+            "Push" : {},
+            "Share" : {},
+            "Speech" : {},
+            "VideoPlayer" : {}
+        },
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {
+                "UIBackgroundModes" : [ "audio" ],
+                "urlschemewhitelist" : [ "baidumap", "iosamap" ]
+            },
+            /* SDK配置 */
+            "sdkConfigs" : {
+                "speech" : {
+                    "ifly" : {}
+                }
+            },
+            "orientation" : [ "portrait-primary" ]
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 线上(销花宝) wxcf32b3f0684c2433 开发(花掌柜) wx21b7c3ef12082099 */
+    "mp-weixin" : {
+        "appid" : "wx21b7c3ef12082099",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true,
+        "permission" : {
+            "scope.userLocation" : {
+                "desc" : "请点击确定"
+            }
+        }
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "h5" : {
+        "template" : "template.h5.html",
+        "router" : {
+            // "mode" : "history",
+            "base" : "/"
+        },
+        "async": {
+            "timeout": 200000
+        },
+        "optimization": {
+            "treeShaking": {
+                "enable": true
+            }
+        },
+        "devServer": {
+            "port": 81,
+            "proxy": {
+                "/api": {
+                    "target": "http://api.shop.hzghd.com",
+                    "secure": false,
+                    "changeOrigin": true,
+                    "pathRewrite": {
+                        "^/api": ""
+                    }
+                }
+            }
+        },
+        "sdkConfigs" : {
+            "maps" : {
+                "qqmap" : {
+                    "key" : ""
+                }
+            }
+        },
+        "async" : {
+            "timeout" : 20000
+        }
+    }
+}

+ 435 - 0
线上/kmApp/src/static/iconfont/iconfont.css

@@ -0,0 +1,435 @@
+@font-face {
+  font-family: 'iconfont';  /* project id 1525256 */
+  src: url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.eot');
+  src: url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.eot?#iefix') format('embedded-opentype'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.woff2') format('woff2'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.woff') format('woff'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.ttf') format('truetype'),
+  url('https://img.hzghd.com/iconfont/font_1525256_6bxwphhntqh.svg#iconfont') format('svg');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.iconcachu::before {
+  content: "\e7e6";
+}
+
+.iconjihuo:before {
+  content: "\e601";
+}
+
+.iconmingxi1:before {
+  content: "\e7e5";
+}
+.iconjian:before {
+  content: "\e7e3";
+}
+
+.iconzeng:before {
+  content: "\e7e4";
+}
+
+.iconqiehuan1:before {
+  content: "\e7e2";
+}
+
+.iconqishouyinying:before {
+  content: "\e7e1";
+}
+
+.iconxiayi:before {
+  content: "\e7de";
+}
+
+.iconshangyi:before {
+  content: "\e7e0";
+}
+
+.iconyiruku:before {
+  content: "\e7df";
+}
+
+.iconyikaidian:before {
+  content: "\e7d7";
+}
+
+.icondianhua1:before {
+  content: "\e7d9";
+}
+
+.iconshoukuanma1:before {
+  content: "\e7d8";
+}
+
+.icondaichuku:before {
+  content: "\e7da";
+}
+
+.iconyichuku:before {
+  content: "\e7db";
+}
+
+.iconyiquxiao:before {
+  content: "\e7dc";
+}
+
+.icondairuku:before {
+  content: "\e7dd";
+}
+
+.iconshoukuanma:before {
+  content: "\e600";
+}
+
+.icongouwuche:before {
+  content: "\e7d5";
+}
+
+.iconjianqu:before {
+  content: "\e7d3";
+}
+
+.icontianjia:before {
+  content: "\e7d4";
+}
+
+.iconsearch1:before {
+  content: "\e7d6";
+}
+
+.icondingdanweixuanzhong1:before {
+  content: "\e7c9";
+}
+
+.icondianpuweixuanzhong:before {
+  content: "\e7ca";
+}
+
+.iconwodeweixuanzhong:before {
+  content: "\e7cb";
+}
+
+.iconyingyongweixuanzhong:before {
+  content: "\e7cc";
+}
+
+.icondianpuxuanzhong:before {
+  content: "\e7cd";
+}
+
+.icondingdanxuanzhong1:before {
+  content: "\e7ce";
+}
+
+.iconwodexuanzhong:before {
+  content: "\e7cf";
+}
+
+.iconkehuweixuanzhong1:before {
+  content: "\e7d0";
+}
+
+.iconyingyongxuanzhong:before {
+  content: "\e7d1";
+}
+
+.iconkehuxuanzhong1:before {
+  content: "\e7d2";
+}
+
+.iconxiaochengxu2:before {
+  content: "\e78d";
+}
+
+.iconmeituan:before {
+  content: "\e78e";
+}
+
+.iconzhangshangcaifuyemianshoujiban344:before {
+  content: "\e632";
+}
+
+.iconwaimai:before {
+  content: "\e692";
+}
+
+.iconxiaochengxu1:before {
+  content: "\e619";
+}
+
+.iconjiantouxia:before {
+  content: "\e61a";
+}
+
+.iconshenheweitongguo:before {
+  content: "\e774";
+}
+
+.iconsanjiao_xia:before {
+  content: "\e631";
+}
+
+.iconsanjiaoshang:before {
+  content: "\e643";
+}
+
+.icondagou:before {
+  content: "\e607";
+}
+
+.iconshezhi:before {
+  content: "\e645";
+}
+
+.iconcaidan:before {
+  content: "\e65d";
+}
+
+.iconxiaoxi2:before {
+  content: "\e76f";
+}
+
+.iconmorentu:before {
+  content: "\e76e";
+}
+
+.icongou:before {
+  content: "\e76d";
+}
+
+.iconbianjijiage1:before {
+  content: "\e76c";
+}
+
+.iconchenggong:before {
+  content: "\e76b";
+}
+
+.iconfahuo:before {
+  content: "\e75d";
+}
+
+.iconshouye:before {
+  content: "\e75e";
+}
+
+.icontianjiatuku:before {
+  content: "\e767";
+}
+
+.iconxinrenlingquanshezhi:before {
+  content: "\e768";
+}
+
+.iconhuiyuandengjishezhi:before {
+  content: "\e769";
+}
+
+.iconweixin:before {
+  content: "\e76a";
+}
+
+.iconcaidanlan:before {
+  content: "\e75c";
+}
+
+.icontupiantianjia:before {
+  content: "\e75f";
+}
+
+.icondelete:before {
+  content: "\e760";
+}
+
+.iconxiaoxi1:before {
+  content: "\e761";
+}
+
+.iconxiala:before {
+  content: "\e762";
+}
+
+.icontianjiakehu:before {
+  content: "\e766";
+}
+
+.iconweixingongzhonghao:before {
+  content: "\e763";
+}
+
+.iconshoujihao1:before {
+  content: "\e764";
+}
+
+.iconweixinlaiyuan:before {
+  content: "\e765";
+}
+
+.iconkehuxuanzhong:before {
+  content: "\e755";
+}
+
+.iconkehuweixuanzhong:before {
+  content: "\e756";
+}
+
+.icongongzuotaiweixuanzhong:before {
+  content: "\e757";
+}
+
+.icongongzuotaixuanzhong:before {
+  content: "\e758";
+}
+
+.icondingdanweixuanzhong:before {
+  content: "\e759";
+}
+
+.icondingdanxuanzhong:before {
+  content: "\e75a";
+}
+
+.iconcaozuo:before {
+  content: "\e751";
+}
+
+.iconcaozuojihuo:before {
+  content: "\e752";
+}
+
+.iconfenxiang1:before {
+  content: "\e74c";
+}
+
+.iconbianji:before {
+  content: "\e74d";
+}
+
+.iconjinyong:before {
+  content: "\e74e";
+}
+
+.iconqiyong:before {
+  content: "\e74f";
+}
+
+.iconshanchu1:before {
+  content: "\e750";
+}
+
+.iconzhiding:before {
+  content: "\e753";
+}
+
+.iconxiajia:before {
+  content: "\e754";
+}
+
+.iconguanbi:before {
+  content: "\e74b";
+}
+
+.iconshanchu:before {
+  content: "\e74a";
+}
+
+.iconkefu:before {
+  content: "\e749";
+}
+
+.icontupian:before {
+  content: "\e746";
+}
+
+.iconxiaochengxu:before {
+  content: "\e747";
+}
+
+.iconzhifubao:before {
+  content: "\e748";
+}
+
+.iconchangjianwentixiangguanwenti2:before {
+  content: "\e679";
+}
+
+.iconxuanzhong:before {
+  content: "\e744";
+}
+
+.iconweixuanzhong:before {
+  content: "\e745";
+}
+
+.iconfenxiang:before {
+  content: "\e743";
+}
+
+.iconxiaoxi:before {
+  content: "\e741";
+}
+
+.icondianpu:before {
+  content: "\e742";
+}
+
+.icondianhua:before {
+  content: "\e73f";
+}
+
+.iconditu:before {
+  content: "\e740";
+}
+
+.iconsearch:before {
+  content: "\e73d";
+}
+
+.iconclose:before {
+  content: "\e73e";
+}
+
+.icondaizhifu:before {
+  content: "\e733";
+}
+
+.iconshoujihao:before {
+  content: "\e734";
+}
+
+.iconxiangyou:before {
+  content: "\e735";
+}
+
+.iconhaopingxingxing:before {
+  content: "\e736";
+}
+
+.iconmine:before {
+  content: "\e737";
+}
+
+.iconstore:before {
+  content: "\e738";
+}
+
+.iconhome:before {
+  content: "\e739";
+}
+
+.iconclassification:before {
+  content: "\e73a";
+}
+
+.iconyiguoqi:before {
+  content: "\e73b";
+}
+
+.iconyishiyong:before {
+  content: "\e73c";
+}