xhj 2 vuotta sitten
vanhempi
commit
1e497feb8c
100 muutettua tiedostoa jossa 1216 lisäystä ja 214 poistoa
  1. 140 0
      card/components/wangding-pickerAddress/wangding-pickerAddress.vue
  2. 178 0
      card/components/wangding-pickerAddress/wangding-pickerAddressSingle.vue
  3. 1 1
      card/create/create.vue
  4. 7 2
      components/msg-number/index.vue
  5. 4 1
      manifest.json
  6. 1 1
      match/activity/activity.vue
  7. 2 2
      match/activityDet/activityDet.vue
  8. 40 40
      match/activityDetail/activityDetail.vue
  9. 10 1
      match/activityEdit/activityEdit.vue
  10. 350 0
      match/components/jin-edit/jin-edit.vue
  11. 47 0
      match/components/jin-edit/jin-icons.vue
  12. 65 0
      match/components/jin-edit/readme.md
  13. 0 0
      match/components/share-activity/share.css
  14. 1 1
      match/components/share-activity/share.vue
  15. 1 1
      match/editorContent/editorContent.vue
  16. 1 1
      match/sign/sign.css
  17. 5 9
      match/sign/sign.vue
  18. 1 1
      match/signConfirm/signConfirm.css
  19. 10 14
      match/signConfirm/signConfirm.vue
  20. 1 0
      match/signPerson/signPerson.css
  21. 38 33
      match/signPerson/signPerson.vue
  22. BIN
      match/static/images/area.png
  23. BIN
      match/static/images/time.png
  24. 1 1
      match/success/success.vue
  25. 1 1
      office/detail/detail.css
  26. 2 2
      office/detail/detail.vue
  27. 1 1
      office/news/news.vue
  28. 56 7
      office/poi/index.css
  29. 64 28
      office/poi/index.vue
  30. 52 3
      office/search/index.css
  31. 83 33
      office/search/index.vue
  32. 1 1
      pages/found/found.vue
  33. 15 6
      pages/index/index.css
  34. 29 8
      pages/index/index.vue
  35. 3 3
      pages/interactive/index.css
  36. 1 1
      pages/interactive/index.vue
  37. 4 11
      pages/user/user.vue
  38. BIN
      static/pages/images/blue/cart_h.png
  39. BIN
      static/pages/images/blue/home_h.png
  40. BIN
      static/pages/images/blue/live_h.png
  41. BIN
      static/pages/images/blue/sort_h.png
  42. BIN
      static/pages/images/blue/user_h.png
  43. BIN
      static/pages/images/blue/wdbg.png
  44. BIN
      static/pages/images/blue/yunyao_h.png
  45. BIN
      static/pages/images/gold/cart_h.png
  46. BIN
      static/pages/images/gold/home_h.png
  47. BIN
      static/pages/images/gold/live_h.png
  48. BIN
      static/pages/images/gold/sort_h.png
  49. BIN
      static/pages/images/gold/user_h.png
  50. BIN
      static/pages/images/gold/wdbg.png
  51. BIN
      static/pages/images/gold/yunyao_h.png
  52. BIN
      static/pages/images/green/cart_h.png
  53. BIN
      static/pages/images/green/home_h.png
  54. BIN
      static/pages/images/green/live_h.png
  55. BIN
      static/pages/images/green/sort_h.png
  56. BIN
      static/pages/images/green/user_h.png
  57. BIN
      static/pages/images/green/wdbg.png
  58. BIN
      static/pages/images/green/wdbg1.png
  59. BIN
      static/pages/images/green/yunyao_h.png
  60. BIN
      static/pages/images/hBlue/cart_h.png
  61. BIN
      static/pages/images/hBlue/home_h.png
  62. BIN
      static/pages/images/hBlue/live_h.png
  63. BIN
      static/pages/images/hBlue/sort_h.png
  64. BIN
      static/pages/images/hBlue/user_h.png
  65. BIN
      static/pages/images/hBlue/wdbg.png
  66. BIN
      static/pages/images/hBlue/yunyao_h.png
  67. BIN
      static/pages/images/jishida.png
  68. BIN
      static/pages/images/lblue/cart_h.png
  69. BIN
      static/pages/images/lblue/home_h.png
  70. BIN
      static/pages/images/lblue/live_h.png
  71. BIN
      static/pages/images/lblue/sort_h.png
  72. BIN
      static/pages/images/lblue/user_h.png
  73. BIN
      static/pages/images/lblue/wdbg.png
  74. BIN
      static/pages/images/lblue/yunyao_h.png
  75. BIN
      static/pages/images/lightseagreen/cart_h.png
  76. BIN
      static/pages/images/lightseagreen/home_h.png
  77. BIN
      static/pages/images/lightseagreen/live_h.png
  78. BIN
      static/pages/images/lightseagreen/sort_h.png
  79. BIN
      static/pages/images/lightseagreen/user_h.png
  80. BIN
      static/pages/images/lightseagreen/wdbg.png
  81. BIN
      static/pages/images/lightseagreen/yunyao_h.png
  82. BIN
      static/pages/images/mengdianxuanze.png
  83. BIN
      static/pages/images/newbornZone.png
  84. BIN
      static/pages/images/orange/cart_h.png
  85. BIN
      static/pages/images/orange/home_h.png
  86. BIN
      static/pages/images/orange/live_h.png
  87. BIN
      static/pages/images/orange/sort_h.png
  88. BIN
      static/pages/images/orange/user_h.png
  89. BIN
      static/pages/images/orange/wdbg.png
  90. BIN
      static/pages/images/orange/yunyao_h.png
  91. BIN
      static/pages/images/otc.png
  92. BIN
      static/pages/images/pink/cart_h.png
  93. BIN
      static/pages/images/pink/home_h.png
  94. BIN
      static/pages/images/pink/live_h.png
  95. BIN
      static/pages/images/pink/sort_h.png
  96. BIN
      static/pages/images/pink/user_h.png
  97. BIN
      static/pages/images/pink/wdbg.png
  98. BIN
      static/pages/images/pink/yunyao_h.png
  99. BIN
      static/pages/images/seckill.png
  100. BIN
      static/pages/images/tuan.png

+ 140 - 0
card/components/wangding-pickerAddress/wangding-pickerAddress.vue

@@ -0,0 +1,140 @@
+<template>
+	<view>
+		<picker @change="bindPickerChange" @columnchange="columnchange" :range="array" range-key="name" :value="value" mode="multiSelector"><slot></slot></picker>
+	</view>
+</template>
+
+<script>
+const req = require('../../../utils/request.js');
+// import AllAddress from './data.js';
+let selectVal = ['', '', ''];
+
+export default {
+	data() {
+		return {
+			value: [0, 0, 0],
+			ids: [],
+			array: [],
+			index: 0,
+			allAddressData: []
+		};
+	},
+	created() {
+		this.getReqAreaList();
+	},
+	methods: {
+		getReqAreaList() {
+			let areaList = req.getStorage('areaList');
+			if (areaList && areaList.length > 0) {
+				this.allAddressData = areaList;
+				this.initSelect();
+			} else {
+				req.getRequest(
+					'/area/list',
+					{},
+					data => {
+						req.setStorage('areaList', data);
+						this.allAddressData = data;
+						this.initSelect();
+					},
+					true
+				);
+			}
+		},
+		// 初始化地址选项
+		initSelect() {
+			this.updateSourceDate() // 更新源数据
+				.updateAddressDate() // 更新结果数据
+				.updateIdsDate()
+				.$forceUpdate(); // 触发双向绑定
+		},
+		// 地址控件改变控件
+		columnchange(d) {
+			this.updateSelectIndex(d.detail.column, d.detail.value) // 更新选择索引
+				.updateSourceDate() // 更新源数据
+				.updateAddressDate()
+				.updateIdsDate() // 更新结果数据
+				.$forceUpdate(); // 触发双向绑定
+		},
+
+		/**
+		 * 更新源数据
+		 * */
+		updateSourceDate() {
+			this.array = [];
+			this.array[0] = this.allAddressData.map(obj => {
+				return {
+					name: obj.label,
+					id: obj.value
+				};
+			});
+			this.array[1] = this.allAddressData[this.value[0]].nodes.map(obj => {
+				return {
+					name: obj.label,
+					id: obj.value
+				};
+			});
+			this.array[2] = this.allAddressData[this.value[0]].nodes[this.value[1]].nodes.map(obj => {
+				return {
+					name: obj.label,
+					id: obj.value
+				};
+			});
+			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 = [];
+			selectVal[0] = this.array[0][this.value[0]].name + ' ';
+			selectVal[1] = this.array[1][this.value[1]].name + ' ';
+			if (this.array[2].length > 0) {
+				selectVal[2] = this.array[2][this.value[2]].name + ' ';
+			}
+			return this;
+		},
+		updateIdsDate() {
+			this.ids = [];
+			this.ids[0] = this.array[0][this.value[0]].id;
+			this.ids[1] = this.array[1][this.value[1]].id;
+			if (this.array[2].length > 0) {
+				this.ids[2] = this.array[2][this.value[2]].id;
+			}
+			return this;
+		},
+
+		/**
+		 * 点击确定
+		 * */
+		bindPickerChange(e) {
+			this.$emit('change', {
+				index: this.value,
+				data: selectVal,
+				ids: this.ids
+			});
+			return this;
+		}
+	}
+};
+</script>
+
+<style></style>

+ 178 - 0
card/components/wangding-pickerAddress/wangding-pickerAddressSingle.vue

@@ -0,0 +1,178 @@
+<template>
+	<view>
+		<picker @change="bindPickerChange" @columnchange="columnchange" :range="array" range-key="name" :value="value" mode="multiSelector"><slot></slot></picker>
+	</view>
+</template>
+
+<script>
+const req = require('../../utils/request.js');
+// import AllAddress from './data.js';
+let selectVal = ['', '', ''];
+
+export default {
+	data() {
+		return {
+			value: [0, 0, 0],
+			ids: [],
+			array: [],
+			index: 0,
+			allAddressData: []
+		};
+	},
+	created() {
+		this.getReqAreaList();
+	},
+	methods: {
+		getReqAreaList() {
+			let areaList = req.getStorage('areaList');
+			if (areaList && areaList.length > 0) {
+				this.allAddressData = areaList;
+				let obj = {
+					label: '请选择',
+					value: '0',
+					nodes: []
+				}
+				this.allAddressData.map(item=>{
+					item.nodes.unshift(obj);
+					if(item.nodes && item.nodes.length > 0){
+						item.nodes.map(it=>{
+							if(it.nodes && it.nodes.length > 0){
+								it.nodes.unshift(obj);
+							}
+						})
+					}
+					return item;
+				})
+				this.allAddressData.unshift(obj);
+				this.initSelect();
+			} else {
+				req.getRequest(
+					'/area/list',
+					{},
+					data => {
+						req.setStorage('areaList', data);
+						this.allAddressData = data;
+						let obj = {
+							label: '请选择',
+							value: '0',
+							nodes: []
+						}
+						this.allAddressData.map(item=>{
+							item.nodes.unshift(obj);
+							if(item.nodes && item.nodes.length > 0){
+								item.nodes.map(it=>{
+									if(it.nodes && it.nodes.length > 0){
+										it.nodes.unshift(obj);
+									}
+								})
+							}
+							return item;
+						})
+						this.allAddressData.unshift(obj);
+						this.initSelect();
+					},
+					true
+				);
+			}
+		},
+		// 初始化地址选项
+		initSelect() {
+			this.updateSourceDate() // 更新源数据
+				.updateAddressDate() // 更新结果数据
+				.updateIdsDate()
+				.$forceUpdate(); // 触发双向绑定
+		},
+		// 地址控件改变控件
+		columnchange(d) {
+			this.updateSelectIndex(d.detail.column, d.detail.value) // 更新选择索引
+				.updateSourceDate() // 更新源数据
+				.updateAddressDate()
+				.updateIdsDate() // 更新结果数据
+				.$forceUpdate(); // 触发双向绑定
+		},
+
+		/**
+		 * 更新源数据
+		 * */
+		updateSourceDate() {
+			this.array = [];
+			let obj = {
+				name: '请选择',
+				id: '0',
+			}
+			this.array[0] = this.allAddressData.map(obj => {
+				return {
+					name: obj.label,
+					id: obj.value
+				};
+			});
+			this.array[1] = this.allAddressData[this.value[0]].nodes.map(obj => {
+				return {
+					name: obj.label,
+					id: obj.value
+				};
+			});
+			this.array[2] = this.allAddressData[this.value[0]].nodes[this.value[1]].nodes.map(obj => {
+				return {
+					name: obj.label,
+					id: obj.value
+				};
+			});
+			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 = [];
+			selectVal[0] = this.array[0][this.value[0]].name;
+			selectVal[1] = this.array[1][this.value[1]].name;
+			if (this.array[2].length > 0) {
+				selectVal[2] = this.array[2][this.value[2]].name;
+			}
+			return this;
+		},
+		updateIdsDate() {
+			this.ids = [];
+			this.ids[0] = this.array[0][this.value[0]].id;
+			this.ids[1] = this.array[1][this.value[1]].id;
+			if (this.array[2].length > 0) {
+				this.ids[2] = this.array[2][this.value[2]].id;
+			}
+			return this;
+		},
+
+		/**
+		 * 点击确定
+		 * */
+		bindPickerChange(e) {
+			this.$emit('change', {
+				index: this.value,
+				data: selectVal,
+				ids: this.ids
+			});
+			return this;
+		}
+	}
+};
+</script>
+
+<style></style>

+ 1 - 1
card/create/create.vue

@@ -139,7 +139,7 @@ const req = require('../../utils/request.js');
 const api = require('../../utils/api.js');
 const util = require('../../utils/util.js');
 var app = getApp();
-import pickerAddress from '../../components/wangding-pickerAddress/wangding-pickerAddress.vue';
+import pickerAddress from '../components/wangding-pickerAddress/wangding-pickerAddress.vue';
 export default {
 	components: { pickerAddress },
 	data() {

+ 7 - 2
components/msg-number/index.vue

@@ -1,6 +1,6 @@
 <template>
 	<view>
-		<view class="lt-msg ddflex" @click="jumpConversation()">
+		<view class="lt-msg ddflex" @click="jumpConversation()" :style="'bottom:'+bottom+';'">
 			<view class="ddflex" style="position: relative;width: 100%;height: 100%;">
 				<image src="../../static/pages/images/lt.png"></image>
 				<view class="lt-msg-num" v-if="unReadSpotNum>0">{{unReadSpotNum}}</view>
@@ -23,7 +23,12 @@
 		},
 
 		components: {},
-		props: {},
+		props: {
+			bottom: {
+			  type: String,
+			  default: '200rpx',
+			}
+		},
 		watch: {},
 
 		mounted() {

+ 4 - 1
manifest.json

@@ -1,5 +1,5 @@
 {
-    "name" : "享团",
+    "name" : "线上会客厅",
     "appid" : "__UNI__B056B94",
     "description" : "",
     "versionName" : "1.0.2",
@@ -118,6 +118,9 @@
             "minified" : true,
             "postcss" : true
         },
+        "optimization" : {
+            "subPackages" : true
+        },
         "usingComponents" : true,
         "permission" : {
             "scope.userLocation" : {

+ 1 - 1
match/activity/activity.vue

@@ -2,7 +2,7 @@
 	<view v-if="isShow">
 		<view class="tab ddflex">
 			<view :class="'li' + (current == 2 ? ' active':'')" @click="tabClick(2)">待参与</view>
-			<view :class="'li' + (current == 3 ? ' active':'')" @click="tabClick(3)">已参</view>
+			<view :class="'li' + (current == 3 ? ' active':'')" @click="tabClick(3)">已参</view>
 		</view>
 		<view class="list" v-if="pageList && pageList.length >0">
 			<view class="li" v-for="(item,index) in pageList" :key="index" @click="jumpUrl('/match/activityDet/activityDet?id=' + item.id + '&orderId=' + item.orderId)">

+ 2 - 2
match/activityDet/activityDet.vue

@@ -10,7 +10,7 @@
 							<!-- <image src="../static/mine/images/dzico.png"></image> -->
 							<view class="tover fflex">{{detail.address}}</view>
 						</view>
-						<view class="money"><text>¥</text>{{detail.money}}</view>
+						<!-- <view class="money"><text>¥</text>{{detail.money}}</view> -->
 					</view>
 				</view>
 			</view>
@@ -33,7 +33,7 @@
 			<view class="li ddflex">
 				<label>当前状态</label>
 				<view class="flex" v-if="detail.enlistState == 0">未付款</view>
-				<view class="flex" v-else>{{detail.state == 2 ? '报名成功' : '报名失败'}}</view>
+				<view class="flex" v-else>{{detail.enlistState == 2 ? '报名成功' : '报名失败'}}</view>
 			</view>
 			<view class="li ddflex">
 				<label>活动时间</label>

+ 40 - 40
match/activityDetail/activityDetail.vue

@@ -3,7 +3,7 @@
 		<view class="top">
 			<image :src="detail.pic" mode="aspectFill" class="act-img"></image>
 			<view class="title">{{detail.title}}</view>
-			<view class="datas">浏览 {{detail.browse}}  收藏  69</view>
+			<view class="datas">浏览 {{detail.popularity}}  收藏  {{detail.collect}}</view>
 			
 			<view class="baoming-box">
 				<view class="ddflex">
@@ -34,15 +34,15 @@
 		</view>
 		
 		<view class="date">
-			<view class="datass ddflex" style="justify-content: space-between;" v-if="true" @click="jumpUrl('/businessAssociation/associationIndex/associationIndex?id='+detail.associationId)">
+			<view class="datass ddflex" style="justify-content: space-between;" v-if="detail.card" @click="jumpUrl('/card/index/index?id='+detail.card.id)">
 				<view class="ddflex">
-					<image src="/static/images/lj_img.png" style="width:66rpx ;height: 66rpx;border-radius: 100%;" mode="aspectFill" class="dimg"></image>
+					<image :src="detail.card.avatar?detail.card.avatar:'../../static/pages/images/userimg.png'" style="width:66rpx ;height: 66rpx;border-radius: 100%;" mode="aspectFill" class="dimg"></image>
 					<view>
-						<view style="font-size: 28rpx;font-weight: bold;color: #333333;line-height: 40rpx;">杜平</view>
+						<view style="font-size: 28rpx;font-weight: bold;color: #333333;line-height: 40rpx;">{{detail.card.realName}}</view>
 						<view style="margin-top: 3rpx;" class="ddflex">
-							<view class="user-tag">中国人寿湖南</view>
-							<view class="user-tag">高级组经理</view>
-							<view class="user-tag">入司10年</view>
+							<view class="user-tag">{{detail.card.companyName}}</view>
+							<view class="user-tag">{{detail.card.jobName}}</view>
+							<view class="user-tag">入司{{detail.card.inDate?getAge(detail.card.inDate):1}}年</view>
 						</view>
 					</view>
 				</view>
@@ -62,7 +62,7 @@
 					<navigator class="botbtn" open-type="switchTab" url="/pages/index/index" hover-class="none">
 						<image src="/static/pages/images/sy.png"></image>主页
 					</navigator>
-					<view class="botbtn" @tap="clickCollect">
+					<view class="botbtn" @tap="userBehavior(2)">
 						<image src="/static/pages/images/shoucang_h.png" v-if="detail.isCollect"></image>
 						<image src="/static/pages/images/shoucang.png" v-else></image>收藏
 					</view>
@@ -109,7 +109,7 @@ const api = require('../../utils/api.js');
 const util = require('../../utils/util.js');
 const app = getApp();
 import mpHtml from "../../components/mp-html/components/mp-html/mp-html";
-import vShare from "../../components/share-activity/share";
+import vShare from "../components/share-activity/share.vue";
 export default {
 	components: {
 		mpHtml,
@@ -146,9 +146,9 @@ export default {
 		await this.getConfig();
 		await this.getData(true);
 		if(this.isLogin){
-			await this.getuserVip();
+			// await this.getuserVip();
 		}
-		this.getBrowse();
+		this.userBehavior(4);
 		await this.getPrice();
 	},
 	onReachBottom: function() {
@@ -298,39 +298,36 @@ export default {
 		    detail: freshen
 		  });
 		},
-		clickCollect(){
-			req.isLogin().then(success => {
-				if(success){
-					req.postRequest('/api/collect',{
-						bindId: this.detail.id,
-						type: 2
-					},res=>{
-						this.detail.isCollect = !this.detail.isCollect;
-					})
+		// clickCollect(){
+		// 	req.isLogin().then(success => {
+		// 		if(success){
+		// 			req.postRequest('/api/collect',{
+		// 				bindId: this.detail.id,
+		// 				type: 2
+		// 			},res=>{
+		// 				this.detail.isCollect = !this.detail.isCollect;
+		// 			})
+		// 		}
+		// 	})
+		// },
+		// 用户行为
+		userBehavior(type) {
+			var dataP = {};
+			dataP.type =2 //、产品 2、活动 3、未知 4、内容 5、课程 6、老师 7、素材 8、题目 9、资料领取 10、招聘职位 12、用户须知 13、素材 15、医院科室 16、海报 20、医生 21 新闻 23名片
+			dataP.behavior = type; //1、关注 2、收藏 3、点赞 4、浏览 5、确认 6、分享
+			dataP.bindId = this.detail.id;
+			req.postRequestLoding('/api/v3/behavior/save', dataP, data => {
+				if (type == 2) {
+					this.detail.isCollect = !this.detail.isCollect;
 				}
-			})
+				if (type == 3) {
+					this.cardInfo.follow = !this.cardInfo.follow
+				}
+			});
 		},
 		showPop(){
 			let that = this;
-				console.log('that.priceList.length-',that.priceList.length)
-			if(that.priceList && that.priceList.length == 1){
-				that.priceList.map(it=>{
-					if(!it.title){
-						let price = 0;
-						if(that.userinfovip.levelGrade>0&& !that.userinfovip.end){
-							price = it.vipMoney;
-						}else{
-							price = it.money;
-						}
-						req.setStorage('actPrice',price)
-						that.jumpUrl('/match/sign/sign?id=' + that.detail.id + '&priceId=' + it.id);
-					}else{
-						that.popShow = true;
-					}
-				})
-			}else{
-				this.popShow = true;
-			}
+			that.jumpUrl('/match/sign/sign?id=' + that.detail.id);
 		},
 		hidePop(){
 			this.popShow = false;
@@ -416,6 +413,9 @@ export default {
 				});
 			});
 		},
+		getAge(date){
+			return util.getAge(date)
+		},
 	}
 };
 </script>

+ 10 - 1
match/activityEdit/activityEdit.vue

@@ -352,7 +352,16 @@
 					areaAdd:this.region.join(','),
 					address:this.address
 				}
-				
+				let prices = [{
+					    title: "VIP",
+					    marketMoney: 0,
+					    money: 0,
+					    vipMoney: 0,
+					    vipModels: [],
+					    personCount: 1,
+					    isDefault: 0
+					}]
+				dataP.prices = prices
 				let url = '/api/match/save'
 				if(this.id) {
 					dataP.id = this.id

+ 350 - 0
match/components/jin-edit/jin-edit.vue

@@ -0,0 +1,350 @@
+<template>
+	<view class="container" :style="{
+		paddingBottom: showMoreTool ? '220rpx' : '120rpx'
+	}"> 
+		<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" 
+			@input="editBlur"
+			ref="editot"
+		></editor>   
+		<!-- 操作工具 -->
+		<view class="tool-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="confirmContent"></jinIcon><!-- @click="showSetting" -->
+			</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>
+	</view>
+</template>
+
+<script>
+const req = require('../../../utils/request.js');
+import jinIcon from './jin-icons.vue';
+export default {
+	data() {
+		return {
+			showMoreTool: false,
+			showBold: false,
+			showItalic: false,
+			showIns: false,
+			showHeader: false,
+			showCenter: false,
+			showRight: false,
+			showSettingLayer: false,
+			activeColor: '#F56C6C',
+		};
+	},
+	components: {
+		jinIcon
+	},
+	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,
+		}
+		
+	},
+	watch: {
+	},
+	computed:{
+		
+	},
+	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() {
+			let that = this;
+			uni.chooseImage({
+				count: 8,
+				sizeType: ['original', 'compressed'],
+				sourceType: ['album', 'camera'],
+				success: function({
+					tempFilePaths
+				}) {
+					var promise = Promise.all(tempFilePaths.map(tempFilePath => {
+						return new Promise(function(resolve, reject) {
+							uni.showLoading({
+								title: "正在上传中"
+							})
+							req.uploadFile('/api/nocheck/upload', tempFilePath, res => {
+								that.editorCtx.insertImage({
+									src: res.src,  // 此处需要将图片地址切换成服务器返回的真实图片地址
+									alt: '图片',
+									success: function(e) {}
+								});
+								uni.hideLoading()
+							});
+						});
+					}));
+					promise.then(function(results) {
+						console.log(results);
+					}).catch(function(err) {
+						console.log(err);
+					});
+				}
+			});
+		},
+		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() {
+			
+		},
+		editBlur(res) {
+			this.$emit('editBlur', res);
+		},
+		release(isPublic) {
+			this.showSettingLayer = false;
+			this.editorCtx.getContents({
+				success: res => {
+					Object.assign(res, {
+						isPublic: isPublic
+					})
+					this.$emit('editOk', res);
+				} 
+			})
+		},
+		confirmContent(){
+			this.editorCtx.getContents({
+				success: res => {
+					this.$emit('editOk', res);
+				} 
+			})
+		}
+	}
+};
+</script>
+
+<style scoped>
+.ql-editor.ql-blank:before {
+	/* 此处设置 placeholder 样式 */
+	color: rgba(204, 204, 204, 1);
+	font-style: normal;
+}
+
+.container {
+	padding: 30rpx 0;
+	box-sizing: border-box;
+	padding-bottom: 120rpx;
+}
+
+.ql-container {
+	line-height: 160%;
+	font-size: 34rpx;
+	width: calc(100% - 60rpx); 
+	height: auto;
+	margin: 0 auto;
+	font-style: normal !important;
+} 
+#editor{
+	font-style: normal !important;
+}
+.tool-view{
+	width: 100vw;
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	
+}
+.tool {
+	height: 100rpx;
+	display: flex;
+	align-items: center;
+	justify-content: space-around;
+	width: 100%;
+	background: #eee;
+}
+
+.font-more {
+	position: absolute;
+	left: 0;
+	bottom: 100rpx;
+	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>

+ 47 - 0
match/components/jin-edit/jin-icons.vue

@@ -0,0 +1,47 @@
+<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'); */
+	src:url('https://at.alicdn.com/t/font_1491431_6m7ltjo8wi.ttf') format('truetype');
+	/* src: url('./font_1491431_6m7ltjo8wi.ttf') format('truetype'); */
+}
+
+.icon {
+	font-family: jin !important;
+	font-size: 34rpx;
+}
+</style>

+ 65 - 0
match/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} | 点击发布按钮触发	
+
+以上

+ 0 - 0
components/share-activity/share.css → match/components/share-activity/share.css


+ 1 - 1
components/share-activity/share.vue → match/components/share-activity/share.vue

@@ -45,7 +45,7 @@
 </template>
 
 <script>
-	const req = require("../../utils/request.js");
+	const req = require("../../../utils/request.js");
 
 	export default {
 		data() {

+ 1 - 1
match/editorContent/editorContent.vue

@@ -4,7 +4,7 @@
 
 <script>
 const req = require('../../utils/request.js');
-import jinEdit from '../../components/jin-edit/jin-edit.vue';
+import jinEdit from '../components/jin-edit/jin-edit.vue';
 export default {
 	components: {
 		jinEdit

+ 1 - 1
match/sign/sign.css

@@ -3,7 +3,7 @@ page{padding-bottom: 110rpx;}
 .top{background: #fff;padding: 40rpx 32rpx 32rpx;}
 .top>.ddflex{align-items: flex-start;}
 .act-img{width: 270rpx;height: 174rpx;border-radius: 6rpx;margin-right: 23rpx;}
-.title{font-size: 28rpx;color: #000;line-height: 39rpx;height: 78rpx;}
+.title{font-size: 28rpx;color: #000;line-height: 39rpx;height: 78rpx;font-weight: bold;}
 .time{font-size: 26rpx;color: #666;}
 .time image{width: 22rpx;height: 25rpx;margin-right: 6rpx;margin-top: 7rpx;}
 .sta{margin-top: 16rpx;}

+ 5 - 9
match/sign/sign.vue

@@ -5,18 +5,14 @@
 				<image :src="detail.pic" mode="aspectFill" class="act-img"></image>
 				<view class="fflex">
 					<view class="title tovers">{{detail.title}}</view>
-					<view class="sta ddflex">
-						<view class="area fflex ddflex" v-if="detail.address">
-							<image src="../static/images/dzico1.png"></image>
-							<view class="tovers fflex">{{detail.address}}</view>
-						</view>
+					<view class="sta">
 						<view  class="time ddflex">
-							<image style="width: 21rpx;height: 21rpx;margin-right: 10rpx;" src="../static/images/pic.png"></image>
+							<image style="width: 21rpx;height: 21rpx;margin-right: 10rpx;" src="../static/images/time.png"></image>
 							<text class="flex">{{ detail.enlistStartTime?formatTime(detail.enlistStartTime):'' }}-{{ detail.enlistEndTime?formatTime(detail.enlistEndTime):'' }}</text>
 						</view>
-						<view  class="time ddflex" style="margin-top: 12rpx;">
-							<image style="width: 19rpx;height: 24rpx;margin-right: 10rpx;" src="../static/images/pic.png"></image>
-							<text class="flex">{{ detail.address?detail.address:'宁德市教育局' }}</text>
+						<view  class="time ddflex" style="margin-top: 12rpx;" v-if="detail.address">
+							<image style="width: 19rpx;height: 24rpx;margin-right: 10rpx;" src="../static/images/area.png"></image>
+							<text class="flex">{{ detail.address?detail.address:'' }}</text>
 						</view>
 					</view>
 				</view>

+ 1 - 1
match/signConfirm/signConfirm.css

@@ -3,7 +3,7 @@ page{padding-bottom: 110rpx;}
 .top{background: #fff;padding: 40rpx 32rpx 32rpx;}
 .top>.ddflex{align-items: flex-start;}
 .act-img{width: 270rpx;height: 174rpx;border-radius: 6rpx;margin-right: 23rpx;}
-.title{font-size: 28rpx;color: #000;line-height: 39rpx;height: 78rpx;}
+.title{font-size: 28rpx;color: #000;line-height: 39rpx;height: 78rpx;font-weight: bold;}
 .time{font-size: 26rpx;color: #666;}
 .time image{width: 22rpx;height: 25rpx;margin-right: 6rpx;margin-top: 7rpx;}
 .sta{margin-top: 16rpx;}

+ 10 - 14
match/signConfirm/signConfirm.vue

@@ -5,19 +5,15 @@
 				<image :src="detail.pic" mode="aspectFill" class="act-img"></image>
 				<view class="fflex">
 					<view class="title tovers">{{detail.title}}</view>
-					<view class="sta ddflex">
-						<view class="area fflex ddflex" v-if="detail.address">
-							<image src="../static/images/dzico1.png"></image>
-							<view class="tover fflex">{{detail.address}}</view>
+					<view class="sta">
+						<view  class="time ddflex">
+							<image style="width: 21rpx;height: 21rpx;margin-right: 10rpx;" src="../static/images/time.png"></image>
+							<text class="flex">{{ detail.enlistStartTime?formatTime(detail.enlistStartTime):'' }}-{{ detail.enlistEndTime?formatTime(detail.enlistEndTime):'' }}</text>
+						</view>
+						<view  class="time ddflex" style="margin-top: 12rpx;" v-if="detail.address">
+							<image style="width: 19rpx;height: 24rpx;margin-right: 10rpx;" src="../static/images/area.png"></image>
+							<text class="flex">{{ detail.address?detail.address:'' }}</text>
 						</view>
-					</view>
-					<view  class="time ddflex">
-						<image style="width: 21rpx;height: 21rpx;margin-right: 10rpx;" src="../static/images/pic.png"></image>
-						<text class="flex">{{ detail.enlistStartTime?formatTime(detail.enlistStartTime):'' }}-{{ detail.enlistEndTime?formatTime(detail.enlistEndTime):'' }}</text>
-					</view>
-					<view  class="time ddflex" style="margin-top: 12rpx;">
-						<image style="width: 19rpx;height: 24rpx;margin-right: 10rpx;" src="../static/images/pic.png"></image>
-						<text class="flex">{{ detail.address?detail.address:'宁德市教育局' }}</text>
 					</view>
 				</view>
 			</view>
@@ -26,13 +22,13 @@
 			<view class="li" v-for="(item,index) in personList" :key="index">
 				<view class="ddflex">
 					<view class="fflex">{{item.name}}</view>
-					<view class="ddflex" style="color: #A1A1A1;font-size: 24rpx;">
+					<view class="ddflex" style="color: #A1A1A1;font-size: 24rpx;" v-if="item.extend&&item.extend.length>0">
 						展开
 						<image style="width: 9rpx;height: 19rpx;margin-left: 10rpx;" src="/static/pages/images/more.png"></image>
 					</view>
 				</view>
 				<view style="line-height: 42rpx;color: #A1A1A1;">{{item.phone}}</view>
-				<view v-if="item.extend">
+				<view v-if="item.extend&&item.extend.length>0">
 					<view v-for="it in item.extend" class="ddflex" style="font-size: 24rpx;margin-top: 20rpx;">
 						<view style="color: #A1A1A1;margin-right: 24rpx;">{{it.label}}</view>
 						<view style="color: #333333;">{{it.value}}</view>

+ 1 - 0
match/signPerson/signPerson.css

@@ -13,6 +13,7 @@ page{
 	font-family: PingFang SC-Semibold, PingFang SC;
 	font-weight: 500;
 	color: #333333;
+	margin-top: 20rpx;
 	margin-bottom: 20rpx;
 }
 .p-input{

+ 38 - 33
match/signPerson/signPerson.vue

@@ -50,6 +50,7 @@
 </template>
 
 <script>
+import util from "../../utils/util.js";
 	const app = getApp();
 	const req = require("../../utils/request.js");
 
@@ -62,39 +63,40 @@
 				isTop:0,
 				name:'',
 				phone:'',
-				parmas:[{
-					label:'姓名',
-					name:'name',
-					value:'',
-					type:1,//输入框
-				},{
-					label:'性别',
-					name:'sex',
-					value:'',
-					data:[{label:'男',value:1},{label:'女',value:2}],
-					type:2,//单选
-				},{
-					label:'手机号码',
-					name:'phone',
-					value:'',
-					type:1,//输入框
-				},{
-					label:'身份证号码',
-					name:'userName',
-					value:'',
-					type:1,//输入框
-				},{
-					label:'兴趣爱好',
-					name:'like',
-					value:'',
-					data:[{label:'户外运动',value:1},{label:'旅游',value:2}],
-					type:3,//多选
-				},{
-					label:'建议',
-					name:'suggest',
-					value:'',
-					type:4,//文本域
-				}],
+				parmas:[],
+				// parmas:[{
+				// 	label:'姓名',
+				// 	name:'name',
+				// 	value:'',
+				// 	type:1,//输入框
+				// },{
+				// 	label:'性别',
+				// 	name:'sex',
+				// 	value:'',
+				// 	data:[{label:'男',value:1},{label:'女',value:2}],
+				// 	type:2,//单选
+				// },{
+				// 	label:'手机号码',
+				// 	name:'phone',
+				// 	value:'',
+				// 	type:1,//输入框
+				// },{
+				// 	label:'身份证号码',
+				// 	name:'userName',
+				// 	value:'',
+				// 	type:1,//输入框
+				// },{
+				// 	label:'兴趣爱好',
+				// 	name:'like',
+				// 	value:'',
+				// 	data:[{label:'户外运动',value:1},{label:'旅游',value:2}],
+				// 	type:3,//多选
+				// },{
+				// 	label:'建议',
+				// 	name:'suggest',
+				// 	value:'',
+				// 	type:4,//文本域
+				// }],
 				index:null
 			}
 		},
@@ -136,6 +138,9 @@
 				}
 			},
 			submit(){
+				if(!this.name)  return req.msg('请填写报名人员姓名');
+				if(!this.phone)  return req.msg('请填写报名人员手机号码');
+				if(!util.isMobile(this.phone)) return req.msg('请填写正确的手机号码')
 				if(this.index){
 					console.log('parmas',JSON.stringify(this.parmas))
 					let personList = []

BIN
match/static/images/area.png


BIN
match/static/images/time.png


+ 1 - 1
match/success/success.vue

@@ -4,7 +4,7 @@
 		<view class="tip">报名成功</view>
 		<view class="tips">您已成功报名该活动,请耐心等待主办方审核。预计1-3个工作日内审核完成,点击“<navigator url="/match/activity/activity" hover-class="none" class="mine">我报名的活动</navigator>”查看结果</view>
 		<button open-type="share" class="share">分享活动</button>
-		<navigator url="/pages/home/index" open-type="switchTab" hover-class="none" class="backhome">返回首页</navigator>
+		<navigator url="/pages/index/index" open-type="switchTab" hover-class="none" class="backhome">返回首页</navigator>
 	</view>
 </template>
 

+ 1 - 1
office/detail/detail.css

@@ -81,7 +81,7 @@ page{padding-bottom: 140rpx;background: #fff;}
 	font-size: 24rpx;
 	font-family: PingFang SC-Medium, PingFang SC;
 	font-weight: 500;
-	color: #FF7000;
+	color: #999;
 }
 .step-btn{
 	width: 94rpx;

+ 2 - 2
office/detail/detail.vue

@@ -101,7 +101,7 @@
 					<view class="fflex">
 						<view class="step-title tovers">{{detail.matchContent.title}}</view>
 						<view class="ddflex" style="justify-content: space-between;margin-top: 10rpx;">
-							<view class="step-price">¥{{detail.matchContent.defaultEnlistAmount}}</view>
+							<view class="step-price">{{detail.matchContent.endTime}}</view>
 							<view  class="step-btn">查看</view>
 						</view>
 					</view>
@@ -575,7 +575,7 @@ export default {
 			}
 			dataP.momentsId = this.contentId;
 			this.isSubmit = true;
-			await requsetmessage.remindIntegral().then(res => {});
+			// await requsetmessage.remindIntegral().then(res => {});
 			req.postRequestLoding('/api/v3/fabulous/save', dataP, data => {
 				this.detail.count.commentCount++;
 				req.msg('评论成功');

+ 1 - 1
office/news/news.vue

@@ -311,7 +311,7 @@ export default {
 				dataPream.poiRegionalism = this.location.poiRegionalism
 			}
 			if(this.userGroupId) dataPream.userGroupId = this.userGroupId;
-			await requsetmessage.remindIntegral().then(res => {});
+			// await requsetmessage.remindIntegral().then(res => {});
 			uni.showLoading({
 				mask: true
 			})

+ 56 - 7
office/poi/index.css

@@ -19,7 +19,7 @@
 .map-teams .li .ddflex{height: 100%;}
 .map-teams .li image{width: 76rpx;height: 76rpx;border-radius: 15rpx;margin-right: 20rpx;}
 .map-teams .li text{display: block;font-size: 24rpx;color: #999;}
-.li-btn{width: 107rpx;height: 45rpx;border-radius: 37rpx;border: 2rpx solid rgba(235, 28, 36, .5);font-size: 24rpx;color: #EB1C24;text-align: center;line-height: 45rpx;}
+.li-btn{width: 107rpx;height: 45rpx;border-radius: 37rpx;border: 2rpx solid rgba(235, 28, 36, .5);font-size: 24rpx;color: var(--main);text-align: center;line-height: 45rpx;}
 .t-con{padding: 32rpx 0 0 30rpx;height: 380rpx;overflow: hidden;}
 .t-cons{white-space: nowrap;height: 400rpx;}
 .item{display: inline-block;vertical-align: top;width: 550rpx;height: 360rpx;background: #FFFFFF;box-shadow: 0 4rpx 24rpx rgba(96, 96, 96, 0.06);border-radius: 20rpx;box-sizing: border-box;position: relative;padding: 30rpx;margin-right: 30rpx;}
@@ -39,7 +39,7 @@
 .cons-b{margin: 20rpx 0 0;background: #fff;}
 .tab{padding: 32rpx 32rpx 0;}
 .tab .li{min-width: 88rpx;height: 48rpx;background: #F7F7F7;border-radius: 24rpx;font-size: 24rpx;color: #000;text-align: center;line-height: 48rpx;margin-right: 30rpx;box-sizing: border-box;padding: 0 20rpx;}
-.tab .li.active{background: #FFEBEB;color: #EB1C24;}
+.tab .li.active{background: #E1FFF4;color: var(--main);}
 .list .li{padding: 40rpx 32rpx 45rpx;border-bottom: 1rpx solid rgba(174, 174, 174, 0.2);;}
 .list .li:last-child{border-bottom: none;}
 .userimg{width: 66rpx;height: 66rpx;border-radius: 50%;margin-right: 12rpx;}
@@ -53,17 +53,66 @@
 .video-play{position: absolute;top: 0;left: 0;right: 0;bottom: 0;justify-content: center;background: rgba(0,0,0,.5);border-radius: 15rpx;}
 .video-play image{width: 82rpx;height: 82rpx;}
 .imgbox{flex-wrap: wrap;margin-top: 20rpx;}
-.imgbox image{width: 222rpx;height: 222rpx;border-radius: 16rpx;margin: 0 12rpx 12rpx 0;}
+.imgbox image{width: 220rpx;height: 220rpx;border-radius: 16rpx;margin: 0 12rpx 12rpx 0;}
 .imgbox image:nth-child(3n){margin-right: 0;}
 .que{height: 78rpx;border-radius: 10rpx;background: linear-gradient(270deg, #FFFBEB 0%, #FFF3C9 100%);font-size: 28rpx;color: #FE7806;padding: 0 15rpx;margin-top: 20rpx;}
 .que .tovers{-webkit-line-clamp: 1;height: 78rpx;line-height: 78rpx;}
 .st-ico{width: 50rpx;height: 47rpx;margin-right: 15rpx;}
 .st-rico{width: 12rpx;height: 20rpx;margin-left: 35rpx;}
 .cates text{display: block;font-size: 20rpx;color: #999;background: #F7F7F7;height: 48rpx;border-radius: 24rpx;padding: 0 20rpx;margin: 30rpx 25rpx 0 0;line-height: 48rpx;}
-.topic{height: 40rpx;background: #FDF1F1;border-radius: 20rpx;font-size: 20rpx;color: #F32224;padding: 0 20rpx 0 10rpx;margin-top: 18rpx;}
+.topic{height: 40rpx;background: #E1FFF4;border-radius: 20rpx;font-size: 20rpx;color: var(--main);padding: 0 20rpx 0 10rpx;margin-top: 18rpx;}
 .topic image{width: 28rpx;height: 28rpx;margin-right: 7rpx;}
 .loca{margin-top: 20rpx;font-size: 20rpx;color: #666;}
 .loca image{width: 26rpx;height: 31rpx;margin-right: 8rpx;}
+.step-box{
+	background-color: #f7f8fa;
+	border-radius: 16rpx;
+	padding: 40rpx;
+	margin-top: 30rpx;
+	color: var(--main);
+}
+.step-date{
+	font-size: 64rpx;
+	font-weight: 500;
+}
+.step-label{
+	font-size: 24rpx;
+	font-weight: 500;
+}
+.step-pic{
+	width: 150rpx;
+	height: 150rpx;
+	background: #E2E2E2;
+	border-radius: 16rpx 16rpx 16rpx 16rpx;
+	opacity: 1;
+	margin-right: 20rpx;
+}
+.step-title{
+	height: 74rpx;
+	line-height: 37rpx;
+	font-size: 26rpx;
+	font-family: PingFang SC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #1A1F30;
+}
+.step-price{
+	line-height: 33rpx;
+	font-size: 24rpx;
+	font-family: PingFang SC-Medium, PingFang SC;
+	font-weight: 500;
+	color: #999;
+}
+.step-btn{
+	width: 94rpx;
+	height: 46rpx;
+	line-height: 46rpx;
+	background: var(--main);
+	border-radius: 23rpx 23rpx 23rpx 23rpx;
+	opacity: 1;
+	text-align: center;
+	font-size: 28rpx;
+	color: #FFFFFF;
+}
 .product{height: 168rpx;margin-top: 30rpx;overflow: hidden;}
 .pro-view{height: 168rpx;padding-bottom: 20rpx;white-space: nowrap;}
 .pro-view .lis{display: inline-block;width: 554rpx;height: 168rpx;background: #F7F8FA;border-radius: 16rpx;margin-right: 20rpx;padding: 16rpx;box-sizing: border-box;}
@@ -83,12 +132,12 @@
 .vote-box{margin-top: 50rpx;}
 .vote-box.ends{background: #f8f8f8;margin-top: 30rpx;padding: 20rpx;}
 .vote-tit{font-size: 28rpx;color: #000;}
-.vote-list .lis{height: 74rpx;background: #F9FAFC;border: 1rpx solid #EBEBEB;border-radius: 8rpx;font-size: 30rpx;color: #EB1C24;text-align: center;line-height: 74rpx;margin-top: 20rpx;padding: 0 28rpx;position: relative;overflow: hidden;}
+.vote-list .lis{height: 74rpx;background: #F9FAFC;border: 1rpx solid #EBEBEB;border-radius: 8rpx;font-size: 30rpx;color: var(--main);text-align: center;line-height: 74rpx;margin-top: 20rpx;padding: 0 28rpx;position: relative;overflow: hidden;}
 .end .lis{text-align: left;color: #9B9B9B;}
 .end .lis view{position: relative;z-index: 2;}
 .end .lis view.percent{position: absolute;top: 0;bottom: 0;left: 0;background: #F0F0F0;z-index: 0;}
-.end .lis.active{color: #EB1C24;}
-.end .lis.active view.percent{background: #FFEBEB;}
+.end .lis.active{color: var(--main);}
+.end .lis.active view.percent{background: #E1FFF4;}
 .vote-can{font-size: 22rpx;color: #999;margin-top: 15rpx;}
 .vote-can text{margin-right: 15rpx;}
 .link{height: 150rpx;background: #F8F8F8;border-radius: 16rpx;padding: 24rpx;font-size: 28rpx;color: #333;box-sizing: border-box;margin-top: 30rpx;}

+ 64 - 28
office/poi/index.vue

@@ -42,10 +42,13 @@
 			<view class="list" v-if="officeList && officeList.length > 0">
 				<view class="li" v-for="(item, index) in officeList" :key="index">
 					<view class="user ddflex" @click="jumpUrl('/topics/home/home?userId=' + item.userDTO.id)">
-						<image :src="item.userDTO.avatar" mode="aspectFill" class="userimg"></image>
+						<image :src="item.userDTO.avatar?item.userDTO.avatar:'/static/images/def_head.png'" mode="aspectFill" class="userimg"></image>
 						<view class="fflex">
 							<view class="namea ddflex">
-								<view class="name fflex ddflex">{{ item.userDTO.nickName }}<image src="../../static/images/vip_tag.png" class="vip-tag" v-if="item.userDTO.levelGrade > 0"></image></view>
+								<view class="name fflex ddflex">{{ item.userDTO.nickName }}
+									<!-- <image src="../../static/images/vip_tag.png" class="vip-tag" v-if="item.userDTO.levelGrade > 0"></image> -->
+									<image v-if="item.userDTO.isOpenWeRunData" style="width:15rpx;height:20rpx;margin-left: 10rpx;" src="../../static/images/yd.png"></image>
+								</view>
 								<view class="time">{{ item.time }}</view>
 							</view>
 							<view class="area" v-if="item.userDTO.cityName">{{ item.userDTO.provinceName }} {{ item.userDTO.cityName }}</view>
@@ -93,43 +96,72 @@
 						</block>
 						<view class="vote-can" v-if="item.qyPoll.isEnd"><text>{{item.qyPoll.voteCount}}人参与</text>投票已结束</view>
 					</view>
-					<view class="product" v-if="item.products && item.products.length > 0">
-						<view scroll-x="true" class="pro-view pro-view1" v-if="item.products.length == 1">
-							<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
-								<view class="ddflex">
-									<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
-									<view class="fflex">
-										<view class="title tover">{{ it.title }}</view>
-										<view class="opts ddflex">
-											<view class="money"><text>¥</text>{{ it.salePrice }}</view>
-											<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
-										</view>
-									</view>
+					<block v-if="item.type==10||item.type==11">
+						<view v-if="item.type==10" class="ddflex step-box" style="justify-content: space-between;" @click="jumpUrl('/exercise/record/record?userId=' + item.userId)">
+							<view>
+								<view class="step-date">{{item.wxRun.step}}</view>
+								<view class="step-label">步数</view>
+							</view>
+							<view>
+								<view class="step-date">{{item.wxRun.index}}</view>
+								<view class="step-label" style="text-align: right;">名次</view>
+							</view>
+						</view>
+						<view v-if="item.type==11" class="ddflex step-box" style="justify-content: space-between;" @click="jumpUrl('/match/activityDetail/activityDetail?id=' + item.matchContent.id)">
+							<image class="step-pic" :src="item.matchContent.pic" mode="aspectFill"></image>
+							<view class="fflex">
+								<view class="step-title tovers">{{item.matchContent.title}}</view>
+								<view class="ddflex" style="justify-content: space-between;margin-top: 10rpx;">
+									<view class="step-price">{{item.matchContent.endTime}}</view>
+									<view  class="step-btn">查看</view>
 								</view>
 							</view>
 						</view>
-						<scroll-view scroll-x="true" class="pro-view" v-else>
-							<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
-								<view class="ddflex">
-									<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
-									<view class="fflex">
-										<view class="title tover">{{ it.title }}</view>
-										<view class="opts ddflex">
-											<view class="money"><text>¥</text>{{ it.salePrice }}</view>
-											<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
+					</block>
+					<view v-if="item.userGroupId" class="ddflex step-box" style="padding: 25rpx 21rpx;" @click="jumpUrl('/office/team/index?id=' + item.userGroupId)">
+						<image style="width: 24rpx;height: 24rpx;margin-right: 13rpx;" src="../../static/images/link.png"></image>
+						<view style="font-weight: 500;color: #999999;">Team:</view>
+						<view>{{item.userGroupTitle}}</view>
+					</view>
+					<block v-else>
+						<view class="product" v-if="item.products && item.products.length > 0">
+							<view scroll-x="true" class="pro-view pro-view1" v-if="item.products.length == 1">
+								<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
+									<view class="ddflex">
+										<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
+										<view class="fflex">
+											<view class="title tover">{{ it.title }}</view>
+											<view class="opts ddflex">
+												<view class="money"><text>¥</text>{{ it.salePrice }}</view>
+												<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
+											</view>
 										</view>
 									</view>
 								</view>
 							</view>
-						</scroll-view>
-					</view>
+							<scroll-view scroll-x="true" class="pro-view" v-else>
+								<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
+									<view class="ddflex">
+										<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
+										<view class="fflex">
+											<view class="title tover">{{ it.title }}</view>
+											<view class="opts ddflex">
+												<view class="money"><text>¥</text>{{ it.salePrice }}</view>
+												<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
+											</view>
+										</view>
+									</view>
+								</view>
+							</scroll-view>
+						</view>
+					</block>
 					<view class="opt ddflex" v-if="!item.source">
 						<view class="fflex" @click="jumpUrlDetail(item)">{{fomatNumbers(item.count.browseCount)}}次浏览</view>
 						<view class="ddflex" @click="submitFabulous(2, item.id, index)">
 							<image :src="'../../static/images/' + (item.isPraise == 1 ? 'like_h' : 'like') + '.png'"></image>
 							{{fomatNumbers(item.count.fabulousCount)}}
 						</view>
-						<view class="ddflex" @click="jumpUrlDetail(item)" v-if="config.is_show_create_btn == 1">
+						<view class="ddflex" @click="jumpUrlDetail(item)">
 							<image src="../../static/images/comment.png"></image>
 							{{fomatNumbers(item.count.commentCount)}}
 						</view>
@@ -166,10 +198,8 @@
 	const req = require('../../utils/request.js');
 	const util = require('../../utils/util.js');
 	const QQMapWX = require("../../utils/qqmap.js");
-	import foot from "../../components/nav-bar/index.vue"
 	export default {
 		components: {
-			foot
 		},
 		data() {
 			return {
@@ -294,6 +324,12 @@
 					})
 					return false;
 				}
+				if(item.relationMatch){
+					uni.navigateTo({
+						url: '/pages/main/show/show?id='+item.relationMatch.id
+					})
+					return false;
+				}
 				req.postRequest(api.user_team_follow,{userGroupId: item.id},data=>{
 					req.msg('加入团队成功');
 					this.teamList[index].isJoin = 1;

+ 52 - 3
office/search/index.css

@@ -2,7 +2,7 @@
 page{background: #fff;}
 .top{background: #fff;position: fixed;left: 0;right: 0;top: 0;z-index: 50;padding: 0 30rpx 20rpx;height: 90rpx;box-sizing: border-box;}
 .top-c{background: #F7F7F7;border-radius: 30rpx;font-size: 26rpx;color: #333;}
-.top-tab{width: 150rpx;position: relative;}
+.top-tab{width: 155rpx;position: relative;}
 .top-tab::after{content: '';display: block;width: 1rpx;height: 40rpx;background: #e9e9e9;position: absolute;top: 50%;transform: translateY(-50%);right: 0;}
 .filter{padding: 0 30rpx;height: 55rpx;}
 .bico{width: 20rpx;height: 13rpx;margin-left: 20rpx;opacity: .5;}
@@ -52,18 +52,67 @@ page{background: #fff;}
 .video-play{position: absolute;top: 0;left: 0;right: 0;bottom: 0;justify-content: center;background: rgba(0,0,0,.5);border-radius: 15rpx;}
 .video-play image{width: 82rpx;height: 82rpx;}
 .imgbox{flex-wrap: wrap;margin-top: 20rpx;}
-.imgbox image{width: 222rpx;height: 222rpx;border-radius: 16rpx;margin: 0 12rpx 12rpx 0;}
+.imgbox image{width: 220rpx;height: 220rpx;border-radius: 16rpx;margin: 0 12rpx 12rpx 0;}
 .imgbox image:nth-child(3n){margin-right: 0;}
 .que{height: 78rpx;border-radius: 10rpx;background: linear-gradient(270deg, #FFFBEB 0%, #FFF3C9 100%);font-size: 28rpx;color: #FE7806;padding: 0 15rpx;margin-top: 20rpx;}
 .que .tovers{-webkit-line-clamp: 1;height: 78rpx;line-height: 78rpx;}
 .st-ico{width: 50rpx;height: 47rpx;margin-right: 15rpx;}
 .st-rico{width: 12rpx;height: 20rpx;margin-left: 35rpx;}
 .cates text{display: block;font-size: 20rpx;color: #999;background: #F7F7F7;height: 48rpx;border-radius: 24rpx;padding: 0 20rpx;margin: 30rpx 25rpx 0 0;line-height: 48rpx;}
-.topic{height: 40rpx;background: #FDF1F1;border-radius: 20rpx;font-size: 20rpx;color: #F32224;padding: 0 20rpx 0 10rpx;margin-top: 18rpx;margin-right: 10rpx;}
+.topic{height: 40rpx;background: #E1FFF4;border-radius: 20rpx;font-size: 20rpx;color: var(--main);padding: 0 20rpx 0 10rpx;margin-top: 18rpx;margin-right: 10rpx;}
 .topic image{width: 28rpx;height: 28rpx;margin-right: 7rpx;}
 .loca{margin-top: 20rpx;font-size: 20rpx;color: #666;}
 .loca image{width: 26rpx;height: 31rpx;margin-right: 8rpx;}
 .loca text{margin-right: 10rpx;}
+.step-box{
+	background-color: #f7f8fa;
+	border-radius: 16rpx;
+	padding: 40rpx;
+	margin-top: 30rpx;
+	color: var(--main);
+}
+.step-date{
+	font-size: 64rpx;
+	font-weight: 500;
+}
+.step-label{
+	font-size: 24rpx;
+	font-weight: 500;
+}
+.step-pic{
+	width: 150rpx;
+	height: 150rpx;
+	background: #E2E2E2;
+	border-radius: 16rpx 16rpx 16rpx 16rpx;
+	opacity: 1;
+	margin-right: 20rpx;
+}
+.step-title{
+	height: 74rpx;
+	line-height: 37rpx;
+	font-size: 26rpx;
+	font-family: PingFang SC-Regular, PingFang SC;
+	font-weight: 400;
+	color: #1A1F30;
+}
+.step-price{
+	line-height: 33rpx;
+	font-size: 24rpx;
+	font-family: PingFang SC-Medium, PingFang SC;
+	font-weight: 500;
+	color: #999;
+}
+.step-btn{
+	width: 94rpx;
+	height: 46rpx;
+	line-height: 46rpx;
+	background: var(--main);
+	border-radius: 23rpx 23rpx 23rpx 23rpx;
+	opacity: 1;
+	text-align: center;
+	font-size: 28rpx;
+	color: #FFFFFF;
+}
 .product{height: 168rpx;margin-top: 30rpx;overflow: hidden;}
 .pro-view{height: 168rpx;padding-bottom: 20rpx;white-space: nowrap;}
 .pro-view .lis{display: inline-block;width: 554rpx;height: 168rpx;background: #F7F8FA;border-radius: 16rpx;margin-right: 20rpx;padding: 16rpx;box-sizing: border-box;}

+ 83 - 33
office/search/index.vue

@@ -20,10 +20,13 @@
 			<view class="list" v-if="officeList && officeList.length > 0">
 				<view class="li" v-for="(item, index) in officeList" :key="index">
 					<view class="user ddflex" @click="jumpUrl('/topics/home/home?userId=' + item.userDTO.id)">
-						<image :src="item.userDTO.avatar" mode="aspectFill" class="userimg"></image>
+						<image :src="item.userDTO.avatar?item.userDTO.avatar:'/static/images/def_head.png'" mode="aspectFill" class="userimg"></image>
 						<view class="fflex">
 							<view class="namea ddflex">
-								<view class="name fflex ddflex">{{ item.userDTO.nickName }}<image src="../../static/images/vip_tag.png" class="vip-tag" v-if="item.userDTO.levelGrade > 0"></image></view>
+								<view class="name fflex ddflex">{{ item.userDTO.nickName }}
+									<!-- <image src="../../static/images/vip_tag.png" class="vip-tag" v-if="item.userDTO.levelGrade > 0"></image> -->
+									<image v-if="item.userDTO.isOpenWeRunData" style="width:15rpx;height:20rpx;margin-left: 10rpx;" src="../../static/images/yd.png"></image>
+								</view>
 								<view class="time">{{ item.time }}</view>
 							</view>
 							<view class="area" v-if="item.userDTO.cityName">{{ item.userDTO.provinceName }} {{ item.userDTO.cityName }}</view>
@@ -75,36 +78,65 @@
 						</block>
 						<view class="vote-can" v-if="item.qyPoll.isEnd"><text>{{item.qyPoll.voteCount}}人参与</text>投票已结束</view>
 					</view>
-					<view class="product" v-if="item.products && item.products.length > 0">
-						<view scroll-x="true" class="pro-view pro-view1" v-if="item.products.length == 1">
-							<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
-								<view class="ddflex">
-									<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
-									<view class="fflex">
-										<view class="title tover">{{ it.title }}</view>
-										<view class="opts ddflex">
-											<view class="money"><text>¥</text>{{ it.salePrice }}</view>
-											<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
-										</view>
-									</view>
+					<block v-if="item.type==10||item.type==11">
+						<view v-if="item.type==10" class="ddflex step-box" style="justify-content: space-between;" @click="jumpUrl('/exercise/record/record?userId=' + item.userId)">
+							<view>
+								<view class="step-date">{{item.wxRun.step}}</view>
+								<view class="step-label">步数</view>
+							</view>
+							<view>
+								<view class="step-date">{{item.wxRun.index}}</view>
+								<view class="step-label" style="text-align: right;">名次</view>
+							</view>
+						</view>
+						<view v-if="item.type==11" class="ddflex step-box" style="justify-content: space-between;" @click="jumpUrl('/match/activityDetail/activityDetail?id=' + item.matchContent.id)">
+							<image class="step-pic" :src="item.matchContent.pic" mode="aspectFill"></image>
+							<view class="fflex">
+								<view class="step-title tovers">{{item.matchContent.title}}</view>
+								<view class="ddflex" style="justify-content: space-between;margin-top: 10rpx;">
+									<view class="step-price">{{item.matchContent.endTime}}</view>
+									<view  class="step-btn">查看</view>
 								</view>
 							</view>
 						</view>
-						<scroll-view scroll-x="true" class="pro-view" v-else>
-							<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
-								<view class="ddflex">
-									<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
-									<view class="fflex">
-										<view class="title tover">{{ it.title }}</view>
-										<view class="opts ddflex">
-											<view class="money"><text>¥</text>{{ it.salePrice }}</view>
-											<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
+					</block>
+					<view v-if="item.userGroupId" class="ddflex step-box" style="padding: 25rpx 21rpx;" @click="jumpUrl('/office/team/index?id=' + item.userGroupId)">
+						<image style="width: 24rpx;height: 24rpx;margin-right: 13rpx;" src="../../static/images/link.png"></image>
+						<view style="font-weight: 500;color: #999999;">Team:</view>
+						<view>{{item.userGroupTitle}}</view>
+					</view>
+					<block v-else>
+						<view class="product" v-if="item.products && item.products.length > 0">
+							<view scroll-x="true" class="pro-view pro-view1" v-if="item.products.length == 1">
+								<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
+									<view class="ddflex">
+										<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
+										<view class="fflex">
+											<view class="title tover">{{ it.title }}</view>
+											<view class="opts ddflex">
+												<view class="money"><text>¥</text>{{ it.salePrice }}</view>
+												<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
+											</view>
 										</view>
 									</view>
 								</view>
 							</view>
-						</scroll-view>
-					</view>
+							<scroll-view scroll-x="true" class="pro-view" v-else>
+								<view class="lis" v-for="(it, idx) in item.products" :key="idx" @click="toProductDetail(it)">
+									<view class="ddflex">
+										<image :src="it.pic + '?x-oss-process=style/w375'" mode="aspectFill" class="pic"></image>
+										<view class="fflex">
+											<view class="title tover">{{ it.title }}</view>
+											<view class="opts ddflex">
+												<view class="money"><text>¥</text>{{ it.salePrice }}</view>
+												<view class="pro-btn"><image src="../../static/pages/images/n_cart.png"></image></view>
+											</view>
+										</view>
+									</view>
+								</view>
+							</scroll-view>
+						</view>
+					</block>
 					<view class="opt ddflex" v-if="!item.source">
 						<view class="fflex" @click="jumpUrlDetail(item)">{{fomatNumbers(item.count.browseCount)}}次浏览</view>
 						<view class="ddflex" @click="submitFabulous(2, item.id, index)">
@@ -130,16 +162,28 @@
 		</block>
 		<block v-if="currentTab == 2">
 		<view class="team-list">
-			<view class="li ddflex" v-for="(item,index) in teamList" :key="index" @click="jumpUrl('/office/team/index?id='+item.id)">
-				<image :src="item.url?item.url:picUrlss+'office_images/team_default.png'" mode="aspectFill" class="team-img"></image>
-				<view class="fflex">
-					<view class="team-tit tover">{{item.title}}</view>
-					<view class="team-sta">
-						<text>{{item.memberNum}}成员</text>
-						<text>{{item.momentsNum}}帖子</text>
+			<view v-for="(item,index) in teamList" :key="index">
+				<view class="li ddflex" @click="jumpUrl('/office/team/index?id='+item.id)">
+					<image :src="item.url?item.url:picUrlss+'office_images/team_default.png'" mode="aspectFill" class="team-img"></image>
+					<view class="fflex">
+						<view class="ddflex">
+							<view class="team-tit tover" style="max-width: calc(100% - 80rpx);">{{item.title}}</view>
+							<view v-if="item.relationMatch" style="margin-left: 10rpx; width: 60rpx;line-height: 29rpx;font-size: 20rpx;color: #FFFFFF;background: linear-gradient(56deg, #FF7000 0%, #FF9100 100%);border-radius: 5rpx;text-align: center;">赛事</view>
+							<view v-else style="margin-left: 10rpx;width: 60rpx;line-height: 29rpx;font-size: 20rpx;color: #FFFFFF;background: linear-gradient(48deg, #5190FF 0%, #78A9FF 100%);border-radius: 5rpx;text-align: center;">社区</view>
+						</view>
+						<view class="team-sta">
+							<text>{{item.memberNum}}成员</text>
+							<text>{{item.momentsNum}}帖子</text>
+						</view>
 					</view>
+					<view class="join-btn" @click.stop="joinTeam(item,index)">{{item.isJoin == 1 ? '已加入':'加入'}}</view>
+				</view>
+				<view v-if="item.relationMatch" class="ddflex"
+					style="background: #F7F8FC;border-radius: 10rpx;padding: 18rpx 20rpx;margin-top: 20rpx;margin-left: 96rpx;color: #999;font-size: 24rpx;"
+					@click="jumpUrl('/pages/main/show/show?id='+item.relationMatch.id)">
+					来自
+					<view class="fflex tover" style="color: var(--main);">{{item.relationMatch.title}}</view>
 				</view>
-				<view class="join-btn" @click.stop="joinTeam(item,index)">{{item.isJoin == 1 ? '已加入':'加入'}}</view>
 			</view>
 		</view>
 		<view class="nodata" v-if="isNoData">
@@ -458,6 +502,12 @@
 					})
 					return false;
 				}
+				if(item.relationMatch){
+					uni.navigateTo({
+						url: '/pages/main/show/show?id='+item.relationMatch.id
+					})
+					return false;
+				}
 				req.postRequest(api.user_team_follow,{userGroupId: item.id},data=>{
 					req.msg('加入团队成功');
 					setTimeout(res=>{

+ 1 - 1
pages/found/found.vue

@@ -27,7 +27,7 @@
 						<view class="video">
 							<image mode="aspectFill" style="max-width: 100%;max-height: 100%;" :src="item.pic"></image>
 						</view>
-						<image v-if="index==1" class="video-play" src="/static/images/video_play.png"></image>
+						<image v-if="item.contentType==2" class="video-play" src="/static/images/video_play.png"></image>
 					</view>
 					<view class="video-info">
 						<view class="video-name tovers">{{item.title}}</view>

+ 15 - 6
pages/index/index.css

@@ -3,7 +3,7 @@ page{background: #fff;}
 .top-fixed{position: fixed;top: 0;left: 0;right: 0;z-index: 50;background: var(--mina);}
 .topbg{width: 100%;height: 100%;}
 .top-title{position: absolute;left: 0;right: 0;text-align: left;font-size: 36rpx;color: #fff;padding-left: 34rpx;}
-.top-title image{height: 60rpx;position: absolute;left: 34rpx;top: 50%;transform: translateY(-50%);}
+.top-title image{height: 60rpx;margin-right: 20rpx;}
 .not-color{background: #fff;}
 .not-color .top-title{color: #333;}
 .top{box-sizing: border-box;align-items: center;position: relative;}
@@ -870,11 +870,11 @@ page{background: #fff;}
 
 .chat-fixed{
 	position: fixed;
-	bottom: 350rpx;
+	bottom: 230rpx;
 	/* left:calc(100% - 130rpx); */
 	right: 30rpx;
 	z-index: 1;
-	transition:all 2s ease;
+	/* transition:all 2s ease-in; */
 }
 .chat-box{
 	width: 100rpx;
@@ -884,7 +884,7 @@ page{background: #fff;}
 	position: relative;
 	padding: 8rpx;
 	box-sizing: border-box;
-	transition:all 2s ease;
+	transition:all 0.5s cubic-bezier(0.5,0.8,1,1);
 }
 .chat-fixed-long{
 }
@@ -904,6 +904,15 @@ page{background: #fff;}
 	font-size: 28rpx;
 	border-radius: 28rpx;
 	margin-right: 20rpx;
+	opacity: 1;
+}
+.chat-lyl{
+	width: 123rpx;
+	background: var(--main);
+	text-align: center;
+	color: #fff;
+	opacity: 0;
+	transition:all 0.5s cubic-bezier(0.5,0.8,1,1);
 }
 .chat-box image{
 	width: 86rpx;
@@ -911,7 +920,7 @@ page{background: #fff;}
 	margin: auto;
 	border-radius: 100%;
 }
-.chat-lyl{
+.chat-lyl2{
 	position: absolute;
 	bottom: -13rpx;
 	left: 50%;
@@ -921,10 +930,10 @@ page{background: #fff;}
 	line-height: 32rpx;
 	background: var(--main);
 	border-radius: 16rpx 16rpx 16rpx 16rpx;
-	opacity: 1;
 	text-align: center;
 	color: #fff;
 	font-size: 20rpx;
 	font-family: PingFang SC-Regular, PingFang SC;
 	font-weight: 400;
+	opacity: 1;
 }

+ 29 - 8
pages/index/index.vue

@@ -16,6 +16,12 @@
 		<view class="bg">
 			<image :src="about.INDEX_PIC"></image>
 		</view>
+		<view v-if="!recommendCard">
+			<view class="top-title ddflex" :style="'height: '+ systems.navigationHeight + 'rpx;top:' + systems.ktxStatusHeight + 'rpx;'">
+				<image :src="about.CONFIG_PROJECT_LOGO" mode="heightFix"></image>
+				{{about.CONFIG_PROJECT_TITLE?about.CONFIG_PROJECT_TITLE:''}}
+			</view>
+		</view>
 		<view class="service-person" :style="'top:' + systems.ktxStatusHeight + 'rpx;'" v-if="recommendCard">
 			<view class="ddflex" @click="jumpUrl('/card/index/index?cardId='+recommendCard.id)">
 				<image class="service-person-header"
@@ -127,7 +133,7 @@
 					</view> -->
 				</view>
 
-				<block v-if="tbalList[tbalIndex].contentList">
+				<block v-if="tbalList[tbalIndex].contentList&&tbalList[tbalIndex].contentList.length>0">
 					<view class="tbal-item ddflex" v-for="it in tbalList[tbalIndex].contentList"
 						@click="jumpUrl('/topic/alContent/alContent?id='+it.id)">
 						<image class="tbal-pic" :src="it.pic?it.pic:'/static/images/lj_img.png'"></image>
@@ -154,6 +160,10 @@
 						</view>
 					</view>
 				</block>
+				<view class="nodata" v-else style="padding-top: 0rpx;">
+					<image :src="picUrlss+'empty_dd.png'"></image>
+					<text>暂无数据</text>
+				</view>
 			</view>
 		</view>
 
@@ -174,7 +184,7 @@
 						<view :class="'lpgs-header '+(indexs%2==0?'lpgs-header-c':'')">
 							<view>{{items.name}}</view>
 						</view>
-						<view class="lpgs-content">
+						<view class="lpgs-content" v-if="items.contentList&&items.contentList.length>0">
 							<view class="lpgs-item-content ddflex" v-for="item in items.contentList"
 								@click="jumpUrl('/topic/content/content?id='+item.id)">
 								<view class="flex" style="min-width: 0;">
@@ -188,6 +198,12 @@
 									:src="item.pic?item.pic:'/static/images/lj_img.png'"></image>
 							</view>
 						</view>
+						<view class="lpgs-content" v-else>
+							<view class="nodata" style="padding-top: 40rpx;padding-bottom: 40rpx;">
+								<image :src="picUrlss+'empty_dd.png'" style="margin: 0 auto 0rpx;width: 208rpx;height: 139rpx;" mode="aspectFill"></image>
+								<text>暂无数据</text>
+							</view>
+						</view>
 					</view>
 				</scroll-view>
 			</view>
@@ -205,7 +221,7 @@
 				<view class="fx-header ddflex">
 					<view class="ddflex">
 						<view class="fx-header-title">{{fxList[fxIndex].name}}</view>
-						<view class="fx-header-more">2.2万人转发</view>
+						<view class="fx-header-more">{{unitFormat(fxList[fxIndex].shareCount?fxList[fxIndex].shareCount:0)}}人浏览</view>
 					</view>
 					<view class="fx-header-more ddflex"
 						@click="jumpUrl('/topic/contentList/contentList?code='+fxList[fxIndex].code+'&title='+fxList[fxIndex].name)">
@@ -213,7 +229,7 @@
 						<image src="/static/pages/images/more.png"></image>
 					</view>
 				</view>
-				<view>
+				<view v-if="fxContentList.length>0">
 					<view class="fx-item ddflex" v-for="item in fxContentList"
 						@click="jumpUrl('/topic/content/content?id='+item.id)">
 						<view class="flex" style="min-width: 0;">
@@ -229,6 +245,10 @@
 						<image class="fx-item-pic" :src="item.pic?item.pic:'../../static/images/lj_img.png'"></image>
 					</view>
 				</view>
+				<view class="nodata" v-else style="padding-top: 0rpx;padding-bottom: 40rpx;">
+					<image :src="picUrlss+'empty_dd.png'" style="margin: 0 auto 0rpx;width: 208rpx;height: 139rpx;" mode="aspectFill"></image>
+					<text>暂无数据</text>
+				</view>
 			</view>
 		</view>
 
@@ -285,7 +305,7 @@
 				复制微信号
 			</view>
 		</view>
-		<msgNumber></msgNumber>
+		<msgNumber :bottom="recommendCard?'350rpx':'230rpx'"></msgNumber>
 		<!-- <view class="chat-fixed" v-if="recommendCard">
 			<view class="chat-box ddflex" @click="jumpSingleChatRoom()">
 				<image :src="recommendCard.avatar?recommendCard.avatar:'../../static/pages/images/userimg.png'"></image>
@@ -298,7 +318,7 @@
 				<view v-if="chatShowText" class="fflex tover"
 					style="font-size: 24rpx;color: #333333;margin-left: 20rpx;">您好,我是{{recommendCard.realName}},欢迎访问我的微页
 				</view>
-				<view class="chat-lyl">聊一聊</view>
+				<view :class="'chat-lyl '+(!chatShowText?'chat-lyl2':'')">聊一聊</view>
 			</view>
 		</view>
 	</view>
@@ -323,6 +343,7 @@
 	export default {
 		data() {
 			return {
+				picUrlss: req.public.picUrls,
 				skinNotColor: req.public.skinNotColor,
 				systems: {},
 				header: req.header,
@@ -543,8 +564,8 @@
 						this.chatShow = false
 						setTimeout(() => {
 							this.chatShowText = false
-						}, 1500)
-					}, 3000)
+						}, 450)
+					}, 2000)
 				})
 			},
 			// 获取热门活动

+ 3 - 3
pages/interactive/index.css

@@ -46,14 +46,14 @@ page{background: #fff;}
 .video-play{position: absolute;top: 0;left: 0;right: 0;bottom: 0;justify-content: center;background: rgba(0,0,0,.5);border-radius: 15rpx;}
 .video-play image{width: 82rpx;height: 82rpx;}
 .imgbox{flex-wrap: wrap;margin-top: 20rpx;}
-.imgbox image{width: 222rpx;height: 222rpx;border-radius: 16rpx;margin: 0 12rpx 12rpx 0;}
+.imgbox image{width: 220rpx;height: 220rpx;border-radius: 16rpx;margin: 0 12rpx 12rpx 0;}
 .imgbox image:nth-child(3n){margin-right: 0;}
 .que{height: 78rpx;border-radius: 10rpx;background: linear-gradient(270deg, #FFFBEB 0%, #FFF3C9 100%);font-size: 28rpx;color: #FE7806;padding: 0 15rpx;margin-top: 20rpx;}
 .que .tovers{-webkit-line-clamp: 1;height: 78rpx;line-height: 78rpx;}
 .st-ico{width: 50rpx;height: 47rpx;margin-right: 15rpx;}
 .st-rico{width: 12rpx;height: 20rpx;margin-left: 35rpx;}
 .cates text{display: block;font-size: 20rpx;color: #999;background: #F7F7F7;height: 48rpx;border-radius: 24rpx;padding: 0 20rpx;margin: 30rpx 25rpx 0 0;line-height: 48rpx;}
-.topic{height: 40rpx;background: #E1FFF4;border-radius: 20rpx;font-size: 20rpx;color: #009B62;padding: 0 20rpx 0 10rpx;margin-top: 18rpx;margin-right: 10rpx;}
+.topic{height: 40rpx;background: #E1FFF4;border-radius: 20rpx;font-size: 20rpx;color: var(--main);padding: 0 20rpx 0 10rpx;margin-top: 18rpx;margin-right: 10rpx;}
 .topic image{width: 28rpx;height: 28rpx;margin-right: 7rpx;}
 .loca{margin-top: 20rpx;font-size: 20rpx;color: #666;}
 .loca image{width: 26rpx;height: 31rpx;margin-right: 8rpx;}
@@ -94,7 +94,7 @@ page{background: #fff;}
 	font-size: 24rpx;
 	font-family: PingFang SC-Medium, PingFang SC;
 	font-weight: 500;
-	color: #FF7000;
+	color: #999;
 }
 .step-btn{
 	width: 94rpx;

+ 1 - 1
pages/interactive/index.vue

@@ -160,7 +160,7 @@
 							<view class="fflex">
 								<view class="step-title tovers">{{item.matchContent.title}}</view>
 								<view class="ddflex" style="justify-content: space-between;margin-top: 10rpx;">
-									<view class="step-price">¥{{item.matchContent.defaultEnlistAmount}}</view>
+									<view class="step-price">{{item.matchContent.endTime}}</view>
 									<view  class="step-btn">查看</view>
 								</view>
 							</view>

+ 4 - 11
pages/user/user.vue

@@ -31,26 +31,19 @@
 				<!-- </navigator> -->
 			</view>
 			<view class="datas dflex">
-				<navigator url="" hover-class="none" class="li" v-if="is_open_wallet.isOpenWallet == 1"
-					@click="jumpUrl('wallet/index/index')">
-					<text>{{ userMoney ? userMoney : '0.00' }}</text>
-					钱包
-				</navigator>
 				<navigator url="" hover-class="none" class="li"
-					:style="is_open_wallet.isOpenWallet != 1 && Open_Points_Mall != 1 ? 'width:50%' : ''"
 					@click="jumpUrl('mine/coupons/coupons')">
 					<text>{{ userInfos.coupon ? userInfos.coupon : '0' }}</text>
-					优惠券
+					我的收藏
 				</navigator>
 				<navigator url="" hover-class="none" class="li" @click="jumpUrl('integralshop/index/index')">
 					<text>{{ userInfos.integral ? userInfos.integral : '0' }}</text>
-					积分
+					我的关注
 				</navigator>
 				<navigator url="" hover-class="none" class="li"
-					:style="is_open_wallet.isOpenWallet != 1 && Open_Points_Mall != 1 ? 'width:50%' : ''"
-					@click="jumpUrl('mine/collect/collect')">
+					@click="jumpUrl('match/activity/activity')">
 					<text>{{ userInfos.collect ? userInfos.collect : '0' }}</text>
-					收藏
+					参与活动
 				</navigator>
 				<!-- <navigator url="/mine/footprint/footprint" hover-class="none" class="li"><text>{{footprint?footprint:'0'}}</text>足迹</navigator> -->
 			</view>

BIN
static/pages/images/blue/cart_h.png


BIN
static/pages/images/blue/home_h.png


BIN
static/pages/images/blue/live_h.png


BIN
static/pages/images/blue/sort_h.png


BIN
static/pages/images/blue/user_h.png


BIN
static/pages/images/blue/wdbg.png


BIN
static/pages/images/blue/yunyao_h.png


BIN
static/pages/images/gold/cart_h.png


BIN
static/pages/images/gold/home_h.png


BIN
static/pages/images/gold/live_h.png


BIN
static/pages/images/gold/sort_h.png


BIN
static/pages/images/gold/user_h.png


BIN
static/pages/images/gold/wdbg.png


BIN
static/pages/images/gold/yunyao_h.png


BIN
static/pages/images/green/cart_h.png


BIN
static/pages/images/green/home_h.png


BIN
static/pages/images/green/live_h.png


BIN
static/pages/images/green/sort_h.png


BIN
static/pages/images/green/user_h.png


BIN
static/pages/images/green/wdbg.png


BIN
static/pages/images/green/wdbg1.png


BIN
static/pages/images/green/yunyao_h.png


BIN
static/pages/images/hBlue/cart_h.png


BIN
static/pages/images/hBlue/home_h.png


BIN
static/pages/images/hBlue/live_h.png


BIN
static/pages/images/hBlue/sort_h.png


BIN
static/pages/images/hBlue/user_h.png


BIN
static/pages/images/hBlue/wdbg.png


BIN
static/pages/images/hBlue/yunyao_h.png


BIN
static/pages/images/jishida.png


BIN
static/pages/images/lblue/cart_h.png


BIN
static/pages/images/lblue/home_h.png


BIN
static/pages/images/lblue/live_h.png


BIN
static/pages/images/lblue/sort_h.png


BIN
static/pages/images/lblue/user_h.png


BIN
static/pages/images/lblue/wdbg.png


BIN
static/pages/images/lblue/yunyao_h.png


BIN
static/pages/images/lightseagreen/cart_h.png


BIN
static/pages/images/lightseagreen/home_h.png


BIN
static/pages/images/lightseagreen/live_h.png


BIN
static/pages/images/lightseagreen/sort_h.png


BIN
static/pages/images/lightseagreen/user_h.png


BIN
static/pages/images/lightseagreen/wdbg.png


BIN
static/pages/images/lightseagreen/yunyao_h.png


BIN
static/pages/images/mengdianxuanze.png


BIN
static/pages/images/newbornZone.png


BIN
static/pages/images/orange/cart_h.png


BIN
static/pages/images/orange/home_h.png


BIN
static/pages/images/orange/live_h.png


BIN
static/pages/images/orange/sort_h.png


BIN
static/pages/images/orange/user_h.png


BIN
static/pages/images/orange/wdbg.png


BIN
static/pages/images/orange/yunyao_h.png


BIN
static/pages/images/otc.png


BIN
static/pages/images/pink/cart_h.png


BIN
static/pages/images/pink/home_h.png


BIN
static/pages/images/pink/live_h.png


BIN
static/pages/images/pink/sort_h.png


BIN
static/pages/images/pink/user_h.png


BIN
static/pages/images/pink/wdbg.png


BIN
static/pages/images/pink/yunyao_h.png


BIN
static/pages/images/seckill.png


BIN
static/pages/images/tuan.png


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä