hwq 2 years ago
parent
commit
ad484e9c8f
100 changed files with 1219 additions and 379 deletions
  1. 36 0
      api/activity.js
  2. 1 1
      api/order.js
  3. 25 18
      api/product.js
  4. 10 1
      api/set.js
  5. 64 0
      api/upload.js
  6. 65 1
      api/user.js
  7. 10 4
      api/wallet.js
  8. 347 0
      components/jin-edit/jin-edit.vue
  9. 48 0
      components/jin-edit/jin-icons.vue
  10. 65 0
      components/jin-edit/readme.md
  11. 160 155
      components/uni-countdown/uni-countdown.vue
  12. 96 90
      components/wangding-pickerAddress/wangding-pickerAddress.vue
  13. 112 109
      manifest.json
  14. 55 0
      node_modules/.package-lock.json
  15. 22 0
      node_modules/@babel/runtime-corejs2/LICENSE
  16. 19 0
      node_modules/@babel/runtime-corejs2/README.md
  17. 1 0
      node_modules/@babel/runtime-corejs2/core-js/array/from.js
  18. 1 0
      node_modules/@babel/runtime-corejs2/core-js/array/is-array.js
  19. 1 0
      node_modules/@babel/runtime-corejs2/core-js/array/of.js
  20. 1 0
      node_modules/@babel/runtime-corejs2/core-js/clear-immediate.js
  21. 1 0
      node_modules/@babel/runtime-corejs2/core-js/date/now.js
  22. 1 0
      node_modules/@babel/runtime-corejs2/core-js/get-iterator.js
  23. 1 0
      node_modules/@babel/runtime-corejs2/core-js/is-iterable.js
  24. 1 0
      node_modules/@babel/runtime-corejs2/core-js/json/stringify.js
  25. 1 0
      node_modules/@babel/runtime-corejs2/core-js/map.js
  26. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/acosh.js
  27. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/asinh.js
  28. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/atanh.js
  29. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/cbrt.js
  30. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/clz32.js
  31. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/cosh.js
  32. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/expm1.js
  33. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/fround.js
  34. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/hypot.js
  35. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/imul.js
  36. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/log10.js
  37. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/log1p.js
  38. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/log2.js
  39. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/sign.js
  40. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/sinh.js
  41. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/tanh.js
  42. 1 0
      node_modules/@babel/runtime-corejs2/core-js/math/trunc.js
  43. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/epsilon.js
  44. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/is-finite.js
  45. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/is-integer.js
  46. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/is-nan.js
  47. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/is-safe-integer.js
  48. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/max-safe-integer.js
  49. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/min-safe-integer.js
  50. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/parse-float.js
  51. 1 0
      node_modules/@babel/runtime-corejs2/core-js/number/parse-int.js
  52. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/assign.js
  53. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/create.js
  54. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js
  55. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/define-property.js
  56. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/entries.js
  57. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/freeze.js
  58. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js
  59. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js
  60. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-names.js
  61. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js
  62. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js
  63. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/is-extensible.js
  64. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/is-frozen.js
  65. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/is-sealed.js
  66. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/is.js
  67. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/keys.js
  68. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/prevent-extensions.js
  69. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/seal.js
  70. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js
  71. 1 0
      node_modules/@babel/runtime-corejs2/core-js/object/values.js
  72. 1 0
      node_modules/@babel/runtime-corejs2/core-js/parse-float.js
  73. 1 0
      node_modules/@babel/runtime-corejs2/core-js/parse-int.js
  74. 1 0
      node_modules/@babel/runtime-corejs2/core-js/promise.js
  75. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/apply.js
  76. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js
  77. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/define-property.js
  78. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/delete-property.js
  79. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/get-own-property-descriptor.js
  80. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/get-prototype-of.js
  81. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/get.js
  82. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/has.js
  83. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/is-extensible.js
  84. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/own-keys.js
  85. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/prevent-extensions.js
  86. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/set-prototype-of.js
  87. 1 0
      node_modules/@babel/runtime-corejs2/core-js/reflect/set.js
  88. 1 0
      node_modules/@babel/runtime-corejs2/core-js/set-immediate.js
  89. 1 0
      node_modules/@babel/runtime-corejs2/core-js/set.js
  90. 1 0
      node_modules/@babel/runtime-corejs2/core-js/string/at.js
  91. 1 0
      node_modules/@babel/runtime-corejs2/core-js/string/from-code-point.js
  92. 1 0
      node_modules/@babel/runtime-corejs2/core-js/string/raw.js
  93. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol.js
  94. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol/async-iterator.js
  95. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol/for.js
  96. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol/has-instance.js
  97. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol/is-concat-spreadable.js
  98. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js
  99. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol/key-for.js
  100. 1 0
      node_modules/@babel/runtime-corejs2/core-js/symbol/match.js

+ 36 - 0
api/activity.js

@@ -115,3 +115,39 @@ export function article_poster(data, id) {
 		data
 	});
 }
+
+// 我的文章
+export function my_article(data, id) {
+	return request({
+		url: '/api/article/my/' + id,
+		method: 'get',
+		data
+	});
+}
+
+// 我的文章详情
+export function my_detail(data, id) {
+	return request({
+		url: '/api/article/my_detail/' + id,
+		method: 'get',
+		data
+	});
+}
+
+// 删除文章
+export function delete_article(data, id) {
+	return request({
+		url: '/api/article/delete/' + id,
+		method: 'post',
+		data
+	});
+}
+
+// 新增 修改文章
+export function add_article(data) {
+	return request({
+		url: '/api/article/add',
+		method: 'post',
+		data
+	});
+}

+ 1 - 1
api/order.js

@@ -144,4 +144,4 @@ export function computedOrderkey(data) {
 		method: 'post',
 		data
 	});
-}
+}

+ 25 - 18
api/product.js

@@ -73,10 +73,10 @@ export function searchKeyword(data) {
 }
 
 // 获取热门分类信息
-export function groomList(data,type) {
+export function groomList(data, type) {
 	// 获取产品类型 1 精品推荐 2 热门榜单 3首发新品 4促销单品
 	return request({
-		url: '/api/groom/list/'+type,
+		url: '/api/groom/list/' + type,
 		method: 'get',
 		data
 	});
@@ -84,18 +84,18 @@ export function groomList(data,type) {
 
 
 // 获取秒杀商品详细
-export function seckillGoods(data,id) {
+export function seckillGoods(data, id) {
 	return request({
-		url: '/api/seckill/detail/'+id,
+		url: '/api/seckill/detail/' + id,
 		method: 'get',
 		data
 	});
 }
 
 // 获取拼团商品详细
-export function groupGoods(data,id) {
+export function groupGoods(data, id) {
 	return request({
-		url: '/api/combination/detail/'+id,
+		url: '/api/combination/detail/' + id,
 		method: 'get',
 		data
 	});
@@ -122,18 +122,18 @@ export function getCombinationList(data) {
 }
 
 //取消拼团
-export function getCombinationLisRemove(data,id) {
+export function getCombinationLisRemove(data, id) {
 	return request({
-		url: '/api/combination/remove'+id,
+		url: '/api/combination/remove' + id,
 		method: 'get',
 		data
 	});
 }
 
 //拼团开团页面数据
-export function getCombinationLisPink(data,id) {
+export function getCombinationLisPink(data, id) {
 	return request({
-		url: '/api/combination/pink/'+id,
+		url: '/api/combination/pink/' + id,
 		method: 'get',
 		data
 	});
@@ -158,29 +158,36 @@ export function getSeckillClass(data) {
 	});
 }
 // 获取秒杀列表
-export function getSeckillList(data,id) {
+export function getSeckillList(data, id) {
 	return request({
-		url: '/api/seckill/list/'+id,
+		url: '/api/seckill/list/' + id,
 		method: 'get',
 		data
 	});
 }
 
+// 分享海报 
+export function poster(data) {
+	return request({
+		url: '/api/product/poster',
+		method: 'post',
+		data
+	});
+}
 
 // 产品评价数量和好评度
-export function reply_config(data,id) {
+export function reply_config(data, id) {
 	return request({
-		url: '/api/reply/config/'+id,
+		url: '/api/reply/config/' + id,
 		method: 'get',
 		data
 	});
 }
 // 获取产品评论
-export function reply_list(data,id) {
+export function reply_list(data, id) {
 	return request({
-		url: '/api/reply/list/'+id,
+		url: '/api/reply/list/' + id,
 		method: 'get',
 		data
 	});
-}
-
+}

+ 10 - 1
api/set.js

@@ -43,4 +43,13 @@ export function applelogin(data) {
 		data
 	});
 }
-// #endif
+// #endif
+
+// 获取地址
+export function city_area(data) {
+	return request({
+		url: '/api/city_area',
+		method: 'get',
+		data
+	});
+}

+ 64 - 0
api/upload.js

@@ -0,0 +1,64 @@
+import request from '@/utils/request'
+
+// 提交审核
+export function set_apply(data, id) {
+	return request({
+		url: '/api/user_product/set_apply/' + id,
+		method: 'post',
+		data
+	});
+}
+
+//我的商品列表
+export function get_list(data) {
+	return request({
+		url: '/api/user_product/get_list',
+		method: 'get',
+		data
+	});
+}
+
+//新增修改商品
+export function save(data, id) {
+	return request({
+		url: '/api/user_product/save/' + id,
+		method: 'post',
+		data
+	});
+}
+
+// 生成规格列表
+export function is_format_attr(data) {
+	return request({
+		url: '/api/user_product/is_format_attr/0',
+		method: 'post',
+		data
+	});
+}
+
+// 获取运费模板
+export function temp_list(data) {
+	return request({
+		url: '/api/user_product/temp_list',
+		method: 'get',
+		data
+	});
+}
+
+// 获取商品详情
+export function get_product_info(data, id) {
+	return request({
+		url: '/api/user_product/get_product_info/' + id,
+		method: 'get',
+		data
+	});
+}
+
+// 获取规格列表
+export function get_rule(data) {
+	return request({
+		url: '/api/user_product/get_rule',
+		method: 'get',
+		data
+	});
+}

+ 65 - 1
api/user.js

@@ -12,7 +12,7 @@ export function orderData(data) {
 // 获取用户信息
 export function getUserInfo(data) {
 	return request({
-		url: '/api/userinfo',
+		url: '/api/user',
 		method: 'get',
 		data
 	});
@@ -126,3 +126,67 @@ export function articleList(data, id) {
 		data
 	});
 }
+
+// 列表
+export function moneyList(data, type) {
+	return request({
+		url: '/api/money/list/' + type,
+		method: 'get',
+		data
+	});
+}
+
+//我的推广
+export function myspread(data) {
+	return request({
+		url: '/api/spread/people',
+		method: 'POST',
+		data
+	});
+}
+
+//推广人订单
+export function spreadOrder(data) {
+	return request({
+		url: '/api/spread/order',
+		method: 'POST',
+		data
+	});
+}
+
+//订阅消息
+export function subscribe(data, id) {
+	return request({
+		url: '/api/seckill/subscribe/' + id,
+		method: 'POST',
+		data
+	});
+}
+
+// 系统通知
+export function message(data) {
+	return request({
+		url: '/api/user/message',
+		method: 'GET',
+		data
+	});
+}
+
+// 会员等级列表
+export function agentLevelList(data) {
+	return request({
+		url: '/api/user/level/grade',
+		method: 'GET',
+		data
+	});
+}
+
+
+// 会员列表
+export function agentLevelTaskList(data, id) {
+	return request({
+		url: '/api/user/level/task/' + id,
+		method: 'GET',
+		data
+	});
+}

+ 10 - 4
api/wallet.js

@@ -1,9 +1,9 @@
 import request from '@/utils/request'
 
 // 获取用户消费记录
-export function spreadCommission(data,state) {
+export function spreadCommission(data, state) {
 	return request({
-		url: '/api/spread/commission/'+state,
+		url: '/api/spread/commission/' + state,
 		method: 'get',
 		data
 	});
@@ -98,5 +98,11 @@ export function balance(data) {
 	});
 }
 
-
-
+// 提现列表
+export function extract(data) {
+	return request({
+		url: '/api/extract/user',
+		method: 'get',
+		data
+	});
+}

+ 347 - 0
components/jin-edit/jin-edit.vue

@@ -0,0 +1,347 @@
+<template>
+	<view class="container" :style="{height: height}">
+		<editor class="ql-container" :placeholder="placeholder" :show-img-size="true" :show-img-toolbar="true"
+			:show-img-resize="true" @ready="onEditorReady" id="editor" @statuschange="statuschange" @focus="editFocus"
+			@blur="editBlur" ref="editot"></editor>
+		<!-- 操作工具 -->
+		<view class="tool-view">
+			<!-- 文字相关操作 -->
+			<view class="font-more" :style="{ height: showMoreTool ? '100rpx' : 0 }">
+				<jinIcon class="single" type="&#xe6e7;" font-size="44rpx" title="加粗" @click="setBold"
+					:color="showBold ? activeColor : '#666666'"></jinIcon>
+				<jinIcon class="single" type="&#xe6fe;" font-size="44rpx" title="斜体" @click="setItalic"
+					:color="showItalic ? activeColor : '#666666'"></jinIcon>
+				<jinIcon class="single" type="&#xe6f8;" font-size="44rpx" title="分割线" @click="setIns"
+					:color="showIns ? activeColor : '#666666'"></jinIcon>
+				<jinIcon class="single" type="&#xe6e3;" font-size="44rpx" title="标题" @click="setHeader"
+					:color="showHeader ? activeColor : '#666666'"></jinIcon>
+				<jinIcon class="single" type="&#xe6f1;" font-size="44rpx" title="居中" @click="setCenter"
+					:color="showCenter ? activeColor : '#666666'"></jinIcon>
+				<jinIcon class="single" type="&#xe6ed;" font-size="44rpx" title="居右" @click="setRight"
+					:color="showRight ? activeColor : '#666666'"></jinIcon>
+			</view>
+			<view class="setting-layer-mask" v-if="showSettingLayer" @click="showSetting"></view>
+			<view class="setting-layer" v-if="showSettingLayer">
+				<view class="single" @click="release(true)">
+					<jinIcon class="icon" type="&#xe639;"></jinIcon>
+					<view>公开发布</view>
+				</view>
+				<view class="single" @click="release(false)">
+					<jinIcon class="icon" type="&#xe655;"></jinIcon>
+					<view>暂时保存</view>
+				</view>
+			</view>
+			<view class="tool">
+				<jinIcon class="single" type="&#xe6f3;" font-size="44rpx" title="插入图片" @click="insertImage"></jinIcon>
+				<jinIcon class="single" type="&#xe6f9;" font-size="44rpx" title="修改文字样式" @click="showMore"
+					:color="showMoreTool ? activeColor : '#666666'"></jinIcon>
+				<jinIcon class="single" type="&#xe6eb;" font-size="44rpx" title="分割线" @click="insertDivider"></jinIcon>
+				<jinIcon class="single" type="&#xe6e8;" font-size="44rpx" title="撤销" @click="undo"></jinIcon>
+				<jinIcon class="single" type="&#xe705;" font-size="44rpx" title="重做" @click="redo"></jinIcon>
+				<jinIcon class="single" type="&#xeb8a;" font-size="44rpx" title="设置" @click="release(true)">
+				</jinIcon>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import jinIcon from './jin-icons.vue';
+	export default {
+		props: {
+			// 点击图片时显示图片大小控件
+			showImgSize: {
+				type: Boolean,
+				default: false
+			},
+			// 点击图片时显示工具栏控件
+			showImgToolbar: {
+				type: Boolean,
+				default: false
+			},
+			// 点击图片时显示修改尺寸控件
+			showImgResize: {
+				type: Boolean,
+				default: false
+			},
+			// 占位符
+			placeholder: {
+				type: String,
+				default: '开始输入...'
+			},
+			// 图片上传的地址
+			uploadFileUrl: {
+				type: String,
+				default: '#'
+			},
+			// 上传文件时的name
+			fileKeyName: {
+				type: String,
+				default: 'file'
+			},
+			// 上传图片时,http请求的header
+			header: {
+				type: Object
+			},
+			// 初始化html
+			html: {
+				type: String
+			},
+			// 整个控件的高度
+			height: {
+				type: String,
+				default: '100vh'
+			}
+		},
+		computed: {
+			...mapState(['baseURL'])
+		},
+		data() {
+			return {
+				showMoreTool: false,
+				showBold: false,
+				showItalic: false,
+				showIns: false,
+				showHeader: false,
+				showCenter: false,
+				showRight: false,
+				showSettingLayer: false,
+				activeColor: '#F56C6C'
+			};
+		},
+		components: {
+			jinIcon
+		},
+		mounted() {},
+		methods: {
+			onEditorReady(e) {
+				uni.createSelectorQuery()
+					.in(this)
+					.select('.ql-container')
+					.fields({
+						size: true,
+						context: true
+					}, res => {
+						this.editorCtx = res.context;
+						this.editorCtx.setContents({
+							html: this.html
+						})
+					})
+					.exec();
+			},
+			undo() {
+				this.editorCtx.undo();
+			},
+			// 插入图片
+			insertImage() {
+				uni.chooseImage({
+					count: 9, //默认9
+					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album', 'camera'], //从相册选择
+					success: async (res) => {
+						var tempFilePaths = res.tempFilePaths;
+						uni.showLoading({
+							title: '正在上传中...'
+						})
+						for (let temp of tempFilePaths) {
+							console.log(88, temp);
+							// 图片上传服务器
+							await uni.uploadFile({
+								url: this.baseURL + this.uploadFileUrl,
+								filePath: temp,
+								name: this.fileKeyName,
+								header: this.header,
+								success: res => {
+									console.log(res, 'shangchuan')
+									// 上传完成后处理
+									let bb
+									console.log(res, '上传完成后处理')
+									if ("string" === typeof res.data) {
+										bb = JSON.parse(res.data).data
+									} else {
+										bb = res.data.data
+									}
+									this.editorCtx.insertImage({
+										src: bb.url, // 此处需要将图片地址切换成服务器返回的真实图片地址
+										alt: '图片',
+										success: function(e) {}
+									});
+									uni.hideLoading()
+								},
+								fail: res => {
+									console.log(res, 'fail');
+								}
+							});
+						}
+					}
+				});
+			},
+			/// 插入分割线
+			insertDivider() {
+				this.editorCtx.insertDivider();
+			},
+			redo() {
+				this.editorCtx.redo();
+			},
+			showMore() {
+				this.showMoreTool = !this.showMoreTool;
+				this.editorCtx.setContents()
+			},
+			setBold() {
+				this.showBold = !this.showBold;
+				this.editorCtx.format('bold');
+			},
+			setItalic() {
+				this.showItalic = !this.showItalic;
+				this.editorCtx.format('italic');
+			},
+			checkStatus(name, detail, obj) {
+				if (detail.hasOwnProperty(name)) {
+					this[obj] = true;
+				} else {
+					this[obj] = false;
+				}
+			},
+			statuschange(e) {
+				var detail = e.detail;
+				this.checkStatus('bold', detail, 'showBold');
+				this.checkStatus('italic', detail, 'showItalic');
+				this.checkStatus('ins', detail, 'showIns');
+				this.checkStatus('header', detail, 'showHeader');
+				if (detail.hasOwnProperty('align')) {
+					if (detail.align == 'center') {
+						this.showCenter = true;
+						this.showRight = false;
+					} else if (detail.align == 'right') {
+						this.showCenter = false;
+						this.showRight = true;
+					} else {
+						this.showCenter = false;
+						this.showRight = false;
+					}
+				} else {
+					this.showCenter = false;
+					this.showRight = false;
+				}
+			},
+			setIns() {
+				this.showIns = !this.showIns;
+				this.editorCtx.format('ins');
+			},
+			setHeader() {
+				this.showHeader = !this.showHeader;
+				this.editorCtx.format('header', this.showHeader ? 'H2' : false);
+			},
+			setCenter() {
+				this.showCenter = !this.showCenter;
+				this.editorCtx.format('align', this.showCenter ? 'center' : false);
+			},
+			setRight() {
+				this.showRight = !this.showRight;
+				this.editorCtx.format('align', this.showRight ? 'right' : false);
+			},
+			showSetting() {
+				this.showSettingLayer = !this.showSettingLayer;
+			},
+			async editFocus(e) {},
+			editBlur(e) {},
+			release(isPublic) {
+				// this.showSettingLayer = false;
+				this.editorCtx.getContents({
+					success: res => {
+						Object.assign(res, {
+							isPublic: isPublic
+						})
+						this.$emit('editOk', res);
+					}
+				})
+			},
+		}
+	};
+</script>
+
+<style scoped>
+	.container {
+		box-sizing: border-box;
+		display: flex;
+		flex-direction: column;
+		height: 100%;
+		box-sizing: border-box;
+		/* padding-top: 30rpx; */
+	}
+
+	.ql-container {
+		line-height: 150%;
+		font-size: 34rpx;
+		width: 100%;
+		background: #fff;
+		width: calc(100% - 60rpx);
+		margin: 0 auto;
+		flex: 1;
+		box-sizing: border-box;
+		margin-top: 30rpx;
+		/* padding-bottom: 5rpx; */
+	}
+
+	.tool-view {
+		width: 100%;
+		background: #eee;
+		/* margin-top: 20px; */
+	}
+
+	.tool {
+		height: 100rpx;
+		display: flex;
+		align-items: center;
+		justify-content: space-around;
+		width: 100%;
+	}
+
+	.font-more {
+		display: flex;
+		align-items: center;
+		justify-content: space-around;
+		width: 100%;
+		background: rgb(235, 235, 235);
+		overflow: hidden;
+		transition: all 0.15s;
+	}
+
+	.setting-layer {
+		position: absolute;
+		bottom: 100rpx;
+		background: #fff;
+		width: 250rpx;
+		right: 20rpx;
+		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
+		border-radius: 8rpx;
+	}
+
+	.setting-layer .single {
+		height: 80rpx;
+		font-size: 32rpx;
+		padding: 0 30rpx;
+		display: flex;
+		align-items: center;
+		line-height: 80rpx;
+		flex-direction: row;
+		color: #666;
+	}
+
+	.setting-layer .single .icon {
+		margin-right: 20rpx;
+	}
+
+	.setting-layer-mask {
+		position: fixed;
+		left: 0;
+		top: 0;
+		width: 100vw;
+		height: 100vh;
+		background: transparent;
+	}
+</style>

+ 48 - 0
components/jin-edit/jin-icons.vue

@@ -0,0 +1,48 @@
+<template>
+	<view class="content">
+		<view class="icon" :style="{color: color, fontSize: fontSize}" v-html="type" @click="toclick"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			type: {
+				type: String,
+				default: '&#xe644;'
+			},
+			color: {
+				type: String,
+				default: '#666666'
+			},
+			fontSize: {
+				type: String,
+				default: '34rpx'
+			}
+		},
+		methods: {
+			toclick() {
+				this.$emit('click');
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.content{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+	@font-face {
+		font-family: 'jin';
+		/** 阿里巴巴矢量图标库的字体库地址,可以替换自己的字体库地址 **/
+		src: url('https://at.alicdn.com/t/font_1491431_6m7ltjo8wi.ttf') format('truetype');
+	}
+
+	.icon {
+		font-family: jin !important;
+		font-size: 34rpx;
+	}
+
+</style>

+ 65 - 0
components/jin-edit/readme.md

@@ -0,0 +1,65 @@
+## jin-edit 基于editor的富文本编辑器
+
+### 兼容性
+
+这是一个uni-app的通用组件,兼容微信小程序端、安卓端、ios端(未测试)、H5端。作者因没有ios设备无法对ios端进行测试,其他端测试无问题。
+
+微信小程序 | APP | H5
+:--: | :--: | :--:
+√ | √ | √
+
+我的HbuilderX版本2.6.7,不同的版本可能会造成不兼容的问题。
+
+### 使用方式
+
+1. 将此组件进入你的项目中的 /components/ 目录中
+2. 在某个页面中使用该插件
+- 在 `script` 中引用组件
+```javascript
+import jinEdit from '../../components/jin-edit/jin-edit.vue';
+export default {
+	data() {
+		return {
+			
+		}
+	},
+	components: {
+		jinEdit
+	},
+	methods: {
+		// 点击发布
+		editOk(res) {
+			console.log(res);
+		}
+	}
+}
+```
+- 在 `template` 中使用组件
+```html
+<jinEdit placeholder="请输入内容" @editOk="editOk" uploadFileUrl="/#"></jinEdit> 
+```
+
+### Demo
+
+[uni-jin(一个uni-app组件集合)](https://github.com/wangjinxin613/uni-jin)
+
+### 参数
+
+属性 | 类型 | 默认值 | 说明
+:--: | :--: | :--: | :--:
+showImgSize | Boolean | false | 点击图片时显示图片大小控件
+showImgToolbar | Boolean | false | 点击图片时显示工具栏控件
+showImgResize | Boolean | false | 点击图片时显示修改尺寸控件
+placeholder | String | '' | 编辑器占位符
+uploadFileUrl | String | '#' | 图片上传的服务器地址
+fileKeyName | String | 'file' | 图片上传时的name
+header | Object | - | 图片上传http请求的header
+html | String | - | 初始化的html 
+
+### 方法
+
+方法名 | 参数 | 说明
+:--: | :--: | :--:
+editOk | e={html,text,delta,isPublic} | 点击发布按钮触发	
+
+以上

+ 160 - 155
components/uni-countdown/uni-countdown.vue

@@ -11,171 +11,176 @@
 	</view>
 </template>
 <script>
-	export default {
-		name: 'UniCountdown',
-		props: {
-			showDay: {
-				type: Boolean,
-				default: true
-			},
-			showColon: {
-				type: Boolean,
-				default: true
-			},
-			backgroundColor: {
-				type: String,
-				default: '#FFFFFF'
-			},
-			borderColor: {
-				type: String,
-				default: '#000000'
-			},
-			color: {
-				type: String,
-				default: '#000000'
-			},
-			splitorColor: {
-				type: String,
-				default: '#000000'
-			},
-			day:0,
-			hour:0,
-			minute:0,
-			second:0
-		},
-		data() {
-			return {
-				timer: null,
-				syncFlag: false,
-				d: '00',
-				h: '00',
-				i: '00',
-				s: '00',
-				leftTime: 0,
-				seconds: 0
-			}
+export default {
+	name: 'UniCountdown',
+	props: {
+		showDay: {
+			type: Boolean,
+			default: true
+		},
+		showColon: {
+			type: Boolean,
+			default: true
+		},
+		backgroundColor: {
+			type: String,
+			default: '#FFFFFF'
+		},
+		borderColor: {
+			type: String,
+			default: '#000000'
+		},
+		color: {
+			type: String,
+			default: '#000000'
+		},
+		splitorColor: {
+			type: String,
+			default: '#000000'
+		},
+		day: {
+			type: Number,
+			default: 0
+		},
+		hour: {
+			type: Number,
+			default: 0
+		},
+		minute: {
+			type: Number,
+			default: 0
+		},
+		second: {
+			type: Number,
+			default: 0
+		}
+	},
+	data() {
+		return {
+			timer: null,
+			syncFlag: false,
+			d: '00',
+			h: '00',
+			i: '00',
+			s: '00',
+			leftTime: 0,
+			seconds: 0
+		};
+	},
+	watch: {
+		day(val) {
+			this.changeFlag();
+		},
+		hour(val) {
+			this.changeFlag();
+		},
+		minute(val) {
+			this.changeFlag();
+		},
+		second(val) {
+			this.changeFlag();
+		}
+	},
+	created: function(e) {
+		this.startData();
+	},
+	beforeDestroy() {
+		clearInterval(this.timer);
+	},
+	methods: {
+		toSeconds(day, hours, minutes, seconds) {
+			return day * 60 * 60 * 24 + hours * 60 * 60 + minutes * 60 + seconds;
+		},
+		timeUp() {
+			clearInterval(this.timer);
+			this.$emit('timeup');
 		},
-		watch: {
-			day(val) {
-				this.changeFlag()
-			},
-			hour(val) {
-				this.changeFlag()
-			},
-			minute(val) {
-				this.changeFlag()
-			},
-			second(val) {
-				this.changeFlag()
+		countDown() {
+			let seconds = this.seconds;
+			let [day, hour, minute, second] = [0, 0, 0, 0];
+			if (seconds > 0) {
+				day = Math.floor(seconds / (60 * 60 * 24));
+				hour = Math.floor(seconds / (60 * 60)) - day * 24;
+				minute = Math.floor(seconds / 60) - day * 24 * 60 - hour * 60;
+				second = Math.floor(seconds) - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60;
+			} else {
+				this.timeUp();
 			}
+			if (day < 10) {
+				day = '0' + day;
+			}
+			if (hour < 10) {
+				hour = '0' + hour;
+			}
+			if (minute < 10) {
+				minute = '0' + minute;
+			}
+			if (second < 10) {
+				second = '0' + second;
+			}
+			this.d = day;
+			this.h = hour;
+			this.i = minute;
+			this.s = second;
 		},
-		created: function(e) {
-			this.startData();
-		},
-		beforeDestroy() {
-			clearInterval(this.timer)
-		},
-		methods: {
-			toSeconds(day, hours, minutes, seconds) {
-				return day * 60 * 60 * 24 + hours * 60 * 60 + minutes * 60 + seconds
-			},
-			timeUp() {
-				clearInterval(this.timer)
-				this.$emit('timeup')
-			},
-			countDown() {
-				let seconds = this.seconds
-				let [day, hour, minute, second] = [0, 0, 0, 0]
-				if (seconds > 0) {
-					day = Math.floor(seconds / (60 * 60 * 24))
-					hour = Math.floor(seconds / (60 * 60)) - (day * 24)
-					minute = Math.floor(seconds / 60) - (day * 24 * 60) - (hour * 60)
-					second = Math.floor(seconds) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60)
-				} else {
-					this.timeUp()
-				}
-				hour = hour + (day*24)
-				if (day < 10) {
-					day = '0' + day
-				}
-				if (hour < 10) {
-					hour = '0' + hour
-				}
-				if (minute < 10) {
-					minute = '0' + minute
-				}
-				if (second < 10) {
-					second = '0' + second
-				}
-				this.d = day
-				this.h = hour
-				this.i = minute
-				this.s = second
-			},
-			startData() {
-				this.seconds = this.toSeconds(this.day, this.hour, this.minute, this.second)
-				if (this.seconds <= 0) {
-					return
-				}
-				this.countDown()
-				this.timer = setInterval(() => {
-					this.seconds--
-					if (this.seconds < 0) {
-						this.timeUp()
-						return
-					}
-					this.countDown()
-				}, 1000)
-			},
-			changeFlag() {
-				if (!this.syncFlag) {
-					this.seconds = this.toSeconds(this.day, this.hour, this.minute, this.second)
-					console.log(this.seconds)
-					this.startData();
-					this.syncFlag = true;
+		startData() {
+			this.seconds = this.toSeconds(this.day, this.hour, this.minute, this.second);
+			if (this.seconds <= 0) {
+				return;
+			}
+			this.countDown();
+			this.timer = setInterval(() => {
+				this.seconds--;
+				if (this.seconds < 0) {
+					this.timeUp();
+					return;
 				}
+				this.countDown();
+			}, 1000);
+		},
+		changeFlag() {
+			if (!this.syncFlag) {
+				this.seconds = this.toSeconds(this.day, this.hour, this.minute, this.second);
+				this.startData();
+				this.syncFlag = true;
 			}
 		}
 	}
+};
 </script>
 <style lang="scss" scoped>
-	@import '~@/uni.scss';
-	$countdown-height: 40rpx;
-	$countdown-width: 40rpx;
+@import '~@/uni.scss';
+$countdown-height: 48rpx;
+$countdown-width: 52rpx;
 
-	.uni-countdown {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: row;
-		justify-content: flex-start;
-		position: relative;
-		top: 5rpx;
-		left: 15rpx;
-	}
+.uni-countdown {
+	/* #ifndef APP-NVUE */
+	display: flex;
+	/* #endif */
+	flex-direction: row;
+	justify-content: flex-start;
+}
 
-	.uni-countdown__splitor {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		justify-content: center;
-		line-height: $countdown-height;
-		padding: 5rpx;
-		font-size: $uni-font-size-sm;
-	}
+.uni-countdown__splitor {
+	/* #ifndef APP-NVUE */
+	display: flex;
+	/* #endif */
+	justify-content: center;
+	line-height: $countdown-height;
+	font-size: $uni-font-size-sm;
+}
 
-	.uni-countdown__number {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		justify-content: center;
-		align-items: center;
-		width: $countdown-width;
-		height: $countdown-height;
-		line-height: $countdown-height;
-		// margin: 5rpx;
-		text-align: center;
-		font-size: $uni-font-size-sm;
-		border-radius: 8rpx;
-	}
+.uni-countdown__number {
+	/* #ifndef APP-NVUE */
+	display: flex;
+	/* #endif */
+	margin: 0 5rpx;
+	justify-content: center;
+	align-items: center;
+	width: $countdown-width;
+	height: $countdown-height;
+	line-height: $countdown-height;
+	text-align: center;
+	font-size: $uni-font-size-sm;
+}
 </style>

+ 96 - 90
components/wangding-pickerAddress/wangding-pickerAddress.vue

@@ -1,103 +1,109 @@
 <template>
-	<picker @change="bindPickerChange" @columnchange="columnchange" :range="array" range-key="name" :value="value" mode="multiSelector">
-		<slot></slot>
-	</picker>
+	<picker @change="bindPickerChange" @columnchange="columnchange" :range="array" range-key="name" :value="value" mode="multiSelector"><slot></slot></picker>
 </template>
 
 <script>
-	import AllAddress from './data.js'
-	let selectVal = ['','',''];
-	
-	export default {
-		data() {
-			return{
-				value: [0,0,0],
-				array: [],
-				index: 0
-			}
-		},
-		created() {
-			this.initSelect()
+import { city_area } from '@/api/set.js';
+// import AllAddress from './data.js';
+let selectVal = ['', '', ''];
+
+export default {
+	data() {
+		return {
+			value: [0, 0, 0],
+			array: [],
+			index: 0,
+			AllAddress: []
+		};
+	},
+	created() {
+		this.getcity();
+	},
+	methods: {
+		getcity() {
+			city_area().then(({ data }) => {
+				this.AllAddress = data;
+				this.initSelect();
+			});
 		},
-		methods:{
-			// 初始化地址选项
-			initSelect() {
-				this.updateSourceDate() // 更新源数据
+		// 初始化地址选项
+		initSelect() {
+			this.updateSourceDate() // 更新源数据
 				.updateAddressDate() // 更新结果数据
-				.$forceUpdate()  // 触发双向绑定
-			},
-			// 地址控件改变控件
-			columnchange(d) {
-				this.updateSelectIndex(d.detail.column, d.detail.value) // 更新选择索引
+				.$forceUpdate(); // 触发双向绑定
+		},
+		// 地址控件改变控件
+		columnchange(d) {
+			this.updateSelectIndex(d.detail.column, d.detail.value) // 更新选择索引
 				.updateSourceDate() // 更新源数据
 				.updateAddressDate() // 更新结果数据
-				.$forceUpdate()  // 触发双向绑定
-			},
-			
-			/**
-			 * 更新源数据
-			 * */
-			updateSourceDate() {
-				this.array = []
-				this.array[0] = AllAddress.map(obj => {
-					return {
-						name: obj.name
-					}
-				})
-				this.array[1] = AllAddress[this.value[0]].city.map(obj => {
-					return {
-						name: obj.name
-					}
-				})
-				this.array[2] = AllAddress[this.value[0]].city[this.value[1]].area.map(obj => { 
-					return {
-						name: obj
-					}
-				})
-				return this
-			},
-			
-			/**
-			 * 更新索引
-			 * */
-			updateSelectIndex(column, value){
-				let arr = JSON.parse(JSON.stringify(this.value)) 
-				arr[column] = value
-				if(column === 0 ) {
-					arr[1] = 0
-					arr[2] = 0
-				}
-				if(column === 1 ) {
-					arr[2] = 0
-				}
-				this.value = arr
-				return this
-			},
-			
-			/**
-			 * 更新结果数据 
-			 * */
-			updateAddressDate() {
-				selectVal[0] = this.array[0][this.value[0]].name
-				selectVal[1] = this.array[1][this.value[1]].name 
-				selectVal[2] = this.array[2][this.value[2]].name 
-				return this
-			},
-			
-			/**
-			 * 点击确定
-			 * */
-			bindPickerChange(e) {
-				this.$emit('change', {
-					index: this.value,
-					data: selectVal
-				})
-				return this
+				.$forceUpdate(); // 触发双向绑定
+		},
+
+		/**
+		 * 更新源数据
+		 * */
+		updateSourceDate() {
+			this.array = [];
+			this.array[0] = this.AllAddress.map(obj => {
+				return {
+					name: obj.name
+				};
+			});
+			this.array[1] = this.AllAddress[this.value[0]].city.map(obj => {
+				return {
+					name: obj.name
+				};
+			});
+			console.log(this.value[0], this.value[1], this.AllAddress[this.value[0]].city[this.value[1]], '123456');
+			let areas = this.AllAddress[this.value[0]].city[this.value[1]].area;
+			this.array[2] = Object.keys(areas).map(obj => {
+				return {
+					name: areas[obj]
+				};
+			});
+			return this;
+		},
+
+		/**
+		 * 更新索引
+		 * */
+		updateSelectIndex(column, value) {
+			let arr = JSON.parse(JSON.stringify(this.value));
+			arr[column] = value;
+			if (column === 0) {
+				arr[1] = 0;
+				arr[2] = 0;
+			}
+			if (column === 1) {
+				arr[2] = 0;
 			}
-			
+			this.value = arr;
+			return this;
+		},
+
+		/**
+		 * 更新结果数据
+		 * */
+		updateAddressDate() {
+			selectVal[0] = this.array[0][this.value[0]].name;
+			selectVal[1] = this.array[1][this.value[1]].name;
+			selectVal[2] = this.array[2][this.value[2]].name;
+			return this;
+		},
+
+		/**
+		 * 点击确定
+		 * */
+		bindPickerChange(e) {
+			this.$emit('change', {
+				index: this.value,
+				data: selectVal
+			});
+			return this;
 		}
 	}
+};
 </script>
 
-<style>
-</style>
+<style></style>

+ 112 - 109
manifest.json

@@ -1,111 +1,114 @@
 {
-    "name" : "亲家母优选",
-    "appid" : "__UNI__A45549C",
-    "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : "100",
-    "transformPx" : false,
-    "app-plus" : {
-        /* 5+App特有相关 */
-        "usingComponents" : true,
-        "splashscreen" : {
-            "alwaysShowBeforeRender" : true,
-            "waiting" : true,
-            "autoclose" : true,
-            "delay" : 0
-        },
-        "modules" : {},
-        /* 模块配置 */
-        "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.CALL_PHONE\"/>",
-                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
-                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>"
-                ],
-                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
-            },
-            "ios" : {
-                "idfa" : false
-            },
-            /* ios打包配置 */
-            "sdkConfigs" : {
-                "maps" : {},
-                "oauth" : {
-                    "weixin" : {
-                        "appid" : "",
-                        "appsecret" : "",
-                        "UniversalLinks" : ""
-                    }
-                }
-            }
-        }
-    },
-    /* SDK配置 */
-    "quickapp" : {},
-    /* 快应用特有相关 */
-    "mp-weixin" : {
-        /* 小程序特有相关 */
-        "usingComponents" : true,
-        "appid" : "wxe17f0c1d96620a35",
-        "setting" : {
-            "urlCheck" : true
-        },
-        "plugins" : {
-            "live-player-plugin" : {
-                "version" : "1.3.5",
-                "provider" : "wx2b03c6e691cd7370"
-            }
-        }
-    },
-    // "h5" : {
-    //     "title" : "商城",
-    //     "domain" : "",
-    //     "router" : {
-    //         "base" : "/index/",
-    //         "mode" : "hash"
-    //     },
-    //     "devServer" : {
-    //         "proxy" : {
-    //             "/api" : {
-    //                 "target" : "http://192.168.0.101/api",
-    //                 // "changeOrigin": true,
-    //                 "pathRewrite" : {
-    //                     "/api" : "" // rewrite path
-    //                 }
-    //             }
-    //         }
-    //     }
-    // }
-    "h5" : {
-        "title" : "玲姐优选",
-        "domain" : "",
-        "router" : {
-            "base" : "/index/",
-            "mode" : "hash"
-        },
-        "devServer" : {
-            "proxy" : {
-                "/api" : {
-                    "target" : "https://qjm.liuniu946.com", //请求的目标域名
-                    "changeOrigin" : true,
-                    // "secure": false,
-                    "pathRewrite" : {}
-                }
-            }
-        }
-    }
+	"name": "亲家母优选",
+	"appid": "__UNI__A45549C",
+	"description": "",
+	"versionName": "1.0.0",
+	"versionCode": "100",
+	"transformPx": false,
+	"app-plus": {
+		/* 5+App特有相关 */
+		"usingComponents": true,
+		"splashscreen": {
+			"alwaysShowBeforeRender": true,
+			"waiting": true,
+			"autoclose": true,
+			"delay": 0
+		},
+		"modules": {},
+		/* 模块配置 */
+		"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.CALL_PHONE\"/>",
+					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
+					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+					"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+					"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+					"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>"
+				],
+				"abiFilters": ["armeabi-v7a", "arm64-v8a", "x86"]
+			},
+			"ios": {
+				"idfa": false
+			},
+			/* ios打包配置 */
+			"sdkConfigs": {
+				"maps": {},
+				"oauth": {
+					"weixin": {
+						"appid": "",
+						"appsecret": "",
+						"UniversalLinks": ""
+					}
+				}
+			},
+			"splashscreen": {
+				"useOriginalMsgbox": false
+			}
+		}
+	},
+	/* SDK配置 */
+	"quickapp": {},
+	/* 快应用特有相关 */
+	"mp-weixin": {
+		/* 小程序特有相关 */
+		"usingComponents": true,
+		"appid": "wxe17f0c1d96620a35",
+		"setting": {
+			"urlCheck": true
+		},
+		"plugins": {
+			"live-player-plugin": {
+				"version": "1.3.5",
+				"provider": "wx2b03c6e691cd7370"
+			}
+		}
+	},
+	// "h5" : {
+	//     "title" : "商城",
+	//     "domain" : "",
+	//     "router" : {
+	//         "base" : "/index/",
+	//         "mode" : "hash"
+	//     },
+	//     "devServer" : {
+	//         "proxy" : {
+	//             "/api" : {
+	//                 "target" : "http://192.168.0.101/api",
+	//                 // "changeOrigin": true,
+	//                 "pathRewrite" : {
+	//                     "/api" : "" // rewrite path
+	//                 }
+	//             }
+	//         }
+	//     }
+	// }
+	"h5": {
+		"title": "玲姐优选",
+		"domain": "",
+		"router": {
+			"base": "/index/",
+			"mode": "hash"
+		},
+		"devServer": {
+			"proxy": {
+				"/api": {
+					// "target" : "https://qjm.liuniu946.com", //请求的目标域名
+					"target": "http://lingjie.frp.liuniu946.com", //请求的目标域名
+					"changeOrigin": true,
+					// "secure": false,
+					"pathRewrite": {}
+				}
+			}
+		}
+	}
 }
-// "^/api": "/"
-
+// "^/api": "/"

+ 55 - 0
node_modules/.package-lock.json

@@ -0,0 +1,55 @@
+{
+  "name": "qjm",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "node_modules/@babel/runtime-corejs2": {
+      "version": "7.21.0",
+      "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.21.0.tgz",
+      "integrity": "sha512-hVFDLYkuthnvQwWoOniPSq+RWyQTiimVdMXQJujoiSX8maFh/62+qRImGkRpeRflsVXXSMFS4HgNe3X9fuw5ww==",
+      "dependencies": {
+        "core-js": "^2.6.12",
+        "regenerator-runtime": "^0.13.11"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/core-js": {
+      "version": "2.6.12",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+      "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+      "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
+      "hasInstallScript": true
+    },
+    "node_modules/qiniu-js": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/qiniu-js/-/qiniu-js-3.4.1.tgz",
+      "integrity": "sha512-8vxrLqDPlJUk3fUAaTozh3TAT3ww9B5KqGogmGuTiFHnewXDoMxTCSY5z8Ab5UNdrCo6ZxDM07G/o++CICRUFw==",
+      "dependencies": {
+        "@babel/runtime-corejs2": "^7.10.2",
+        "querystring": "^0.2.1",
+        "spark-md5": "^3.0.0"
+      }
+    },
+    "node_modules/querystring": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
+      "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==",
+      "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
+      "engines": {
+        "node": ">=0.4.x"
+      }
+    },
+    "node_modules/regenerator-runtime": {
+      "version": "0.13.11",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+    },
+    "node_modules/spark-md5": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz",
+      "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
+    }
+  }
+}

+ 22 - 0
node_modules/@babel/runtime-corejs2/LICENSE

@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2014-present Sebastian McKenzie and other contributors
+
+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.

+ 19 - 0
node_modules/@babel/runtime-corejs2/README.md

@@ -0,0 +1,19 @@
+# @babel/runtime-corejs2
+
+> babel's modular runtime helpers with core-js@2 polyfilling
+
+See our website [@babel/runtime-corejs2](https://babeljs.io/docs/en/babel-runtime-corejs2) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/runtime-corejs2
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/runtime-corejs2
+```

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/array/from.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/array/from");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/array/is-array.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/array/is-array");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/array/of.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/array/of");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/clear-immediate.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/clear-immediate");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/date/now.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/date/now");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/get-iterator.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/get-iterator");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/is-iterable.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/is-iterable");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/json/stringify.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/json/stringify");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/map.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/map");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/acosh.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/acosh");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/asinh.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/asinh");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/atanh.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/atanh");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/cbrt.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/cbrt");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/clz32.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/clz32");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/cosh.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/cosh");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/expm1.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/expm1");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/fround.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/fround");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/hypot.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/hypot");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/imul.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/imul");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/log10.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/log10");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/log1p.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/log1p");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/log2.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/log2");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/sign.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/sign");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/sinh.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/sinh");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/tanh.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/tanh");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/math/trunc.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/math/trunc");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/epsilon.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/epsilon");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/is-finite.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/is-finite");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/is-integer.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/is-integer");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/is-nan.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/is-nan");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/is-safe-integer.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/is-safe-integer");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/max-safe-integer.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/max-safe-integer");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/min-safe-integer.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/min-safe-integer");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/parse-float.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/parse-float");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/number/parse-int.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/number/parse-int");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/assign.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/assign");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/create.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/create");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/define-properties");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/define-property.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/define-property");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/entries.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/entries");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/freeze.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/freeze");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/get-own-property-descriptor");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/get-own-property-descriptors");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-names.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/get-own-property-names");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/get-own-property-symbols");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/get-prototype-of");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/is-extensible.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/is-extensible");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/is-frozen.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/is-frozen");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/is-sealed.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/is-sealed");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/is.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/is");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/keys.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/keys");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/prevent-extensions.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/prevent-extensions");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/seal.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/seal");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/set-prototype-of");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/object/values.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/object/values");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/parse-float.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/parse-float");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/parse-int.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/parse-int");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/promise.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/promise");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/apply.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/apply");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/construct");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/define-property.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/define-property");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/delete-property.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/delete-property");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/get-own-property-descriptor.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/get-own-property-descriptor");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/get-prototype-of.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/get-prototype-of");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/get.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/get");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/has.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/has");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/is-extensible.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/is-extensible");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/own-keys.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/own-keys");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/prevent-extensions.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/prevent-extensions");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/set-prototype-of.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/set-prototype-of");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/reflect/set.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/reflect/set");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/set-immediate.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/set-immediate");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/set.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/set");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/string/at.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/string/at");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/string/from-code-point.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/string/from-code-point");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/string/raw.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/string/raw");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol/async-iterator.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol/async-iterator");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol/for.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol/for");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol/has-instance.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol/has-instance");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol/is-concat-spreadable.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol/is-concat-spreadable");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol/iterator");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol/key-for.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol/key-for");

+ 1 - 0
node_modules/@babel/runtime-corejs2/core-js/symbol/match.js

@@ -0,0 +1 @@
+module.exports = require("core-js/library/fn/symbol/match");

Some files were not shown because too many files changed in this diff