浏览代码

修改活动路演

zs 6 月之前
父节点
当前提交
cd5defd360
共有 85 个文件被更改,包括 2437 次插入559 次删除
  1. 2 2
      common/api.js
  2. 13 8
      components/upload/index.vue
  3. 8 2
      config.js
  4. 2 2
      manifest.json
  5. 24 1
      pages.json
  6. 1 1
      pages/index/index.vue
  7. 432 0
      pagesHome/match/active.vue
  8. 79 6
      pagesHome/match/index.vue
  9. 202 0
      pagesMy/activity/active.vue
  10. 1 1
      pagesMy/activity/add.vue
  11. 90 4
      pagesMy/activity/detail.vue
  12. 451 0
      pagesMy/match/active.vue
  13. 11 3
      pagesMy/match/index.vue
  14. 1 0
      pagesMy/match/sign.vue
  15. 313 0
      pagesMy/notice/index.vue
  16. 6 2
      static/iconfont-weapp/icon/icon.wxss
  17. 6 2
      static/iconfont-weapp/iconfont-weapp-icon.css
  18. 6 2
      static/iconfont-weapp/iconfont-weapp-icon.wxss
  19. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  20. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  21. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  22. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/components/tabs/index.js.map
  23. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/components/upload/index.js.map
  24. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/home/index.js.map
  25. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  26. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/index.js.map
  27. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/common/vendor.js.map
  28. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/login/index.js.map
  29. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/index.js.map
  30. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/sign.js.map
  31. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/register/index.js.map
  32. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/about/index.js.map
  33. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/basic.js.map
  34. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/index.js.map
  35. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/password.js.map
  36. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/add.js.map
  37. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/detail.js.map
  38. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/index.js.map
  39. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/agree/index.js.map
  40. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/contact/index.js.map
  41. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js.map
  42. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js.map
  43. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map
  44. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js.map
  45. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js.map
  46. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map
  47. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js.map
  48. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map
  49. 5 1
      unpackage/dist/dev/mp-weixin/app.json
  50. 5 2
      unpackage/dist/dev/mp-weixin/common/main.wxss
  51. 2 2
      unpackage/dist/dev/mp-weixin/common/runtime.js
  52. 193 114
      unpackage/dist/dev/mp-weixin/common/vendor.js
  53. 14 14
      unpackage/dist/dev/mp-weixin/components/tabs/index.js
  54. 1 1
      unpackage/dist/dev/mp-weixin/pages/home/index.js
  55. 1 1
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  56. 19 19
      unpackage/dist/dev/mp-weixin/pagesHome/login/index.js
  57. 134 14
      unpackage/dist/dev/mp-weixin/pagesHome/match/index.js
  58. 2 0
      unpackage/dist/dev/mp-weixin/pagesHome/match/index.json
  59. 1 1
      unpackage/dist/dev/mp-weixin/pagesHome/match/index.wxml
  60. 1 1
      unpackage/dist/dev/mp-weixin/pagesHome/match/sign.js
  61. 21 21
      unpackage/dist/dev/mp-weixin/pagesHome/register/index.js
  62. 16 16
      unpackage/dist/dev/mp-weixin/pagesMy/about/index.js
  63. 17 17
      unpackage/dist/dev/mp-weixin/pagesMy/account/basic.js
  64. 16 16
      unpackage/dist/dev/mp-weixin/pagesMy/account/index.js
  65. 19 19
      unpackage/dist/dev/mp-weixin/pagesMy/account/password.js
  66. 20 20
      unpackage/dist/dev/mp-weixin/pagesMy/activity/add.js
  67. 1 1
      unpackage/dist/dev/mp-weixin/pagesMy/activity/add.wxml
  68. 68 22
      unpackage/dist/dev/mp-weixin/pagesMy/activity/detail.js
  69. 1 1
      unpackage/dist/dev/mp-weixin/pagesMy/activity/detail.wxml
  70. 18 18
      unpackage/dist/dev/mp-weixin/pagesMy/activity/index.js
  71. 16 16
      unpackage/dist/dev/mp-weixin/pagesMy/agree/index.js
  72. 16 16
      unpackage/dist/dev/mp-weixin/pagesMy/contact/index.js
  73. 1 1
      unpackage/dist/dev/mp-weixin/project.config.json
  74. 6 2
      unpackage/dist/dev/mp-weixin/static/iconfont-weapp/icon/icon.wxss
  75. 6 2
      unpackage/dist/dev/mp-weixin/static/iconfont-weapp/iconfont-weapp-icon.css
  76. 6 2
      unpackage/dist/dev/mp-weixin/static/iconfont-weapp/iconfont-weapp-icon.wxss
  77. 16 16
      unpackage/dist/dev/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js
  78. 16 16
      unpackage/dist/dev/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js
  79. 15 15
      unpackage/dist/dev/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js
  80. 14 14
      unpackage/dist/dev/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js
  81. 16 16
      unpackage/dist/dev/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js
  82. 15 15
      unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js
  83. 15 15
      unpackage/dist/dev/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js
  84. 15 15
      unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js
  85. 11 11
      unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js

+ 2 - 2
common/api.js

@@ -2,7 +2,7 @@ import config from '../config.js';
 const getDomain = (uri, method, type) => {
 	let serverUrl = config.serverUrl;
 	let fileUrl = config.serverFile;
-	if (type && type == 'file') return fileUrl + `/cxyy/api/files` + uri;
+	if (type && type == 'file') return fileUrl + `/files` + uri;
 	else return serverUrl + `/cxyy/api` + uri;
 };
 // 获取token
@@ -37,7 +37,7 @@ export const requestBase = async (uri, method = 'GET', data, type) => {
 	});
 };
 export const requestApp = async (uri, method = 'GET', data, type) => {
-	let baseUrl = `https://broadcast.waityou24.cn${uri}`;
+	let baseUrl = getDomain(uri, method, type);
 	let header = {};
 	const token = uni.getStorageSync('token');
 	if (token) header.token = token;

+ 13 - 8
components/upload/index.vue

@@ -2,7 +2,7 @@
 	<view class="upload">
 		<view class="upload_1">
 			<view class="list" v-for="(item,index) in list" :key="index">
-				<image class="image" :src="item.url" @click="toView(index,item)"></image>
+				<image class="image" :src="getUrl(item.url)" @click="toView(index,item)"></image>
 				<uni-icons class="del" type="close" size="30" color="#007AFF" @click="uplDel(index,item)"></uni-icons>
 			</view>
 			<view class="list" v-if="list&&list.length<count" @tap="uplSuc()">
@@ -41,15 +41,15 @@
 					sourceType: ['album', 'camera'],
 					success: async function(res) {
 						let tempFile = JSON.parse(JSON.stringify(res.tempFilePaths));
-						const arr = await that.$apifile(`/applet/upload`, 'file', tempFile[0],
+						const arr = await that.$apifile(`/web/cxyy_applet/upload`, 'POST', tempFile[0],
 							'file');
 						if (arr.errcode == '0') {
 							that.$emit('uplSuc', {
 								data: {
-									id: arr.data.name,
-									name: arr.data.name,
-									uri: arr.data.uri,
-									url: serverFile + arr.data.uri
+									id: arr.id,
+									name: arr.name,
+									uri: arr.uri,
+									url: arr.uri
 								},
 								name: that.name
 							})
@@ -78,9 +78,14 @@
 				const that = this;
 				uni.previewImage({
 					current: index,
-					urls: [e.url]
+					urls: [that.$config.serverFile + e.url]
 				})
-			}
+			},
+			// 图片处理
+			getUrl(e) {
+				const that = this;
+				if (e) return that.$config.serverFile + e
+			},
 		}
 	}
 </script>

+ 8 - 2
config.js

@@ -2,13 +2,13 @@
 const wx_min = uni.getAccountInfoSync();
 // 设备信息
 const system = uni.getSystemInfoSync();
-let wx_projectkey = 'newCourtApp';
+let wx_projectkey = 'friendShoolApp';
 
 if (system.uniPlatform == 'mp-weixin') {
 	let envV = wx_min.miniProgram.envVersion;
 }
 export default {
-	serverFile: 'http://127.0.0.1:19700',
+	serverFile: 'http://127.0.0.1:19700', // https://www.gyycxyy.com
 	serverUrl: 'http://127.0.0.1:19700',
 	brokerURL: 'ws://192.168.1.197:15674/ws',
 	wx_projectkey: wx_projectkey,
@@ -27,6 +27,12 @@ export default {
 			route: "pagesMy/activity/index",
 			type: '0',
 		},
+		{
+			icon: "t-icon-xinxi",
+			title: "我的通知",
+			route: "pagesMy/notice/index",
+			type: '1',
+		},
 		{
 			icon: "t-icon-bohao",
 			title: "联系我们",

+ 2 - 2
manifest.json

@@ -47,7 +47,7 @@
             "sdkConfigs" : {
                 "share" : {
                     "weixin" : {
-                        "appid" : "wx34436977cd1e02e4",
+                        "appid" : "wxef5b87d5fef241b4",
                         "UniversalLinks" : ""
                     }
                 }
@@ -59,7 +59,7 @@
     /* 快应用特有相关 */
     "mp-weixin" : {
         /* 小程序特有相关 */
-        "appid" : "wx34436977cd1e02e4",
+        "appid" : "wxef5b87d5fef241b4",
         "setting" : {
             "urlCheck" : false,
             "minified" : true,

+ 24 - 1
pages.json

@@ -39,6 +39,12 @@
 						"navigationBarTitleText": "活动报名"
 					}
 				},
+				{
+					"path": "match/active",
+					"style": {
+						"navigationBarTitleText": "活动报名"
+					}
+				},
 				{
 					"path": "login/index",
 					"style": {
@@ -74,6 +80,12 @@
 						"navigationBarTitleText": "赛事报名"
 					}
 				},
+				{
+					"path": "match/active",
+					"style": {
+						"navigationBarTitleText": "赛事报名"
+					}
+				},
 				{
 					"path": "match/add",
 					"style": {
@@ -86,13 +98,18 @@
 						"navigationBarTitleText": "我的报名"
 					}
 				},
-
 				{
 					"path": "activity/add",
 					"style": {
 						"navigationBarTitleText": "修改报名信息"
 					}
 				},
+				{
+					"path": "activity/active",
+					"style": {
+						"navigationBarTitleText": "修改报名信息"
+					}
+				},
 				{
 					"path": "activity/detail",
 					"style": {
@@ -140,6 +157,12 @@
 					"style": {
 						"navigationBarTitleText": "修改密码"
 					}
+				},
+				{
+					"path": "notice/index",
+					"style": {
+						"navigationBarTitleText": "我的通知"
+					}
 				}
 			]
 		}

+ 1 - 1
pages/index/index.vue

@@ -44,7 +44,7 @@
 						uni.login({
 							success: async function(res) {
 								if (res.code) {
-									const aee = await that.$app('/wechat/api/login/app', 'GET', {
+									const aee = await that.$app('/login/app', 'GET', {
 										js_code: res.code,
 										config: that.$config.wx_projectkey
 									})

+ 432 - 0
pagesHome/match/active.vue

@@ -0,0 +1,432 @@
+<template>
+	<view class="container main">
+		<view class="one">
+			<view class="one_1 name">{{info.name||'暂无活动名称'}}</view>
+			<view class="one_1 one_2 text_color">
+				<view class="one_left">
+					<text class="t-icon t-icon-shizhong"></text>
+					<span>{{getTime(info.start_time,info.end_time)||'暂无'}}</span>
+				</view>
+				<view class="one_right"
+					:class="[info.match_status=='0'?'active_1':info.match_status=='1'?'active_2':info.match_status=='2'?'active_3':'active_4']">
+					<text class="t-icon t-icon-shizhong-copy"></text>
+					<span>{{getDict(info.match_status,'status')}}</span>
+				</view>
+			</view>
+			<view class="one_1 text_color">
+				<text class="t-icon t-icon-gonglve"></text>
+				<span>{{getDict(info.match_type,'type')||'自办'}}</span>
+			</view>
+			<view class="one_1 text_color">
+				<text class="t-icon t-icon-gongsi"></text>
+				<span>{{info.work||'暂无组织单位'}}</span>
+			</view>
+		</view>
+		<view class="two">
+			<view class="two_1">
+				<view class="two_text">填写报名信息</view>
+				<view class="two_remark">*请如实填报报名信息,方便我们及时与您联系</view>
+			</view>
+			<view class="two_2">
+				<form @submit="formSubmit">
+					<view class="value other">
+						<view class="title">姓名</view>
+						<view class="label">
+							<input name="name" class="input" :value="form.name" placeholder="请输入姓名" />
+							<span v-if="errors.name" class="error-message">{{ errors.name }}</span>
+						</view>
+					</view>
+					<view class="value other">
+						<view class="title">联系电话</view>
+						<view class="label">
+							<input name="phone" class="input" :value="form.phone" placeholder="请输入联系电话" />
+							<span v-if="errors.phone" class="error-message">{{ errors.phone }}</span>
+						</view>
+					</view>
+					<view class="value other">
+						<view class="title">报名类型</view>
+						<view class="label">
+							<uni-data-checkbox v-model="form.type" :localdata="signTypeList"
+								:map="{text:'label',value:'value'}" />
+							<span v-if="errors.type" class="error-message">{{ errors.type }}</span>
+						</view>
+					</view>
+					<view class="value other">
+						<view class="title">公司</view>
+						<view class="label">
+							<input name="company" class="input" :value="form.company" placeholder="请输入公司名称" />
+							<span v-if="errors.company" class="error-message">{{ errors.company }}</span>
+						</view>
+					</view>
+					<view class="value other" v-if="form.type==='1'">
+						<view class="title">路演名称</view>
+						<view class="label">
+							<input name="project_name" class="input" :value="form.project_name" placeholder="请输入路演名称" />
+							<span v-if="errors.project_name" class="error-message">{{ errors.project_name }}</span>
+						</view>
+					</view>
+					<view class="value other" v-if="form.type==='1'">
+						<view class="title">路演介绍</view>
+						<view class="label">
+							<input name="project_brief" class="input" :value="form.project_brief"
+								placeholder="请输入路演介绍" />
+							<span v-if="errors.project_brief" class="error-message">{{ errors.project_brief }}</span>
+						</view>
+					</view>
+					<view class="value other" v-if="form.type==='1'">
+						<view class="title">路演附件</view>
+						<view class="label">
+							<upload class='upload' :list="form.project_file" name="project_file" :count="1"
+								@uplSuc="uplSuc" @uplDel="uplDel">
+							</upload>
+							<span v-if="errors.project_file" class="error-message">{{ errors.project_file }}</span>
+						</view>
+					</view>
+					<view class="button">
+						<button type="warn" form-type="submit">提交</button>
+					</view>
+				</form>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import upload from '../../components/upload/index.vue';
+	import moment from 'moment';
+	export default {
+		components: {
+			upload
+		},
+		data() {
+			return {
+				user: {},
+				id: '',
+				form: {
+					name: "",
+					type: "",
+					company: "",
+					phone: "",
+					project_name: "",
+					project_brief: "",
+					project_file: []
+				},
+				info: {},
+				signTypeList: [],
+				typeList: [],
+				statusList: [],
+				errors: {}
+			}
+		},
+		onLoad: async function(e) {
+			const that = this;
+			that.$set(that, `id`, e && e.id || '');
+			await that.searchToken();
+			await that.searchOther();
+			await that.search();
+		},
+		methods: {
+			// 用户信息
+			searchToken() {
+				const that = this;
+				try {
+					const res = uni.getStorageSync('token');
+					if (res) {
+						const user = that.$jwt(res);
+						that.$set(that, `user`, user);
+					}
+				} catch (e) {}
+			},
+			async searchOther() {
+				const that = this;
+				let res;
+				// 报名类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'signType',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `signTypeList`, res.data);
+				// 查询状态
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'matchStatus',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `statusList`, res.data)
+				// 赛事类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'activeType',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `typeList`, res.data)
+			},
+			// 查询
+			async search() {
+				const that = this;
+				if (that.id) {
+					let res;
+					res = await that.$api(`/match/${that.id}`, 'GET', {})
+					if (res.errcode == '0') {
+						that.$set(that, `info`, res.data)
+					} else {
+						uni.showToast({
+							title: res.errmsg,
+							icon: 'none'
+						});
+					}
+				}
+			},
+			// 处理时间
+			getTime(start_time, end_time) {
+				if (start_time && end_time) {
+					const start = new Date(start_time);
+					const end = new Date(end_time);
+					const weekdays = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
+					const day = start.getDate();
+					const weekday = weekdays[start.getDay()];
+					const month = start.getMonth();
+					const start_hours = start.getHours();
+					const start_minutes = start.getMinutes();
+					const end_hours = end.getHours();
+					const end_minutes = end.getMinutes();
+					return `${month}/${day < 10 ? '0' + day : day} ${weekday} ${start_hours.toString().padStart(2, '0')}:${start_minutes.toString().padStart(2, '0')} - ${end_hours.toString().padStart(2, '0')}:${end_minutes.toString().padStart(2, '0')} `;
+				}
+			},
+			// 处理字典表
+			getDict(item, model) {
+				const that = this;
+				let res
+				if (model == 'status') res = that.statusList.find(i => i.value == item)
+				else if (model == 'type') res = that.typeList.find(i => i.value == item)
+				if (res) return res.label
+				else return '暂无'
+			},
+			// 图片上传
+			uplSuc(e) {
+				const that = this;
+				that.$set(that.form, `${e.name}`, [...that.form[e.name], e.data]);
+			},
+			// 图片删除
+			uplDel(e) {
+				const that = this;
+				let data = that.form[e.name];
+				let arr = data.filter((i, index) => index != e.data.index);
+				that.$set(that.form, `${e.name}`, arr)
+			},
+			// 自定义的验证函数
+			validateObject(obj) {
+				const that = this;
+				const errors = {};
+				if (!obj.name || obj.name.trim() === '') {
+					errors.name = '请填写姓名!';
+				}
+				if (!obj.type || obj.type.trim() === '') {
+					errors.type = '请选择报名类型!';
+				}
+				if (!obj.phone || obj.phone.trim() === '') {
+					errors.phone = '请填写手机号!';
+				} else {
+					const regex = /^1[3456789]\d{9}$/;
+					if (!regex.test(obj.phone)) errors.phone = '请填写正确的手机号码!';
+				}
+				if (!obj.company || obj.company.trim() === '') {
+					errors.company = '请填写公司名称!';
+				}
+				if (that.form.type == '1') {
+					if (!obj.project_name || obj.project_name.trim() === '') {
+						errors.project_name = '请填写路演名称!';
+					}
+					if (!obj.project_brief || obj.project_brief.trim() === '') {
+						errors.project_brief = '请填写路演简介!';
+					}
+				}
+				// 如果有错误,返回错误对象
+				if (Object.keys(errors).length > 0) {
+					return errors;
+				}
+				// 如果没有错误,返回null或undefined
+				return null;
+			},
+			async formSubmit(e) {
+				const that = this;
+				var formdata = e.detail.value
+				formdata.type == that.form.type
+				formdata.project_file = that.form.project_file
+				const errorsInfo = await that.validateObject(formdata);
+				// 检查是否有错误
+				if (errorsInfo) {
+					that.$set(that, `errors`, errorsInfo)
+					// 遍历错误对象并显示错误信息
+					for (const key in errorsInfo) {
+						if (errorsInfo.hasOwnProperty(key)) {
+							console.error(`${key} 错误: ${errorsInfo[key]}`);
+						}
+					}
+				} else {
+					that.$set(that, `errors`, {})
+					let res;
+					const data = {
+						user: that.user.id,
+						match: that.info.id,
+						time: moment().format('YYYY-MM-DD HH:mm:ss')
+					}
+					res = await that.$api(`/sign`, 'POST', {
+						...formdata,
+						...data
+					})
+					if (res.errcode == '0') {
+						uni.showModal({
+							content: "报名成功!",
+							showCancel: false
+						});
+						uni.navigateBack({
+							delta: 1
+						})
+					} else {
+						uni.showToast({
+							title: res.errmsg,
+							icon: 'none'
+						});
+					}
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main {
+		background-color: var(--footColor);
+
+		.one {
+			margin: 0 0 3vw 0;
+			padding: 0 2vw;
+			background-color: var(--mainColor);
+
+			.one_1 {
+				display: flex;
+				align-items: center;
+				padding: 3vw 0;
+				border-bottom: 1px solid var(--f5Color);
+				font-size: var(--font14Size);
+
+				span {
+					margin: 0 0 0 1vw;
+				}
+
+				.t-icon {
+					width: var(--font15Size) !important;
+					height: var(--font15Size) !important;
+				}
+			}
+
+			.one_2 {
+				justify-content: space-between;
+
+				.one_left {
+					display: flex;
+					align-items: center;
+				}
+
+				.one_right {
+					display: flex;
+					align-items: center;
+					color: var(--mainColor);
+					padding: 1vw;
+
+					.t-icon {
+						color: var(--mainColor) !important;
+					}
+				}
+
+				.active_1 {
+					background-color: #4caf50;
+				}
+
+				.active_2 {
+					background-color: #2196f3;
+				}
+
+				.active_3 {
+					background-color: #FF5722;
+				}
+
+				.active_4 {
+					background-color: #949698;
+				}
+			}
+
+			.name {
+				font-weight: bold;
+				font-size: var(--font16Size);
+			}
+
+			.text_color {
+				color: var(--f69Color);
+			}
+
+		}
+
+		.two {
+			padding: 2vw 0;
+			background-color: var(--mainColor);
+
+			.two_1 {
+				.two_text {
+					text-indent: 10px;
+					border-left: 3px solid var(--f3CColor);
+					font-weight: bold;
+					font-size: var(--font16Size);
+				}
+
+				.two_remark {
+					margin: 2vw 0 0 0;
+					text-indent: 10px;
+					color: var(--fF0Color);
+					font-size: var(--font12Size);
+				}
+			}
+
+			.two_2 {
+				padding: 2vw;
+
+				.other {
+					padding: 4vw 2vw;
+					border-bottom: 1px solid var(--footColor);
+				}
+
+				.value {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					background-color: var(--mainColor);
+
+					.label {
+						text-align: right;
+
+						/deep/.uni-data-checklist .checklist-group .checklist-box {
+							margin-right: 0 !important;
+							margin-left: 25px !important;
+						}
+
+						.error-message {
+							text-align: right;
+							margin: 5px 0 0 0;
+							color: var(--fF0Color);
+							font-size: var(--font12Size);
+						}
+					}
+				}
+
+				.button {
+					margin: 2vw 0 0 0;
+					text-align: center;
+
+					button {
+						background-color: var(--f3CColor);
+						border-radius: 2vw;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 79 - 6
pagesHome/match/index.vue

@@ -95,14 +95,32 @@
 							</view>
 						</view>
 					</view>
-					<view class="thr">
-						<view class="thr_cont" v-if="info.brief">
+					<view class="thr" v-if="info.brief">
+						<view class="thr_cont">
 							<view class="thr_1">常见问题</view>
 							<view class="thr_2">
 								<rich-text :nodes="formatRichText(info.brief)"></rich-text>
 							</view>
 						</view>
 					</view>
+					<view class="thr" v-if="info.form == '3'&&info.match_status == '3' && signList.length > 0">
+						<view class="thr_cont">
+							<uni-section title="参演方信息" type="line">
+								<uni-group mode="card" v-for="(item, index) in signList" :key="index">
+									<view class="card_title" style="font-weight: bold;">{{ item.name || '暂无' }} </view>
+									<view class="card_title"> <span>路演名称:</span>{{ item.project_name || '暂无' }} </view>
+									<view class="card_title"> <span>路演介绍:</span>{{ item.project_brief || '暂无' }} </view>
+									<view class="card_title" v-if="info.is_show == '0'">
+										<span>联系方式:</span>{{ item.phone || '暂无' }}
+									</view>
+									<view class="card_button" v-else style="text-align: center;margin: 10px 0 0 0;">
+										<button class="button" size="mini" type="primary"
+											@tap.stop="toChat(item)">获取联系方式</button>
+									</view>
+								</uni-group>
+							</uni-section>
+						</view>
+					</view>
 				</view>
 			</scroll-view>
 		</view>
@@ -144,7 +162,9 @@
 				info: {},
 				// 字典表
 				statusList: [],
-				typeList: []
+				typeList: [],
+				// 参演方
+				signList: [],
 			}
 		},
 		onLoad: async function(e) {
@@ -214,6 +234,14 @@
 					res = await that.$api(`/match/${that.id}`, 'GET', {})
 					if (res.errcode == '0') {
 						that.$set(that, `info`, res.data)
+						if (res.data.form == '3') {
+							const arr = await that.$api(`/sign`, 'GET', {
+								match: res.data.id,
+								status: '1',
+								type: '1'
+							})
+							if (arr.errcode == '0') that.$set(that, `signList`, arr.data)
+						}
 					} else {
 						uni.showToast({
 							title: res.errmsg,
@@ -301,9 +329,15 @@
 					})
 				} else if (that.info.match_status == '1') {
 					if (that.user && that.user.id) {
-						uni.navigateTo({
-							url: `/pagesHome/match/sign?id=${that.id}`
-						})
+						if (that.info.form == '3') {
+							uni.navigateTo({
+								url: `/pagesHome/match/active?id=${that.id}`
+							})
+						} else {
+							uni.navigateTo({
+								url: `/pagesHome/match/sign?id=${that.id}`
+							})
+						}
 					} else {
 						uni.navigateTo({
 							url: `/pagesHome/login/index`
@@ -336,6 +370,45 @@
 			toPoster() {
 				console.log('生成海报');
 			},
+			// 获取联系方式
+			toChat(item) {
+				const that = this;
+				if (that.user.id) {
+					uni.showModal({
+						title: '提示',
+						content: '您确认要获取联系方式?',
+						success: async function(res) {
+							if (res.confirm) {
+								let source_id = item.id
+								let source = 'sign'
+								let apply_user = that.user.id
+								const res = await that.$api(`/contactApply/sign`, 'POST', {
+									source_id,
+									source,
+									apply_user
+								})
+								if (res.errcode == 0) {
+									uni.showToast({
+										title: '申请获取联系方式成功,等待发送消息',
+										icon: 'none'
+									})
+								} else {
+									uni.showToast({
+										title: res.errmsg,
+										icon: 'none'
+									})
+								}
+							} else if (res.cancel) {
+								console.log('用户点击取消');
+							}
+						}
+					});
+				} else {
+					uni.navigateTo({
+						url: `/pagesHome/login/index`
+					})
+				}
+			}
 		}
 	}
 </script>

+ 202 - 0
pagesMy/activity/active.vue

@@ -0,0 +1,202 @@
+<template>
+	<view class="container main">
+		<view class="one">
+			<uni-forms ref="baseForm" :rules="rules" :modelValue="form" label-width="80px">
+				<uni-forms-item label="姓名" required name="name">
+					<uni-easyinput v-model="form.name" placeholder="请输入姓名" />
+				</uni-forms-item>
+				<uni-forms-item label="手机号" required name="phone">
+					<uni-easyinput v-model="form.phone" placeholder="请输入手机号" />
+				</uni-forms-item>
+				<uni-forms-item label="报名类型" required name="type">
+					<uni-data-checkbox v-model="form.type" :localdata="signList" :map="{text:'label',value:'value'}" />
+				</uni-forms-item>
+				<uni-forms-item label="公司名称" required name="company">
+					<uni-easyinput v-model="form.company" placeholder="请输入公司名称" />
+				</uni-forms-item>
+				<uni-forms-item label="路演名称" required name="project_name" v-if="form.type=='1'">
+					<uni-easyinput v-model="form.project_name" placeholder="请输入路演名称" />
+				</uni-forms-item>
+				<uni-forms-item label="路演简介" required name="project_brief" v-if="form.type=='1'">
+					<uni-easyinput v-model="form.project_brief" placeholder="请输入路演简介" />
+				</uni-forms-item>
+				<uni-forms-item label="路演附件" required name="project_file" v-if="form.type=='1'">
+					<upload class='upload' :list="form.project_file" name="project_file" :count="1" @uplSuc="uplSuc"
+						@uplDel="uplDel">
+					</upload>
+				</uni-forms-item>
+			</uni-forms>
+			<view class="button">
+				<view class="button_remark">*修改报名信息将会重新进行审核</view>
+				<button type="primary" @click="submit('baseForm')">保存</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import upload from '../../components/upload/index.vue';
+	import moment from 'moment';
+	export default {
+		components: {
+			upload
+		},
+		data() {
+			return {
+				id: "",
+				user: {},
+				form: {
+					name: "",
+					type: "",
+					company: "",
+					phone: "",
+					project_name: "",
+					project_brief: "",
+					project_file: [],
+				},
+				typeList: [],
+				signList: [],
+				// 校验规则
+				rules: {
+					name: {
+						rules: [{
+							required: true,
+							errorMessage: '姓名不能为空'
+						}]
+					},
+					phone: {
+						rules: [{
+							required: true,
+							errorMessage: '联系方式不能为空'
+						}]
+					},
+				},
+			}
+		},
+		onLoad: async function(e) {
+			const that = this;
+			that.$set(that, `id`, e && e.id || '');
+			await that.searchToken();
+			await that.searchOther();
+			await that.search();
+		},
+		methods: {
+			// 用户信息
+			searchToken() {
+				const that = this;
+				try {
+					const res = uni.getStorageSync('token');
+					if (res) {
+						const user = that.$jwt(res);
+						that.$set(that, `user`, user);
+					}
+				} catch (e) {}
+			},
+			async searchOther() {
+				const that = this;
+				let res;
+				// 查询证件类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'cardType',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `typeList`, res.data);
+				// 查询证件类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'signType',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `signList`, res.data);
+			},
+			// 查询
+			async search() {
+				const that = this;
+				if (that.id) {
+					let res;
+					res = await that.$api(`/sign/${that.id}`, 'GET', {})
+					if (res.errcode == '0') {
+						that.$set(that, `form`, res.data)
+					} else {
+						uni.showToast({
+							title: res.errmsg,
+						});
+					}
+				}
+			},
+			// 图片上传
+			uplSuc(e) {
+				const that = this;
+				that.$set(that.form, `${e.name}`, [...that.form[e.name], e.data]);
+			},
+			// 图片删除
+			uplDel(e) {
+				const that = this;
+				let data = that.form[e.name];
+				let arr = data.filter((i, index) => index != e.data.index);
+				that.$set(that.form, `${e.name}`, arr)
+			},
+			// 保存
+			submit(ref) {
+				const that = this;
+				that.$refs[ref].validate().then(async res => {
+					let arr;
+					const data = {
+						id: that.id,
+						project_file: that.form.project_file,
+						time: moment().format('YYYY-MM-DD HH:mm:ss'),
+						status: '0'
+					}
+					if (res.type == '1') {
+						delete res.project_name
+						delete res.project_brief
+						delete res.project_file
+					}
+					arr = await that.$api(`/sign/${that.id}`, 'POST', {
+						...res,
+						...data
+					})
+					if (arr.errcode == '0') {
+						uni.showModal({
+							content: "修改报名信息成功!",
+							showCancel: false
+						});
+						uni.navigateBack({
+							delta: 1
+						})
+					} else {
+						uni.showToast({
+							title: arr.errmsg,
+						});
+					}
+				}).catch(err => {
+					console.log('err', err);
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main {
+		padding: 0 3vw;
+
+		.one {
+			.button_remark {
+				margin: 2vw 0;
+				text-indent: 10px;
+				color: var(--fF0Color);
+				font-size: var(--font12Size);
+			}
+
+			.button {
+				margin: 2vw 0 0 0;
+
+				button {
+					background-color: var(--f3CColor);
+					font-size: var(--font14Size);
+					border-radius: 2vw;
+				}
+			}
+		}
+	}
+</style>

+ 1 - 1
pagesMy/activity/add.vue

@@ -10,7 +10,7 @@
 						:map="{text:'label',value:'value'}" />
 				</uni-forms-item>
 				<uni-forms-item label="证件号码" required name="card">
-					<uni-easyinput v-model="form.card" placeholder="请输入姓名" />
+					<uni-easyinput v-model="form.card" placeholder="请输入证件号码" />
 				</uni-forms-item>
 				<uni-forms-item label="手机号" required name="phone">
 					<uni-easyinput v-model="form.phone" placeholder="请输入手机号" />

+ 90 - 4
pagesMy/activity/detail.vue

@@ -108,7 +108,7 @@
 					<view class="thr">
 						<view class="thr_cont">
 							<view class="thr_1">报名信息</view>
-							<view class="thr_2">
+							<view class="thr_2" v-if="info.form!='3'">
 								<view class="thr_label">
 									<view class="left">姓名</view>
 									<view class="right textOne">
@@ -152,6 +152,60 @@
 									</view>
 								</view>
 							</view>
+							<view class="thr_2" v-else>
+								<view class="thr_label">
+									<view class="left">姓名</view>
+									<view class="right textOne">
+										<text>{{sign.name||'暂无姓名'}}</text>
+									</view>
+								</view>
+								<view class="thr_label">
+									<view class="left">联系电话</view>
+									<view class="right textOne">
+										<text>{{sign.phone||'暂无联系电话'}}</text>
+									</view>
+								</view>
+								<view class="thr_label">
+									<view class="left">报名类型</view>
+									<view class="right textOne">
+										<text>{{getDict(sign.type,'sign')||'暂无报名类型'}}</text>
+									</view>
+								</view>
+								<view class="thr_label">
+									<view class="left">公司名称</view>
+									<view class="right textOne">
+										<text>{{sign.company||'暂无公司名称'}}</text>
+									</view>
+								</view>
+								<view class="thr_label" v-if="sign.type=='1'">
+									<view class="left">路演名称</view>
+									<view class="right textOne">
+										<text>{{sign.project_name||'暂无路演名称'}}</text>
+									</view>
+								</view>
+								<view class="thr_label" v-if="sign.type=='1'">
+									<view class="left">路演简介</view>
+									<view class="right textOne">
+										<text>{{sign.project_brief||'暂无路演简介'}}</text>
+									</view>
+								</view>
+								<view class="thr_label" v-if="sign.type=='1'">
+									<view class="left">路演附件</view>
+									<view class="right textOne">
+										<text v-if="sign.project_file&&sign.project_file.length>0"
+											@click="viewFile(sign.project_file[0].url)">
+											{{sign.project_file[0].name||'暂无路演附件'}}
+										</text>
+										<text v-else>暂无路演附件</text>
+									</view>
+								</view>
+								<view class="thr_label">
+									<view class="left">报名时间</view>
+									<view class="right textOne">
+										<text>{{sign.time||'暂无报名时间'}}</text>
+									</view>
+								</view>
+							</view>
 						</view>
 						<view class="button">
 							<button class="danger" size="mini" type="warn" @tap.stop="toEdit(sign)"
@@ -211,6 +265,7 @@
 				statusList: [],
 				cTypeList: [],
 				typeList: [],
+				signTypeList: []
 			}
 		},
 		onLoad: async function(e) {
@@ -262,6 +317,12 @@
 					is_use: '0',
 				})
 				if (res.errcode == '0') that.$set(that, `typeList`, res.data)
+				// 报名类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'signType',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `signTypeList`, res.data);
 			},
 			// 查询
 			async search() {
@@ -322,9 +383,33 @@
 			},
 			// 修改报名信息
 			toEdit(item) {
-				uni.navigateTo({
-					url: `/pagesMy/activity/add?id=${item.id}`
-				})
+				const that = this;
+				if (that.info.form == '3') {
+					uni.navigateTo({
+						url: `/pagesMy/activity/active?id=${item.id}`
+					})
+				} else {
+					uni.navigateTo({
+						url: `/pagesMy/activity/add?id=${item.id}`
+					})
+				}
+			},
+			// 查看文件
+			viewFile(e) {
+				const that = this;
+				uni.downloadFile({
+					url: that.$config.serverFile + e,
+					success: function(res) {
+						var filePath = res.tempFilePath;
+						uni.openDocument({
+							filePath: filePath,
+							showMenu: true,
+							success: function(res) {
+								console.log('打开文档成功');
+							}
+						});
+					}
+				});
 			},
 			// 图片处理
 			getUrl(e) {
@@ -339,6 +424,7 @@
 				if (model == 'status') res = that.statusList.find(i => i.value == item)
 				else if (model == 'cardType') res = that.cTypeList.find(i => i.value == item)
 				else if (model == 'type') res = that.typeList.find(i => i.value == item)
+				else if (model == 'sign') res = that.signTypeList.find(i => i.value == item)
 				if (res) return res.label
 				else return '暂无'
 			},

+ 451 - 0
pagesMy/match/active.vue

@@ -0,0 +1,451 @@
+<template>
+	<view class="container main">
+		<view class="one">
+			<view class="one_1">
+				<input type="text" v-model="searchInfo.name" placeholder="请输入姓名">
+			</view>
+			<view class="one_2">
+				<button size="mini" class="button" type="primary" @click="toInput">搜索</button>
+			</view>
+		</view>
+		<view class="two" v-if="total>0">
+			<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-view" @scrolltolower="toPage"
+				@scroll="toScroll">
+				<view class="list-scroll-view">
+					<view class="list" v-for="(item, index) in list" :key="index">
+						<view class="value">
+							<view class="title">姓名:</view>
+							<view class="label textOne">{{item.name||'暂无'}}</view>
+						</view>
+						<view class="value">
+							<view class="title">手机号:</view>
+							<view class="label textOne">{{item.phone||'暂无'}}</view>
+						</view>
+						<view class="value">
+							<view class="title">公司名称:</view>
+							<view class="label textOne">{{item.company||'暂无'}}</view>
+						</view>
+						<view class="value" v-if="item.type=='1'">
+							<view class="title">路演名称:</view>
+							<view class="label textOne">{{item.project_name||'暂无'}}</view>
+						</view>
+						<view class="value" v-if="item.type=='1'">
+							<view class="title">路演简介:</view>
+							<view class="label textOne">{{item.project_brief||'暂无'}}</view>
+						</view>
+						<view class="value" v-if="item.type=='1'">
+							<view class="title">路演附件:</view>
+							<view class="label textOne" v-if="item.project_file&&item.project_file.length>0"
+								@click="viewFile(item.project_file[0].url)">
+								{{item.project_file[0].name||'暂无路演附件'}}
+							</view>
+							<view class="label textOne" v-else>暂无路演附件</view>
+						</view>
+						<view class="bottom">
+							<button v-if="item.status=='0'" class="button button_2" type="default" size="mini"
+								@tap.stop="toExam(item)">审核</button>
+						</view>
+					</view>
+					<view class="is_bottom" v-if="is_bottom">
+						<text>{{config.bottom_title||'到底了!'}}</text>
+					</view>
+				</view>
+			</scroll-view>
+		</view>
+		<o-empty v-else />
+		<uni-popup ref="popup" background-color="#fff" type="center" :is-mask-click="false" @change="change">
+			<view class="popup">
+				<view class="close">
+					<text>审核信息</text>
+					<text @click="toClose" class="t-icon t-icon-guanbi"></text>
+				</view>
+				<view class="info_1">
+					<uni-forms ref="baseForm" :rules="rules" :modelValue="form" label-width="80px">
+						<uni-forms-item label="审核状态" required name="status">
+							<uni-data-select v-model="form.status" :localdata="statusList"
+								@change="statusChange"></uni-data-select>
+						</uni-forms-item>
+					</uni-forms>
+					<view class="button">
+						<button type="primary" @click="submit('baseForm')">保存</button>
+					</view>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				id: '',
+				user: {},
+				config: {},
+				searchInfo: {},
+				list: [],
+				total: 0,
+				skip: 0,
+				limit: 5,
+				page: 0,
+				// 数据是否触底
+				is_bottom: false,
+				scrollTop: 0,
+				statusList: [],
+				// 禁止滚动穿透
+				show: false,
+				form: {
+					status: "",
+				},
+				// 校验规则
+				rules: {
+					status: {
+						rules: [{
+							required: true,
+							errorMessage: '状态不能为空'
+						}]
+					}
+				}
+			}
+		},
+		onLoad: async function(e) {
+			const that = this;
+			that.$set(that, `id`, e && e.id || '');
+			await that.searchToken();
+			await that.searchConfig();
+			await that.searchOther();
+		},
+		onShow: async function() {
+			const that = this;
+			that.clearPage();
+			await that.search();
+		},
+		onPullDownRefresh: async function() {
+			const that = this;
+			that.clearPage();
+			await that.search();
+			uni.stopPullDownRefresh();
+		},
+		methods: {
+			// 禁止滚动穿透
+			change(e) {
+				const that = this;
+				that.show = e.show
+			},
+			// 用户信息
+			searchToken() {
+				const that = this;
+				try {
+					const res = uni.getStorageSync('token');
+					if (res) {
+						const user = that.$jwt(res);
+						that.$set(that, `user`, user);
+					}
+				} catch (e) {}
+			},
+			searchConfig() {
+				const that = this;
+				try {
+					const res = uni.getStorageSync('config');
+					if (res) that.$set(that, `config`, res);
+				} catch (e) {}
+			},
+			// 查看文件
+			viewFile(e) {
+				const that = this;
+				uni.downloadFile({
+					url: that.$config.serverFile + e,
+					success: function(res) {
+						var filePath = res.tempFilePath;
+						uni.openDocument({
+							filePath: filePath,
+							showMenu: true,
+							success: function(res) {
+								console.log('打开文档成功');
+							}
+						});
+					}
+				});
+			},
+			async searchOther() {
+				const that = this;
+				let res;
+				// 查询证件类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'examStatus',
+					is_use: '0',
+				})
+				if (res.errcode == '0') {
+					for (let val of res.data) {
+						val.text = val.label
+						val.value = val.value
+					}
+					that.$set(that, `statusList`, res.data)
+				}
+			},
+			// 查询
+			async search() {
+				const that = this;
+				let info = {
+					skip: that.skip,
+					limit: that.limit,
+					match: that.id,
+				}
+				const res = await that.$api(`/sign`, 'GET', {
+					...info,
+					...that.searchInfo
+				})
+				if (res.errcode == '0') {
+					let list = [...that.list, ...res.data];
+					that.$set(that, `list`, list)
+					that.$set(that, `total`, res.total)
+				} else {
+					uni.showToast({
+						title: res.errmsg,
+						icon: 'none'
+					});
+				}
+			},
+			// 输入框
+			toInput() {
+				const that = this;
+				if (!that.searchInfo.name) that.$set(that, `searchInfo`, {})
+				that.clearPage();
+				that.search();
+			},
+			// 修改
+			toView(item) {
+				const that = this;
+				console.log(item);
+			},
+			// 审核
+			toExam(item) {
+				const that = this;
+				that.$set(that, `form`, item)
+				that.$refs.popup.open('center')
+			},
+			// 选择状态
+			statusChange(e) {
+				const that = this;
+				let data = that.statusList.find(i => i.value == e);;
+				if (data) {
+					that.$set(that.form, `status`, data.value)
+				}
+			},
+			// 保存
+			submit(ref) {
+				const that = this;
+				that.$refs[ref].validate().then(async res => {
+					let arr = await that.$api(`/sign/${that.id}`, 'POST', res)
+					if (arr.errcode == '0') {
+						uni.showModal({
+							content: "审核成功!",
+							showCancel: false
+						});
+						that.toClose()
+					} else {
+						uni.showToast({
+							title: arr.errmsg,
+						});
+					}
+				}).catch(err => {
+					console.log('err', err);
+				})
+			},
+			// 关闭弹框
+			toClose() {
+				const that = this;
+				that.$set(that, `form`, {});
+				that.$refs.popup.close();
+			},
+			// 分页
+			toPage(e) {
+				const that = this;
+				let list = that.list;
+				let limit = that.limit;
+				if (that.total > list.length) {
+					uni.showLoading({
+						title: '加载中',
+						mask: true
+					})
+					let page = that.page + 1;
+					that.$set(that, `page`, page)
+					let skip = page * limit;
+					that.$set(that, `skip`, skip)
+					that.search();
+					uni.hideLoading();
+				} else that.$set(that, `is_bottom`, true)
+			},
+			toScroll(e) {
+				const that = this;
+				let up = that.scrollTop;
+				let num = Math.sign(up - e.detail.scrollTop);
+				if (num == 1) that.$set(that, `is_bottom`, false);
+				// 检查滚动位置是否达到div显示的条件
+				if (e.detail.scrollTop >= 300 && !that.showDiv) {
+					that.showDiv = true;
+				} else if (e.detail.scrollTop < 300 && that.showDiv) {
+					that.showDiv = false;
+				}
+			},
+			// 清空列表
+			clearPage() {
+				const that = this;
+				that.$set(that, `list`, [])
+				that.$set(that, `skip`, 0)
+				that.$set(that, `limit`, 5)
+				that.$set(that, `page`, 0)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main {
+		.one {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			padding: 2vw;
+			background-color: var(--mainColor);
+
+			.one_1 {
+				padding: 0 2vw;
+				width: 75vw;
+
+				input {
+					padding: 2vw;
+					background-color: var(--f1Color);
+					font-size: var(--font14Size);
+					border-radius: 5px;
+				}
+			}
+
+			.one_2 {
+				.button {
+					background-color: var(--f3CColor);
+					color: var(--mainColor);
+				}
+			}
+		}
+
+		.two {
+			position: relative;
+			flex-grow: 1;
+			background-color: var(--f1Color);
+
+			.list {
+				background-color: var(--mainColor);
+				border-bottom: 1px solid var(--f5Color);
+				margin: 2vw 2vw 0 2vw;
+				border-radius: 4px;
+				padding: 3vw;
+
+
+				.value {
+					display: flex;
+					align-items: center;
+
+					.title {
+						min-width: 70px;
+						font-size: var(--font14Size);
+						font-weight: bold;
+					}
+
+					.label {
+						font-size: var(--font12Size);
+						color: var(--f85Color);
+					}
+				}
+
+				.bottom {
+					margin: 2vw 0 0 0;
+					text-align: center;
+
+					.button {
+						color: var(--mainColor);
+						font-size: var(--font14Size);
+						border-radius: 2vw;
+					}
+
+					.button_1 {
+						margin: 0 2vw 0 0;
+						background-color: var(--f3CColor);
+					}
+
+					.button_2 {
+						background-color: var(--fF0Color);
+					}
+				}
+			}
+		}
+	}
+
+	.scroll-view {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+
+		.list-scroll-view {
+			display: flex;
+			flex-direction: column;
+		}
+	}
+
+	.is_bottom {
+		width: 100%;
+		text-align: center;
+
+		text {
+			padding: 2vw 0;
+			display: inline-block;
+			color: var(--f85Color);
+			font-size: var(--font14Size);
+		}
+	}
+
+	.uni-popup {
+		z-index: 9999 !important;
+	}
+
+	.popup {
+		display: flex;
+		flex-direction: column;
+		width: 90vw;
+		height: 30vh;
+		padding: 2vw;
+		background-color: var(--mainColor);
+
+
+		.close {
+			display: flex;
+			justify-content: space-between;
+			padding: 2vw;
+
+			text:first-child {
+				font-size: var(--font16Size);
+				font-weight: bold;
+			}
+		}
+
+		.info_1 {
+			position: relative;
+			display: flex;
+			flex-direction: column;
+			height: 20vh;
+			padding: 2vw;
+
+			.button {
+				margin: 2vw 0 0 0;
+
+				button {
+					background-color: var(--f3CColor);
+					font-size: var(--font14Size);
+					border-radius: 2vw;
+				}
+			}
+		}
+	}
+</style>

+ 11 - 3
pagesMy/match/index.vue

@@ -160,9 +160,17 @@
 			},
 			// 报名信息
 			toSign(item) {
-				uni.navigateTo({
-					url: `/pagesMy/match/sign?id=${item.id||item._id}`
-				})
+				const that = this;
+				if (item.form == '3') {
+					uni.navigateTo({
+						url: `/pagesMy/match/active?id=${item.id||item._id}`
+					})
+				} else {
+					uni.navigateTo({
+						url: `/pagesMy/match/sign?id=${item.id||item._id}`
+					})
+				}
+
 			},
 			// 分数列表
 			toScore(item) {

+ 1 - 0
pagesMy/match/sign.vue

@@ -328,6 +328,7 @@
 					.title {
 						font-size: var(--font14Size);
 						font-weight: bold;
+						min-width: 70px;
 					}
 
 					.label {

+ 313 - 0
pagesMy/notice/index.vue

@@ -0,0 +1,313 @@
+<template>
+	<view class="container main">
+		<view class="one" v-if="total>0">
+			<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-view" @scrolltolower="toPage"
+				@scroll="toScroll">
+				<view class="list-scroll-view">
+					<view class="list" v-for="(item, index) in list" :key="index">
+						<view class="value">
+							<view class="title">内容:</view>
+							<view class="label"> <text :user-select="true">{{item.content||'暂无'}}</text> </view>
+						</view>
+						<view class="value">
+							<view class="title">通知类型:</view>
+							<view class="label">{{getDict(item.type,'type')||'暂无'}}</view>
+						</view>
+						<view class="value">
+							<view class="title">是否已读:</view>
+							<view class="label">{{getDict(item,'is_read')||'暂无'}}</view>
+						</view>
+						<view class="value">
+							<view class="title">发送时间:</view>
+							<view class="label">{{item.created_time||'暂无'}}</view>
+						</view>
+						<view class="bottom">
+							<button v-if="getDict(item, 'is_read') == '未读'" class="button button_2" type="default"
+								size="mini" @tap.stop="toRead(item)">已读</button>
+						</view>
+					</view>
+					<view class="is_bottom" v-if="is_bottom">
+						<text>{{config.bottom_title||'到底了!'}}</text>
+					</view>
+				</view>
+			</scroll-view>
+		</view>
+		<o-empty v-else />
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				user: {},
+				config: {},
+				list: [],
+				total: 0,
+				skip: 0,
+				limit: 5,
+				page: 0,
+				// 数据是否触底
+				is_bottom: false,
+				scrollTop: 0,
+				// 禁止滚动穿透
+				show: false,
+				readList: [],
+				typeList: []
+			}
+		},
+		onLoad: async function(e) {
+			const that = this;
+			await that.searchToken();
+			await that.searchOther();
+			await that.searchConfig();
+		},
+		onShow: async function() {
+			const that = this;
+			that.clearPage();
+			await that.search();
+		},
+		onPullDownRefresh: async function() {
+			const that = this;
+			that.clearPage();
+			await that.search();
+			uni.stopPullDownRefresh();
+		},
+		methods: {
+			// 禁止滚动穿透
+			change(e) {
+				const that = this;
+				that.show = e.show
+			},
+			// 用户信息
+			searchToken() {
+				const that = this;
+				try {
+					const res = uni.getStorageSync('token');
+					if (res) {
+						const user = that.$jwt(res);
+						that.$set(that, `user`, user);
+					}
+				} catch (e) {}
+			},
+			searchConfig() {
+				const that = this;
+				try {
+					const res = uni.getStorageSync('config');
+					if (res) that.$set(that, `config`, res);
+				} catch (e) {}
+			},
+			// 查询其他信息
+			async searchOther() {
+				const that = this;
+				let res;
+				// 查询类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'messageIsRead',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `readList`, res.data);
+				// 通知类型
+				res = await that.$api(`/dictData`, 'GET', {
+					code: 'messageType',
+					is_use: '0',
+				})
+				if (res.errcode == '0') that.$set(that, `typeList`, res.data)
+			},
+			// 查询
+			async search() {
+				const that = this;
+				let info = {
+					skip: that.skip,
+					limit: that.limit,
+					'to.user': that.user.id
+				}
+				const res = await that.$api(`/message`, 'GET', info)
+				if (res.errcode == '0') {
+					let list = [...that.list, ...res.data];
+					that.$set(that, `list`, list)
+					that.$set(that, `total`, res.total)
+				} else {
+					uni.showToast({
+						title: res.errmsg,
+						icon: 'none'
+					});
+				}
+			},
+			// 处理字典表
+			getDict(item, model) {
+				if(item){
+					const that = this;
+					let res
+					if (model == 'is_read') {
+						//理论上,to中应该只有这个数据,但是还要处理
+						const userid = that.user.id
+						if (!userid) return
+						const to = item.to || []
+						const is_readData = to.find((f) => f.user === userid)
+						if (!is_readData) return
+						const is_read = is_readData.is_read || '0'
+						res = that.readList.find((f) => f.value === is_read)
+					} else if (model == 'type') res = that.typeList.find(i => i.value == item)
+					if (res) return res.label
+					else return '暂无'
+				}
+			},
+			// 已读未读
+			toRead(item) {
+				const that = this;
+				uni.showModal({
+					title: '提示',
+					content: '您确认已读该数据?',
+					success: async function(res) {
+						if (res.confirm) {
+							const data = JSON.parse(JSON.stringify(item));
+							const userid = that.user.id
+							const to = data.to || []
+							for (const val of to) {
+								if (val.user == userid) val.is_read = '1'
+							}
+							const res = await that.$api(`/message/${item.id}`, 'POST', {
+								id: item.id,
+								to
+							})
+							if (res.errcode == '0') {
+								uni.showToast({
+									title: "已读成功!",
+									icon: 'none'
+								});
+								that.clearPage();
+								that.search();
+							} else {
+								uni.showToast({
+									title: res.errmsg,
+									icon: 'none'
+								});
+							}
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					}
+				});
+			},
+			// 分页
+			toPage(e) {
+				const that = this;
+				let list = that.list;
+				let limit = that.limit;
+				if (that.total > list.length) {
+					uni.showLoading({
+						title: '加载中',
+						mask: true
+					})
+					let page = that.page + 1;
+					that.$set(that, `page`, page)
+					let skip = page * limit;
+					that.$set(that, `skip`, skip)
+					that.search();
+					uni.hideLoading();
+				} else that.$set(that, `is_bottom`, true)
+			},
+			toScroll(e) {
+				const that = this;
+				let up = that.scrollTop;
+				let num = Math.sign(up - e.detail.scrollTop);
+				if (num == 1) that.$set(that, `is_bottom`, false);
+				// 检查滚动位置是否达到div显示的条件
+				if (e.detail.scrollTop >= 300 && !that.showDiv) {
+					that.showDiv = true;
+				} else if (e.detail.scrollTop < 300 && that.showDiv) {
+					that.showDiv = false;
+				}
+			},
+			// 清空列表
+			clearPage() {
+				const that = this;
+				that.$set(that, `list`, [])
+				that.$set(that, `skip`, 0)
+				that.$set(that, `limit`, 5)
+				that.$set(that, `page`, 0)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main {
+		.one {
+			position: relative;
+			flex-grow: 1;
+			background-color: var(--f1Color);
+
+			.list {
+				background-color: var(--mainColor);
+				border-bottom: 1px solid var(--f5Color);
+				margin: 2vw 2vw 0 2vw;
+				border-radius: 4px;
+				padding: 3vw;
+
+
+				.value {
+					display: flex;
+					align-items: center;
+
+					.title {
+						min-width: 70px;
+						font-size: var(--font14Size);
+						font-weight: bold;
+					}
+
+					.label {
+						font-size: var(--font12Size);
+						color: var(--f85Color);
+					}
+				}
+
+				.bottom {
+					margin: 2vw 0 0 0;
+					text-align: center;
+
+					.button {
+						color: var(--mainColor);
+						font-size: var(--font14Size);
+						border-radius: 2vw;
+					}
+
+					.button_1 {
+						margin: 0 2vw 0 0;
+						background-color: var(--f3CColor);
+					}
+
+					.button_2 {
+						background-color: var(--fF0Color);
+					}
+				}
+			}
+		}
+	}
+
+	.scroll-view {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+
+		.list-scroll-view {
+			display: flex;
+			flex-direction: column;
+		}
+	}
+
+	.is_bottom {
+		width: 100%;
+		text-align: center;
+
+		text {
+			padding: 2vw 0;
+			display: inline-block;
+			color: var(--f85Color);
+			font-size: var(--font14Size);
+		}
+	}
+</style>

文件差异内容过多而无法显示
+ 6 - 2
static/iconfont-weapp/icon/icon.wxss


文件差异内容过多而无法显示
+ 6 - 2
static/iconfont-weapp/iconfont-weapp-icon.css


文件差异内容过多而无法显示
+ 6 - 2
static/iconfont-weapp/iconfont-weapp-icon.wxss


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/components/tabs/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/components/upload/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/home/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/common/vendor.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/login/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/match/sign.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/register/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/about/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/basic.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/account/password.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/add.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/detail.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/activity/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/agree/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesMy/contact/index.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js.map


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map


+ 5 - 1
unpackage/dist/dev/mp-weixin/app.json

@@ -10,6 +10,7 @@
       "pages": [
         "match/index",
         "match/sign",
+        "match/active",
         "login/index",
         "register/index"
       ]
@@ -20,9 +21,11 @@
         "match/index",
         "match/score",
         "match/sign",
+        "match/active",
         "match/add",
         "activity/index",
         "activity/add",
+        "activity/active",
         "activity/detail",
         "contact/index",
         "agree/index",
@@ -30,7 +33,8 @@
         "account/index",
         "account/basic",
         "account/bind",
-        "account/password"
+        "account/password",
+        "notice/index"
       ]
     }
   ],

文件差异内容过多而无法显示
+ 5 - 2
unpackage/dist/dev/mp-weixin/common/main.wxss


文件差异内容过多而无法显示
+ 2 - 2
unpackage/dist/dev/mp-weixin/common/runtime.js


文件差异内容过多而无法显示
+ 193 - 114
unpackage/dist/dev/mp-weixin/common/vendor.js


文件差异内容过多而无法显示
+ 14 - 14
unpackage/dist/dev/mp-weixin/components/tabs/index.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/home/index.js

@@ -101,7 +101,7 @@ var components
 try {
   components = {
     oEmpty: function () {
-      return Promise.all(/*! import() | uni_modules/o-empty/components/o-empty/o-empty */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/o-empty/components/o-empty/o-empty")]).then(__webpack_require__.bind(null, /*! @/uni_modules/o-empty/components/o-empty/o-empty.vue */ 348))
+      return Promise.all(/*! import() | uni_modules/o-empty/components/o-empty/o-empty */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/o-empty/components/o-empty/o-empty")]).then(__webpack_require__.bind(null, /*! @/uni_modules/o-empty/components/o-empty/o-empty.vue */ 380))
     },
   }
 } catch (e) {

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/index/index.js

@@ -236,7 +236,7 @@ var _default = {
                           break;
                         }
                         _context3.next = 3;
-                        return that.$app('/wechat/api/login/app', 'GET', {
+                        return that.$app('/login/app', 'GET', {
                           js_code: res.code,
                           config: that.$config.wx_projectkey
                         });

文件差异内容过多而无法显示
+ 19 - 19
unpackage/dist/dev/mp-weixin/pagesHome/login/index.js


+ 134 - 14
unpackage/dist/dev/mp-weixin/pagesHome/match/index.js

@@ -100,8 +100,14 @@ __webpack_require__.r(__webpack_exports__);
 var components
 try {
   components = {
+    uniSection: function () {
+      return __webpack_require__.e(/*! import() | uni_modules/uni-section/components/uni-section/uni-section */ "uni_modules/uni-section/components/uni-section/uni-section").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-section/components/uni-section/uni-section.vue */ 392))
+    },
+    uniGroup: function () {
+      return __webpack_require__.e(/*! import() | uni_modules/uni-group/components/uni-group/uni-group */ "uni_modules/uni-group/components/uni-group/uni-group").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-group/components/uni-group/uni-group.vue */ 399))
+    },
     uniPopup: function () {
-      return __webpack_require__.e(/*! import() | uni_modules/uni-popup/components/uni-popup/uni-popup */ "uni_modules/uni-popup/components/uni-popup/uni-popup").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 360))
+      return __webpack_require__.e(/*! import() | uni_modules/uni-popup/components/uni-popup/uni-popup */ "uni_modules/uni-popup/components/uni-popup/uni-popup").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 406))
     },
   }
 } catch (e) {
@@ -177,6 +183,10 @@ var render = function () {
       ? _vm.formatRichText(_vm.info.rules.rules12)
       : null
   var m15 = _vm.info.brief ? _vm.formatRichText(_vm.info.brief) : null
+  var g0 =
+    _vm.info.form == "3" &&
+    _vm.info.match_status == "3" &&
+    _vm.signList.length > 0
   _vm.$mp.data = Object.assign(
     {},
     {
@@ -197,6 +207,7 @@ var render = function () {
         m13: m13,
         m14: m14,
         m15: m15,
+        g0: g0,
       },
     }
   )
@@ -378,6 +389,24 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/r
 //
 //
 //
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
 var _default = {
   data: function data() {
     return {
@@ -387,7 +416,9 @@ var _default = {
       info: {},
       // 字典表
       statusList: [],
-      typeList: []
+      typeList: [],
+      // 参演方
+      signList: []
     };
   },
   onLoad: function () {
@@ -509,28 +540,46 @@ var _default = {
     search: function search() {
       var _this2 = this;
       return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
-        var that, res;
+        var that, res, arr;
         return _regenerator.default.wrap(function _callee4$(_context4) {
           while (1) {
             switch (_context4.prev = _context4.next) {
               case 0:
                 that = _this2;
                 if (!that.id) {
-                  _context4.next = 6;
+                  _context4.next = 15;
                   break;
                 }
                 _context4.next = 4;
                 return that.$api("/match/".concat(that.id), 'GET', {});
               case 4:
                 res = _context4.sent;
-                if (res.errcode == '0') {
-                  that.$set(that, "info", res.data);
-                } else {
-                  uni.showToast({
-                    title: res.errmsg
-                  });
+                if (!(res.errcode == '0')) {
+                  _context4.next = 14;
+                  break;
+                }
+                that.$set(that, "info", res.data);
+                if (!(res.data.form == '3')) {
+                  _context4.next = 12;
+                  break;
                 }
-              case 6:
+                _context4.next = 10;
+                return that.$api("/sign", 'GET', {
+                  match: res.data.id,
+                  status: '1',
+                  type: '1'
+                });
+              case 10:
+                arr = _context4.sent;
+                if (arr.errcode == '0') that.$set(that, "signList", arr.data);
+              case 12:
+                _context4.next = 15;
+                break;
+              case 14:
+                uni.showToast({
+                  title: res.errmsg
+                });
+              case 15:
               case "end":
                 return _context4.stop();
             }
@@ -606,9 +655,15 @@ var _default = {
         });
       } else if (that.info.match_status == '1') {
         if (that.user && that.user.id) {
-          uni.navigateTo({
-            url: "/pagesHome/match/sign?id=".concat(that.id)
-          });
+          if (that.info.form == '3') {
+            uni.navigateTo({
+              url: "/pagesHome/match/active?id=".concat(that.id)
+            });
+          } else {
+            uni.navigateTo({
+              url: "/pagesHome/match/sign?id=".concat(that.id)
+            });
+          }
         } else {
           uni.navigateTo({
             url: "/pagesHome/login/index"
@@ -641,6 +696,71 @@ var _default = {
     // 生成海报
     toPoster: function toPoster() {
       console.log('生成海报');
+    },
+    // 获取联系方式
+    toChat: function toChat(item) {
+      var that = this;
+      if (that.user.id) {
+        uni.showModal({
+          title: '提示',
+          content: '您确认要获取联系方式?',
+          success: function () {
+            var _success = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(res) {
+              var source_id, source, apply_user, _res;
+              return _regenerator.default.wrap(function _callee5$(_context5) {
+                while (1) {
+                  switch (_context5.prev = _context5.next) {
+                    case 0:
+                      if (!res.confirm) {
+                        _context5.next = 10;
+                        break;
+                      }
+                      source_id = item.id;
+                      source = 'sign';
+                      apply_user = that.user.id;
+                      _context5.next = 6;
+                      return that.$api("/contactApply/sign", 'POST', {
+                        source_id: source_id,
+                        source: source,
+                        apply_user: apply_user
+                      });
+                    case 6:
+                      _res = _context5.sent;
+                      if (_res.errcode == 0) {
+                        uni.showToast({
+                          title: '申请获取联系方式成功,等待发送消息',
+                          icon: 'none'
+                        });
+                      } else {
+                        uni.showToast({
+                          title: _res.errmsg,
+                          icon: 'none'
+                        });
+                      }
+                      _context5.next = 11;
+                      break;
+                    case 10:
+                      if (res.cancel) {
+                        console.log('用户点击取消');
+                      }
+                    case 11:
+                    case "end":
+                      return _context5.stop();
+                  }
+                }
+              }, _callee5);
+            }));
+            function success(_x2) {
+              return _success.apply(this, arguments);
+            }
+            return success;
+          }()
+        });
+      } else {
+        uni.navigateTo({
+          url: "/pagesHome/login/index"
+        });
+      }
     }
   }
 };

+ 2 - 0
unpackage/dist/dev/mp-weixin/pagesHome/match/index.json

@@ -1,6 +1,8 @@
 {
   "navigationBarTitleText": "活动详情",
   "usingComponents": {
+    "uni-section": "/uni_modules/uni-section/components/uni-section/uni-section",
+    "uni-group": "/uni_modules/uni-group/components/uni-group/uni-group",
     "uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup"
   }
 }

文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesHome/match/index.wxml


+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesHome/match/sign.js

@@ -130,7 +130,7 @@ var components
 try {
   components = {
     uniDataCheckbox: function () {
-      return Promise.all(/*! import() | uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue */ 367))
+      return Promise.all(/*! import() | uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue */ 413))
     },
   }
 } catch (e) {

文件差异内容过多而无法显示
+ 21 - 21
unpackage/dist/dev/mp-weixin/pagesHome/register/index.js


文件差异内容过多而无法显示
+ 16 - 16
unpackage/dist/dev/mp-weixin/pagesMy/about/index.js


文件差异内容过多而无法显示
+ 17 - 17
unpackage/dist/dev/mp-weixin/pagesMy/account/basic.js


文件差异内容过多而无法显示
+ 16 - 16
unpackage/dist/dev/mp-weixin/pagesMy/account/index.js


文件差异内容过多而无法显示
+ 19 - 19
unpackage/dist/dev/mp-weixin/pagesMy/account/password.js


文件差异内容过多而无法显示
+ 20 - 20
unpackage/dist/dev/mp-weixin/pagesMy/activity/add.js


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesMy/activity/add.wxml


文件差异内容过多而无法显示
+ 68 - 22
unpackage/dist/dev/mp-weixin/pagesMy/activity/detail.js


文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesMy/activity/detail.wxml


文件差异内容过多而无法显示
+ 18 - 18
unpackage/dist/dev/mp-weixin/pagesMy/activity/index.js


文件差异内容过多而无法显示
+ 16 - 16
unpackage/dist/dev/mp-weixin/pagesMy/agree/index.js


文件差异内容过多而无法显示
+ 16 - 16
unpackage/dist/dev/mp-weixin/pagesMy/contact/index.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/project.config.json

@@ -19,7 +19,7 @@
   },
   "compileType": "miniprogram",
   "libVersion": "3.5.1",
-  "appid": "wx34436977cd1e02e4",
+  "appid": "wxef5b87d5fef241b4",
   "projectname": "cxyy-applet",
   "condition": {
     "miniprogram": {

文件差异内容过多而无法显示
+ 6 - 2
unpackage/dist/dev/mp-weixin/static/iconfont-weapp/icon/icon.wxss


文件差异内容过多而无法显示
+ 6 - 2
unpackage/dist/dev/mp-weixin/static/iconfont-weapp/iconfont-weapp-icon.css


文件差异内容过多而无法显示
+ 6 - 2
unpackage/dist/dev/mp-weixin/static/iconfont-weapp/iconfont-weapp-icon.wxss


文件差异内容过多而无法显示
+ 16 - 16
unpackage/dist/dev/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js


文件差异内容过多而无法显示
+ 16 - 16
unpackage/dist/dev/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js


文件差异内容过多而无法显示
+ 15 - 15
unpackage/dist/dev/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js


文件差异内容过多而无法显示
+ 14 - 14
unpackage/dist/dev/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js


文件差异内容过多而无法显示
+ 16 - 16
unpackage/dist/dev/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js


文件差异内容过多而无法显示
+ 15 - 15
unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js


文件差异内容过多而无法显示
+ 15 - 15
unpackage/dist/dev/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js


文件差异内容过多而无法显示
+ 15 - 15
unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js


文件差异内容过多而无法显示
+ 11 - 11
unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js